npm openclaw @2026.11.1
score
0.6
med
flagged
2026-11-06 01:11
Signals fired
| signal | weight | rationale |
|---|---|---|
| content | ||
| script_count_spike | 0.5 | scripts count 493 -> 604 |
| size_spike | 0.5 | unpackedSize 87477902 -> 274712249 (3.1×) |
| topology | ||
| dist_tag_anomaly | 0.5 | dist-tags.latest=2026.11.1 but max published is 2026.11.5-beta.1 |
| shared_repo_different_publisher | 0.9 | repo 'git+https://github.com/openclaw/openclaw.git' also claimed by 10 package(s) under different publishers: ['npm/@aka_openclaw_plugin/mychat', 'npm/@openclaw/line', 'npm/@openclaw/pixverse-provider'] ... |
| dependency_added_unknown | 0.6 | 2 new non-watchlisted dep(s): ['@openclaw/proc-safe', '@trycua/cua-driver'] |
Prior profile (what it deviated from)
{
"had_install_script": true,
"maintainers": [
"steipete",
"vincentkoc"
],
"versions": 241
}
Evidence (package doc at flag time)
{
"dependencies_count": 68,
"dist": {
"integrity": "sha512-2pSbt/taBKM/ofPXsiOEmVefgUdVHYRZOmcWNDyx67WUfeGFXqtfqLvtwYOiH4NcLolDSLMUgsno2oYhTVXptw==",
"tarball": "https://registry.npmjs.org/openclaw/-/openclaw-2026.11.1.tgz",
"unpackedSize": 274712249
},
"dist-tags": {
"beta": "2026.11.5-beta.1",
"extended-stable": "2026.9.36",
"latest": "2026.11.1"
},
"latest_version": "2026.11.1",
"maintainers": [
{
"email": "steipete@gmail.com",
"name": "steipete"
},
{
"email": "vincentkoc@ieee.org",
"name": "vincentkoc"
}
],
"num_versions": 293,
"repository": {
"type": "git",
"url": "git+https://github.com/openclaw/openclaw.git"
},
"scripts": {
"android:assemble": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:assemblePlayDebug :wear:assembleDebug :wear-shared:assembleDebug",
"android:assemble:third-party": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:assembleThirdPartyDebug",
"android:bundle:release": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android play_store_archive'",
"android:format": "cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat :wear:ktlintFormat :wear-shared:ktlintFormat",
"android:i18n:check": "node scripts/android-app-i18n.ts check",
"android:i18n:gen": "node scripts/android-app-i18n.ts generate",
"android:install": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:installPlayDebug",
"android:install:third-party": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:installThirdPartyDebug",
"android:lint": "cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck :wear:ktlintCheck :wear-shared:ktlintCheck",
"android:lint:android": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:lintPlayDebug :app:lintThirdPartyDebug :wear:lintDebug :wear-shared:lintDebug",
"android:release": "bash scripts/android-release.sh",
"android:release:archive": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android play_store_archive'",
"android:release:auth:check": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android auth_check'",
"android:release:metadata": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android metadata'",
"android:release:preflight": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android release_preflight'",
"android:release:signing:check": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_check'",
"android:release:signing:plan": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_plan'",
"android:release:signing:sync:pull": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_sync_pull'",
"android:release:signing:sync:push": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_sync_push'",
"android:release:upload": "node scripts/mobile-release.mjs run --platform android",
"android:release:validate": "node --import ./scripts/tsx.mjs scripts/android-release-e2e.ts",
"android:run": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:runPlayDebug",
"android:run:third-party": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:runThirdPartyDebug",
"android:screenshots": "bash scripts/android-screenshots.sh",
"android:test": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:testPlayDebugUnitTest :wear:testDebugUnitTest :wear-shared:testDebugUnitTest",
"android:test:integration": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts",
"android:test:third-party": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:testThirdPartyDebugUnitTest",
"android:version": "node --import ./scripts/tsx.mjs scripts/android-version.ts --json",
"android:version:check": "node --import ./scripts/tsx.mjs scripts/android-sync-versioning.ts --check",
"android:version:pin": "node --import ./scripts/tsx.mjs scripts/android-pin-version.ts",
"android:version:sync": "node --import ./scripts/tsx.mjs scripts/android-sync-versioning.ts --write",
"apple:i18n:check": "node --import ./scripts/tsx.mjs scripts/apple-app-i18n.ts check",
"audit:seams": "node --import ./scripts/tsx.mjs scripts/audit-seams.mts",
"bench:agent-database-holds": "node --import ./scripts/tsx.mjs scripts/bench-agent-database-holds.ts",
"bench:plugins:invocation": "node --import ./scripts/tsx.mjs scripts/bench-plugin-invocation.ts",
"bench:plugins:stream": "node --expose-gc --import ./scripts/tsx.mjs scripts/bench-plugin-stream.ts",
"bench:usage-refresh-memory": "node --import ./scripts/tsx.mjs scripts/bench-usage-refresh-memory.ts",
"build": "node --import ./scripts/tsx.mjs scripts/build-all.mts",
"build:ci-artifacts": "node --import ./scripts/tsx.mjs scripts/build-all.mts ciArtifacts",
"build:docker": "pnpm plugins:assets:build && node --import ./scripts/tsx.mjs scripts/tsdown-build.mts && node --import ./scripts/tsx.mjs scripts/check-cli-bootstrap-imports.mts && node scripts/runtime-postbuild.mjs && node --import ./scripts/tsx.mjs scripts/build-stamp.mts && node --import ./scripts/tsx.mjs scripts/runtime-postbuild-stamp.mts && pnpm plugins:assets:copy && node --import ./scripts/tsx.mjs scripts/write-build-info.ts && node --import ./scripts/tsx.mjs scripts/write-cli-startup-metadata.ts",
"build:package": "node --import ./scripts/tsx.mjs scripts/build-all.mts package",
"build:plugin-sdk:dts": "node --import ./scripts/tsx.mjs scripts/write-plugin-sdk-entry-dts.ts",
"build:plugin-sdk:strict-smoke": "node --import ./scripts/tsx.mjs scripts/build-all.mts pluginSdkStrictSmoke",
"build:runtime": "node --import ./scripts/tsx.mjs scripts/build-all.mts runtime",
"build:strict-smoke": "node --import ./scripts/tsx.mjs scripts/build-all.mts strictSmoke",
"canvas:a2ui:bundle": "node --import ./scripts/tsx.mjs scripts/bundle-a2ui.mts",
"changed:lanes": "node scripts/changed-lanes.mjs",
"changelog:check": "node scripts/release-changelog.mjs check && node scripts/render-release-changelog.mjs --check",
"changelog:from-docs": "node scripts/render-release-changelog.mjs",
"changelog:split": "node scripts/release-changelog.mjs split",
"channels:catalog:check": "node scripts/write-official-channel-catalog.mjs --check",
"channels:catalog:gen": "node scripts/write-official-channel-catalog.mjs --write",
"check": "node --import ./scripts/tsx.mjs scripts/check.mts",
"check:architecture": "pnpm check:import-cycles && pnpm check:madge-import-cycles && pnpm check:deprecated-api-usage && pnpm check:wrapper-shadowing && pnpm check:deprecated-jsdoc && pnpm db:kysely:check && pnpm db:postgres:check && pnpm lint:kysely && pnpm check:database-first-legacy-stores",
"check:assertion-safety": "node --import ./scripts/tsx.mjs scripts/check-assertion-safety-ratchet.mts",
"check:base-config-schema": "node --import ./scripts/tsx.mjs scripts/generate-base-config-schema.ts --check",
"check:browser-inspect-script:swift": "node --import ./scripts/tsx.mjs scripts/generate-browser-inspect-script-swift.mts --check",
"check:bundled-channel-config-metadata": "node --import ./scripts/tsx.mjs scripts/generate-bundled-channel-config-metadata.ts --check",
"check:changed": "node scripts/check-changed.mjs",
"check:changelog-attributions": "node --import ./scripts/tsx.mjs scripts/check-changelog-attributions.mts",
"check:coercion-helpers": "node --import ./scripts/tsx.mjs scripts/check-coercion-helper-declarations.mts",
"check:control-ui-lit-ratchet": "node --import ./scripts/tsx.mjs scripts/check-control-ui-lit-ratchet.mts",
"check:database-dialect-ratchet": "node --import ./scripts/tsx.mjs scripts/check-database-dialect-ratchet.mts",
"check:database-first-legacy-stores": "node --import ./scripts/tsx.mjs scripts/check-database-first-legacy-stores.mts",
"check:database-worker-ratchet": "node --max-old-space-size=4096 --import ./scripts/tsx.mjs scripts/check-database-worker-ratchet.mts",
"check:deprecated-api-usage": "node --import ./scripts/tsx.mjs scripts/check-deprecated-api-usage.mts",
"check:deprecated-jsdoc": "node --import ./scripts/tsx.mjs scripts/check-deprecated-jsdoc.mts",
"check:docs": "bash scripts/ci-collect-checks.sh 'pnpm format:docs:check' 'pnpm check:docs:content'",
"check:docs:content": "bash scripts/ci-collect-checks.sh 'pnpm lint:docs' 'pnpm lint:templates' 'pnpm docs:check-mdx' 'pnpm docs:check-i18n-glossary' 'pnpm docs:check-links' 'pnpm docs:check-config-examples' 'pnpm changelog:check'",
"check:doctor-deprecation-registry": "node --import ./scripts/tsx.mjs scripts/check-doctor-deprecation-registry.ts",
"check:env-var-count": "node --import ./scripts/tsx.mjs scripts/check-env-var-count.mts",
"check:host-env-policy:swift": "node --import ./scripts/tsx.mjs scripts/generate-host-env-security-policy-swift.mts --check",
"check:import-cycles": "node --import ./scripts/tsx.mjs scripts/check-import-cycles.ts",
"check:line-cap-ratchet": "node --import ./scripts/tsx.mjs scripts/check-line-cap-ratchet.mts",
"check:madge-import-cycles": "node --import ./scripts/tsx.mjs scripts/check-madge-import-cycles.ts",
"check:max-lines-ratchet": "node --import ./scripts/tsx.mjs scripts/check-max-lines-ratchet.mts",
"check:media-download-helpers": "node --import ./scripts/tsx.mjs scripts/check-media-download-helper-roundtrip.mts",
"check:no-conflict-markers": "node scripts/check-no-conflict-markers.mjs",
"check:no-runtime-action-load-config": "node --import ./scripts/tsx.mjs scripts/check-no-runtime-action-load-config.mts",
"check:opengrep-rule-metadata": "node security/opengrep/check-rule-metadata.mjs",
"check:protocol-coverage": "node scripts/check-protocol-event-coverage.mjs",
"check:runtime-sidecar-loaders": "node --import ./scripts/tsx.mjs scripts/check-runtime-sidecar-loaders.mts",
"check:script-erasability": "node --disable-warning=ExperimentalWarning scripts/check-script-erasability.mjs",
"check:static-import-sccs": "pnpm check:madge-import-cycles",
"check:temp-path-guardrails": "node --import ./scripts/tsx.mjs scripts/check-temp-path-guardrails.ts",
"check:test-mock-exports": "node --import ./scripts/tsx.mjs scripts/check-test-mock-exports.mts",
"check:test-timeout-race-ratchet": "node --import ./scripts/tsx.mjs scripts/check-test-timeout-race-ratchet.mts",
"check:test-types": "pnpm tsgo:test",
"check:timed": "node --import ./scripts/tsx.mjs scripts/check-timed.mts",
"check:timed:all-types": "node --import ./scripts/tsx.mjs scripts/check-timed.mts --include-test-types",
"check:timed:architecture": "node --import ./scripts/tsx.mjs scripts/check-timed.mts --include-architecture",
"check:workflows": "node --import ./scripts/tsx.mjs scripts/check-workflows.mts",
"check:wrapper-shadowing": "node --import ./scripts/tsx.mjs scripts/check-wrapper-shadowing.mts",
"ci:full-release": "node scripts/full-release-validation-at-sha.mjs",
"ci:git-owner:check": "node scripts/generate-ci-git-owner.mts --check",
"ci:git-owner:gen": "node scripts/generate-ci-git-owner.mts",
"ci:timings": "node scripts/ci-run-timings.mjs --latest-main",
"ci:timings:recent": "node scripts/ci-run-timings.mjs --recent 10",
"ci:timings:refit": "node --import ./scripts/tsx.mjs scripts/ci-refit-test-timings.mts",
"ci:timings:trend": "node scripts/ci-run-timings.mjs --trend-hours 72 --compare-hours 12",
"clean:dist": "node -e \"require('fs').rmSync('dist', {recursive: true, force: true})\"",
"codex-app-server:protocol:check": "node --import ./scripts/tsx.mjs scripts/check-codex-app-server-protocol.ts",
"codex-app-server:protocol:sync": "node --import ./scripts/tsx.mjs scripts/sync-codex-app-server-protocol.ts",
"codex-supervisor:mcp": "node --import ./scripts/tsx.mjs src/mcp/codex-supervision-tools-serve.ts",
"codex:mcp": "node --import ./scripts/tsx.mjs src/mcp/codex-supervision-tools-serve.ts",
"config:channels:check": "node --import ./scripts/tsx.mjs scripts/generate-bundled-channel-config-metadata.ts --check",
"config:channels:gen": "node --import ./scripts/tsx.mjs scripts/generate-bundled-channel-config-metadata.ts --write",
"config:docs:check": "node --import ./scripts/tsx.mjs scripts/generate-config-doc-baseline.ts --check",
"config:docs:gen": "node --import ./scripts/tsx.mjs scripts/generate-config-doc-baseline.ts --write",
"config:schema:check": "node --import ./scripts/tsx.mjs scripts/generate-base-config-schema.ts --check",
"config:schema:gen": "node --import ./scripts/tsx.mjs scripts/generate-base-config-schema.ts --write",
"crabbox:hydrate": "node dist/crabbox-wrapper.js actions hydrate",
"crabbox:run": "node dist/crabbox-wrapper.js run",
"crabbox:stop": "node dist/crabbox-wrapper.js stop",
"crabbox:warmup": "node dist/crabbox-wrapper.js warmup",
"db:kysely:check": "node scripts/run-vitest.mjs test/scripts/generate-kysely-types.test.ts && node scripts/generate-kysely-types.mts --verify",
"db:kysely:gen": "node scripts/generate-kysely-types.mts",
"db:postgres:check": "node scripts/run-vitest.mjs test/scripts/generate-postgres-schema.test.ts && node --import ./scripts/tsx.mjs scripts/generate-postgres-schema.mts --target canonical --verify && node --import ./scripts/tsx.mjs scripts/generate-postgres-schema.mts --target workboard --verify",
"db:postgres:gen": "node --import ./scripts/tsx.mjs scripts/generate-postgres-schema.mts",
"db:worker-inventory:check": "node --max-old-space-size=4096 scripts/database-worker-inventory.mjs --check",
"db:worker-inventory:gen": "node --max-old-space-size=4096 scripts/database-worker-inventory.mjs --write",
"deadcode:dependencies": "pnpm deadcode:full",
"deadcode:exports": "node --import ./scripts/tsx.mjs scripts/check-deadcode-exports.mts",
"deadcode:full": "pnpm dlx --package knip@6.32.2 knip --config config/knip.config.ts --production --no-progress --reporter compact --no-config-hints --exclude duplicates && pnpm dlx --package knip@6.32.2 knip --config config/knip.all-exports.config.ts --no-progress --reporter compact --no-config-hints --exports --exclude duplicates",
"deadcode:knip": "pnpm dlx --package knip@6.32.2 knip --config config/knip.config.ts --production --no-progress --reporter compact --files --dependencies",
"deadcode:report": "pnpm deadcode:full && pnpm deadcode:exports",
"deadcode:unused-files": "node --import ./scripts/tsx.mjs scripts/check-deadcode-unused-files.mts",
"deps:changes:report": "node --import ./scripts/tsx.mjs scripts/dependency-changes-report.mts",
"deps:npm-lock:check": "node scripts/generate-npm-package-lock.mjs --all",
"deps:npm-lock:check:changed": "node scripts/generate-npm-package-lock.mjs --changed",
"deps:npm-lock:report": "node --import ./scripts/tsx.mjs scripts/npm-package-locks-report.mts",
"deps:ownership-surface:check": "node --import ./scripts/tsx.mjs scripts/dependency-ownership-surface-report.mts --check",
"deps:ownership-surface:report": "node --import ./scripts/tsx.mjs scripts/dependency-ownership-surface-report.mts",
"deps:patches:check": "node --import ./scripts/tsx.mjs scripts/check-package-patches.mts",
"deps:pins:check": "node --import ./scripts/tsx.mjs scripts/check-dependency-pins.mts",
"deps:root-ownership": "node --import ./scripts/tsx.mjs scripts/root-dependency-ownership-audit.mts",
"deps:root-ownership:check": "node --import ./scripts/tsx.mjs scripts/root-dependency-ownership-audit.mts --check",
"deps:transitive-risk:report": "node --import ./scripts/tsx.mjs scripts/transitive-manifest-risk-report.mts",
"deps:vuln:gate": "node --import ./scripts/tsx.mjs scripts/dependency-vulnerability-gate.mts",
"dev": "node scripts/run-node.mjs",
"dev:ui:mock": "node --import ./scripts/tsx.mjs scripts/control-ui-mock-dev.ts",
"docs:check-config-examples": "node scripts/check-docs-config-examples.mjs",
"docs:check-i18n-glossary": "node --import ./scripts/tsx.mjs scripts/check-docs-i18n-glossary.mts",
"docs:check-links": "node scripts/docs-link-audit.mjs",
"docs:check-links:anchors": "node scripts/docs-link-audit.mjs --anchors",
"docs:check-mdx": "node scripts/check-docs-mdx.mjs docs README.md",
"docs:dev": "node scripts/docs-dev.mjs",
"docs:list": "node scripts/docs-list.js",
"docs:map:gen": "node scripts/docs-list.js --headings",
"docs:spellcheck": "bash scripts/docs-spellcheck.sh",
"docs:spellcheck:fix": "bash scripts/docs-spellcheck.sh --write",
"dup:check": "node scripts/check-duplicates.mjs",
"dup:check:coverage": "node scripts/check-duplicates.mjs --coverage",
"dup:check:json": "node scripts/check-duplicates.mjs --json",
"format": "oxfmt --write --threads=1",
"format:all": "pnpm format && pnpm format:swift",
"format:check": "oxfmt --check",
"format:diff": "oxfmt --write --threads=1 && git --no-pager diff",
"format:docs": "node --import ./scripts/tsx.mjs scripts/format-docs.mts",
"format:docs:check": "node --import ./scripts/tsx.mjs scripts/format-docs.mts --check",
"format:fix": "oxfmt --write --threads=1",
"format:swift": "./scripts/format-swift.sh",
"frv": "node scripts/frv.mjs",
"gateway:dev": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway",
"gateway:dev:reset": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset",
"gateway:watch": "node --import ./scripts/tsx.mjs scripts/gateway-watch-tmux.mts gateway --force",
"gateway:watch:raw": "node scripts/watch-node.mjs gateway --force",
"gen:browser-inspect-script:swift": "node --import ./scripts/tsx.mjs scripts/generate-browser-inspect-script-swift.mts --write",
"gen:host-env-policy:swift": "node --import ./scripts/tsx.mjs scripts/generate-host-env-security-policy-swift.mts --write",
"ghsa:patch": "node --import ./scripts/tsx.mjs scripts/ghsa-patch.mts",
"ios:app-review-notes:pdf": "xcrun swift scripts/ios-app-review-notes-pdf.swift apps/ios/APP-REVIEW-NOTES-APPLE.md apps/ios/build/app-review/APP-REVIEW-NOTES.pdf",
"ios:build": "/bin/bash -c 'export PATH=\"$PATH:/opt/homebrew/bin:/usr/local/bin\"; ./scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && node scripts/ios-write-swift-filelist.mjs && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-generic/platform=iOS Simulator}\" -configuration Debug build'",
"ios:filelist:gen": "node scripts/ios-write-swift-filelist.mjs",
"ios:gen": "/bin/bash -c 'export PATH=\"$PATH:/opt/homebrew/bin:/usr/local/bin\"; ./scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && node scripts/ios-write-swift-filelist.mjs && cd apps/ios && xcodegen generate'",
"ios:open": "/bin/bash -c 'export PATH=\"$PATH:/opt/homebrew/bin:/usr/local/bin\"; ./scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && node scripts/ios-write-swift-filelist.mjs && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'",
"ios:release:archive": "/bin/bash scripts/ios-release-archive.sh",
"ios:release:cut": "/bin/bash scripts/ios-release-cut.sh",
"ios:release:plan": "/bin/bash scripts/ios-release-plan.sh",
"ios:release:prepare": "/bin/bash scripts/ios-release-prepare.sh",
"ios:release:signing:check": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_check'",
"ios:release:signing:plan": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_plan'",
"ios:release:signing:setup": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_setup'",
"ios:release:signing:sync:pull": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_sync_pull'",
"ios:release:signing:sync:push": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_sync_push'",
"ios:release:upload": "node scripts/mobile-release.mjs run --platform ios",
"ios:run": "/bin/bash scripts/ios-run.sh",
"ios:screenshots": "/bin/bash scripts/ios-screenshots.sh",
"ios:version": "node --import ./scripts/tsx.mjs scripts/ios-version.ts --json",
"ios:version:check": "node --import ./scripts/tsx.mjs scripts/ios-sync-versioning.ts --check",
"ios:version:sync": "node --import ./scripts/tsx.mjs scripts/ios-sync-versioning.ts --write",
"leak:embedded-run": "node --import ./scripts/tsx.mjs --expose-gc scripts/embedded-run-abort-leak.ts",
"leak:embedded-run:liveness": "node --import ./scripts/tsx.mjs --expose-gc scripts/embedded-run-liveness-leak.ts",
"lint": "node --import ./scripts/tsx.mjs scripts/run-lint.mts",
"lint:agent:ingress-owner": "node --import ./scripts/tsx.mjs scripts/check-ingress-agent-owner-context.mts",
"lint:all": "node scripts/run-oxlint.mjs",
"lint:apps": "pnpm lint:swift",
"lint:auth:no-pairing-store-group": "node --import ./scripts/tsx.mjs scripts/check-no-pairing-store-group-auth.mts",
"lint:auth:pairing-account-scope": "node --import ./scripts/tsx.mjs scripts/check-pairing-account-scope.mts",
"lint:core": "node --import ./scripts/tsx.mjs scripts/run-oxlint-shards.mts --only=core",
"lint:docker-e2e": "node --import ./scripts/tsx.mjs scripts/check-docker-e2e-boundaries.mts",
"lint:docs": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-cli2.jsonc",
"lint:docs:fix": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-cli2.jsonc --fix",
"lint:extensions": "node scripts/run-oxlint.mjs --tsconfig extensions/tsconfig.json extensions",
"lint:extensions:no-deprecated-channel-access": "node --import ./scripts/tsx.mjs scripts/check-no-deprecated-channel-access.ts",
"lint:extensions:no-guarded-wildcard-reexports": "node --import ./scripts/tsx.mjs scripts/check-extension-wildcard-reexports.mts",
"lint:extensions:no-normalization-core-bypass": "node --import ./scripts/tsx.mjs scripts/check-extension-plugin-sdk-boundary.mts --mode=normalization-core-bypass",
"lint:extensions:no-plugin-sdk-wildcard-reexports": "node --import ./scripts/tsx.mjs scripts/check-plugin-sdk-wildcard-reexports.mts",
"lint:extensions:no-relative-outside-package": "node --import ./scripts/tsx.mjs scripts/check-extension-plugin-sdk-boundary.mts --mode=relative-outside-package",
"lint:extensions:no-src-outside-plugin-sdk": "node --import ./scripts/tsx.mjs scripts/check-extension-plugin-sdk-boundary.mts --mode=src-outside-plugin-sdk",
"lint:extensions:telegram-grammy-types": "node --import ./scripts/tsx.mjs scripts/check-telegram-grammy-types-imports.mts",
"lint:fix": "node scripts/run-oxlint.mjs --fix && pnpm format",
"lint:kysely": "node --import ./scripts/tsx.mjs scripts/check-kysely-guardrails.mts",
"lint:no-chained-type-assertions": "node scripts/run-oxlint.mjs --openclaw-focused-config --config config/oxlint/boundary-guards.json src extensions packages ui/src cli-root-options.mjs docker-entrypoint.mjs gateway-prewarm.mjs gateway-run-argv.mjs gateway-shutdown-budget.mjs node-compile-cache.mjs node-host-launcher.mjs node-runtime-env.mjs node-runtime-recovery.mjs node-runtime-update.mjs node-sqlite.mjs node-version.mjs openclaw.mjs worker-heap-flag.mjs scripts/openclaw-immutable-launcher.mjs scripts/freebsd-service-inspect.mjs",
"lint:no-widen-then-assert": "node scripts/run-oxlint.mjs --openclaw-focused-config --config config/oxlint/boundary-guards.json src extensions packages ui/src cli-root-options.mjs docker-entrypoint.mjs gateway-prewarm.mjs gateway-run-argv.mjs gateway-shutdown-budget.mjs node-compile-cache.mjs node-host-launcher.mjs node-runtime-env.mjs node-runtime-recovery.mjs node-runtime-update.mjs node-sqlite.mjs node-version.mjs openclaw.mjs worker-heap-flag.mjs scripts/openclaw-immutable-launcher.mjs scripts/freebsd-service-inspect.mjs",
"lint:plugins:no-extension-imports": "node --import ./scripts/tsx.mjs scripts/check-plugin-extension-import-boundary.mts",
"lint:plugins:no-extension-src-imports": "node --import ./scripts/tsx.mjs scripts/check-no-extension-src-imports.ts",
"lint:plugins:no-extension-test-core-imports": "node --import ./scripts/tsx.mjs scripts/check-no-extension-test-core-imports.ts",
"lint:plugins:no-monolithic-plugin-sdk-entry-imports": "node --import ./scripts/tsx.mjs scripts/check-no-monolithic-plugin-sdk-entry-imports.ts",
"lint:plugins:no-register-http-handler": "node scripts/run-oxlint.mjs --openclaw-focused-config --config config/oxlint/boundary-guards.json src extensions",
"lint:plugins:plugin-sdk-subpaths-exported": "node --import ./scripts/tsx.mjs scripts/check-plugin-sdk-subpath-exports.mts",
"lint:scripts": "pnpm lint:docker-e2e && pnpm lint:tmp:no-raw-http2-imports && node scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.scripts.json scripts",
"lint:swift": "./scripts/lint-swift.sh",
"lint:templates": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-templates.jsonc",
"lint:templates:fix": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-templates.jsonc --fix",
"lint:tmp:channel-agnostic-boundaries": "node --import ./scripts/tsx.mjs scripts/check-channel-agnostic-boundaries.mts",
"lint:tmp:dynamic-import-warts": "node --import ./scripts/tsx.mjs scripts/check-dynamic-import-warts.mts",
"lint:tmp:export-name-collisions": "node --import ./scripts/tsx.mjs scripts/check-export-name-collisions.mts",
"lint:tmp:no-random-messaging": "node --import ./scripts/tsx.mjs scripts/check-no-random-messaging-tmp.mts",
"lint:tmp:no-raw-channel-fetch": "node --import ./scripts/tsx.mjs scripts/check-no-raw-channel-fetch.mts",
"lint:tmp:no-raw-http2-imports": "node --import ./scripts/tsx.mjs scripts/check-no-raw-http2-imports.mts",
"lint:tmp:session-accessor-boundary": "node --import ./scripts/tsx.mjs scripts/check-session-accessor-boundary.mts",
"lint:tmp:session-accessor-boundary:gen": "node --import ./scripts/tsx.mjs scripts/check-session-accessor-boundary.mts --update-debt-baseline",
"lint:tmp:session-transcript-reader-boundary": "node --import ./scripts/tsx.mjs scripts/check-session-transcript-reader-boundary.mts",
"lint:tmp:sqlite-transaction-boundary": "node --import ./scripts/tsx.mjs scripts/check-sqlite-transaction-boundary.mts",
"lint:tmp:tsgo-core-boundary": "node --import ./scripts/tsx.mjs scripts/check-tsgo-core-boundary.mts",
"lint:ui:i18n": "pnpm ui:i18n:verify",
"lint:ui:lit": "lit-analyzer \"ui/src/**/*.ts\" --quiet",
"lint:ui:no-raw-window-open": "node scripts/run-oxlint.mjs --openclaw-focused-config --config config/oxlint/boundary-guards.json ui/src",
"lint:ui:styles": "stylelint --config config/stylelint.config.mjs \"ui/src/**/*.css\" \"ui/src/**/*.{ts,tsx}\" \"ui/public/themes/*.css\"",
"lint:web-fetch-provider-boundaries": "node --import ./scripts/tsx.mjs scripts/check-web-fetch-provider-boundaries.mts",
"lint:webhook:no-low-level-body-read": "node --import ./scripts/tsx.mjs scripts/check-webhook-auth-body-order.mts",
"mac:open": "open dist/OpenClaw.app",
"mac:package": "/bin/bash scripts/package-mac-app.sh",
"mac:restart": "/bin/bash scripts/restart-mac.sh",
"maturity:check": "node --import ./scripts/tsx.mjs scripts/qa/render-maturity-docs.ts --check",
"maturity:render": "node --import ./scripts/tsx.mjs scripts/qa/render-maturity-docs.ts",
"mobile:release:notes": "node --import ./scripts/tsx.mjs scripts/mobile-release-notes.ts",
"mobile:release:preflight": "node --import ./scripts/tsx.mjs scripts/mobile-release-ref.ts preflight",
"mobile:release:record": "node --import ./scripts/tsx.mjs scripts/mobile-release-ref.ts record",
"mobile:release:resolve": "node --import ./scripts/tsx.mjs scripts/mobile-release-ref.ts resolve",
"native-catalogs:check": "node scripts/generate-native-session-catalogs.mjs --check",
"native-catalogs:gen": "node scripts/generate-native-session-catalogs.mjs",
"native:i18n:baseline": "node --import ./scripts/tsx.mjs scripts/native-app-i18n.ts baseline --write",
"native:i18n:check": "node --import ./scripts/tsx.mjs scripts/native-app-i18n.ts check",
"native:i18n:sync": "node --import ./scripts/tsx.mjs scripts/native-app-i18n.ts sync --write",
"native:i18n:verify": "node --import ./scripts/tsx.mjs scripts/native-app-i18n.ts verify",
"openclaw": "node scripts/run-node.mjs",
"openclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
"perf:kova:summary": "node --import ./scripts/tsx.mjs scripts/kova-ci-summary.mts",
"perf:redaction": "node --import ./scripts/tsx.mjs scripts/bench-redaction-prefilters.ts",
"perf:source:summary": "node --import ./scripts/tsx.mjs scripts/openclaw-performance-source-summary.mts",
"perf:web-fetch": "node --import ./scripts/tsx.mjs scripts/bench-web-fetch.ts",
"perf:write-diff": "node --import ./scripts/tsx.mjs scripts/bench-write-diff.ts",
"plugin-sdk:api:diff": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/plugin-sdk-api-diff.mts",
"plugin-sdk:check-exports": "node --import ./scripts/tsx.mjs scripts/sync-plugin-sdk-exports.mts --check",
"plugin-sdk:shipped-surface:gen": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/plugin-sdk-shipped-surface.mts",
"plugin-sdk:surface": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/plugin-sdk-surface-report.mts",
"plugin-sdk:surface:check": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/plugin-sdk-surface-report.mts --check",
"plugin-sdk:sync-exports": "node --import ./scripts/tsx.mjs scripts/sync-plugin-sdk-exports.mts",
"plugin-sdk:usage": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/analyze-plugin-sdk-usage.ts",
"plugins:assets:build": "node --import ./scripts/tsx.mjs scripts/bundled-plugin-assets.mts --phase build",
"plugins:assets:check": "node --import ./scripts/tsx.mjs scripts/bundled-plugin-assets.mts --phase build --check",
"plugins:assets:copy": "node --import ./scripts/tsx.mjs scripts/bundled-plugin-assets.mts --phase copy",
"plugins:boundary-report": "node --import ./scripts/tsx.mjs scripts/plugin-boundary-report.ts",
"plugins:boundary-report:ci": "node --import ./scripts/tsx.mjs scripts/plugin-boundary-report.ts --summary --fail-on-eligible-compat",
"plugins:boundary-report:json": "node --import ./scripts/tsx.mjs scripts/plugin-boundary-report.ts --json",
"plugins:boundary-report:summary": "node --import ./scripts/tsx.mjs scripts/plugin-boundary-report.ts --summary",
"plugins:inventory:check": "node --import ./scripts/tsx.mjs scripts/generate-plugin-inventory-doc.mts --check",
"plugins:inventory:gen": "node --import ./scripts/tsx.mjs scripts/generate-plugin-inventory-doc.mts --write",
"plugins:inventory:json": "node scripts/generate-plugin-inventory-doc.mts --json",
"plugins:sync": "node --import ./scripts/tsx.mjs scripts/sync-plugin-versions.ts",
"plugins:sync:check": "node --import ./scripts/tsx.mjs scripts/sync-plugin-versions.ts --check",
"pnpm:devPreinstall": "node scripts/check-install-dependency-ownership.mjs",
"policy:config-coverage": "node --import ./scripts/tsx.mjs scripts/check-policy-config-coverage.ts",
"postinstall": "node scripts/postinstall-bundled-plugins.mjs",
"preinstall": "node scripts/preinstall-package-manager-warning.mjs",
"prepush:ci": "bash scripts/prepush-ci.sh",
"probe:anthropic:prompt": "node --import ./scripts/tsx.mjs scripts/anthropic-prompt-probe.ts",
"prompt:snapshots:check": "node --import ./scripts/tsx.mjs scripts/generate-prompt-snapshots.ts --check",
"prompt:snapshots:gen": "node --import ./scripts/tsx.mjs scripts/generate-prompt-snapshots.ts --write",
"prompt:snapshots:sync-codex-model": "node --import ./scripts/tsx.mjs scripts/sync-codex-model-prompt-fixture.ts",
"protocol-registry:check": "node --import ./scripts/tsx.mjs scripts/check-protocol-registry.mts",
"protocol:check": "pnpm protocol-registry:check && pnpm protocol:gen && node scripts/prepare-native-protocol.mjs --check && node --import ./scripts/tsx.mjs scripts/check-protocol-since.mts",
"protocol:check:kotlin": "node scripts/prepare-native-protocol.mjs --language kotlin --check",
"protocol:check:swift": "node scripts/prepare-native-protocol.mjs --language swift --check",
"protocol:gen": "node --import ./scripts/tsx.mjs scripts/protocol-gen.ts",
"protocol:gen:kotlin": "node scripts/prepare-native-protocol.mjs --language kotlin",
"protocol:gen:swift": "node scripts/prepare-native-protocol.mjs --language swift",
"proxy:coverage": "node scripts/run-node.mjs proxy coverage",
"proxy:gateway": "node scripts/run-node.mjs proxy run -- node scripts/run-node.mjs gateway",
"proxy:install-ca": "node --import ./scripts/tsx.mjs scripts/proxy-install-ca.mts",
"proxy:run": "node scripts/run-node.mjs proxy run",
"proxy:start": "node scripts/run-node.mjs proxy start",
"qa:code-mode-models": "node --import ./scripts/tsx.mjs scripts/code-mode-model-matrix.ts",
"qa:e2e": "node --import ./scripts/tsx.mjs scripts/qa-e2e.ts",
"qa:lab:build": "node scripts/run-node-package-bin.mts vite build --config extensions/qa-lab/web/vite.config.ts",
"qa:lab:ui": "pnpm openclaw qa ui",
"qa:lab:up": "node --import ./scripts/tsx.mjs scripts/qa-lab-up.ts",
"qa:lab:up:fast": "node --import ./scripts/tsx.mjs scripts/qa-lab-up.ts --use-prebuilt-image --bind-ui-dist --skip-ui-build",
"qa:lab:watch": "node scripts/run-node-package-bin.mts vite build --watch --config extensions/qa-lab/web/vite.config.ts",
"qa:observability:collector-smoke": "pnpm qa:otel:collector-smoke && pnpm qa:prometheus:smoke",
"qa:observability:smoke": "pnpm qa:otel:smoke && pnpm qa:prometheus:smoke",
"qa:otel:collector-smoke": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/runtime/qa-otel-smoke-runtime.ts --collector docker",
"qa:otel:smoke": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/runtime/qa-otel-smoke-runtime.ts",
"qa:prometheus:smoke": "node scripts/run-node.mjs qa suite --provider-mode mock-openai --scenario docker-prometheus-smoke --concurrency 1 --fast",
"release-metadata:check": "node --import ./scripts/tsx.mjs scripts/check-release-metadata-only.mts",
"release:approve": "node --import ./scripts/tsx.mjs scripts/release-approve.mts",
"release:backport-companions": "node scripts/release-backport-companions.mjs",
"release:backport-probe": "node scripts/release-backport-probe.mjs",
"release:beta": "node --import ./scripts/tsx.mjs scripts/release-candidate-checklist.mts",
"release:beta-smoke": "node --import ./scripts/tsx.mjs scripts/release-beta-smoke.ts",
"release:candidate": "node --import ./scripts/tsx.mjs scripts/release-candidate-checklist.mts",
"release:check": "pnpm build:package && pnpm release:generated:check && node --import ./scripts/tsx.mjs scripts/release-check.ts",
"release:clawhub-recovery": "node scripts/plugin-clawhub-recovery.mjs",
"release:fast-pretag-check": "bash scripts/release-fast-pretag-check.sh",
"release:generated:check": "node scripts/release-preflight.mjs --check",
"release:openclaw:npm:check": "node --import ./scripts/tsx.mjs scripts/openclaw-npm-release-check.ts",
"release:openclaw:npm:verify-published": "node --import ./scripts/tsx.mjs scripts/openclaw-npm-postpublish-verify.ts",
"release:plugins:clawhub:check": "node --import ./scripts/tsx.mjs scripts/plugin-clawhub-release-check.ts",
"release:plugins:clawhub:plan": "node --import ./scripts/tsx.mjs scripts/plugin-clawhub-release-plan.ts",
"release:plugins:npm:check": "node --import ./scripts/tsx.mjs scripts/plugin-npm-release-check.ts",
"release:plugins:npm:plan": "node --import ./scripts/tsx.mjs scripts/plugin-npm-release-plan.ts",
"release:prep": "node scripts/release-preflight.mjs --fix",
"release:prep:version": "node scripts/release-preflight.mjs --fix --scope version",
"release:prepare": "node --import ./scripts/tsx.mjs scripts/release-prepare.ts",
"release:prepush": "node --import ./scripts/tsx.mjs scripts/release-prepush.mts",
"release:publish-preflight": "node --import ./scripts/tsx.mjs scripts/release-publish-preflight.mts",
"release:push": "node --import ./scripts/tsx.mjs scripts/release-prepush.mts --push",
"release:stable": "node --import ./scripts/tsx.mjs scripts/release-stable.mts",
"release:verify-beta": "node --import ./scripts/tsx.mjs scripts/release-verify-beta.ts",
"release:version": "node --import ./scripts/tsx.mjs scripts/release-version.ts",
"runtime-sidecars:check": "node --import ./scripts/tsx.mjs scripts/generate-runtime-sidecar-paths-baseline.ts --check",
"runtime-sidecars:gen": "node --import ./scripts/tsx.mjs scripts/generate-runtime-sidecar-paths-baseline.ts --write",
"sqlite:sessions-schema:check": "node --import ./scripts/tsx.mjs scripts/generate-sqlite-session-schema-baseline.ts --check",
"sqlite:sessions-schema:gen": "node --import ./scripts/tsx.mjs scripts/generate-sqlite-session-schema-baseline.ts --write",
"start": "node openclaw.mjs",
"test": "node scripts/test-projects.mts",
"test:agents:concurrency": "node --import ./scripts/tsx.mjs scripts/bench-agent-concurrency.ts",
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
"test:auth:compat": "node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts && node scripts/run-vitest.mjs run packages/gateway-protocol/src/connect-error-details.test.ts",
"test:build:singleton": "node --import ./scripts/tsx.mjs scripts/test-built-plugin-singleton.mts",
"test:build:status-message-runtime": "node --import ./scripts/tsx.mjs scripts/test-built-status-message-runtime.mts",
"test:bundled": "node scripts/run-vitest.mjs run --config test/vitest/vitest.bundled.config.ts",
"test:changed": "node scripts/test-projects.mts --changed origin/main",
"test:changed:max": "node scripts/test-projects-max.mts --changed origin/main",
"test:channels": "node scripts/run-vitest.mjs run --config test/vitest/vitest.channels.config.ts",
"test:ci-failed": "node --import ./scripts/tsx.mjs scripts/ci-failed-tests.mts",
"test:cli-response:contract": "node --import ./scripts/tsx.mjs scripts/build-all.mts cliStartup && node --import ./scripts/tsx.mjs scripts/test-cli-startup-bench-budget.mts --preset response --runs 1 --warmup 0 --timeout-ms 10000 --skip-baseline",
"test:contracts": "pnpm test:contracts:channels && pnpm test:contracts:plugins",
"test:contracts:channels": "node scripts/test-projects.mts --maxWorkers=1 test/vitest/vitest.contracts-channel-surface.config.ts test/vitest/vitest.contracts-channel-config.config.ts test/vitest/vitest.contracts-channel-registry.config.ts test/vitest/vitest.contracts-channel-session.config.ts",
"test:contracts:plugins": "node scripts/test-projects.mts --maxWorkers=1 src/plugins/contracts",
"test:coverage": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --coverage",
"test:coverage:changed": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --coverage --changed origin/main",
"test:docker:agent-bundle-mcp-tools": "bash scripts/e2e/agent-bundle-mcp-tools-docker.sh",
"test:docker:agents-delete-shared-workspace": "bash scripts/e2e/agents-delete-shared-workspace-docker.sh",
"test:docker:all": "node scripts/test-docker-all.mjs",
"test:docker:browser-cdp-snapshot": "bash scripts/e2e/browser-cdp-snapshot-docker.sh",
"test:docker:bundled-plugin-install-uninstall": "bash scripts/e2e/bundled-plugin-install-uninstall-docker.sh",
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
"test:docker:cli-installer-distribution": "bash scripts/e2e/cli-installer-distribution-docker.sh",
"test:docker:codex-media-path": "bash scripts/e2e/codex-media-path-docker.sh",
"test:docker:codex-on-demand": "bash scripts/e2e/codex-on-demand-docker.sh",
"test:docker:compose-setup": "bash scripts/e2e/compose-setup.sh",
"test:docker:config-reload": "bash scripts/e2e/config-reload-source-docker.sh",
"test:docker:container-image-upgrade": "bash scripts/e2e/container-image-upgrade-docker.sh",
"test:docker:cron-cli": "bash scripts/e2e/cron-cli-docker.sh",
"test:docker:cron-mcp-cleanup": "bash scripts/e2e/cron-mcp-cleanup-docker.sh",
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
"test:docker:dreaming-cron-doctor": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=openclaw@2026.9.6 OPENCLAW_UPGRADE_SURVIVOR_CANDIDATE=current OPENCLAW_UPGRADE_SURVIVOR_SCENARIO=dreaming-cron-doctor OPENCLAW_UPGRADE_SURVIVOR_UPDATE_RESTART_MODE=manual OPENCLAW_UPGRADE_SURVIVOR_ROOT_MANAGED_VPS=0 OPENCLAW_UPGRADE_SURVIVOR_LIVE_MODELS= OPENCLAW_UPGRADE_SURVIVOR_LIVE_OPENAI=0 bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:e2e-build": "bash scripts/e2e/build-image.sh",
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
"test:docker:kitchen-sink-plugin": "bash scripts/e2e/kitchen-sink-plugin-docker.sh",
"test:docker:kitchen-sink-rpc": "bash scripts/e2e/kitchen-sink-rpc-docker.sh",
"test:docker:live-acp-bind": "bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:claude": "OPENCLAW_LIVE_ACP_BIND_AGENT=claude bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:codex": "OPENCLAW_LIVE_ACP_BIND_AGENT=codex bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:droid": "OPENCLAW_LIVE_ACP_BIND_AGENT=droid OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1 bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:gemini": "OPENCLAW_LIVE_ACP_BIND_AGENT=gemini bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:opencode": "OPENCLAW_LIVE_ACP_BIND_AGENT=opencode OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1 bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-anthropic-cache": "bash scripts/e2e/anthropic-cache-live-docker.sh",
"test:docker:live-build": "bash scripts/test-live-build-docker.sh",
"test:docker:live-cli-backend": "bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude-subscription": "OPENCLAW_LIVE_CLI_BACKEND_AUTH=subscription OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_DISABLE_MCP_CONFIG=1 OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0 OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=0 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=0 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude:cache": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_AUTH=api-key OPENCLAW_LIVE_CLI_BACKEND_CACHE_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude:mcp": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude:resume": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini:mcp": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini:resume": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-codex-bind": "OPENCLAW_LIVE_CODEX_BIND=1 OPENCLAW_LIVE_CODEX_TEST_FILES=src/gateway/gateway-codex-bind.live.test.ts bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-harness": "bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-media-path": "OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key OPENCLAW_LIVE_CODEX_HARNESS_CHAT_IMAGE_PROBE=1 OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0 bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-npm-plugin": "bash scripts/e2e/codex-npm-plugin-live-docker.sh",
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-gateway:claude": "OPENCLAW_LIVE_GATEWAY_PROVIDERS=claude-cli OPENCLAW_LIVE_GATEWAY_MODELS=claude-cli/claude-sonnet-4-6 bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-gateway:gemini": "OPENCLAW_LIVE_GATEWAY_PROVIDERS=google-gemini-cli OPENCLAW_LIVE_GATEWAY_MODELS=google-gemini-cli/gemini-3.1-pro-preview bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-mcp-code-mode-gateway": "bash scripts/e2e/mcp-code-mode-gateway-live-docker.sh",
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
"test:docker:live-models:claude": "OPENCLAW_LIVE_PROVIDERS=claude-cli OPENCLAW_LIVE_MODELS=claude-cli/claude-sonnet-4-6 bash scripts/test-live-models-docker.sh",
"test:docker:live-models:gemini": "OPENCLAW_LIVE_PROVIDERS=google-gemini-cli OPENCLAW_LIVE_MODELS=google-gemini-cli/gemini-3.1-pro-preview bash scripts/test-live-models-docker.sh",
"test:docker:live-muse": "bash scripts/e2e/muse-live-docker.sh",
"test:docker:live-plugin-tool": "bash scripts/e2e/live-plugin-tool-docker.sh",
"test:docker:live-subagent-announce": "bash scripts/test-live-subagent-announce-docker.sh",
"test:docker:live:all": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_DOCKER_ALL_LIVE_MODE=only -- node scripts/test-docker-all.mjs",
"test:docker:local:all": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_DOCKER_ALL_LIVE_MODE=skip -- node scripts/test-docker-all.mjs",
"test:docker:mcp-channels": "bash scripts/e2e/mcp-channels-docker.sh",
"test:docker:mcp-code-mode-gateway": "bash scripts/e2e/mcp-code-mode-gateway-docker.sh",
"test:docker:multi-node-update": "bash scripts/e2e/multi-node-update-docker.sh",
"test:docker:muse-runtime": "bash scripts/e2e/muse-runtime-docker.sh",
"test:docker:npm-onboard-channel-agent": "bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-onboard-discord-channel-agent": "OPENCLAW_NPM_ONBOARD_CHANNEL=discord bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-onboard-slack-channel-agent": "OPENCLAW_NPM_ONBOARD_CHANNEL=slack bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-telegram-live": "bash scripts/e2e/npm-telegram-live-docker.sh",
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
"test:docker:openai-chat-tools": "bash scripts/e2e/openai-chat-tools-docker.sh",
"test:docker:openai-image-auth": "bash scripts/e2e/openai-image-auth-docker.sh",
"test:docker:openai-web-search-minimal": "bash scripts/e2e/openai-web-search-minimal-docker.sh",
"test:docker:openwebui": "bash scripts/e2e/openwebui-docker.sh",
"test:docker:package-install": "bash scripts/e2e/docker-package-install.sh",
"test:docker:plugin-binding-command-escape": "bash scripts/e2e/plugin-binding-command-escape-docker.sh",
"test:docker:plugin-lifecycle-matrix": "bash scripts/e2e/plugin-lifecycle-matrix-docker.sh",
"test:docker:plugin-update": "bash scripts/e2e/plugin-update-unchanged-docker.sh",
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
"test:docker:published-driver-lifecycle": "node scripts/e2e/published-driver-lifecycle-docker.mjs",
"test:docker:published-driver-scoped-restore": "env OPENCLAW_PUBLISHED_DRIVER_SCOPED_RESTORE=1 bash scripts/e2e/published-driver-update-docker.sh",
"test:docker:published-driver-update": "bash scripts/e2e/published-driver-update-docker.sh",
"test:docker:published-upgrade-survivor": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_DOCKER_ALL_LANES=published-upgrade-survivor -- node scripts/test-docker-all.mjs",
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
"test:docker:release-media-memory": "bash scripts/e2e/release-media-memory-docker.sh",
"test:docker:release-plugin-marketplace": "bash scripts/e2e/release-plugin-marketplace-docker.sh",
"test:docker:release-typed-onboarding": "bash scripts/e2e/release-typed-onboarding-docker.sh",
"test:docker:release-upgrade-user-journey": "bash scripts/e2e/release-upgrade-user-journey-docker.sh",
"test:docker:release-user-journey": "bash scripts/e2e/release-user-journey-docker.sh",
"test:docker:rerun": "node --import ./scripts/tsx.mjs scripts/docker-e2e-rerun.mts",
"test:docker:root-managed-vps-upgrade": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_ROOT_MANAGED_VPS=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=${OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC:-openclaw@latest} OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT=${OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT:-1500s} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:sandbox-browser-sidecar": "bash scripts/e2e/sandbox-browser-sidecar-docker.sh",
"test:docker:selected-plugins": "bash scripts/e2e/docker-selected-plugins.sh",
"test:docker:session-runtime-context": "bash scripts/e2e/session-runtime-context-docker.sh",
"test:docker:skill-install": "bash scripts/e2e/skill-install-docker.sh",
"test:docker:system-agent-first-run": "bash scripts/e2e/system-agent-first-run-docker.sh",
"test:docker:system-agent-rescue": "bash scripts/e2e/system-agent-rescue-docker.sh",
"test:docker:timings": "node --import ./scripts/tsx.mjs scripts/docker-e2e-timings.mts",
"test:docker:update-channel-switch": "bash scripts/e2e/update-channel-switch-docker.sh",
"test:docker:update-corrupt-plugin": "bash scripts/e2e/update-corrupt-plugin-docker.sh",
"test:docker:update-first-hop-compat": "bash scripts/e2e/update-first-hop-compat-docker.sh",
"test:docker:update-migration": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=${OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC:-openclaw@latest} OPENCLAW_UPGRADE_SURVIVOR_SCENARIO=${OPENCLAW_UPGRADE_SURVIVOR_SCENARIO:-plugin-deps-cleanup} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:update-restart-auth": "env OPENCLAW_UPGRADE_SURVIVOR_UPDATE_RESTART_MODE=auto-auth OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT=${OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT:-1500s} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:upgrade-survivor": "bash scripts/e2e/upgrade-survivor-docker.sh",
"test:e2e": "pnpm test:e2e:gateway && pnpm test:e2e:agent-plugin-gateway && pnpm test:ui:e2e",
"test:e2e:agent-plugin-gateway": "node --import ./scripts/tsx.mjs scripts/agent-plugin-gateway-e2e.ts",
"test:e2e:browser-extension": "node --import ./scripts/tsx.mjs scripts/build-all.mts qaRuntime && node --import ./scripts/tsx.mjs scripts/run-with-env.mts PLAYWRIGHT_BROWSERS_PATH=.artifacts/playwright-browsers -- node --import ./scripts/tsx.mjs scripts/ensure-playwright-chromium.mts --require-playwright-chromium && node --import ./scripts/tsx.mjs scripts/run-with-env.mts PLAYWRIGHT_BROWSERS_PATH=.artifacts/playwright-browsers OPENCLAW_BROWSER_EXTENSION_E2E=1 OPENCLAW_E2E_WORKERS=1 -- node scripts/run-vitest.mjs extensions/browser/chrome-extension/bootstrap.chromium.test.ts",
"test:e2e:browser-mcp": "node --import ./scripts/tsx.mjs scripts/ensure-playwright-chromium.mts --require-playwright-chromium && node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_BROWSER_MCP_E2E=1 OPENCLAW_BROWSER_WAIT_E2E=1 OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs extensions/browser/src/browser/chrome-mcp.chromium.test.ts extensions/browser/src/browser/chrome-mcp-labels.chromium.test.ts extensions/browser/src/browser/routes/agent.act.wait-visibility.chromium.test.ts test/scripts/check-openclaw-package-tarball.bundled-mcp.test.ts",
"test:e2e:gateway": "node scripts/run-vitest.mjs run --config test/vitest/vitest.e2e.config.ts",
"test:e2e:node-auto-update": "node scripts/e2e/lib/node-auto-update/scenario.mjs",
"test:e2e:openshell": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_E2E_OPENSHELL=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.e2e.config.ts extensions/openshell/src/backend.e2e.test.ts",
"test:env-mutations:report": "node --import ./scripts/tsx.mjs scripts/test-env-mutation-report.ts",
"test:extension": "node --import ./scripts/tsx.mjs scripts/test-extension.mts",
"test:extensions": "node scripts/test-projects.mts extensions",
"test:extensions:batch": "node scripts/test-extension-batch.mts",
"test:extensions:memory": "node --import ./scripts/tsx.mjs scripts/profile-extension-memory.mts",
"test:extensions:package-boundary": "node --import ./scripts/tsx.mjs scripts/check-extension-package-tsc-boundary.mts",
"test:extensions:package-boundary:canary": "node --import ./scripts/tsx.mjs scripts/check-extension-package-tsc-boundary.mts --mode=canary",
"test:extensions:package-boundary:compile": "node --import ./scripts/tsx.mjs scripts/check-extension-package-tsc-boundary.mts --mode=compile",
"test:fast": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts",
"test:force": "node --import ./scripts/tsx.mjs scripts/test-force.ts",
"test:freebsd:service-inspect": "node scripts/test-freebsd-service-inspect.mjs",
"test:gateway": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_GATEWAY_PROJECT_SHARDS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts",
"test:gateway:concurrency": "node scripts/bench-gateway-concurrency.ts",
"test:gateway:cpu-scenarios": "node --import ./scripts/tsx.mjs scripts/check-gateway-cpu-scenarios.mts",
"test:gateway:memory-fd-repro": "node --import ./scripts/tsx.mjs scripts/check-memory-fd-repro.mts",
"test:gateway:watch-regression": "node --import ./scripts/tsx.mjs scripts/check-gateway-watch-regression.mts",
"test:gateway:worker-commit": "node --import ./scripts/tsx.mjs scripts/bench-worker-transcript-commit.ts",
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
"test:install:e2e:anthropic": "OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
"test:install:e2e:openai": "OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
"test:live": "node --import ./scripts/tsx.mjs scripts/test-live.mts",
"test:live:cache": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 -- node --import ./scripts/tsx.mjs scripts/test-live.mts src/agents/live-cache-regression.live.test.ts",
"test:live:codex-harness": "node --import ./scripts/tsx.mjs scripts/test-live.mts --codex-harness -- src/gateway/gateway-codex-harness.live.test.ts",
"test:live:gateway-profiles": "node --import ./scripts/tsx.mjs scripts/test-live.mts -- src/gateway/gateway-models.profiles.live.test.ts",
"test:live:media": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/media/hosted-media-provider-live.ts",
"test:live:media:image": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/media/hosted-media-provider-live.ts image",
"test:live:media:music": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/media/hosted-media-provider-live.ts music",
"test:live:media:video": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/media/hosted-media-provider-live.ts video",
"test:live:models-profiles": "node --import ./scripts/tsx.mjs scripts/test-live.mts -- src/agents/models.profiles.live.test.ts",
"test:live:system-agent-rescue-channel": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_LIVE_SYSTEM_AGENT_RESCUE_CHANNEL=1 -- node --import ./scripts/tsx.mjs scripts/test-live.mts -- src/system-agent/rescue-channel.live.test.ts",
"test:macos:ci": "pnpm test:macos:ci:1 && pnpm test:macos:ci:2 && pnpm test:macos:ci:3",
"test:macos:ci:1": "node scripts/test-projects.mts test/scripts/mac-elevation-host.test.ts",
"test:macos:ci:2": "node scripts/test-projects.mts test/scripts/vitest-process-group.test.ts test/scripts/package-mac-app.test.ts test/scripts/generate-gateway-protocol-plugin.test.ts test/scripts/stage-cloudflared-macos.test.ts test/scripts/stage-openclaw-bun.test.ts test/scripts/build-mac-sqlite.test.ts test/scripts/restart-mac.test.ts test/scripts/mac-runtime.test.ts test/scripts/package-mac-dist.test.ts test/scripts/codesign-mac-app.test.ts test/scripts/notarize-mac-artifact.test.ts test/scripts/mac-elevation-artifact.test.ts",
"test:macos:ci:3": "node scripts/test-projects.mts test/scripts/ci-platform-checkout.test.ts test/scripts/macos-native-test-launch.test.ts src/daemon/launchd.test.ts src/daemon/runtime-paths.test.ts src/daemon/runtime-binary.test.ts src/gateway/worker-environments/workspace-rsync-path.test.ts src/infra/brew.test.ts src/infra/stable-node-path.test.ts src/process/supervisor/adapters/child.service-lifecycle.test.ts test/scripts/verify-mac-runtime-fs.test.ts test/scripts/create-dmg.test.ts src/skills/runtime/discovery.integration.test.ts src/skills/runtime/refresh.workspace.test.ts",
"test:max": "node scripts/test-projects-max.mts",
"test:parallels:linux": "/bin/bash scripts/e2e/parallels-linux-smoke.sh",
"test:parallels:macos": "/bin/bash scripts/e2e/parallels-macos-smoke.sh",
"test:parallels:npm-update": "/bin/bash scripts/e2e/parallels-npm-update-smoke.sh",
"test:parallels:windows": "/bin/bash scripts/e2e/parallels-windows-smoke.sh",
"test:parallels:windows:prepare": "/bin/bash scripts/e2e/parallels-windows-prepare.sh",
"test:perf:budget": "node --import ./scripts/tsx.mjs scripts/test-perf-budget.mts",
"test:perf:changed:bench": "node --import ./scripts/tsx.mjs scripts/bench-test-changed.mts",
"test:perf:groups": "node --import ./scripts/tsx.mjs scripts/test-group-report.mts",
"test:perf:groups:compare": "node --import ./scripts/tsx.mjs scripts/test-group-report.mts --compare",
"test:perf:hotspots": "node --import ./scripts/tsx.mjs scripts/test-hotspots.mts",
"test:perf:imports": "node scripts/test-projects-imports.mts",
"test:perf:imports:changed": "node scripts/test-projects-imports.mts --changed origin/main",
"test:perf:profile:main": "node --import ./scripts/tsx.mjs scripts/run-vitest-profile.mts main",
"test:perf:profile:runner": "node --import ./scripts/tsx.mjs scripts/run-vitest-profile.mts runner",
"test:plugins:gateway-gauntlet": "node --import ./scripts/tsx.mjs scripts/check-plugin-gateway-gauntlet.mts",
"test:plugins:init-provider-scaffold": "node --import ./scripts/tsx.mjs scripts/validate-plugin-init-provider-scaffold.ts",
"test:plugins:kitchen-sink-live": "bash -lc 'if [ -x \"$HOME/.local/bin/openclaw-testbox-env\" ]; then exec \"$HOME/.local/bin/openclaw-testbox-env\" pnpm openclaw qa suite --provider-mode live-frontier --scenario kitchen-sink-live-openai; fi; exec pnpm openclaw qa suite --provider-mode live-frontier --scenario kitchen-sink-live-openai'",
"test:plugins:kitchen-sink-rpc": "node --import ./scripts/tsx.mjs scripts/e2e/kitchen-sink-rpc-walk.mts",
"test:plugins:kitchen-sink-rpc:bun": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_ENTRY=./openclaw.mjs -- bun scripts/e2e/kitchen-sink-rpc-walk.mts",
"test:restart:gateway": "node --import ./scripts/tsx.mjs scripts/bench-gateway-restart.ts",
"test:sectriage": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_GATEWAY_PROJECT_SHARDS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts && node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --exclude src/process/exec.test.ts",
"test:serial": "node scripts/test-projects-serial.mts",
"test:sessions:history:bench": "node --import ./scripts/tsx.mjs scripts/bench-session-history.ts",
"test:sessions:hydration-memory": "node --import ./scripts/tsx.mjs scripts/bench-session-manager-hydration-memory.ts",
"test:sessions:paths:bench": "node --import ./scripts/tsx.mjs scripts/bench-session-paths.ts",
"test:sessions:write-hold": "node --import ./scripts/tsx.mjs scripts/bench-session-manager-write-hold.ts",
"test:skip-inventory:report": "node --import ./scripts/tsx.mjs scripts/test-skip-inventory.ts",
"test:sqlite:perf": "node --import ./scripts/tsx.mjs scripts/bench-sqlite-state.ts --profile default --output .artifacts/sqlite-perf/default.json",
"test:sqlite:perf:large": "node --import ./scripts/tsx.mjs scripts/bench-sqlite-state.ts --profile large --output .artifacts/sqlite-perf/large.json",
"test:sqlite:perf:smoke": "node --import ./scripts/tsx.mjs scripts/bench-sqlite-state.ts --profile smoke --output .artifacts/sqlite-perf/smoke.json",
"test:stability:gateway": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts src/gateway/gateway-stability.test.ts && node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.logging.config.ts src/logging/diagnostic-stability-bundle.test.ts && node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run src/infra/fatal-error-hooks.test.ts",
"test:startup:bench": "node --import ./scripts/tsx.mjs scripts/bench-cli-startup.ts",
"test:startup:bench:check": "node --import ./scripts/tsx.mjs scripts/test-cli-startup-bench-budget.mts",
"test:startup:bench:save": "node --import ./scripts/tsx.mjs scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json",
"test:startup:bench:smoke": "node --import ./scripts/tsx.mjs scripts/ensure-cli-startup-build.mts && node --import ./scripts/tsx.mjs scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json",
"test:startup:bench:update": "node --import ./scripts/tsx.mjs scripts/test-update-cli-startup-bench.mts",
"test:startup:gateway": "node --import ./scripts/tsx.mjs scripts/bench-gateway-startup.ts",
"test:startup:memory": "node --import ./scripts/tsx.mjs scripts/ensure-cli-startup-build.mts && node scripts/check-cli-startup-memory.mjs",
"test:type-suppression-inventory:report": "node --import ./scripts/tsx.mjs scripts/type-suppression-inventory.ts",
"test:ui": "pnpm lint:ui:no-raw-window-open && node --import ./scripts/tsx.mjs scripts/ensure-playwright-chromium.mts && pnpm --dir ui test",
"test:ui:e2e": "node --import ./scripts/tsx.mjs scripts/ensure-playwright-chromium.mts && node scripts/run-vitest.mjs run --config test/vitest/vitest.ui-e2e.config.ts --configLoader runner",
"test:unit": "pnpm test:unit:fast && node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts",
"test:unit:fast": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit-fast.config.ts",
"test:unit:fast:audit": "node --import ./scripts/tsx.mjs scripts/test-unit-fast-audit.mts",
"test:voicecall:closedloop": "node --import ./scripts/tsx.mjs scripts/test-voicecall-closedloop.mts",
"test:watch": "node scripts/test-projects.mts --watch",
"test:windows:ci": "pnpm test:windows:ci:1 && pnpm test:windows:ci:2",
"test:windows:ci:1": "node scripts/test-projects.mts extensions/acpx/src/runtime-argv.process.test.ts src/state/openclaw-state-ownership.test.ts src/snapshot/local-repository.windows.test.ts src/state/openclaw-database-paths.windows.test.ts src/infra/update-candidate-state.namespaced-paths.test.ts src/infra/update-candidate-state.budget.test.ts src/infra/update-candidate-state.cleanup.test.ts src/infra/update-candidate-state.online-backup.process.test.ts src/node-host/invoke-system-run-allowlist.test.ts src/node-host/invoke-agent-cli-claude.test.ts src/node-host/node-worker-transfer-client.test.ts packages/terminal-core/src/display-string.test.ts src/config/sessions/session-accessor.sqlite-archive.worker.test.ts src/cron/isolated-agent/session.preparation.storage-env.test.ts src/commands/doctor-gateway-auth-token.windows.test.ts src/commands/doctor-lint.state-isolation.test.ts src/flows/doctor-health-contributions.windows-cloud-state.test.ts src/infra/state-migrations.audit-logs.windows.test.ts src/infra/state-migrations.workspace-setup.windows.test.ts src/commands/backup-verify.test.ts src/commands/agents.commands.list.test.ts src/gateway/gateway-cron-process-identity.windows.test.ts src/node-host/node-worker-bundle-installer.test.ts test/scripts/check-openclaw-package-tarball.test.ts test/scripts/check-openclaw-package-tarball.bundled-mcp.test.ts test/scripts/direct-run-entrypoints.test.ts test/scripts/format-generated-module.test.ts test/scripts/openclaw-cross-os-installer.windows.test.ts test/scripts/openclaw-cross-os-release-workflow.test.ts test/scripts/pnpm-runner.test.ts test/scripts/run-with-env.test.ts test/scripts/ui.test.ts test/helpers/temp-dir.test.ts test/scripts/vitest-process-cache.test.ts test/scripts/vitest-process-group.test.ts test/scripts/vitest-worker-artifacts.test.ts src/agents/tools/media-tool-file-url.windows.test.ts extensions/memory-core/src/memory-extra-file-path.windows.test.ts src/daemon/schtasks.startup-fallback.test.ts src/daemon/schtasks.startup-launch.test.ts src/daemon/schtasks.settlement.test.ts src/daemon/schtasks-runtime-probe.windows.test.ts src/cli/update-cli/update-command-readiness.windows.test.ts src/infra/update-candidate-canary.cleanup.test.ts src/daemon/schtasks.env-case.real.test.ts test/e2e/qa-lab/runtime/package-openclaw-for-docker.e2e.test.ts extensions/lobster/src/lobster-runner.test.ts src/gateway/worker-environments/workspace-quiescence.windows.test.ts src/infra/git-exec.test.ts src/gateway/worker-environments/workspace-result-ref-mutation.test.ts extensions/memory-wiki/src/obsidian.discovery.test.ts src/infra/sqlite-private-directory.windows.test.ts src/skills/runtime/discovery.integration.test.ts src/skills/runtime/refresh.workspace.test.ts src/infra/sqlite-snapshot.test.ts src/infra/sqlite-snapshot-staging.cancellation.test.ts src/infra/sqlite-snapshot-retirement.test.ts src/infra/ports.test.ts src/infra/diagnostic-process-siblings.env.test.ts src/infra/windows-diagnostic-env.test.ts src/infra/windows-encoding.test.ts src/infra/windows-process-start.test.ts src/infra/windows-process-start.native.test.ts src/infra/advertised-lan-host.windows.test.ts src/infra/update-managed-service-handoff-database-publication.test.ts src/infra/update-managed-service-handoff-command.test.ts src/infra/update-managed-service-handoff-lifecycle.test.ts src/infra/executable-path.test.ts src/config/io.write-effects.windows.test.ts src/infra/fs-safe.test.ts src/infra/fs-safe-remove.test.ts src/infra/state-migrations.legacy-session-store.test.ts src/infra/windows-install-roots.test.ts src/infra/openclaw-cli-shim.windows.test.ts src/media/local-media-path.windows.test.ts src/media/web-media.file-url.windows.test.ts src/cli/completion-runtime.windows.test.ts src/cli/update-cli/update-command-migrated-windows.test.ts src/cli/daemon-cli/status.print.test.ts src/cli/mcp-cli.path-case.windows.test.ts src/config/io.snapshot.test.ts src/commands/doctor-config-preflight.state-migration.test.ts src/infra/windows-process-census.test.ts src/infra/windows-process-census.native.test.ts src/infra/openclaw-process-census.test.ts src/plugins/plugin-generation-artifact.native-reference.test.ts src/plugins/plugin-source-capture-path.test.ts src/cli/update-cli/update-repair-handoff.test.ts src/infra/update-managed-service-handoff-recovery.test.ts src/infra/update-managed-service-handoff-recovery-database.test.ts src/infra/update-managed-service-handoff-cleanup-repair.test.ts src/config/sessions/session-creation-publication.windows-path.test.ts src/config/sessions/session-accessor.sqlite-creation-worker.test.ts src/infra/sqlite-worker-identity.test.ts",
"test:windows:ci:2": "node scripts/test-projects.mts src/shared/pid-alive.env.test.ts src/agents/cli-executable-identity.test.ts src/plugin-sdk/windows-spawn.test.ts src/infra/fs-safe-pinned-write-errno.test.ts src/infra/package-update-swap.windows.test.ts src/plugin-sdk/fs-safe-compat.test.ts src/infra/ssh-client.windows.test.ts src/infra/exec-allowlist-pattern.test.ts src/infra/process-env.test.ts src/agents/sessions/windows-git-bash-path.test.ts test/scripts/npm-runner.test.ts test/scripts/ts-topology.test.ts test/scripts/vitest-worker-artifacts.transforms.test.ts test/scripts/ci-platform-checkout.test.ts test/scripts/install-ps1.test.ts test/scripts/windows-blacksmith-testbox.test.ts test/scripts/write-plugin-sdk-entry-dts.test.ts test/scripts/write-unified-entry-dts.test.ts test/scripts/tsdown-declaration-resolution.test.ts src/test-utils/openclaw-test-state.test.ts test/helpers/openclaw-test-instance.test.ts test/scripts/managed-child-process.windows.test.ts test/scripts/managed-windows-job.test.ts src/agents/mcp-stdio-transport.windows.test.ts test/scripts/worker-deploy-build-plugin.test.ts test/scripts/managed-handoff-build-config.test.ts src/process/owned-stdio.real.test.ts src/process/owned-stdio.windows.test.ts test/scripts/managed-child-process.output.test.ts src/utils.test.ts src/process/exec.windows.test.ts src/process/exec.windows.integration.test.ts src/agents/sessions/exec.real.test.ts src/process/windows-command.test.ts src/process/terminal-pty.test.ts src/process/supervisor/supervisor.anchored-shell.real.test.ts src/tui/tui.resolve-codex-bin.test.ts src/media-understanding/attachments.file-url.windows.test.ts src/cli/runtime-cleanup-scope.windows.process.test.ts src/auto-reply/usage-bar/template.windows.test.ts src/auto-reply/reply.triggers.trigger-handling.stages-inbound-media-into-sandbox-workspace.test.ts src/agents/provider-local-service.env-case.test.ts src/agents/provider-local-service.shutdown.test.ts src/agents/provider-local-service.settlement.test.ts src/agents/bash-tools.exec.script-preflight.test.ts src/agents/agent-tools.read.windows.test.ts src/agents/agent-tools.read.workspace-mutations.test.ts src/agents/apply-patch.test.ts src/agents/sandbox/fs-paths.test.ts src/agents/sessions/tools/render-utils.test.ts src/agents/sessions/tools/path-utils.test.ts extensions/msteams/src/media-helpers.test.ts extensions/msteams/src/messenger.test.ts extensions/mxc/test/mxc-backend.test.ts extensions/mxc/test/fs-bridge.test.ts extensions/mxc/test/path-comparison.test.ts extensions/mxc/test/sandbox-policy-loader.test.ts src/shared/runtime-import.test.ts src/shared/worker-bundle-archive.test.ts src/daemon/schtasks-state-probe.windows.test.ts src/daemon/service-audit-schtasks.windows.test.ts src/plugin-sdk/node-host.test.ts src/agents/worktrees/git.test.ts src/agents/worktrees/filesystem-refs.test.ts src/agents/worktrees/service.removal-recovery.windows.test.ts extensions/browser/src/browser/chrome.executable-probe.windows.test.ts src/process/supervisor/service-child-group-ownership.test.ts",
"test:windows:schtasks:integration": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts CI_WINDOWS_SCHTASKS_INTEGRATION=1 OPENCLAW_E2E_SKIP_BUILD=1 OPENCLAW_E2E_VERBOSE=1 OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs src/daemon/schtasks.integration.e2e.test.ts",
"tool-display:check": "node --import ./scripts/tsx.mjs scripts/tool-display.ts --check",
"tool-display:write": "node --import ./scripts/tsx.mjs scripts/tool-display.ts --write",
"ts-topology": "node --import ./scripts/tsx.mjs scripts/ts-topology.ts",
"tsgo": "pnpm tsgo:core",
"tsgo:all": "pnpm tsgo:core:all && pnpm tsgo:extensions:all && pnpm tsgo:scripts && pnpm tsgo:test:root",
"tsgo:core": "node scripts/run-tsgo.mjs -p tsconfig.core.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core.tsbuildinfo",
"tsgo:core:all": "pnpm tsgo:core && pnpm tsgo:ui && pnpm tsgo:core:test",
"tsgo:core:test": "node scripts/run-tsgo-core-test-shards.mjs",
"tsgo:extensions": "node scripts/run-tsgo.mjs -p tsconfig.extensions.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions.tsbuildinfo",
"tsgo:extensions:all": "node scripts/run-tsgo.mjs -b tsconfig.extensions.projects.json",
"tsgo:extensions:test": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test.tsbuildinfo",
"tsgo:prod": "bash scripts/ci-collect-checks.sh 'pnpm tsgo:core' 'pnpm tsgo:ui' 'pnpm tsgo:extensions'",
"tsgo:profile": "node --import ./scripts/tsx.mjs scripts/profile-tsgo.mts",
"tsgo:scripts": "node scripts/run-tsgo.mjs -p tsconfig.scripts.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/scripts.tsbuildinfo",
"tsgo:test": "bash scripts/ci-collect-checks.sh 'pnpm tsgo:core:test' 'pnpm tsgo:extensions:test' 'pnpm tsgo:test:root'",
"tsgo:test:extensions": "pnpm tsgo:extensions:test",
"tsgo:test:packages": "node scripts/run-tsgo-core-test-shards.mjs packages",
"tsgo:test:root": "node scripts/run-tsgo-core-test-shards.mjs root",
"tsgo:test:src": "node scripts/run-tsgo-core-test-shards.mjs src",
"tsgo:test:ui": "node scripts/run-tsgo-core-test-shards.mjs ui",
"tsgo:ui": "node scripts/run-tsgo.mjs -p tsconfig.ui.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/ui.tsbuildinfo",
"tui": "node scripts/run-node.mjs tui",
"tui:dev": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_PROFILE=dev -- node scripts/run-node.mjs --dev tui",
"tui:pty:test:watch": "node --import ./scripts/tsx.mjs scripts/dev/tui-pty-test-watch.ts",
"tui:pty:test:watch:all": "node --import ./scripts/tsx.mjs scripts/dev/tui-pty-test-watch.ts --mode all",
"tui:pty:test:watch:fake": "node --import ./scripts/tsx.mjs scripts/dev/tui-pty-test-watch.ts --mode fake",
"tui:pty:test:watch:local": "node --import ./scripts/tsx.mjs scripts/dev/tui-pty-test-watch.ts --mode local",
"tui:questions:proof": "node --import ./scripts/tsx.mjs scripts/dev/tui-questions-proof.ts",
"ui:boot-manifest:gen": "node --import ./scripts/tsx.mjs ui/scripts/control-ui-boot-manifest.mts",
"ui:build": "node scripts/ui.js build",
"ui:check-performance": "node --import ./scripts/tsx.mjs scripts/check-control-ui-performance.mts",
"ui:check-performance:base": "node --import ./scripts/tsx.mjs scripts/check-control-ui-performance-base.mts",
"ui:dev": "node scripts/ui.js dev",
"ui:i18n:baseline": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n-verify.ts baseline",
"ui:i18n:check": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n.ts check",
"ui:i18n:report": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n-report.ts",
"ui:i18n:sync": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n.ts sync --write",
"ui:i18n:verify": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n-verify.ts verify",
"ui:install": "node scripts/ui.js install",
"ui:parity": "node --import ./scripts/tsx.mjs scripts/control-ui-parity/index.mts",
"ui:proof:composer-mic-hover": "node --import ./scripts/tsx.mjs scripts/capture-composer-mic-hover-proof.mts",
"ui:proof:injected-turn-notice": "node --import ./scripts/tsx.mjs scripts/capture-injected-turn-notice-proof.mts",
"ui:proof:model-picker": "node --import ./scripts/tsx.mjs scripts/capture-model-picker-proof.mts",
"ui:proof:session-toolbar": "node --import ./scripts/tsx.mjs scripts/capture-session-toolbar-proof.mts",
"ui:proof:where-chip": "node --import ./scripts/tsx.mjs scripts/capture-where-chip-auto-proof.mts",
"ui:proof:workboard": "node --import ./scripts/tsx.mjs scripts/capture-workboard-ui-proof.mts",
"ui:solid:inventory": "node --import ./scripts/tsx.mjs scripts/control-ui-solid-inventory.mts",
"update:compat:check": "node scripts/update-compat-inventory.mts --check",
"update:compat:gen": "node scripts/update-compat-inventory.mts",
"update:network-budget:check": "node scripts/generate-update-network-budget.mjs --check",
"update:network-budget:gen": "node scripts/generate-update-network-budget.mjs",
"verify": "node --import ./scripts/tsx.mjs scripts/verify.mts"
},
"signal_details": {
"dependency_added_unknown": "2 new non-watchlisted dep(s): ['@openclaw/proc-safe', '@trycua/cua-driver']",
"dist_tag_anomaly": "dist-tags.latest=2026.11.1 but max published is 2026.11.5-beta.1",
"script_count_spike": "scripts count 493 -> 604",
"shared_repo_different_publisher": "repo 'git+https://github.com/openclaw/openclaw.git' also claimed by 10 package(s) under different publishers: ['npm/@aka_openclaw_plugin/mychat', 'npm/@openclaw/line', 'npm/@openclaw/pixverse-provider'] ...",
"size_spike": "unpackedSize 87477902 -> 274712249 (3.1\u00d7)"
},
"time": {
"created": "2026-01-29T11:08:11.861Z",
"modified": "2026-11-05T09:41:26.621Z"
}
}