{
  "name": "openclaw",
  "version": "2026.3.13",
  "description": "Multi-channel AI gateway with extensible messaging integrations",
  "keywords": [],
  "homepage": "https://github.com/openclaw/openclaw#readme",
  "bugs": {
    "url": "https://github.com/openclaw/openclaw/issues"
  },
  "license": "MIT",
  "author": "",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/openclaw/openclaw.git"
  },
  "bin": {
    "openclaw": "openclaw.mjs"
  },
  "directories": {
    "doc": "docs",
    "test": "test"
  },
  "files": [
    "CHANGELOG.md",
    "LICENSE",
    "openclaw.mjs",
    "README-header.png",
    "README.md",
    "assets/",
    "dist/",
    "docs/",
    "extensions/",
    "skills/"
  ],
  "type": "module",
  "main": "dist/index.js",
  "exports": {
    ".": "./dist/index.js",
    "./plugin-sdk": {
      "types": "./dist/plugin-sdk/index.d.ts",
      "default": "./dist/plugin-sdk/index.js"
    },
    "./plugin-sdk/core": {
      "types": "./dist/plugin-sdk/core.d.ts",
      "default": "./dist/plugin-sdk/core.js"
    },
    "./plugin-sdk/compat": {
      "types": "./dist/plugin-sdk/compat.d.ts",
      "default": "./dist/plugin-sdk/compat.js"
    },
    "./plugin-sdk/telegram": {
      "types": "./dist/plugin-sdk/telegram.d.ts",
      "default": "./dist/plugin-sdk/telegram.js"
    },
    "./plugin-sdk/discord": {
      "types": "./dist/plugin-sdk/discord.d.ts",
      "default": "./dist/plugin-sdk/discord.js"
    },
    "./plugin-sdk/slack": {
      "types": "./dist/plugin-sdk/slack.d.ts",
      "default": "./dist/plugin-sdk/slack.js"
    },
    "./plugin-sdk/signal": {
      "types": "./dist/plugin-sdk/signal.d.ts",
      "default": "./dist/plugin-sdk/signal.js"
    },
    "./plugin-sdk/imessage": {
      "types": "./dist/plugin-sdk/imessage.d.ts",
      "default": "./dist/plugin-sdk/imessage.js"
    },
    "./plugin-sdk/whatsapp": {
      "types": "./dist/plugin-sdk/whatsapp.d.ts",
      "default": "./dist/plugin-sdk/whatsapp.js"
    },
    "./plugin-sdk/line": {
      "types": "./dist/plugin-sdk/line.d.ts",
      "default": "./dist/plugin-sdk/line.js"
    },
    "./plugin-sdk/msteams": {
      "types": "./dist/plugin-sdk/msteams.d.ts",
      "default": "./dist/plugin-sdk/msteams.js"
    },
    "./plugin-sdk/acpx": {
      "types": "./dist/plugin-sdk/acpx.d.ts",
      "default": "./dist/plugin-sdk/acpx.js"
    },
    "./plugin-sdk/bluebubbles": {
      "types": "./dist/plugin-sdk/bluebubbles.d.ts",
      "default": "./dist/plugin-sdk/bluebubbles.js"
    },
    "./plugin-sdk/copilot-proxy": {
      "types": "./dist/plugin-sdk/copilot-proxy.d.ts",
      "default": "./dist/plugin-sdk/copilot-proxy.js"
    },
    "./plugin-sdk/device-pair": {
      "types": "./dist/plugin-sdk/device-pair.d.ts",
      "default": "./dist/plugin-sdk/device-pair.js"
    },
    "./plugin-sdk/diagnostics-otel": {
      "types": "./dist/plugin-sdk/diagnostics-otel.d.ts",
      "default": "./dist/plugin-sdk/diagnostics-otel.js"
    },
    "./plugin-sdk/diffs": {
      "types": "./dist/plugin-sdk/diffs.d.ts",
      "default": "./dist/plugin-sdk/diffs.js"
    },
    "./plugin-sdk/feishu": {
      "types": "./dist/plugin-sdk/feishu.d.ts",
      "default": "./dist/plugin-sdk/feishu.js"
    },
    "./plugin-sdk/google-gemini-cli-auth": {
      "types": "./dist/plugin-sdk/google-gemini-cli-auth.d.ts",
      "default": "./dist/plugin-sdk/google-gemini-cli-auth.js"
    },
    "./plugin-sdk/googlechat": {
      "types": "./dist/plugin-sdk/googlechat.d.ts",
      "default": "./dist/plugin-sdk/googlechat.js"
    },
    "./plugin-sdk/irc": {
      "types": "./dist/plugin-sdk/irc.d.ts",
      "default": "./dist/plugin-sdk/irc.js"
    },
    "./plugin-sdk/llm-task": {
      "types": "./dist/plugin-sdk/llm-task.d.ts",
      "default": "./dist/plugin-sdk/llm-task.js"
    },
    "./plugin-sdk/lobster": {
      "types": "./dist/plugin-sdk/lobster.d.ts",
      "default": "./dist/plugin-sdk/lobster.js"
    },
    "./plugin-sdk/matrix": {
      "types": "./dist/plugin-sdk/matrix.d.ts",
      "default": "./dist/plugin-sdk/matrix.js"
    },
    "./plugin-sdk/mattermost": {
      "types": "./dist/plugin-sdk/mattermost.d.ts",
      "default": "./dist/plugin-sdk/mattermost.js"
    },
    "./plugin-sdk/memory-core": {
      "types": "./dist/plugin-sdk/memory-core.d.ts",
      "default": "./dist/plugin-sdk/memory-core.js"
    },
    "./plugin-sdk/memory-lancedb": {
      "types": "./dist/plugin-sdk/memory-lancedb.d.ts",
      "default": "./dist/plugin-sdk/memory-lancedb.js"
    },
    "./plugin-sdk/minimax-portal-auth": {
      "types": "./dist/plugin-sdk/minimax-portal-auth.d.ts",
      "default": "./dist/plugin-sdk/minimax-portal-auth.js"
    },
    "./plugin-sdk/nextcloud-talk": {
      "types": "./dist/plugin-sdk/nextcloud-talk.d.ts",
      "default": "./dist/plugin-sdk/nextcloud-talk.js"
    },
    "./plugin-sdk/nostr": {
      "types": "./dist/plugin-sdk/nostr.d.ts",
      "default": "./dist/plugin-sdk/nostr.js"
    },
    "./plugin-sdk/open-prose": {
      "types": "./dist/plugin-sdk/open-prose.d.ts",
      "default": "./dist/plugin-sdk/open-prose.js"
    },
    "./plugin-sdk/phone-control": {
      "types": "./dist/plugin-sdk/phone-control.d.ts",
      "default": "./dist/plugin-sdk/phone-control.js"
    },
    "./plugin-sdk/qwen-portal-auth": {
      "types": "./dist/plugin-sdk/qwen-portal-auth.d.ts",
      "default": "./dist/plugin-sdk/qwen-portal-auth.js"
    },
    "./plugin-sdk/synology-chat": {
      "types": "./dist/plugin-sdk/synology-chat.d.ts",
      "default": "./dist/plugin-sdk/synology-chat.js"
    },
    "./plugin-sdk/talk-voice": {
      "types": "./dist/plugin-sdk/talk-voice.d.ts",
      "default": "./dist/plugin-sdk/talk-voice.js"
    },
    "./plugin-sdk/test-utils": {
      "types": "./dist/plugin-sdk/test-utils.d.ts",
      "default": "./dist/plugin-sdk/test-utils.js"
    },
    "./plugin-sdk/thread-ownership": {
      "types": "./dist/plugin-sdk/thread-ownership.d.ts",
      "default": "./dist/plugin-sdk/thread-ownership.js"
    },
    "./plugin-sdk/tlon": {
      "types": "./dist/plugin-sdk/tlon.d.ts",
      "default": "./dist/plugin-sdk/tlon.js"
    },
    "./plugin-sdk/twitch": {
      "types": "./dist/plugin-sdk/twitch.d.ts",
      "default": "./dist/plugin-sdk/twitch.js"
    },
    "./plugin-sdk/voice-call": {
      "types": "./dist/plugin-sdk/voice-call.d.ts",
      "default": "./dist/plugin-sdk/voice-call.js"
    },
    "./plugin-sdk/zalo": {
      "types": "./dist/plugin-sdk/zalo.d.ts",
      "default": "./dist/plugin-sdk/zalo.js"
    },
    "./plugin-sdk/zalouser": {
      "types": "./dist/plugin-sdk/zalouser.d.ts",
      "default": "./dist/plugin-sdk/zalouser.js"
    },
    "./plugin-sdk/account-id": {
      "types": "./dist/plugin-sdk/account-id.d.ts",
      "default": "./dist/plugin-sdk/account-id.js"
    },
    "./plugin-sdk/keyed-async-queue": {
      "types": "./dist/plugin-sdk/keyed-async-queue.d.ts",
      "default": "./dist/plugin-sdk/keyed-async-queue.js"
    },
    "./cli-entry": "./openclaw.mjs"
  },
  "scripts": {
    "android:assemble": "cd apps/android && ./gradlew :app:assembleDebug",
    "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:installDebug",
    "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:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity",
    "android:test": "cd apps/android && ./gradlew :app:testDebugUnitTest",
    "android:test:integration": "OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts",
    "build": "pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts",
    "build:docker": "node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts",
    "build:plugin-sdk:dts": "tsc -p tsconfig.plugin-sdk.dts.json",
    "build:strict-smoke": "pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts",
    "canvas:a2ui:bundle": "bash scripts/bundle-a2ui.sh",
    "check": "pnpm check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope",
    "check:docs": "pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links",
    "check:host-env-policy:swift": "node scripts/generate-host-env-security-policy-swift.mjs --check",
    "check:loc": "node --import tsx scripts/check-ts-max-loc.ts --max 500",
    "deadcode:ci": "pnpm deadcode:report:ci:knip",
    "deadcode:knip": "pnpm dlx knip --config knip.config.ts --isolate-workspaces --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",
    "dev": "node scripts/run-node.mjs",
    "docs:bin": "node scripts/build-docs-list.mjs",
    "docs:check-links": "node scripts/docs-link-audit.mjs",
    "docs:dev": "cd docs && mint dev",
    "docs:list": "node scripts/docs-list.js",
    "docs:spellcheck": "bash scripts/docs-spellcheck.sh",
    "docs:spellcheck:fix": "bash scripts/docs-spellcheck.sh --write",
    "dup:check": "jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console",
    "dup:check:json": "jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd",
    "format": "oxfmt --write",
    "format:all": "pnpm format && pnpm format:swift",
    "format:check": "oxfmt --check",
    "format:diff": "oxfmt --write && git --no-pager diff",
    "format:docs": "git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write",
    "format:docs:check": "git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check",
    "format:fix": "oxfmt --write",
    "format:swift": "swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources",
    "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",
    "gateway:watch": "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'",
    "lint": "oxlint --type-aware",
    "lint:agent:ingress-owner": "node scripts/check-ingress-agent-owner-context.mjs",
    "lint:all": "pnpm lint && 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:docs": "pnpm dlx markdownlint-cli2",
    "lint:docs:fix": "pnpm dlx markdownlint-cli2 --fix",
    "lint:fix": "oxlint --type-aware --fix && pnpm format",
    "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:swift": "swiftlint lint --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:no-random-messaging": "node scripts/check-no-random-messaging-tmp.mjs",
    "lint:tmp:no-raw-channel-fetch": "node scripts/check-no-raw-channel-fetch.mjs",
    "lint:ui:no-raw-window-open": "node scripts/check-no-raw-window-open.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",
    "plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
    "prepack": "pnpm build && pnpm ui:build",
    "prepare": "command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0",
    "protocol:check": "pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/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",
    "release:check": "node --import tsx scripts/release-check.ts",
    "release:openclaw:npm:check": "node --import tsx scripts/openclaw-npm-release-check.ts",
    "start": "node scripts/run-node.mjs",
    "test": "node scripts/test-parallel.mjs",
    "test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
    "test:auth:compat": "vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts",
    "test:channels": "vitest run --config vitest.channels.config.ts",
    "test:coverage": "vitest run --config vitest.unit.config.ts --coverage",
    "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:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
    "test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
    "test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
    "test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
    "test:docker:live-models": "bash scripts/test-live-models-docker.sh",
    "test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
    "test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
    "test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
    "test:e2e": "vitest run --config vitest.e2e.config.ts",
    "test:extensions": "vitest run --config vitest.extensions.config.ts",
    "test:fast": "vitest run --config vitest.unit.config.ts",
    "test:force": "node --import tsx scripts/test-force.ts",
    "test:gateway": "vitest run --config vitest.gateway.config.ts --pool=forks",
    "test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
    "test:install:e2e:anthropic": "OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
    "test:install:e2e:openai": "OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
    "test:install:smoke": "bash scripts/test-install-sh-docker.sh",
    "test:live": "OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts",
    "test:macmini": "OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs",
    "test:parallels:linux": "bash scripts/e2e/parallels-linux-smoke.sh",
    "test:parallels:macos": "bash scripts/e2e/parallels-macos-smoke.sh",
    "test:parallels:windows": "bash scripts/e2e/parallels-windows-smoke.sh",
    "test:perf:budget": "node scripts/test-perf-budget.mjs",
    "test:perf:hotspots": "node scripts/test-hotspots.mjs",
    "test:sectriage": "pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts",
    "test:ui": "pnpm lint:ui:no-raw-window-open && pnpm --dir ui test",
    "test:voicecall:closedloop": "vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1",
    "test:watch": "vitest",
    "tui": "node scripts/run-node.mjs tui",
    "tui:dev": "OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui",
    "ui:build": "node scripts/ui.js build",
    "ui:dev": "node scripts/ui.js dev",
    "ui:install": "node scripts/ui.js install"
  },
  "dependencies": {
    "@agentclientprotocol/sdk": "0.16.1",
    "@aws-sdk/client-bedrock": "^3.1009.0",
    "@buape/carbon": "0.0.0-beta-20260216184201",
    "@clack/prompts": "^1.1.0",
    "@discordjs/voice": "^0.19.1",
    "@grammyjs/runner": "^2.0.3",
    "@grammyjs/transformer-throttler": "^1.2.1",
    "@homebridge/ciao": "^1.3.5",
    "@larksuiteoapi/node-sdk": "^1.59.0",
    "@line/bot-sdk": "^10.6.0",
    "@lydell/node-pty": "1.2.0-beta.3",
    "@mariozechner/pi-agent-core": "0.58.0",
    "@mariozechner/pi-ai": "0.58.0",
    "@mariozechner/pi-coding-agent": "0.58.0",
    "@mariozechner/pi-tui": "0.58.0",
    "@modelcontextprotocol/sdk": "1.27.1",
    "@mozilla/readability": "^0.6.0",
    "@sinclair/typebox": "0.34.48",
    "@slack/bolt": "^4.6.0",
    "@slack/web-api": "^7.15.0",
    "@whiskeysockets/baileys": "7.0.0-rc.9",
    "ajv": "^8.18.0",
    "chalk": "^5.6.2",
    "chokidar": "^5.0.0",
    "cli-highlight": "^2.1.11",
    "commander": "^14.0.3",
    "croner": "^10.0.1",
    "discord-api-types": "^0.38.42",
    "dotenv": "^17.3.1",
    "express": "^5.2.1",
    "file-type": "^21.3.2",
    "grammy": "^1.41.1",
    "hono": "4.12.7",
    "https-proxy-agent": "^8.0.0",
    "ipaddr.js": "^2.3.0",
    "jiti": "^2.6.1",
    "json5": "^2.2.3",
    "jszip": "^3.10.1",
    "linkedom": "^0.18.12",
    "long": "^5.3.2",
    "markdown-it": "^14.1.1",
    "node-edge-tts": "^1.2.10",
    "opusscript": "^0.1.1",
    "osc-progress": "^0.3.0",
    "pdfjs-dist": "^5.5.207",
    "playwright-core": "1.58.2",
    "qrcode-terminal": "^0.12.0",
    "sharp": "^0.34.5",
    "sqlite-vec": "0.1.7-alpha.2",
    "tar": "7.5.11",
    "tslog": "^4.10.2",
    "undici": "^7.24.1",
    "ws": "^8.19.0",
    "yaml": "^2.8.2",
    "zod": "^4.3.6"
  },
  "devDependencies": {
    "@grammyjs/types": "^3.25.0",
    "@lit-labs/signals": "^0.2.0",
    "@lit/context": "^1.1.6",
    "@types/express": "^5.0.6",
    "@types/markdown-it": "^14.1.2",
    "@types/node": "^25.5.0",
    "@types/qrcode-terminal": "^0.12.2",
    "@types/ws": "^8.18.1",
    "@typescript/native-preview": "7.0.0-dev.20260313.1",
    "@vitest/coverage-v8": "^4.1.0",
    "jscpd": "4.0.8",
    "jsdom": "^28.1.0",
    "lit": "^3.3.2",
    "oxfmt": "0.40.0",
    "oxlint": "^1.55.0",
    "oxlint-tsgolint": "^0.16.0",
    "signal-utils": "0.21.1",
    "tsdown": "0.21.2",
    "tsx": "^4.21.0",
    "typescript": "^5.9.3",
    "vitest": "^4.1.0"
  },
  "peerDependencies": {
    "@napi-rs/canvas": "^0.1.89",
    "node-llama-cpp": "3.16.2"
  },
  "peerDependenciesMeta": {
    "node-llama-cpp": {
      "optional": true
    }
  },
  "engines": {
    "node": ">=22.16.0"
  },
  "packageManager": "pnpm@10.23.0",
  "pnpm": {
    "minimumReleaseAge": 2880,
    "overrides": {
      "hono": "4.12.7",
      "@hono/node-server": "1.19.10",
      "fast-xml-parser": "5.3.8",
      "request": "npm:@cypress/request@3.0.10",
      "request-promise": "npm:@cypress/request-promise@5.0.0",
      "file-type": "21.3.2",
      "form-data": "2.5.4",
      "minimatch": "10.2.4",
      "qs": "6.14.2",
      "node-domexception": "npm:@nolyfill/domexception@^1.0.28",
      "@sinclair/typebox": "0.34.48",
      "tar": "7.5.11",
      "tough-cookie": "4.1.3"
    },
    "onlyBuiltDependencies": [
      "@lydell/node-pty",
      "@matrix-org/matrix-sdk-crypto-nodejs",
      "@napi-rs/canvas",
      "@tloncorp/api",
      "@whiskeysockets/baileys",
      "authenticate-pam",
      "esbuild",
      "koffi",
      "node-llama-cpp",
      "protobufjs",
      "sharp"
    ],
    "packageExtensions": {
      "@mariozechner/pi-coding-agent": {
        "dependencies": {
          "strip-ansi": "^7.2.0"
        }
      }
    }
  }
}
