@surething/cockpit 1.0.244 → 1.0.246
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 +7 -5
- package/.next-prod/build-manifest.json +3 -3
- package/.next-prod/prerender-manifest.json +3 -3
- package/.next-prod/react-loadable-manifest.json +2 -2
- package/.next-prod/routes-manifest.json +18 -4
- package/.next-prod/server/app/_global-error/page.js +3 -3
- package/.next-prod/server/app/_global-error/page.js.nft.json +1 -1
- package/.next-prod/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_global-error.html +1 -1
- package/.next-prod/server/app/_global-error.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next-prod/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found/page.js +2 -2
- package/.next-prod/server/app/_not-found/page.js.nft.json +1 -1
- package/.next-prod/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/_not-found.html +2 -2
- package/.next-prod/server/app/_not-found.rsc +4 -4
- package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +4 -4
- package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/.next-prod/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next-prod/server/app/api/agent/test/route.js +1 -1
- package/.next-prod/server/app/api/agent/test/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/bash/route.js +1 -1
- package/.next-prod/server/app/api/bash/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/codex/route.js +2 -2
- package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js +1 -1
- package/.next-prod/server/app/api/chat/deepseek/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/kimi/route.js +2 -2
- package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/pty-input/route.js +1 -1
- package/.next-prod/server/app/api/chat/pty-input/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/route.js +1 -1
- package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/stop/route.js +1 -1
- package/.next-prod/server/app/api/chat/stop/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/claude-stats/route.js +1 -1
- package/.next-prod/server/app/api/claude-stats/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/commands/route.js +1 -1
- package/.next-prod/server/app/api/commands/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/comments/route.js +1 -1
- package/.next-prod/server/app/api/comments/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/columns/route.js +1 -1
- package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/connect/route.js +1 -1
- package/.next-prod/server/app/api/db/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/db/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/export/route.js +1 -1
- package/.next-prod/server/app/api/db/export/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/query/route.js +1 -1
- package/.next-prod/server/app/api/db/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/deepseek/credentials/route.js +1 -1
- package/.next-prod/server/app/api/deepseek/credentials/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/dev/spans/route.js +1 -1
- package/.next-prod/server/app/api/dev/spans/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/extension/version/route.js +1 -1
- package/.next-prod/server/app/api/extension/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/file/route.js +1 -1
- package/.next-prod/server/app/api/file/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/blame/route.js +1 -1
- package/.next-prod/server/app/api/files/blame/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/clipboard/route.js +1 -1
- package/.next-prod/server/app/api/files/clipboard/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/copy/route.js +1 -1
- package/.next-prod/server/app/api/files/copy/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/delete/route.js +1 -1
- package/.next-prod/server/app/api/files/delete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/expanded/route.js +1 -1
- package/.next-prod/server/app/api/files/expanded/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/index/route.js +1 -1
- package/.next-prod/server/app/api/files/index/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/init/route.js +1 -1
- package/.next-prod/server/app/api/files/init/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/paste/route.js +1 -1
- package/.next-prod/server/app/api/files/paste/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/read/route.js +1 -1
- package/.next-prod/server/app/api/files/read/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/readdir/route.js +1 -1
- package/.next-prod/server/app/api/files/readdir/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/recent/route.js +1 -1
- package/.next-prod/server/app/api/files/recent/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/save/route.js +1 -1
- package/.next-prod/server/app/api/files/save/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/search/route.js +1 -1
- package/.next-prod/server/app/api/files/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/stat/route.js +1 -1
- package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/files/text/route.js +1 -1
- package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/branch-diff/route.js +1 -1
- package/.next-prod/server/app/api/git/branch-diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/branches/route.js +1 -1
- package/.next-prod/server/app/api/git/branches/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/commit-diff/route.js +1 -1
- package/.next-prod/server/app/api/git/commit-diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/commits/route.js +1 -1
- package/.next-prod/server/app/api/git/commits/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/current-branch/route.js +1 -1
- package/.next-prod/server/app/api/git/current-branch/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/diff/route.js +1 -1
- package/.next-prod/server/app/api/git/diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/discard/route.js +1 -1
- package/.next-prod/server/app/api/git/discard/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/stage/route.js +1 -1
- package/.next-prod/server/app/api/git/stage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/status/route.js +1 -1
- package/.next-prod/server/app/api/git/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/unstage/route.js +1 -1
- package/.next-prod/server/app/api/git/unstage/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/git/worktree/route.js +1 -1
- package/.next-prod/server/app/api/git/worktree/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/global-state/route.js +2 -2
- package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/health/route.js +1 -1
- package/.next-prod/server/app/api/health/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/html-apps/[id]/route.js +1 -0
- package/.next-prod/server/app/api/{preview/[...path] → html-apps/[id]}/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/html-apps/[id]/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/html-apps/route.js +1 -0
- package/.next-prod/server/app/api/html-apps/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/html-apps/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/save/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/save/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/shutdown/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/shutdown/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/definition/route.js +1 -1
- package/.next-prod/server/app/api/lsp/definition/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/hover/route.js +1 -1
- package/.next-prod/server/app/api/lsp/hover/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/references/route.js +1 -1
- package/.next-prod/server/app/api/lsp/references/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/status/route.js +1 -1
- package/.next-prod/server/app/api/lsp/status/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/lsp/warmup/route.js +1 -1
- package/.next-prod/server/app/api/lsp/warmup/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/connect/route.js +1 -1
- package/.next-prod/server/app/api/mysql/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/mysql/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/export/route.js +1 -1
- package/.next-prod/server/app/api/mysql/export/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/query/route.js +1 -1
- package/.next-prod/server/app/api/mysql/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/schemas/route.js +2 -2
- package/.next-prod/server/app/api/mysql/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/connect/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/query/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/query/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/neo4j/schema/route.js +1 -1
- package/.next-prod/server/app/api/neo4j/schema/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/note/route.js +1 -1
- package/.next-prod/server/app/api/note/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/ollama/config/route.js +1 -1
- package/.next-prod/server/app/api/ollama/config/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 -2
- package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/affected/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/affected/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/callees/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/callees/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/callers/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/callers/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/coedit/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/coedit/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/context/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/context/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/file/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/file-functions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/impact/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/impact/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/related/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/related/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/risk/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/risk/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projectGraph/search/route.js +1 -1
- package/.next-prod/server/app/api/projectGraph/search/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/projects/route.js +1 -1
- package/.next-prod/server/app/api/projects/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/public-key/route.js +1 -1
- package/.next-prod/server/app/api/push/public-key/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/subscribe/route.js +1 -1
- package/.next-prod/server/app/api/push/subscribe/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/push/unsubscribe/route.js +1 -1
- package/.next-prod/server/app/api/push/unsubscribe/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/command/route.js +1 -1
- package/.next-prod/server/app/api/redis/command/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/connect/route.js +1 -1
- package/.next-prod/server/app/api/redis/connect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/delete/route.js +1 -1
- package/.next-prod/server/app/api/redis/delete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/disconnect/route.js +1 -1
- package/.next-prod/server/app/api/redis/disconnect/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/get/route.js +1 -1
- package/.next-prod/server/app/api/redis/get/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/keys/route.js +1 -1
- package/.next-prod/server/app/api/redis/keys/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/redis/set/route.js +1 -1
- package/.next-prod/server/app/api/redis/set/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/comments/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/comments/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/replies/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/replies/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/[id]/route.js +1 -1
- package/.next-prod/server/app/api/review/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/identify/route.js +1 -1
- package/.next-prod/server/app/api/review/identify/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/order/route.js +1 -1
- package/.next-prod/server/app/api/review/order/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/route.js +1 -1
- package/.next-prod/server/app/api/review/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/share-info/route.js +1 -1
- package/.next-prod/server/app/api/review/share-info/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/review/users/route.js +1 -1
- package/.next-prod/server/app/api/review/users/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js +2 -2
- package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/services/config/route.js +1 -1
- package/.next-prod/server/app/api/services/config/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/services/scripts/route.js +1 -1
- package/.next-prod/server/app/api/services/scripts/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/fork/route.js +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/fork/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/history/route.js +1 -1
- package/.next-prod/server/app/api/session/[sessionId]/history/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js +1 -1
- package/.next-prod/server/app/api/session-by-path/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js +1 -1
- package/.next-prod/server/app/api/sessions/projects/[encodedPath]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/projects/route.js +1 -1
- package/.next-prod/server/app/api/sessions/projects/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/sessions/route.js +1 -1
- package/.next-prod/server/app/api/sessions/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/settings/route.js +1 -1
- package/.next-prod/server/app/api/settings/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/[id]/route.js +1 -1
- package/.next-prod/server/app/api/skills/[id]/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/content/route.js +1 -1
- package/.next-prod/server/app/api/skills/content/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/skills/route.js +1 -1
- package/.next-prod/server/app/api/skills/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/snapshots/diff/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/diff/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/snapshots/route.js +1 -1
- package/.next-prod/server/app/api/snapshots/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/aliases/route.js +1 -1
- package/.next-prod/server/app/api/terminal/aliases/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/autocomplete/route.js +1 -1
- package/.next-prod/server/app/api/terminal/autocomplete/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js +1 -1
- package/.next-prod/server/app/api/terminal/bubble-order/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/env/route.js +1 -1
- package/.next-prod/server/app/api/terminal/env/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/terminal/history/route.js +1 -1
- package/.next-prod/server/app/api/terminal/history/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/version/route.js +1 -1
- package/.next-prod/server/app/api/version/route.js.nft.json +1 -1
- package/.next-prod/server/app/apps/[...path]/route.js +1 -0
- package/.next-prod/server/app/apps/[...path]/route.js.nft.json +1 -0
- package/.next-prod/server/app/apps/[...path]/route_client-reference-manifest.js +1 -0
- 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/favicon.ico.body +0 -0
- package/.next-prod/server/app/m/page.js +2 -2
- package/.next-prod/server/app/m/page.js.nft.json +1 -1
- package/.next-prod/server/app/m/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
- package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next-prod/server/app/page.js +2 -2
- package/.next-prod/server/app/page.js.nft.json +1 -1
- package/.next-prod/server/app/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/project/page.js +2 -2
- package/.next-prod/server/app/project/page.js.nft.json +1 -1
- package/.next-prod/server/app/project/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/review/[id]/page.js +2 -2
- package/.next-prod/server/app/review/[id]/page.js.nft.json +1 -1
- package/.next-prod/server/app/review/[id]/page_client-reference-manifest.js +1 -1
- package/.next-prod/server/app-paths-manifest.json +7 -5
- package/.next-prod/server/chunks/304.js +1 -1
- package/.next-prod/server/chunks/4848.js +291 -3
- package/.next-prod/server/chunks/4916.js +368 -0
- package/.next-prod/server/chunks/{5674.js → 6023.js} +5 -5
- package/.next-prod/server/chunks/6038.js +1 -1
- package/.next-prod/server/chunks/9658.js +379 -12
- 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/D0hP0hbht20IrPe7xUl96/_buildManifest.js +1 -0
- package/.next-prod/static/chunks/{9779.7a4ff1aee2a02f63.js → 2160.e38d781fd5c4cde0.js} +1 -1
- package/.next-prod/static/chunks/{1973-5ba02ae354968836.js → 4304-408f5bddd7583676.js} +3 -3
- package/.next-prod/static/chunks/{7849-7c580c908fe21e9d.js → 4473-6877df387a4a05a5.js} +2 -2
- package/.next-prod/static/chunks/{4523.aaab4b1bd81167d4.js → 4523.3f277a24fbcfde6d.js} +1 -1
- package/.next-prod/static/chunks/6784-59c6418d36cf5a13.js +0 -0
- package/.next-prod/static/chunks/8010-75928e3e1e85c88e.js +25 -0
- package/.next-prod/static/chunks/9530-9a02795e0607577c.js +382 -0
- package/.next-prod/static/chunks/app/_global-error/page-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/agent/test/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/bash/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/codex/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/kimi/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/ollama/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/pty-input/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/stop/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/claude-stats/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/commands/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/comments/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/db/columns/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/db/connect/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/db/disconnect/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/db/export/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/db/query/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/db/schemas/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/deepseek/credentials/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/dev/spans/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/extension/version/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/file/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/blame/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/clipboard/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/copy/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/delete/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/expanded/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/index/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/init/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/paste/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/read/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/readdir/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/recent/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/save/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/search/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/stat/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/files/text/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branches/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commits/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/current-branch/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/diff/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/discard/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/stage/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/status/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/unstage/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/git/worktree/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/global-state/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/health/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/html-apps/[id]/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/html-apps/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/load/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/save/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/definition/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/hover/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/references/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/status/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/columns/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/connect/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/export/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/query/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/query/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/note/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/config/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/models/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/start/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/open-cursor/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/open-vscode/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/pick-folder/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/project-settings/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/project-state/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/projects/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/push/public-key/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/push/subscribe/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/command/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/connect/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/delete/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/get/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/keys/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/set/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/review/identify/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/review/order/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/review/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/review/share-info/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/review/users/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/services/config/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/services/scripts/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/session-by-path/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/settings/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/[id]/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/content/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/diff/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/snapshots/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/env/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/history/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/api/version/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/apps/[...path]/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/{layout-392444ad665c7748.js → layout-c33e42d8bc9d4b27.js} +1 -1
- package/.next-prod/static/chunks/app/m/page-03365a5db8980b50.js +1 -0
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/app/{page-a32d8344284e99cb.js → page-972d36c0519a910e.js} +1 -1
- package/.next-prod/static/chunks/app/project/{page-a32d8344284e99cb.js → page-972d36c0519a910e.js} +1 -1
- package/.next-prod/static/chunks/app/review/[id]/page-c9716ea0049cc328.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-51252a3b116b8135.js +1 -0
- package/.next-prod/static/chunks/webpack-fb9d282647d95d0a.js +1 -0
- package/.next-prod/static/css/546386ec7f3b9978.css +1 -0
- package/.next-prod/trace +14 -13
- package/.next-prod/trace-build +1 -1
- package/.next-prod/types/app/api/{preview/[...path] → html-apps/[id]}/route.ts +3 -3
- package/.next-prod/types/app/api/html-apps/route.ts +351 -0
- package/.next-prod/types/app/apps/[...path]/route.ts +351 -0
- package/.next-prod/types/routes.d.ts +4 -2
- package/.next-prod/types/validator.ts +27 -9
- package/apps/file-viewer/app.jsx +411 -0
- package/apps/file-viewer/index.html +76 -0
- package/dist/{chunk-FMJUH423.mjs → chunk-7WPYQYA6.mjs} +44 -2
- package/dist/{chunk-BFESJMNO.mjs → chunk-BRW4ZEIC.mjs} +1 -0
- package/dist/{chunk-3X4GQZL4.mjs → chunk-RUNUGDPP.mjs} +1 -1
- package/dist/httpApi.mjs +2 -2
- package/dist/scheduledTasks.mjs +295 -2
- package/dist/{server-HKW65PHP.mjs → server-MCN5AIEU.mjs} +4 -2
- package/dist/wsServer.mjs +200 -7
- package/package.json +6 -3
- package/public/html-lib/babel.min.js +2 -0
- package/public/html-lib/fonts/KaTeX_AMS-Regular-CYEKBG2K.woff +0 -0
- package/public/html-lib/fonts/KaTeX_AMS-Regular-JKX5W2C4.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_AMS-Regular-U6PRYMIZ.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Caligraphic-Bold-5QL5CMTE.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Caligraphic-Bold-WZ3QSGD3.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Caligraphic-Regular-3LKEU76G.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Caligraphic-Regular-KX5MEWCF.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Fraktur-Bold-2QVFK6NQ.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Fraktur-Bold-T4SWXBMT.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Fraktur-Bold-WGHVTYOR.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Fraktur-Regular-2PEIFJSJ.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Fraktur-Regular-5U4OPH2X.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Fraktur-Regular-PQMHCIK6.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Bold-2GA4IZIN.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Bold-W5FBVCZM.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Bold-YP5VVQRP.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Main-BoldItalic-4P4C7HJH.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Main-BoldItalic-N4V3DX7S.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Main-BoldItalic-ODMLBJJQ.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Italic-I43T2HSR.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Italic-RELBIK7M.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Italic-SASNQFN2.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Regular-ARRPAO67.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Regular-P5I74A2A.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Main-Regular-W74P5G27.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Math-BoldItalic-6EBV3DK5.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Math-BoldItalic-K4WTGH3J.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Math-BoldItalic-VB447A4D.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Math-Italic-6KGCHLFN.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Math-Italic-KKK3USB2.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Math-Italic-SON4MRCA.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Bold-RRNVJFFW.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Bold-STQ6RXC7.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Bold-X5M5EMOD.woff +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Italic-HMPFTM52.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Italic-PSN4QKYX.woff +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Italic-WTBAZBGY.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Regular-2TL3USAE.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Regular-OQCII6EP.woff +0 -0
- package/public/html-lib/fonts/KaTeX_SansSerif-Regular-XIQ62X4E.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Script-Regular-72OLXYNA.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Script-Regular-A5IFOEBS.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Script-Regular-APUWIHLP.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Size1-Regular-4HRHTS65.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Size1-Regular-5LRUTBFT.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Size1-Regular-7K6AASVL.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Size2-Regular-222HN3GT.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Size2-Regular-K5ZHAIS6.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Size2-Regular-LELKET5D.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Size3-Regular-TLFPAHDE.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Size3-Regular-UFCO6WCA.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Size3-Regular-WQRQ47UD.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Size4-Regular-7PGNVPQK.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Size4-Regular-CDMV7U5C.woff2 +0 -0
- package/public/html-lib/fonts/KaTeX_Size4-Regular-PKMWZHNC.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Typewriter-Regular-3F5K6SQ6.ttf +0 -0
- package/public/html-lib/fonts/KaTeX_Typewriter-Regular-MJMFSK64.woff +0 -0
- package/public/html-lib/fonts/KaTeX_Typewriter-Regular-VBYJ4NRC.woff2 +0 -0
- package/public/html-lib/json-viewer.js +91 -0
- package/public/html-lib/markdown.css +419 -0
- package/public/html-lib/markdown.js +418 -0
- package/public/html-lib/pdf-viewer.css +444 -0
- package/public/html-lib/pdf-viewer.js +123 -0
- package/public/html-lib/react-dom.production.min.js +267 -0
- package/public/html-lib/react.production.min.js +31 -0
- package/public/html-lib/theme.css +101 -0
- package/.next-prod/server/app/api/preview/[...path]/route.js +0 -1
- package/.next-prod/server/app/api/preview/[...path]/route_client-reference-manifest.js +0 -1
- package/.next-prod/static/chunks/1871-4468d75ec99d71fc.js +0 -25
- package/.next-prod/static/chunks/6784-53d80dc3b480cf9a.js +0 -0
- package/.next-prod/static/chunks/9530-08419cb81f88a0e6.js +0 -15
- package/.next-prod/static/chunks/app/_global-error/page-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/agent/test/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/bash/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/codex/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/deepseek/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/kimi/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/ollama/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/pty-input/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/stop/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/claude-stats/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/commands/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/comments/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/db/columns/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/db/connect/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/db/disconnect/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/db/export/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/db/query/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/db/schemas/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/deepseek/credentials/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/dev/spans/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/extension/version/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/file/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/blame/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/clipboard/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/copy/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/delete/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/expanded/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/index/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/init/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/paste/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/read/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/readdir/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/recent/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/save/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/search/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/stat/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/files/text/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branches/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commits/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/current-branch/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/diff/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/discard/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/stage/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/status/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/unstage/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/git/worktree/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/global-state/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/health/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/load/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/save/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/definition/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/hover/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/references/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/status/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/columns/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/connect/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/export/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/query/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/query/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/note/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/config/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/models/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/start/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/open-cursor/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/open-vscode/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/pick-folder/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/preview/[...path]/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/project-settings/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/project-state/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/affected/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callees/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/callers/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/coedit/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/context/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/file-functions/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/impact/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/related/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/risk/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projectGraph/search/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/projects/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/push/public-key/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/push/subscribe/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/push/unsubscribe/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/command/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/connect/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/delete/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/get/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/keys/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/set/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/review/identify/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/review/order/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/review/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/review/share-info/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/review/users/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/services/config/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/services/scripts/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/session-by-path/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/settings/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/[id]/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/content/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/diff/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/snapshots/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/env/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/history/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/api/version/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/m/page-54053828af79704f.js +0 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/app/review/[id]/page-0c5d03d65758c7dc.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-6d7aa508d9d8bcc3.js +0 -1
- package/.next-prod/static/chunks/webpack-01274185cb710e57.js +0 -1
- package/.next-prod/static/css/1d52d90207f3b441.css +0 -1
- package/.next-prod/static/sMb_F5kg6en8USwL7FYkb/_buildManifest.js +0 -1
- /package/.next-prod/static/{sMb_F5kg6en8USwL7FYkb → D0hP0hbht20IrPe7xUl96}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
"use strict";exports.id=4916,exports.ids=[4916],exports.modules={66106:(a,b,c)=>{c.d(b,{J4:()=>f,OP:()=>i,Z1:()=>e,qI:()=>h});let d=`
|
|
2
|
+
(function () {
|
|
3
|
+
if (window.cockpit) return;
|
|
4
|
+
|
|
5
|
+
// Language — parked on <html data-cockpit-lang>, NOT delivered by listener
|
|
6
|
+
// alone. The host pushes cockpit:language-change once, on the iframe's load
|
|
7
|
+
// event. Anything registering a listener later misses it forever, and the
|
|
8
|
+
// widget bundles (/html-lib markdown / json / pdf) are lazily fetched — they
|
|
9
|
+
// always register after load, so they used to fall back to navigator.language
|
|
10
|
+
// and disagree with the Cockpit setting until the user toggled it. This script
|
|
11
|
+
// is injected at the very start of <head>, so it is guaranteed to be listening
|
|
12
|
+
// first; parking the value turns a one-shot message into order-independent
|
|
13
|
+
// state any later reader can just read.
|
|
14
|
+
//
|
|
15
|
+
// A DEDICATED attribute, not <html lang>: pages ship their own lang="en" (the
|
|
16
|
+
// built-in file-viewer does), so <html lang> cannot distinguish "the host told
|
|
17
|
+
// us" from "the document's own default" — reading it would pin every reader to
|
|
18
|
+
// the page's hardcoded value and silently kill the navigator fallback.
|
|
19
|
+
var applyLang = function (lang) {
|
|
20
|
+
if (!lang) return;
|
|
21
|
+
try {
|
|
22
|
+
document.documentElement.setAttribute('data-cockpit-lang', lang);
|
|
23
|
+
document.documentElement.lang = lang; // keep the document honest for a11y
|
|
24
|
+
} catch (e) {}
|
|
25
|
+
};
|
|
26
|
+
window.addEventListener('message', function (ev) {
|
|
27
|
+
var d = ev && ev.data;
|
|
28
|
+
if (d && d.type === 'cockpit:language-change') applyLang(d.lang);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// Theme — OPT-IN. The floating top-right toggle + any .dark class management
|
|
32
|
+
// happen ONLY when the page declares <meta name="cockpit-theme" content="...">.
|
|
33
|
+
// Rationale: injection is by file type, not by SDK usage, so plain one-off pages
|
|
34
|
+
// (notes, reports) with no dark styling used to get a dead button that toggled a
|
|
35
|
+
// .dark class nothing responds to. Requiring an explicit opt-in marker keeps the
|
|
36
|
+
// button off those pages, while apps that provide :root/.dark tokens just add the
|
|
37
|
+
// meta to get a free host-managed toggle — no per-app button code needed.
|
|
38
|
+
// content="auto" → first load with no stored choice follows the OS preference
|
|
39
|
+
// content="light" → first load defaults to light (still user-toggleable)
|
|
40
|
+
// content="dark" → first load defaults to dark
|
|
41
|
+
// The user's explicit toggle is REMEMBERED per app (key namespaced by cockpit-name,
|
|
42
|
+
// else page path) across reloads, and wins over the content default on next load.
|
|
43
|
+
// localStorage is SHARED with Cockpit + every other app, hence the namespaced key.
|
|
44
|
+
// Apps can also drive it programmatically via window.cockpit.toggleTheme().
|
|
45
|
+
var toggleTheme = function () {};
|
|
46
|
+
var initTheme = function () {
|
|
47
|
+
try {
|
|
48
|
+
var themeMeta = function (n) {
|
|
49
|
+
var el = document.querySelector('meta[name="' + n + '"]');
|
|
50
|
+
return el ? el.content : '';
|
|
51
|
+
};
|
|
52
|
+
var themeSetting = (themeMeta('cockpit-theme') || '').toLowerCase().trim();
|
|
53
|
+
if (themeSetting) {
|
|
54
|
+
var themeKey = 'htmlapp-theme:' + (themeMeta('cockpit-name') || location.pathname);
|
|
55
|
+
// Store the explicit choice both ways so it round-trips regardless of the
|
|
56
|
+
// content default (a bare "store only dark" model would lose a user's light
|
|
57
|
+
// choice under content="auto" on a dark OS).
|
|
58
|
+
var themeStore = function (d) {
|
|
59
|
+
try { localStorage.setItem(themeKey, d ? 'dark' : 'light'); } catch (e) {}
|
|
60
|
+
};
|
|
61
|
+
var themeBtn = null;
|
|
62
|
+
var setDark = function (d, persist) {
|
|
63
|
+
document.documentElement.classList.toggle('dark', !!d);
|
|
64
|
+
if (persist) themeStore(!!d);
|
|
65
|
+
if (themeBtn) themeBtn.textContent = d ? '☀️' : '\u{1F319}';
|
|
66
|
+
};
|
|
67
|
+
toggleTheme = function () {
|
|
68
|
+
setDark(!document.documentElement.classList.contains('dark'), true);
|
|
69
|
+
};
|
|
70
|
+
// Init: remembered user choice wins; else the content default; "auto" follows OS.
|
|
71
|
+
var stored = null;
|
|
72
|
+
try { stored = localStorage.getItem(themeKey); } catch (e) {}
|
|
73
|
+
var initDark;
|
|
74
|
+
if (stored === 'dark' || stored === 'light') initDark = stored === 'dark';
|
|
75
|
+
else if (themeSetting === 'dark') initDark = true;
|
|
76
|
+
else if (themeSetting === 'auto') initDark = !!(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches);
|
|
77
|
+
else initDark = false; // light / unknown
|
|
78
|
+
setDark(initDark, false);
|
|
79
|
+
// Follow the Cockpit host theme by default: the console bubble pushes a
|
|
80
|
+
// THEME_CHANGE on iframe load and ThemeProvider broadcasts it on toggle.
|
|
81
|
+
// An explicit per-app user choice (stored) always wins over the host.
|
|
82
|
+
window.addEventListener('message', function (ev) {
|
|
83
|
+
var d = ev && ev.data;
|
|
84
|
+
if (!d || d.type !== 'THEME_CHANGE') return;
|
|
85
|
+
var userChoice = null;
|
|
86
|
+
try { userChoice = localStorage.getItem(themeKey); } catch (e) {}
|
|
87
|
+
if (userChoice === 'dark' || userChoice === 'light') return;
|
|
88
|
+
var hostDark = d.theme === 'dark' || (d.theme === 'system' &&
|
|
89
|
+
!!(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches));
|
|
90
|
+
setDark(hostDark, false);
|
|
91
|
+
});
|
|
92
|
+
// The button is DRAGGABLE and snaps to whichever of the 4 viewport corners
|
|
93
|
+
// it was released nearest to. A fixed corner is unworkable: the host picks
|
|
94
|
+
// the spot, the app owns the content, and any app with its own top-right
|
|
95
|
+
// affordance (close button, toolbar, TOC) had it permanently covered with
|
|
96
|
+
// no escape. The chosen corner is remembered GLOBALLY (not per app) — one
|
|
97
|
+
// gesture then holds for every HTML app, which is the common case since
|
|
98
|
+
// apps tend to crowd the same corner.
|
|
99
|
+
var CORNER_KEY = 'htmlapp-theme-corner'; // 'tl' | 'tr' | 'bl' | 'br'
|
|
100
|
+
var CORNER_MARGIN = 10;
|
|
101
|
+
var corner = 'tr'; // default = the historic position
|
|
102
|
+
try {
|
|
103
|
+
var storedCorner = localStorage.getItem(CORNER_KEY);
|
|
104
|
+
if (storedCorner === 'tl' || storedCorner === 'tr' ||
|
|
105
|
+
storedCorner === 'bl' || storedCorner === 'br') corner = storedCorner;
|
|
106
|
+
} catch (e) {}
|
|
107
|
+
// Only the CORNER is persisted, never pixels: on resize/rotate a remembered
|
|
108
|
+
// coordinate can land off-screen, while a corner is always re-derivable.
|
|
109
|
+
var applyCorner = function () {
|
|
110
|
+
if (!themeBtn) return;
|
|
111
|
+
var s = themeBtn.style;
|
|
112
|
+
var atTop = corner.charAt(0) === 't';
|
|
113
|
+
var atLeft = corner.charAt(1) === 'l';
|
|
114
|
+
s.top = atTop ? CORNER_MARGIN + 'px' : 'auto';
|
|
115
|
+
s.bottom = atTop ? 'auto' : CORNER_MARGIN + 'px';
|
|
116
|
+
s.left = atLeft ? CORNER_MARGIN + 'px' : 'auto';
|
|
117
|
+
s.right = atLeft ? 'auto' : CORNER_MARGIN + 'px';
|
|
118
|
+
};
|
|
119
|
+
var mountThemeBtn = function () {
|
|
120
|
+
if (themeBtn || !document.body) return;
|
|
121
|
+
themeBtn = document.createElement('button');
|
|
122
|
+
themeBtn.type = 'button';
|
|
123
|
+
themeBtn.setAttribute('aria-label', 'Toggle theme');
|
|
124
|
+
themeBtn.textContent = document.documentElement.classList.contains('dark') ? '☀️' : '\u{1F319}';
|
|
125
|
+
// touch-action:none — the drag is pointer-driven, so the browser must not
|
|
126
|
+
// also treat the gesture as a scroll. Without it a touch-drag inside an
|
|
127
|
+
// iframe can scroll-chain to the Cockpit shell behind it.
|
|
128
|
+
themeBtn.style.cssText = 'position:fixed;z-index:2147483647;width:36px;height:36px;' +
|
|
129
|
+
'border-radius:8px;border:1px solid rgba(128,128,128,.3);background:rgba(128,128,128,.14);' +
|
|
130
|
+
'color:inherit;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;' +
|
|
131
|
+
'justify-content:center;padding:0;touch-action:none';
|
|
132
|
+
applyCorner();
|
|
133
|
+
|
|
134
|
+
var dragging = false; // past the slop threshold for THIS gesture
|
|
135
|
+
var didDrag = false; // a drag happened -> swallow the trailing click
|
|
136
|
+
var startX = 0, startY = 0, grabX = 0, grabY = 0;
|
|
137
|
+
|
|
138
|
+
themeBtn.addEventListener('pointerdown', function (ev) {
|
|
139
|
+
if (ev.button) return; // primary button / touch / pen only
|
|
140
|
+
dragging = false;
|
|
141
|
+
didDrag = false; // reset here, so a swallowed click
|
|
142
|
+
// can never leak into the next press
|
|
143
|
+
startX = ev.clientX; startY = ev.clientY;
|
|
144
|
+
var r = themeBtn.getBoundingClientRect();
|
|
145
|
+
grabX = ev.clientX - r.left; grabY = ev.clientY - r.top;
|
|
146
|
+
try { themeBtn.setPointerCapture(ev.pointerId); } catch (e) {}
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
themeBtn.addEventListener('pointermove', function (ev) {
|
|
150
|
+
if (!themeBtn.hasPointerCapture || !themeBtn.hasPointerCapture(ev.pointerId)) return;
|
|
151
|
+
if (!dragging) {
|
|
152
|
+
// Slop before a press becomes a drag: a finger never holds as still as
|
|
153
|
+
// a mouse, so touch needs the looser threshold or taps turn into drags.
|
|
154
|
+
var slop = ev.pointerType === 'touch' ? 8 : 5;
|
|
155
|
+
if (Math.abs(ev.clientX - startX) < slop &&
|
|
156
|
+
Math.abs(ev.clientY - startY) < slop) return;
|
|
157
|
+
dragging = true; didDrag = true;
|
|
158
|
+
}
|
|
159
|
+
ev.preventDefault();
|
|
160
|
+
var s = themeBtn.style;
|
|
161
|
+
s.right = 'auto'; s.bottom = 'auto'; // free-float while held
|
|
162
|
+
s.left = (ev.clientX - grabX) + 'px';
|
|
163
|
+
s.top = (ev.clientY - grabY) + 'px';
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
var endDrag = function (ev) {
|
|
167
|
+
try { themeBtn.releasePointerCapture(ev.pointerId); } catch (e) {}
|
|
168
|
+
if (!dragging) return;
|
|
169
|
+
dragging = false;
|
|
170
|
+
var r = themeBtn.getBoundingClientRect();
|
|
171
|
+
corner = ((r.top + r.height / 2) < window.innerHeight / 2 ? 't' : 'b') +
|
|
172
|
+
((r.left + r.width / 2) < window.innerWidth / 2 ? 'l' : 'r');
|
|
173
|
+
try { localStorage.setItem(CORNER_KEY, corner); } catch (e) {}
|
|
174
|
+
applyCorner();
|
|
175
|
+
};
|
|
176
|
+
themeBtn.addEventListener('pointerup', endDrag);
|
|
177
|
+
themeBtn.addEventListener('pointercancel', function (ev) {
|
|
178
|
+
dragging = false;
|
|
179
|
+
try { themeBtn.releasePointerCapture(ev.pointerId); } catch (e) {}
|
|
180
|
+
applyCorner(); // snap back rather than strand it
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
// Kept as a click handler rather than firing on pointerup so keyboard
|
|
184
|
+
// activation (Enter/Space on the focused button) still toggles.
|
|
185
|
+
themeBtn.onclick = function () {
|
|
186
|
+
if (didDrag) { didDrag = false; return; }
|
|
187
|
+
toggleTheme();
|
|
188
|
+
};
|
|
189
|
+
window.addEventListener('resize', applyCorner);
|
|
190
|
+
document.body.appendChild(themeBtn);
|
|
191
|
+
};
|
|
192
|
+
if (document.body) mountThemeBtn();
|
|
193
|
+
else window.addEventListener('DOMContentLoaded', mountThemeBtn);
|
|
194
|
+
}
|
|
195
|
+
} catch (e) {}
|
|
196
|
+
};
|
|
197
|
+
// This script is injected at the START of <head>, BEFORE the page's own
|
|
198
|
+
// <meta> tags are parsed — reading them synchronously here always misses
|
|
199
|
+
// them. Defer theme init until the DOM is ready so the opt-in meta is seen.
|
|
200
|
+
if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', initTheme);
|
|
201
|
+
else initTheme();
|
|
202
|
+
|
|
203
|
+
var CWD = __CWD__;
|
|
204
|
+
var WS_URL = __WS_URL__;
|
|
205
|
+
|
|
206
|
+
var ws = null;
|
|
207
|
+
var ready = false;
|
|
208
|
+
var queue = []; // [{ id, s }] — pending frames, drained on open
|
|
209
|
+
var handlers = {}; // id -> { onStdout, onStderr, onExit, onError, gen }
|
|
210
|
+
var seq = 0;
|
|
211
|
+
var gen = 0; // connection generation; see ensureWs
|
|
212
|
+
|
|
213
|
+
function resolveWsUrl() {
|
|
214
|
+
if (WS_URL) return WS_URL;
|
|
215
|
+
var proto = location.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
216
|
+
return proto + '//' + location.host + '/ws/bash?cwd=' + encodeURIComponent(CWD);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
function failAll(reason) {
|
|
220
|
+
var ids = Object.keys(handlers);
|
|
221
|
+
for (var i = 0; i < ids.length; i++) {
|
|
222
|
+
var h = handlers[ids[i]];
|
|
223
|
+
delete handlers[ids[i]];
|
|
224
|
+
if (h && h.onError) h.onError(reason);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Fail only the commands carried by ONE connection. Handlers are tagged with
|
|
230
|
+
* the generation of the socket that actually wrote them, so a socket that has
|
|
231
|
+
* been replaced can report its own losses without touching its successor's
|
|
232
|
+
* in-flight work.
|
|
233
|
+
*/
|
|
234
|
+
function failGen(g, reason) {
|
|
235
|
+
var ids = Object.keys(handlers);
|
|
236
|
+
for (var i = 0; i < ids.length; i++) {
|
|
237
|
+
var h = handlers[ids[i]];
|
|
238
|
+
if (!h || h.gen !== g) continue;
|
|
239
|
+
delete handlers[ids[i]];
|
|
240
|
+
if (h.onError) h.onError(reason);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
function ensureWs() {
|
|
245
|
+
if (ws && (ws.readyState === 0 || ws.readyState === 1)) return;
|
|
246
|
+
// A socket in CLOSING(2) is replaced here rather than waited on, so two
|
|
247
|
+
// sockets can briefly coexist. Shared state (\`ready\`, \`queue\`) may only
|
|
248
|
+
// be touched by the CURRENT socket — otherwise a replaced socket's late
|
|
249
|
+
// onclose flips \`ready\` to false while its successor is already open, and
|
|
250
|
+
// since the successor's onopen has long since fired nothing ever sets it
|
|
251
|
+
// back: every later bash() then queues forever with no error at all.
|
|
252
|
+
var myGen = ++gen;
|
|
253
|
+
var sock;
|
|
254
|
+
try { sock = new WebSocket(resolveWsUrl()); }
|
|
255
|
+
catch (e) { failAll(String(e)); return; }
|
|
256
|
+
ws = sock;
|
|
257
|
+
ready = false;
|
|
258
|
+
sock.onopen = function () {
|
|
259
|
+
if (ws !== sock) return;
|
|
260
|
+
ready = true;
|
|
261
|
+
var q = queue; queue = [];
|
|
262
|
+
for (var i = 0; i < q.length; i++) {
|
|
263
|
+
// Re-tag: this socket, not the one queued them, is the carrier.
|
|
264
|
+
if (handlers[q[i].id]) handlers[q[i].id].gen = myGen;
|
|
265
|
+
sock.send(q[i].s);
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
// NOT generation-guarded: ids are globally unique, so a late frame can only
|
|
269
|
+
// belong to the command this very socket carried. Dropping it would leave
|
|
270
|
+
// that command's promise unsettled forever.
|
|
271
|
+
sock.onmessage = function (ev) {
|
|
272
|
+
var msg;
|
|
273
|
+
try { msg = JSON.parse(ev.data); } catch (e) { return; }
|
|
274
|
+
if (msg.type === 'ping') return;
|
|
275
|
+
var h = handlers[msg.id];
|
|
276
|
+
if (!h) return;
|
|
277
|
+
if (msg.type === 'stdout') { if (h.onStdout) h.onStdout(msg.data); }
|
|
278
|
+
else if (msg.type === 'stderr') { if (h.onStderr) h.onStderr(msg.data); }
|
|
279
|
+
else if (msg.type === 'exit') { delete handlers[msg.id]; if (h.onExit) h.onExit(msg.code); }
|
|
280
|
+
else if (msg.type === 'error') { delete handlers[msg.id]; if (h.onError) h.onError(msg.message); }
|
|
281
|
+
};
|
|
282
|
+
sock.onclose = function () {
|
|
283
|
+
if (ws === sock) {
|
|
284
|
+
ready = false;
|
|
285
|
+
// Drop anything still queued and fail it here. These are shell commands
|
|
286
|
+
// with side effects: letting a later reconnect drain this queue would
|
|
287
|
+
// re-run them with their handlers already gone, so the output would go
|
|
288
|
+
// nowhere and the caller would never learn it ran twice.
|
|
289
|
+
var q = queue; queue = [];
|
|
290
|
+
for (var i = 0; i < q.length; i++) {
|
|
291
|
+
var qh = handlers[q[i].id];
|
|
292
|
+
if (!qh) continue;
|
|
293
|
+
delete handlers[q[i].id];
|
|
294
|
+
if (qh.onError) qh.onError('connection closed');
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
// Always report THIS connection's own losses, current or replaced — a
|
|
298
|
+
// replaced socket still owes an answer to whatever it was carrying.
|
|
299
|
+
failGen(myGen, 'connection closed');
|
|
300
|
+
};
|
|
301
|
+
sock.onerror = function () { /* onclose follows */ };
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
function send(obj) {
|
|
305
|
+
var s = JSON.stringify(obj);
|
|
306
|
+
ensureWs();
|
|
307
|
+
// Tag AFTER ensureWs — it may have opened a new connection, and what
|
|
308
|
+
// matters is which socket ends up carrying this command.
|
|
309
|
+
if (obj.id && handlers[obj.id]) handlers[obj.id].gen = gen;
|
|
310
|
+
if (ready && ws && ws.readyState === 1) ws.send(s);
|
|
311
|
+
else queue.push({ id: obj.id, s: s });
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
function run(command, opts) {
|
|
315
|
+
opts = opts || {};
|
|
316
|
+
var id = 'c' + (++seq);
|
|
317
|
+
handlers[id] = {
|
|
318
|
+
onStdout: opts.onStdout,
|
|
319
|
+
onStderr: opts.onStderr,
|
|
320
|
+
onExit: opts.onExit,
|
|
321
|
+
onError: opts.onError
|
|
322
|
+
};
|
|
323
|
+
send({ type: 'exec', id: id, command: command, cwd: opts.cwd || CWD });
|
|
324
|
+
return id;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
function bash(command, opts) {
|
|
328
|
+
opts = opts || {};
|
|
329
|
+
if (opts.background) {
|
|
330
|
+
var id = run(command, {
|
|
331
|
+
cwd: opts.cwd,
|
|
332
|
+
onStdout: opts.onOutput,
|
|
333
|
+
onStderr: opts.onStderr || opts.onOutput,
|
|
334
|
+
onExit: opts.onExit,
|
|
335
|
+
onError: opts.onError
|
|
336
|
+
});
|
|
337
|
+
return { kill: function () { send({ type: 'kill', id: id }); delete handlers[id]; } };
|
|
338
|
+
}
|
|
339
|
+
return new Promise(function (resolve, reject) {
|
|
340
|
+
var out = '', err = '';
|
|
341
|
+
run(command, {
|
|
342
|
+
cwd: opts.cwd,
|
|
343
|
+
onStdout: function (d) { out += d; },
|
|
344
|
+
onStderr: function (d) { err += d; },
|
|
345
|
+
onExit: function (code) { resolve({ stdout: out, stderr: err, exitCode: code }); },
|
|
346
|
+
onError: function (m) { reject(new Error(m)); }
|
|
347
|
+
});
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// toggleTheme is reassigned by the deferred initTheme — forward lazily so the
|
|
352
|
+
// exported function always calls the current implementation, not the no-op.
|
|
353
|
+
window.cockpit = {
|
|
354
|
+
cwd: CWD,
|
|
355
|
+
bash: bash,
|
|
356
|
+
toggleTheme: function () { toggleTheme(); },
|
|
357
|
+
// Current host language ('' until the host's first push, so apps can fall
|
|
358
|
+
// back to navigator themselves). Apps PERCEIVE the language and own their
|
|
359
|
+
// own strings — this is not an i18n runtime.
|
|
360
|
+
get lang() {
|
|
361
|
+
return document.documentElement.getAttribute('data-cockpit-lang') || '';
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
window.addEventListener('beforeunload', function () {
|
|
365
|
+
try { if (ws) ws.close(); } catch (e) {}
|
|
366
|
+
});
|
|
367
|
+
})();
|
|
368
|
+
`;function e(a){return/^([/\\]|[A-Za-z]:)/.test(a)}function f(a,b){let c,d,f=(c=Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\")))<0?"":0===c?"/":a.slice(0,c);return e(a)?f:b?(d=b.replace(/[/\\]+$/,""),f?`${d}/${f}`:d):f}let g="/apps/local/";function h(a){let b,c=a.startsWith(g)?a.slice(g.length):a.replace(/^\/+/,"");try{b=decodeURIComponent(c)}catch{return null}let d="/"+b;return(d=d.replace(/^\/([A-Za-z]:)/,"$1")).includes("\0")||d.split(/[/\\]/).includes("..")?null:d}function i(a,b){let c=a=>JSON.stringify(a).replace(/</g,"\\u003c"),e="<script>"+d.replaceAll("__CWD__",c(b.cwd)).replaceAll("__WS_URL__",c(b.wsUrl??""))+"<\/script>",f=a.match(/<head[^>]*>/i);if(f&&void 0!==f.index){let b=f.index+f[0].length;return a.slice(0,b)+e+a.slice(b)}let g=a.match(/<html[^>]*>/i);if(g&&void 0!==g.index){let b=g.index+g[0].length;return a.slice(0,b)+e+a.slice(b)}return e+a}},72891:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{OZ:()=>o,RL:()=>n,k9:()=>p,ok:()=>l});var e=c(37625),f=c(52693),g=c(18412),h=c(89705),i=c(94506),j=c(770),k=a([i]);i=(k.then?(await k)():k)[0];let l=(a,b=200)=>new Response(JSON.stringify(a),{status:b,headers:{"content-type":"application/json"}}),m=a=>{let b=e.od(a);if(f.Ru(b)){let a=b.value,c=(0,j.Sh)(a);return new Response(JSON.stringify({error:(a=>{let b=a.message;if("string"==typeof b&&b.length>0)return b;let c=a.cause;if(c instanceof Error&&c.message.length>0)return c.message;switch(a._tag){case"ValidationError":return`Invalid ${a.field}: ${a.reason}`;case"NotFoundError":return`${a.resource} not found: ${a.id}`;case"PermissionError":return`Permission denied: ${a.action} on ${a.resource}`;case"DBError":return`${a.db} ${a.op} failed`;case"FSError":return`${a.op} ${a.path} failed`;case"WSError":return`${a.proto} ${a.kind} failed`;case"AgentError":return`${a.provider} ${a.kind} failed`;default:return a._tag}})(a),tag:a._tag}),{status:c,headers:{"content-type":"application/json"}})}return console.error("[handler] uncaught defect:\n"+e.j9(a)),new Response(JSON.stringify({error:"Internal Server Error",tag:"InternalError"}),{status:500,headers:{"content-type":"application/json"}})},n=a=>async b=>{let c=await i.s9.runPromiseExit(a(b));return g.YW(c,{onFailure:a=>m(a),onSuccess:a=>a})},o=a=>async(b,c)=>{let d=await c.params,e=await i.s9.runPromiseExit(a(b,d));return g.YW(e,{onFailure:a=>m(a),onSuccess:a=>a})},p=a=>h.$mh({try:()=>a.json(),catch:()=>new j.yI({field:"body",reason:"invalid JSON"})});d()}catch(a){d(a)}})}};
|