mirror of
https://github.com/stablyai/orca.git
synced 2026-11-13 17:37:40 +00:00
* feat(speech): run GGUF models on transcribe-cpp, falling back to the CPU The speech host child can now load a second engine. A model whose files are GGUF runs on transcribe-cpp (Metal on Apple silicon, Vulkan on Windows and Linux, CPU otherwise); everything else stays on sherpa-onnx, which remains the only engine on Intel Macs. A GPU that fails to load, errors, stalls for 25 s or crashes the process moves the dictation to a CPU-only process (TRANSCRIBE_BACKENDS=cpu) that replays the audio the GPU had not decoded yet, so no words are lost or repeated. A GPU that crashed or would not load is remembered per transcribe-cpp version and OS release, and voice.speechGpu = 'off' keeps it on the CPU. Packaging copies transcribe-cpp, koffi and the target's native package into resources/node_modules outside asar, fails when a target's package is missing, and ships the MSVC runtime beside transcribe.dll on Windows. No catalog model is GGUF yet, so nothing runs on transcribe-cpp until the catalog change that follows. * fix(speech): keep the speech queue running after a failed task, and drop audio frames after a discard * fix(speech): keep the engine's file reads off the main thread's hot paths The engine lookup and the GPU failure marker are read once per process instead of on every dictation start and mobile catalog request, the marker is written asynchronously, and the child reads the hotwords file with fs/promises. The baseline moves the existing engine presence checks from stt-worker-paths to the shared package table and adds the once-per-process marker reads.
470 lines
39 KiB
JSON
470 lines
39 KiB
JSON
{
|
|
"name": "orca",
|
|
"version": "1.4.214",
|
|
"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/development/launch/orca-dev.mjs"
|
|
},
|
|
"main": "./out/main/index.js",
|
|
"scripts": {
|
|
"check:dependencies": "pnpm run build:packages && node config/scripts/dependency-security/audit-tools/check-dependency-security.mjs",
|
|
"install:release": "pnpm install --frozen-lockfile --cpu=current,x64,arm64",
|
|
"audit:perf": "oxlint --config config/oxlint-performance-audit.json --format json src",
|
|
"audit:perf:type-aware": "oxlint --type-aware --config config/oxlint-performance-audit-type-aware.json --format json src",
|
|
"test:perf:contracts": "vitest run --config config/vitest.performance.config.ts",
|
|
"format": "oxfmt --write .",
|
|
"lint": "node config/scripts/preflight/changed-checks/run-lint.mjs",
|
|
"audit:code-quality": "pnpm run audit:code-quality:native && pnpm run audit:code-quality:type-aware && pnpm run audit:react-doctor",
|
|
"audit:code-quality:native": "oxlint --config config/oxlint-code-quality-native-plugins.json src config tests mobile --deny-warnings",
|
|
"audit:code-quality:type-aware": "oxlint --type-aware --config config/oxlint-code-quality-type-aware.json src config tests --deny-warnings",
|
|
"audit:react-doctor": "node config/scripts/dependency-security/audit-tools/run-audit-tool.mjs react-doctor . --yes --no-supply-chain --no-telemetry --blocking none",
|
|
"audit:dead-code": "node config/scripts/dependency-security/audit-tools/run-audit-tool.mjs knip --config config/knip.json",
|
|
"check:changed": "node config/scripts/preflight/changed-checks/check-changed.mjs",
|
|
"check:code-quality:changed": "node config/scripts/preflight/changed-checks/check-changed-code-quality.mjs",
|
|
"lint:js-plugins": "oxlint --config config/oxlint-js-plugins.json src config tests mobile native .github",
|
|
"lint:ast-grep": "ast-grep scan --config config/sgconfig.yml --min-severity warning src config tests mobile",
|
|
"lint:ast-grep-gates": "node config/scripts/static-analysis/structural-scan/ast-grep-gates.mjs",
|
|
"lint:ast-grep:flaky-tests": "ast-grep scan --config config/sgconfig.yml --filter \"^test-\" src config tests mobile",
|
|
"test:ast-grep": "ast-grep test --config config/sgconfig.yml --skip-snapshot-tests",
|
|
"check:dead-classes": "oxlint --config config/oxlint-dead-classes.json src/renderer",
|
|
"lint:design-system": "oxlint --config config/oxlint-design-system.json src/renderer",
|
|
"check:react-doctor:changed": "node config/scripts/static-analysis/react-doctor/check-react-doctor-changed.mjs",
|
|
"check:zustand-selector-fanout": "node config/scripts/performance/renderer-projection/zustand-selector-fanout-benchmark.mjs --check",
|
|
"doctor": "node config/scripts/dependency-security/audit-tools/run-audit-tool.mjs react-doctor . --no-telemetry",
|
|
"lint:react-doctor": "oxlint --config config/oxlint-react-doctor.json",
|
|
"lint:react-doctor:changed": "node config/scripts/static-analysis/react-doctor/lint-react-doctor-changed.mjs",
|
|
"prepare": "husky",
|
|
"test": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=node && node config/scripts/test-runtime/execution-policy/run-vitest.mjs run --config config/vitest.config.ts",
|
|
"test:changed": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=node && node config/scripts/test-runtime/execution-policy/run-vitest.mjs run --config config/vitest.config.ts --changed=HEAD",
|
|
"test:node": "pnpm run build:packages && node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=node && vitest run --config config/vitest.config.ts",
|
|
"test:node-server": "node config/scripts/ci/unit-selection/run-node-server-tests.mjs",
|
|
"test:skill-sharing:release": "vitest run --config config/vitest.config.ts src/main/skills src/main/runtime/rpc/methods/skills/skills.test.ts src/shared/skill-bundle-install-contract.test.ts src/shared/skill-package-manifest.test.ts",
|
|
"test:repro:remote-agent-session": "pnpm run build:cli && pnpm run build:electron-vite && node config/scripts/diagnostics/remote-agent-authority/remote-agent-session-authority-repro.mjs",
|
|
"capture:agent-transcript": "node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=node && node config/scripts/diagnostics/terminal-transcripts/capture-agent-pty-transcript.mjs",
|
|
"check:reliability-gates": "node config/scripts/static-analysis/reliability-policy/check-reliability-gates.mjs",
|
|
"check:ratchets": "node config/scripts/static-analysis/ratchet-runner/run-ratchets.mjs",
|
|
"check:max-lines-ratchet": "node config/scripts/static-analysis/ratchets/source-budget/check-max-lines-ratchet.mjs",
|
|
"check:ts-nocheck-ratchet": "node config/scripts/static-analysis/ratchets/source-budget/check-ts-nocheck-ratchet.mjs",
|
|
"check:host-list-render-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-host-list-render-ratchet.mjs",
|
|
"check:memo-translate-subscription-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-memo-translate-subscription-ratchet.mjs",
|
|
"check:react-compiler-compat-ratchet": "node config/scripts/static-analysis/ratchets/react-compiler/check-react-compiler-compat-ratchet.mjs",
|
|
"check:render-path-translate-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-render-path-translate-ratchet.mjs",
|
|
"check:flaky-test-pattern-ratchet": "node config/scripts/static-analysis/ratchets/test-quality/check-flaky-test-pattern-ratchet.mjs",
|
|
"check:path-literal-ratchet": "node config/scripts/static-analysis/ratchets/source-budget/check-path-literal-ratchet.mjs",
|
|
"check:legacy-relay-fence-ratchet": "node config/scripts/static-analysis/process-boundaries/check-legacy-relay-fence-ratchet.mjs",
|
|
"check:unproven-pty-retirement-ratchet": "node config/scripts/static-analysis/ratchets/runtime-lifecycle/check-unproven-pty-retirement-ratchet.mjs",
|
|
"check:daemon-blocking-call-ratchet": "node config/scripts/static-analysis/ratchets/runtime-lifecycle/check-daemon-blocking-call-ratchet.mjs",
|
|
"check:id-only-store-write-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-id-only-store-write-ratchet.mjs",
|
|
"check:repo-host-read-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-repo-host-read-ratchet.mjs",
|
|
"check:workspace-record-read-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-workspace-record-read-ratchet.mjs",
|
|
"check:worktree-id-composer-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-worktree-id-composer-ratchet.mjs",
|
|
"check:direct-link-open-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-direct-link-open-ratchet.mjs",
|
|
"check:e2e-typecheck-ratchet": "node config/scripts/typecheck/e2e-admission/check-e2e-typecheck-ratchet.mjs",
|
|
"check:runtime-electron-ratchet": "node config/scripts/static-analysis/process-boundaries/check-runtime-electron-ratchet.mjs",
|
|
"check:focus-read-ratchet": "node config/scripts/static-analysis/ratchets/renderer-state/check-focus-read-ratchet.mjs",
|
|
"check:layout-writer-ratchets": "node config/scripts/static-analysis/ratchets/renderer-state/check-layout-writer-ratchets.mjs",
|
|
"check:readme-local-links": "node config/scripts/static-analysis/repository-layout/check-readme-local-links.mjs",
|
|
"check:has-restyle-scope": "node config/scripts/static-analysis/renderer-styles/check-has-restyle-scope.mjs",
|
|
"check:daemon-protocol-crossing": "node config/scripts/daemon-protocol/admission/check-daemon-protocol-crossing.mjs",
|
|
"check:runtime-launcher-protocol-ratchet": "node config/scripts/daemon-protocol/admission/check-runtime-launcher-protocol-ratchet.mjs",
|
|
"check:node-runtime-pin": "node config/scripts/node-runtime/pin-policy/check-node-runtime-pin.mjs",
|
|
"check:test-file-runners": "node config/scripts/ci/unit-selection/check-test-file-runners.mjs",
|
|
"check:mobile-shared-dependency-versions": "node config/scripts/package-manager/lockfile-contracts/check-mobile-shared-dependency-versions.mjs",
|
|
"build:orcad": "pnpm run build:packages && node config/scripts/orcad-distribution/prebuilds/build-orcad-node.mjs",
|
|
"build:orcad-template": "pnpm run build:packages && node config/scripts/orcad-distribution/template/build-orcad-template.mjs",
|
|
"build:orcad-prebuilds": "pnpm run build:packages && node config/scripts/orcad-distribution/prebuilds/build-orcad-prebuilds.mjs",
|
|
"smoke:orcad-terminal": "node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=node && pnpm run build:orcad && node config/scripts/runtime-verification/daemon-lifecycle/runtime-serve-terminal-smoke.mjs --target orcad",
|
|
"smoke:serve-terminal": "node config/scripts/runtime-verification/daemon-lifecycle/runtime-serve-terminal-smoke.mjs",
|
|
"check:feature-wall-assets": "node config/scripts/assets/feature-wall/check-feature-wall-assets.mjs",
|
|
"generate:plugin-declarative-runtime": "node config/scripts/plugin-build/declarative-runtime/build-plugin-declarative-runtime.mjs",
|
|
"generate:plugin-declarative-typings": "node config/scripts/plugin-authoring/generated-contracts/generate-plugin-declarative-typings.mjs",
|
|
"generate:plugin-schemas": "node config/scripts/plugin-authoring/generated-contracts/generate-plugin-schemas.mjs",
|
|
"generate:plugin-author-typings": "node config/scripts/plugin-authoring/generated-contracts/generate-plugin-author-typings.mjs",
|
|
"validate:plugin": "node config/scripts/plugin-authoring/content-validation/validate-plugin-files.mjs",
|
|
"generate:rpc-params-catalog": "node config/scripts/plugin-authoring/rpc-catalog/generate-rpc-params-catalog.mjs",
|
|
"verify:rpc-params-catalog": "node config/scripts/plugin-authoring/rpc-catalog/generate-rpc-params-catalog.mjs --check",
|
|
"generate:acp-protocol": "node config/scripts/acp/generate-protocol.mjs",
|
|
"verify:acp-protocol": "node config/scripts/acp/generate-protocol.mjs --check",
|
|
"generate:bundled-skill-guides": "node config/scripts/skills/bundle-generation/generate-bundled-skill-guides.mjs --write",
|
|
"verify:bundled-skill-guides": "node config/scripts/skills/bundle-generation/generate-bundled-skill-guides.mjs --check",
|
|
"generate:plugin-authoring-skill-references": "node config/scripts/skills/bundle-generation/generate-plugin-authoring-skill-references.mjs --write && node config/scripts/skills/bundle-generation/generate-bundled-skill-guides.mjs --write",
|
|
"verify:plugin-authoring-skill-references": "node config/scripts/skills/bundle-generation/generate-plugin-authoring-skill-references.mjs --check",
|
|
"generate:skill-bundle-manifest": "node config/scripts/skills/bundle-generation/generate-skill-bundle-manifest.mjs --write",
|
|
"verify:skill-bundle-manifest": "node config/scripts/skills/bundle-generation/generate-skill-bundle-manifest.mjs",
|
|
"verify:macos-entitlements": "node config/scripts/desktop-distribution/macos/verify-macos-entitlements.mjs",
|
|
"vendor:feature-wall-assets": "node config/scripts/assets/feature-wall/vendor-feature-wall-assets.mjs",
|
|
"tc:node": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs --project=config/tsconfig.node.json",
|
|
"tc:cli": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs --project=config/tsconfig.tc.cli.json",
|
|
"tc:web": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs --project=config/tsconfig.tc.web.json",
|
|
"tc": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs",
|
|
"typecheck:node": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs --project=config/tsconfig.node.json",
|
|
"typecheck:cli": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs --project=config/tsconfig.tc.cli.json",
|
|
"typecheck:web": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs --project=config/tsconfig.tc.web.json",
|
|
"typecheck:e2e": "pnpm run build:packages && node config/scripts/typecheck/e2e-admission/run-e2e-typecheck.mjs",
|
|
"typecheck:tsc:e2e": "pnpm run build:packages && node config/scripts/typecheck/e2e-admission/run-e2e-typecheck.mjs --compiler=native",
|
|
"typecheck": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs",
|
|
"typecheck:ci": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/typecheck/project-execution/run-typecheck-projects-in-parallel.mjs --compiler=bun",
|
|
"typecheck:tsc:node": "pnpm run build:packages && node node_modules/typescript/bin/tsc --noEmit -p config/tsconfig.node.json --composite false",
|
|
"typecheck:tsc:cli": "pnpm run build:packages && tsc --noEmit -p config/tsconfig.cli.json --composite false",
|
|
"typecheck:tsc:web": "pnpm run build:packages && tsc --noEmit -p config/tsconfig.web.json --composite false",
|
|
"typecheck:tsc": "pnpm run build:packages && 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/native-build/node-addons/ensure-native-runtime.mjs --runtime=electron",
|
|
"start": "pnpm run build:packages && pnpm run ensure:electron-runtime && electron-vite preview",
|
|
"dev": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=electron && node config/scripts/development/launch/run-electron-vite-dev.mjs",
|
|
"dev-stable-name": "pnpm run build:packages && pnpm run ensure:electron-runtime && node config/scripts/development/launch/run-electron-vite-dev.mjs --stable-name",
|
|
"dev:fresh": "pnpm run build:packages && node config/scripts/development/profile-seeding/dev-fresh-profile.mjs",
|
|
"dev:seed-profile": "node config/scripts/development/profile-seeding/dev-profile-seed.mjs",
|
|
"dev:web": "vite --config vite.web.config.ts --host 127.0.0.1",
|
|
"dev:fixtures": "vite --config config/vite.fixtures.config.ts",
|
|
"fixtures:shot": "node config/scripts/component-fixtures/fixtures-shot.mjs",
|
|
"build:wsl-guest": "pnpm run build:packages && node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON config/scripts/remote-host-build/wsl-guest/build-wsl-guest.mjs",
|
|
"build:computer-macos": "node config/scripts/native-build/macos/build-computer-macos.mjs",
|
|
"build:keyboard-layout-macos": "node config/scripts/native-build/macos/build-keyboard-layout-macos.mjs",
|
|
"build:process-footprint-macos": "node config/scripts/native-build/macos/build-process-footprint-macos.mjs",
|
|
"build:notification-status-macos": "node config/scripts/native-build/macos/build-notification-status-macos.mjs",
|
|
"build:native": "node config/scripts/native-build/composition/build-native-for-platform.mjs",
|
|
"smoke:computer": "node config/scripts/runtime-verification/desktop-transport/computer-use-smoke.mjs",
|
|
"verify:computer-native": "node config/scripts/runtime-verification/desktop-transport/verify-computer-native.mjs",
|
|
"verify:cli-bin": "node config/scripts/cli-build/verify-cli-bin.mjs",
|
|
"verify:built-skills-cli": "node config/scripts/runtime-verification/skills-cli/verify-skills-cli-runtime.cjs out",
|
|
"verify:renderer-boot-graph": "node config/scripts/desktop-build/output-contracts/verify-renderer-boot-graph.mjs",
|
|
"verify:localization-catalogs": "bun config/scripts/localization/catalog-validation/verify-localization-catalogs.mjs",
|
|
"verify:localization-catalog": "node config/scripts/localization/catalog-validation/verify-localization-catalog.mjs",
|
|
"sync:localization-catalog": "node config/scripts/localization/catalog-validation/verify-localization-catalog.mjs --fix",
|
|
"verify:localization-runtime-catalog": "node config/scripts/localization/catalog-validation/generate-runtime-required-english-catalog.mjs",
|
|
"sync:localization-runtime-catalog": "node config/scripts/localization/catalog-validation/generate-runtime-required-english-catalog.mjs --fix",
|
|
"verify:localization-protected-copy": "node config/scripts/localization/catalog-validation/protected-copy-keys.mjs",
|
|
"sync:localization-protected-copy": "node config/scripts/localization/catalog-validation/protected-copy-keys.mjs --fix",
|
|
"verify:localization-extraction": "node config/scripts/localization/source-extraction/verify-localization-extraction.mjs",
|
|
"verify:localization-coverage": "node config/scripts/localization/source-extraction/audit-localization-coverage.mjs --check",
|
|
"verify:mobile-localization": "node config/scripts/localization/catalog-validation/verify-mobile-localization.mjs",
|
|
"sync:mobile-localization": "node config/scripts/localization/catalog-validation/verify-mobile-localization.mjs --fix",
|
|
"verify:mobile-localization-coverage": "node config/scripts/localization/source-extraction/audit-localization-coverage.mjs --check --source-root mobile/app --source-root mobile/src --source-root mobile/web-entry --allowlist config/mobile-localization-coverage-allowlist.json",
|
|
"audit:localization": "node config/scripts/localization/source-extraction/audit-localization-coverage.mjs",
|
|
"i18n:reactive-translate": "node config/scripts/localization/reactive-translate/codemod-reactive-translate.mjs",
|
|
"audit:translate-helpers": "node config/scripts/localization/reactive-translate/report-translate-helpers.mjs",
|
|
"build:cli": "pnpm run build:packages && node config/scripts/cli-build/build-cli.mjs && pnpm run prepare:cli-output",
|
|
"prepare:cli-output": "node config/scripts/cli-build/verify-cli-bin.mjs --fix-executable --fix-package-json && node config/scripts/development/setup/install-dev-cli.mjs",
|
|
"test:linux-cli-contract": "node config/scripts/runtime-verification/desktop-transport/run-linux-cli-launch-contract-docker.mjs --appimage dist/orca-linux.AppImage",
|
|
"test:repro:skills-cli-runtime": "pnpm run build:cli && pnpm run build:electron-vite && pnpm run verify:built-skills-cli",
|
|
"build:electron-vite": "pnpm run build:packages && node config/scripts/desktop-build/execution/run-electron-vite-build.mjs",
|
|
"build:electron-vite:parallel": "pnpm run build:packages && node config/scripts/development/launch/run-electron-vite-targets-in-parallel.mjs",
|
|
"build:web": "pnpm run build:packages && node config/scripts/web-build/execution/run-vite-web-build.mjs && node config/scripts/web-build/execution/verify-web-build.mjs",
|
|
"build:web-from-renderer": "node config/scripts/development/web-client/project-renderer-web-client.mjs && node config/scripts/web-build/execution/verify-web-build.mjs",
|
|
"build:mobile-web": "node config/scripts/build/mobile-web-app/build-mobile-web-app-bundle.mjs && node config/scripts/build/mobile-web-app/verify-mobile-web-app-bundle.mjs",
|
|
"build:desktop": "pnpm run typecheck && pnpm run build:desktop:assets",
|
|
"build:desktop:ci": "pnpm run typecheck:ci --bun-concurrency=2 --bun-threads=2 && pnpm run build:desktop:assets",
|
|
"build:desktop:assets": "pnpm run build:wsl-guest && pnpm run build:cli && pnpm run build:electron-vite && pnpm run verify:built-skills-cli && pnpm run build:web-from-renderer && pnpm run build:mobile-web",
|
|
"build": "pnpm run build:desktop && pnpm run build:native",
|
|
"build:release": "pnpm run build:wsl-guest && pnpm run build:native && pnpm run verify:computer-native && pnpm run build:cli && pnpm run build:electron-vite && pnpm run verify:built-skills-cli && pnpm run build:web-from-renderer && pnpm run build:mobile-web",
|
|
"build:release:javascript": "pnpm run build:cli && pnpm run build:electron-vite && pnpm run verify:built-skills-cli && pnpm run build:web-from-renderer && pnpm run build:mobile-web",
|
|
"build:release:javascript:parallel": "pnpm run build:cli && pnpm run build:electron-vite:parallel && pnpm run verify:built-skills-cli && pnpm run build:web-from-renderer && pnpm run build:mobile-web",
|
|
"build:release:host": "pnpm run build:wsl-guest && pnpm run build:native && pnpm run verify:computer-native && pnpm run verify:built-skills-cli",
|
|
"build:release:parallel": "pnpm run build:wsl-guest && pnpm run build:native && pnpm run verify:computer-native && pnpm run build:cli && pnpm run build:electron-vite:parallel && pnpm run verify:built-skills-cli && pnpm run build:web-from-renderer && pnpm run build:mobile-web",
|
|
"postinstall": "node config/scripts/workspace-package-build/build-workspace-packages.mjs && node config/scripts/native-build/node-addons/rebuild-native-deps.mjs",
|
|
"rebuild:electron": "node config/scripts/native-build/node-addons/rebuild-native-deps.mjs",
|
|
"reclaim-space": "node config/scripts/worktree-storage/reclaim-worktree-space.mjs",
|
|
"rebuild:node": "node config/scripts/native-build/node-addons/ensure-native-runtime.mjs --runtime=node --force",
|
|
"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:keyboard-layout-macos && pnpm run build:process-footprint-macos && pnpm run build:notification-status-macos && pnpm run ensure:electron-runtime && node config/scripts/desktop-distribution/macos/build-mac-local.mjs",
|
|
"build:mac:release": "node config/scripts/desktop-distribution/macos/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:keyboard-layout-macos && ORCA_MAC_RELEASE=1 pnpm run build:process-footprint-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 && node config/scripts/desktop-distribution/linux/build-linux-local.mjs",
|
|
"test:e2e": "pnpm run ensure:electron-runtime && npx playwright test --config tests/playwright.config.ts --project=electron-headless",
|
|
"test:e2e:workspace-session-golden": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/golden-quit-relaunch-session.spec.ts tests/e2e/golden-terminal-file-link.spec.ts tests/e2e/golden-worktree-create-switch.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=1",
|
|
"test:e2e:multi-client-navigation": "node config/scripts/ci/e2e-selection/run-multi-client-navigation-e2e.mjs",
|
|
"test:e2e:terminal-layout-parity": "node config/scripts/runtime-verification/terminal-e2e/run-terminal-layout-parity.mjs",
|
|
"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 --project electron-headful --workers=1",
|
|
"test:e2e:source-control-golden": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/golden-file-open-edit-save.spec.ts tests/e2e/golden-source-control-commit.spec.ts tests/e2e/golden-source-control-open-diff.spec.ts --grep @golden --config tests/playwright.config.ts --project electron-headless --workers=1",
|
|
"test:e2e:posix-profile-index-golden": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/golden-posix-profile-index-fsync.spec.ts --grep @posix-profile-index-golden --config tests/playwright.config.ts --project electron-headless --workers=1",
|
|
"test:e2e:agent-tui-golden": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/golden-agent-tui-launch.spec.ts tests/e2e/golden-shell-after-agent-exit.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=1",
|
|
"test:e2e:tab-bar-agent-launch-golden": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/golden-tab-bar-agent-launch.spec.ts --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 --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-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/runtime-verification/terminal-e2e/run-terminal-scale-perf-e2e.mjs",
|
|
"test:e2e:terminal-perf:scale:report": "pnpm run ensure:electron-runtime && node config/scripts/runtime-verification/terminal-e2e/run-terminal-scale-perf-report-gate.mjs",
|
|
"test:e2e:terminal-perf:check-report": "node config/scripts/performance/terminal-reporting/check-terminal-perf-report-budgets.mjs",
|
|
"test:e2e:terminal-perf:summarize": "node config/scripts/performance/terminal-reporting/summarize-terminal-perf-report.mjs",
|
|
"test:e2e:terminal-perf:html-report": "node config/scripts/performance/terminal-reporting/generate-terminal-perf-html-report.mjs",
|
|
"test:e2e:source-control-scale": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/source-control-large-file-count.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=1",
|
|
"win-update-e2e": "node tests/tools/win-update-e2e/run.mjs",
|
|
"win-crash-survival-e2e": "node tests/tools/win-crash-survival-e2e/run.mjs",
|
|
"smoke:windows-pty-native-capability": "node tests/tools/windows-pty-native-capability-smoke/run.mjs",
|
|
"test:e2e:headful": "pnpm run ensure:electron-runtime && npx playwright test --config tests/playwright.config.ts --project electron-headful",
|
|
"test:e2e:terminal-ime-native": "node config/scripts/runtime-verification/terminal-e2e/run-terminal-ibus-hangul-e2e.mjs",
|
|
"test:e2e:computer": "vitest run --config tests/e2e/vitest.config.ts",
|
|
"bench:idle-cpu": "pnpm run ensure:electron-runtime && node config/scripts/performance/idle-cpu/run-idle-cpu-benchmark.mjs",
|
|
"bench:spinners": "pnpm run ensure:electron-runtime && node tests/tools/benchmarks/spinner-rendering/run.mjs",
|
|
"bench:macos-computer-helper-owner-loss": "node config/scripts/performance/macos-computer-owner/macos-computer-helper-owner-loss-benchmark.mjs",
|
|
"bench:startup": "pnpm run ensure:electron-runtime && node tests/tools/benchmarks/startup-time-bench.mjs",
|
|
"bench:daemon-coldstart": "pnpm run ensure:electron-runtime && node tests/tools/benchmarks/daemon-coldstart-bench.mjs",
|
|
"bench:wsl-hook-relay-reattach": "pnpm run build:wsl-guest && node config/scripts/performance/wsl-hooks/wsl-hook-relay-reattach-benchmark.mjs",
|
|
"bench:wsl-git-shell": "node config/scripts/performance/wsl-git/wsl-git-shell-benchmark.mjs",
|
|
"bench:hang-watchdog-memory": "pnpm run ensure:electron-runtime && node config/scripts/diagnostics/hang-watchdog/hang-watchdog-memory-benchmark.mjs",
|
|
"bench:main-thread-jank": "pnpm run ensure:electron-runtime && node tests/tools/benchmarks/main-thread-jank-bench.mjs",
|
|
"bench:zustand-selector-fanout": "node config/scripts/performance/renderer-projection/zustand-selector-fanout-benchmark.mjs",
|
|
"bench:renderer-quadratic-scans": "node config/scripts/performance/renderer-markdown/renderer-quadratic-scan-benchmark.mjs",
|
|
"bench:session-write-hot-path": "node config/scripts/performance/session-transcripts/session-write-hot-path-benchmark.mjs",
|
|
"bench:terminal-partial-escape-tail": "node config/scripts/performance/terminal-stream/terminal-partial-escape-tail-benchmark.mjs",
|
|
"bench:terminal-multiplex-ack-pacing": "node config/scripts/performance/terminal-stream/terminal-multiplex-ack-pacing-benchmark.mjs",
|
|
"bench:worktree-refresh-churn": "node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON config/scripts/performance/source-control/worktree-refresh-churn-benchmark.mjs",
|
|
"bench:cold-park-reveal": "pnpm run ensure:electron-runtime && node tests/tools/benchmarks/terminal-cold-park-reveal-bench.mjs",
|
|
"bench:cold-park-resource": "pnpm run ensure:electron-runtime && node tests/tools/benchmarks/terminal-cold-park-resource-bench.mjs",
|
|
"bench:compare": "node config/scripts/performance/measurement/compare-benchmark-artifacts.mjs",
|
|
"test:e2e:remote-bulk-open-freeze": "pnpm run ensure:electron-runtime && pnpm exec playwright test tests/e2e/remote-session-bulk-open-freeze-repro.spec.ts --config tests/playwright.config.ts --project electron-headless --workers=1",
|
|
"repro:live-remote-bulk-open-freeze": "node config/scripts/diagnostics/remote-freeze/live-remote-bulk-open-freeze-repro.mjs",
|
|
"repro:live-remote-realistic-freeze": "node config/scripts/diagnostics/remote-freeze/live-remote-realistic-freeze-repro.mjs",
|
|
"audit:anti-slop": "node config/scripts/static-analysis/oxlint-contracts/sync-anti-slop-plugin.mjs && bun --smol node_modules/oxlint/bin/oxlint --config config/oxlint-anti-slop.json src config tests mobile --deny-warnings",
|
|
"sync:anti-slop-plugin": "node config/scripts/static-analysis/oxlint-contracts/sync-anti-slop-plugin.mjs",
|
|
"build:packages": "node config/scripts/workspace-package-build/build-workspace-packages.mjs",
|
|
"check:process-host-imports": "node config/scripts/static-analysis/process-boundaries/check-process-host-imports.mjs",
|
|
"check:main-sync-spawn-ratchet": "node config/scripts/static-analysis/process-boundaries/check-main-sync-spawn-ratchet.mjs",
|
|
"check:main-sync-fs-ratchet": "node config/scripts/static-analysis/ratchets/runtime-lifecycle/check-main-sync-fs-ratchet.mjs",
|
|
"check:recurring-timer-ratchet": "node config/scripts/static-analysis/ratchets/runtime-lifecycle/check-recurring-timer-ratchet.mjs",
|
|
"check:compat-boundary-imports": "node config/scripts/static-analysis/process-boundaries/check-compat-boundary-imports.mjs",
|
|
"check:import-boundaries": "bun config/scripts/static-analysis/process-boundaries/check-import-boundaries.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/claude-agent-sdk": "0.3.318",
|
|
"@floating-ui/dom": "1.8.0",
|
|
"@linear/sdk": "^97.0.0",
|
|
"@orca/process-host": "workspace:*",
|
|
"@parcel/watcher": "^2.5.6",
|
|
"@xterm/addon-serialize": "0.15.0-beta.330",
|
|
"@xterm/headless": "6.1.0-beta.334",
|
|
"agent-browser": "~0.39.4",
|
|
"electron-updater": "^6.8.10",
|
|
"fflate": "0.8.3",
|
|
"i18next": "^26.5.11",
|
|
"jsonc-parser": "^3.3.1",
|
|
"mime-types": "3.0.2",
|
|
"node-pty": "^1.1.0",
|
|
"posthog-node": "^5.52.5",
|
|
"proper-lockfile": "4.1.2",
|
|
"qrcode": "^1.5.4",
|
|
"react-i18next": "17.0.19",
|
|
"serve-sim": "0.1.47",
|
|
"smol-toml": "1.9.1",
|
|
"ssh2": "^1.17.0",
|
|
"stream-chain": "4.2.6",
|
|
"stream-json": "3.7.0",
|
|
"tldts": "7.4.18",
|
|
"tweetnacl": "^1.0.3",
|
|
"ws": "^8.22.0",
|
|
"yaml": "^2.9.1",
|
|
"zod": "~4.6.7"
|
|
},
|
|
"devDependencies": {
|
|
"@actions/expressions": "0.3.61",
|
|
"@ast-grep/cli": "0.51.0",
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@electron-toolkit/tsconfig": "^2.0.0",
|
|
"@electron/osx-sign": "2.7.0",
|
|
"@electron/rebuild": "^4.2.1",
|
|
"@monaco-editor/react": "^4.7.0",
|
|
"@noble/hashes": "1.8.0",
|
|
"@oxlint/plugins": "1.89.0",
|
|
"@playwright/test": "^1.64.1",
|
|
"@sanity/diff-match-patch": "^3.2.1",
|
|
"@shadcn/lint": "~0.1.5",
|
|
"@stablyai/playwright-test": "^2.1.16",
|
|
"@tailwindcss/vite": "^4.3.3",
|
|
"@tanstack/react-virtual": "^3.14.13",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.3",
|
|
"@testing-library/user-event": "^14.6.8",
|
|
"@tiptap/extension-code-block": "3.31.3",
|
|
"@tiptap/extension-code-block-lowlight": "3.31.3",
|
|
"@tiptap/extension-details": "3.31.3",
|
|
"@tiptap/extension-image": "3.31.3",
|
|
"@tiptap/extension-link": "3.31.3",
|
|
"@tiptap/extension-list": "3.31.3",
|
|
"@tiptap/extension-mathematics": "3.31.3",
|
|
"@tiptap/extension-placeholder": "3.31.3",
|
|
"@tiptap/extension-table": "3.31.3",
|
|
"@tiptap/markdown": "3.31.3",
|
|
"@tiptap/pm": "3.31.3",
|
|
"@tiptap/react": "3.31.3",
|
|
"@tiptap/starter-kit": "3.31.3",
|
|
"@types/chrome": "0.0.287",
|
|
"@types/hast": "^3.0.4",
|
|
"@types/mdast": "^4.0.4",
|
|
"@types/node": "^24.19.2",
|
|
"@types/proper-lockfile": "^4.1.4",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/react": "~19.2.18",
|
|
"@types/react-dom": "~19.2.7",
|
|
"@types/ssh2": "^1.15.6",
|
|
"@types/ws": "^8.18.2",
|
|
"@vitejs/plugin-react": "^6.1.2",
|
|
"@vscode/ripgrep-universal": "1.18.0",
|
|
"@xterm/addon-fit": "0.12.0-beta.332",
|
|
"@xterm/addon-image": "0.10.0-beta.331",
|
|
"@xterm/addon-ligatures": "0.11.0-beta.330",
|
|
"@xterm/addon-search": "0.17.0-beta.330",
|
|
"@xterm/addon-unicode11": "0.10.0-beta.330",
|
|
"@xterm/addon-web-links": "0.13.0-beta.330",
|
|
"@xterm/addon-webgl": "0.20.0-beta.329",
|
|
"@xterm/xterm": "6.1.0-beta.336",
|
|
"ajv": "8.20.0",
|
|
"bun": "1.4.4",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"devalue": "6.0.3",
|
|
"diff": "8.0.4",
|
|
"dompurify": "3.4.17",
|
|
"electron": "43.8.6",
|
|
"electron-builder": "26.15.3",
|
|
"electron-vite": "^6.0.0",
|
|
"emoji-picker-react": "^4.22.3",
|
|
"emojibase-data": "17.0.0",
|
|
"es-module-lexer": "1.7.0",
|
|
"esbuild": "^0.28.2",
|
|
"github-slugger": "2.0.0",
|
|
"graphql": "16.14.2",
|
|
"happy-dom": "^21.0.4",
|
|
"hast-util-from-html-isomorphic": "2.0.0",
|
|
"hast-util-to-jsx-runtime": "2.3.6",
|
|
"hast-util-to-text": "4.0.2",
|
|
"html-to-image": "^1.11.13",
|
|
"husky": "^9.1.7",
|
|
"i18next-cli": "1.74.2",
|
|
"katex": "0.18.10",
|
|
"lint-staged": "^16.4.0",
|
|
"lowlight": "^3.3.0",
|
|
"lucide-react": "^0.577.0",
|
|
"marked": "^17.0.1",
|
|
"mermaid": "^11.17.2",
|
|
"monaco-editor": "^0.55.1",
|
|
"node-gyp": "12.3.0",
|
|
"oxc-transform-react": "~0.152.0",
|
|
"oxfmt": "^0.74.0",
|
|
"oxlint": "^1.91.0",
|
|
"oxlint-plugin-anti-slop": "github:dmmulroy/anti-slop#c44ef22ca116d0ba62a3ff663a0bd13a3f3fa40b",
|
|
"oxlint-plugin-react-doctor": "0.9.14",
|
|
"oxlint-tsgolint": "7.0.2005",
|
|
"pdfjs-dist": "^6.3.289",
|
|
"playwright-core": "1.64.1",
|
|
"pngjs": "^7.0.0",
|
|
"radix-ui": "^1.6.7",
|
|
"react": "~19.2.8",
|
|
"react-colorful": "^5.7.0",
|
|
"react-dom": "~19.2.8",
|
|
"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-cjk-friendly": "^2.3.1",
|
|
"remark-frontmatter": "^5.0.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"remark-math": "^6.0.0",
|
|
"remark-parse": "^11.0.0",
|
|
"remark-rehype": "11.1.2",
|
|
"remend": "1.4.0",
|
|
"shiki": "4.5.0",
|
|
"sonner": "2.0.7",
|
|
"sucrase": "3.35.1",
|
|
"tailwind-merge": "^3.7.0",
|
|
"tailwindcss": "^4.3.3",
|
|
"tar": "7.5.22",
|
|
"tsrs": "0.18.0-ts7.1.0-dev.20260929",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^7.0.2",
|
|
"typescript-api": "npm:typescript@6.0.3",
|
|
"unified": "^11.0.5",
|
|
"unist-util-visit-parents": "6.0.2",
|
|
"vite": "^8.3.5",
|
|
"vitest": "5.0.5",
|
|
"vscode-oniguruma": "^2.0.1",
|
|
"zustand": "^5.0.15"
|
|
},
|
|
"optionalDependencies": {
|
|
"@orca/windows-registry": "workspace:*",
|
|
"@orca/windows-security": "workspace:*",
|
|
"@transcribe-cpp/darwin-arm64-metal": "0.4.1",
|
|
"@transcribe-cpp/linux-arm64-cpu-vulkan": "0.4.1",
|
|
"@transcribe-cpp/linux-x64-cpu-vulkan": "0.4.1",
|
|
"@transcribe-cpp/win32-x64-cpu-vulkan": "0.4.1",
|
|
"@vscode/windows-process-tree": "0.8.0",
|
|
"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",
|
|
"transcribe-cpp": "0.4.1"
|
|
},
|
|
"lint-staged": {
|
|
"{*.{ts,tsx,js,jsx,mjs,mts,cts},!(cloud)/**/*.{ts,tsx,js,jsx,mjs,mts,cts}}": [
|
|
"oxlint --no-error-on-unmatched-pattern",
|
|
"oxlint --config config/oxlint-js-plugins.json",
|
|
"ast-grep scan --config config/sgconfig.yml --min-severity warning",
|
|
"oxlint --config config/oxlint-react-doctor.json",
|
|
"oxfmt --write --no-error-on-unmatched-pattern"
|
|
],
|
|
"{*.{json,css,md,mdx,yml,yaml},!(cloud)/**/*.{json,css,md,mdx,yml,yaml}}": [
|
|
"oxfmt --write --no-error-on-unmatched-pattern"
|
|
]
|
|
},
|
|
"engines": {
|
|
"node": "24"
|
|
},
|
|
"packageManager": "pnpm@12.14.0+sha512.c18ba6d87993d3d164cb5e8948f32b2c06ee854487e06cd8d86781342fb3e5bb4634367034711e86802baa9c37bea906ce1929ad08d70884c97d801df13389a6",
|
|
"reactDoctor": {
|
|
"ignore": {
|
|
"overrides": [
|
|
{
|
|
"files": [
|
|
"resources/plugins/declarative/*.mjs"
|
|
],
|
|
"rules": [
|
|
"eslint/max-lines"
|
|
]
|
|
},
|
|
{
|
|
"files": [
|
|
"src/renderer/src/components/editor/combined-diff/review-controls/use-combined-diff-view-preferences.ts"
|
|
],
|
|
"rules": [
|
|
"react-doctor/no-derived-state-effect"
|
|
]
|
|
},
|
|
{
|
|
"files": [
|
|
"src/renderer/src/components/task-page/github/use-task-page-github-issue-draft.ts",
|
|
"src/renderer/src/components/task-page/jira/use-task-page-jira-creation-state.ts"
|
|
],
|
|
"rules": [
|
|
"react-doctor/no-adjust-state-on-prop-change"
|
|
]
|
|
},
|
|
{
|
|
"files": [
|
|
"src/renderer/src/components/editor/combined-diff/browse-files/use-combined-diff-tree-navigation.ts",
|
|
"src/renderer/src/components/editor/combined-diff/load-sections/combined-diff-section-load-registry.ts",
|
|
"src/renderer/src/components/editor/combined-diff/review-controls/use-combined-diff-section-actions.ts"
|
|
],
|
|
"rules": [
|
|
"react-doctor/no-ref-current-in-render"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"rules": {
|
|
"react-doctor/js-combine-iterations": "off",
|
|
"react-doctor/no-initialize-state": "off",
|
|
"react-doctor/no-unstable-nested-components": "off"
|
|
}
|
|
}
|
|
}
|