{ "name": "metis-ai", "version": "1.0.24", "private": true, "packageManager": "pnpm@9.15.4", "engines": { "node": ">=22" }, "pnpm": { "onlyBuiltDependencies": [ "esbuild", "node-pty", "sharp" ] }, "scripts": { "dev": "next dev", "build": "next build && tsx scripts/write-release-manifest.ts", "build:production": "bash scripts/build-production-slot.sh", "release": "bash scripts/release.sh", "start": "tsx server.mjs", "lint": "eslint .", "test": "pnpm run test:protected-login && pnpm run test:note-backlog && pnpm run test:providers && pnpm run test:shared && tsx --test scripts/security.test.ts tests/auth.test.ts tests/remote-approval.test.ts tests/remote-approval-flow.test.ts tests/remote-client-startup.test.mjs tests/computer-use-worker.test.mjs tests/installers.test.ts tests/installer-host.test.mjs tests/installer-linux-runtime.test.mjs tests/installer-bootstrap-runtime.test.mjs tests/provider-cli-windows.test.mjs tests/windows-bootstrap.test.mjs tests/windows-uninstall-scope.test.mjs tests/windows-script-host.test.mjs tests/mcp-entrypoint.test.mjs tests/macos-installer-regression.test.mjs tests/docker-urls.test.ts tests/tool-kind.test.ts tests/runtime-mode.test.ts tests/browser.test.ts tests/live-agent-events.test.ts tests/agent-identity.test.ts tests/worker-concurrency.test.ts tests/admin-users.test.ts tests/os-user-field.test.ts tests/windows-os-user.test.ts tests/setup-onboarding.test.ts tests/mermaid.test.ts tests/graph-spec.test.ts tests/graph-view.test.ts tests/graph-board.test.ts tests/chart-spec.test.ts tests/chart-board.test.ts tests/user-isolation.test.ts tests/auth-security.test.ts tests/share-security.test.ts tests/request-network.test.ts tests/setup-security.test.ts tests/root-agent-config.test.ts tests/user-execution-isolation.test.ts tests/posix-isolation-probe.test.ts tests/installer-security-defaults.test.ts tests/setup-token-windows.test.ts tests/mcp-execution-security.test.mjs tests/remote-gateway-lease.test.ts", "test:providers": "tsx --test tests/native-isolation-activation.test.ts tests/credential-service-startup.test.mjs tests/native-runtime.test.ts tests/cursor-runtime.test.ts tests/safe-file-read.test.ts tests/native-file-receipts.test.ts tests/providers.test.ts tests/antigravity-params.test.ts tests/provider-chat-tools.test.ts tests/ollama-discovery.test.ts tests/provider-process-env.test.ts tests/codex-stream-hang.test.ts tests/codex-resume.test.ts tests/provider-progress-watchdog.test.ts tests/uploads.test.ts tests/provided-files.test.ts tests/modes.test.ts", "test:shared": "tsx --test tests/desktop-assistant.test.ts tests/field-dictation.test.tsx tests/math-rendering.test.ts tests/math-tables.test.ts tests/chat-search-performance.test.ts tests/reference-search.test.ts tests/reference-picker.test.tsx tests/references-api.test.ts tests/reference-search-performance.test.ts tests/notes-editor-references.test.ts tests/composer-references.test.ts tests/deep-research.test.ts tests/research-progress.test.tsx tests/research-boundaries.test.ts tests/research-completion.test.ts tests/goal-continuation.test.ts tests/task-continuation.test.ts tests/research-workflow.test.ts tests/research-canvas-workspace.test.ts tests/research-canvas-artifact.test.ts tests/research-plan-editor.test.tsx tests/research-tools.test.mjs tests/research-web-results.test.mjs tests/response-suggestions.test.ts tests/response-suggestions-runner.test.ts tests/account-profile-usage.test.ts tests/usage-model-details.test.ts tests/usage-api-costs.test.ts tests/api-price-catalog.test.ts tests/profile-gif-avatar.test.ts tests/profile-banner.test.ts tests/usage-provider-filter.test.ts tests/usage-model-contributions.test.ts tests/profile-handle.test.ts tests/agent-runtime-policy.test.mjs tests/agent-runtime-settings.test.ts tests/agent-runtime.test.ts tests/agent-runtime-tools.test.mjs tests/question-transcript.test.ts tests/question-answer-text.test.tsx tests/question-transcript-cursor.test.ts tests/question-transcript-window.test.ts tests/question-reload.test.ts tests/question-contract.test.ts tests/chat-icons.test.tsx tests/markdown-sources.test.tsx tests/message-sources.test.tsx tests/server-monitor.test.tsx tests/question-flow.test.ts tests/question-cancel.test.ts tests/user-question-wait.test.ts tests/question-transport.test.mjs tests/run-event-stream.test.ts tests/performance-persistence.test.ts tests/database-startup-projection.test.ts tests/chat-checkpoints.test.ts tests/chat-submit-worker.test.ts tests/notification-observer-thread.test.ts tests/remote-presence-worker.test.ts tests/chat-metadata-performance.test.ts tests/chat-metadata-persistence.test.ts tests/model-selection-persistence.test.ts tests/chat-model-settings.test.ts tests/model-chains.test.ts tests/chat-model-settings-api.test.ts tests/chat-settings-navigation.test.ts tests/model-account-groups.test.ts tests/provider-connection-draft.test.ts tests/provider-connections.test.ts tests/provider-settings-layout.test.tsx tests/provider-multi-account-models.test.ts tests/provider-oauth-identity.test.ts tests/queue-persistence-race.test.ts tests/note-pins-performance.test.ts tests/memory-access.test.ts tests/chat-memory-view.test.ts tests/run-status.test.ts tests/project-team.test.ts tests/project-team-graph.test.ts tests/infinite-viewport.test.ts tests/notes-gestures.test.ts tests/chat-program-events.test.ts tests/chat-page-payload.test.ts tests/long-chat-pagination.test.ts tests/chat-navigation-snapshot.test.ts tests/chat-scroll.test.ts tests/chat-todos.test.ts tests/note-save-state.test.ts tests/team-presets.test.ts tests/work-ledger.test.ts tests/automations.test.ts tests/shared-context.test.ts tests/user-input-resume.test.ts tests/user-input-lease.test.ts tests/user-input-continuation.test.ts tests/worker-failure.test.ts tests/recovery.test.ts tests/owner-boundary.test.ts tests/agent-trace.test.ts tests/agent-transcript.test.ts tests/cursor-session-recovery.test.ts tests/persistence-limits.test.ts tests/file-edit-snapshot.test.ts tests/file-snapshot-capture.test.ts tests/edited-files-ui.test.tsx tests/edited-file-diff.test.tsx tests/acp-stdio.test.ts tests/context-window.test.ts tests/codex-context.test.ts tests/codex-custom-context.test.ts tests/context-efficiency.test.ts tests/codex-instruction-context.test.ts tests/context-compaction-orchestrator.test.ts tests/recovery-transcript.test.ts tests/context-layers.test.ts tests/chat-metadata-prompt.test.ts tests/chat-projects.test.ts tests/knowledge-lifecycle.test.ts tests/provider-session-revert.test.ts tests/model-params.test.ts tests/usage-display.test.ts tests/usage-resets.test.ts tests/usage-reset-expiry.test.tsx tests/skills.test.ts tests/project-settings.test.ts tests/project-sharing.test.ts tests/notification-lifecycle.test.ts tests/project-member-profiles.test.ts tests/project-message-authors.test.tsx tests/project-appearance.test.ts tests/project-default-model.test.ts tests/project-chat-visibility.test.ts tests/github-releases.test.ts tests/installer-update.test.ts tests/updater-stability.test.ts tests/updater-memory.test.ts tests/build-node-options.test.cjs tests/update-job.test.ts tests/update-history.test.ts tests/installer-dirty-checkout.test.ts tests/release-manifest.test.ts tests/project-home.test.ts tests/mobile-chat-ux.test.ts tests/model-options-mobile.test.ts tests/hellenic-wordmark.test.ts tests/notes-void.test.ts tests/file-drop.test.ts tests/note-scratchpad.test.ts tests/note-banner-upload.test.ts tests/image-framing.test.tsx tests/image-framing-persistence.test.ts tests/note-icons.test.ts tests/attachment-settings.test.ts tests/background-uploads.test.ts tests/file-embeds.test.ts tests/upload-queue.test.ts tests/navigation-swipe.test.ts tests/chat-background-attachments.test.ts tests/markdown-editor.test.ts tests/workspace-drafts.test.ts tests/document-export.test.ts tests/workspace-export-api.test.ts tests/workspace-create.test.ts tests/workspace-file-download.test.ts tests/rich-user-text-and-editor.test.ts tests/settings-sections.test.ts tests/ui-consistency.test.tsx tests/discovery-context.test.ts tests/tool-call-display.test.ts tests/worker-scheduler.test.ts tests/subagent-review.test.ts tests/worker-memory.test.ts tests/memory-queue.test.ts tests/server-chat-cache.test.ts tests/tool-search.test.ts tests/workspace-search.test.mjs tests/workspace-search-result.test.ts tests/composer-send.test.ts tests/queue-client.test.ts tests/queue-edit-ui.test.ts tests/queue-chat-switch.test.ts tests/queue-background-ui.test.ts tests/queue-send-now.test.ts tests/queue-send-ui.test.ts tests/queue-removal.test.ts tests/queue-drain.test.ts tests/slash-commands.test.ts tests/client-chat-cache.test.ts tests/memory-cleanup.test.ts tests/ui-responsiveness.test.ts tests/ui-motion.test.ts tests/streaming-motion.test.tsx tests/composer-caret-persistence.test.ts tests/composer-voice-and-automations-ui.test.ts tests/tool-parity.test.ts tests/model-aliases.test.ts tests/provider-mcp-routing.test.ts tests/capabilities.test.ts tests/url-security.test.ts tests/mcp-http-auth.test.ts tests/production-audit.test.ts tests/chat-live-sync.test.ts tests/chat-trash.test.ts tests/settings-search.test.ts tests/remote-file-editor.test.ts tests/file-editor-preview.test.tsx tests/html-embed.test.tsx tests/remote-client-distribution.test.ts tests/remote-client-release.test.ts tests/device-routing.test.ts tests/link-preview-position.test.ts tests/internal-links.test.ts tests/internal-link-preview.test.ts tests/link-icons.test.tsx tests/internal-workspace.test.ts tests/assistant-images.test.ts tests/screenshot-artifacts.test.mjs tests/file-upload-proxy.test.ts tests/voice-upload.test.ts tests/voice-dictionary.test.ts tests/voice-realtime.test.ts tests/voice-realtime-api.test.ts && tsx --test tests/shared-helpers.test.ts tests/skill-context.test.ts tests/api-auth.test.ts tests/remote-desktop.test.ts tests/remote-desktop-monitors.test.ts tests/desktop-monitors-ui.test.ts tests/workspace-desktop-lifecycle.test.ts tests/browser-frame-client.test.ts tests/browser-frame-presenter.test.ts tests/browser-stream-lifecycle.test.ts tests/desktop-preview.test.mjs", "typecheck": "tsc --noEmit", "bench:performance": "node --expose-gc --import tsx scripts/benchmark-performance.ts && node --import tsx scripts/benchmark-run-stream.ts", "test:release": "bash scripts/test-release-contract.sh", "audit:capabilities": "tsx scripts/capability-audit.ts", "test:security": "tsx --test scripts/security.test.ts tests/auth.test.ts tests/auth-security.test.ts tests/share-security.test.ts tests/request-network.test.ts tests/setup-security.test.ts tests/setup-onboarding.test.ts tests/user-isolation.test.ts tests/os-user-field.test.ts tests/admin-users.test.ts tests/root-agent-config.test.ts tests/user-execution-isolation.test.ts tests/posix-isolation-probe.test.ts tests/installer-security-defaults.test.ts tests/setup-token-windows.test.ts tests/mcp-execution-security.test.mjs tests/remote-gateway-lease.test.ts tests/remote-approval.test.ts tests/remote-approval-flow.test.ts tests/production-audit.test.ts", "test:note-backlog": "tsx --test tests/client-id.test.ts tests/client-id-writes.test.ts tests/client-id-origin.test.mjs tests/notes-upgrades.test.ts tests/note-collaboration.test.ts tests/note-collaboration-roundtrip.test.ts tests/notebook-presence.test.ts tests/notebook-presence-connection.test.ts tests/chat-memory-actions.test.ts tests/note-editor-lifecycle.test.ts tests/note-sharing.test.ts tests/chat-share-settings.test.ts tests/chat-share-files.test.ts tests/shared-workspaces.test.tsx tests/shared-workspace-export.test.ts tests/note-sharing-ui.test.tsx tests/note-subfiles.test.tsx tests/public-markdown.test.tsx tests/public-mermaid.test.ts tests/public-visualization.test.ts tests/copy-text.test.ts tests/chat-continuity-context.test.ts tests/composer-references.test.ts tests/provider-limit-runtime.test.ts tests/provider-reset-wait.test.tsx tests/provider-reset-wait-api.test.ts tests/provider-limit-settings.test.ts tests/provider-limit-runner.test.ts tests/provider-retry.test.ts tests/provider-retry-runner.test.ts tests/provider-retry-backoff.test.ts tests/provider-retry-cursor.test.ts tests/provider-retry-settings.test.ts tests/provider-retry-ui.test.tsx tests/run-control-events.test.tsx tests/codex-events.test.ts tests/codex-rate-limit.test.ts tests/notifications.test.ts tests/notification-preferences.test.ts tests/remote-notification-defaults.test.ts tests/sources-prompt.test.ts tests/notification-native.test.mjs tests/notification-mcp.test.mjs tests/notification-protocol.test.mjs", "test:protected-login": "tsx --test --test-concurrency=2 tests/vault-management.test.ts tests/vault-console-access.test.ts tests/credential-vault.test.ts tests/credential-vault-tool.test.mjs tests/vault-browser-ui.test.mjs tests/protected-login-contract.test.ts tests/secure-console-boundary.test.mjs tests/secure-question-cancel.test.ts tests/browser-secure-input.test.ts tests/browser-screenshot-sensitivity.test.ts tests/browser-login-preflight.test.ts tests/browser-login-target.test.ts tests/browser-login-navigation.test.ts tests/browser-login-redirect.test.ts tests/protected-browser-routing.test.ts tests/protected-login-errors.test.ts tests/browser-secure-input-ui.test.mjs tests/credential-question-policy.test.mjs tests/credential-user-boundary.test.ts tests/scoped-credentials.test.ts tests/credential-envelope.test.mjs", "test:protected-login-redirect": "tsx --test --test-concurrency=1 tests/browser-login-redirect.test.ts" }, "dependencies": { "@ai-sdk/anthropic": "^4.0.33", "@ai-sdk/google": "^4.0.36", "@ai-sdk/google-vertex": "^5.0.44", "@ai-sdk/openai": "^4.0.33", "@ai-sdk/openai-compatible": "^3.0.25", "@ai-sdk/xai": "^4.0.30", "@anthropic-ai/claude-agent-sdk": "^0.3.223", "@codemirror/commands": "^6.11.1", "@codemirror/lang-markdown": "^6.5.2", "@codemirror/language": "^6.12.4", "@codemirror/state": "^6.7.6", "@codemirror/view": "^6.43.13", "@cursor/sdk": "latest", "@dnd-kit/core": "^6.3.1", "@hocuspocus/provider": "3.4.4", "@hocuspocus/server": "3.4.4", "@lobehub/icons": "^5.15.0", "@modelcontextprotocol/sdk": "1.30.0", "@monaco-editor/react": "^4.7.0", "@openai/codex": "^0.156.1", "@openai/codex-sdk": "^0.156.1", "@openrouter/ai-sdk-provider": "^3.0.0", "@tiptap/core": "3", "@tiptap/extension-collaboration": "3.32.0", "@tiptap/extension-collaboration-caret": "3.32.0", "@tiptap/extension-highlight": "3", "@tiptap/extension-image": "3", "@tiptap/extension-list": "3", "@tiptap/extension-placeholder": "3", "@tiptap/extension-table": "3", "@tiptap/extension-text-style": "3", "@tiptap/pm": "3", "@tiptap/react": "3", "@tiptap/starter-kit": "3", "@tiptap/y-tiptap": "3.2.0", "@xterm/addon-fit": "^0.11.0", "@xterm/xterm": "^6.0.0", "ai": "^7.0.55", "ai-sdk-oauth-providers": "^0.2.1", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "diff": "9.0.0", "emoji-picker-react": "5.1.4", "fflate": "^0.8.3", "highlight.js": "^11.11.1", "jsxgraph": "^1.13.3", "katex": "^0.16.47", "lib0": "^0.2.119", "lucide-react": "^1.28.0", "mermaid": "^11.17.0", "micromark-util-decode-string": "^2.0.1", "minimatch": "10.2.6", "next": "^15.5.0", "next-themes": "^0.4.6", "node-diff3": "3.2.1", "node-pty": "^1.1.0", "playwright": "^1.62.1", "radix-ui": "^1.6.7", "react": "^19.1.0", "react-dom": "^19.1.0", "react-easy-crop": "^6.2.4", "react-markdown": "^10.1.0", "recharts": "^3.10.1", "rehype-katex": "^7.0.1", "rehype-stringify": "^10.0.1", "remark-gfm": "^4.0.1", "remark-math": "^6.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.1.2", "remark-stringify": "^11.0.0", "shadcn": "^4.16.1", "sharp": "^0.35.5", "sonner": "^2.0.7", "tailwind-merge": "^3.6.0", "tsx": "^4.23.5", "undici": "^7", "unified": "^11.0.5", "ws": "^8.21.2", "y-indexeddb": "^9.0.12", "yjs": "^13.6.0", "zod": "^4.4.3" }, "devDependencies": { "@eslint/js": "^9.39.5", "@next/eslint-plugin-next": "^15.5.0", "@playwright/test": "^1.62.1", "@tailwindcss/postcss": "^4.3.3", "@types/node": "^22.15.0", "@types/react": "^19.1.0", "@types/react-dom": "^19.1.0", "@types/ws": "^8.18.1", "eslint": "^9.39.5", "eslint-plugin-react-hooks": "^7.1.1", "globals": "^17.9.0", "postcss": "^8.5.25", "tailwindcss": "^4.3.3", "tw-animate-css": "^1.4.0", "typescript": "^5.8.2", "typescript-eslint": "^8.66.0" } }