package.json
Rama main · réplica de lectura del repositorio original.
{
"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 <lyxopc.ai@gmail.com>",
"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"
}
}