BEACON

← candidates

npm sealclaw @2026.6.21

score
0.7 high
flagged 2026-06-05 08:42
signals by category
topology 2

maintainers added:

package profile →

Signals fired

signalweightrationale
topology
dist_tag_anomaly 0.5 dist-tags.latest=2026.6.21 but max published is 2026.6.22-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/@qingchencloud/openclaw-zh', 'npm/openclaw', 'npm/zcusclaw-channel-tlon'] ...

Prior profile (what it deviated from)

{
  "had_install_script": true,
  "maintainers": [
    "funanvvv"
  ],
  "versions": 122
}

Evidence (package doc at flag time)

{
  "dependencies_count": 63,
  "dist": {
    "integrity": "sha512-v0dUl5dUpsVxi6Iyk2TaGmxjB1qtR0x75jbfaSmXBxQ69FOjs+K8cMN3hahLx/ERylwV6RzDnN8mktfWx5dSDQ==",
    "tarball": "https://registry.npmjs.org/sealclaw/-/sealclaw-2026.6.21.tgz",
    "unpackedSize": 85819005
  },
  "dist-tags": {
    "beta": "2026.6.22-beta.3",
    "latest": "2026.6.21"
  },
  "latest_version": "2026.6.21",
  "maintainers": [
    {
      "email": "1034181928@qq.com",
      "name": "funanvvv"
    }
  ],
  "num_versions": 122,
  "repository": {
    "type": "git",
    "url": "git+https://github.com/openclaw/openclaw.git"
  },
  "scripts": {
    "android:assemble": "cd apps/android && ./gradlew :app:assemblePlayDebug",
    "android:assemble:third-party": "cd apps/android && ./gradlew :app:assembleThirdPartyDebug",
    "android:bundle:release": "bun apps/android/scripts/build-release-aab.ts",
    "android:format": "cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat",
    "android:install": "cd apps/android && ./gradlew :app:installPlayDebug",
    "android:install:third-party": "cd apps/android && ./gradlew :app:installThirdPartyDebug",
    "android:lint": "cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck",
    "android:lint:android": "cd apps/android && ./gradlew :app:lintDebug",
    "android:run": "cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity",
    "android:run:third-party": "cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity",
    "android:test": "cd apps/android && ./gradlew :app:testPlayDebugUnitTest",
    "android:test:integration": "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": "cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest",
    "audit:seams": "node scripts/audit-seams.mjs",
    "build": "node scripts/build-all.mjs",
    "build:ci-artifacts": "node scripts/build-all.mjs ciArtifacts",
    "build:docker": "node scripts/tsdown-build.mjs && node scripts/check-cli-bootstrap-imports.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node scripts/runtime-postbuild-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --experimental-strip-types scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts",
    "build:plugin-sdk:dts": "node scripts/run-tsgo.mjs -p tsconfig.plugin-sdk.dts.json --declaration true",
    "build:plugin-sdk:strict-smoke": "pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts",
    "build:strict-smoke": "pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/check-cli-bootstrap-imports.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node scripts/runtime-postbuild-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs",
    "canon:check": "node scripts/canon.mjs check",
    "canon:check:json": "node scripts/canon.mjs check --json",
    "canon:enforce": "node scripts/canon.mjs enforce --json",
    "canvas:a2ui:bundle": "node scripts/bundle-a2ui.mjs",
    "changed:lanes": "node scripts/changed-lanes.mjs",
    "check": "node scripts/check.mjs",
    "check:architecture": "pnpm check:import-cycles && pnpm check:madge-import-cycles && pnpm check:deprecated-internal-config-api && pnpm check:deprecated-jsdoc",
    "check:base-config-schema": "node --import tsx scripts/generate-base-config-schema.ts --check",
    "check:bundled-channel-config-metadata": "node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check",
    "check:changed": "node scripts/check-changed.mjs",
    "check:changelog-attributions": "node scripts/check-changelog-attributions.mjs",
    "check:deprecated-internal-config-api": "node scripts/check-deprecated-internal-config-api.mjs",
    "check:deprecated-jsdoc": "node scripts/check-deprecated-jsdoc.mjs",
    "check:docs": "pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-mdx && pnpm docs:check-i18n-glossary && pnpm docs:check-links",
    "check:host-env-policy:swift": "node scripts/generate-host-env-security-policy-swift.mjs --check",
    "check:import-cycles": "node --import tsx scripts/check-import-cycles.ts",
    "check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500",
    "check:madge-import-cycles": "node --import tsx scripts/check-madge-import-cycles.ts",
    "check:no-conflict-markers": "node scripts/check-no-conflict-markers.mjs",
    "check:no-runtime-action-load-config": "node scripts/check-no-runtime-action-load-config.mjs",
    "check:opengrep-rule-metadata": "node security/opengrep/check-rule-metadata.mjs",
    "check:runtime-sidecar-loaders": "node --import tsx scripts/check-runtime-sidecar-loaders.mjs",
    "check:static-import-sccs": "pnpm check:madge-import-cycles",
    "check:temp-path-guardrails": "node --import tsx scripts/check-temp-path-guardrails.ts",
    "check:test-types": "pnpm tsgo:test",
    "check:timed": "node scripts/check-timed.mjs",
    "check:timed:all-types": "node scripts/check-timed.mjs --include-test-types",
    "check:timed:architecture": "node scripts/check-timed.mjs --include-architecture",
    "check:workflows": "node scripts/check-workflows.mjs",
    "ci:full-release": "node scripts/full-release-validation-at-sha.mjs",
    "ci:timings": "node scripts/ci-run-timings.mjs --latest-main",
    "ci:timings:recent": "node scripts/ci-run-timings.mjs --recent 10",
    "clean:dist": "node -e \"require('fs').rmSync('dist', {recursive: true, force: true})\"",
    "codex-app-server:protocol:check": "node --import tsx scripts/check-codex-app-server-protocol.ts",
    "codex-app-server:protocol:sync": "node --import tsx scripts/sync-codex-app-server-protocol.ts",
    "config:channels:check": "node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check",
    "config:channels:gen": "node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write",
    "config:docs:check": "node --import tsx scripts/generate-config-doc-baseline.ts --check",
    "config:docs:gen": "node --import tsx scripts/generate-config-doc-baseline.ts --write",
    "config:schema:check": "node --import tsx scripts/generate-base-config-schema.ts --check",
    "config:schema:gen": "node --import tsx scripts/generate-base-config-schema.ts --write",
    "crabbox:hydrate": "node scripts/crabbox-wrapper.mjs actions hydrate",
    "crabbox:run": "node scripts/crabbox-wrapper.mjs run",
    "crabbox:stop": "node scripts/crabbox-wrapper.mjs stop",
    "crabbox:warmup": "node scripts/crabbox-wrapper.mjs warmup",
    "deadcode:ci": "pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-unused",
    "deadcode:dependencies": "pnpm --config.minimum-release-age=0 dlx knip@6.8.0 --config config/knip.config.ts --production --no-progress --reporter compact --dependencies --no-config-hints",
    "deadcode:knip": "pnpm dlx knip --config config/knip.config.ts --production --no-progress --reporter compact --files --dependencies",
    "deadcode:report": "pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused",
    "deadcode:report:ci:knip": "mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true",
    "deadcode:report:ci:ts-prune": "mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true",
    "deadcode:report:ci:ts-unused": "mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true",
    "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",
    "deps:root-ownership": "node scripts/root-dependency-ownership-audit.mjs",
    "deps:root-ownership:check": "node scripts/root-dependency-ownership-audit.mjs --check",
    "deps:sbom-risk": "node scripts/sbom-risk-report.mjs",
    "deps:sbom-risk:check": "node scripts/sbom-risk-report.mjs --check",
    "dev": "node scripts/run-node.mjs",
    "docs:bin": "node scripts/build-docs-list.mjs",
    "docs:check-i18n-glossary": "node scripts/check-docs-i18n-glossary.mjs",
    "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": "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": "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 --threads=1",
    "format:diff": "oxfmt --write --threads=1 && git --no-pager diff",
    "format:docs": "node scripts/format-docs.mjs",
    "format:docs:check": "node scripts/format-docs.mjs --check",
    "format:fix": "oxfmt --write --threads=1",
    "format:swift": "swiftformat --lint --config config/swiftformat --exclude '**/apps/swabble,**/apps/android,**/apps/ios,**/apps/shared,**/OpenClawProtocol,**/HostEnvSecurityPolicy.generated.swift' apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources",
    "gateway:dev": "OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
    "gateway:dev:reset": "OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
    "gateway:watch": "node scripts/gateway-watch-tmux.mjs gateway --force",
    "gateway:watch:raw": "node scripts/watch-node.mjs gateway --force",
    "gen:host-env-policy:swift": "node scripts/generate-host-env-security-policy-swift.mjs --write",
    "ghsa:patch": "node scripts/ghsa-patch.mjs",
    "ios:beta": "bash scripts/ios-beta-release.sh",
    "ios:beta:archive": "bash scripts/ios-beta-archive.sh",
    "ios:beta:prepare": "bash scripts/ios-beta-prepare.sh",
    "ios:build": "bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'",
    "ios:gen": "bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'",
    "ios:open": "bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'",
    "ios:run": "bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'",
    "ios:version": "node --import tsx scripts/ios-version.ts --json",
    "ios:version:check": "node --import tsx scripts/ios-sync-versioning.ts --check",
    "ios:version:pin": "node --import tsx scripts/ios-pin-version.ts",
    "ios:version:sync": "node --import tsx scripts/ios-sync-versioning.ts --write",
    "leak:embedded-run": "node --import tsx --expose-gc scripts/embedded-run-abort-leak.ts",
    "lint": "node scripts/run-oxlint-shards.mjs",
    "lint:agent:ingress-owner": "node scripts/check-ingress-agent-owner-context.mjs",
    "lint:all": "node scripts/run-oxlint.mjs",
    "lint:apps": "pnpm lint:swift",
    "lint:auth:no-pairing-store-group": "node scripts/check-no-pairing-store-group-auth.mjs",
    "lint:auth:pairing-account-scope": "node scripts/check-pairing-account-scope.mjs",
    "lint:core": "node scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.core.json src ui packages",
    "lint:docker-e2e": "node scripts/check-docker-e2e-boundaries.mjs",
    "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 config/tsconfig/oxlint.extensions.json extensions",
    "lint:extensions:bundled": "node scripts/run-bundled-extension-oxlint.mjs",
    "lint:extensions:channels": "node scripts/run-extension-channel-oxlint.mjs",
    "lint:extensions:no-guarded-wildcard-reexports": "node scripts/check-extension-wildcard-reexports.mjs",
    "lint:extensions:no-plugin-sdk-internal": "node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal",
    "lint:extensions:no-plugin-sdk-wildcard-reexports": "node scripts/check-plugin-sdk-wildcard-reexports.mjs",
    "lint:extensions:no-relative-outside-package": "node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package",
    "lint:extensions:no-src-outside-plugin-sdk": "node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk",
    "lint:fix": "node scripts/run-oxlint.mjs --fix && pnpm format",
    "lint:plugins:no-extension-imports": "node scripts/check-plugin-extension-import-boundary.mjs",
    "lint:plugins:no-extension-src-imports": "node --import tsx scripts/check-no-extension-src-imports.ts",
    "lint:plugins:no-extension-test-core-imports": "node --import tsx scripts/check-no-extension-test-core-imports.ts",
    "lint:plugins:no-monolithic-plugin-sdk-entry-imports": "node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts",
    "lint:plugins:no-register-http-handler": "node scripts/check-no-register-http-handler.mjs",
    "lint:plugins:plugin-sdk-subpaths-exported": "node scripts/check-plugin-sdk-subpath-exports.mjs",
    "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": "swiftlint lint --config config/swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)",
    "lint:tmp:channel-agnostic-boundaries": "node scripts/check-channel-agnostic-boundaries.mjs",
    "lint:tmp:dynamic-import-warts": "node scripts/check-dynamic-import-warts.mjs",
    "lint:tmp:no-random-messaging": "node scripts/check-no-random-messaging-tmp.mjs",
    "lint:tmp:no-raw-channel-fetch": "node scripts/check-no-raw-channel-fetch.mjs",
    "lint:tmp:no-raw-http2-imports": "node scripts/check-no-raw-http2-imports.mjs",
    "lint:tmp:tsgo-core-boundary": "node scripts/check-tsgo-core-boundary.mjs",
    "lint:ui:no-raw-window-open": "node scripts/check-no-raw-window-open.mjs",
    "lint:web-fetch-provider-boundaries": "node scripts/check-web-fetch-provider-boundaries.mjs",
    "lint:web-search-provider-boundaries": "node scripts/check-web-search-provider-boundaries.mjs",
    "lint:webhook:no-low-level-body-read": "node scripts/check-webhook-auth-body-order.mjs",
    "mac:open": "open dist/OpenClaw.app",
    "mac:package": "bash scripts/package-mac-app.sh",
    "mac:restart": "bash scripts/restart-mac.sh",
    "moltbot:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
    "openclaw": "node scripts/run-node.mjs",
    "openclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
    "perf:kova:summary": "node scripts/kova-ci-summary.mjs",
    "perf:source:summary": "node scripts/openclaw-performance-source-summary.mjs",
    "plugin-sdk:api:check": "node --max-old-space-size=8192 --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check",
    "plugin-sdk:api:gen": "node --max-old-space-size=8192 --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write",
    "plugin-sdk:check-exports": "node scripts/sync-plugin-sdk-exports.mjs --check",
    "plugin-sdk:sync-exports": "node scripts/sync-plugin-sdk-exports.mjs",
    "plugin-sdk:usage": "node --import tsx scripts/analyze-plugin-sdk-usage.ts",
    "plugins:boundary-report": "node --import tsx scripts/plugin-boundary-report.ts",
    "plugins:boundary-report:ci": "node --import tsx scripts/plugin-boundary-report.ts --summary --fail-on-cross-owner --fail-on-unclassified-unused-reserved --fail-on-eligible-compat",
    "plugins:boundary-report:json": "node --import tsx scripts/plugin-boundary-report.ts --json",
    "plugins:boundary-report:summary": "node --import tsx scripts/plugin-boundary-report.ts --summary",
    "plugins:inventory:check": "node scripts/generate-plugin-inventory-doc.mjs --check",
    "plugins:inventory:gen": "node scripts/generate-plugin-inventory-doc.mjs --write",
    "plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
    "plugins:sync:check": "node --import tsx scripts/sync-plugin-versions.ts --check",
    "postinstall": "node scripts/postinstall-bundled-plugins.mjs && node scripts/postinstall-patch-pi-ai.mjs",
    "preinstall": "node scripts/preinstall-package-manager-warning.mjs",
    "prepack": "node --import tsx scripts/openclaw-prepack.ts",
    "prepare": "command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0",
    "prepush:ci": "bash scripts/prepush-ci.sh",
    "probe:anthropic:prompt": "node --import tsx scripts/anthropic-prompt-probe.ts",
    "prompt:snapshots:check": "node --import tsx scripts/generate-prompt-snapshots.ts --check",
    "prompt:snapshots:gen": "node --import tsx scripts/generate-prompt-snapshots.ts --write",
    "prompt:snapshots:sync-codex-model": "node --import tsx scripts/sync-codex-model-prompt-fixture.ts",
    "protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift",
    "protocol:gen": "node --import tsx scripts/protocol-gen.ts",
    "protocol:gen:swift": "node --import tsx scripts/protocol-gen-swift.ts",
    "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 tsx scripts/proxy-install-ca.mjs",
    "proxy:run": "node scripts/run-node.mjs proxy run",
    "proxy:start": "node scripts/run-node.mjs proxy start",
    "qa:e2e": "node --import tsx scripts/qa-e2e.ts",
    "qa:lab:build": "vite build --config extensions/qa-lab/web/vite.config.ts",
    "qa:lab:ui": "pnpm openclaw qa ui",
    "qa:lab:up": "node --import tsx scripts/qa-lab-up.ts",
    "qa:lab:up:fast": "node --import tsx scripts/qa-lab-up.ts --use-prebuilt-image --bind-ui-dist --skip-ui-build",
    "qa:lab:watch": "vite build --watch --config extensions/qa-lab/web/vite.config.ts",
    "qa:otel:smoke": "node --import tsx scripts/qa-otel-smoke.ts",
    "release-metadata:check": "node scripts/check-release-metadata-only.mjs",
    "release:beta-smoke": "node --import tsx scripts/release-beta-smoke.ts",
    "release:check": "pnpm deps:root-ownership:check && pnpm plugins:inventory:check && pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:api:check && node --import tsx scripts/release-check.ts",
    "release:openclaw:npm:check": "node --import tsx scripts/openclaw-npm-release-check.ts",
    "release:openclaw:npm:verify-published": "node --import tsx scripts/openclaw-npm-postpublish-verify.ts",
    "release:plugins:clawhub:check": "node --import tsx scripts/plugin-clawhub-release-check.ts",
    "release:plugins:clawhub:plan": "node --import tsx scripts/plugin-clawhub-release-plan.ts",
    "release:plugins:npm:check": "node --import tsx scripts/plugin-npm-release-check.ts",
    "release:plugins:npm:plan": "node --import tsx scripts/plugin-npm-release-plan.ts",
    "rtt": "node --import tsx scripts/rtt.ts",
    "runtime-sidecars:check": "node --import tsx scripts/generate-runtime-sidecar-paths-baseline.ts --check",
    "runtime-sidecars:gen": "node --import tsx scripts/generate-runtime-sidecar-paths-baseline.ts --write",
    "start": "node scripts/run-node.mjs",
    "test": "node scripts/test-projects.mjs",
    "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 src/gateway/protocol/connect-error-details.test.ts",
    "test:build:singleton": "node scripts/test-built-plugin-singleton.mjs",
    "test:build:status-message-runtime": "node scripts/test-built-status-message-runtime.mjs",
    "test:bundled": "node scripts/run-vitest.mjs run --config test/vitest/vitest.bundled.config.ts",
    "test:changed": "node scripts/test-projects.mjs --changed origin/main",
    "test:changed:max": "OPENCLAW_VITEST_MAX_WORKERS=8 node scripts/test-projects.mjs --changed origin/main",
    "test:channels": "node scripts/run-vitest.mjs run --config test/vitest/vitest.channels.config.ts",
    "test:contracts": "pnpm test:contracts:channels && pnpm test:contracts:plugins",
    "test:contracts:channels": "node scripts/test-projects.mjs --maxWorkers=1 test/vitest/vitest.contracts-channel-surface.config.ts test/vitest/vitest.contracts-channel-config.config.ts test/vitest/vitest.contracts-channel-registry.config.ts test/vitest/vitest.contracts-channel-session.config.ts",
    "test:contracts:plugins": "node scripts/run-vitest.mjs run --config test/vitest/vitest.contracts-plugin.config.ts --maxWorkers=1",
    "test:coverage": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --coverage",
    "test:coverage:changed": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --coverage --changed origin/main",
    "test:docker: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:commitments-safety": "bash scripts/e2e/commitments-safety-docker.sh",
    "test:docker:config-reload": "bash scripts/e2e/config-reload-source-docker.sh",
    "test:docker:crestodian-first-run": "bash scripts/e2e/crestodian-first-run-docker.sh",
    "test:docker:crestodian-planner": "bash scripts/e2e/crestodian-planner-docker.sh",
    "test:docker:crestodian-rescue": "bash scripts/e2e/crestodian-rescue-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: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:live-acp-bind": "bash scripts/test-live-acp-bind-docker.sh",
    "test:docker:live-acp-bind:claude": "OPENCLAW_LIVE_ACP_BIND_AGENT=claude bash scripts/test-live-acp-bind-docker.sh",
    "test:docker:live-acp-bind:codex": "OPENCLAW_LIVE_ACP_BIND_AGENT=codex bash scripts/test-live-acp-bind-docker.sh",
    "test:docker:live-acp-bind:droid": "OPENCLAW_LIVE_ACP_BIND_AGENT=droid OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1 bash scripts/test-live-acp-bind-docker.sh",
    "test:docker:live-acp-bind:gemini": "OPENCLAW_LIVE_ACP_BIND_AGENT=gemini bash scripts/test-live-acp-bind-docker.sh",
    "test:docker:live-acp-bind:opencode": "OPENCLAW_LIVE_ACP_BIND_AGENT=opencode OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1 bash scripts/test-live-acp-bind-docker.sh",
    "test:docker:live-build": "bash scripts/test-live-build-docker.sh",
    "test:docker:live-cli-backend": "bash scripts/test-live-cli-backend-docker.sh",
    "test:docker:live-cli-backend:claude": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 bash scripts/test-live-cli-backend-docker.sh",
    "test:docker:live-cli-backend:claude-subscription": "OPENCLAW_LIVE_CLI_BACKEND_AUTH=subscription OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_DISABLE_MCP_CONFIG=1 OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0 OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=0 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=0 bash scripts/test-live-cli-backend-docker.sh",
    "test:docker:live-cli-backend:claude:mcp": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
    "test:docker:live-cli-backend:claude:resume": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
    "test:docker:live-cli-backend:codex": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=codex-cli/gpt-5.4 bash scripts/test-live-cli-backend-docker.sh",
    "test:docker:live-cli-backend:codex:mcp": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=codex-cli/gpt-5.4 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
    "test:docker:live-cli-backend:codex:resume": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=codex-cli/gpt-5.4 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-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:codex": "OPENCLAW_LIVE_GATEWAY_PROVIDERS=codex-cli OPENCLAW_LIVE_GATEWAY_MODELS=codex-cli/gpt-5.5 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-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:codex": "OPENCLAW_LIVE_PROVIDERS=codex-cli OPENCLAW_LIVE_MODELS=codex-cli/gpt-5.5 bash scripts/test-live-models-docker.sh",
    "test:docker:live-models:gemini": "OPENCLAW_LIVE_PROVIDERS=google-gemini-cli OPENCLAW_LIVE_MODELS=google-gemini-cli/gemini-3.1-pro-preview bash scripts/test-live-models-docker.sh",
    "test:docker:live:all": "OPENCLAW_DOCKER_ALL_LIVE_MODE=only node scripts/test-docker-all.mjs",
    "test:docker:local:all": "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: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-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:pi-bundle-mcp-tools": "bash scripts/e2e/pi-bundle-mcp-tools-docker.sh",
    "test:docker:plugin-lifecycle-matrix": "bash scripts/e2e/plugin-lifecycle-matrix-docker.sh",
    "test:docker:plugin-update": "bash scripts/e2e/plugin-update-unchanged-docker.sh",
    "test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
    "test:docker:published-upgrade-survivor": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=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:qr": "bash scripts/e2e/qr-import-docker.sh",
    "test:docker:rerun": "node scripts/docker-e2e-rerun.mjs",
    "test:docker:session-runtime-context": "bash scripts/e2e/session-runtime-context-docker.sh",
    "test:docker:timings": "node scripts/docker-e2e-timings.mjs",
    "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-migration": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=${OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC:-openclaw@2026.4.23} 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": "node scripts/run-vitest.mjs run --config test/vitest/vitest.e2e.config.ts",
    "test:e2e:openshell": "OPENCLAW_E2E_OPENSHELL=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.e2e.config.ts extensions/openshell/src/backend.e2e.test.ts",
    "test:extension": "node scripts/test-extension.mjs",
    "test:extensions": "node scripts/test-projects.mjs extensions",
    "test:extensions:batch": "node scripts/test-extension-batch.mjs",
    "test:extensions:memory": "node scripts/profile-extension-memory.mjs",
    "test:extensions:package-boundary": "node scripts/check-extension-package-tsc-boundary.mjs",
    "test:extensions:package-boundary:canary": "node scripts/check-extension-package-tsc-boundary.mjs --mode=canary",
    "test:extensions:package-boundary:compile": "node scripts/check-extension-package-tsc-boundary.mjs --mode=compile",
    "test:fast": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts",
    "test:force": "node --import tsx scripts/test-force.ts",
    "test:gateway": "OPENCLAW_GATEWAY_PROJECT_SHARDS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts",
    "test:gateway:cpu-scenarios": "node scripts/check-gateway-cpu-scenarios.mjs",
    "test:gateway:watch-regression": "node scripts/check-gateway-watch-regression.mjs",
    "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 scripts/test-live.mjs",
    "test:live:cache": "node --import tsx scripts/check-live-cache.ts",
    "test:live:codex-harness": "OPENCLAW_LIVE_CODEX_HARNESS=1 node scripts/test-live.mjs -- src/gateway/gateway-codex-harness.live.test.ts",
    "test:live:crestodian-rescue-channel": "OPENCLAW_LIVE_CRESTODIAN_RESCUE_CHANNEL=1 node scripts/test-live.mjs -- src/crestodian/rescue-channel.live.test.ts",
    "test:live:gateway-profiles": "node scripts/test-live.mjs -- src/gateway/gateway-models.profiles.live.test.ts",
    "test:live:media": "node --import tsx scripts/test-live-media.ts",
    "test:live:media:image": "node --import tsx scripts/test-live-media.ts image",
    "test:live:media:music": "node --import tsx scripts/test-live-media.ts music",
    "test:live:media:video": "node --import tsx scripts/test-live-media.ts video",
    "test:live:models-profiles": "node scripts/test-live.mjs -- src/agents/models.profiles.live.test.ts",
    "test:macos:ci": "node scripts/test-projects.mjs src/daemon/launchd.test.ts src/daemon/runtime-paths.test.ts src/daemon/runtime-binary.test.ts src/infra/brew.test.ts src/infra/stable-node-path.test.ts test/scripts/vitest-process-group.test.ts",
    "test:max": "OPENCLAW_VITEST_MAX_WORKERS=8 node scripts/test-projects.mjs",
    "test:parallels:linux": "bash scripts/e2e/parallels-linux-smoke.sh",
    "test:parallels:macos": "bash scripts/e2e/parallels-macos-smoke.sh",
    "test:parallels:npm-update": "bash scripts/e2e/parallels-npm-update-smoke.sh",
    "test:parallels:windows": "bash scripts/e2e/parallels-windows-smoke.sh",
    "test:perf:budget": "node scripts/test-perf-budget.mjs",
    "test:perf:changed:bench": "node scripts/bench-test-changed.mjs",
    "test:perf:groups": "node scripts/test-group-report.mjs",
    "test:perf:groups:compare": "node scripts/test-group-report.mjs --compare",
    "test:perf:hotspots": "node scripts/test-hotspots.mjs",
    "test:perf:imports": "OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 node scripts/test-projects.mjs",
    "test:perf:imports:changed": "OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 node scripts/test-projects.mjs --changed origin/main",
    "test:perf:profile:main": "node scripts/run-vitest-profile.mjs main",
    "test:perf:profile:runner": "node scripts/run-vitest-profile.mjs runner",
    "test:plugins:gateway-gauntlet": "node scripts/check-plugin-gateway-gauntlet.mjs",
    "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 tsx scripts/e2e/kitchen-sink-rpc-walk.mjs",
    "test:sectriage": "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/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts",
    "test:serial": "OPENCLAW_TEST_PROJECTS_SERIAL=1 OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/test-projects.mjs",
    "test:stability:gateway": "OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts src/gateway/gateway-stability.test.ts && 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 && OPENCLAW_VITEST_MAX_WORKERS=1 node scripts/run-vitest.mjs run --config test/vitest/vitest.infra.config.ts src/infra/fatal-error-hooks.test.ts",
    "test:startup:bench": "node --import tsx scripts/bench-cli-startup.ts",
    "test:startup:bench:check": "node scripts/test-cli-startup-bench-budget.mjs",
    "test:startup:bench:save": "node --import tsx scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json",
    "test:startup:bench:smoke": "node --import tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json",
    "test:startup:bench:update": "node scripts/test-update-cli-startup-bench.mjs",
    "test:startup:gateway": "node --import tsx scripts/bench-gateway-startup.ts",
    "test:startup:memory": "node scripts/check-cli-startup-memory.mjs",
    "test:ui": "pnpm ui:i18n:check && pnpm lint:ui:no-raw-window-open && pnpm --dir ui test",
    "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 scripts/test-unit-fast-audit.mjs",
    "test:voicecall:closedloop": "node scripts/test-voicecall-closedloop.mjs",
    "test:watch": "node scripts/test-projects.mjs --watch",
    "test:windows:ci": "node scripts/test-projects.mjs src/shared/runtime-import.test.ts src/plugins/import-specifier.test.ts src/process/exec.windows.test.ts src/process/windows-command.test.ts src/infra/windows-install-roots.test.ts extensions/lobster/src/lobster-runner.test.ts test/scripts/npm-runner.test.ts test/scripts/pnpm-runner.test.ts test/scripts/ui.test.ts test/scripts/vitest-process-group.test.ts",
    "testbox:claim": "node scripts/blacksmith-testbox-runner.mjs --claim",
    "testbox:run": "node scripts/blacksmith-testbox-runner.mjs",
    "testbox:sanity": "node scripts/testbox-sync-sanity.mjs",
    "tool-display:check": "node --import tsx scripts/tool-display.ts --check",
    "tool-display:write": "node --import tsx scripts/tool-display.ts --write",
    "ts-topology": "node --import tsx scripts/ts-topology.ts",
    "tsgo": "pnpm tsgo:core",
    "tsgo:all": "node scripts/run-tsgo.mjs -b tsconfig.projects.json",
    "tsgo:core": "node scripts/run-tsgo.mjs -p tsconfig.core.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core.tsbuildinfo",
    "tsgo:core:all": "node scripts/run-tsgo.mjs -b tsconfig.core.projects.json",
    "tsgo:core:test": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.core.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core-test.tsbuildinfo",
    "tsgo:extensions": "node scripts/run-tsgo.mjs -p tsconfig.extensions.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions.tsbuildinfo",
    "tsgo:extensions:all": "node scripts/run-tsgo.mjs -b tsconfig.extensions.projects.json",
    "tsgo:extensions:test": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test.tsbuildinfo",
    "tsgo:prod": "pnpm tsgo:core && pnpm tsgo:extensions",
    "tsgo:profile": "node scripts/profile-tsgo.mjs",
    "tsgo:test": "pnpm tsgo:core:test && pnpm tsgo:extensions:test",
    "tsgo:test:extensions": "pnpm tsgo:extensions:test",
    "tsgo:test:packages": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.packages.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-packages.tsbuildinfo",
    "tsgo:test:src": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.src.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-src.tsbuildinfo",
    "tsgo:test:ui": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.test.ui.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/test-ui.tsbuildinfo",
    "tui": "node scripts/run-node.mjs tui",
    "tui:dev": "OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui",
    "ui:build": "node scripts/ui.js build",
    "ui:dev": "node scripts/ui.js dev",
    "ui:i18n:check": "node --import tsx scripts/control-ui-i18n.ts check",
    "ui:i18n:sync": "node --import tsx scripts/control-ui-i18n.ts sync --write",
    "ui:install": "node scripts/ui.js install"
  },
  "signal_details": {
    "dist_tag_anomaly": "dist-tags.latest=2026.6.21 but max published is 2026.6.22-beta.1",
    "shared_repo_different_publisher": "repo 'git+https://github.com/openclaw/openclaw.git' also claimed by 10 package(s) under different publishers: ['npm/@qingchencloud/openclaw-zh', 'npm/openclaw', 'npm/zcusclaw-channel-tlon'] ..."
  },
  "time": {
    "created": "2026-05-06T07:57:11.313Z",
    "modified": "2026-06-05T08:44:41.293Z"
  }
}