Fixes #4596 The @mariozechner/clipboard dependency was missing native bindings for 32-bit ARM Linux (linux-arm-gnueabihf), causing OpenClaw to crash on startup on platforms like Raspberry Pi 3 and earlier. This patch makes the clipboard module gracefully handle missing native bindings by: - Emitting a warning instead of throwing a fatal error - Providing stub implementations that throw informative errors when called - Allowing OpenClaw to start and run normally (clipboard ops will fail if called, but the pi-coding-agent should still work) The patch is applied via pnpm's patch mechanism, which allows us to modify the clipboard module at install time without forking it.
291 lines
11 KiB
JSON
291 lines
11 KiB
JSON
{
|
|
"name": "openclaw",
|
|
"version": "2026.1.29",
|
|
"description": "WhatsApp gateway CLI (Baileys web) with Pi RPC agent",
|
|
"type": "module",
|
|
"main": "dist/index.js",
|
|
"exports": {
|
|
".": "./dist/index.js",
|
|
"./plugin-sdk": "./dist/plugin-sdk/index.js",
|
|
"./plugin-sdk/*": "./dist/plugin-sdk/*",
|
|
"./cli-entry": "./openclaw.mjs"
|
|
},
|
|
"bin": {
|
|
"openclaw": "./openclaw.mjs"
|
|
},
|
|
"files": [
|
|
"dist/acp/**",
|
|
"dist/agents/**",
|
|
"dist/auto-reply/**",
|
|
"dist/browser/**",
|
|
"dist/canvas-host/**",
|
|
"dist/cli/**",
|
|
"dist/commands/**",
|
|
"dist/config/**",
|
|
"dist/compat/**",
|
|
"dist/control-ui/**",
|
|
"dist/cron/**",
|
|
"dist/channels/**",
|
|
"dist/daemon/**",
|
|
"dist/discord/**",
|
|
"dist/gateway/**",
|
|
"dist/hooks/**",
|
|
"dist/imessage/**",
|
|
"dist/infra/**",
|
|
"dist/macos/**",
|
|
"dist/media/**",
|
|
"dist/media-understanding/**",
|
|
"dist/link-understanding/**",
|
|
"dist/process/**",
|
|
"dist/plugins/**",
|
|
"dist/plugin-sdk/**",
|
|
"dist/security/**",
|
|
"dist/sessions/**",
|
|
"dist/providers/**",
|
|
"dist/signal/**",
|
|
"dist/slack/**",
|
|
"dist/telegram/**",
|
|
"dist/line/**",
|
|
"dist/tui/**",
|
|
"dist/tts/**",
|
|
"dist/web/**",
|
|
"dist/wizard/**",
|
|
"dist/*.js",
|
|
"dist/*.json",
|
|
"docs/**",
|
|
"extensions/**",
|
|
"assets/**",
|
|
"openclaw.mjs",
|
|
"skills/**",
|
|
"patches/**",
|
|
"README.md",
|
|
"README-header.png",
|
|
"CHANGELOG.md",
|
|
"LICENSE",
|
|
"scripts/postinstall.js",
|
|
"scripts/format-staged.js",
|
|
"scripts/setup-git-hooks.js",
|
|
"git-hooks/**",
|
|
"dist/terminal/**",
|
|
"dist/routing/**",
|
|
"dist/shared/**",
|
|
"dist/utils/**",
|
|
"dist/logging/**",
|
|
"dist/memory/**",
|
|
"dist/markdown/**",
|
|
"dist/node-host/**",
|
|
"dist/pairing/**",
|
|
"dist/whatsapp/**"
|
|
],
|
|
"scripts": {
|
|
"dev": "node scripts/run-node.mjs",
|
|
"postinstall": "node scripts/postinstall.js",
|
|
"prepack": "pnpm build && pnpm ui:build",
|
|
"docs:list": "node scripts/docs-list.js",
|
|
"docs:bin": "node scripts/build-docs-list.mjs",
|
|
"docs:dev": "cd docs && mint dev",
|
|
"docs:build": "cd docs && pnpm dlx --reporter append-only mint broken-links",
|
|
"build": "pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts",
|
|
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
|
|
"release:check": "node --import tsx scripts/release-check.ts",
|
|
"ui:install": "node scripts/ui.js install",
|
|
"ui:dev": "node scripts/ui.js dev",
|
|
"ui:build": "node scripts/ui.js build",
|
|
"start": "node scripts/run-node.mjs",
|
|
"openclaw": "node scripts/run-node.mjs",
|
|
"gateway:watch": "node scripts/watch-node.mjs gateway --force",
|
|
"gateway:dev": "OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway",
|
|
"gateway:dev:reset": "OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset",
|
|
"tui": "node scripts/run-node.mjs tui",
|
|
"tui:dev": "OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui",
|
|
"openclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
"moltbot:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
|
|
"ios:gen": "cd apps/ios && xcodegen generate",
|
|
"ios:open": "cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj",
|
|
"ios:build": "bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'",
|
|
"ios:run": "bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'",
|
|
"android:assemble": "cd apps/android && ./gradlew :app:assembleDebug",
|
|
"android:install": "cd apps/android && ./gradlew :app:installDebug",
|
|
"android:run": "cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity",
|
|
"android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest",
|
|
"mac:restart": "bash scripts/restart-mac.sh",
|
|
"mac:package": "bash scripts/package-mac-app.sh",
|
|
"mac:open": "open dist/OpenClaw.app",
|
|
"lint": "oxlint --type-aware src test",
|
|
"lint:swift": "swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)",
|
|
"lint:all": "pnpm lint && pnpm lint:swift",
|
|
"lint:fix": "pnpm format:fix && oxlint --type-aware --fix src test",
|
|
"format": "oxfmt --check src test",
|
|
"format:swift": "swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources",
|
|
"format:all": "pnpm format && pnpm format:swift",
|
|
"format:fix": "oxfmt --write src test",
|
|
"test": "node scripts/test-parallel.mjs",
|
|
"test:watch": "vitest",
|
|
"test:ui": "pnpm --dir ui test",
|
|
"test:force": "node --import tsx scripts/test-force.ts",
|
|
"test:coverage": "vitest run --coverage",
|
|
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
"test:live": "OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
|
|
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
|
|
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
|
|
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
|
|
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
|
|
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
|
|
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
|
|
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
|
|
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
|
|
"test:docker:all": "pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup",
|
|
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
|
|
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
|
|
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
|
|
"test:install:e2e:openai": "OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
|
|
"test:install:e2e:anthropic": "OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
|
|
"protocol:gen": "node --import tsx scripts/protocol-gen.ts",
|
|
"protocol:gen:swift": "node --import tsx scripts/protocol-gen-swift.ts",
|
|
"protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift",
|
|
"canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
|
|
"check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500"
|
|
},
|
|
"keywords": [],
|
|
"author": "",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=22.12.0"
|
|
},
|
|
"packageManager": "pnpm@10.23.0",
|
|
"dependencies": {
|
|
"@agentclientprotocol/sdk": "0.13.1",
|
|
"@aws-sdk/client-bedrock": "^3.975.0",
|
|
"@buape/carbon": "0.14.0",
|
|
"@clack/prompts": "^0.11.0",
|
|
"@grammyjs/runner": "^2.0.3",
|
|
"@grammyjs/transformer-throttler": "^1.2.1",
|
|
"@homebridge/ciao": "^1.3.4",
|
|
"@line/bot-sdk": "^10.6.0",
|
|
"@lydell/node-pty": "1.2.0-beta.3",
|
|
"@mariozechner/pi-agent-core": "0.49.3",
|
|
"@mariozechner/pi-ai": "0.49.3",
|
|
"@mariozechner/pi-coding-agent": "0.49.3",
|
|
"@mariozechner/pi-tui": "0.49.3",
|
|
"@mozilla/readability": "^0.6.0",
|
|
"@sinclair/typebox": "0.34.47",
|
|
"@slack/bolt": "^4.6.0",
|
|
"@slack/web-api": "^7.13.0",
|
|
"@whiskeysockets/baileys": "7.0.0-rc.9",
|
|
"ajv": "^8.17.1",
|
|
"body-parser": "^2.2.2",
|
|
"chalk": "^5.6.2",
|
|
"chokidar": "^5.0.0",
|
|
"chromium-bidi": "13.0.1",
|
|
"cli-highlight": "^2.1.11",
|
|
"commander": "^14.0.2",
|
|
"croner": "^9.1.0",
|
|
"detect-libc": "^2.1.2",
|
|
"discord-api-types": "^0.38.37",
|
|
"dotenv": "^17.2.3",
|
|
"express": "^5.2.1",
|
|
"file-type": "^21.3.0",
|
|
"grammy": "^1.39.3",
|
|
"hono": "4.11.4",
|
|
"jiti": "^2.6.1",
|
|
"json5": "^2.2.3",
|
|
"jszip": "^3.10.1",
|
|
"linkedom": "^0.18.12",
|
|
"long": "5.3.2",
|
|
"markdown-it": "^14.1.0",
|
|
"node-edge-tts": "^1.2.9",
|
|
"osc-progress": "^0.3.0",
|
|
"pdfjs-dist": "^5.4.530",
|
|
"playwright-core": "1.58.0",
|
|
"proper-lockfile": "^4.1.2",
|
|
"qrcode-terminal": "^0.12.0",
|
|
"sharp": "0.35.0-rc.0",
|
|
"sqlite-vec": "0.1.7-alpha.2",
|
|
"tar": "7.5.4",
|
|
"tslog": "^4.10.2",
|
|
"undici": "^7.19.0",
|
|
"ws": "^8.19.0",
|
|
"yaml": "^2.8.2",
|
|
"zod": "^4.3.6"
|
|
},
|
|
"optionalDependencies": {
|
|
"@napi-rs/canvas": "^0.1.88",
|
|
"node-llama-cpp": "3.15.0"
|
|
},
|
|
"devDependencies": {
|
|
"@grammyjs/types": "^3.23.0",
|
|
"@lit-labs/signals": "^0.2.0",
|
|
"@lit/context": "^1.1.6",
|
|
"@mariozechner/mini-lit": "0.2.1",
|
|
"@types/body-parser": "^1.19.6",
|
|
"@types/express": "^5.0.6",
|
|
"@types/markdown-it": "^14.1.2",
|
|
"@types/node": "^25.0.10",
|
|
"@types/proper-lockfile": "^4.1.4",
|
|
"@types/qrcode-terminal": "^0.12.2",
|
|
"@types/ws": "^8.18.1",
|
|
"@typescript/native-preview": "7.0.0-dev.20260124.1",
|
|
"@vitest/coverage-v8": "^4.0.18",
|
|
"docx-preview": "^0.3.7",
|
|
"lit": "^3.3.2",
|
|
"lucide": "^0.563.0",
|
|
"ollama": "^0.6.3",
|
|
"oxfmt": "0.26.0",
|
|
"oxlint": "^1.41.0",
|
|
"oxlint-tsgolint": "^0.11.1",
|
|
"quicktype-core": "^23.2.6",
|
|
"rolldown": "1.0.0-rc.1",
|
|
"signal-utils": "^0.21.1",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^5.9.3",
|
|
"vitest": "^4.0.18",
|
|
"wireit": "^0.14.12"
|
|
},
|
|
"overrides": {
|
|
"tar": "7.5.4"
|
|
},
|
|
"pnpm": {
|
|
"minimumReleaseAge": 2880,
|
|
"overrides": {
|
|
"@sinclair/typebox": "0.34.47",
|
|
"hono": "4.11.4",
|
|
"tar": "7.5.4"
|
|
},
|
|
"patchedDependencies": {
|
|
"@mariozechner/clipboard@0.3.0": "patches/@mariozechner__clipboard@0.3.0.patch"
|
|
}
|
|
},
|
|
"vitest": {
|
|
"coverage": {
|
|
"provider": "v8",
|
|
"reporter": [
|
|
"text",
|
|
"lcov"
|
|
],
|
|
"thresholds": {
|
|
"lines": 70,
|
|
"functions": 70,
|
|
"branches": 70,
|
|
"statements": 70
|
|
},
|
|
"include": [
|
|
"src/**/*.ts"
|
|
],
|
|
"exclude": [
|
|
"src/**/*.test.ts"
|
|
]
|
|
},
|
|
"include": [
|
|
"src/**/*.test.ts"
|
|
],
|
|
"exclude": [
|
|
"dist/**",
|
|
"apps/macos/**",
|
|
"apps/macos/.build/**",
|
|
"**/vendor/**",
|
|
"apps/macos/.build/**",
|
|
"dist/OpenClaw.app/**"
|
|
]
|
|
}
|
|
}
|