@surething/cockpit 1.0.261 → 1.0.263
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next-prod/BUILD_ID +1 -1
- package/.next-prod/app-path-routes-manifest.json +6 -3
- package/.next-prod/build-manifest.json +3 -3
- package/.next-prod/cockpit-build.json +2 -2
- package/.next-prod/prerender-manifest.json +4 -4
- package/.next-prod/react-loadable-manifest.json +1 -1
- package/.next-prod/routes-manifest.json +18 -0
- package/.next-prod/server/app/_global-error/page.js +2 -2
- 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/_tree.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found/page.js +1 -1
- package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_not-found.html +2 -2
- package/.next-prod/server/app/_not-found.rsc +4 -4
- package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +12 -11
- package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.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/bash/route.js +1 -1
- package/.next-prod/server/app/api/chat/codex/route.js +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js +1 -1
- package/.next-prod/server/app/api/chat/glm/route.js +1 -1
- package/.next-prod/server/app/api/chat/kimi/route.js +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js +1 -1
- package/.next-prod/server/app/api/chat/route.js +1 -1
- package/.next-prod/server/app/api/chat/stop/route.js +1 -1
- package/.next-prod/server/app/api/claude-stats/route.js +1 -1
- package/.next-prod/server/app/api/commands/route.js +1 -1
- package/.next-prod/server/app/api/comments/route.js +1 -1
- package/.next-prod/server/app/api/db/columns/route.js +1 -1
- package/.next-prod/server/app/api/db/connect/route.js +1 -1
- package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/db/export/route.js +1 -1
- package/.next-prod/server/app/api/db/query/route.js +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js +2 -2
- package/.next-prod/server/app/api/deepseek/balance/route.js +1 -1
- package/.next-prod/server/app/api/deepseek/credentials/route.js +1 -1
- package/.next-prod/server/app/api/deepseek/models/route.js +1 -1
- package/.next-prod/server/app/api/dev/spans/route.js +1 -1
- package/.next-prod/server/app/api/extension/version/route.js +1 -1
- package/.next-prod/server/app/api/file/route.js +1 -1
- package/.next-prod/server/app/api/files/blame/route.js +1 -1
- package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
- package/.next-prod/server/app/api/files/copy/route.js +1 -1
- package/.next-prod/server/app/api/files/delete/route.js +1 -1
- package/.next-prod/server/app/api/files/expanded/route.js +1 -1
- package/.next-prod/server/app/api/files/index/route.js +1 -1
- package/.next-prod/server/app/api/files/init/route.js +1 -1
- package/.next-prod/server/app/api/files/paste/route.js +1 -1
- package/.next-prod/server/app/api/files/read/route.js +1 -1
- package/.next-prod/server/app/api/files/readdir/route.js +1 -1
- package/.next-prod/server/app/api/files/recent/route.js +1 -1
- package/.next-prod/server/app/api/files/save/route.js +1 -1
- package/.next-prod/server/app/api/files/search/route.js +1 -1
- package/.next-prod/server/app/api/files/stat/route.js +1 -1
- package/.next-prod/server/app/api/files/text/route.js +1 -1
- package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
- package/.next-prod/server/app/api/git/branches/route.js +1 -1
- package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
- package/.next-prod/server/app/api/git/commits/route.js +1 -1
- package/.next-prod/server/app/api/git/current-branch/route.js +1 -1
- package/.next-prod/server/app/api/git/diff/route.js +1 -1
- package/.next-prod/server/app/api/git/discard/route.js +1 -1
- package/.next-prod/server/app/api/git/stage/route.js +1 -1
- package/.next-prod/server/app/api/git/status/route.js +1 -1
- package/.next-prod/server/app/api/git/unstage/route.js +1 -1
- package/.next-prod/server/app/api/git/worktree/route.js +1 -1
- package/.next-prod/server/app/api/glm/credentials/route.js +1 -1
- package/.next-prod/server/app/api/glm/models/route.js +1 -1
- package/.next-prod/server/app/api/glm/usage/route.js +1 -1
- package/.next-prod/server/app/api/global-state/route.js +1 -1
- package/.next-prod/server/app/api/health/route.js +1 -1
- package/.next-prod/server/app/api/html-apps/[id]/route.js +1 -1
- package/.next-prod/server/app/api/html-apps/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
- package/.next-prod/server/app/api/kimi/credentials/route.js +1 -1
- package/.next-prod/server/app/api/kimi/models/route.js +1 -1
- package/.next-prod/server/app/api/kimi/usage/route.js +1 -1
- package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
- package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
- package/.next-prod/server/app/api/lsp/references/route.js +1 -1
- package/.next-prod/server/app/api/lsp/status/route.js +1 -1
- package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js +2 -2
- package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
- package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/mysql/export/route.js +1 -1
- package/.next-prod/server/app/api/mysql/query/route.js +1 -1
- package/.next-prod/server/app/api/mysql/schemas/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
- package/.next-prod/server/app/api/note/route.js +1 -1
- package/.next-prod/server/app/api/ollama/config/route.js +1 -1
- package/.next-prod/server/app/api/ollama/models/route.js +1 -1
- package/.next-prod/server/app/api/ollama/start/route.js +1 -1
- package/.next-prod/server/app/api/open-cursor/route.js +1 -1
- package/.next-prod/server/app/api/open-vscode/route.js +1 -1
- package/.next-prod/server/app/api/pick-folder/route.js +1 -1
- package/.next-prod/server/app/api/pinned-sessions/route.js +1 -1
- package/.next-prod/server/app/api/project-settings/route.js +1 -1
- package/.next-prod/server/app/api/project-state/route.js +2 -2
- package/.next-prod/server/app/api/projectGraph/affected/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/callees/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/callers/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/coedit/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/context/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/impact/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/related/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/risk/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
- package/.next-prod/server/app/api/projects/route.js +1 -1
- package/.next-prod/server/app/api/prompts/config/route.js +1 -1
- package/.next-prod/server/app/api/push/public-key/route.js +1 -1
- package/.next-prod/server/app/api/push/subscribe/route.js +1 -1
- package/.next-prod/server/app/api/push/unsubscribe/route.js +1 -1
- package/.next-prod/server/app/api/redis/command/route.js +1 -1
- package/.next-prod/server/app/api/redis/connect/route.js +1 -1
- package/.next-prod/server/app/api/redis/delete/route.js +1 -1
- package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/redis/get/route.js +1 -1
- package/.next-prod/server/app/api/redis/keys/route.js +1 -1
- package/.next-prod/server/app/api/redis/set/route.js +1 -1
- package/.next-prod/server/app/api/restart/route.js +1 -0
- package/.next-prod/server/app/api/restart/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/restart/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/route.js +1 -1
- package/.next-prod/server/app/api/review/identify/route.js +1 -1
- package/.next-prod/server/app/api/review/order/route.js +1 -1
- package/.next-prod/server/app/api/review/route.js +1 -1
- package/.next-prod/server/app/api/review/share-info/route.js +1 -1
- package/.next-prod/server/app/api/review/users/route.js +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js +2 -2
- package/.next-prod/server/app/api/services/config/route.js +1 -1
- package/.next-prod/server/app/api/services/scripts/route.js +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js +1 -1
- package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
- package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
- package/.next-prod/server/app/api/sessions/route.js +1 -1
- package/.next-prod/server/app/api/settings/route.js +1 -1
- package/.next-prod/server/app/api/shutdown/route.js +1 -0
- package/.next-prod/server/app/api/shutdown/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/shutdown/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
- package/.next-prod/server/app/api/skills/content/route.js +1 -1
- package/.next-prod/server/app/api/skills/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/diff/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/route.js +1 -1
- package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
- package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
- package/.next-prod/server/app/api/terminal/env/route.js +1 -1
- package/.next-prod/server/app/api/terminal/history/route.js +1 -1
- package/.next-prod/server/app/api/update/route.js +1 -0
- package/.next-prod/server/app/api/update/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/update/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/version/route.js +1 -1
- package/.next-prod/server/app/apps/[...path]/route.js +1 -1
- package/.next-prod/server/app/favicon.ico/route.js +1 -1
- package/.next-prod/server/app/m/page.js +1 -1
- package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
- package/.next-prod/server/app/page.js +1 -1
- package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/project/page.js +1 -1
- package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/review/[id]/page.js +1 -1
- package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app-paths-manifest.json +6 -3
- package/.next-prod/server/chunks/1564.js +1 -1
- package/.next-prod/server/chunks/5750.js +42 -40
- package/.next-prod/server/chunks/6495.js +1 -1
- package/.next-prod/server/chunks/6548.js +1 -1
- package/.next-prod/server/chunks/7184.js +1 -1
- package/.next-prod/server/chunks/841.js +1 -1
- package/.next-prod/server/chunks/8764.js +2 -2
- package/.next-prod/server/functions-config-manifest.json +3 -0
- package/.next-prod/server/middleware-build-manifest.js +1 -1
- package/.next-prod/server/middleware-react-loadable-manifest.js +1 -1
- package/.next-prod/server/pages/404.html +2 -2
- package/.next-prod/server/pages/500.html +1 -1
- package/.next-prod/server/server-reference-manifest.json +1 -1
- package/.next-prod/static/Jy5sAJFfhng774VeXYdQS/_buildManifest.js +1 -0
- package/.next-prod/static/chunks/1372-c2e2e52980e95aec.js +15 -0
- package/.next-prod/static/chunks/{1959.a8039e13d14ada11.js → 1959.1d5dbd36400b94d2.js} +4 -4
- package/.next-prod/static/chunks/2032-8326efdf5830d58c.js +1 -0
- package/.next-prod/static/chunks/6722-1252a1399ff10e47.js +35 -0
- package/.next-prod/static/chunks/6784-20cc834d161af395.js +381 -0
- package/.next-prod/static/chunks/app/_global-error/page-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/agent/test/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/bash/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/codex/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/glm/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/kimi/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/ollama/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/stop/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/claude-stats/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/commands/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/comments/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/db/columns/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/db/connect/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/db/disconnect/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/db/export/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/db/query/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/db/schemas/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/deepseek/balance/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/deepseek/credentials/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/deepseek/models/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/dev/spans/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/extension/version/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/file/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/blame/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/clipboard/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/copy/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/delete/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/expanded/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/index/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/init/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/paste/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/read/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/readdir/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/recent/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/save/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/search/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/stat/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/files/text/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branches/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commits/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/current-branch/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/diff/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/discard/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/stage/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/status/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/unstage/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/git/worktree/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/glm/credentials/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/glm/models/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/glm/usage/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/global-state/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/health/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/html-apps/[id]/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/html-apps/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/load/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/save/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/kimi/credentials/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/kimi/models/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/kimi/usage/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/definition/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/hover/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/references/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/status/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/columns/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/connect/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/export/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/query/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/query/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/note/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/config/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/models/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/start/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/open-cursor/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/open-vscode/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/pick-folder/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/project-settings/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/project-state/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/projects/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/prompts/config/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/push/public-key/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/push/subscribe/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/command/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/connect/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/delete/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/get/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/keys/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/set/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/restart/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/review/identify/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/review/order/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/review/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/review/share-info/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/review/users/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/services/config/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/services/scripts/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/session-by-path/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/settings/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/shutdown/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/[id]/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/content/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/diff/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/env/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/history/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/update/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/api/version/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/apps/[...path]/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/{layout-ab52fc1a83af968b.js → layout-b11ccf3395201b18.js} +1 -1
- package/.next-prod/static/chunks/app/m/page-d7c162f2db6b377c.js +1 -0
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/app/{page-5de8b6584e328a6f.js → page-e03b50ea13cd6198.js} +1 -1
- package/.next-prod/static/chunks/app/project/{page-5de8b6584e328a6f.js → page-e03b50ea13cd6198.js} +1 -1
- package/.next-prod/static/chunks/app/review/[id]/page-556db82704d074ab.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-7c7e4c414aa6453c.js +1 -0
- package/.next-prod/static/chunks/{webpack-ce60587570394496.js → webpack-e959a5364a05b2ac.js} +1 -1
- package/.next-prod/static/css/237348b31ba05918.css +1 -0
- package/.next-prod/trace +14 -14
- package/.next-prod/trace-build +1 -1
- package/.next-prod/types/app/api/restart/route.ts +353 -0
- package/.next-prod/types/app/api/shutdown/route.ts +353 -0
- package/.next-prod/types/app/api/update/route.ts +353 -0
- package/.next-prod/types/routes.d.ts +4 -1
- package/.next-prod/types/validator.ts +27 -0
- package/README.md +75 -0
- package/README.zh.md +64 -0
- package/bin/cock-service.mjs +498 -0
- package/bin/cock.mjs +35 -27
- package/bin/cockpitHome.mjs +33 -0
- package/bin/rotateLog.mjs +52 -0
- package/bin/updater.mjs +231 -0
- package/dist/{chunk-B5LXMESP.mjs → chunk-FBAFMLUC.mjs} +1 -1
- package/dist/{chunk-CLPJYIFC.mjs → chunk-H6AI4XJC.mjs} +4 -3
- package/dist/{chunk-TU3GL2HK.mjs → chunk-ZE2JXL6E.mjs} +18 -7
- package/dist/httpApi.mjs +2 -2
- package/dist/scheduledTasks.mjs +24 -4
- package/dist/{server-2UJDVZ32.mjs → server-HRP33LCV.mjs} +2 -2
- package/dist/wsServer.mjs +144 -112
- package/package.json +1 -1
- package/public/html-lib/json-viewer.js +9 -9
- package/public/html-lib/markdown.css +0 -7
- package/public/html-lib/markdown.js +1 -1
- package/public/html-lib/pdf-viewer.css +0 -11
- package/public/html-lib/pdf-viewer.js +1 -1
- package/public/html-lib/theme.css +95 -11
- package/server.mjs +127 -11
- package/.next-prod/static/chunks/1157-164bcf046a0a9b15.js +0 -32
- package/.next-prod/static/chunks/1372-d16d68b1b03a345a.js +0 -15
- package/.next-prod/static/chunks/2032-f224a93f7a22bc21.js +0 -1
- package/.next-prod/static/chunks/6784-09dffdb0e8ca7fb3.js +0 -381
- package/.next-prod/static/chunks/app/_global-error/page-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/agent/test/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/bash/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/codex/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/glm/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/kimi/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/ollama/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/stop/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/claude-stats/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/commands/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/comments/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/db/columns/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/db/connect/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/db/disconnect/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/db/export/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/db/query/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/db/schemas/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/deepseek/balance/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/deepseek/credentials/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/deepseek/models/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/dev/spans/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/extension/version/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/file/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/blame/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/clipboard/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/copy/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/delete/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/expanded/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/index/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/init/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/paste/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/read/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/readdir/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/recent/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/save/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/search/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/stat/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/files/text/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branches/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commits/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/current-branch/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/diff/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/discard/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/stage/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/status/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/unstage/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/git/worktree/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/glm/credentials/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/glm/models/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/glm/usage/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/global-state/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/health/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/html-apps/[id]/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/html-apps/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/load/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/save/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/kimi/credentials/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/kimi/models/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/kimi/usage/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/definition/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/hover/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/references/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/status/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/columns/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/connect/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/export/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/query/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/query/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/note/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/config/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/models/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/start/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/open-cursor/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/open-vscode/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/pick-folder/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/project-settings/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/project-state/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/projects/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/prompts/config/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/push/public-key/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/push/subscribe/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/command/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/connect/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/delete/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/get/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/keys/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/set/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/review/identify/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/review/order/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/review/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/review/share-info/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/review/users/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/services/config/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/services/scripts/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/session-by-path/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/settings/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/[id]/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/content/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/diff/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/env/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/history/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/api/version/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/apps/[...path]/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/m/page-7dcf56a65528216f.js +0 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/app/review/[id]/page-c0136423507b7547.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-3c1c06e2de280418.js +0 -1
- package/.next-prod/static/css/83c134c954630942.css +0 -1
- package/.next-prod/static/pgteRwI6FQcp683smeSNO/_buildManifest.js +0 -1
- /package/.next-prod/static/{pgteRwI6FQcp683smeSNO → Jy5sAJFfhng774VeXYdQS}/_ssgManifest.js +0 -0
package/server.mjs
CHANGED
|
@@ -2,10 +2,11 @@ import { createServer } from 'http';
|
|
|
2
2
|
import { createGzip, constants as zlibConstants } from 'zlib';
|
|
3
3
|
import { exec, execSync } from 'child_process';
|
|
4
4
|
import { networkInterfaces, homedir } from 'os';
|
|
5
|
-
import { writeFileSync, mkdirSync, readFileSync, realpathSync } from 'fs';
|
|
5
|
+
import { writeFileSync, mkdirSync, readFileSync, realpathSync, unlinkSync } from 'fs';
|
|
6
6
|
import { join, dirname, resolve } from 'path';
|
|
7
7
|
import { fileURLToPath } from 'url';
|
|
8
8
|
import next from 'next';
|
|
9
|
+
import { rotateIfLarge } from './bin/rotateLog.mjs';
|
|
9
10
|
|
|
10
11
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
12
|
process.env.COCKPIT_ROOT = __dirname;
|
|
@@ -26,6 +27,34 @@ const cockpitHome = process.env.COCKPIT_HOME
|
|
|
26
27
|
// path if it doesn't exist yet.
|
|
27
28
|
const normHome = (p) => { try { return realpathSync(p); } catch { return p; } };
|
|
28
29
|
|
|
30
|
+
const SERVER_JSON = join(cockpitHome, 'server.json');
|
|
31
|
+
|
|
32
|
+
// Read once at boot. `version` backs `cockpit status` (process.env
|
|
33
|
+
// npm_package_version is only set when launched through an npm script, so it is
|
|
34
|
+
// null under `node server.mjs` / a service unit). `buildId` identifies the
|
|
35
|
+
// frontend assets this process serves — a browser tab left open across an
|
|
36
|
+
// upgrade still references the previous build's content-hashed chunks, which no
|
|
37
|
+
// longer exist on disk.
|
|
38
|
+
function readBuildInfo() {
|
|
39
|
+
let version = null;
|
|
40
|
+
try {
|
|
41
|
+
version = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf8')).version;
|
|
42
|
+
} catch { /* unreadable package.json — report null rather than fail boot */ }
|
|
43
|
+
let buildId = null;
|
|
44
|
+
try {
|
|
45
|
+
buildId = readFileSync(join(__dirname, '.next-prod', 'BUILD_ID'), 'utf8').trim();
|
|
46
|
+
} catch { /* dev mode has no prebuilt BUILD_ID */ }
|
|
47
|
+
return { version, buildId };
|
|
48
|
+
}
|
|
49
|
+
const buildInfo = readBuildInfo();
|
|
50
|
+
// Expose to the app layer. /api/health used to report
|
|
51
|
+
// process.env.npm_package_version, which npm only sets when the process was
|
|
52
|
+
// launched through an npm script — under `node server.mjs`, a service unit, or
|
|
53
|
+
// the global bin it was always null, so the health probe's version field was
|
|
54
|
+
// dead weight.
|
|
55
|
+
if (buildInfo.version) process.env.COCKPIT_VERSION = buildInfo.version;
|
|
56
|
+
if (buildInfo.buildId) process.env.COCKPIT_BUILD_ID = buildInfo.buildId;
|
|
57
|
+
|
|
29
58
|
// Single-instance-per-data-dir guard. Probe the recorded instance's /api/health: if a live
|
|
30
59
|
// cockpit on THIS data dir answers (app === 'cockpit' && home === this data dir), refuse and
|
|
31
60
|
// point the user at COCKPIT_HOME. Connection refused / timeout / wrong signature → stale → take
|
|
@@ -34,7 +63,7 @@ const normHome = (p) => { try { return realpathSync(p); } catch { return p; } };
|
|
|
34
63
|
async function ensureSingleInstance() {
|
|
35
64
|
if (process.env.COCKPIT_FORCE) return;
|
|
36
65
|
let prev;
|
|
37
|
-
try { prev = JSON.parse(readFileSync(
|
|
66
|
+
try { prev = JSON.parse(readFileSync(SERVER_JSON, 'utf8')); } catch { return; }
|
|
38
67
|
if (!prev || !prev.port) return;
|
|
39
68
|
try {
|
|
40
69
|
const ac = new AbortController();
|
|
@@ -47,7 +76,7 @@ async function ensureSingleInstance() {
|
|
|
47
76
|
console.error(` Data dir: ${cockpitHome}`);
|
|
48
77
|
console.error(` To run a second instance, isolate it with COCKPIT_HOME, e.g.:`);
|
|
49
78
|
console.error(` COCKPIT_HOME=~/.cockpit-alt cockpit`);
|
|
50
|
-
console.error(` False alarm? Delete ${
|
|
79
|
+
console.error(` False alarm? Delete ${SERVER_JSON} or set COCKPIT_FORCE=1.\n`);
|
|
51
80
|
process.exit(1);
|
|
52
81
|
}
|
|
53
82
|
} catch { /* connection refused / timeout / non-cockpit → stale, proceed */ }
|
|
@@ -77,23 +106,66 @@ async function ensureSingleInstance() {
|
|
|
77
106
|
let flushRunningSync = null;
|
|
78
107
|
|
|
79
108
|
let _cleanupRan = false;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* A child that must OUTLIVE us, registered on globalThis by /api/update.
|
|
112
|
+
*
|
|
113
|
+
* The updater is spawned by this process and then has to keep running after we
|
|
114
|
+
* exit — it is what reinstalls the package and starts the replacement server.
|
|
115
|
+
* `detached: true` is not enough: it moves the child into its own session and
|
|
116
|
+
* process group but leaves the parent/child relationship intact, so the
|
|
117
|
+
* `pkill -P <us>` below still matches it. Without this exclusion the server
|
|
118
|
+
* kills the very process that was supposed to bring it back, and the update
|
|
119
|
+
* stops dead with the server down.
|
|
120
|
+
*
|
|
121
|
+
* Read through globalThis because the route lives in Next's module graph and
|
|
122
|
+
* cannot import this file.
|
|
123
|
+
*/
|
|
124
|
+
function handedOffPid() {
|
|
125
|
+
const pid = globalThis.__cockpitHandedOffPid;
|
|
126
|
+
return typeof pid === 'number' && pid > 0 ? pid : null;
|
|
127
|
+
}
|
|
128
|
+
|
|
80
129
|
function killChildren() {
|
|
81
130
|
if (_cleanupRan) return;
|
|
82
131
|
_cleanupRan = true;
|
|
132
|
+
const spare = handedOffPid();
|
|
83
133
|
if (process.platform === 'win32') {
|
|
84
|
-
// Windows: list child PIDs
|
|
85
|
-
//
|
|
134
|
+
// Windows: list child PIDs, then taskkill /F /T each one — running /T on
|
|
135
|
+
// ourselves would take this process down too.
|
|
136
|
+
//
|
|
137
|
+
// This used to shell out to `wmic`, which is deprecated and absent by
|
|
138
|
+
// default from Windows 11 24H2; the failure was swallowed by the catch, so
|
|
139
|
+
// orphaned next-server workers were left running. PowerShell's CIM cmdlet
|
|
140
|
+
// is the supported replacement.
|
|
86
141
|
try {
|
|
87
|
-
const out = execSync(
|
|
88
|
-
|
|
142
|
+
const out = execSync(
|
|
143
|
+
`powershell -NoProfile -NonInteractive -Command "Get-CimInstance Win32_Process -Filter 'ParentProcessId=${process.pid}' | Select-Object -ExpandProperty ProcessId"`,
|
|
144
|
+
{ encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'], timeout: 5000 }
|
|
145
|
+
);
|
|
146
|
+
const pids = out.split(/\r?\n/).map(s => s.trim()).filter(s => /^\d+$/.test(s));
|
|
89
147
|
for (const pid of pids) {
|
|
148
|
+
if (spare && Number(pid) === spare) continue;
|
|
90
149
|
try { execSync(`taskkill /F /T /PID ${pid}`, { stdio: 'ignore' }); } catch {}
|
|
91
150
|
}
|
|
92
151
|
} catch {}
|
|
93
152
|
return;
|
|
94
153
|
}
|
|
95
|
-
// POSIX:
|
|
96
|
-
//
|
|
154
|
+
// POSIX: direct children only, no recursion (next-server and friends are all
|
|
155
|
+
// direct children — enough).
|
|
156
|
+
if (spare) {
|
|
157
|
+
// Enumerate and signal individually so the handed-off updater can be
|
|
158
|
+
// skipped; `pkill -P` has no exclusion form.
|
|
159
|
+
try {
|
|
160
|
+
const out = execSync(`pgrep -P ${process.pid}`, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'] });
|
|
161
|
+
for (const line of out.split('\n')) {
|
|
162
|
+
const pid = Number(line.trim());
|
|
163
|
+
if (!pid || pid === spare) continue;
|
|
164
|
+
try { process.kill(pid, 'SIGTERM'); } catch {}
|
|
165
|
+
}
|
|
166
|
+
} catch { /* pgrep exits 1 when there are no children */ }
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
97
169
|
// pkill exits 1 when nothing matches; not treated as an error.
|
|
98
170
|
try { execSync(`pkill -TERM -P ${process.pid}`, { stdio: 'ignore' }); } catch {}
|
|
99
171
|
}
|
|
@@ -103,8 +175,21 @@ function killChildren() {
|
|
|
103
175
|
// through process.exit() → 'exit' fires → this single hook covers every
|
|
104
176
|
// graceful shutdown. Flush live PTY scrollback to disk first, then kill the
|
|
105
177
|
// children (the flush reads this process's own memory — independent of them).
|
|
178
|
+
// Best-effort: drop our server.json on the way out so `cockpit status` says
|
|
179
|
+
// "not running" straight away instead of probing a dead port. Guarded by pid so
|
|
180
|
+
// we never delete a record a newer instance has since written. A hard kill
|
|
181
|
+
// (SIGKILL) skips this entirely — which is why status probes /api/health rather
|
|
182
|
+
// than trusting the file's existence.
|
|
183
|
+
function removeServerJson() {
|
|
184
|
+
try {
|
|
185
|
+
const rec = JSON.parse(readFileSync(SERVER_JSON, 'utf8'));
|
|
186
|
+
if (rec && rec.pid === process.pid) unlinkSync(SERVER_JSON);
|
|
187
|
+
} catch { /* absent, unreadable, or not ours */ }
|
|
188
|
+
}
|
|
189
|
+
|
|
106
190
|
process.on('exit', () => {
|
|
107
191
|
try { flushRunningSync?.(); } catch {}
|
|
192
|
+
removeServerJson();
|
|
108
193
|
killChildren();
|
|
109
194
|
});
|
|
110
195
|
|
|
@@ -173,6 +258,17 @@ const handle = app.getRequestHandler();
|
|
|
173
258
|
|
|
174
259
|
app.prepare().then(async () => {
|
|
175
260
|
await ensureSingleInstance();
|
|
261
|
+
|
|
262
|
+
// Rotate the app log — AFTER the single-instance check, never before. A
|
|
263
|
+
// second `cockpit` on the same data dir is rejected above, and if it had
|
|
264
|
+
// rotated first it would have consumed a generation of a *running*
|
|
265
|
+
// instance's history just by failing to start.
|
|
266
|
+
//
|
|
267
|
+
// Safe to do here because the Effect logger appends per write (fs/promises
|
|
268
|
+
// appendFile) rather than holding an fd, so nothing has the file open and it
|
|
269
|
+
// recreates it on the next line. This is also what makes it work on Windows,
|
|
270
|
+
// where renaming a file that some process holds open fails outright.
|
|
271
|
+
rotateIfLarge(join(cockpitHome, 'logs', 'cockpit.log'));
|
|
176
272
|
const upgradeHandler = app.getUpgradeHandler();
|
|
177
273
|
// v2 P8: HTTP intercepts (handleTerminalApi / handleBrowserApi) moved to src/lib/httpApi.ts
|
|
178
274
|
const { handleUpgrade, broadcastToGlobalState } = await import(dev ? './src/lib/wsServer.ts' : './dist/wsServer.mjs');
|
|
@@ -363,10 +459,30 @@ app.prepare().then(async () => {
|
|
|
363
459
|
const url = `http://localhost:${port}`;
|
|
364
460
|
console.log(`> Ready on ${url}`);
|
|
365
461
|
|
|
366
|
-
//
|
|
462
|
+
// Discoverability: `cockpit start` is the only way to survive closing the
|
|
463
|
+
// terminal (there is no service integration), but nothing else advertises
|
|
464
|
+
// it. Only worth saying when we ARE in the foreground — a backgrounded
|
|
465
|
+
// instance's operator already knows.
|
|
466
|
+
if ((process.env.COCKPIT_MANAGED || 'foreground') === 'foreground') {
|
|
467
|
+
console.log(' Tip: `cockpit start` runs it in the background — then this terminal can be closed.');
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
// Write server.json so CLI subcommands can read the port, and so
|
|
471
|
+
// `cockpit status` / `stop` can find and identify this instance.
|
|
367
472
|
try {
|
|
368
473
|
mkdirSync(cockpitHome, { recursive: true });
|
|
369
|
-
writeFileSync(
|
|
474
|
+
writeFileSync(SERVER_JSON, JSON.stringify({
|
|
475
|
+
pid: process.pid,
|
|
476
|
+
port,
|
|
477
|
+
version: buildInfo.version,
|
|
478
|
+
buildId: buildInfo.buildId,
|
|
479
|
+
startedAt: Date.now(),
|
|
480
|
+
// How this process is supervised, set by whoever launched it:
|
|
481
|
+
// 'foreground' (plain `cockpit`), 'bare' (`cockpit start`), or a
|
|
482
|
+
// service manager later on. `cockpit stop` uses it to decide whether
|
|
483
|
+
// stopping also means telling a supervisor not to restart us.
|
|
484
|
+
managed: process.env.COCKPIT_MANAGED || 'foreground',
|
|
485
|
+
}, null, 2));
|
|
370
486
|
} catch {}
|
|
371
487
|
|
|
372
488
|
// Auto-open the browser in prod mode (disable with --no-open)
|