{ "name": "@xopcai/xopc", "version": "0.0.463", "description": "An open-source AI assistant for work and everyday life. Remembers context and helps you get things done. Local-first, on a computer you choose.", "packageManager": "pnpm@11.9.0", "type": "module", "main": "dist/src/index.js", "types": "dist/src/index.d.ts", "exports": { ".": { "types": "./dist/src/index.d.ts", "import": "./dist/src/index.js", "default": "./dist/src/index.js" }, "./extension-sdk": { "types": "./dist/src/extensions/sdk/index.d.ts", "import": "./dist/src/extensions/sdk/index.js", "default": "./dist/src/extensions/sdk/index.js" }, "./extension-sdk/*": "./dist/src/extensions/sdk/*", "./*": "./dist/src/*" }, "bin": { "xopc": "./dist/src/cli/bin.js" }, "files": [ "dist", "skills" ], "publishConfig": { "access": "public" }, "scripts": { "generate:device-tools": "tsx scripts/devices/generate-mobile-tools.mts", "check:device-tools": "tsx scripts/devices/generate-mobile-tools.mts --check", "assets:brand": "node scripts/generate-brand-assets.mjs", "assets:brand:check": "node scripts/generate-brand-assets.mjs --check", "build:node": "node scripts/tsdown-build.mjs", "build:types": "tsc -p tsconfig.dts.json", "build:ci": "pnpm run build:node && pnpm run build:web", "build": "pnpm run build:node && pnpm run build:types && pnpm run build:web", "docker:build": "sh -c 'docker buildx version >/dev/null 2>&1 || { echo \"Docker buildx is required. Install it with: brew install docker-buildx && mkdir -p ~/.docker/cli-plugins && ln -sf $(brew --prefix)/opt/docker-buildx/bin/docker-buildx ~/.docker/cli-plugins/docker-buildx\" >&2; exit 1; }; DOCKER_BUILDKIT=1 docker build --build-arg XOPC_APT_MIRROR=\"${XOPC_APT_MIRROR:-}\" -t xopc:local .'", "docker:run": "docker run --rm -it -p 18790:18790 -v ${HOME}/.xopc:/home/node/.xopc xopc:local", "docker:compose:up": "sh -c 'if docker compose version >/dev/null 2>&1; then DOCKER_BUILDKIT=1 docker compose up --build xopc-gateway; else COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose up --build xopc-gateway; fi'", "docker:compose:down": "sh -c 'if docker compose version >/dev/null 2>&1; then docker compose down; else docker-compose down; fi'", "typecheck": "tsc --noEmit -p tsconfig.json && pnpm run typecheck:electron", "typecheck:electron": "tsc -p tsconfig.electron.json", "test:codemode:gateway": "node --import tsx/esm scripts/verify-codemode-gateway.mjs", "test:tool-discovery:gateway": "cross-env XOPC_TOOL_DISCOVERY_SMOKE=1 node --import tsx/esm scripts/verify-codemode-gateway.mjs", "test:native-tools:gateway": "cross-env XOPC_NATIVE_TOOLS_SMOKE=1 node --import tsx/esm scripts/verify-codemode-gateway.mjs", "eval:codemode": "tsx scripts/evaluate-codemode.mts", "eval:codemode:check": "tsc -p scripts/codemode-evaluation/tsconfig.json", "build:web": "pnpm -C web run build", "dev:web": "pnpm -C web run dev", "android:mobile": "pnpm run mobile:android:build", "ios:mobile": "pnpm run mobile:ios:build", "mobile:android:build": "cd apps/mobile-android && ./gradlew :app:assembleDebug", "mobile:android:test": "cd apps/mobile-android && ./gradlew :app:testDebugUnitTest", "mobile:ios:generate": "pnpm --filter @xopcai/markdown-math build:mobile ios && node packages/chart-spec/scripts/build-mobile.mjs ios && cd apps/mobile-ios && xcodegen generate", "mobile:ios:build": "pnpm run mobile:ios:generate && cd apps/mobile-ios && xcodebuild -project XopcMobile.xcodeproj -scheme XopcMobile -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO build", "mobile:ios:test": "pnpm run mobile:ios:generate && cd apps/mobile-ios && xcodebuild -project XopcMobile.xcodeproj -scheme XopcMobile -destination 'platform=iOS Simulator,name=iPhone 17 Pro' -only-testing:XopcMobileTests CODE_SIGNING_ALLOWED=NO test", "mobile:test": "pnpm run mobile:android:test && pnpm run mobile:ios:test", "mobile:test:stream": "pnpm exec vitest run --project packages packages/realtime-protocol/src/index.test.ts packages/gateway-contract/src/session-input-reliability.test.ts packages/gateway-contract/src/tool-activity.test.ts packages/gateway-contract/src/turn-outcome.test.ts", "harmony:verify": "tsx apps/mobile-harmony/scripts/verify.mts", "harmony:test:server": "tsx apps/mobile-harmony/scripts/native-test-server.mts", "mobile:release:patch": "bash scripts/apps/mobile-native/release-patch.sh", "dev": "node --import tsx/esm src/cli/bin.ts", "dev:init": "sh -c 'mkdir -p \"$HOME/.xopc-dev\" && XOPC_STATE_DIR=\"$HOME/.xopc-dev\" XOPC_CONFIG_PATH=\"$HOME/.xopc-dev/xopc.json\" XOPC_CONFIG=\"$HOME/.xopc-dev/xopc.json\" XOPC_LOG_DIR=\"$HOME/.xopc-dev/logs\" XOPC_LOG_LEVEL=info node --import tsx/esm src/cli/bin.ts init \"$@\"' --", "dev:gateway": "sh -c 'mkdir -p \"$HOME/.xopc-dev\" && XOPC_STATE_DIR=\"$HOME/.xopc-dev\" XOPC_CONFIG_PATH=\"$HOME/.xopc-dev/xopc.json\" XOPC_CONFIG=\"$HOME/.xopc-dev/xopc.json\" XOPC_LOG_DIR=\"$HOME/.xopc-dev/logs\" XOPC_LOG_LEVEL=info node --import tsx/esm src/cli/bin.ts gateway \"$@\"' --", "start": "node dist/src/cli/bin.js", "test": "cross-env XOPC_LOG_LEVEL=fatal vitest run --project=unit", "test:all": "cross-env XOPC_LOG_LEVEL=fatal vitest run", "test:changed": "cross-env XOPC_LOG_LEVEL=fatal vitest run --changed", "test:component": "cross-env XOPC_LOG_LEVEL=fatal vitest run --project=component", "test:integration": "cross-env XOPC_LOG_LEVEL=fatal vitest run --project=integration", "test:extensions": "cross-env XOPC_LOG_LEVEL=fatal vitest run --project=extensions", "test:web": "cross-env XOPC_LOG_LEVEL=fatal vitest run --project=web", "test:packages": "cross-env XOPC_LOG_LEVEL=fatal vitest run --project=packages", "test:plugins:e2e": "pnpm run build:node && pnpm run build:web && pnpm run test:plugins:store:e2e && pnpm run test:plugins:app:e2e && pnpm run test:plugins:authorization:e2e && pnpm run test:plugins:browser", "test:plugins:app:e2e": "cross-env XOPC_LOG_LEVEL=fatal tsx scripts/verify-plugin-app-e2e.mts", "test:plugins:store:e2e": "cross-env XOPC_LOG_LEVEL=fatal tsx scripts/verify-store-plugin-e2e.mts", "test:plugins:fixtures": "tsx scripts/build-store-plugin-lab.mts", "test:plugins:browser": "cross-env XOPC_LOG_LEVEL=fatal tsx scripts/verify-plugin-setup-browser.mts", "test:web:activity:e2e": "pnpm run build:node && pnpm run build:web && tsx scripts/verify-assistant-activity-browser.mts", "test:web:clarification:e2e": "pnpm run build:node && pnpm run build:web && tsx scripts/verify-clarification-browser.mts", "test:web:tool-approval:e2e": "pnpm run build:web && tsx scripts/verify-tool-approval-browser.mts", "test:web:onboarding-visual": "node scripts/test-onboarding-visual.mjs", "test:web:onboarding-visual:update": "node scripts/test-onboarding-visual.mjs --update", "test:quick-understanding": "XOPC_LOG_LEVEL=fatal vitest run src/work-discovery/__tests__/evaluation.test.ts src/user-context/sources/__tests__/activity-clustering.test.ts src/knowledge/__tests__/quick-understanding.e2e.test.ts src/connectors/__tests__/content-enrichment.test.ts src/connectors/__tests__/connected-source-ingestion.test.ts", "test:skills": "vitest run src/agent/skills/__tests__", "test:skills:regression": "./scripts/test-skills.sh", "test:configuration:e2e": "tsx scripts/verify-conversation-configuration-e2e.mts", "test:configuration:check": "tsc -p scripts/tsconfig.conversation-configuration.json", "test:skills:all": "npm run test:skills && npm run test:skills:regression", "skills:test": "tsx src/cli/bin.ts skills test", "skills:validate": "tsx src/cli/bin.ts skills test validate", "skills:security": "tsx src/cli/bin.ts skills test security", "lint": "eslint && pnpm -C web run lint", "depcheck": "depcruise --config .dependency-cruiser.cjs src", "depcheck:graph": "depcruise --config .dependency-cruiser.cjs --output-type mermaid src > docs/dependency-graph.mmd", "depcheck:archi": "depcruise --config .dependency-cruiser.cjs --output-type archi src > docs/dependency-archi.dot", "depcheck:html": "depcruise --config .dependency-cruiser.cjs --output-type err-html src > docs/dependency-violations.html", "test:chat:browser": "tsx scripts/verify-chat-performance-browser.mts", "test:chat:bench": "tsx scripts/benchmark-chat-performance.mts", "test:chat:performance": "vitest run --project=web web/src/features/chat/__tests__/session-load-queue.test.ts web/src/features/chat/rendering/__tests__/math-budget.test.ts web/src/features/chat/rendering/__tests__/chat-stable-blocks.test.tsx web/src/features/chat/__tests__/use-chat-session-load.test.tsx", "test:startup:bench": "node --import tsx scripts/bench-cli-startup.ts", "test:startup:bench:check": "node --import tsx scripts/bench-cli-startup.ts --runs 3 --warmup 1", "test:startup:gateway": "node --import tsx scripts/bench-gateway-startup.ts", "test:startup:gateway:check": "node --import tsx scripts/bench-gateway-startup.ts --runs 2 --warmup 0 --ready-budget-ms 20000", "test:startup:imports": "node scripts/check-cli-bootstrap-imports.mjs", "test:electron:local-connection": "node scripts/verify-electron-local-connection.mjs", "eval:coder": "tsx evals/coder/apps/cli/src/main.ts", "eval:personal:style": "tsx evals/personal/style/run.mts", "eval:personal:style:prepare": "node evals/personal/style/prepare.mjs", "eval:personal:style:check": "tsc -p evals/personal/style/tsconfig.json && python3 -m unittest discover -s evals/personal/style -p 'test_*.py'", "eval:memory:acquisition": "tsx scripts/memory-acquisition-benchmark.mts", "eval:memory:review": "tsx scripts/memory-work-review-benchmark.mts", "eval:personal:p0": "tsx scripts/personal-delivery-benchmark.mts", "eval:personal:p1": "tsx scripts/personal-delivery-benchmark.mts --suite p1", "eval:personal:p2": "tsx scripts/personal-delivery-benchmark.mts --suite p2", "eval:personal:live-repair": "tsx scripts/personal-repair-live-benchmark.mts", "eval:coder:check": "pnpm -C evals/coder run check", "eval:coder:smoke": "pnpm -C evals/coder run smoke", "eval:coder:web": "tsx evals/coder/apps/web/src/server.ts", "tunnel:broker-tls:verify": "node scripts/tunnel-broker-tls-verify.mjs", "release:patch": "bash scripts/release-patch.sh", "growth:snapshot": "node scripts/growth-snapshot.mjs", "growth:github-community": "node scripts/growth-github-community.mjs", "release:check-package": "node scripts/check-publish-manifest.mjs", "release:smoke-package": "node scripts/npm-package-smoke.mjs", "prepublishOnly": "pnpm run test:all && pnpm run test:skills:all && pnpm run build && pnpm run release:check-package && pnpm run release:smoke-package", "docs:dev": "vitepress dev docs", "docs:check": "node scripts/check-docs.mjs", "docs:build": "pnpm run docs:check && vitepress build docs", "docs:preview": "vitepress preview docs", "docs:extension-sdk": "pnpm -C packages/extension-ui-sdk run docs", "build:extensions-ui": "node scripts/build-extensions-ui.mjs", "pack:browser-ext": "pnpm -C packages/browser-ext run pack", "sync:browser-ext-version": "node scripts/sync-browser-ext-version.mjs", "computer:driver:setup": "node scripts/setup-computer-driver.mjs", "computer:benchmark": "node --import tsx scripts/benchmark-computer-regressions.mts", "computer:benchmark:windows": "node --import tsx scripts/benchmark-computer-windows.mts", "computer:benchmark:check": "tsc -p scripts/computer-benchmark/tsconfig.json", "computer:osworld:check": "python3 -m unittest discover -s scripts/osworld -p 'test_*.py' && tsc -p scripts/osworld/tsconfig.json", "computer:evaluate": "node --import tsx scripts/evaluate-computer.mts", "computer:evaluate:run": "node --import tsx scripts/run-computer-evaluation.mts", "computer:evaluate:compare": "node --import tsx scripts/compare-computer-evaluations.mts", "computer:release:verify": "node --import tsx scripts/verify-computer-release.mts", "electron:native:build": "node scripts/build-voice-hotkey-helper.mjs && node scripts/setup-computer-driver.mjs", "electron:dev": "pnpm run electron:native:build && cross-env ELECTRON_ENTRY=out/main/index.js electron-vite dev", "electron:vite:build": "cross-env ELECTRON_ENTRY=out/main/index.js electron-vite build", "electron:vite:build:package": "cross-env ELECTRON_ENTRY=out/main/index.js ELECTRON_VITE_SKIP_RENDERER=1 electron-vite build", "electron:package": "pnpm run assets:brand && node scripts/electron-builder.mjs", "electron:server:build": "node scripts/build-electron-server.mjs", "electron:extensions:build": "node scripts/build-electron-extensions.mjs", "electron:build:artifacts": "pnpm run electron:native:build && pnpm run electron:vite:build:package && pnpm run electron:server:build && pnpm run electron:extensions:build", "electron:frpc:download": "node --import tsx/esm scripts/download-frpc-binaries.mjs", "electron:frpc:download:all": "node --import tsx/esm scripts/download-frpc-binaries.mjs --all", "electron:build": "pnpm run build:node && pnpm run build:web && pnpm run electron:build:artifacts && pnpm run electron:package", "electron:preview": "cross-env ELECTRON_ENTRY=out/main/index.js electron-vite preview", "mobile:charts:assets": "node packages/chart-spec/scripts/build-mobile.mjs ios android harmony", "mobile:math:assets": "pnpm --filter @xopcai/markdown-math build:mobile ios android harmony", "eval:benchmark": "tsx evals/coder/apps/cli/src/benchmark.ts", "eval:benchmark:check": "pnpm -C evals/coder run typecheck && pnpm -C evals/coder exec vitest run --configLoader native tests/benchmark-v1.test.ts tests/xopc-adapter.test.ts tests/suite-loader.test.ts", "eval:benchmark:live": "node --import tsx evals/coder/scripts/run-benchmark-live.mjs", "eval:benchmark:regrade": "tsx evals/coder/apps/cli/src/benchmark-regrade.ts", "test:plugins:authorization:e2e": "cross-env XOPC_LOG_LEVEL=fatal tsx scripts/verify-plugin-authorization-e2e.mts", "test:plugins:production:e2e": "cross-env XOPC_LOG_LEVEL=fatal tsx scripts/verify-production-plugin-catalog.mts && cross-env XOPC_LOG_LEVEL=fatal tsx scripts/verify-production-plugin-browser.mts", "test:plugins:dingtalk:live": "tsx scripts/verify-dingtalk-live-e2e.mts", "eval:control": "tsx evals/control/cli.ts", "eval:control:check": "pnpm -C evals/coder run typecheck && pnpm -C evals/coder exec vitest run --configLoader native tests/control- tests/runner.test.ts" }, "keywords": [ "agentic-ai", "ai-agents", "ai-assistant", "ai-memory", "automation", "byok", "browser-automation", "cli", "desktop-app", "electron", "knowledge-management", "local-ai", "local-first", "mcp", "ollama", "open-source", "personal-ai", "self-hosted", "task-management", "typescript" ], "author": "xopcai ", "license": "MIT", "repository": { "type": "git", "url": "https://github.com/xopcai/xopc.git" }, "bugs": { "url": "https://github.com/xopcai/xopc/issues" }, "homepage": "https://xopc.ai", "engines": { "node": ">=26.12.1" }, "dependencies": { "@composio/core": "0.21.0", "@dicebear/collection": "9.4.2", "@dicebear/core": "9.4.2", "@earendil-works/chord": "1.5.2", "@earendil-works/pi-agent-core": "1.5.2", "@earendil-works/pi-ai": "1.5.2", "@earendil-works/pi-codemode": "1.5.2", "@earendil-works/pi-coding-agent": "1.5.2", "@earendil-works/pi-mcp": "1.5.2", "@earendil-works/pi-tui": "1.5.2", "@grammyjs/runner": "^2.0.3", "@hono/node-server": "^2.0.4", "@inquirer/prompts": "^8.5.0", "@modelcontextprotocol/sdk": "1.32.1", "@mozilla/readability": "^0.6.0", "@opentelemetry/api": "^1.9.1", "@opentelemetry/context-async-hooks": "^2.12.0", "@opentelemetry/sdk-trace-base": "^2.12.0", "@sinclair/typebox": "^0.34.49", "@trycua/cua-driver": "0.36.0", "@vscode/ripgrep": "^1.18.0", "@yume-chan/adb": "2.6.4", "@yume-chan/scrcpy": "2.3.0", "@yume-chan/stream-extra": "2.6.1", "abort-controller": "^3.0.0", "adm-zip": "^0.6.1", "ajv": "^8.20.0", "chalk": "^5.6.2", "chokidar": "^5.0.0", "cli-table3": "^0.6.5", "commander": "^14.0.3", "cron-parser": "^5.10.2", "dotenv": "^17.4.2", "glob": "^13.0.6", "grammy": "^1.43.0", "hono": "^4.12.25", "js-yaml": "^4.3.2", "linkedom": "0.18.13", "luxon": "3.7.2", "markdown-it": "^14.2.0", "node-edge-tts": "^1.2.10", "openai": "^6.48.0", "pdfjs-dist": "6.2.108", "pino": "^10.3.1", "pino-pretty": "^13.1.3", "proper-lockfile": "^4.1.2", "quickjs-wasi": "3.6.2", "semver": "^7.8.1", "sharp": "0.35.5", "silk-wasm": "^3.7.1", "smol-toml": "^1.8.0", "thread-stream": "^4.2.0", "undici": "^8.10.2", "uuid": "^14.0.0", "ws": "^8.21.0", "zod": "^4.4.3" }, "peerDependencies": { "@larksuiteoapi/node-sdk": "^1.66.0", "playwright-core": "^1.60.0" }, "peerDependenciesMeta": { "@larksuiteoapi/node-sdk": { "optional": true }, "playwright-core": { "optional": true } }, "devDependencies": { "@larksuiteoapi/node-sdk": "^1.66.0", "@resvg/resvg-js": "^2.6.2", "@tailwindcss/vite": "^4.3.0", "@types/adm-zip": "^0.5.8", "@types/js-yaml": "^4.0.9", "@types/jsdom": "^28.0.3", "@types/luxon": "^3.7.5", "@types/markdown-it": "^14.1.2", "@types/node": "^26.6.5", "@types/qrcode-terminal": "^0.12.2", "@types/ws": "^8.18.1", "@vitejs/plugin-react-swc": "^4.3.1", "@xopcai/browser-control-contract": "workspace:*", "@xopcai/computer-control-contract": "workspace:*", "@xopcai/endpoint-tools-client": "workspace:*", "@xopcai/endpoint-tools-protocol": "workspace:*", "@xopcai/gateway-contract": "workspace:*", "@xopcai/image-providers": "workspace:*", "@xopcai/realtime-client": "workspace:*", "@xopcai/realtime-protocol": "workspace:*", "cross-env": "^10.1.0", "dependency-cruiser": "^17.4.3", "electron": "^45.0.0", "electron-builder": "^26.15.3", "electron-updater": "6.8.9", "electron-vite": "^6.0.0-beta.1", "esbuild": "^0.28.1", "eslint": "^10.4.0", "gpt-tokenizer": "4.1.1", "jsdom": "^29.1.1", "node-pty": "1.1.0", "playwright-core": "^1.60.0", "svgo": "4.0.2", "tailwindcss": "^4.3.0", "tsdown": "0.21.10", "tsx": "^4.22.3", "typescript": "^6.0.3", "typescript-eslint": "^8.60.0", "vite": "^8.0.16", "vitepress": "^1.6.4", "vitest": "4.1.5", "vue": "^3.5.44", "xlsx": "file:web/vendor/xlsx-0.20.3.tgz" } }