{ "name": "web", "private": true, "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "tsc -b && vite build", "build:embed": "vite build --config vite.embed.config.ts", "type-check": "tsc -b", "preview": "vite preview", "lint": "oxlint .", "lint:fix": "oxlint --fix .", "format": "prettier --write .", "format:check": "prettier --check .", "test": "vitest run", "test:watch": "vitest", "test:coverage": "vitest run --coverage" }, "dependencies": { "@dnd-kit/core": "^6.3.1", "@fontsource-variable/geist-mono": "^5.2.7", "@lobehub/fluent-emoji": "^4.1.0", "@lobehub/icons": "^5.6.0", "@monaco-editor/react": "^4.7.0", "@opentelemetry/api": "^1.9.1", "@opentelemetry/context-zone": "^2.8.0", "@opentelemetry/exporter-trace-otlp-http": "^0.219.0", "@opentelemetry/instrumentation": "^0.219.0", "@opentelemetry/instrumentation-fetch": "^0.219.0", "@opentelemetry/instrumentation-xml-http-request": "^0.219.0", "@opentelemetry/resources": "^2.8.0", "@opentelemetry/sdk-trace-web": "^2.8.0", "@opentelemetry/semantic-conventions": "^1.41.1", "@radix-ui/react-use-controllable-state": "^1.2.2", "@shikijs/monaco": "^4.0.2", "@streamdown/cjk": "^1.0.3", "@streamdown/code": "^1.1.1", "@streamdown/math": "^1.0.2", "@streamdown/mermaid": "^1.0.2", "@tailwindcss/typography": "^0.5.19", "@tanstack/react-query": "^5.100.5", "@tiptap/extension-image": "3.23.4", "@tiptap/extension-link": "3.23.4", "@tiptap/extension-table": "3.23.4", "@tiptap/markdown": "3.23.4", "@tiptap/pm": "3.23.4", "@tiptap/react": "3.23.4", "@tiptap/starter-kit": "3.23.4", "@xterm/addon-fit": "^0.11.0", "@xterm/addon-web-links": "^0.12.0", "@xterm/addon-webgl": "^0.19.0", "@xterm/xterm": "^6.0.0", "@xyflow/react": "^12.11.1", "ansi-to-react": "^6.2.6", "antd": "^6.3.7", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "cmdk": "^1.1.1", "lucide-react": "^1.12.0", "monaco-editor": "^0.55.1", "nanoid": "^5.1.9", "next-themes": "^0.4.6", "radix-ui": "^1.4.3", "react": "^18.2.0", "react-dom": "^18.2.0", "react-hook-form": "^7.74.0", "react-hotkeys-hook": "^5.2.4", "react-markdown": "^10.1.0", "react-router": "6.30.4", "react-router-dom": "6.30.4", "rehype-github-alerts": "^4.2.0", "rehype-raw": "^7.0.0", "rehype-sanitize": "^6.0.0", "remark-breaks": "^4.0.0", "remark-emoji": "^5.0.2", "remark-gfm": "^4.0.1", "shadcn": "0.0.0-beta.9d3f70e54", "shiki": "^4.0.2", "streamdown": "^2.5.0", "tailwind-merge": "^3.5.0", "tokenlens": "^1.3.1", "tw-animate-css": "^1.4.0", "use-stick-to-bottom": "^1.1.3", "workbox-window": "^7.4.1", "zod": "^4.3.6", "zustand": "^5.0.12" }, "overrides": { "linkify-it": "5.0.1", "shiki": "$shiki", "@shikijs/core": "^4.2.0", "@shikijs/engine-javascript": "^4.2.0", "@shikijs/engine-oniguruma": "^4.2.0", "@shikijs/langs": "^4.2.0", "@shikijs/themes": "^4.2.0", "@shikijs/types": "^4.2.0", "@shikijs/transformers": "^4.2.0", "@tiptap/core": "3.23.4", "@tiptap/extension-blockquote": "3.23.4", "@tiptap/extension-bold": "3.23.4", "@tiptap/extension-bubble-menu": "3.23.4", "@tiptap/extension-bullet-list": "3.23.4", "@tiptap/extension-code": "3.23.4", "@tiptap/extension-code-block": "3.23.4", "@tiptap/extension-document": "3.23.4", "@tiptap/extension-dropcursor": "3.23.4", "@tiptap/extension-floating-menu": "3.23.4", "@tiptap/extension-gapcursor": "3.23.4", "@tiptap/extension-hard-break": "3.23.4", "@tiptap/extension-heading": "3.23.4", "@tiptap/extension-horizontal-rule": "3.23.4", "@tiptap/extension-image": "3.23.4", "@tiptap/extension-italic": "3.23.4", "@tiptap/extension-link": "3.23.4", "@tiptap/extension-list": "3.23.4", "@tiptap/extension-list-item": "3.23.4", "@tiptap/extension-list-keymap": "3.23.4", "@tiptap/extension-ordered-list": "3.23.4", "@tiptap/extension-paragraph": "3.23.4", "@tiptap/extension-strike": "3.23.4", "@tiptap/extension-table": "3.23.4", "@tiptap/extension-text": "3.23.4", "@tiptap/extension-underline": "3.23.4", "@tiptap/extensions": "3.23.4", "@tiptap/markdown": "3.23.4", "@tiptap/pm": "3.23.4", "@tiptap/react": "3.23.4", "@tiptap/starter-kit": "3.23.4", "dompurify": "^3.4.0", "express-rate-limit": { "ip-address": "^10.1.1" }, "react": "$react", "react-dom": "$react-dom" }, "devDependencies": { "@tailwindcss/vite": "^4.2.4", "@testing-library/dom": "^10.4.1", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.2", "@types/node": "^24.12.2", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", "@vitejs/plugin-react": "^6.0.1", "@vitest/coverage-v8": "^4.1.8", "ai": "^6.0.169", "ai-elements": "^1.9.0", "jsdom": "^29.1.1", "oxlint": "^1.62.0", "prettier": "^3.8.3", "tailwindcss": "^4.2.4", "typescript": "~6.0.2", "vite": "^8.0.10", "vitest": "^4.1.5" } }