@surething/cockpit 1.0.222 → 1.0.224
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 +8 -3
- package/.next-prod/build-manifest.json +2 -2
- package/.next-prod/prerender-manifest.json +3 -3
- package/.next-prod/required-server-files.js +2 -1
- package/.next-prod/required-server-files.json +2 -1
- package/.next-prod/routes-manifest.json +30 -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 +49 -1
- package/.next-prod/server/app/_not-found.rsc +65 -14
- package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +65 -14
- package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +53 -5
- 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 +16 -10
- package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js +3 -3
- package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/kimi/route.js +10 -10
- package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js +8 -8
- 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 +12 -12
- package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/stop/route.js +1 -0
- package/.next-prod/server/app/api/chat/stop/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/chat/stop/route_client-reference-manifest.js +1 -0
- 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 +2 -2
- 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 +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
- 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 +1 -1
- package/.next-prod/server/app/api/global-state/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 +2 -2
- 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 +1 -1
- 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/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/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 -1
- 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 -0
- package/.next-prod/server/app/api/push/public-key/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/push/public-key/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/push/subscribe/route.js +1 -0
- package/.next-prod/server/app/api/push/subscribe/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/push/subscribe/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/push/unsubscribe/route.js +1 -0
- package/.next-prod/server/app/api/push/unsubscribe/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/push/unsubscribe/route_client-reference-manifest.js +1 -0
- 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 +1 -1
- 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/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 -0
- package/.next-prod/server/app/m/page.js.nft.json +1 -0
- package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -0
- 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/manifest.webmanifest.body +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 +8 -3
- package/.next-prod/server/chunks/{383.js → 2637.js} +2 -2
- package/.next-prod/server/chunks/2939.js +1 -1
- package/.next-prod/server/chunks/{3408.js → 5337.js} +3 -3
- package/.next-prod/server/chunks/6955.js +1 -1
- package/.next-prod/server/chunks/7003.js +1 -0
- package/.next-prod/server/chunks/8916.js +1 -1
- package/.next-prod/server/chunks/9658.js +10 -8
- package/.next-prod/server/middleware-build-manifest.js +1 -1
- package/.next-prod/server/pages/404.html +49 -1
- package/.next-prod/server/pages/500.html +1 -1
- package/.next-prod/server/server-reference-manifest.json +1 -1
- package/.next-prod/static/cTq1mDm5D_oZLiumFG6di/_buildManifest.js +1 -0
- package/.next-prod/static/chunks/2032-6fcfaaa6aa730f6d.js +1 -0
- package/.next-prod/static/chunks/2576-fe33a1bae037bd9b.js +25 -0
- package/.next-prod/static/chunks/471-7c4fab47613ffe5c.js +4 -0
- package/.next-prod/static/chunks/5156-2953531342c13696.js +3 -0
- package/.next-prod/static/chunks/9428-5c287b255a9831e6.js +20 -0
- package/.next-prod/static/chunks/9469-fb5c6f08ba6bab74.js +14 -0
- package/.next-prod/static/chunks/app/_global-error/page-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/agent/test/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/bash/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/codex/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/kimi/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/ollama/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/pty-input/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/stop/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/claude-stats/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/commands/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/comments/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/db/columns/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/db/connect/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/db/disconnect/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/db/export/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/db/query/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/db/schemas/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/dev/spans/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/extension/version/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/file/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/blame/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/clipboard/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/copy/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/delete/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/expanded/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/index/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/init/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/paste/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/read/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/readdir/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/recent/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/save/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/search/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/stat/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/files/text/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branches/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commits/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/current-branch/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/diff/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/discard/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/stage/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/status/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/unstage/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/git/worktree/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/global-state/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/load/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/save/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/definition/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/hover/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/references/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/status/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/columns/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/connect/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/export/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/query/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/query/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/note/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/models/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/start/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/open-cursor/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/open-vscode/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/pick-folder/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/project-settings/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/project-state/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/projects/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/push/public-key/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/push/subscribe/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/command/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/connect/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/delete/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/get/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/keys/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/set/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/review/identify/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/review/order/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/review/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/review/share-info/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/review/users/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/services/config/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/services/scripts/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/session-by-path/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/settings/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/[id]/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/content/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/env/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/history/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/api/version/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/{layout-de73b7c59e956b47.js → layout-312d106fe47907df.js} +1 -1
- package/.next-prod/static/chunks/app/m/page-0be3799c1b38c991.js +1 -0
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/app/{page-d539c7c36a32fd49.js → page-db70085227aa56aa.js} +1 -1
- package/.next-prod/static/chunks/app/project/{page-d539c7c36a32fd49.js → page-db70085227aa56aa.js} +1 -1
- package/.next-prod/static/chunks/app/review/[id]/{page-7db3a48a13f1840c.js → page-31d70fd518d4c7e6.js} +1 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-cc849cd7b6f01cad.js +1 -0
- package/.next-prod/static/css/217cb3486f7b68d7.css +1 -0
- package/.next-prod/trace +13 -13
- package/.next-prod/trace-build +1 -1
- package/.next-prod/types/app/api/chat/stop/route.ts +351 -0
- package/.next-prod/types/app/api/push/public-key/route.ts +351 -0
- package/.next-prod/types/app/api/push/subscribe/route.ts +351 -0
- package/.next-prod/types/app/api/push/unsubscribe/route.ts +351 -0
- package/.next-prod/types/app/m/page.ts +87 -0
- package/.next-prod/types/routes.d.ts +7 -2
- package/.next-prod/types/validator.ts +45 -0
- package/dist/{chunk-6BFKFQG5.mjs → chunk-5BOGGUGT.mjs} +3 -1
- package/dist/{chunk-ICB7IS3A.mjs → chunk-BM3ZNL5S.mjs} +1 -1
- package/dist/{chunk-RQEEQUTA.mjs → chunk-SDWQ72YQ.mjs} +184 -117
- package/dist/httpApi.mjs +2 -2
- package/dist/scheduledTasks.mjs +34 -66
- package/dist/{server-Z6V4HKGV.mjs → server-DRMO2DUJ.mjs} +2 -2
- package/dist/wsServer.mjs +81 -10
- package/next.config.mjs +15 -0
- package/package.json +7 -2
- package/public/boot.js +32 -4
- package/public/push-sw.js +51 -0
- package/.next-prod/server/chunks/5616.js +0 -1
- package/.next-prod/static/-btylnafgKD-DMe4UTayG/_buildManifest.js +0 -1
- package/.next-prod/static/chunks/2759-50f11ab1460db5e0.js +0 -23
- package/.next-prod/static/chunks/6345-bf76736c9229b11d.js +0 -14
- package/.next-prod/static/chunks/9403-57da0d8d38886ffe.js +0 -25
- package/.next-prod/static/chunks/app/_global-error/page-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/agent/test/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/bash/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/codex/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/kimi/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/ollama/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/pty-input/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/claude-stats/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/commands/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/comments/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/db/columns/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/db/connect/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/db/disconnect/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/db/export/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/db/query/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/db/schemas/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/dev/spans/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/extension/version/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/file/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/blame/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/clipboard/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/copy/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/delete/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/expanded/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/index/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/init/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/paste/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/read/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/readdir/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/recent/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/save/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/search/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/stat/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/files/text/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branches/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commits/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/current-branch/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/diff/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/discard/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/stage/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/status/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/unstage/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/git/worktree/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/global-state/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/load/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/save/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/definition/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/hover/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/references/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/status/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/columns/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/connect/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/export/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/query/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/query/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/note/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/models/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/start/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/open-cursor/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/open-vscode/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/pick-folder/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/project-settings/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/project-state/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/projects/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/command/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/connect/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/delete/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/get/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/keys/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/set/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/review/identify/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/review/order/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/review/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/review/share-info/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/review/users/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/services/config/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/services/scripts/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/session-by-path/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/settings/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/[id]/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/content/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/env/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/history/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/api/version/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-0247c08c6f41b71e.js +0 -1
- package/.next-prod/static/css/863166ef8887021b.css +0 -1
- /package/.next-prod/static/{-btylnafgKD-DMe4UTayG → cTq1mDm5D_oZLiumFG6di}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// File: /home/runner/work/cockpit/cockpit/src/app/m/page.tsx
|
|
2
|
+
import * as entry from '../../../../src/app/m/page.js'
|
|
3
|
+
import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
|
|
4
|
+
|
|
5
|
+
import type { InstantConfigForTypeCheckInternal } from 'next/dist/build/segment-config/app/app-segment-config.js'
|
|
6
|
+
|
|
7
|
+
type TEntry = typeof import('../../../../src/app/m/page.js')
|
|
8
|
+
|
|
9
|
+
type SegmentParams<T extends Object = any> = T extends Record<string, any>
|
|
10
|
+
? { [K in keyof T]: T[K] extends string ? string | string[] | undefined : never }
|
|
11
|
+
: T
|
|
12
|
+
|
|
13
|
+
// Check that the entry is a valid entry
|
|
14
|
+
checkFields<Diff<{
|
|
15
|
+
default: Function
|
|
16
|
+
config?: {}
|
|
17
|
+
generateStaticParams?: Function
|
|
18
|
+
unstable_instant?: InstantConfigForTypeCheckInternal
|
|
19
|
+
unstable_dynamicStaleTime?: number
|
|
20
|
+
revalidate?: RevalidateRange<TEntry> | false
|
|
21
|
+
dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
|
|
22
|
+
dynamicParams?: boolean
|
|
23
|
+
fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
|
|
24
|
+
preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
|
|
25
|
+
runtime?: 'nodejs' | 'experimental-edge' | 'edge'
|
|
26
|
+
maxDuration?: number
|
|
27
|
+
|
|
28
|
+
metadata?: any
|
|
29
|
+
generateMetadata?: Function
|
|
30
|
+
viewport?: any
|
|
31
|
+
generateViewport?: Function
|
|
32
|
+
|
|
33
|
+
}, TEntry, ''>>()
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
// Check the prop type of the entry function
|
|
37
|
+
checkFields<Diff<PageProps, FirstArg<TEntry['default']>, 'default'>>()
|
|
38
|
+
|
|
39
|
+
// Check the arguments and return type of the generateMetadata function
|
|
40
|
+
if ('generateMetadata' in entry) {
|
|
41
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
42
|
+
checkFields<Diff<ResolvingMetadata, SecondArg<MaybeField<TEntry, 'generateMetadata'>>, 'generateMetadata'>>()
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Check the arguments and return type of the generateViewport function
|
|
46
|
+
if ('generateViewport' in entry) {
|
|
47
|
+
checkFields<Diff<PageProps, FirstArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
48
|
+
checkFields<Diff<ResolvingViewport, SecondArg<MaybeField<TEntry, 'generateViewport'>>, 'generateViewport'>>()
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Check the arguments and return type of the generateStaticParams function
|
|
52
|
+
if ('generateStaticParams' in entry) {
|
|
53
|
+
checkFields<Diff<{ params: SegmentParams }, FirstArg<MaybeField<TEntry, 'generateStaticParams'>>, 'generateStaticParams'>>()
|
|
54
|
+
checkFields<Diff<{ __tag__: 'generateStaticParams', __return_type__: any[] | Promise<any[]> }, { __tag__: 'generateStaticParams', __return_type__: ReturnType<MaybeField<TEntry, 'generateStaticParams'>> }>>()
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface PageProps {
|
|
58
|
+
params?: Promise<SegmentParams>
|
|
59
|
+
searchParams?: Promise<any>
|
|
60
|
+
}
|
|
61
|
+
export interface LayoutProps {
|
|
62
|
+
children?: React.ReactNode
|
|
63
|
+
|
|
64
|
+
params?: Promise<SegmentParams>
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// =============
|
|
68
|
+
// Utility types
|
|
69
|
+
type RevalidateRange<T> = T extends { revalidate: any } ? NonNegative<T['revalidate']> : never
|
|
70
|
+
|
|
71
|
+
// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit<T, keyof Base>.
|
|
72
|
+
type OmitWithTag<T, K extends keyof any, _M> = Omit<T, K>
|
|
73
|
+
type Diff<Base, T extends Base, Message extends string = ''> = 0 extends (1 & T) ? {} : OmitWithTag<T, keyof Base, Message>
|
|
74
|
+
|
|
75
|
+
type FirstArg<T extends Function> = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
|
|
76
|
+
type SecondArg<T extends Function> = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
|
|
77
|
+
type MaybeField<T, K extends string> = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
function checkFields<_ extends { [k in keyof any]: never }>() {}
|
|
82
|
+
|
|
83
|
+
// https://github.com/sindresorhus/type-fest
|
|
84
|
+
type Numeric = number | bigint
|
|
85
|
+
type Zero = 0 | 0n
|
|
86
|
+
type Negative<T extends Numeric> = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
|
|
87
|
+
type NonNegative<T extends Numeric> = T extends Zero ? T : Negative<T> extends never ? T : '__invalid_negative_number__'
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// This file is generated automatically by Next.js
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
|
-
type AppRoutes = "/" | "/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/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/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/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/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/terminal/aliases" | "/api/terminal/autocomplete" | "/api/terminal/bubble-order" | "/api/terminal/env" | "/api/terminal/history" | "/api/version"
|
|
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/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/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/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
|
|
@@ -20,6 +20,7 @@ interface ParamMap {
|
|
|
20
20
|
"/api/chat/kimi": {}
|
|
21
21
|
"/api/chat/ollama": {}
|
|
22
22
|
"/api/chat/pty-input": {}
|
|
23
|
+
"/api/chat/stop": {}
|
|
23
24
|
"/api/claude-stats": {}
|
|
24
25
|
"/api/commands": {}
|
|
25
26
|
"/api/comments": {}
|
|
@@ -98,6 +99,9 @@ interface ParamMap {
|
|
|
98
99
|
"/api/projectGraph/risk": {}
|
|
99
100
|
"/api/projectGraph/search": {}
|
|
100
101
|
"/api/projects": {}
|
|
102
|
+
"/api/push/public-key": {}
|
|
103
|
+
"/api/push/subscribe": {}
|
|
104
|
+
"/api/push/unsubscribe": {}
|
|
101
105
|
"/api/redis/command": {}
|
|
102
106
|
"/api/redis/connect": {}
|
|
103
107
|
"/api/redis/delete": {}
|
|
@@ -132,6 +136,7 @@ interface ParamMap {
|
|
|
132
136
|
"/api/terminal/env": {}
|
|
133
137
|
"/api/terminal/history": {}
|
|
134
138
|
"/api/version": {}
|
|
139
|
+
"/m": {}
|
|
135
140
|
"/project": {}
|
|
136
141
|
"/review/[id]": { "id": string; }
|
|
137
142
|
}
|
|
@@ -47,6 +47,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
|
|
50
|
+
// Validate ../../src/app/m/page.tsx
|
|
51
|
+
{
|
|
52
|
+
type __IsExpected<Specific extends AppPageConfig<"/m">> = Specific
|
|
53
|
+
const handler = {} as typeof import("../../src/app/m/page.js")
|
|
54
|
+
type __Check = __IsExpected<typeof handler>
|
|
55
|
+
// @ts-ignore
|
|
56
|
+
type __Unused = __Check
|
|
57
|
+
}
|
|
58
|
+
|
|
50
59
|
// Validate ../../src/app/page.tsx
|
|
51
60
|
{
|
|
52
61
|
type __IsExpected<Specific extends AppPageConfig<"/">> = Specific
|
|
@@ -146,6 +155,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
146
155
|
type __Unused = __Check
|
|
147
156
|
}
|
|
148
157
|
|
|
158
|
+
// Validate ../../src/app/api/chat/stop/route.ts
|
|
159
|
+
{
|
|
160
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/chat/stop">> = Specific
|
|
161
|
+
const handler = {} as typeof import("../../src/app/api/chat/stop/route.js")
|
|
162
|
+
type __Check = __IsExpected<typeof handler>
|
|
163
|
+
// @ts-ignore
|
|
164
|
+
type __Unused = __Check
|
|
165
|
+
}
|
|
166
|
+
|
|
149
167
|
// Validate ../../src/app/api/claude-stats/route.ts
|
|
150
168
|
{
|
|
151
169
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/claude-stats">> = Specific
|
|
@@ -848,6 +866,33 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
848
866
|
type __Unused = __Check
|
|
849
867
|
}
|
|
850
868
|
|
|
869
|
+
// Validate ../../src/app/api/push/public-key/route.ts
|
|
870
|
+
{
|
|
871
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/push/public-key">> = Specific
|
|
872
|
+
const handler = {} as typeof import("../../src/app/api/push/public-key/route.js")
|
|
873
|
+
type __Check = __IsExpected<typeof handler>
|
|
874
|
+
// @ts-ignore
|
|
875
|
+
type __Unused = __Check
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
// Validate ../../src/app/api/push/subscribe/route.ts
|
|
879
|
+
{
|
|
880
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/push/subscribe">> = Specific
|
|
881
|
+
const handler = {} as typeof import("../../src/app/api/push/subscribe/route.js")
|
|
882
|
+
type __Check = __IsExpected<typeof handler>
|
|
883
|
+
// @ts-ignore
|
|
884
|
+
type __Unused = __Check
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
// Validate ../../src/app/api/push/unsubscribe/route.ts
|
|
888
|
+
{
|
|
889
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/push/unsubscribe">> = Specific
|
|
890
|
+
const handler = {} as typeof import("../../src/app/api/push/unsubscribe/route.js")
|
|
891
|
+
type __Check = __IsExpected<typeof handler>
|
|
892
|
+
// @ts-ignore
|
|
893
|
+
type __Unused = __Check
|
|
894
|
+
}
|
|
895
|
+
|
|
851
896
|
// Validate ../../src/app/api/redis/command/route.ts
|
|
852
897
|
{
|
|
853
898
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/redis/command">> = Specific
|
|
@@ -28685,6 +28685,7 @@ var COCKPIT_DIR = join4(HOME_DIR, ".cockpit");
|
|
|
28685
28685
|
var COCKPIT_PROJECTS_DIR = join4(COCKPIT_DIR, "projects");
|
|
28686
28686
|
var GLOBAL_STATE_FILE = join4(COCKPIT_DIR, "state.json");
|
|
28687
28687
|
var PINNED_SESSIONS_FILE = join4(COCKPIT_DIR, "pinned-sessions.json");
|
|
28688
|
+
var PUSH_SUBSCRIPTIONS_FILE = join4(COCKPIT_DIR, "push-subscriptions.json");
|
|
28688
28689
|
var NOTE_FILE = join4(COCKPIT_DIR, "note.md");
|
|
28689
28690
|
var SCHEDULED_TASKS_FILE = join4(COCKPIT_DIR, "scheduled-tasks.json");
|
|
28690
28691
|
var SETTINGS_FILE = join4(COCKPIT_DIR, "settings.json");
|
|
@@ -29902,10 +29903,11 @@ export {
|
|
|
29902
29903
|
runCypherWithDriver,
|
|
29903
29904
|
serializeValue,
|
|
29904
29905
|
GLOBAL_STATE_FILE,
|
|
29906
|
+
PUSH_SUBSCRIPTIONS_FILE,
|
|
29905
29907
|
SCHEDULED_TASKS_FILE,
|
|
29908
|
+
SETTINGS_FILE,
|
|
29906
29909
|
REVIEW_DIR,
|
|
29907
29910
|
REVIEW_SIGNAL_FILE,
|
|
29908
|
-
CLAUDE2_DIR,
|
|
29909
29911
|
getTerminalHistoryPath,
|
|
29910
29912
|
getTerminalOutputPath,
|
|
29911
29913
|
getBubbleOrderPath,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GLOBAL_STATE_FILE,
|
|
3
|
+
PUSH_SUBSCRIPTIONS_FILE,
|
|
4
|
+
SETTINGS_FILE,
|
|
3
5
|
findCodexSessionPath,
|
|
4
6
|
findKimiSessionPath,
|
|
5
7
|
getClaude2SessionPath,
|
|
@@ -8,11 +10,98 @@ import {
|
|
|
8
10
|
readJsonFile,
|
|
9
11
|
withFileLock,
|
|
10
12
|
writeJsonFile
|
|
11
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-5BOGGUGT.mjs";
|
|
12
14
|
|
|
13
15
|
// packages/feature/agent/src/server/state/globalState.ts
|
|
14
16
|
import { createReadStream, existsSync } from "fs";
|
|
15
17
|
import { createInterface } from "readline";
|
|
18
|
+
import { basename } from "path";
|
|
19
|
+
|
|
20
|
+
// packages/feature/agent/src/server/push/push.ts
|
|
21
|
+
import webpush from "web-push";
|
|
22
|
+
var configured = null;
|
|
23
|
+
var DEFAULT_SUBJECT = "https://github.com/Surething-io/cockpit";
|
|
24
|
+
function isValidVapidSubject(sub) {
|
|
25
|
+
if (!sub || sub.includes("localhost")) return false;
|
|
26
|
+
if (sub.startsWith("https://")) return true;
|
|
27
|
+
const m = /^mailto:[^\s@]+@([^\s@]+)$/.exec(sub);
|
|
28
|
+
return !!m && m[1].includes(".");
|
|
29
|
+
}
|
|
30
|
+
async function getVapid() {
|
|
31
|
+
if (configured) return configured;
|
|
32
|
+
const vapid = await withFileLock(SETTINGS_FILE, async () => {
|
|
33
|
+
const settings = await readJsonFile(SETTINGS_FILE, {});
|
|
34
|
+
if (settings.push?.publicKey && settings.push?.privateKey) {
|
|
35
|
+
const subject = isValidVapidSubject(settings.push.subject) ? settings.push.subject : DEFAULT_SUBJECT;
|
|
36
|
+
if (subject !== settings.push.subject) {
|
|
37
|
+
await writeJsonFile(SETTINGS_FILE, {
|
|
38
|
+
...settings,
|
|
39
|
+
push: { ...settings.push, subject }
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
publicKey: settings.push.publicKey,
|
|
44
|
+
privateKey: settings.push.privateKey,
|
|
45
|
+
subject
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const keys = webpush.generateVAPIDKeys();
|
|
49
|
+
const push = {
|
|
50
|
+
publicKey: keys.publicKey,
|
|
51
|
+
privateKey: keys.privateKey,
|
|
52
|
+
subject: DEFAULT_SUBJECT
|
|
53
|
+
};
|
|
54
|
+
await writeJsonFile(SETTINGS_FILE, { ...settings, push });
|
|
55
|
+
return push;
|
|
56
|
+
});
|
|
57
|
+
webpush.setVapidDetails(vapid.subject, vapid.publicKey, vapid.privateKey);
|
|
58
|
+
configured = vapid;
|
|
59
|
+
return vapid;
|
|
60
|
+
}
|
|
61
|
+
async function sendPushNotification(payload) {
|
|
62
|
+
try {
|
|
63
|
+
await getVapid();
|
|
64
|
+
} catch {
|
|
65
|
+
return { sent: 0, pruned: 0 };
|
|
66
|
+
}
|
|
67
|
+
const store = await readJsonFile(PUSH_SUBSCRIPTIONS_FILE, { subscriptions: [] });
|
|
68
|
+
if (store.subscriptions.length === 0) return { sent: 0, pruned: 0 };
|
|
69
|
+
const body = JSON.stringify(payload);
|
|
70
|
+
const dead = [];
|
|
71
|
+
let sent = 0;
|
|
72
|
+
await Promise.all(
|
|
73
|
+
store.subscriptions.map(async (sub) => {
|
|
74
|
+
try {
|
|
75
|
+
await webpush.sendNotification(sub, body);
|
|
76
|
+
sent++;
|
|
77
|
+
} catch (e) {
|
|
78
|
+
const err = e;
|
|
79
|
+
const code = err?.statusCode;
|
|
80
|
+
if (code === 404 || code === 410) {
|
|
81
|
+
dead.push(sub.endpoint);
|
|
82
|
+
} else {
|
|
83
|
+
let host = sub.endpoint;
|
|
84
|
+
try {
|
|
85
|
+
host = new URL(sub.endpoint).host;
|
|
86
|
+
} catch {
|
|
87
|
+
}
|
|
88
|
+
console.error(`[push] send failed (${code ?? "?"}) to ${host}: ${err?.body || err?.message || "unknown"}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
})
|
|
92
|
+
);
|
|
93
|
+
if (dead.length) {
|
|
94
|
+
await withFileLock(PUSH_SUBSCRIPTIONS_FILE, async () => {
|
|
95
|
+
const cur = await readJsonFile(PUSH_SUBSCRIPTIONS_FILE, { subscriptions: [] });
|
|
96
|
+
await writeJsonFile(PUSH_SUBSCRIPTIONS_FILE, {
|
|
97
|
+
subscriptions: cur.subscriptions.filter((s) => !dead.includes(s.endpoint))
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return { sent, pruned: dead.length };
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// packages/feature/agent/src/server/state/globalState.ts
|
|
16
105
|
var MAX_SESSIONS = 15;
|
|
17
106
|
var MAX_TEXT_LEN = 50;
|
|
18
107
|
function truncate(s) {
|
|
@@ -54,33 +143,20 @@ async function updateGlobalState(cwd, sessionId, status, title, lastUserMessage)
|
|
|
54
143
|
state.sessions.sort((a, b) => b.lastActive - a.lastActive);
|
|
55
144
|
state.sessions = state.sessions.slice(0, MAX_SESSIONS);
|
|
56
145
|
await writeJsonFile(GLOBAL_STATE_FILE, state);
|
|
146
|
+
if (status === "unread" && existing?.status !== "unread") {
|
|
147
|
+
void (async () => {
|
|
148
|
+
const fresh = await getLastUserMessage(cwd, sessionId).catch(() => void 0);
|
|
149
|
+
const last = fresh || newSession.lastUserMessage;
|
|
150
|
+
await sendPushNotification({
|
|
151
|
+
title: basename(cwd) || "Cockpit",
|
|
152
|
+
body: truncate(last) || newSession.title || "",
|
|
153
|
+
data: { cwd, sessionId }
|
|
154
|
+
});
|
|
155
|
+
})().catch(() => {
|
|
156
|
+
});
|
|
157
|
+
}
|
|
57
158
|
});
|
|
58
159
|
}
|
|
59
|
-
async function getSessionTitle(cwd, sessionId) {
|
|
60
|
-
const claudePath = getClaudeSessionPath(cwd, sessionId);
|
|
61
|
-
if (existsSync(claudePath)) {
|
|
62
|
-
return getClaudeStyleTitle(claudePath);
|
|
63
|
-
}
|
|
64
|
-
const claude2Path = getClaude2SessionPath(cwd, sessionId);
|
|
65
|
-
if (existsSync(claude2Path)) {
|
|
66
|
-
return getClaudeStyleTitle(claude2Path);
|
|
67
|
-
}
|
|
68
|
-
const ollamaPath = getOllamaSessionPath(cwd, sessionId);
|
|
69
|
-
if (existsSync(ollamaPath)) {
|
|
70
|
-
return getClaudeStyleTitle(ollamaPath);
|
|
71
|
-
}
|
|
72
|
-
const codexPath = findCodexSessionPath(sessionId);
|
|
73
|
-
if (codexPath && existsSync(codexPath)) {
|
|
74
|
-
const title = await getCodexTitle(codexPath);
|
|
75
|
-
return title || "Untitled Session";
|
|
76
|
-
}
|
|
77
|
-
const kimiPath = findKimiSessionPath(sessionId);
|
|
78
|
-
if (kimiPath && existsSync(kimiPath)) {
|
|
79
|
-
const title = await getKimiTitle(kimiPath);
|
|
80
|
-
return title || "Untitled Session";
|
|
81
|
-
}
|
|
82
|
-
return "Untitled Session";
|
|
83
|
-
}
|
|
84
160
|
async function collectUserMessages(cwd, sessionId) {
|
|
85
161
|
const claudePath = getClaudeSessionPath(cwd, sessionId);
|
|
86
162
|
if (existsSync(claudePath)) {
|
|
@@ -104,6 +180,10 @@ async function collectUserMessages(cwd, sessionId) {
|
|
|
104
180
|
}
|
|
105
181
|
return [];
|
|
106
182
|
}
|
|
183
|
+
async function getLastUserMessage(cwd, sessionId) {
|
|
184
|
+
const messages = await collectUserMessages(cwd, sessionId);
|
|
185
|
+
return messages[messages.length - 1];
|
|
186
|
+
}
|
|
107
187
|
var SUMMARY_THRESHOLD = 10;
|
|
108
188
|
var SUMMARY_HEAD = 5;
|
|
109
189
|
var SUMMARY_TAIL = 5;
|
|
@@ -131,38 +211,6 @@ function isValidUserMessage(text) {
|
|
|
131
211
|
if (!text.trim()) return false;
|
|
132
212
|
return true;
|
|
133
213
|
}
|
|
134
|
-
async function getClaudeStyleTitle(filePath) {
|
|
135
|
-
try {
|
|
136
|
-
const fileStream = createReadStream(filePath);
|
|
137
|
-
const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
|
|
138
|
-
let summary = "";
|
|
139
|
-
const userMessages = [];
|
|
140
|
-
for await (const line of rl) {
|
|
141
|
-
if (!line.trim()) continue;
|
|
142
|
-
try {
|
|
143
|
-
const entry = JSON.parse(line);
|
|
144
|
-
if (entry.type === "summary" && entry.summary) {
|
|
145
|
-
summary = entry.summary;
|
|
146
|
-
}
|
|
147
|
-
if (entry.type === "user") {
|
|
148
|
-
const message = entry.message;
|
|
149
|
-
if (!message?.content) continue;
|
|
150
|
-
if (typeof message.content === "string") {
|
|
151
|
-
userMessages.push(message.content);
|
|
152
|
-
} else if (Array.isArray(message.content)) {
|
|
153
|
-
for (const block of message.content) {
|
|
154
|
-
if (block.type === "text" && block.text) userMessages.push(block.text);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
} catch {
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return generateTitle(summary, userMessages);
|
|
162
|
-
} catch {
|
|
163
|
-
return "Untitled Session";
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
214
|
async function getClaudeStyleUserMessages(filePath) {
|
|
167
215
|
const messages = [];
|
|
168
216
|
try {
|
|
@@ -225,30 +273,6 @@ async function getCodexUserMessages(filePath) {
|
|
|
225
273
|
}
|
|
226
274
|
return messages;
|
|
227
275
|
}
|
|
228
|
-
async function getCodexTitle(filePath) {
|
|
229
|
-
try {
|
|
230
|
-
const fileStream = createReadStream(filePath);
|
|
231
|
-
const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
|
|
232
|
-
for await (const line of rl) {
|
|
233
|
-
if (!line.trim()) continue;
|
|
234
|
-
let entry;
|
|
235
|
-
try {
|
|
236
|
-
entry = JSON.parse(line);
|
|
237
|
-
} catch {
|
|
238
|
-
continue;
|
|
239
|
-
}
|
|
240
|
-
if (entry.type !== "response_item") continue;
|
|
241
|
-
const payload = entry.payload;
|
|
242
|
-
if (!payload || payload.type !== "message" || payload.role !== "user") continue;
|
|
243
|
-
const text = payload.content?.filter((c) => c.type === "input_text" && c.text).map((c) => c.text).join("") || "";
|
|
244
|
-
if (!text || text.startsWith("<") || text.startsWith("#")) continue;
|
|
245
|
-
return text.slice(0, 80);
|
|
246
|
-
}
|
|
247
|
-
return void 0;
|
|
248
|
-
} catch {
|
|
249
|
-
return void 0;
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
276
|
async function getKimiUserMessages(filePath) {
|
|
253
277
|
const messages = [];
|
|
254
278
|
try {
|
|
@@ -276,51 +300,94 @@ async function getKimiUserMessages(filePath) {
|
|
|
276
300
|
}
|
|
277
301
|
return messages;
|
|
278
302
|
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
303
|
+
|
|
304
|
+
// packages/feature/agent/src/server/sessionRunHub.ts
|
|
305
|
+
var GRACE_MS = 6e4;
|
|
306
|
+
var g = globalThis;
|
|
307
|
+
var registry = g.__cockpitRunRegistry ?? (g.__cockpitRunRegistry = /* @__PURE__ */ new Map());
|
|
308
|
+
var listeners = g.__cockpitRunListeners ?? (g.__cockpitRunListeners = /* @__PURE__ */ new Map());
|
|
309
|
+
var seqByKey = g.__cockpitRunSeqByKey ?? (g.__cockpitRunSeqByKey = /* @__PURE__ */ new Map());
|
|
310
|
+
function bumpSeq(state) {
|
|
311
|
+
state.seq += 1;
|
|
312
|
+
for (const k of state.keys) seqByKey.set(k, state.seq);
|
|
313
|
+
return state.seq;
|
|
314
|
+
}
|
|
315
|
+
function fanout(state, ev) {
|
|
316
|
+
for (const k of state.keys) {
|
|
317
|
+
const ls = listeners.get(k);
|
|
318
|
+
if (ls) for (const cb of ls) {
|
|
286
319
|
try {
|
|
287
|
-
|
|
320
|
+
cb(ev);
|
|
288
321
|
} catch {
|
|
289
|
-
continue;
|
|
290
322
|
}
|
|
291
|
-
if (entry.role !== "user") continue;
|
|
292
|
-
const text = typeof entry.content === "string" ? entry.content : Array.isArray(entry.content) ? entry.content.filter((c) => (c.type === "input_text" || c.type === "text") && c.text).map((c) => c.text).join("") : "";
|
|
293
|
-
if (!text || text.startsWith("<system") || text.startsWith("<environment") || text.startsWith("# AGENTS.md") || text.startsWith("<permissions")) {
|
|
294
|
-
continue;
|
|
295
|
-
}
|
|
296
|
-
return text.slice(0, 80);
|
|
297
323
|
}
|
|
298
|
-
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
function appendRun(key, message) {
|
|
327
|
+
const r = registry.get(key);
|
|
328
|
+
if (!r) return;
|
|
329
|
+
if (r.status !== "running") return;
|
|
330
|
+
bumpSeq(r);
|
|
331
|
+
r.events.push(message);
|
|
332
|
+
r.updatedAt = Date.now();
|
|
333
|
+
fanout(r, { seq: r.seq, message });
|
|
334
|
+
}
|
|
335
|
+
function markRunIdle(key, status = "idle") {
|
|
336
|
+
const r = registry.get(key);
|
|
337
|
+
if (!r) return;
|
|
338
|
+
const wasRunning = r.status === "running";
|
|
339
|
+
if (!wasRunning) {
|
|
340
|
+
if (r.status === "idle" && status === "error") r.status = "error";
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
r.status = status;
|
|
344
|
+
r.updatedAt = Date.now();
|
|
345
|
+
{
|
|
346
|
+
bumpSeq(r);
|
|
347
|
+
fanout(r, { seq: r.seq, message: { type: "run-ended", status } });
|
|
348
|
+
}
|
|
349
|
+
if (r.evictTimer) clearTimeout(r.evictTimer);
|
|
350
|
+
r.evictTimer = setTimeout(() => {
|
|
351
|
+
for (const k of r.keys) registry.delete(k);
|
|
352
|
+
}, GRACE_MS);
|
|
353
|
+
}
|
|
354
|
+
function getRunSnapshot(key) {
|
|
355
|
+
const r = registry.get(key);
|
|
356
|
+
if (!r) return null;
|
|
357
|
+
return { status: r.status, seq: r.seq, events: r.events.slice() };
|
|
358
|
+
}
|
|
359
|
+
function isRunActive(key) {
|
|
360
|
+
return registry.get(key)?.status === "running";
|
|
361
|
+
}
|
|
362
|
+
function requestStop(key) {
|
|
363
|
+
const r = registry.get(key);
|
|
364
|
+
if (!r) return false;
|
|
365
|
+
try {
|
|
366
|
+
r.abort?.();
|
|
299
367
|
} catch {
|
|
300
|
-
return void 0;
|
|
301
368
|
}
|
|
369
|
+
appendRun(key, { type: "result", subtype: "stopped" });
|
|
370
|
+
markRunIdle(key, "idle");
|
|
371
|
+
return true;
|
|
302
372
|
}
|
|
303
|
-
function
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
if (!filtered) continue;
|
|
309
|
-
if (filtered.startsWith("/") && !commandName) {
|
|
310
|
-
commandName = filtered;
|
|
311
|
-
continue;
|
|
312
|
-
}
|
|
313
|
-
if (commandName) {
|
|
314
|
-
return `${commandName} ${filtered}`;
|
|
315
|
-
}
|
|
316
|
-
return filtered;
|
|
373
|
+
function addRunListener(key, cb) {
|
|
374
|
+
let s = listeners.get(key);
|
|
375
|
+
if (!s) {
|
|
376
|
+
s = /* @__PURE__ */ new Set();
|
|
377
|
+
listeners.set(key, s);
|
|
317
378
|
}
|
|
318
|
-
|
|
319
|
-
return
|
|
379
|
+
s.add(cb);
|
|
380
|
+
return () => {
|
|
381
|
+
const set = listeners.get(key);
|
|
382
|
+
if (set && set.delete(cb) && set.size === 0) listeners.delete(key);
|
|
383
|
+
};
|
|
320
384
|
}
|
|
321
385
|
|
|
322
386
|
export {
|
|
323
387
|
updateGlobalState,
|
|
324
|
-
|
|
325
|
-
|
|
388
|
+
getSessionPreview,
|
|
389
|
+
getRunSnapshot,
|
|
390
|
+
isRunActive,
|
|
391
|
+
requestStop,
|
|
392
|
+
addRunListener
|
|
326
393
|
};
|
package/dist/httpApi.mjs
CHANGED
|
@@ -21,10 +21,10 @@ import {
|
|
|
21
21
|
unregisterBrowser,
|
|
22
22
|
unregisterTerminal,
|
|
23
23
|
writeStdinToCommand
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-BM3ZNL5S.mjs";
|
|
25
25
|
import {
|
|
26
26
|
getTerminalHistoryPath
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-5BOGGUGT.mjs";
|
|
28
28
|
import "./chunk-7P6ASYW6.mjs";
|
|
29
29
|
|
|
30
30
|
// src/lib/httpApi.ts
|