@surething/cockpit 1.0.242 → 1.0.244
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next-prod/BUILD_ID +1 -1
- package/.next-prod/app-path-routes-manifest.json +6 -4
- package/.next-prod/build-manifest.json +3 -3
- package/.next-prod/prerender-manifest.json +3 -3
- package/.next-prod/react-loadable-manifest.json +11 -11
- package/.next-prod/routes-manifest.json +12 -0
- package/.next-prod/server/app/_global-error/page.js +3 -3
- package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
- package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_global-error.html +1 -1
- package/.next-prod/server/app/_global-error.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found/page.js +2 -2
- package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
- package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_not-found.html +2 -2
- package/.next-prod/server/app/_not-found.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next-prod/server/app/api/agent/test/route.js +1 -1
- package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/bash/route.js +1 -1
- package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/codex/route.js +2 -2
- package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/kimi/route.js +2 -2
- package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/pty-input/route.js +1 -1
- package/.next-prod/server/app/api/chat/pty-input/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/route.js +1 -1
- package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/stop/route.js +1 -1
- package/.next-prod/server/app/api/chat/stop/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/claude-stats/route.js +1 -1
- package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/commands/route.js +1 -1
- package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/comments/route.js +1 -1
- package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/columns/route.js +1 -1
- package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/connect/route.js +1 -1
- package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/export/route.js +1 -1
- package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/query/route.js +1 -1
- package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js +2 -2
- package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/deepseek/credentials/route.js +1 -0
- package/.next-prod/server/app/api/deepseek/credentials/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/deepseek/credentials/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/dev/spans/route.js +1 -1
- package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/extension/version/route.js +1 -1
- package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/file/route.js +1 -1
- package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/blame/route.js +1 -1
- package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
- package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/copy/route.js +1 -1
- package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/delete/route.js +1 -1
- package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/expanded/route.js +1 -1
- package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/index/route.js +1 -1
- package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/init/route.js +1 -1
- package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/paste/route.js +1 -1
- package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/read/route.js +1 -1
- package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/readdir/route.js +1 -1
- package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/recent/route.js +1 -1
- package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/save/route.js +1 -1
- package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/search/route.js +1 -1
- package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/stat/route.js +1 -1
- package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/text/route.js +1 -1
- package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
- package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/branches/route.js +1 -1
- package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
- package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/commits/route.js +1 -1
- package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/current-branch/route.js +1 -1
- package/.next-prod/server/app/api/git/current-branch/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/diff/route.js +1 -1
- package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/discard/route.js +1 -1
- package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/stage/route.js +1 -1
- package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/status/route.js +1 -1
- package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/unstage/route.js +1 -1
- package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/worktree/route.js +1 -1
- package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/global-state/route.js +2 -2
- package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/health/route.js +1 -1
- package/.next-prod/server/app/api/health/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
- package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
- package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/references/route.js +1 -1
- package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/status/route.js +1 -1
- package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
- package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
- package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/export/route.js +1 -1
- package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/query/route.js +1 -1
- package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/schemas/route.js +2 -2
- package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/note/route.js +1 -1
- package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/ollama/config/route.js +1 -0
- package/.next-prod/server/app/api/ollama/config/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/ollama/config/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/ollama/models/route.js +1 -1
- package/.next-prod/server/app/api/ollama/models/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/ollama/start/route.js +1 -1
- package/.next-prod/server/app/api/ollama/start/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/open-cursor/route.js +1 -1
- package/.next-prod/server/app/api/open-cursor/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/open-vscode/route.js +1 -1
- package/.next-prod/server/app/api/open-vscode/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/pick-folder/route.js +1 -1
- package/.next-prod/server/app/api/pick-folder/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
- package/.next-prod/server/app/api/pinned-sessions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/preview/[...path]/route.js +1 -1
- package/.next-prod/server/app/api/preview/[...path]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/project-settings/route.js +1 -1
- package/.next-prod/server/app/api/project-settings/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/project-state/route.js +2 -2
- package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/affected/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/callees/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/callers/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/coedit/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/context/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/impact/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/related/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/risk/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projects/route.js +1 -1
- package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/public-key/route.js +1 -1
- package/.next-prod/server/app/api/push/public-key/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/subscribe/route.js +1 -1
- package/.next-prod/server/app/api/push/subscribe/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/unsubscribe/route.js +1 -1
- package/.next-prod/server/app/api/push/unsubscribe/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/command/route.js +1 -1
- package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/connect/route.js +1 -1
- package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/delete/route.js +1 -1
- package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/get/route.js +1 -1
- package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/keys/route.js +1 -1
- package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/set/route.js +1 -1
- package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/identify/route.js +1 -1
- package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/order/route.js +1 -1
- package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/route.js +1 -1
- package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/share-info/route.js +1 -1
- package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/users/route.js +1 -1
- package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js +3 -3
- package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/services/config/route.js +1 -1
- package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/services/scripts/route.js +1 -1
- package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
- package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
- package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/route.js +1 -1
- package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/settings/route.js +1 -1
- package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
- package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/content/route.js +1 -1
- package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/route.js +1 -1
- package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/snapshots/diff/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/snapshots/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
- package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
- package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/env/route.js +1 -1
- package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/history/route.js +1 -1
- package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/version/route.js +1 -1
- package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/favicon.ico/route.js +1 -1
- package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next-prod/server/app/m/page.js +2 -2
- package/.next-prod/server/app/m/page.js.nft.json +1 -1
- package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
- package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next-prod/server/app/page.js +2 -2
- package/.next-prod/server/app/page.js.nft.json +1 -1
- package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/project/page.js +2 -2
- package/.next-prod/server/app/project/page.js.nft.json +1 -1
- package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/review/[id]/page.js +2 -2
- package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
- package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app-paths-manifest.json +6 -4
- package/.next-prod/server/chunks/2939.js +1 -1
- package/.next-prod/server/chunks/304.js +1 -1
- package/.next-prod/server/chunks/6038.js +1 -0
- package/.next-prod/server/chunks/7338.js +4 -4
- package/.next-prod/server/chunks/9658.js +15 -15
- package/.next-prod/server/chunks/9830.js +1 -1
- package/.next-prod/server/middleware-build-manifest.js +1 -1
- package/.next-prod/server/middleware-react-loadable-manifest.js +1 -1
- package/.next-prod/server/pages/404.html +2 -2
- package/.next-prod/server/pages/500.html +1 -1
- package/.next-prod/server/server-reference-manifest.json +1 -1
- package/.next-prod/static/chunks/1871-4468d75ec99d71fc.js +25 -0
- package/.next-prod/static/chunks/{2501.8a795c737a86ac2f.js → 2501.4e65b56602faa956.js} +1 -1
- package/.next-prod/static/chunks/{3304.540e84c28c47b48b.js → 3304.16305e84f4ff6598.js} +1 -1
- package/.next-prod/static/chunks/{4523.a6c0a4fb0a46d0bb.js → 4523.aaab4b1bd81167d4.js} +1 -1
- package/.next-prod/static/chunks/{4678.9870fc2e3d7d1e5d.js → 4678.867dfae26694be02.js} +1 -1
- package/.next-prod/static/chunks/{6729.582a7ca4e74b0aea.js → 6729.77a5381ac8f5c9ae.js} +1 -1
- package/.next-prod/static/chunks/{6784-a155388d7e43ef3d.js → 6784-53d80dc3b480cf9a.js} +0 -0
- package/.next-prod/static/chunks/{7799.ada4812ac0884dcc.js → 7799.40b047a634f96a24.js} +1 -1
- package/.next-prod/static/chunks/9530-08419cb81f88a0e6.js +15 -0
- package/.next-prod/static/chunks/app/_global-error/page-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/agent/test/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/bash/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/codex/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/kimi/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/ollama/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/pty-input/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/stop/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/claude-stats/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/commands/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/comments/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/db/columns/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/db/connect/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/db/disconnect/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/db/export/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/db/query/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/db/schemas/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/deepseek/credentials/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/dev/spans/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/extension/version/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/file/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/blame/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/clipboard/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/copy/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/delete/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/expanded/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/index/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/init/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/paste/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/read/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/readdir/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/recent/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/save/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/search/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/stat/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/files/text/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branches/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commits/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/current-branch/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/diff/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/discard/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/stage/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/status/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/unstage/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/git/worktree/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/global-state/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/health/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/load/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/save/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/definition/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/hover/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/references/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/status/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/columns/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/connect/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/export/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/query/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/query/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/note/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/config/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/models/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/start/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/open-cursor/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/open-vscode/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/pick-folder/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/preview/[...path]/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/project-settings/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/project-state/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/projects/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/push/public-key/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/push/subscribe/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/command/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/connect/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/delete/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/get/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/keys/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/set/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/review/identify/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/review/order/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/review/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/review/share-info/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/review/users/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/services/config/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/services/scripts/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/session-by-path/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/settings/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/[id]/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/content/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/diff/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/env/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/history/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/api/version/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/{layout-fdd40a9f4769a9d2.js → layout-392444ad665c7748.js} +1 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/app/{page-7e283c0e1ba7bf80.js → page-a32d8344284e99cb.js} +1 -1
- package/.next-prod/static/chunks/app/project/{page-7e283c0e1ba7bf80.js → page-a32d8344284e99cb.js} +1 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-6d7aa508d9d8bcc3.js +1 -0
- package/.next-prod/static/chunks/{webpack-798abcb0f340ce75.js → webpack-01274185cb710e57.js} +1 -1
- package/.next-prod/static/css/1d52d90207f3b441.css +1 -0
- package/.next-prod/static/sMb_F5kg6en8USwL7FYkb/_buildManifest.js +1 -0
- package/.next-prod/trace +13 -13
- package/.next-prod/trace-build +1 -1
- package/.next-prod/types/app/api/deepseek/credentials/route.ts +351 -0
- package/.next-prod/types/app/api/ollama/config/route.ts +351 -0
- package/.next-prod/types/routes.d.ts +3 -1
- package/.next-prod/types/validator.ts +18 -0
- package/dist/{chunk-RBT65EBM.mjs → chunk-3X4GQZL4.mjs} +73 -11
- package/dist/{chunk-PTHQK26K.mjs → chunk-BFESJMNO.mjs} +160 -17
- package/dist/{chunk-53DHIXIY.mjs → chunk-FMJUH423.mjs} +1 -1
- package/dist/httpApi.mjs +2 -2
- package/dist/scheduledTasks.mjs +13 -6
- package/dist/{server-XWLYHEMD.mjs → server-HKW65PHP.mjs} +2 -2
- package/dist/wsServer.mjs +4 -4
- package/package.json +1 -1
- package/server.mjs +24 -0
- package/.next-prod/server/chunks/6955.js +0 -1
- package/.next-prod/server/chunks/8916.js +0 -1
- package/.next-prod/server/chunks/9989.js +0 -1
- package/.next-prod/static/YsWseNHOrhvA60UWaNkzK/_buildManifest.js +0 -1
- package/.next-prod/static/chunks/5408-f9fd9ece18d916dc.js +0 -25
- package/.next-prod/static/chunks/9530-44f82b2151a66f3c.js +0 -15
- package/.next-prod/static/chunks/app/_global-error/page-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/agent/test/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/bash/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/codex/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/kimi/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/ollama/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/pty-input/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/stop/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/claude-stats/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/commands/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/comments/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/db/columns/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/db/connect/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/db/disconnect/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/db/export/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/db/query/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/db/schemas/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/dev/spans/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/extension/version/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/file/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/blame/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/clipboard/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/copy/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/delete/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/expanded/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/index/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/init/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/paste/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/read/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/readdir/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/recent/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/save/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/search/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/stat/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/files/text/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branches/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commits/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/current-branch/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/diff/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/discard/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/stage/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/status/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/unstage/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/git/worktree/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/global-state/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/health/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/load/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/save/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/definition/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/hover/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/references/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/status/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/columns/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/connect/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/export/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/query/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/query/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/note/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/models/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/start/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/open-cursor/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/open-vscode/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/pick-folder/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/preview/[...path]/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/project-settings/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/project-state/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/projects/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/push/public-key/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/push/subscribe/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/command/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/connect/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/delete/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/get/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/keys/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/set/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/review/identify/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/review/order/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/review/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/review/share-info/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/review/users/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/services/config/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/services/scripts/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/session-by-path/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/settings/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/[id]/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/content/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/diff/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/env/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/history/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/api/version/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-f265b8a7128b7a1a.js +0 -1
- package/.next-prod/static/css/9f26a08be661160a.css +0 -1
- /package/.next-prod/static/{YsWseNHOrhvA60UWaNkzK → sMb_F5kg6en8USwL7FYkb}/_ssgManifest.js +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
4
|
type AppRoutes = "/" | "/m" | "/project" | "/review/[id]"
|
|
5
|
-
type AppRouteHandlerRoutes = "/api/agent/test" | "/api/bash" | "/api/chat" | "/api/chat/codex" | "/api/chat/deepseek" | "/api/chat/kimi" | "/api/chat/ollama" | "/api/chat/pty-input" | "/api/chat/stop" | "/api/claude-stats" | "/api/commands" | "/api/comments" | "/api/db/columns" | "/api/db/connect" | "/api/db/disconnect" | "/api/db/export" | "/api/db/query" | "/api/db/schemas" | "/api/dev/spans" | "/api/extension/version" | "/api/file" | "/api/files/blame" | "/api/files/clipboard" | "/api/files/copy" | "/api/files/delete" | "/api/files/expanded" | "/api/files/index" | "/api/files/init" | "/api/files/paste" | "/api/files/read" | "/api/files/readdir" | "/api/files/recent" | "/api/files/save" | "/api/files/search" | "/api/files/stat" | "/api/files/text" | "/api/git/branch-diff" | "/api/git/branches" | "/api/git/commit-diff" | "/api/git/commits" | "/api/git/current-branch" | "/api/git/diff" | "/api/git/discard" | "/api/git/stage" | "/api/git/status" | "/api/git/unstage" | "/api/git/worktree" | "/api/global-state" | "/api/health" | "/api/jupyter/load" | "/api/jupyter/save" | "/api/jupyter/shutdown" | "/api/lsp/definition" | "/api/lsp/hover" | "/api/lsp/references" | "/api/lsp/status" | "/api/lsp/warmup" | "/api/mysql/columns" | "/api/mysql/connect" | "/api/mysql/disconnect" | "/api/mysql/export" | "/api/mysql/query" | "/api/mysql/schemas" | "/api/neo4j/connect" | "/api/neo4j/disconnect" | "/api/neo4j/query" | "/api/neo4j/schema" | "/api/note" | "/api/ollama/models" | "/api/ollama/start" | "/api/open-cursor" | "/api/open-vscode" | "/api/pick-folder" | "/api/pinned-sessions" | "/api/preview/[...path]" | "/api/project-settings" | "/api/project-state" | "/api/projectGraph/affected" | "/api/projectGraph/callees" | "/api/projectGraph/callers" | "/api/projectGraph/coedit" | "/api/projectGraph/context" | "/api/projectGraph/file" | "/api/projectGraph/file-functions" | "/api/projectGraph/impact" | "/api/projectGraph/related" | "/api/projectGraph/risk" | "/api/projectGraph/search" | "/api/projects" | "/api/push/public-key" | "/api/push/subscribe" | "/api/push/unsubscribe" | "/api/redis/command" | "/api/redis/connect" | "/api/redis/delete" | "/api/redis/disconnect" | "/api/redis/get" | "/api/redis/keys" | "/api/redis/set" | "/api/review" | "/api/review/[id]" | "/api/review/[id]/comments" | "/api/review/[id]/replies" | "/api/review/identify" | "/api/review/order" | "/api/review/share-info" | "/api/review/users" | "/api/scheduled-tasks" | "/api/services/config" | "/api/services/scripts" | "/api/session-by-path" | "/api/session/[sessionId]/fork" | "/api/session/[sessionId]/history" | "/api/sessions" | "/api/sessions/projects" | "/api/sessions/projects/[encodedPath]" | "/api/settings" | "/api/skills" | "/api/skills/[id]" | "/api/skills/content" | "/api/snapshots" | "/api/snapshots/diff" | "/api/terminal/aliases" | "/api/terminal/autocomplete" | "/api/terminal/bubble-order" | "/api/terminal/env" | "/api/terminal/history" | "/api/version"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/agent/test" | "/api/bash" | "/api/chat" | "/api/chat/codex" | "/api/chat/deepseek" | "/api/chat/kimi" | "/api/chat/ollama" | "/api/chat/pty-input" | "/api/chat/stop" | "/api/claude-stats" | "/api/commands" | "/api/comments" | "/api/db/columns" | "/api/db/connect" | "/api/db/disconnect" | "/api/db/export" | "/api/db/query" | "/api/db/schemas" | "/api/deepseek/credentials" | "/api/dev/spans" | "/api/extension/version" | "/api/file" | "/api/files/blame" | "/api/files/clipboard" | "/api/files/copy" | "/api/files/delete" | "/api/files/expanded" | "/api/files/index" | "/api/files/init" | "/api/files/paste" | "/api/files/read" | "/api/files/readdir" | "/api/files/recent" | "/api/files/save" | "/api/files/search" | "/api/files/stat" | "/api/files/text" | "/api/git/branch-diff" | "/api/git/branches" | "/api/git/commit-diff" | "/api/git/commits" | "/api/git/current-branch" | "/api/git/diff" | "/api/git/discard" | "/api/git/stage" | "/api/git/status" | "/api/git/unstage" | "/api/git/worktree" | "/api/global-state" | "/api/health" | "/api/jupyter/load" | "/api/jupyter/save" | "/api/jupyter/shutdown" | "/api/lsp/definition" | "/api/lsp/hover" | "/api/lsp/references" | "/api/lsp/status" | "/api/lsp/warmup" | "/api/mysql/columns" | "/api/mysql/connect" | "/api/mysql/disconnect" | "/api/mysql/export" | "/api/mysql/query" | "/api/mysql/schemas" | "/api/neo4j/connect" | "/api/neo4j/disconnect" | "/api/neo4j/query" | "/api/neo4j/schema" | "/api/note" | "/api/ollama/config" | "/api/ollama/models" | "/api/ollama/start" | "/api/open-cursor" | "/api/open-vscode" | "/api/pick-folder" | "/api/pinned-sessions" | "/api/preview/[...path]" | "/api/project-settings" | "/api/project-state" | "/api/projectGraph/affected" | "/api/projectGraph/callees" | "/api/projectGraph/callers" | "/api/projectGraph/coedit" | "/api/projectGraph/context" | "/api/projectGraph/file" | "/api/projectGraph/file-functions" | "/api/projectGraph/impact" | "/api/projectGraph/related" | "/api/projectGraph/risk" | "/api/projectGraph/search" | "/api/projects" | "/api/push/public-key" | "/api/push/subscribe" | "/api/push/unsubscribe" | "/api/redis/command" | "/api/redis/connect" | "/api/redis/delete" | "/api/redis/disconnect" | "/api/redis/get" | "/api/redis/keys" | "/api/redis/set" | "/api/review" | "/api/review/[id]" | "/api/review/[id]/comments" | "/api/review/[id]/replies" | "/api/review/identify" | "/api/review/order" | "/api/review/share-info" | "/api/review/users" | "/api/scheduled-tasks" | "/api/services/config" | "/api/services/scripts" | "/api/session-by-path" | "/api/session/[sessionId]/fork" | "/api/session/[sessionId]/history" | "/api/sessions" | "/api/sessions/projects" | "/api/sessions/projects/[encodedPath]" | "/api/settings" | "/api/skills" | "/api/skills/[id]" | "/api/skills/content" | "/api/snapshots" | "/api/snapshots/diff" | "/api/terminal/aliases" | "/api/terminal/autocomplete" | "/api/terminal/bubble-order" | "/api/terminal/env" | "/api/terminal/history" | "/api/version"
|
|
6
6
|
type PageRoutes = never
|
|
7
7
|
type LayoutRoutes = "/"
|
|
8
8
|
type RedirectRoutes = never
|
|
@@ -30,6 +30,7 @@ interface ParamMap {
|
|
|
30
30
|
"/api/db/export": {}
|
|
31
31
|
"/api/db/query": {}
|
|
32
32
|
"/api/db/schemas": {}
|
|
33
|
+
"/api/deepseek/credentials": {}
|
|
33
34
|
"/api/dev/spans": {}
|
|
34
35
|
"/api/extension/version": {}
|
|
35
36
|
"/api/file": {}
|
|
@@ -80,6 +81,7 @@ interface ParamMap {
|
|
|
80
81
|
"/api/neo4j/query": {}
|
|
81
82
|
"/api/neo4j/schema": {}
|
|
82
83
|
"/api/note": {}
|
|
84
|
+
"/api/ollama/config": {}
|
|
83
85
|
"/api/ollama/models": {}
|
|
84
86
|
"/api/ollama/start": {}
|
|
85
87
|
"/api/open-cursor": {}
|
|
@@ -245,6 +245,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
245
245
|
type __Unused = __Check
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
+
// Validate ../../src/app/api/deepseek/credentials/route.ts
|
|
249
|
+
{
|
|
250
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/deepseek/credentials">> = Specific
|
|
251
|
+
const handler = {} as typeof import("../../src/app/api/deepseek/credentials/route.js")
|
|
252
|
+
type __Check = __IsExpected<typeof handler>
|
|
253
|
+
// @ts-ignore
|
|
254
|
+
type __Unused = __Check
|
|
255
|
+
}
|
|
256
|
+
|
|
248
257
|
// Validate ../../src/app/api/dev/spans/route.ts
|
|
249
258
|
{
|
|
250
259
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/dev/spans">> = Specific
|
|
@@ -695,6 +704,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
695
704
|
type __Unused = __Check
|
|
696
705
|
}
|
|
697
706
|
|
|
707
|
+
// Validate ../../src/app/api/ollama/config/route.ts
|
|
708
|
+
{
|
|
709
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/ollama/config">> = Specific
|
|
710
|
+
const handler = {} as typeof import("../../src/app/api/ollama/config/route.js")
|
|
711
|
+
type __Check = __IsExpected<typeof handler>
|
|
712
|
+
// @ts-ignore
|
|
713
|
+
type __Unused = __Check
|
|
714
|
+
}
|
|
715
|
+
|
|
698
716
|
// Validate ../../src/app/api/ollama/models/route.ts
|
|
699
717
|
{
|
|
700
718
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/ollama/models">> = Specific
|
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
readJsonFile,
|
|
11
11
|
withFileLock,
|
|
12
12
|
writeJsonFile
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-BFESJMNO.mjs";
|
|
14
14
|
|
|
15
15
|
// packages/feature/agent/src/server/state/globalState.ts
|
|
16
|
-
import { createReadStream, existsSync } from "fs";
|
|
16
|
+
import { createReadStream, existsSync, statSync } from "fs";
|
|
17
17
|
import { createInterface } from "readline";
|
|
18
18
|
import { basename } from "path";
|
|
19
19
|
|
|
@@ -254,28 +254,66 @@ async function getLastUserMessage(cwd, sessionId) {
|
|
|
254
254
|
var SUMMARY_THRESHOLD = 10;
|
|
255
255
|
var SUMMARY_HEAD = 5;
|
|
256
256
|
var SUMMARY_TAIL = 5;
|
|
257
|
-
|
|
257
|
+
var UNTITLED_SESSION = "Untitled Session";
|
|
258
|
+
function resolveSessionFile(cwd, sessionId) {
|
|
258
259
|
const claudePath = getClaudeSessionPath(cwd, sessionId);
|
|
259
|
-
if (existsSync(claudePath)) return getClaudeStyleContent
|
|
260
|
+
if (existsSync(claudePath)) return { path: claudePath, read: getClaudeStyleContent };
|
|
260
261
|
const claude2Path = getClaude2SessionPath(cwd, sessionId);
|
|
261
|
-
if (existsSync(claude2Path)) return getClaudeStyleContent
|
|
262
|
+
if (existsSync(claude2Path)) return { path: claude2Path, read: getClaudeStyleContent };
|
|
262
263
|
const ollamaPath = getOllamaSessionPath(cwd, sessionId);
|
|
263
|
-
if (existsSync(ollamaPath)) return getClaudeStyleContent
|
|
264
|
+
if (existsSync(ollamaPath)) return { path: ollamaPath, read: getClaudeStyleContent };
|
|
264
265
|
const codexPath = findCodexSessionPath(sessionId);
|
|
265
266
|
if (codexPath && existsSync(codexPath)) {
|
|
266
|
-
return {
|
|
267
|
+
return {
|
|
268
|
+
path: codexPath,
|
|
269
|
+
read: async (p) => ({ aiTitle: "", summary: "", messages: await getCodexUserMessages(p) })
|
|
270
|
+
};
|
|
267
271
|
}
|
|
268
272
|
const kimiPath = findKimiSessionPath(sessionId);
|
|
269
273
|
if (kimiPath && existsSync(kimiPath)) {
|
|
270
|
-
return {
|
|
274
|
+
return {
|
|
275
|
+
path: kimiPath,
|
|
276
|
+
read: async (p) => ({ aiTitle: "", summary: "", messages: await getKimiUserMessages(p) })
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
return null;
|
|
280
|
+
}
|
|
281
|
+
var CONTENT_CACHE_MAX = 40;
|
|
282
|
+
var contentCache = /* @__PURE__ */ new Map();
|
|
283
|
+
function fileFingerprint(filePath) {
|
|
284
|
+
const st = statSync(filePath);
|
|
285
|
+
return `${st.mtimeMs}-${st.size}`;
|
|
286
|
+
}
|
|
287
|
+
async function getSessionContent(cwd, sessionId) {
|
|
288
|
+
const resolved = resolveSessionFile(cwd, sessionId);
|
|
289
|
+
if (!resolved) return { aiTitle: "", summary: "", messages: [] };
|
|
290
|
+
let fingerprint = "";
|
|
291
|
+
try {
|
|
292
|
+
fingerprint = fileFingerprint(resolved.path);
|
|
293
|
+
const cached = contentCache.get(resolved.path);
|
|
294
|
+
if (cached && cached.fingerprint === fingerprint) {
|
|
295
|
+
contentCache.delete(resolved.path);
|
|
296
|
+
contentCache.set(resolved.path, cached);
|
|
297
|
+
return cached.content;
|
|
298
|
+
}
|
|
299
|
+
} catch {
|
|
271
300
|
}
|
|
272
|
-
|
|
301
|
+
const content = await resolved.read(resolved.path);
|
|
302
|
+
if (fingerprint) {
|
|
303
|
+
contentCache.delete(resolved.path);
|
|
304
|
+
contentCache.set(resolved.path, { fingerprint, content });
|
|
305
|
+
if (contentCache.size > CONTENT_CACHE_MAX) {
|
|
306
|
+
const oldest = contentCache.keys().next().value;
|
|
307
|
+
if (oldest !== void 0) contentCache.delete(oldest);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
return content;
|
|
273
311
|
}
|
|
274
|
-
async function getSessionPreview(cwd, sessionId) {
|
|
312
|
+
async function getSessionPreview(cwd, sessionId, opts) {
|
|
275
313
|
const { aiTitle, summary, messages } = await getSessionContent(cwd, sessionId);
|
|
276
314
|
const title = generateTitle(aiTitle, summary, messages);
|
|
277
315
|
const lastUserMessage = messages[messages.length - 1];
|
|
278
|
-
const searchText = [summary, ...messages].join("\n").toLowerCase();
|
|
316
|
+
const searchText = opts?.includeSearchText ? [summary, ...messages].join("\n").toLowerCase() : "";
|
|
279
317
|
if (messages.length <= SUMMARY_THRESHOLD) {
|
|
280
318
|
return { title, lastUserMessage, firstMessages: messages.map((m) => truncate(m)), lastMessages: [], searchText };
|
|
281
319
|
}
|
|
@@ -304,6 +342,13 @@ async function getGlobalSessionsSnapshot(limit = 15) {
|
|
|
304
342
|
const preview = await getSessionPreview(session.cwd, session.sessionId);
|
|
305
343
|
return {
|
|
306
344
|
...session,
|
|
345
|
+
// Re-derive the title from disk on every read (aiTitle > summary >
|
|
346
|
+
// first message) instead of trusting the value persisted in
|
|
347
|
+
// state.json — that snapshot is only refreshed when a run finishes,
|
|
348
|
+
// so it goes stale whenever the aiTitle lands after completion.
|
|
349
|
+
// Fall back to the persisted title only when the transcript is gone
|
|
350
|
+
// (preview degrades to UNTITLED_SESSION). Mirrors /api/global-state.
|
|
351
|
+
title: preview.title !== UNTITLED_SESSION ? preview.title : session.title ?? preview.title,
|
|
307
352
|
lastUserMessage: preview.lastUserMessage ?? session.lastUserMessage,
|
|
308
353
|
firstMessages: preview.firstMessages,
|
|
309
354
|
lastMessages: preview.lastMessages
|
|
@@ -326,6 +371,20 @@ function isValidUserMessage(text) {
|
|
|
326
371
|
if (!text.trim()) return false;
|
|
327
372
|
return true;
|
|
328
373
|
}
|
|
374
|
+
var SNAPSHOT_TYPE_MARKERS = [
|
|
375
|
+
'"type":"user"',
|
|
376
|
+
'"type": "user"',
|
|
377
|
+
'"type":"summary"',
|
|
378
|
+
'"type": "summary"',
|
|
379
|
+
'"type":"ai-title"',
|
|
380
|
+
'"type": "ai-title"'
|
|
381
|
+
];
|
|
382
|
+
function isSnapshotRelevantLine(line) {
|
|
383
|
+
for (const marker of SNAPSHOT_TYPE_MARKERS) {
|
|
384
|
+
if (line.includes(marker)) return true;
|
|
385
|
+
}
|
|
386
|
+
return false;
|
|
387
|
+
}
|
|
329
388
|
async function getClaudeStyleTitle(filePath) {
|
|
330
389
|
try {
|
|
331
390
|
const fileStream = createReadStream(filePath);
|
|
@@ -335,6 +394,7 @@ async function getClaudeStyleTitle(filePath) {
|
|
|
335
394
|
const userMessages = [];
|
|
336
395
|
for await (const line of rl) {
|
|
337
396
|
if (!line.trim()) continue;
|
|
397
|
+
if (!isSnapshotRelevantLine(line)) continue;
|
|
338
398
|
try {
|
|
339
399
|
const entry = JSON.parse(line);
|
|
340
400
|
if (entry.type === "ai-title" && entry.aiTitle) {
|
|
@@ -369,6 +429,7 @@ async function getClaudeStyleUserMessages(filePath) {
|
|
|
369
429
|
const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
|
|
370
430
|
for await (const line of rl) {
|
|
371
431
|
if (!line.trim()) continue;
|
|
432
|
+
if (!isSnapshotRelevantLine(line)) continue;
|
|
372
433
|
try {
|
|
373
434
|
const entry = JSON.parse(line);
|
|
374
435
|
if (entry.type !== "user") continue;
|
|
@@ -406,6 +467,7 @@ async function getClaudeStyleContent(filePath) {
|
|
|
406
467
|
const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
|
|
407
468
|
for await (const line of rl) {
|
|
408
469
|
if (!line.trim()) continue;
|
|
470
|
+
if (!isSnapshotRelevantLine(line)) continue;
|
|
409
471
|
try {
|
|
410
472
|
const entry = JSON.parse(line);
|
|
411
473
|
if (entry.type === "ai-title" && entry.aiTitle) {
|
|
@@ -28644,6 +28644,9 @@ var CLAUDE2_DIR = join4(HOME_DIR, ".claude2");
|
|
|
28644
28644
|
var CLAUDE2_PROJECTS_DIR = join4(CLAUDE2_DIR, "projects");
|
|
28645
28645
|
var DEEPSEEK_DIR = join4(COCKPIT_DIR, "deepseek");
|
|
28646
28646
|
var DEEPSEEK_PROJECTS_DIR = join4(DEEPSEEK_DIR, "projects");
|
|
28647
|
+
var DEEPSEEK_CREDENTIALS_FILE = join4(DEEPSEEK_DIR, "credentials.json");
|
|
28648
|
+
var OLLAMA_DIR = join4(COCKPIT_DIR, "ollama");
|
|
28649
|
+
var OLLAMA_CONFIG_FILE = join4(OLLAMA_DIR, "config.json");
|
|
28647
28650
|
function encodePath(path) {
|
|
28648
28651
|
return path.replace(/[/.]/g, "-");
|
|
28649
28652
|
}
|
|
@@ -29008,6 +29011,9 @@ var snapshotRepoTtlDaysConfig = Config_exports.integer(
|
|
|
29008
29011
|
var snapshotMaxFileKbConfig = Config_exports.integer(
|
|
29009
29012
|
"COCKPIT_SNAPSHOT_MAX_FILE_KB"
|
|
29010
29013
|
).pipe(Config_exports.withDefault(2048));
|
|
29014
|
+
var sessionKeepDaysConfig = Config_exports.integer("COCKPIT_SESSION_KEEP_DAYS").pipe(
|
|
29015
|
+
Config_exports.withDefault(30)
|
|
29016
|
+
);
|
|
29011
29017
|
var CockpitConfig = Effect_exports.gen(
|
|
29012
29018
|
function* () {
|
|
29013
29019
|
const env = yield* envConfig;
|
|
@@ -29019,6 +29025,7 @@ var CockpitConfig = Effect_exports.gen(
|
|
|
29019
29025
|
const snapshotKeepDays = yield* snapshotKeepDaysConfig;
|
|
29020
29026
|
const snapshotRepoTtlDays = yield* snapshotRepoTtlDaysConfig;
|
|
29021
29027
|
const snapshotMaxFileKb = yield* snapshotMaxFileKbConfig;
|
|
29028
|
+
const sessionKeepDays = yield* sessionKeepDaysConfig;
|
|
29022
29029
|
const cockpitDir = yield* Effect_exports.sync(() => {
|
|
29023
29030
|
const env2 = typeof process !== "undefined" ? process.env : void 0;
|
|
29024
29031
|
const home = env2?.HOME || env2?.USERPROFILE || ".";
|
|
@@ -29039,7 +29046,8 @@ var CockpitConfig = Effect_exports.gen(
|
|
|
29039
29046
|
logFile,
|
|
29040
29047
|
snapshotKeepDays,
|
|
29041
29048
|
snapshotRepoTtlDays,
|
|
29042
|
-
snapshotMaxFileKb
|
|
29049
|
+
snapshotMaxFileKb,
|
|
29050
|
+
sessionKeepDays
|
|
29043
29051
|
};
|
|
29044
29052
|
}
|
|
29045
29053
|
).pipe(Effect_exports.orDie);
|
|
@@ -29749,12 +29757,20 @@ import { createOpenAI } from "@ai-sdk/openai";
|
|
|
29749
29757
|
|
|
29750
29758
|
// packages/shared/utils/src/ollamaEnv.ts
|
|
29751
29759
|
var DEFAULT_BASE = "http://127.0.0.1:11434";
|
|
29752
|
-
|
|
29753
|
-
|
|
29760
|
+
var DEFAULT_API_KEY = "ollama";
|
|
29761
|
+
function normalizeBase(raw) {
|
|
29754
29762
|
return raw.replace(/\/v1\/?$/, "").replace(/\/+$/, "");
|
|
29755
29763
|
}
|
|
29756
|
-
function
|
|
29757
|
-
return
|
|
29764
|
+
async function readOllamaStoredConfig() {
|
|
29765
|
+
return readJsonFile(OLLAMA_CONFIG_FILE, {});
|
|
29766
|
+
}
|
|
29767
|
+
async function resolveOllamaConnection() {
|
|
29768
|
+
const cfg = await readOllamaStoredConfig();
|
|
29769
|
+
const baseUrl = normalizeBase(
|
|
29770
|
+
cfg.baseUrl?.trim() || process.env.OLLAMA_BASE_URL || DEFAULT_BASE
|
|
29771
|
+
);
|
|
29772
|
+
const apiKey = cfg.apiKey?.trim() || process.env.OLLAMA_API_KEY || DEFAULT_API_KEY;
|
|
29773
|
+
return { baseUrl, apiKey };
|
|
29758
29774
|
}
|
|
29759
29775
|
|
|
29760
29776
|
// packages/feature/agent/src/server/engines/ollama/model.ts
|
|
@@ -29777,13 +29793,11 @@ var ollamaFetch = async (input, init) => {
|
|
|
29777
29793
|
}
|
|
29778
29794
|
return fetch(input, init);
|
|
29779
29795
|
};
|
|
29780
|
-
function createOllamaModel(modelName) {
|
|
29796
|
+
async function createOllamaModel(modelName) {
|
|
29797
|
+
const { baseUrl, apiKey } = await resolveOllamaConnection();
|
|
29781
29798
|
const provider = createOpenAI({
|
|
29782
|
-
|
|
29783
|
-
|
|
29784
|
-
// cockpit configuration with third-party authentication).
|
|
29785
|
-
apiKey: process.env.OLLAMA_API_KEY || "ollama",
|
|
29786
|
-
baseURL: getOllamaOpenAIBaseURL(),
|
|
29799
|
+
apiKey,
|
|
29800
|
+
baseURL: `${baseUrl}/v1/`,
|
|
29787
29801
|
fetch: ollamaFetch
|
|
29788
29802
|
});
|
|
29789
29803
|
return provider.chat(modelName);
|
|
@@ -29811,7 +29825,7 @@ var ollamaStream = (req) => Stream_exports.async((emit2) => {
|
|
|
29811
29825
|
const abortController = new AbortController();
|
|
29812
29826
|
void (async () => {
|
|
29813
29827
|
try {
|
|
29814
|
-
const ollamaModel = createOllamaModel(req.model);
|
|
29828
|
+
const ollamaModel = await createOllamaModel(req.model);
|
|
29815
29829
|
const result = streamText({
|
|
29816
29830
|
model: ollamaModel,
|
|
29817
29831
|
messages: toModelMessages(req.messages),
|
|
@@ -30011,7 +30025,7 @@ var runGitOk = (repoDir, workTree, args2, input) => runGit(repoDir, workTree, ar
|
|
|
30011
30025
|
);
|
|
30012
30026
|
var SYMLINK_PATHSPEC_RE = /beyond a symbolic link/;
|
|
30013
30027
|
var stageAdds = (repoDir, cwd, paths) => Effect_exports.gen(function* () {
|
|
30014
|
-
const addArgs = ["add", "-A", "--pathspec-from-file=-", "--pathspec-file-nul"];
|
|
30028
|
+
const addArgs = ["add", "-A", "--force", "--pathspec-from-file=-", "--pathspec-file-nul"];
|
|
30015
30029
|
const batch = yield* runGit(repoDir, cwd, addArgs, paths.map((p) => `:(literal)${p}`).join("\0"));
|
|
30016
30030
|
if (batch.code === 0) return;
|
|
30017
30031
|
if (!SYMLINK_PATHSPEC_RE.test(batch.stderr)) {
|
|
@@ -30172,6 +30186,10 @@ var snapshotOnce = (snapshotsRoot, maxFileBytes, trigger, kind) => Effect_export
|
|
|
30172
30186
|
return skip;
|
|
30173
30187
|
});
|
|
30174
30188
|
const stageOnce = Effect_exports.gen(function* () {
|
|
30189
|
+
const headOk = yield* runGit(repoDir, cwd, ["rev-parse", "--quiet", "--verify", "HEAD"]);
|
|
30190
|
+
if (headOk.code === 0) {
|
|
30191
|
+
yield* runGitOk(repoDir, cwd, ["read-tree", "HEAD"]);
|
|
30192
|
+
}
|
|
30175
30193
|
const status3 = yield* runGitOk(repoDir, cwd, [
|
|
30176
30194
|
"status",
|
|
30177
30195
|
"--porcelain",
|
|
@@ -30190,14 +30208,17 @@ var snapshotOnce = (snapshotsRoot, maxFileBytes, trigger, kind) => Effect_export
|
|
|
30190
30208
|
for (const e of entries2) {
|
|
30191
30209
|
const path = e.slice(3);
|
|
30192
30210
|
if (!path) continue;
|
|
30193
|
-
if (e[1] === "D") rmPaths.push(path);
|
|
30211
|
+
if (e[0] === "D" || e[1] === "D") rmPaths.push(path);
|
|
30194
30212
|
else addPaths.push(path);
|
|
30195
30213
|
}
|
|
30196
30214
|
const sizes = yield* Effect_exports.all(
|
|
30197
30215
|
addPaths.map(
|
|
30198
30216
|
(p) => fsTry("stat", () => stat(join5(cwd, p)).then((s) => s.isFile() ? s.size : 0)).pipe(
|
|
30199
|
-
//
|
|
30200
|
-
|
|
30217
|
+
// Path gone between status and stat (concurrent session/build) or
|
|
30218
|
+
// unreadable → -1, excluded below so a vanished path never reaches
|
|
30219
|
+
// `git add`, which would abort the whole batch with "pathspec did
|
|
30220
|
+
// not match any files".
|
|
30221
|
+
Effect_exports.orElseSucceed(() => -1)
|
|
30201
30222
|
)
|
|
30202
30223
|
),
|
|
30203
30224
|
{ concurrency: 16 }
|
|
@@ -30205,6 +30226,7 @@ var snapshotOnce = (snapshotsRoot, maxFileBytes, trigger, kind) => Effect_export
|
|
|
30205
30226
|
const includedAdds = [];
|
|
30206
30227
|
let totalBytes = 0;
|
|
30207
30228
|
for (let i = 0; i < addPaths.length; i++) {
|
|
30229
|
+
if (sizes[i] < 0) continue;
|
|
30208
30230
|
if (sizes[i] > maxFileBytes) continue;
|
|
30209
30231
|
includedAdds.push(addPaths[i]);
|
|
30210
30232
|
totalBytes += sizes[i];
|
|
@@ -30502,6 +30524,124 @@ var SnapshotServiceLive = Layer_exports.scoped(
|
|
|
30502
30524
|
})
|
|
30503
30525
|
);
|
|
30504
30526
|
|
|
30527
|
+
// packages/feature/agent/src/effect/sessionCleanupLive.ts
|
|
30528
|
+
import { readdir as readdir2, readFile as readFile3, rm as rm2, rmdir, stat as stat2 } from "fs/promises";
|
|
30529
|
+
import { join as join6 } from "path";
|
|
30530
|
+
var DAY_MS = 24 * 3600 * 1e3;
|
|
30531
|
+
var fsTry2 = (op, fn2) => Effect_exports.tryPromise({
|
|
30532
|
+
try: fn2,
|
|
30533
|
+
catch: (cause3) => new AppError({ message: `session cleanup fs ${op} failed`, cause: cause3 })
|
|
30534
|
+
});
|
|
30535
|
+
var isDirectory = (p) => fsTry2("stat", () => stat2(p).then((s) => s.isDirectory())).pipe(
|
|
30536
|
+
Effect_exports.orElseSucceed(() => false)
|
|
30537
|
+
);
|
|
30538
|
+
var loadPinnedIds = (pinnedFile) => Effect_exports.tryPromise({
|
|
30539
|
+
try: async () => {
|
|
30540
|
+
let raw;
|
|
30541
|
+
try {
|
|
30542
|
+
raw = await readFile3(pinnedFile, "utf8");
|
|
30543
|
+
} catch (e) {
|
|
30544
|
+
if (e?.code === "ENOENT") {
|
|
30545
|
+
return { ok: true, ids: /* @__PURE__ */ new Set() };
|
|
30546
|
+
}
|
|
30547
|
+
throw e;
|
|
30548
|
+
}
|
|
30549
|
+
const parsed = JSON.parse(raw);
|
|
30550
|
+
const ids3 = /* @__PURE__ */ new Set();
|
|
30551
|
+
for (const p of Array.isArray(parsed) ? parsed : []) {
|
|
30552
|
+
if (p && typeof p.sessionId === "string") ids3.add(p.sessionId);
|
|
30553
|
+
}
|
|
30554
|
+
return { ok: true, ids: ids3 };
|
|
30555
|
+
},
|
|
30556
|
+
catch: () => null
|
|
30557
|
+
}).pipe(Effect_exports.orElseSucceed(() => ({ ok: false })));
|
|
30558
|
+
var cleanupSessions = (root, keepDays, pinnedFile) => Effect_exports.gen(function* () {
|
|
30559
|
+
const pins = yield* loadPinnedIds(pinnedFile);
|
|
30560
|
+
if (!pins.ok) {
|
|
30561
|
+
yield* Effect_exports.logWarning(
|
|
30562
|
+
"session cleanup: pinned-sessions.json is unreadable/corrupt -- skipping this pass (refusing to risk deleting protected sessions)"
|
|
30563
|
+
);
|
|
30564
|
+
return;
|
|
30565
|
+
}
|
|
30566
|
+
const cutoff = Date.now() - keepDays * DAY_MS;
|
|
30567
|
+
const cwdDirs = yield* fsTry2("readdir root", () => readdir2(root)).pipe(
|
|
30568
|
+
Effect_exports.orElseSucceed(() => [])
|
|
30569
|
+
);
|
|
30570
|
+
for (const cwdName of cwdDirs) {
|
|
30571
|
+
const cwdDir = join6(root, cwdName);
|
|
30572
|
+
if (!(yield* isDirectory(cwdDir))) continue;
|
|
30573
|
+
const entries2 = yield* fsTry2("readdir cwd", () => readdir2(cwdDir)).pipe(
|
|
30574
|
+
Effect_exports.orElseSucceed(() => [])
|
|
30575
|
+
);
|
|
30576
|
+
const sessions = /* @__PURE__ */ new Map();
|
|
30577
|
+
for (const name of entries2) {
|
|
30578
|
+
const full = join6(cwdDir, name);
|
|
30579
|
+
if (name.endsWith(".jsonl")) {
|
|
30580
|
+
const stem = name.slice(0, -".jsonl".length);
|
|
30581
|
+
const s = sessions.get(stem) ?? {};
|
|
30582
|
+
s.jsonl = full;
|
|
30583
|
+
sessions.set(stem, s);
|
|
30584
|
+
} else if (yield* isDirectory(full)) {
|
|
30585
|
+
const s = sessions.get(name) ?? {};
|
|
30586
|
+
s.subdir = full;
|
|
30587
|
+
sessions.set(name, s);
|
|
30588
|
+
}
|
|
30589
|
+
}
|
|
30590
|
+
for (const [stem, s] of sessions) {
|
|
30591
|
+
if (pins.ids.has(stem)) continue;
|
|
30592
|
+
const basis = s.jsonl ?? s.subdir;
|
|
30593
|
+
if (!basis) continue;
|
|
30594
|
+
const mtime = yield* fsTry2(
|
|
30595
|
+
"stat basis",
|
|
30596
|
+
() => stat2(basis).then((st) => st.mtimeMs)
|
|
30597
|
+
).pipe(Effect_exports.orElseSucceed(() => Number.POSITIVE_INFINITY));
|
|
30598
|
+
if (mtime >= cutoff) continue;
|
|
30599
|
+
if (s.jsonl) {
|
|
30600
|
+
yield* fsTry2("rm jsonl", () => rm2(s.jsonl, { force: true })).pipe(
|
|
30601
|
+
Effect_exports.orElseSucceed(() => void 0)
|
|
30602
|
+
);
|
|
30603
|
+
}
|
|
30604
|
+
if (s.subdir) {
|
|
30605
|
+
yield* fsTry2(
|
|
30606
|
+
"rm subdir",
|
|
30607
|
+
() => rm2(s.subdir, { recursive: true, force: true })
|
|
30608
|
+
).pipe(Effect_exports.orElseSucceed(() => void 0));
|
|
30609
|
+
}
|
|
30610
|
+
yield* Effect_exports.logInfo(
|
|
30611
|
+
`session cleanup: removed ollama session ${stem} under ${cwdName} (older than ${keepDays}d)`
|
|
30612
|
+
);
|
|
30613
|
+
}
|
|
30614
|
+
const rest = yield* fsTry2("readdir cwd (recount)", () => readdir2(cwdDir)).pipe(
|
|
30615
|
+
Effect_exports.orElseSucceed(() => ["keep"])
|
|
30616
|
+
);
|
|
30617
|
+
if (rest.length === 0) {
|
|
30618
|
+
yield* fsTry2("rmdir cwd", () => rmdir(cwdDir)).pipe(
|
|
30619
|
+
Effect_exports.orElseSucceed(() => void 0)
|
|
30620
|
+
);
|
|
30621
|
+
}
|
|
30622
|
+
}
|
|
30623
|
+
}).pipe(Effect_exports.withSpan("session.cleanup"));
|
|
30624
|
+
var SessionCleanupService = Context_exports.GenericTag(
|
|
30625
|
+
"@cockpit/SessionCleanupService"
|
|
30626
|
+
);
|
|
30627
|
+
var SessionCleanupLive = Layer_exports.scoped(
|
|
30628
|
+
SessionCleanupService,
|
|
30629
|
+
Effect_exports.gen(function* () {
|
|
30630
|
+
const cfg = yield* CockpitConfig;
|
|
30631
|
+
const root = join6(cfg.cockpitDir, "ollama-sessions");
|
|
30632
|
+
const pinnedFile = join6(cfg.cockpitDir, "pinned-sessions.json");
|
|
30633
|
+
const keepDays = Math.max(1, cfg.sessionKeepDays);
|
|
30634
|
+
const cleanup = cleanupSessions(root, keepDays, pinnedFile);
|
|
30635
|
+
yield* Effect_exports.forkScoped(
|
|
30636
|
+
cleanup.pipe(
|
|
30637
|
+
Effect_exports.catchAll((e) => Effect_exports.logWarning(`session cleanup failed: ${e.message}`)),
|
|
30638
|
+
Effect_exports.repeat(Schedule_exports.spaced("24 hours"))
|
|
30639
|
+
)
|
|
30640
|
+
);
|
|
30641
|
+
return SessionCleanupService.of({ cleanup });
|
|
30642
|
+
})
|
|
30643
|
+
);
|
|
30644
|
+
|
|
30505
30645
|
// packages/shared/effect-runtime/src/server/runtime.ts
|
|
30506
30646
|
var isDev = process.env.COCKPIT_ENV === "dev";
|
|
30507
30647
|
var ServerBaseLayer = Layer_exports.unwrapEffect(
|
|
@@ -30525,7 +30665,9 @@ var AppLayer = Layer_exports.mergeAll(
|
|
|
30525
30665
|
// Agent
|
|
30526
30666
|
AgentServiceLive,
|
|
30527
30667
|
// Tool-call snapshots (shadow git)
|
|
30528
|
-
SnapshotServiceLive
|
|
30668
|
+
SnapshotServiceLive,
|
|
30669
|
+
// Ollama session transcript retention (daily sweep)
|
|
30670
|
+
SessionCleanupLive
|
|
30529
30671
|
);
|
|
30530
30672
|
var AppRuntime = ManagedRuntime_exports.make(AppLayer);
|
|
30531
30673
|
|
|
@@ -30559,6 +30701,7 @@ export {
|
|
|
30559
30701
|
REVIEW_SIGNAL_FILE,
|
|
30560
30702
|
CLAUDE2_DIR,
|
|
30561
30703
|
DEEPSEEK_DIR,
|
|
30704
|
+
DEEPSEEK_CREDENTIALS_FILE,
|
|
30562
30705
|
encodePath,
|
|
30563
30706
|
getTerminalHistoryPath,
|
|
30564
30707
|
getTerminalOutputPath,
|
package/dist/httpApi.mjs
CHANGED
|
@@ -22,10 +22,10 @@ import {
|
|
|
22
22
|
unregisterBrowser,
|
|
23
23
|
unregisterTerminal,
|
|
24
24
|
writeStdinToCommand
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-FMJUH423.mjs";
|
|
26
26
|
import {
|
|
27
27
|
getTerminalHistoryPath
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-BFESJMNO.mjs";
|
|
29
29
|
import "./chunk-7P6ASYW6.mjs";
|
|
30
30
|
|
|
31
31
|
// src/lib/httpApi.ts
|
package/dist/scheduledTasks.mjs
CHANGED
|
@@ -10,12 +10,13 @@ import {
|
|
|
10
10
|
setRunAbort,
|
|
11
11
|
startRun,
|
|
12
12
|
updateGlobalState
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-3X4GQZL4.mjs";
|
|
14
14
|
import {
|
|
15
15
|
AgentError,
|
|
16
16
|
AppRuntime,
|
|
17
17
|
CLAUDE2_DIR,
|
|
18
18
|
COCKPIT_DIR,
|
|
19
|
+
DEEPSEEK_CREDENTIALS_FILE,
|
|
19
20
|
DEEPSEEK_DIR,
|
|
20
21
|
Effect_exports,
|
|
21
22
|
SCHEDULED_TASKS_FILE,
|
|
@@ -36,7 +37,7 @@ import {
|
|
|
36
37
|
settlePendingRecord,
|
|
37
38
|
withFileLock,
|
|
38
39
|
writeJsonFile
|
|
39
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-BFESJMNO.mjs";
|
|
40
41
|
import {
|
|
41
42
|
__export
|
|
42
43
|
} from "./chunk-7P6ASYW6.mjs";
|
|
@@ -2658,6 +2659,12 @@ var claudeSpec = {
|
|
|
2658
2659
|
}
|
|
2659
2660
|
};
|
|
2660
2661
|
|
|
2662
|
+
// packages/feature/agent/src/server/engines/deepseekCredentials.ts
|
|
2663
|
+
async function readDeepseekApiKey() {
|
|
2664
|
+
const creds = await readJsonFile(DEEPSEEK_CREDENTIALS_FILE, {});
|
|
2665
|
+
return creds.apiKey?.trim() ?? "";
|
|
2666
|
+
}
|
|
2667
|
+
|
|
2661
2668
|
// packages/feature/agent/src/server/engines/deepseek.ts
|
|
2662
2669
|
var DEEPSEEK_BASE_URL = "https://api.deepseek.com/anthropic";
|
|
2663
2670
|
var DEFAULT_MODEL = "deepseek-v4-pro";
|
|
@@ -2707,7 +2714,7 @@ var deepseekSpec = {
|
|
|
2707
2714
|
// Pre-check BEFORE startRun: API key must exist; resolve model into params (no registry pollution).
|
|
2708
2715
|
async preflight(params) {
|
|
2709
2716
|
const settings = await readSettings();
|
|
2710
|
-
const apiKey =
|
|
2717
|
+
const apiKey = await readDeepseekApiKey();
|
|
2711
2718
|
if (!apiKey) {
|
|
2712
2719
|
return {
|
|
2713
2720
|
ok: false,
|
|
@@ -2720,8 +2727,7 @@ var deepseekSpec = {
|
|
|
2720
2727
|
},
|
|
2721
2728
|
runner: {
|
|
2722
2729
|
async run(ctx) {
|
|
2723
|
-
const
|
|
2724
|
-
const apiKey = settings.engines?.deepseek?.apiKey?.trim() ?? "";
|
|
2730
|
+
const apiKey = await readDeepseekApiKey();
|
|
2725
2731
|
const model = typeof ctx.params.model === "string" ? ctx.params.model : DEFAULT_MODEL;
|
|
2726
2732
|
const env = buildDeepseekEnv(apiKey, model);
|
|
2727
2733
|
await runSdkLoop(ctx, buildDeepseekOptions(ctx, env));
|
|
@@ -17153,8 +17159,9 @@ var ollamaSpec = {
|
|
|
17153
17159
|
|
|
17154
17160
|
`);
|
|
17155
17161
|
const context = { cwd, todos: [] };
|
|
17162
|
+
const languageModel = await createOllamaModel(model);
|
|
17156
17163
|
const result = streamText({
|
|
17157
|
-
model:
|
|
17164
|
+
model: languageModel,
|
|
17158
17165
|
system: buildSystemPrompt(cwd),
|
|
17159
17166
|
messages,
|
|
17160
17167
|
tools: createTools(context),
|
|
@@ -45,12 +45,12 @@ import {
|
|
|
45
45
|
unregisterTerminal,
|
|
46
46
|
updateBrowserWs,
|
|
47
47
|
writeStdinToCommand
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-FMJUH423.mjs";
|
|
49
49
|
import {
|
|
50
50
|
createNeo4jDriver,
|
|
51
51
|
runCypherWithDriver,
|
|
52
52
|
serializeValue
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-BFESJMNO.mjs";
|
|
54
54
|
import "./chunk-7P6ASYW6.mjs";
|
|
55
55
|
export {
|
|
56
56
|
INTERRUPTED_EXIT_CODE,
|
package/dist/wsServer.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
addRunListener,
|
|
3
3
|
getGlobalSessionsSnapshot,
|
|
4
4
|
getRunSnapshot
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-3X4GQZL4.mjs";
|
|
6
6
|
import {
|
|
7
7
|
addExitListener,
|
|
8
8
|
addOutputListener,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
resolvePendingRequest,
|
|
19
19
|
unregisterBrowser,
|
|
20
20
|
writeStdinToCommand
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-FMJUH423.mjs";
|
|
22
22
|
import {
|
|
23
23
|
AppError,
|
|
24
24
|
Effect_exports,
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
Stream_exports,
|
|
34
34
|
ValidationError,
|
|
35
35
|
WSError
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-BFESJMNO.mjs";
|
|
37
37
|
import "./chunk-7P6ASYW6.mjs";
|
|
38
38
|
|
|
39
39
|
// src/lib/wsServer.ts
|
|
@@ -665,7 +665,7 @@ var handleJupyter = (conn, bubbleId, cwd) => Effect_exports.gen(function* () {
|
|
|
665
665
|
Effect_exports.annotateLogs("cwd", cwd)
|
|
666
666
|
);
|
|
667
667
|
const { kernelManager } = yield* Effect_exports.tryPromise({
|
|
668
|
-
try: () => import("./server-
|
|
668
|
+
try: () => import("./server-HKW65PHP.mjs"),
|
|
669
669
|
catch: (cause) => new AppError({
|
|
670
670
|
message: "failed to import kernel manager",
|
|
671
671
|
cause
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@surething/cockpit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.244",
|
|
4
4
|
"description": "The open-source Claude Code GUI — an IDE-like workbench for parallel AI coding. Drive Claude (default), Codex, DeepSeek, Kimi, or local Ollama in tabs. Terminal, browser & DB bubbles, code review. Self-host on a shared dev box — a seat for every teammate. Local-first, MIT.",
|
|
5
5
|
"author": "Robert",
|
|
6
6
|
"license": "MIT",
|