mirror of
https://github.com/stablyai/orca.git
synced 2026-09-22 08:02:28 +00:00
* Harden layout validation, watcher lifecycle, and connection robustness - Throw instead of silently skipping when the packaged daemon-entry is missing, preventing layout regressions from passing build checks. - Terminate idle parcel-watcher processes to reclaim native handles and avoid crash-prone native node module teardowns on shutdown. - Bind the persisted WS fallback port first to prevent orphaning active mobile pairings when the preferred port becomes free again. - Cap concurrent disk reads for restored dirty tab verification at three to prevent startup connection bottlenecks on remote SSH workspaces. * Queue file IDs instead of snapshots in restored conflict scans This avoids using stale file snapshots (e.g., outdated disk signatures) if a tab is saved, closed, or re-baselined while waiting in the queue behind the concurrency limit. The live state is now fetched from the store and validated immediately before initiating the disk read.
268 lines
14 KiB
JSON
268 lines
14 KiB
JSON
{
|
|
"name": "orca",
|
|
"version": "1.4.131-rc.2",
|
|
"description": "Next-gen IDE for parallel agentic development",
|
|
"homepage": "https://github.com/stablyai/orca",
|
|
"author": "stablyai",
|
|
"bin": {
|
|
"orca": "./out/cli/index.js",
|
|
"orca-dev": "./config/scripts/orca-dev.mjs"
|
|
},
|
|
"main": "./out/main/index.js",
|
|
"scripts": {
|
|
"format": "oxfmt --write .",
|
|
"lint": "oxlint && pnpm run lint:switch-exhaustiveness && node config/scripts/check-styled-scrollbars.mjs && pnpm run check:reliability-gates && pnpm run check:max-lines-ratchet && pnpm run verify:localization-catalog && pnpm run verify:localization-coverage",
|
|
"lint:react-doctor": "oxlint --config config/oxlint-react-doctor.json",
|
|
"lint:react-doctor:changed": "node config/scripts/lint-react-doctor-changed.mjs",
|
|
"lint:switch-exhaustiveness": "oxlint --type-aware --config config/oxlint-switch-exhaustiveness.json src/main src/preload src/shared src/relay src/cli src/renderer/src config tests --quiet",
|
|
"prepare": "husky",
|
|
"test": "node config/scripts/ensure-native-runtime.mjs --runtime=node && vitest run --config config/vitest.config.ts",
|
|
"check:styled-scrollbars": "node config/scripts/check-styled-scrollbars.mjs",
|
|
"check:reliability-gates": "node config/scripts/check-reliability-gates.mjs",
|
|
"check:max-lines-ratchet": "node config/scripts/check-max-lines-ratchet.mjs",
|
|
"check:feature-wall-assets": "node config/scripts/check-feature-wall-assets.mjs",
|
|
"verify:macos-entitlements": "node config/scripts/verify-macos-entitlements.mjs",
|
|
"vendor:feature-wall-assets": "node config/scripts/vendor-feature-wall-assets.mjs",
|
|
"tc:node": "pnpm run typecheck:node",
|
|
"tc:cli": "pnpm run typecheck:cli",
|
|
"tc:web": "pnpm run typecheck:web",
|
|
"tc": "pnpm run typecheck",
|
|
"typecheck:node": "tsgo --noEmit -p config/tsconfig.node.json",
|
|
"typecheck:cli": "tsgo --noEmit -p config/tsconfig.tc.cli.json",
|
|
"typecheck:web": "tsgo --noEmit -p config/tsconfig.tc.web.json",
|
|
"typecheck": "tsgo --noEmit -p config/tsconfig.node.json && tsgo --noEmit -p config/tsconfig.tc.cli.json && tsgo --noEmit -p config/tsconfig.tc.web.json",
|
|
"typecheck:tsc:node": "tsc --noEmit -p config/tsconfig.node.json --composite false",
|
|
"typecheck:tsc:cli": "tsc --noEmit -p config/tsconfig.cli.json --composite false",
|
|
"typecheck:tsc:web": "tsc --noEmit -p config/tsconfig.web.json --composite false",
|
|
"typecheck:tsc": "tsc --noEmit -p config/tsconfig.node.json --composite false && tsc --noEmit -p config/tsconfig.cli.json --composite false && tsc --noEmit -p config/tsconfig.web.json --composite false",
|
|
"ensure:electron-runtime": "node config/scripts/ensure-native-runtime.mjs --runtime=electron",
|
|
"start": "pnpm run ensure:electron-runtime && electron-vite preview",
|
|
"dev": "pnpm run ensure:electron-runtime && node config/scripts/run-electron-vite-dev.mjs",
|
|
"dev-stable-name": "pnpm run ensure:electron-runtime && node config/scripts/run-electron-vite-dev.mjs --stable-name",
|
|
"dev:web": "vite --config vite.web.config.ts --host 127.0.0.1",
|
|
"build:relay": "node config/scripts/build-relay.mjs",
|
|
"build:computer-macos": "node config/scripts/build-computer-macos.mjs",
|
|
"build:notification-status-macos": "node config/scripts/build-notification-status-macos.mjs",
|
|
"build:native": "node config/scripts/build-native-for-platform.mjs",
|
|
"smoke:computer": "node config/scripts/computer-use-smoke.mjs",
|
|
"verify:computer-native": "node config/scripts/verify-computer-native.mjs",
|
|
"verify:cli-bin": "node config/scripts/verify-cli-bin.mjs",
|
|
"verify:localization-catalog": "node config/scripts/verify-localization-catalog.mjs",
|
|
"sync:localization-catalog": "node config/scripts/verify-localization-catalog.mjs --fix",
|
|
"bootstrap:locale-catalog": "node config/scripts/bootstrap-locale-catalog.mjs",
|
|
"bootstrap:zh-catalog": "node config/scripts/bootstrap-zh-catalog.mjs",
|
|
"bootstrap:ko-catalog": "node config/scripts/bootstrap-locale-catalog.mjs --locale ko",
|
|
"bootstrap:ja-catalog": "node config/scripts/bootstrap-locale-catalog.mjs --locale ja",
|
|
"bootstrap:es-catalog": "node config/scripts/bootstrap-locale-catalog.mjs --locale es",
|
|
"repair:locale-catalog": "node config/scripts/repair-locale-catalog.mjs",
|
|
"verify:localization-coverage": "node config/scripts/audit-localization-coverage.mjs --check",
|
|
"audit:localization": "node config/scripts/audit-localization-coverage.mjs",
|
|
"build:cli": "tsc -p config/tsconfig.cli.json --outDir out --composite false --incremental false && node config/scripts/verify-cli-bin.mjs --fix-executable --fix-package-json && node config/scripts/install-dev-cli.mjs",
|
|
"build:electron-vite": "node config/scripts/run-electron-vite-build.mjs",
|
|
"build:web": "node config/scripts/run-vite-web-build.mjs && node config/scripts/verify-web-build.mjs",
|
|
"build:desktop": "pnpm run typecheck && pnpm run build:relay && pnpm run build:cli && pnpm run build:electron-vite && pnpm run build:web",
|
|
"build": "pnpm run build:desktop && pnpm run build:native",
|
|
"build:release": "pnpm run build:relay && pnpm run build:native && pnpm run verify:computer-native && pnpm run build:cli && pnpm run build:electron-vite && pnpm run build:web",
|
|
"postinstall": "node config/scripts/rebuild-native-deps.mjs",
|
|
"rebuild:electron": "node config/scripts/rebuild-native-deps.mjs",
|
|
"rebuild:node": "pnpm rebuild node-pty",
|
|
"build:unpack": "pnpm run build && pnpm run ensure:electron-runtime && electron-builder --config config/electron-builder.config.cjs --dir",
|
|
"build:win": "pnpm run build:desktop && pnpm run ensure:electron-runtime && electron-builder --config config/electron-builder.config.cjs --win",
|
|
"build:icons": "bash resources/icon-source/generate.sh",
|
|
"build:mac": "pnpm run build:desktop && pnpm run build:computer-macos && pnpm run build:notification-status-macos && pnpm run ensure:electron-runtime && electron-builder --config config/electron-builder.config.cjs --mac",
|
|
"build:mac:release": "node config/scripts/verify-macos-release-env.mjs && ORCA_MAC_RELEASE=1 pnpm run build:desktop && ORCA_MAC_RELEASE=1 pnpm run build:computer-macos && ORCA_MAC_RELEASE=1 pnpm run build:notification-status-macos && pnpm run ensure:electron-runtime && ORCA_MAC_RELEASE=1 electron-builder --config config/electron-builder.config.cjs --mac",
|
|
"build:linux": "pnpm run build:desktop && pnpm run ensure:electron-runtime && electron-builder --config config/electron-builder.config.cjs --linux AppImage deb",
|
|
"test:e2e": "pnpm run ensure:electron-runtime && npx playwright test --config tests/playwright.config.ts --project electron-headless",
|
|
"test:e2e:floating-mobile-emulator": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/floating-mobile-emulator-tab.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=1",
|
|
"test:e2e:terminal-rendering-golden": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/terminal-raw-emoji-table-scroll-restore.spec.ts --grep @terminal-rendering-golden --config tests/playwright.config.ts --project electron-headless --workers=1",
|
|
"test:e2e:terminal-rendering-release-evidence": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/terminal-opencode-emoji-table-rendering.spec.ts tests/e2e/terminal-long-table-scroll-restore.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=2",
|
|
"test:e2e:terminal-perf": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/terminal-typing-latency.spec.ts tests/e2e/terminal-foreground-redraw-freeze.spec.ts tests/e2e/terminal-output-scheduler.spec.ts tests/e2e/terminal-hidden-tui-visual-restore.spec.ts tests/e2e/artificial-opencode-terminal-load.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=2",
|
|
"test:e2e:terminal-perf:scale": "pnpm run ensure:electron-runtime && node config/scripts/run-terminal-scale-perf-e2e.mjs",
|
|
"test:e2e:terminal-perf:scale:report": "pnpm run ensure:electron-runtime && node config/scripts/run-terminal-scale-perf-report-gate.mjs",
|
|
"test:e2e:terminal-perf:check-report": "node config/scripts/check-terminal-perf-report-budgets.mjs",
|
|
"test:e2e:terminal-perf:summarize": "node config/scripts/summarize-terminal-perf-report.mjs",
|
|
"test:e2e:ssh-docker-perf": "node config/scripts/run-ssh-docker-perf-e2e.mjs",
|
|
"win-update-e2e": "node tools/win-update-e2e/run.mjs",
|
|
"test:e2e:ssh-codex-artifacts-repro": "node config/scripts/run-ssh-codex-artifacts-repro-e2e.mjs",
|
|
"test:e2e:headful": "pnpm run ensure:electron-runtime && npx playwright test --config tests/playwright.config.ts --project electron-headful",
|
|
"test:e2e:computer": "vitest run --config tests/e2e/vitest.config.ts",
|
|
"bench:idle-cpu": "pnpm run ensure:electron-runtime && node config/scripts/run-idle-cpu-benchmark.mjs",
|
|
"bench:startup": "pnpm run ensure:electron-runtime && node tools/benchmarks/startup-time-bench.mjs",
|
|
"bench:daemon-coldstart": "pnpm run ensure:electron-runtime && node tools/benchmarks/daemon-coldstart-bench.mjs",
|
|
"bench:main-thread-jank": "pnpm run ensure:electron-runtime && node tools/benchmarks/main-thread-jank-bench.mjs",
|
|
"bench:compare": "node config/scripts/compare-benchmark-artifacts.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@electron-toolkit/preload": "^3.0.2",
|
|
"@electron-toolkit/utils": "^4.0.0",
|
|
"@floating-ui/dom": "1.7.6",
|
|
"@linear/sdk": "^82.1.0",
|
|
"@parcel/watcher": "^2.5.6",
|
|
"@xterm/addon-serialize": "0.15.0-beta.287",
|
|
"@xterm/headless": "6.1.0-beta.287",
|
|
"agent-browser": "~0.27.0",
|
|
"electron-updater": "^6.8.3",
|
|
"i18next": "^26.3.1",
|
|
"jsonc-parser": "^3.3.1",
|
|
"node-pty": "^1.1.0",
|
|
"posthog-node": "^5.33.3",
|
|
"qrcode": "^1.5.4",
|
|
"react-i18next": "^17.0.8",
|
|
"serve-sim": "^0.1.40",
|
|
"sherpa-onnx": "1.12.37",
|
|
"ssh2": "^1.17.0",
|
|
"tweetnacl": "^1.0.3",
|
|
"ws": "^8.21.0",
|
|
"yaml": "^2.8.4",
|
|
"zod": "~4.4.3"
|
|
},
|
|
"devDependencies": {
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@electron-toolkit/tsconfig": "^2.0.0",
|
|
"@electron/rebuild": "^4.0.4",
|
|
"@monaco-editor/react": "^4.7.0",
|
|
"@playwright/test": "^1.59.1",
|
|
"@stablyai/playwright-test": "^2.1.14",
|
|
"@tailwindcss/vite": "^4.2.4",
|
|
"@tanstack/react-virtual": "^3.13.24",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@tiptap/extension-code-block-lowlight": "^3.22.5",
|
|
"@tiptap/extension-details": "^3.22.5",
|
|
"@tiptap/extension-image": "^3.22.5",
|
|
"@tiptap/extension-link": "^3.22.5",
|
|
"@tiptap/extension-mathematics": "3.22.5",
|
|
"@tiptap/extension-placeholder": "^3.22.5",
|
|
"@tiptap/extension-table": "3.22.4",
|
|
"@tiptap/extension-table-cell": "3.22.4",
|
|
"@tiptap/extension-table-header": "3.22.4",
|
|
"@tiptap/extension-table-row": "3.22.4",
|
|
"@tiptap/extension-task-item": "^3.22.5",
|
|
"@tiptap/extension-task-list": "^3.22.5",
|
|
"@tiptap/markdown": "^3.22.5",
|
|
"@tiptap/pm": "^3.22.5",
|
|
"@tiptap/react": "^3.22.5",
|
|
"@tiptap/starter-kit": "^3.22.5",
|
|
"@types/node": "^25.6.0",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/ssh2": "^1.15.5",
|
|
"@types/ws": "^8.18.1",
|
|
"@typescript/native-preview": "7.0.0-dev.20260421.2",
|
|
"@vitejs/plugin-react": "^5.2.0",
|
|
"@xterm/addon-fit": "0.12.0-beta.287",
|
|
"@xterm/addon-ligatures": "0.11.0-beta.287",
|
|
"@xterm/addon-search": "0.17.0-beta.287",
|
|
"@xterm/addon-unicode11": "0.10.0-beta.287",
|
|
"@xterm/addon-web-links": "0.13.0-beta.287",
|
|
"@xterm/addon-webgl": "0.20.0-beta.286",
|
|
"@xterm/xterm": "6.1.0-beta.287",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"dompurify": "^3.4.11",
|
|
"electron": "^42.3.3",
|
|
"electron-builder": "^26.8.1",
|
|
"electron-vite": "^5.0.0",
|
|
"emoji-picker-react": "^4.19.1",
|
|
"happy-dom": "^20.9.0",
|
|
"html-to-image": "^1.11.13",
|
|
"husky": "^9.1.7",
|
|
"katex": "^0.16.45",
|
|
"lint-staged": "^16.4.0",
|
|
"lowlight": "^3.3.0",
|
|
"lucide-react": "^0.577.0",
|
|
"mermaid": "^11.15.0",
|
|
"monaco-editor": "^0.55.1",
|
|
"oxfmt": "^0.52.0",
|
|
"oxlint": "^1.71.0",
|
|
"oxlint-plugin-react-doctor": "0.2.10",
|
|
"oxlint-tsgolint": "0.23.0",
|
|
"pdfjs-dist": "^5.7.284",
|
|
"radix-ui": "^1.4.3",
|
|
"react": "^19.2.5",
|
|
"react-colorful": "^5.7.0",
|
|
"react-dom": "^19.2.5",
|
|
"react-grab": "^0.1.33",
|
|
"react-markdown": "^10.1.0",
|
|
"rehype-highlight": "^7.0.2",
|
|
"rehype-katex": "^7.0.1",
|
|
"rehype-raw": "^7.0.0",
|
|
"rehype-sanitize": "^6.0.0",
|
|
"rehype-slug": "^6.0.0",
|
|
"remark-breaks": "^4.0.0",
|
|
"remark-frontmatter": "^5.0.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"remark-math": "^6.0.0",
|
|
"remark-parse": "^11.0.0",
|
|
"shadcn": "^4.7.0",
|
|
"sonner": "^2.0.7",
|
|
"tailwind-merge": "^3.5.0",
|
|
"tailwindcss": "^4.2.4",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^5.9.3",
|
|
"unified": "^11.0.5",
|
|
"vite": "^7.3.6",
|
|
"vitest": "^4.1.5",
|
|
"vscode-oniguruma": "^2.0.1",
|
|
"vscode-textmate": "^9.3.2",
|
|
"zustand": "^5.0.13"
|
|
},
|
|
"optionalDependencies": {
|
|
"sherpa-onnx-darwin-arm64": "1.12.37",
|
|
"sherpa-onnx-darwin-x64": "1.12.37",
|
|
"sherpa-onnx-linux-arm64": "1.12.37",
|
|
"sherpa-onnx-linux-x64": "1.12.37",
|
|
"sherpa-onnx-win-x64": "1.12.37"
|
|
},
|
|
"lint-staged": {
|
|
"*.{ts,tsx,js,jsx,mjs,mts,cts}": [
|
|
"oxlint",
|
|
"oxlint --config config/oxlint-react-doctor.json",
|
|
"oxfmt --write"
|
|
],
|
|
"*.{json,css}": [
|
|
"oxfmt --write"
|
|
]
|
|
},
|
|
"engines": {
|
|
"node": "24"
|
|
},
|
|
"packageManager": "pnpm@10.24.0+sha512.01ff8ae71b4419903b65c60fb2dc9d34cf8bb6e06d03bde112ef38f7a34d6904c424ba66bea5cdcf12890230bf39f9580473140ed9c946fef328b6e5238a345a",
|
|
"pnpm": {
|
|
"supportedArchitectures": {
|
|
"os": [
|
|
"current",
|
|
"darwin",
|
|
"linux",
|
|
"win32"
|
|
],
|
|
"cpu": [
|
|
"current",
|
|
"x64",
|
|
"arm64"
|
|
]
|
|
},
|
|
"onlyBuiltDependencies": [
|
|
"@parcel/watcher",
|
|
"cpu-features",
|
|
"esbuild",
|
|
"node-pty",
|
|
"sherpa-onnx"
|
|
],
|
|
"patchedDependencies": {
|
|
"node-pty@1.1.0": "config/patches/node-pty@1.1.0.patch",
|
|
"@xterm/addon-ligatures@0.11.0-beta.287": "config/patches/@xterm__addon-ligatures@0.11.0-beta.287.patch",
|
|
"@xterm/addon-webgl@0.20.0-beta.286": "config/patches/@xterm__addon-webgl@0.20.0-beta.286.patch"
|
|
}
|
|
},
|
|
"reactDoctor": {
|
|
"rules": {
|
|
"react-doctor/js-combine-iterations": "off"
|
|
}
|
|
}
|
|
}
|