{ "name": "@openwork/app", "private": true, "version": "0.0.0-dev", "type": "module", "scripts": { "test": "bun test --isolate tests/", "dev": "OPENWORK_DEV_MODE=1 vite", "build": "vite build", "dev:web": "OPENWORK_DEV_MODE=1 vite", "build:web": "VITE_OPENWORK_DEPLOYMENT=web VITE_DEN_REQUIRE_SIGNIN=1 vite build", "preview": "vite preview", "typecheck": "tsc -p tsconfig.json --noEmit", "test:health": "node scripts/health.mjs", "test:mention-send": "node scripts/mention-send.mjs", "test:sessions": "node scripts/sessions.mjs", "test:refactor": "pnpm typecheck && pnpm test:health && pnpm test:sessions", "test:events": "node scripts/events.mjs", "test:todos": "node scripts/todos.mjs", "test:permissions": "node scripts/permissions.mjs", "test:voice-cdp": "node scripts/voice-cdp.mjs", "test:remote-diagnostics": "bun test scripts/remote-workspace-diagnostics.test.ts", "test:open-target": "bun test scripts/open-target.test.ts", "test:desktop-cloud-sync": "bun test scripts/desktop-cloud-sync.test.ts", "test:artifact-spreadsheet": "bun test scripts/artifact-spreadsheet.test.ts", "test:dev-log": "bun scripts/dev-log.ts", "test:session-error-recovery": "bun scripts/session-error-recovery.ts", "test:session-scope": "bun scripts/session-scope.ts", "test:session-switch": "node scripts/session-switch.mjs", "test:fs-engine": "node scripts/fs-engine.mjs", "test:local-file-path": "node scripts/local-file-path.mjs", "test:browser-entry": "node scripts/browser-entry.mjs", "test:e2e": "pnpm test:local-file-path && node scripts/e2e.mjs && node scripts/session-switch.mjs && node scripts/fs-engine.mjs && node scripts/browser-entry.mjs" }, "dependencies": { "@ai-sdk/react": "^3.0.148", "@base-ui/react": "^1.4.1", "@codemirror/commands": "^6.8.0", "@codemirror/lang-markdown": "^6.5.1", "@codemirror/language": "^6.11.0", "@codemirror/state": "^6.5.2", "@codemirror/view": "^6.38.0", "@fontsource-variable/geist": "^5.2.8", "@fontsource-variable/ibm-plex-sans": "^5.2.8", "@heroicons/react": "^2.2.0", "@lexical/react": "^0.35.0", "@modelcontextprotocol/ext-apps": "^1.7.5", "@modelcontextprotocol/sdk": "^1.29.0", "@opencode-ai/sdk": "^1.18.15", "@openwork/install-config": "workspace:*", "@openwork/types": "workspace:*", "@openwork/ui": "workspace:*", "@paper-design/shaders-react": "0.0.72", "@pierre/diffs": "1.3.5", "@pierre/trees": "1.0.0-beta.6", "@radix-ui/colors": "^3.0.0", "@radix-ui/react-use-controllable-state": "^1.2.2", "@shikijs/transformers": "^4.0.2", "@tanstack/react-query": "^5.90.3", "@tanstack/react-virtual": "^3.13.23", "@xterm/addon-fit": "^0.11.0", "@xterm/xterm": "^6.0.0", "ai": "^6.0.146", "boring-avatars": "^2.0.4", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "dompurify": "^3.4.12", "emojilib": "^4.0.3", "fuzzysort": "^3.1.0", "jsonc-parser": "^3.2.1", "katex": "^0.18.1", "lexical": "^0.35.0", "lucide-react": "^0.577.0", "marked": "^17.0.1", "marked-emoji": "^2.0.3", "marked-katex-extension": "^5.1.10", "mermaid": "^11.17.1", "motion": "^12.38.0", "react": "catalog:", "react-dom": "catalog:", "react-resizable-panels": "^4.11.0", "react-router": "8.3.0", "remark-breaks": "^4.0.0", "remark-gfm": "^4.0.1", "shadcn": "^4.6.0", "shiki": "^4.0.2", "sonner": "^2.0.7", "tailwind-merge": "^3.6.0", "tw-animate-css": "^1.4.0", "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz", "zustand": "^5.0.12" }, "devDependencies": { "@tailwindcss/vite": "^4.3.3", "@types/node": "^25.6.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^5.0.4", "babel-plugin-react-compiler": "^1.0.0", "htmlparser2": "8.0.2", "tailwindcss": "^4.3.3", "typescript": "^5.6.3", "vite": "^6.4.3" }, "packageManager": "pnpm@10.27.0" }