@surething/cockpit 1.0.221 → 1.0.223
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 +10 -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 +42 -0
- package/.next-prod/server/app/_global-error/page.js +2 -2
- 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 +7 -7
- 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 +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 +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 -0
- package/.next-prod/server/app/api/git/current-branch/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/git/current-branch/route_client-reference-manifest.js +1 -0
- 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 +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/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/test/route.js +1 -0
- package/.next-prod/server/app/api/push/test/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/push/test/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 +10 -3
- package/.next-prod/server/chunks/{8555.js → 2637.js} +134 -7
- 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 -12
- 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/IQwBHyZ3W2LMUZtDfCp-B/_buildManifest.js +1 -0
- package/.next-prod/static/chunks/2032-6fcfaaa6aa730f6d.js +1 -0
- package/.next-prod/static/chunks/2576-02a6e185664e2e1a.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-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/agent/test/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/bash/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/codex/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/kimi/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/ollama/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/pty-input/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/stop/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/claude-stats/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/commands/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/comments/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/db/columns/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/db/connect/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/db/disconnect/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/db/export/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/db/query/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/db/schemas/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/dev/spans/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/extension/version/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/file/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/blame/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/clipboard/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/copy/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/delete/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/expanded/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/index/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/init/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/paste/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/read/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/readdir/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/recent/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/save/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/search/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/stat/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/files/text/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branches/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commits/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/current-branch/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/diff/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/discard/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/stage/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/status/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/unstage/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/git/worktree/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/global-state/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/load/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/save/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/definition/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/hover/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/references/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/status/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/columns/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/connect/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/export/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/query/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/query/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/note/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/models/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/start/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/open-cursor/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/open-vscode/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/pick-folder/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/project-settings/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/project-state/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/projects/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/push/public-key/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/push/subscribe/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/push/test/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/command/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/connect/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/delete/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/get/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/keys/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/set/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/review/identify/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/review/order/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/review/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/review/share-info/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/review/users/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/services/config/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/services/scripts/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/session-by-path/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/settings/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/[id]/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/content/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/env/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/history/route-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/app/api/version/route-422b501ed5769a87.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-422b501ed5769a87.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-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-422b501ed5769a87.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-422b501ed5769a87.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/git/current-branch/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/test/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 +9 -2
- package/.next-prod/types/validator.ts +63 -0
- package/dist/{chunk-6BFKFQG5.mjs → chunk-5BOGGUGT.mjs} +3 -1
- package/dist/chunk-5CRGWEWX.mjs +369 -0
- package/dist/{chunk-ICB7IS3A.mjs → chunk-BM3ZNL5S.mjs} +1 -1
- package/dist/httpApi.mjs +2 -2
- package/dist/scheduledTasks.mjs +34 -80
- package/dist/{server-Z6V4HKGV.mjs → server-DRMO2DUJ.mjs} +2 -2
- package/dist/wsServer.mjs +89 -13
- package/next.config.mjs +15 -0
- package/package.json +8 -3
- 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/QNr0r0SO5D70hTak_CnhT/_buildManifest.js +0 -1
- package/.next-prod/static/chunks/2759-50f11ab1460db5e0.js +0 -23
- package/.next-prod/static/chunks/6345-bab6a02df39cb716.js +0 -14
- package/.next-prod/static/chunks/9403-de4673c851686913.js +0 -29
- package/.next-prod/static/chunks/app/_global-error/page-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/agent/test/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/bash/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/codex/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/kimi/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/ollama/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/pty-input/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/claude-stats/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/commands/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/comments/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/db/columns/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/db/connect/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/db/disconnect/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/db/export/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/db/query/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/db/schemas/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/dev/spans/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/extension/version/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/file/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/blame/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/clipboard/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/copy/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/delete/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/expanded/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/index/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/init/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/paste/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/read/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/readdir/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/recent/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/save/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/search/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/stat/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/files/text/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branches/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commits/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/diff/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/discard/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/stage/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/status/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/unstage/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/git/worktree/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/global-state/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/load/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/save/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/definition/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/hover/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/references/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/status/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/columns/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/connect/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/export/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/query/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/query/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/note/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/models/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/start/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/open-cursor/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/open-vscode/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/pick-folder/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/project-settings/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/project-state/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/projects/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/command/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/connect/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/delete/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/get/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/keys/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/set/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/review/identify/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/review/order/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/review/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/review/share-info/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/review/users/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/services/config/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/services/scripts/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/session-by-path/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/settings/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/[id]/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/content/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/env/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/history/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/api/version/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-ccd4c8b73711effa.js +0 -1
- package/.next-prod/static/css/ad6271f3f61ab845.css +0 -1
- package/dist/chunk-4S74IEU4.mjs +0 -314
- /package/.next-prod/static/{QNr0r0SO5D70hTak_CnhT → IQwBHyZ3W2LMUZtDfCp-B}/_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/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/test" | "/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": {}
|
|
@@ -51,6 +52,7 @@ interface ParamMap {
|
|
|
51
52
|
"/api/git/branches": {}
|
|
52
53
|
"/api/git/commit-diff": {}
|
|
53
54
|
"/api/git/commits": {}
|
|
55
|
+
"/api/git/current-branch": {}
|
|
54
56
|
"/api/git/diff": {}
|
|
55
57
|
"/api/git/discard": {}
|
|
56
58
|
"/api/git/stage": {}
|
|
@@ -97,6 +99,10 @@ interface ParamMap {
|
|
|
97
99
|
"/api/projectGraph/risk": {}
|
|
98
100
|
"/api/projectGraph/search": {}
|
|
99
101
|
"/api/projects": {}
|
|
102
|
+
"/api/push/public-key": {}
|
|
103
|
+
"/api/push/subscribe": {}
|
|
104
|
+
"/api/push/test": {}
|
|
105
|
+
"/api/push/unsubscribe": {}
|
|
100
106
|
"/api/redis/command": {}
|
|
101
107
|
"/api/redis/connect": {}
|
|
102
108
|
"/api/redis/delete": {}
|
|
@@ -131,6 +137,7 @@ interface ParamMap {
|
|
|
131
137
|
"/api/terminal/env": {}
|
|
132
138
|
"/api/terminal/history": {}
|
|
133
139
|
"/api/version": {}
|
|
140
|
+
"/m": {}
|
|
134
141
|
"/project": {}
|
|
135
142
|
"/review/[id]": { "id": string; }
|
|
136
143
|
}
|
|
@@ -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
|
|
@@ -425,6 +443,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
425
443
|
type __Unused = __Check
|
|
426
444
|
}
|
|
427
445
|
|
|
446
|
+
// Validate ../../src/app/api/git/current-branch/route.ts
|
|
447
|
+
{
|
|
448
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/git/current-branch">> = Specific
|
|
449
|
+
const handler = {} as typeof import("../../src/app/api/git/current-branch/route.js")
|
|
450
|
+
type __Check = __IsExpected<typeof handler>
|
|
451
|
+
// @ts-ignore
|
|
452
|
+
type __Unused = __Check
|
|
453
|
+
}
|
|
454
|
+
|
|
428
455
|
// Validate ../../src/app/api/git/diff/route.ts
|
|
429
456
|
{
|
|
430
457
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/git/diff">> = Specific
|
|
@@ -839,6 +866,42 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
839
866
|
type __Unused = __Check
|
|
840
867
|
}
|
|
841
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/test/route.ts
|
|
888
|
+
{
|
|
889
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/push/test">> = Specific
|
|
890
|
+
const handler = {} as typeof import("../../src/app/api/push/test/route.js")
|
|
891
|
+
type __Check = __IsExpected<typeof handler>
|
|
892
|
+
// @ts-ignore
|
|
893
|
+
type __Unused = __Check
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
// Validate ../../src/app/api/push/unsubscribe/route.ts
|
|
897
|
+
{
|
|
898
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/push/unsubscribe">> = Specific
|
|
899
|
+
const handler = {} as typeof import("../../src/app/api/push/unsubscribe/route.js")
|
|
900
|
+
type __Check = __IsExpected<typeof handler>
|
|
901
|
+
// @ts-ignore
|
|
902
|
+
type __Unused = __Check
|
|
903
|
+
}
|
|
904
|
+
|
|
842
905
|
// Validate ../../src/app/api/redis/command/route.ts
|
|
843
906
|
{
|
|
844
907
|
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,
|
|
@@ -0,0 +1,369 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GLOBAL_STATE_FILE,
|
|
3
|
+
PUSH_SUBSCRIPTIONS_FILE,
|
|
4
|
+
SETTINGS_FILE,
|
|
5
|
+
findCodexSessionPath,
|
|
6
|
+
findKimiSessionPath,
|
|
7
|
+
getClaude2SessionPath,
|
|
8
|
+
getClaudeSessionPath,
|
|
9
|
+
getOllamaSessionPath,
|
|
10
|
+
readJsonFile,
|
|
11
|
+
withFileLock,
|
|
12
|
+
writeJsonFile
|
|
13
|
+
} from "./chunk-5BOGGUGT.mjs";
|
|
14
|
+
|
|
15
|
+
// packages/feature/agent/src/server/state/globalState.ts
|
|
16
|
+
import { createReadStream, existsSync } from "fs";
|
|
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
|
+
async function getVapid() {
|
|
24
|
+
if (configured) return configured;
|
|
25
|
+
const vapid = await withFileLock(SETTINGS_FILE, async () => {
|
|
26
|
+
const settings = await readJsonFile(SETTINGS_FILE, {});
|
|
27
|
+
if (settings.push?.publicKey && settings.push?.privateKey) {
|
|
28
|
+
return {
|
|
29
|
+
publicKey: settings.push.publicKey,
|
|
30
|
+
privateKey: settings.push.privateKey,
|
|
31
|
+
subject: settings.push.subject || "mailto:cockpit@localhost"
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const keys = webpush.generateVAPIDKeys();
|
|
35
|
+
const push = {
|
|
36
|
+
publicKey: keys.publicKey,
|
|
37
|
+
privateKey: keys.privateKey,
|
|
38
|
+
subject: "mailto:cockpit@localhost"
|
|
39
|
+
};
|
|
40
|
+
await writeJsonFile(SETTINGS_FILE, { ...settings, push });
|
|
41
|
+
return push;
|
|
42
|
+
});
|
|
43
|
+
webpush.setVapidDetails(vapid.subject, vapid.publicKey, vapid.privateKey);
|
|
44
|
+
configured = vapid;
|
|
45
|
+
return vapid;
|
|
46
|
+
}
|
|
47
|
+
async function sendPushNotification(payload) {
|
|
48
|
+
try {
|
|
49
|
+
await getVapid();
|
|
50
|
+
} catch {
|
|
51
|
+
return { sent: 0, pruned: 0 };
|
|
52
|
+
}
|
|
53
|
+
const store = await readJsonFile(PUSH_SUBSCRIPTIONS_FILE, { subscriptions: [] });
|
|
54
|
+
if (store.subscriptions.length === 0) return { sent: 0, pruned: 0 };
|
|
55
|
+
const body = JSON.stringify(payload);
|
|
56
|
+
const dead = [];
|
|
57
|
+
let sent = 0;
|
|
58
|
+
await Promise.all(
|
|
59
|
+
store.subscriptions.map(async (sub) => {
|
|
60
|
+
try {
|
|
61
|
+
await webpush.sendNotification(sub, body);
|
|
62
|
+
sent++;
|
|
63
|
+
} catch (e) {
|
|
64
|
+
const code = e?.statusCode;
|
|
65
|
+
if (code === 404 || code === 410) dead.push(sub.endpoint);
|
|
66
|
+
}
|
|
67
|
+
})
|
|
68
|
+
);
|
|
69
|
+
if (dead.length) {
|
|
70
|
+
await withFileLock(PUSH_SUBSCRIPTIONS_FILE, async () => {
|
|
71
|
+
const cur = await readJsonFile(PUSH_SUBSCRIPTIONS_FILE, { subscriptions: [] });
|
|
72
|
+
await writeJsonFile(PUSH_SUBSCRIPTIONS_FILE, {
|
|
73
|
+
subscriptions: cur.subscriptions.filter((s) => !dead.includes(s.endpoint))
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return { sent, pruned: dead.length };
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// packages/feature/agent/src/server/state/globalState.ts
|
|
81
|
+
var MAX_SESSIONS = 15;
|
|
82
|
+
var MAX_TEXT_LEN = 50;
|
|
83
|
+
function truncate(s) {
|
|
84
|
+
if (!s) return s;
|
|
85
|
+
const chars = [...s];
|
|
86
|
+
return chars.length <= MAX_TEXT_LEN ? s : chars.slice(0, MAX_TEXT_LEN).join("") + "\u2026";
|
|
87
|
+
}
|
|
88
|
+
async function updateGlobalState(cwd, sessionId, status, title, lastUserMessage) {
|
|
89
|
+
if (!existsSync(cwd)) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
return withFileLock(GLOBAL_STATE_FILE, async () => {
|
|
93
|
+
const state = await readJsonFile(GLOBAL_STATE_FILE, { sessions: [] });
|
|
94
|
+
for (const s of state.sessions) {
|
|
95
|
+
if (!s.status) {
|
|
96
|
+
const legacy = s;
|
|
97
|
+
s.status = legacy.isLoading ? "loading" : "normal";
|
|
98
|
+
delete legacy.isLoading;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const existingIndex = state.sessions.findIndex(
|
|
102
|
+
(s) => s.cwd === cwd && s.sessionId === sessionId
|
|
103
|
+
);
|
|
104
|
+
const existed = existingIndex >= 0;
|
|
105
|
+
const existing = existed ? state.sessions[existingIndex] : void 0;
|
|
106
|
+
const newSession = {
|
|
107
|
+
cwd,
|
|
108
|
+
sessionId,
|
|
109
|
+
lastActive: Date.now(),
|
|
110
|
+
status,
|
|
111
|
+
title: truncate(title || existing?.title),
|
|
112
|
+
lastUserMessage: truncate(lastUserMessage || existing?.lastUserMessage)
|
|
113
|
+
};
|
|
114
|
+
if (existingIndex >= 0) {
|
|
115
|
+
state.sessions[existingIndex] = newSession;
|
|
116
|
+
} else {
|
|
117
|
+
state.sessions.push(newSession);
|
|
118
|
+
}
|
|
119
|
+
state.sessions.sort((a, b) => b.lastActive - a.lastActive);
|
|
120
|
+
state.sessions = state.sessions.slice(0, MAX_SESSIONS);
|
|
121
|
+
await writeJsonFile(GLOBAL_STATE_FILE, state);
|
|
122
|
+
if (status === "unread" && existing?.status !== "unread") {
|
|
123
|
+
void (async () => {
|
|
124
|
+
const fresh = await getLastUserMessage(cwd, sessionId).catch(() => void 0);
|
|
125
|
+
const last = fresh || newSession.lastUserMessage;
|
|
126
|
+
await sendPushNotification({
|
|
127
|
+
title: basename(cwd) || "Cockpit",
|
|
128
|
+
body: truncate(last) || newSession.title || "",
|
|
129
|
+
data: { cwd, sessionId }
|
|
130
|
+
});
|
|
131
|
+
})().catch(() => {
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
async function collectUserMessages(cwd, sessionId) {
|
|
137
|
+
const claudePath = getClaudeSessionPath(cwd, sessionId);
|
|
138
|
+
if (existsSync(claudePath)) {
|
|
139
|
+
return await getClaudeStyleUserMessages(claudePath);
|
|
140
|
+
}
|
|
141
|
+
const claude2Path = getClaude2SessionPath(cwd, sessionId);
|
|
142
|
+
if (existsSync(claude2Path)) {
|
|
143
|
+
return await getClaudeStyleUserMessages(claude2Path);
|
|
144
|
+
}
|
|
145
|
+
const ollamaPath = getOllamaSessionPath(cwd, sessionId);
|
|
146
|
+
if (existsSync(ollamaPath)) {
|
|
147
|
+
return await getClaudeStyleUserMessages(ollamaPath);
|
|
148
|
+
}
|
|
149
|
+
const codexPath = findCodexSessionPath(sessionId);
|
|
150
|
+
if (codexPath && existsSync(codexPath)) {
|
|
151
|
+
return await getCodexUserMessages(codexPath);
|
|
152
|
+
}
|
|
153
|
+
const kimiPath = findKimiSessionPath(sessionId);
|
|
154
|
+
if (kimiPath && existsSync(kimiPath)) {
|
|
155
|
+
return await getKimiUserMessages(kimiPath);
|
|
156
|
+
}
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
async function getLastUserMessage(cwd, sessionId) {
|
|
160
|
+
const messages = await collectUserMessages(cwd, sessionId);
|
|
161
|
+
return messages[messages.length - 1];
|
|
162
|
+
}
|
|
163
|
+
var SUMMARY_THRESHOLD = 10;
|
|
164
|
+
var SUMMARY_HEAD = 5;
|
|
165
|
+
var SUMMARY_TAIL = 5;
|
|
166
|
+
async function getSessionPreview(cwd, sessionId) {
|
|
167
|
+
const messages = await collectUserMessages(cwd, sessionId);
|
|
168
|
+
const lastUserMessage = messages[messages.length - 1];
|
|
169
|
+
if (messages.length <= SUMMARY_THRESHOLD) {
|
|
170
|
+
return { lastUserMessage, firstMessages: messages.map((m) => truncate(m)), lastMessages: [] };
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
lastUserMessage,
|
|
174
|
+
firstMessages: messages.slice(0, SUMMARY_HEAD).map((m) => truncate(m)),
|
|
175
|
+
lastMessages: messages.slice(-SUMMARY_TAIL).map((m) => truncate(m))
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
function filterCommandTags(text) {
|
|
179
|
+
let filtered = text.replace(/<command-[^>]*>[\s\S]*?<\/command-[^>]*>/g, "");
|
|
180
|
+
filtered = filtered.replace(/<local-command-[^>]*>[\s\S]*?<\/local-command-[^>]*>/g, "");
|
|
181
|
+
filtered = filtered.trim();
|
|
182
|
+
return filtered;
|
|
183
|
+
}
|
|
184
|
+
function isValidUserMessage(text) {
|
|
185
|
+
if (text.startsWith("This session is being continued")) return false;
|
|
186
|
+
if (text.startsWith("Caveat: The messages below")) return false;
|
|
187
|
+
if (!text.trim()) return false;
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
async function getClaudeStyleUserMessages(filePath) {
|
|
191
|
+
const messages = [];
|
|
192
|
+
try {
|
|
193
|
+
const fileStream = createReadStream(filePath);
|
|
194
|
+
const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
|
|
195
|
+
for await (const line of rl) {
|
|
196
|
+
if (!line.trim()) continue;
|
|
197
|
+
try {
|
|
198
|
+
const entry = JSON.parse(line);
|
|
199
|
+
if (entry.type !== "user") continue;
|
|
200
|
+
const message = entry.message;
|
|
201
|
+
if (!message?.content) continue;
|
|
202
|
+
let text = "";
|
|
203
|
+
if (typeof message.content === "string") {
|
|
204
|
+
text = message.content;
|
|
205
|
+
} else if (Array.isArray(message.content)) {
|
|
206
|
+
for (const block of message.content) {
|
|
207
|
+
if (block.type === "text" && block.text) {
|
|
208
|
+
text = block.text;
|
|
209
|
+
break;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
if (!text) continue;
|
|
214
|
+
const filtered = filterCommandTags(text);
|
|
215
|
+
if (filtered && isValidUserMessage(filtered)) {
|
|
216
|
+
messages.push(filtered);
|
|
217
|
+
}
|
|
218
|
+
} catch {
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
} catch {
|
|
222
|
+
}
|
|
223
|
+
return messages;
|
|
224
|
+
}
|
|
225
|
+
async function getCodexUserMessages(filePath) {
|
|
226
|
+
const messages = [];
|
|
227
|
+
try {
|
|
228
|
+
const fileStream = createReadStream(filePath);
|
|
229
|
+
const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
|
|
230
|
+
for await (const line of rl) {
|
|
231
|
+
if (!line.trim()) continue;
|
|
232
|
+
let entry;
|
|
233
|
+
try {
|
|
234
|
+
entry = JSON.parse(line);
|
|
235
|
+
} catch {
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
if (entry.type !== "response_item") continue;
|
|
239
|
+
const payload = entry.payload;
|
|
240
|
+
if (!payload || payload.type !== "message" || payload.role !== "user") continue;
|
|
241
|
+
const text = payload.content?.filter((c) => c.type === "input_text" && c.text).map((c) => c.text).join("") || "";
|
|
242
|
+
if (!text || text.startsWith("<") || text.startsWith("#")) continue;
|
|
243
|
+
const filtered = filterCommandTags(text);
|
|
244
|
+
if (filtered && isValidUserMessage(filtered)) {
|
|
245
|
+
messages.push(filtered);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
} catch {
|
|
249
|
+
}
|
|
250
|
+
return messages;
|
|
251
|
+
}
|
|
252
|
+
async function getKimiUserMessages(filePath) {
|
|
253
|
+
const messages = [];
|
|
254
|
+
try {
|
|
255
|
+
const fileStream = createReadStream(filePath);
|
|
256
|
+
const rl = createInterface({ input: fileStream, crlfDelay: Infinity });
|
|
257
|
+
for await (const line of rl) {
|
|
258
|
+
if (!line.trim()) continue;
|
|
259
|
+
let entry;
|
|
260
|
+
try {
|
|
261
|
+
entry = JSON.parse(line);
|
|
262
|
+
} catch {
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
if (entry.role !== "user") continue;
|
|
266
|
+
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("") : "";
|
|
267
|
+
if (!text || text.startsWith("<system") || text.startsWith("<environment") || text.startsWith("# AGENTS.md") || text.startsWith("<permissions")) {
|
|
268
|
+
continue;
|
|
269
|
+
}
|
|
270
|
+
const filtered = filterCommandTags(text);
|
|
271
|
+
if (filtered && isValidUserMessage(filtered)) {
|
|
272
|
+
messages.push(filtered);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
} catch {
|
|
276
|
+
}
|
|
277
|
+
return messages;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// packages/feature/agent/src/server/sessionRunHub.ts
|
|
281
|
+
var GRACE_MS = 6e4;
|
|
282
|
+
var g = globalThis;
|
|
283
|
+
var registry = g.__cockpitRunRegistry ?? (g.__cockpitRunRegistry = /* @__PURE__ */ new Map());
|
|
284
|
+
var listeners = g.__cockpitRunListeners ?? (g.__cockpitRunListeners = /* @__PURE__ */ new Map());
|
|
285
|
+
var seqByKey = g.__cockpitRunSeqByKey ?? (g.__cockpitRunSeqByKey = /* @__PURE__ */ new Map());
|
|
286
|
+
function bumpSeq(state) {
|
|
287
|
+
state.seq += 1;
|
|
288
|
+
for (const k of state.keys) seqByKey.set(k, state.seq);
|
|
289
|
+
return state.seq;
|
|
290
|
+
}
|
|
291
|
+
function fanout(state, ev) {
|
|
292
|
+
for (const k of state.keys) {
|
|
293
|
+
const ls = listeners.get(k);
|
|
294
|
+
if (ls) for (const cb of ls) {
|
|
295
|
+
try {
|
|
296
|
+
cb(ev);
|
|
297
|
+
} catch {
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
function appendRun(key, message) {
|
|
303
|
+
const r = registry.get(key);
|
|
304
|
+
if (!r) return;
|
|
305
|
+
if (r.status !== "running") return;
|
|
306
|
+
bumpSeq(r);
|
|
307
|
+
r.events.push(message);
|
|
308
|
+
r.updatedAt = Date.now();
|
|
309
|
+
fanout(r, { seq: r.seq, message });
|
|
310
|
+
}
|
|
311
|
+
function markRunIdle(key, status = "idle") {
|
|
312
|
+
const r = registry.get(key);
|
|
313
|
+
if (!r) return;
|
|
314
|
+
const wasRunning = r.status === "running";
|
|
315
|
+
if (!wasRunning) {
|
|
316
|
+
if (r.status === "idle" && status === "error") r.status = "error";
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
r.status = status;
|
|
320
|
+
r.updatedAt = Date.now();
|
|
321
|
+
{
|
|
322
|
+
bumpSeq(r);
|
|
323
|
+
fanout(r, { seq: r.seq, message: { type: "run-ended", status } });
|
|
324
|
+
}
|
|
325
|
+
if (r.evictTimer) clearTimeout(r.evictTimer);
|
|
326
|
+
r.evictTimer = setTimeout(() => {
|
|
327
|
+
for (const k of r.keys) registry.delete(k);
|
|
328
|
+
}, GRACE_MS);
|
|
329
|
+
}
|
|
330
|
+
function getRunSnapshot(key) {
|
|
331
|
+
const r = registry.get(key);
|
|
332
|
+
if (!r) return null;
|
|
333
|
+
return { status: r.status, seq: r.seq, events: r.events.slice() };
|
|
334
|
+
}
|
|
335
|
+
function isRunActive(key) {
|
|
336
|
+
return registry.get(key)?.status === "running";
|
|
337
|
+
}
|
|
338
|
+
function requestStop(key) {
|
|
339
|
+
const r = registry.get(key);
|
|
340
|
+
if (!r) return false;
|
|
341
|
+
try {
|
|
342
|
+
r.abort?.();
|
|
343
|
+
} catch {
|
|
344
|
+
}
|
|
345
|
+
appendRun(key, { type: "result", subtype: "stopped" });
|
|
346
|
+
markRunIdle(key, "idle");
|
|
347
|
+
return true;
|
|
348
|
+
}
|
|
349
|
+
function addRunListener(key, cb) {
|
|
350
|
+
let s = listeners.get(key);
|
|
351
|
+
if (!s) {
|
|
352
|
+
s = /* @__PURE__ */ new Set();
|
|
353
|
+
listeners.set(key, s);
|
|
354
|
+
}
|
|
355
|
+
s.add(cb);
|
|
356
|
+
return () => {
|
|
357
|
+
const set = listeners.get(key);
|
|
358
|
+
if (set && set.delete(cb) && set.size === 0) listeners.delete(key);
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
export {
|
|
363
|
+
updateGlobalState,
|
|
364
|
+
getSessionPreview,
|
|
365
|
+
getRunSnapshot,
|
|
366
|
+
isRunActive,
|
|
367
|
+
requestStop,
|
|
368
|
+
addRunListener
|
|
369
|
+
};
|
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
|