mirror of
https://github.com/stablyai/orca.git
synced 2026-09-29 16:02:50 +00:00
Keeps both sides of the native-chat rework: main's restructured turn status, live tool progress, inline diff cards, Codex tool row labels and selectable prose land in the native mobile path unchanged, while the hybrid branch's injected device operations (onCopyText, onOpenLink) and operations-based chat transport survive. - MobileMarkdown: main's `selectable` prose plus the branch's onOpenLink route. - MobileNativeChatMessage: main's ToolRun/TurnStatus split and structured activity gating, minus the direct expo-clipboard import the branch replaced with an injected copy operation. - MobileNativeChatView: main's MobileNativeChatPromptCard extraction and turn disclosure, with the branch's onOpenLink/onCopyText row props. - use-mobile-native-chat-session-lane: main's lane extraction re-targeted at the branch's operations/connected transport instead of client/connState. - terminal-links: main dropped countPathStarts for an incremental scan; the branch's multi-path reject now drains that same lazy scan. Claude-Session: https://claude.ai/code/session_01JNnE9qzUZMMnqpZWCqM3nb
363 lines
26 KiB
JSON
363 lines
26 KiB
JSON
{
|
|
"name": "orca",
|
|
"version": "1.4.197",
|
|
"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": {
|
|
"audit:perf": "oxlint --config config/oxlint-performance-audit.json --format json src",
|
|
"test:perf:contracts": "vitest run --config config/vitest.performance.config.ts",
|
|
"format": "oxfmt --write .",
|
|
"lint": "oxlint && pnpm run audit:code-quality:native && pnpm run audit:code-quality:type-aware && pnpm run check:reliability-gates && pnpm run check:max-lines-ratchet && pnpm run check:ts-nocheck-ratchet && pnpm run check:runtime-electron-ratchet && pnpm run verify:bundled-skill-guides && pnpm run verify:skill-bundle-manifest && pnpm run verify:localization-catalog && pnpm run verify:localization-runtime-catalog && pnpm run verify:localization-extraction && pnpm run verify:localization-coverage",
|
|
"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": "pnpm dlx react-doctor@0.9.1 . --yes --no-supply-chain --no-telemetry --blocking none",
|
|
"audit:dead-code": "pnpm dlx knip@5.88.1 --config config/knip.json",
|
|
"audit:dead-code:mobile": "pnpm dlx knip@5.88.1 --directory mobile --config ../config/knip.mobile.json",
|
|
"check:code-quality:changed": "node config/scripts/check-changed-code-quality.mjs",
|
|
"check:react-doctor:changed": "node config/scripts/check-react-doctor-changed.mjs",
|
|
"check:zustand-selector-fanout": "node config/scripts/zustand-selector-fanout-benchmark.mjs --check",
|
|
"doctor": "pnpm dlx react-doctor@0.9.1 . --no-telemetry",
|
|
"lint:react-doctor": "oxlint --config config/oxlint-react-doctor.json",
|
|
"lint:react-doctor:changed": "node config/scripts/lint-react-doctor-changed.mjs",
|
|
"lint:mobile-web": "oxlint src/mobile-web config/scripts/verify-mobile-web-rnw-build.mjs",
|
|
"prepare": "husky",
|
|
"test": "node config/scripts/ensure-native-runtime.mjs --runtime=node && vitest run --config config/vitest.config.ts",
|
|
"test:skill-sharing:release": "vitest run --config config/vitest.config.ts src/main/skills src/main/runtime/rpc/methods/skills.test.ts src/relay/skill-install-handler.test.ts src/shared/skill-bundle-install-contract.test.ts src/shared/skill-install-contract.test.ts src/shared/skill-install-failure.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/remote-agent-session-authority-repro.mjs",
|
|
"check:reliability-gates": "node config/scripts/check-reliability-gates.mjs",
|
|
"check:max-lines-ratchet": "node config/scripts/check-max-lines-ratchet.mjs",
|
|
"check:ts-nocheck-ratchet": "node config/scripts/check-ts-nocheck-ratchet.mjs",
|
|
"check:runtime-electron-ratchet": "node config/scripts/check-runtime-electron-ratchet.mjs",
|
|
"build:orcad": "node config/scripts/build-orcad.mjs",
|
|
"build:orcad-prebuilds": "node config/scripts/build-orcad-prebuilds.mjs",
|
|
"smoke:orcad-terminal": "node config/scripts/ensure-native-runtime.mjs --runtime=node && pnpm run build:cli && pnpm run build:orcad && node config/scripts/runtime-serve-terminal-smoke.mjs --target orcad",
|
|
"smoke:serve-terminal": "node config/scripts/runtime-serve-terminal-smoke.mjs",
|
|
"check:feature-wall-assets": "node config/scripts/check-feature-wall-assets.mjs",
|
|
"generate:bundled-skill-guides": "node config/scripts/generate-bundled-skill-guides.mjs --write",
|
|
"verify:bundled-skill-guides": "node config/scripts/generate-bundled-skill-guides.mjs --check",
|
|
"generate:skill-bundle-manifest": "node config/scripts/generate-skill-bundle-manifest.mjs --write",
|
|
"verify:skill-bundle-manifest": "node config/scripts/generate-skill-bundle-manifest.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": "tsc --noEmit -p config/tsconfig.node.json",
|
|
"typecheck:cli": "tsc --noEmit -p config/tsconfig.tc.cli.json",
|
|
"typecheck:web": "tsc --noEmit -p config/tsconfig.tc.web.json",
|
|
"typecheck:e2e": "tsc --noEmit -p config/tsconfig.e2e.json",
|
|
"typecheck:mobile-web": "tsc --noEmit -p config/tsconfig.mobile-web.json",
|
|
"typecheck": "node config/scripts/run-typecheck-projects-in-parallel.mjs",
|
|
"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 --disable-warning=MODULE_TYPELESS_PACKAGE_JSON config/scripts/build-relay.mjs",
|
|
"build:computer-macos": "node config/scripts/build-computer-macos.mjs",
|
|
"build:keyboard-layout-macos": "node config/scripts/build-keyboard-layout-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:built-skills-cli": "node config/scripts/verify-skills-cli-runtime.cjs out",
|
|
"verify:renderer-boot-graph": "node config/scripts/verify-renderer-boot-graph.mjs",
|
|
"verify:localization-catalog": "node config/scripts/verify-localization-catalog.mjs",
|
|
"sync:localization-catalog": "node config/scripts/verify-localization-catalog.mjs --fix",
|
|
"verify:localization-runtime-catalog": "node config/scripts/generate-runtime-required-english-catalog.mjs",
|
|
"sync:localization-runtime-catalog": "node config/scripts/generate-runtime-required-english-catalog.mjs --fix",
|
|
"verify:localization-extraction": "node config/scripts/verify-localization-extraction.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",
|
|
"test:linux-cli-contract": "node config/scripts/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": "node config/scripts/run-electron-vite-build.mjs",
|
|
"build:electron-vite:parallel": "node config/scripts/run-electron-vite-targets-in-parallel.mjs",
|
|
"build:web": "node config/scripts/run-vite-web-build.mjs && node config/scripts/verify-web-build.mjs",
|
|
"build:web-from-renderer": "node config/scripts/project-renderer-web-client.mjs && node config/scripts/verify-web-build.mjs",
|
|
"build:mobile-web": "pnpm run build:mobile-web-rnw",
|
|
"build:mobile-web-rnw": "pnpm --dir mobile install --frozen-lockfile && pnpm --dir mobile export:host-web -- ../out/mobile-web-rnw-export && node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON config/scripts/package-mobile-web-rnw.mjs && node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON config/scripts/verify-mobile-web-rnw-build.mjs",
|
|
"build:desktop": "pnpm run typecheck && pnpm run typecheck:mobile-web && pnpm run build:relay && 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:relay && 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:parallel": "pnpm run build:relay && 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/rebuild-native-deps.mjs",
|
|
"rebuild:electron": "node config/scripts/rebuild-native-deps.mjs",
|
|
"reclaim:electron-dists": "node config/scripts/reclaim-electron-dists.mjs",
|
|
"reclaim:dev-bundles": "node config/scripts/reclaim-dev-electron-bundles.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:keyboard-layout-macos && pnpm run build:notification-status-macos && pnpm run ensure:electron-runtime && node config/scripts/build-mac-local.mjs",
|
|
"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:keyboard-layout-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/build-linux-local.mjs",
|
|
"test:e2e": "pnpm run ensure:electron-runtime && npx playwright test --config tests/playwright.config.ts --project=electron-headless",
|
|
"test:e2e:hosted-mobile-webview": "pnpm run build:cli && pnpm run build:electron-vite && pnpm run build:mobile-web-rnw && pnpm --dir mobile test:e2e:hosted-webview",
|
|
"test:e2e:hosted-mobile-webview:ssh": "node config/scripts/run-hosted-mobile-webview-ssh-e2e.mjs",
|
|
"test:e2e:hosted-mobile-webview:ssh:packaged": "node config/scripts/run-packaged-hosted-mobile-webview-ssh-e2e.mjs",
|
|
"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/run-multi-client-navigation-e2e.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 tests/e2e/terminal-webgl-atlas-budget.spec.ts --grep @terminal-rendering-golden --config tests/playwright.config.ts --project electron-headless --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-fresh-startup.spec.ts 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:windows-fresh-startup-golden": "pnpm run ensure:electron-runtime && npx playwright test tests/e2e/golden-windows-fresh-startup.spec.ts --grep @windows-fresh-startup-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 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:terminal-perf:html-report": "node config/scripts/generate-terminal-perf-html-report.mjs",
|
|
"test:e2e:ssh-docker-perf": "node config/scripts/run-ssh-docker-perf-e2e.mjs",
|
|
"test:e2e:ssh-docker-watcher-isolation": "node config/scripts/run-ssh-docker-watcher-isolation-e2e.mjs",
|
|
"test:e2e:ssh-docker": "node config/scripts/run-ssh-docker-e2e.mjs",
|
|
"test:e2e:ssh-client-hosted-browser": "node config/scripts/run-ssh-client-hosted-browser-drop-reconnect-e2e.mjs",
|
|
"test:e2e:local-ssh-browser": "node config/scripts/run-local-ssh-browser-routing-e2e.mjs",
|
|
"test:e2e:ssh-docker-terminal-parking": "node config/scripts/run-ssh-docker-terminal-parking-e2e.mjs",
|
|
"test:e2e:nested-runtime-ssh": "node config/scripts/run-nested-runtime-ssh-e2e.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: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:terminal-ime-native": "node config/scripts/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/run-idle-cpu-benchmark.mjs",
|
|
"bench:macos-computer-helper-owner-loss": "node config/scripts/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:relay && node config/scripts/wsl-hook-relay-reattach-benchmark.mjs",
|
|
"bench:wsl-git-shell": "node config/scripts/wsl-git-shell-benchmark.mjs",
|
|
"bench:hang-watchdog-memory": "pnpm run ensure:electron-runtime && node config/scripts/hang-watchdog-memory-benchmark.mjs",
|
|
"bench:main-thread-jank": "pnpm run ensure:electron-runtime && node tests/tools/benchmarks/main-thread-jank-bench.mjs",
|
|
"bench:worktree-deletion": "node tests/tools/benchmarks/worktree-deletion-dev-bench.mjs",
|
|
"bench:zustand-selector-fanout": "node config/scripts/zustand-selector-fanout-benchmark.mjs",
|
|
"bench:agent-inspection-cadence": "node config/scripts/agent-inspection-cadence-batching-benchmark.mjs",
|
|
"bench:renderer-quadratic-scans": "node config/scripts/renderer-quadratic-scan-benchmark.mjs",
|
|
"bench:session-write-hot-path": "node config/scripts/session-write-hot-path-benchmark.mjs",
|
|
"bench:terminal-partial-escape-tail": "node config/scripts/terminal-partial-escape-tail-benchmark.mjs",
|
|
"bench:worktree-refresh-churn": "node --disable-warning=MODULE_TYPELESS_PACKAGE_JSON config/scripts/worktree-refresh-churn-benchmark.mjs",
|
|
"bench:multi-workspace-typing": "pnpm run ensure:electron-runtime && node config/scripts/run-multi-workspace-typing-bench.mjs",
|
|
"bench:ai-vault-typing": "pnpm run ensure:electron-runtime && node config/scripts/run-ai-vault-typing-bench.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/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",
|
|
"test:e2e:ssh-docker-bulk-open-freeze": "node config/scripts/run-ssh-docker-bulk-open-freeze-e2e.mjs",
|
|
"repro:live-remote-bulk-open-freeze": "node config/scripts/live-remote-bulk-open-freeze-repro.mjs",
|
|
"repro:live-remote-realistic-freeze": "node config/scripts/live-remote-realistic-freeze-repro.mjs"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/claude-agent-sdk": "0.3.251",
|
|
"@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.300",
|
|
"@xterm/headless": "6.1.0-beta.302",
|
|
"agent-browser": "~0.27.0",
|
|
"electron-updater": "^6.8.9",
|
|
"i18next": "^26.3.1",
|
|
"jsonc-parser": "^3.3.1",
|
|
"node-pty": "^1.1.0",
|
|
"posthog-node": "^5.33.3",
|
|
"proper-lockfile": "4.1.2",
|
|
"psl": "1.15.0",
|
|
"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.3",
|
|
"yaml": "^2.8.4",
|
|
"zod": "~4.5.4"
|
|
},
|
|
"devDependencies": {
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@electron-toolkit/tsconfig": "^2.0.0",
|
|
"@electron/rebuild": "^4.2.0",
|
|
"@monaco-editor/react": "^4.7.0",
|
|
"@noble/hashes": "1.8.0",
|
|
"@playwright/test": "^1.59.1",
|
|
"@sanity/diff-match-patch": "^3.2.0",
|
|
"@stablyai/playwright-test": "^2.1.14",
|
|
"@tailwindcss/vite": "^4.2.4",
|
|
"@tanstack/react-virtual": "^3.14.10",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@tiptap/extension-code-block": "^3.22.5",
|
|
"@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-list": "^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/proper-lockfile": "^4.1.4",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/react": "^19.2.17",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@types/ssh2": "^1.15.5",
|
|
"@types/ws": "^8.18.1",
|
|
"@vitejs/plugin-react": "^5.2.0",
|
|
"@xterm/addon-fit": "0.12.0-beta.300",
|
|
"@xterm/addon-ligatures": "0.11.0-beta.300",
|
|
"@xterm/addon-search": "0.17.0-beta.300",
|
|
"@xterm/addon-unicode11": "0.10.0-beta.300",
|
|
"@xterm/addon-web-links": "0.13.0-beta.300",
|
|
"@xterm/addon-webgl": "0.20.0-beta.299",
|
|
"@xterm/xterm": "6.1.0-beta.303",
|
|
"buffer": "6.0.3",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"cmdk": "^1.1.1",
|
|
"dompurify": "^3.4.13",
|
|
"electron": "^43.4.1",
|
|
"electron-builder": "^26.15.3",
|
|
"electron-builder-squirrel-windows": "^26.15.3",
|
|
"electron-vite": "^5.0.0",
|
|
"emoji-picker-react": "^4.19.1",
|
|
"emojibase-data": "17.0.0",
|
|
"happy-dom": "^20.11.8",
|
|
"html-to-image": "^1.11.13",
|
|
"husky": "^9.1.7",
|
|
"i18next-cli": "1.65.0",
|
|
"katex": "^0.16.45",
|
|
"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",
|
|
"oxfmt": "^0.65.0",
|
|
"oxlint": "^1.80.0",
|
|
"oxlint-plugin-react-doctor": "0.9.1",
|
|
"oxlint-tsgolint": "7.0.2001",
|
|
"pdfjs-dist": "^6.3.289",
|
|
"pngjs": "^7.0.0",
|
|
"radix-ui": "^1.6.2",
|
|
"react": "^19.2.8",
|
|
"react-colorful": "^5.7.0",
|
|
"react-dom": "^19.2.8",
|
|
"react-grab": "^0.1.33",
|
|
"react-markdown": "^10.1.0",
|
|
"react-refresh": "^0.18.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.13.1",
|
|
"sonner": "^2.0.7",
|
|
"tailwind-merge": "^3.5.0",
|
|
"tailwindcss": "^4.2.4",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^7.0.2",
|
|
"typescript-api": "npm:typescript@6.0.3",
|
|
"unified": "^11.0.5",
|
|
"vite": "npm:rolldown-vite@7.3.1",
|
|
"vitest": "^4.1.11",
|
|
"vscode-oniguruma": "^2.0.1",
|
|
"vscode-textmate": "^9.3.2",
|
|
"zustand": "^5.0.14"
|
|
},
|
|
"optionalDependencies": {
|
|
"@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",
|
|
"windows-native-registry": "3.2.2"
|
|
},
|
|
"lint-staged": {
|
|
"{*.{ts,tsx,js,jsx,mjs,mts,cts},!(cloud)/**/*.{ts,tsx,js,jsx,mjs,mts,cts}}": [
|
|
"oxlint",
|
|
"oxlint --config config/oxlint-react-doctor.json",
|
|
"oxfmt --write"
|
|
],
|
|
"{*.{json,css},!(cloud)/**/*.{json,css}}": [
|
|
"oxfmt --write"
|
|
]
|
|
},
|
|
"engines": {
|
|
"node": "24"
|
|
},
|
|
"packageManager": "pnpm@12.0.0+sha512.9e2e3dc3911995868dc94b8175c217c27e95408fa03b4a22749778f2b34f773b77cdd3b39ede8171b22fcd53be6a35342e9fac9948a68ef58df6488ce89a7e67",
|
|
"reactDoctor": {
|
|
"ignore": {
|
|
"overrides": [
|
|
{
|
|
"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/use-task-page-github-issue-draft.ts",
|
|
"src/renderer/src/components/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"
|
|
}
|
|
}
|
|
}
|