@surething/cockpit 1.0.191 → 1.0.193
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 +15 -13
- package/.next-prod/build-manifest.json +5 -5
- package/.next-prod/diagnostics/framework.json +1 -1
- package/.next-prod/images-manifest.json +1 -0
- package/.next-prod/next-minimal-server.js.nft.json +1 -1
- package/.next-prod/next-server.js.nft.json +1 -1
- package/.next-prod/prerender-manifest.json +3 -3
- package/.next-prod/react-loadable-manifest.json +2 -258
- package/.next-prod/required-server-files.js +18 -6
- package/.next-prod/required-server-files.json +18 -6
- package/.next-prod/routes-manifest.json +13 -0
- package/.next-prod/server/app/_global-error/page.js +32 -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 -2
- package/.next-prod/server/app/_global-error.rsc +8 -6
- package/.next-prod/server/app/_global-error.segments/_full.segment.rsc +8 -6
- 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 +2 -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 +2 -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 +12 -9
- package/.next-prod/server/app/_not-found.segments/_full.segment.rsc +12 -9
- package/.next-prod/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next-prod/server/app/_not-found.segments/_index.segment.rsc +4 -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 +2 -1
- package/.next-prod/server/app/_not-found.segments/_tree.segment.rsc +3 -2
- 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/bash/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/chat/codex/route.js +13 -13
- package/.next-prod/server/app/api/chat/codex/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/codex/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/chat/kimi/route.js +3 -3
- package/.next-prod/server/app/api/chat/kimi/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/kimi/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/chat/ollama/route.js +3 -3
- package/.next-prod/server/app/api/chat/ollama/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/ollama/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/chat/route.js +3 -3
- package/.next-prod/server/app/api/chat/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/chat/route_client-reference-manifest.js +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/claude-stats/route_client-reference-manifest.js +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/commands/route_client-reference-manifest.js +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/comments/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/db/columns/route.js +2 -2
- package/.next-prod/server/app/api/db/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/columns/route_client-reference-manifest.js +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/connect/route_client-reference-manifest.js +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/disconnect/route_client-reference-manifest.js +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/export/route_client-reference-manifest.js +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/query/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/db/schemas/route.js +2 -2
- package/.next-prod/server/app/api/db/schemas/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/db/schemas/route_client-reference-manifest.js +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/extension/version/route_client-reference-manifest.js +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/file/route_client-reference-manifest.js +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/blame/route_client-reference-manifest.js +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/clipboard/route_client-reference-manifest.js +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/copy/route_client-reference-manifest.js +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/delete/route_client-reference-manifest.js +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/expanded/route_client-reference-manifest.js +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/index/route_client-reference-manifest.js +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/init/route_client-reference-manifest.js +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/paste/route_client-reference-manifest.js +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/read/route_client-reference-manifest.js +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/readdir/route_client-reference-manifest.js +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/recent/route_client-reference-manifest.js +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/save/route_client-reference-manifest.js +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/search/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/files/stat/route.js +1 -0
- package/.next-prod/server/app/api/files/stat/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/files/stat/route_client-reference-manifest.js +1 -0
- package/.next-prod/server/app/api/files/text/route.js +1 -0
- package/.next-prod/server/app/api/files/text/route.js.nft.json +1 -0
- package/.next-prod/server/app/api/files/text/route_client-reference-manifest.js +1 -0
- 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/branch-diff/route_client-reference-manifest.js +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/branches/route_client-reference-manifest.js +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/commit-diff/route_client-reference-manifest.js +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/commits/route_client-reference-manifest.js +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/diff/route_client-reference-manifest.js +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/discard/route_client-reference-manifest.js +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/stage/route_client-reference-manifest.js +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/status/route_client-reference-manifest.js +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/unstage/route_client-reference-manifest.js +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/git/worktree/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/global-state/route.js +1 -1
- package/.next-prod/server/app/api/global-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/global-state/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/jupyter/load/route.js +1 -1
- package/.next-prod/server/app/api/jupyter/load/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/jupyter/load/route_client-reference-manifest.js +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/save/route_client-reference-manifest.js +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/jupyter/shutdown/route_client-reference-manifest.js +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/definition/route_client-reference-manifest.js +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/hover/route_client-reference-manifest.js +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/references/route_client-reference-manifest.js +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/status/route_client-reference-manifest.js +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/lsp/warmup/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/mysql/columns/route.js +2 -2
- package/.next-prod/server/app/api/mysql/columns/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/mysql/columns/route_client-reference-manifest.js +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/connect/route_client-reference-manifest.js +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/disconnect/route_client-reference-manifest.js +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/export/route_client-reference-manifest.js +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/query/route_client-reference-manifest.js +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/mysql/schemas/route_client-reference-manifest.js +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/connect/route_client-reference-manifest.js +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/disconnect/route_client-reference-manifest.js +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/query/route_client-reference-manifest.js +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/neo4j/schema/route_client-reference-manifest.js +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/note/route_client-reference-manifest.js +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/models/route_client-reference-manifest.js +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/ollama/start/route_client-reference-manifest.js +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-cursor/route_client-reference-manifest.js +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/open-vscode/route_client-reference-manifest.js +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/pick-folder/route_client-reference-manifest.js +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/pinned-sessions/route_client-reference-manifest.js +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-settings/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/project-state/route.js +1 -1
- package/.next-prod/server/app/api/project-state/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/project-state/route_client-reference-manifest.js +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/projects/route_client-reference-manifest.js +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/command/route_client-reference-manifest.js +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/connect/route_client-reference-manifest.js +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/delete/route_client-reference-manifest.js +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/disconnect/route_client-reference-manifest.js +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/get/route_client-reference-manifest.js +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/keys/route_client-reference-manifest.js +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/redis/set/route_client-reference-manifest.js +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]/comments/route_client-reference-manifest.js +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]/replies/route_client-reference-manifest.js +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/[id]/route_client-reference-manifest.js +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/identify/route_client-reference-manifest.js +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/order/route_client-reference-manifest.js +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/route_client-reference-manifest.js +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/share-info/route_client-reference-manifest.js +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/review/users/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route.js.nft.json +1 -1
- package/.next-prod/server/app/api/scheduled-tasks/route_client-reference-manifest.js +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/config/route_client-reference-manifest.js +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/services/scripts/route_client-reference-manifest.js +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]/fork/route_client-reference-manifest.js +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/[sessionId]/history/route_client-reference-manifest.js +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/session-by-path/route_client-reference-manifest.js +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/[encodedPath]/route_client-reference-manifest.js +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/projects/route_client-reference-manifest.js +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/sessions/route_client-reference-manifest.js +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/settings/route_client-reference-manifest.js +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/[id]/route_client-reference-manifest.js +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/content/route_client-reference-manifest.js +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/skills/route_client-reference-manifest.js +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/aliases/route_client-reference-manifest.js +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/autocomplete/route_client-reference-manifest.js +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/bubble-order/route_client-reference-manifest.js +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/env/route_client-reference-manifest.js +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/terminal/history/route_client-reference-manifest.js +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/api/version/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/favicon.ico/route.js +1 -1
- package/.next-prod/server/app/favicon.ico/route.js.nft.json +1 -1
- package/.next-prod/server/app/manifest.webmanifest/route.js +2 -2
- package/.next-prod/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next-prod/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next-prod/server/app/page.js +6 -6
- 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 +10 -10
- 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 +15 -13
- package/.next-prod/server/chunks/1813.js +1 -1
- package/.next-prod/server/chunks/2338.js +1 -1
- package/.next-prod/server/chunks/3269.js +1 -1
- package/.next-prod/server/chunks/3353.js +1 -0
- package/.next-prod/server/chunks/4098.js +1 -1
- package/.next-prod/server/chunks/4490.js +3 -3
- package/.next-prod/server/chunks/4732.js +1 -0
- package/.next-prod/server/chunks/4741.js +5 -9
- package/.next-prod/server/chunks/4793.js +1 -1
- package/.next-prod/server/chunks/5147.js +1 -1
- package/.next-prod/server/chunks/700.js +1 -1
- package/.next-prod/server/chunks/7514.js +1 -1
- package/.next-prod/server/chunks/8465.js +15 -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 -2
- package/.next-prod/server/prefetch-hints.json +1 -0
- package/.next-prod/server/server-reference-manifest.json +1 -1
- package/.next-prod/static/9osElWlkhv6tmFTniHsfB/_buildManifest.js +1 -0
- package/.next-prod/static/chunks/3530-74191451ec2a46c4.js +14 -0
- package/.next-prod/static/chunks/3579-2dddc4a9ac5a5b31.js +1 -0
- package/.next-prod/static/chunks/{3695-f14fb3e48483755c.js → 3695-9503d0b646958dd4.js} +2 -2
- package/.next-prod/static/chunks/3700-e32aa43691d128b2.js +1 -0
- package/.next-prod/static/chunks/{3743-66d6d2ef6629c733.js → 3743-5e5ffaf674977450.js} +1 -1
- package/.next-prod/static/chunks/3794-3fb4e6ee851037bb.js +32 -0
- package/.next-prod/static/chunks/4bd1b696-e356ca5ba0218e27.js +1 -0
- package/.next-prod/static/chunks/{7650.18f74243e9325242.js → 5269.2e771096652dc113.js} +1 -1
- package/.next-prod/static/chunks/54a60aa6-1a0e6738c5ca0c78.js +79 -0
- package/.next-prod/static/chunks/9062-cf3c7d314edd19d0.js +1 -0
- package/.next-prod/static/chunks/{aaea2bcf-4f9eb5012da21e0f.js → aaea2bcf-be8b39a8f32280f3.js} +1 -1
- package/.next-prod/static/chunks/app/_global-error/page-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/bash/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/codex/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/kimi/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/ollama/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/chat/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/claude-stats/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/commands/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/comments/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/db/columns/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/db/connect/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/db/disconnect/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/db/export/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/db/query/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/db/schemas/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/extension/version/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/file/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/blame/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/clipboard/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/copy/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/delete/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/expanded/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/index/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/init/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/paste/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/read/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/readdir/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/recent/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/save/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/search/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/stat/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/files/text/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/branches/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/commits/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/diff/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/discard/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/stage/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/status/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/unstage/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/git/worktree/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/global-state/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/load/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/save/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/definition/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/hover/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/references/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/status/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/columns/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/connect/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/export/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/query/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/query/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/note/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/models/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/ollama/start/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/open-cursor/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/open-vscode/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/pick-folder/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/project-settings/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/project-state/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/projects/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/command/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/connect/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/delete/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/get/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/keys/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/redis/set/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/review/[id]/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/review/identify/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/review/order/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/review/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/review/share-info/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/review/users/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/services/config/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/services/scripts/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/session-by-path/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/projects/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/sessions/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/settings/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/[id]/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/content/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/skills/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/env/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/terminal/history/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/api/version/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/{layout-44210aade5d56585.js → layout-fc306a84f663d5af.js} +1 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/app/{page-e0d663a97bc29595.js → page-95c3cb3c5c7c5ef1.js} +1 -1
- package/.next-prod/static/chunks/app/project/page-66c22be12277e5c1.js +29 -0
- package/.next-prod/static/chunks/app/review/[id]/page-feeb4d9d472b00ab.js +1 -0
- package/.next-prod/static/chunks/d3ac728e-ba6c269aebe5932e.js +1 -0
- package/.next-prod/static/chunks/{e868780c.a081703edc1bc551.js → e868780c.16e43c5968ccf2bf.js} +3 -3
- package/.next-prod/static/chunks/framework-52c9cc950957e3ac.js +1 -0
- package/.next-prod/static/chunks/main-5a46314a5491113b.js +5 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-94e40d01eb0846a0.js +1 -0
- package/.next-prod/static/chunks/webpack-9a8ea3995034c536.js +1 -0
- package/.next-prod/static/css/49923bb0dd70e411.css +1 -0
- package/.next-prod/static/css/e33280be1b23649f.css +1 -0
- package/.next-prod/trace +12 -13
- package/.next-prod/trace-build +1 -1
- package/.next-prod/types/app/api/bash/route.ts +3 -2
- package/.next-prod/types/app/api/chat/codex/route.ts +3 -2
- package/.next-prod/types/app/api/chat/kimi/route.ts +3 -2
- package/.next-prod/types/app/api/chat/ollama/route.ts +3 -2
- package/.next-prod/types/app/api/chat/route.ts +3 -2
- package/.next-prod/types/app/api/claude-stats/route.ts +3 -2
- package/.next-prod/types/app/api/commands/route.ts +3 -2
- package/.next-prod/types/app/api/comments/route.ts +3 -2
- package/.next-prod/types/app/api/db/columns/route.ts +3 -2
- package/.next-prod/types/app/api/db/connect/route.ts +3 -2
- package/.next-prod/types/app/api/db/disconnect/route.ts +3 -2
- package/.next-prod/types/app/api/db/export/route.ts +3 -2
- package/.next-prod/types/app/api/db/query/route.ts +3 -2
- package/.next-prod/types/app/api/db/schemas/route.ts +3 -2
- package/.next-prod/types/app/api/extension/version/route.ts +3 -2
- package/.next-prod/types/app/api/file/route.ts +3 -2
- package/.next-prod/types/app/api/files/blame/route.ts +3 -2
- package/.next-prod/types/app/api/files/clipboard/route.ts +3 -2
- package/.next-prod/types/app/api/files/copy/route.ts +3 -2
- package/.next-prod/types/app/api/files/delete/route.ts +3 -2
- package/.next-prod/types/app/api/files/expanded/route.ts +3 -2
- package/.next-prod/types/app/api/files/index/route.ts +3 -2
- package/.next-prod/types/app/api/files/init/route.ts +3 -2
- package/.next-prod/types/app/api/files/paste/route.ts +3 -2
- package/.next-prod/types/app/api/files/read/route.ts +3 -2
- package/.next-prod/types/app/api/files/readdir/route.ts +3 -2
- package/.next-prod/types/app/api/files/recent/route.ts +3 -2
- package/.next-prod/types/app/api/files/save/route.ts +3 -2
- package/.next-prod/types/app/api/files/search/route.ts +3 -2
- package/.next-prod/types/app/api/files/stat/route.ts +351 -0
- package/.next-prod/types/app/api/files/text/route.ts +351 -0
- package/.next-prod/types/app/api/git/branch-diff/route.ts +3 -2
- package/.next-prod/types/app/api/git/branches/route.ts +3 -2
- package/.next-prod/types/app/api/git/commit-diff/route.ts +3 -2
- package/.next-prod/types/app/api/git/commits/route.ts +3 -2
- package/.next-prod/types/app/api/git/diff/route.ts +3 -2
- package/.next-prod/types/app/api/git/discard/route.ts +3 -2
- package/.next-prod/types/app/api/git/stage/route.ts +3 -2
- package/.next-prod/types/app/api/git/status/route.ts +3 -2
- package/.next-prod/types/app/api/git/unstage/route.ts +3 -2
- package/.next-prod/types/app/api/git/worktree/route.ts +3 -2
- package/.next-prod/types/app/api/global-state/route.ts +3 -2
- package/.next-prod/types/app/api/jupyter/load/route.ts +3 -2
- package/.next-prod/types/app/api/jupyter/save/route.ts +3 -2
- package/.next-prod/types/app/api/jupyter/shutdown/route.ts +3 -2
- package/.next-prod/types/app/api/lsp/definition/route.ts +3 -2
- package/.next-prod/types/app/api/lsp/hover/route.ts +3 -2
- package/.next-prod/types/app/api/lsp/references/route.ts +3 -2
- package/.next-prod/types/app/api/lsp/status/route.ts +3 -2
- package/.next-prod/types/app/api/lsp/warmup/route.ts +3 -2
- package/.next-prod/types/app/api/mysql/columns/route.ts +3 -2
- package/.next-prod/types/app/api/mysql/connect/route.ts +3 -2
- package/.next-prod/types/app/api/mysql/disconnect/route.ts +3 -2
- package/.next-prod/types/app/api/mysql/export/route.ts +3 -2
- package/.next-prod/types/app/api/mysql/query/route.ts +3 -2
- package/.next-prod/types/app/api/mysql/schemas/route.ts +3 -2
- package/.next-prod/types/app/api/neo4j/connect/route.ts +3 -2
- package/.next-prod/types/app/api/neo4j/disconnect/route.ts +3 -2
- package/.next-prod/types/app/api/neo4j/query/route.ts +3 -2
- package/.next-prod/types/app/api/neo4j/schema/route.ts +3 -2
- package/.next-prod/types/app/api/note/route.ts +3 -2
- package/.next-prod/types/app/api/ollama/models/route.ts +3 -2
- package/.next-prod/types/app/api/ollama/start/route.ts +3 -2
- package/.next-prod/types/app/api/open-cursor/route.ts +3 -2
- package/.next-prod/types/app/api/open-vscode/route.ts +3 -2
- package/.next-prod/types/app/api/pick-folder/route.ts +3 -2
- package/.next-prod/types/app/api/pinned-sessions/route.ts +3 -2
- package/.next-prod/types/app/api/project-settings/route.ts +3 -2
- package/.next-prod/types/app/api/project-state/route.ts +3 -2
- package/.next-prod/types/app/api/projects/route.ts +3 -2
- package/.next-prod/types/app/api/redis/command/route.ts +3 -2
- package/.next-prod/types/app/api/redis/connect/route.ts +3 -2
- package/.next-prod/types/app/api/redis/delete/route.ts +3 -2
- package/.next-prod/types/app/api/redis/disconnect/route.ts +3 -2
- package/.next-prod/types/app/api/redis/get/route.ts +3 -2
- package/.next-prod/types/app/api/redis/keys/route.ts +3 -2
- package/.next-prod/types/app/api/redis/set/route.ts +3 -2
- package/.next-prod/types/app/api/review/[id]/comments/route.ts +3 -2
- package/.next-prod/types/app/api/review/[id]/replies/route.ts +3 -2
- package/.next-prod/types/app/api/review/[id]/route.ts +3 -2
- package/.next-prod/types/app/api/review/identify/route.ts +3 -2
- package/.next-prod/types/app/api/review/order/route.ts +3 -2
- package/.next-prod/types/app/api/review/route.ts +3 -2
- package/.next-prod/types/app/api/review/share-info/route.ts +3 -2
- package/.next-prod/types/app/api/review/users/route.ts +3 -2
- package/.next-prod/types/app/api/scheduled-tasks/route.ts +3 -2
- package/.next-prod/types/app/api/services/config/route.ts +3 -2
- package/.next-prod/types/app/api/services/scripts/route.ts +3 -2
- package/.next-prod/types/app/api/session/[sessionId]/fork/route.ts +3 -2
- package/.next-prod/types/app/api/session/[sessionId]/history/route.ts +3 -2
- package/.next-prod/types/app/api/session-by-path/route.ts +3 -2
- package/.next-prod/types/app/api/sessions/projects/[encodedPath]/route.ts +3 -2
- package/.next-prod/types/app/api/sessions/projects/route.ts +3 -2
- package/.next-prod/types/app/api/sessions/route.ts +3 -2
- package/.next-prod/types/app/api/settings/route.ts +3 -2
- package/.next-prod/types/app/api/skills/[id]/route.ts +3 -2
- package/.next-prod/types/app/api/skills/content/route.ts +3 -2
- package/.next-prod/types/app/api/skills/route.ts +3 -2
- package/.next-prod/types/app/api/terminal/aliases/route.ts +3 -2
- package/.next-prod/types/app/api/terminal/autocomplete/route.ts +3 -2
- package/.next-prod/types/app/api/terminal/bubble-order/route.ts +3 -2
- package/.next-prod/types/app/api/terminal/env/route.ts +3 -2
- package/.next-prod/types/app/api/terminal/history/route.ts +3 -2
- package/.next-prod/types/app/api/version/route.ts +3 -2
- package/.next-prod/types/app/page.ts +3 -2
- package/.next-prod/types/app/project/page.ts +3 -2
- package/.next-prod/types/app/review/[id]/page.ts +3 -2
- package/.next-prod/types/cache-life.d.ts +145 -0
- package/.next-prod/types/routes.d.ts +3 -1
- package/.next-prod/types/validator.ts +18 -0
- package/README.md +2 -2
- package/README.zh.md +2 -2
- package/dist/wsServer.mjs +56 -6
- package/package.json +2 -3
- package/server.mjs +49 -5
- package/.next-prod/server/chunks/1639.js +0 -1
- package/.next-prod/server/chunks/1661.js +0 -1
- package/.next-prod/server/chunks/1667.js +0 -1
- package/.next-prod/server/chunks/1912.js +0 -1
- package/.next-prod/server/chunks/2325.js +0 -82
- package/.next-prod/server/chunks/2376.js +0 -36
- package/.next-prod/server/chunks/2816.js +0 -1
- package/.next-prod/server/chunks/2840.js +0 -62
- package/.next-prod/server/chunks/3434.js +0 -1
- package/.next-prod/server/chunks/3441.js +0 -24
- package/.next-prod/server/chunks/3503.js +0 -29
- package/.next-prod/server/chunks/3932.js +0 -56
- package/.next-prod/server/chunks/4073.js +0 -1
- package/.next-prod/server/chunks/4097.js +0 -136
- package/.next-prod/server/chunks/4268.js +0 -4
- package/.next-prod/server/chunks/4309.js +0 -141
- package/.next-prod/server/chunks/4345.js +0 -1
- package/.next-prod/server/chunks/4367.js +0 -1
- package/.next-prod/server/chunks/4388.js +0 -24
- package/.next-prod/server/chunks/4442.js +0 -1
- package/.next-prod/server/chunks/459.js +0 -1
- package/.next-prod/server/chunks/5152.js +0 -1
- package/.next-prod/server/chunks/5460.js +0 -201
- package/.next-prod/server/chunks/5481.js +0 -1
- package/.next-prod/server/chunks/5536.js +0 -148
- package/.next-prod/server/chunks/5733.js +0 -5
- package/.next-prod/server/chunks/582.js +0 -1
- package/.next-prod/server/chunks/5958.js +0 -1
- package/.next-prod/server/chunks/6117.js +0 -13
- package/.next-prod/server/chunks/6142.js +0 -287
- package/.next-prod/server/chunks/6346.js +0 -1
- package/.next-prod/server/chunks/6443.js +0 -1
- package/.next-prod/server/chunks/6804.js +0 -43
- package/.next-prod/server/chunks/7122.js +0 -1
- package/.next-prod/server/chunks/7265.js +0 -93
- package/.next-prod/server/chunks/7307.js +0 -1
- package/.next-prod/server/chunks/7483.js +0 -1
- package/.next-prod/server/chunks/7484.js +0 -64
- package/.next-prod/server/chunks/7800.js +0 -166
- package/.next-prod/server/chunks/8068.js +0 -63
- package/.next-prod/server/chunks/8351.js +0 -23
- package/.next-prod/server/chunks/8585.js +0 -198
- package/.next-prod/server/chunks/887.js +0 -215
- package/.next-prod/server/chunks/911.js +0 -1
- package/.next-prod/server/chunks/9116.js +0 -65
- package/.next-prod/server/chunks/925.js +0 -68
- package/.next-prod/server/chunks/9401.js +0 -1
- package/.next-prod/server/chunks/9408.js +0 -1
- package/.next-prod/static/chunks/1310.c38c5fbf05820fcd.js +0 -166
- package/.next-prod/static/chunks/1409.9f81cd6d2cab4b67.js +0 -1
- package/.next-prod/static/chunks/142.e09e154342f02da4.js +0 -4
- package/.next-prod/static/chunks/1590.05549e036336164c.js +0 -65
- package/.next-prod/static/chunks/1948.bf7e0d9ede202530.js +0 -29
- package/.next-prod/static/chunks/1987.226da043eabc8911.js +0 -5
- package/.next-prod/static/chunks/1991.d869abe5092c9011.js +0 -1
- package/.next-prod/static/chunks/2020.46a0112747939389.js +0 -1
- package/.next-prod/static/chunks/2235.b4453110c06e2b09.js +0 -1
- package/.next-prod/static/chunks/254.8b4308512ac955b5.js +0 -24
- package/.next-prod/static/chunks/2729.826909b4d5229ba6.js +0 -68
- package/.next-prod/static/chunks/2821.fa74c6e87f6e759a.js +0 -1
- package/.next-prod/static/chunks/2921.26016c4c7eb031e8.js +0 -1
- package/.next-prod/static/chunks/2ff9d716.93c18c265de76cfb.js +0 -136
- package/.next-prod/static/chunks/3126.c89ab7ce8e10978e.js +0 -1
- package/.next-prod/static/chunks/3530-49f50405e2b2a8c2.js +0 -14
- package/.next-prod/static/chunks/3613.9a37e282a0b018d7.js +0 -1
- package/.next-prod/static/chunks/3682.d8c0079db560c625.js +0 -1
- package/.next-prod/static/chunks/3700-1edddcc68c5c2ac3.js +0 -1
- package/.next-prod/static/chunks/3794-337d1ca25ad99a89.js +0 -2
- package/.next-prod/static/chunks/4699.8603b2742a761084.js +0 -1
- package/.next-prod/static/chunks/4892.1674cc00200143ba.js +0 -1
- package/.next-prod/static/chunks/4bd1b696-e5d7c65570c947b7.js +0 -1
- package/.next-prod/static/chunks/5019.2906d96e77b98f68.js +0 -198
- package/.next-prod/static/chunks/5139.83dc2c84aeea716b.js +0 -63
- package/.next-prod/static/chunks/5199.5faac6a2cc104a4c.js +0 -36
- package/.next-prod/static/chunks/5269.25d99df0164521ad.js +0 -23
- package/.next-prod/static/chunks/5325.aad15a16a5d57787.js +0 -1
- package/.next-prod/static/chunks/5364.2e5ba480c24d7854.js +0 -148
- package/.next-prod/static/chunks/5394.9d260f733e336357.js +0 -287
- package/.next-prod/static/chunks/54a60aa6-f60235f3d6b54466.js +0 -79
- package/.next-prod/static/chunks/5788.e5d5040b65e5edf3.js +0 -1
- package/.next-prod/static/chunks/6026.4027a04696ef04db.js +0 -1
- package/.next-prod/static/chunks/6108-df36466c7d900315.js +0 -1
- package/.next-prod/static/chunks/6383.ca3e074feb80c69c.js +0 -1
- package/.next-prod/static/chunks/6460.8ce93fe47320f6c5.js +0 -1
- package/.next-prod/static/chunks/6871.38519003bd87ac1c.js +0 -62
- package/.next-prod/static/chunks/6878-b27072ccf7fd4eba.js +0 -1
- package/.next-prod/static/chunks/6962.3bbd080592d4efa0.js +0 -64
- package/.next-prod/static/chunks/7084.921c9737b83f55eb.js +0 -1
- package/.next-prod/static/chunks/7085.b16e7c0e24741232.js +0 -215
- package/.next-prod/static/chunks/7443.124211e5abc05d3f.js +0 -93
- package/.next-prod/static/chunks/7479.433d3878625aba75.js +0 -24
- package/.next-prod/static/chunks/7547.54b68d37b50c2f21.js +0 -43
- package/.next-prod/static/chunks/7874.8db6929b94cdf697.js +0 -1
- package/.next-prod/static/chunks/8317.9c6f22e0c8cd07a8.js +0 -141
- package/.next-prod/static/chunks/8776.6fb12270eca03fd3.js +0 -149
- package/.next-prod/static/chunks/8863.4a09596cf95e996a.js +0 -82
- package/.next-prod/static/chunks/90542734.58d84d15ab7a8c98.js +0 -1
- package/.next-prod/static/chunks/9062-a330afa1af7f133e.js +0 -1
- package/.next-prod/static/chunks/9233.124321d2f404e01c.js +0 -1
- package/.next-prod/static/chunks/9318.ba24787a52cefe4c.js +0 -56
- package/.next-prod/static/chunks/9373.6206c440af44002a.js +0 -1
- package/.next-prod/static/chunks/af7f6608.85a7e1eb0d4130b0.js +0 -53
- package/.next-prod/static/chunks/app/_global-error/page-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/bash/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/codex/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/kimi/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/ollama/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/chat/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/claude-stats/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/commands/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/comments/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/db/columns/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/db/connect/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/db/disconnect/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/db/export/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/db/query/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/db/schemas/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/extension/version/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/file/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/blame/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/clipboard/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/copy/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/delete/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/expanded/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/index/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/init/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/paste/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/read/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/readdir/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/recent/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/save/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/files/search/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branch-diff/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/branches/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commit-diff/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/commits/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/diff/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/discard/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/stage/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/status/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/unstage/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/git/worktree/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/global-state/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/load/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/save/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/jupyter/shutdown/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/definition/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/hover/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/references/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/status/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/lsp/warmup/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/columns/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/connect/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/disconnect/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/export/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/query/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/mysql/schemas/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/connect/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/disconnect/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/query/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/neo4j/schema/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/note/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/models/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/ollama/start/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/open-cursor/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/open-vscode/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/pick-folder/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/pinned-sessions/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/project-settings/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/project-state/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/projects/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/command/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/connect/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/delete/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/disconnect/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/get/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/keys/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/redis/set/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/comments/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/replies/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/review/[id]/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/review/identify/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/review/order/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/review/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/review/share-info/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/review/users/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/scheduled-tasks/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/services/config/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/services/scripts/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/fork/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/session/[sessionId]/history/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/session-by-path/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/[encodedPath]/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/projects/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/sessions/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/settings/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/[id]/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/content/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/skills/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/aliases/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/autocomplete/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/bubble-order/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/env/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/terminal/history/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/api/version/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/manifest.webmanifest/route-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/app/project/page-ff9fb0aaf89c8457.js +0 -29
- package/.next-prod/static/chunks/app/review/[id]/page-be83af23e89a03f9.js +0 -1
- package/.next-prod/static/chunks/d3ac728e-d1ae8819b8f0be6a.js +0 -1
- package/.next-prod/static/chunks/framework-81b2e59ffe13bb24.js +0 -1
- package/.next-prod/static/chunks/main-ac50dc1e450895a2.js +0 -5
- package/.next-prod/static/chunks/next/dist/client/components/builtin/app-error-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/forbidden-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/not-found-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/next/dist/client/components/builtin/unauthorized-f626fdfbc87b7a2c.js +0 -1
- package/.next-prod/static/chunks/webpack-0f527ee7ab644d02.js +0 -1
- package/.next-prod/static/css/75f39a8350e8177f.css +0 -3
- package/.next-prod/static/s6yDo5HSYaSgHWRvF1qFE/_buildManifest.js +0 -1
- /package/.next-prod/static/{s6yDo5HSYaSgHWRvF1qFE → 9osElWlkhv6tmFTniHsfB}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6878],{578:(e,t,n)=>{function r(e,t){for(let n of e){if(n.path===t)return n;if(n.children){let e=r(n.children,t);if(e)return e}}return null}function s(e,t){if(!e)return"";let n=r(t,e);if(n?.isDirectory)return e;let s=e.split("/");return s.pop(),s.join("/")}function l(e){let t=[];for(let n of e){let e=n.split("/"),r=t;for(let t=0;t<e.length;t++){let n=e[t],s=t===e.length-1,l=e.slice(0,t+1).join("/"),o=r.find(e=>e.name===n);o||(o={name:n,path:l,isDirectory:!s,children:s?void 0:[]},r.push(o)),!s&&o.children&&(r=o.children)}}let n=e=>{e.sort((e,t)=>e.isDirectory&&!t.isDirectory?-1:!e.isDirectory&&t.isDirectory?1:e.name.localeCompare(t.name)),e.forEach(e=>{e.children&&n(e.children)})};return n(t),t}function o(e){let t=[],n=e=>{for(let r of e)r.isDirectory&&(t.push(r.path),r.children&&n(r.children))};return n(e),t}n.d(t,{B_:()=>f,KH:()=>u,MB:()=>r,S7:()=>s,fw:()=>d,q3:()=>c,r6:()=>m,tE:()=>h,tW:()=>o,u:()=>i,v3:()=>l});let a=new Set(["png","jpg","jpeg","gif","svg","webp","ico","bmp"]);function i(e){let t=e.split(".").pop()?.toLowerCase();return a.has(t||"")}function c(e,t,n=!1){let r=new Set;if(!t)return r;let s=t.toLowerCase(),l=e=>{if(r.add(e.path),e.children)for(let t of e.children)l(t)},o=(e,t)=>{let a=e.name.toLowerCase(),i=n?a===s:a.includes(s);if(i&&e.children)return l(e),t.forEach(e=>r.add(e)),!0;let c=!1;if(e.children)for(let n of e.children)o(n,[...t,e.path])&&(c=!0);return(!!i||!!c)&&(r.add(e.path),t.forEach(e=>r.add(e)),!0)};for(let t of e)o(t,[]);return r}function u(e,t,n=!1){let r=new Set;if(!t)return r;let s=t.toLowerCase();for(let t of e){let e=t.split("/");for(let t=0;t<e.length;t++){let l=e[t].toLowerCase();if(n?l===s:l.includes(s)){for(let t=0;t<=e.length-1;t++)r.add(e.slice(0,t+1).join("/"));break}}}return r}function d(e){let t=Math.floor(Math.floor((Date.now()-1e3*e)/1e3)/60),n=Math.floor(t/60),r=Math.floor(n/24),s=Math.floor(r/30),l=Math.floor(r/365);return l>0?`${l}y ago`:s>0?`${s}mo ago`:r>0?`${r}d ago`:n>0?`${n}h ago`:t>0?`${t}m ago`:"just now"}function m(e){let t=new Date(e),n=new Date,r=t.getFullYear()===n.getFullYear(),s=String(t.getMonth()+1).padStart(2,"0"),l=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),a=String(t.getMinutes()).padStart(2,"0");return r?`${s}-${l} ${o}:${a}`:`${t.getFullYear()}-${s}-${l} ${o}:${a}`}let h=()=>{},f=50},1531:(e,t,n)=>{n.d(t,{k_:()=>o,nH:()=>a});var r=n(95155),s=n(12115);let l=(0,s.createContext)(null);function o({children:e}){let t=(0,s.useRef)(new Map),n=(0,s.useRef)(null),[o,a]=(0,s.useState)(!1),i=(0,s.useCallback)((e,n)=>{t.current.set(n,e)},[]),c=(0,s.useCallback)(e=>{t.current.delete(e)},[]),u=(0,s.useCallback)(e=>{n.current=e},[]),d=(0,s.useCallback)(e=>{let r=n.current;if(!r)return void console.warn("No active tab to send message");let s=t.current.get(r);s?s(e):console.warn(`No chat sender registered for tab ${r}`)},[]),m=(0,s.useMemo)(()=>({sendMessage:d,isLoading:o,registerChat:i,unregisterChat:c,setActiveTab:u,setIsLoading:a}),[d,o,i,c,u]);return(0,r.jsx)(l.Provider,{value:m,children:e})}function a(){return(0,s.useContext)(l)}},10222:(e,t,n)=>{n.d(t,{$3:()=>a,Cm:()=>o,Gw:()=>u,RP:()=>i,Un:()=>c,zL:()=>l});var r=n(87918);let s=new Set;function l(e){return s.add(e),()=>s.delete(e)}function o(){s.forEach(e=>e())}async function a(e){let t=await fetch(`/api/comments?cwd=${encodeURIComponent(e)}`);if(!t.ok)throw Error("Failed to fetch comments");let n=(await t.json()).comments||[];if(0===n.length)return[];let r=new Map;for(let e of n)e.selectedText||(r.has(e.filePath)||r.set(e.filePath,[]),r.get(e.filePath).push(e));let s=new Map;await Promise.all(Array.from(r.keys()).map(async t=>{try{let n=await fetch(`/api/files/read?cwd=${encodeURIComponent(e)}&path=${encodeURIComponent(t)}`);if(n.ok){let e=await n.json();"text"===e.type&&e.content&&s.set(t,e.content.split("\n"))}}catch(e){console.error(`Failed to read file ${t}:`,e)}}));let l=[];for(let e of n){if(e.selectedText){l.push({...e,codeContent:e.selectedText});continue}let t=s.get(e.filePath),n="";if(t){let r=Math.max(0,e.startLine-1),s=Math.min(t.length,e.endLine);n=t.slice(r,s).join("\n")}l.push({...e,codeContent:n})}return l}async function i(e){try{if((await fetch(`/api/comments?cwd=${encodeURIComponent(e)}&all=true`,{method:"DELETE"})).ok)return o(),!0;return!1}catch(e){return console.error("Failed to clear comments:",e),!1}}let c="__chat__";function u(e,t){let n=e.filter(e=>e.filePath===c),s=e.filter(e=>e.filePath!==c),l=[];for(let e of(s.length>0&&(l.push(`${r.A.t("comments.codeRef")}`,""),s.forEach((e,t)=>{l.push(`[${t+1}] ${e.filePath}:${e.startLine}-${e.endLine}`),l.push("```"),l.push(e.codeContent),l.push("```"),e.note&&l.push(r.A.t("comments.note",{content:e.note})),l.push("")})),n)){let t=e.codeContent.split("\n").map(e=>`> ${e}`).join("\n");l.push(t),e.note&&l.push(e.note),l.push("")}return l.push(r.A.t("comments.question",{question:t})),l.join("\n")}},10611:(e,t,n)=>{n.d(t,{G:()=>d,f:()=>m});var r=n(12115);function s(){if("u"<typeof document)return null;let e=document.querySelector('meta[name="cockpit-bridge"]');if(!e)return null;let t=e.dataset.id,n=e.dataset.version;return t?{id:t,version:n||"unknown"}:null}let l=null,o=new Set;function a(){o.forEach(e=>e())}function i(e){o.add(e);let t=s();return t&&!l&&(l=t,Promise.resolve().then(a)),()=>{o.delete(e)}}function c(){return l}function u(){return null}if("u">typeof document&&(l=s()),"u">typeof MutationObserver&&"u">typeof document){let e=new MutationObserver(()=>{let e=s();e&&(!l||e.id!==l.id||e.version!==l.version)&&(l=e,a())}),t=document.head||document.documentElement;t&&e.observe(t,{childList:!0})}function d(){return(0,r.useSyncExternalStore)(i,c,u)}function m(){return l??s()}},18658:(e,t,n)=>{n.d(t,{n:()=>o});var r=n(12115);let s="SCHEDULED_TASKS_CHANGED";function l(){try{window.parent.postMessage({type:s},"*")}catch{}document.querySelectorAll("iframe").forEach(e=>{try{e.contentWindow?.postMessage({type:s},"*")}catch{}})}function o(){let[e,t]=(0,r.useState)([]),[n,o]=(0,r.useState)(0),a=(0,r.useCallback)(()=>{fetch("/api/scheduled-tasks").then(e=>e.json()).then(e=>{t(e.tasks||[]),o(e.unreadCount||0)}).catch(()=>{})},[]);(0,r.useEffect)(()=>{a()},[a]),(0,r.useEffect)(()=>{let e=e=>{e.data?.type===s&&a()};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[a]);let i=(0,r.useCallback)(async e=>{try{let t=await fetch("/api/scheduled-tasks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),n=await t.json();if(n.task)return a(),l(),n.task;return null}catch{return null}},[a]),c=(0,r.useCallback)(async e=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"pause"})}).catch(()=>{}),a(),l()},[a]),u=(0,r.useCallback)(async e=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"resume"})}).catch(()=>{}),a(),l()},[a]),d=(0,r.useCallback)(async e=>{await fetch("/api/scheduled-tasks",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})}).catch(()=>{}),a(),l()},[a]),m=(0,r.useCallback)(async(e,t)=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"update",fields:t})}).catch(()=>{}),a(),l()},[a]),h=(0,r.useCallback)(async e=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"trigger"})}).catch(()=>{}),a(),l()},[a]),f=(0,r.useCallback)(async e=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:"markRead"})}).catch(()=>{}),a(),l()},[a]),x=(0,r.useCallback)(async()=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:"_",action:"markAllRead"})}).catch(()=>{}),a(),l()},[a]),g=(0,r.useCallback)(async e=>{await fetch("/api/scheduled-tasks",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:"_",action:"reorder",fields:{orderedIds:e}})}).catch(()=>{}),a(),l()},[a]);return{tasks:e,unreadCount:n,reload:a,createTask:i,pauseTask:c,resumeTask:u,triggerTask:h,deleteTask:d,updateTask:m,markRead:f,markAllRead:x,reorderTasks:g}}},22552:(e,t,n)=>{n.d(t,{h:()=>l});var r=n(12115);let s=new Map;function l({url:e,onMessage:t,enabled:n=!0}){let l=(0,r.useRef)(t);(0,r.useEffect)(()=>{l.current=t}),(0,r.useEffect)(()=>{if(!n)return;let t=e=>l.current(e),r=function(e){let t=s.get(e);if(t)return t;let n={ws:null,listeners:new Set,retryCount:0,retryTimer:null,connect(){let t="https:"===window.location.protocol?"wss:":"ws:",r=new WebSocket(`${t}//${window.location.host}${e}`);r.onopen=()=>{n.retryCount=0},r.onmessage=e=>{try{let t=JSON.parse(e.data);if("ping"===t.type)return;n.listeners.forEach(e=>e(t))}catch{}},r.onclose=()=>{if(0===n.listeners.size)return;let e=Math.min(1e3*Math.pow(1.5,n.retryCount),1e4);n.retryCount++,n.retryTimer=setTimeout(()=>n.connect(),e)},r.onerror=()=>{},n.ws=r},destroy(){n.retryTimer&&clearTimeout(n.retryTimer),n.ws&&n.ws.close(),n.ws=null,s.delete(e)}};return s.set(e,n),n.connect(),n}(e);return r.listeners.add(t),()=>{r.listeners.delete(t),0===r.listeners.size&&r.destroy()}},[e,n])}},23193:(e,t,n)=>{n.d(t,{Np:()=>u,ZD:()=>i,b8:()=>c,kS:()=>o,sQ:()=>a});var r=n(67014);let s=null,l=["typescript","tsx","javascript","jsx","html","css","scss","json","yaml","python","go","rust","java","ruby","php","bash","shell","markdown","sql","c","cpp","swift","kotlin","dart","lua","graphql","xml"];function o(){return s||(s=(0,r.O_)({themes:["github-dark","github-light"],langs:[...l]})),s}function a(e){let t=e.split("/").pop()?.toLowerCase()||"",n=t.split(".").pop()?.toLowerCase();if(".env"===t||t.startsWith(".env.")||"dockerfile"===t||t.startsWith("dockerfile.")||"makefile"===t)return"bash";let r={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",mjs:"javascript",cjs:"javascript",html:"html",htm:"html",css:"css",scss:"scss",json:"json",yaml:"yaml",yml:"yaml",xml:"xml",py:"python",go:"go",rs:"rust",java:"java",kt:"kotlin",rb:"ruby",php:"php",cs:"cpp",cpp:"cpp",c:"c",h:"c",sh:"bash",bash:"bash",zsh:"bash",md:"markdown",mdx:"markdown",sql:"sql",swift:"swift",dart:"dart",lua:"lua",graphql:"graphql",gql:"graphql",toml:"yaml",sass:"scss",less:"css",scala:"java",r:"python",vim:"bash",env:"bash"}[n||""]||"text";return l.includes(r)?r:"text"}function i(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function c(e){return e.map(e=>e.color?`<span style="color:${e.color}">${i(e.content)}</span>`:i(e.content)).join("")}function u(e,t,n,r){if(!t)return[];let s=[],l=n?t:t.toLowerCase();for(let t=0;t<e.length;t++){let o=n?e[t]:e[t].toLowerCase(),a=0;for(;;){let e=o.indexOf(l,a);if(-1===e)break;let n=e+l.length;if(r){let r=e>0?o[e-1]:" ",l=n<o.length?o[n]:" ",a=!/\w/.test(r),i=!/\w/.test(l);a&&i&&s.push({lineIndex:t,startCol:e,endCol:n})}else s.push({lineIndex:t,startCol:e,endCol:n});a=e+1}}return s}},28147:(e,t,n)=>{n.d(t,{E:()=>c});var r=n(95155),s=n(12115),l=n(79114),o=n(87918),a=n(72588);let i={once:[{labelKey:"scheduledTasks.5minLater",value:5},{labelKey:"scheduledTasks.15minLater",value:15},{labelKey:"scheduledTasks.30minLater",value:30},{labelKey:"scheduledTasks.1hourLater",value:60}],interval:[{labelKey:"scheduledTasks.every15min",value:15},{labelKey:"scheduledTasks.every30min",value:30},{labelKey:"scheduledTasks.every1hour",value:60},{labelKey:"scheduledTasks.every2hours",value:120}],cron:[{labelKey:"scheduledTasks.daily9am",value:"0 9 * * *"},{labelKey:"scheduledTasks.daily6pm",value:"0 18 * * *"},{labelKey:"scheduledTasks.weeklyMon9am",value:"0 9 * * 1"},{labelKey:"scheduledTasks.monthly1st9am",value:"0 9 1 * *"}]};function c({onClose:e,onCreate:t,editTask:n,onUpdate:c}){let{t:u}=(0,l.Bd)(),d=!!n,[m,h]=(0,s.useState)(n?.type||"once"),[f,x]=(0,s.useState)(n?.message||""),[g,p]=(0,s.useState)(n?String(n.delayMinutes||n.intervalMinutes||""):""),[b,v]=(0,s.useState)(n?.cron||""),[y,w]=(0,s.useState)(n?.activeFrom||"09:00"),[k,C]=(0,s.useState)(n?.activeTo||"18:00"),[j,N]=(0,s.useState)(!!(n?.activeFrom&&n?.activeTo)),[E,L]=(0,s.useState)(null),S=(0,s.useRef)(null),M=(0,s.useRef)(null);(0,s.useEffect)(()=>{M.current?.focus()},[]),(0,s.useEffect)(()=>{let t=t=>{S.current&&!S.current.contains(t.target)&&e()};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[e]);let T=(0,s.useCallback)(()=>{if(!f.trim())return;let r=null;if("once"===m){let e=E||parseInt(g,10);if(!e||e<=0)return;r={message:f.trim(),type:"once",delayMinutes:e}}else if("interval"===m){let e=E||parseInt(g,10);if(!e||e<=0)return;r={message:f.trim(),type:"interval",intervalMinutes:e,...j?{activeFrom:y,activeTo:k}:{}}}else if("cron"===m){let e=E||b.trim();if(!e)return;r={message:f.trim(),type:"cron",cron:e}}r&&(d&&n&&c?c(n.id,r):t(r),e())},[f,m,E,g,b,j,y,k,t,e,d,n,c]);return(0,r.jsxs)("div",{ref:S,className:`w-80 bg-popover border border-border rounded-lg shadow-lg z-50 ${d?"":"absolute bottom-full left-0 mb-2"}`,onKeyDown:t=>{"Escape"===t.key?e():"Enter"===t.key&&(t.metaKey||t.ctrlKey)&&T()},children:[(0,r.jsx)("div",{className:"px-3 py-2 border-b border-border bg-muted/50 rounded-t-lg",children:(0,r.jsx)("span",{className:"text-sm font-medium",children:d?u("scheduledTasks.editTask"):u("scheduledTasks.createTask")})}),(0,r.jsxs)("div",{className:"p-3 space-y-3",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:u("scheduledTasks.sendMessage")}),(0,r.jsx)("textarea",{ref:M,value:f,onChange:e=>x(e.target.value),placeholder:u("scheduledTasks.messagePlaceholder"),rows:2,className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring resize-none"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:u("scheduledTasks.type")}),(0,r.jsx)("div",{className:"flex gap-1",children:["once","interval","cron"].map(e=>(0,r.jsx)("button",{onClick:()=>{h(e),L(null),p(""),v("")},className:`flex-1 px-2 py-1 text-xs rounded transition-colors ${m===e?"bg-brand text-white":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"once"===e?u("scheduledTasks.once"):"interval"===e?u("scheduledTasks.interval"):"Cron"},e))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:u("scheduledTasks.quickSelect")}),(0,r.jsx)("div",{className:"grid grid-cols-2 gap-1",children:i[m].map(e=>(0,r.jsx)("button",{onClick:()=>{L(e.value),"cron"===m?v(String(e.value)):p(String(e.value))},className:`px-2 py-1 text-xs rounded border transition-colors ${E===e.value?"border-brand bg-brand/10 text-brand":"border-border text-muted-foreground hover:text-foreground hover:border-foreground/30"}`,children:u(e.labelKey)},e.labelKey))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-xs text-muted-foreground mb-1 block",children:"cron"===m?u("scheduledTasks.customCron"):u("scheduledTasks.customMinutes")}),"cron"===m?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("input",{type:"text",value:b,onChange:e=>{v(e.target.value),L(null)},placeholder:u("scheduledTasks.cronPlaceholder"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring font-mono"}),b.trim()&&(0,r.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:function(e){let t=o.A.t,n=e.trim().split(/\s+/);if(5!==n.length)return null;let[r,s,l,a,i]=n,c={0:t("cron.dowSun"),1:t("cron.dowMon"),2:t("cron.dowTue"),3:t("cron.dowWed"),4:t("cron.dowThu"),5:t("cron.dowFri"),6:t("cron.dowSat")},u={1:`1${t("cron.monthPrefix")}`,2:`2${t("cron.monthPrefix")}`,3:`3${t("cron.monthPrefix")}`,4:`4${t("cron.monthPrefix")}`,5:`5${t("cron.monthPrefix")}`,6:`6${t("cron.monthPrefix")}`,7:`7${t("cron.monthPrefix")}`,8:`8${t("cron.monthPrefix")}`,9:`9${t("cron.monthPrefix")}`,10:`10${t("cron.monthPrefix")}`,11:`11${t("cron.monthPrefix")}`,12:`12${t("cron.monthPrefix")}`};try{let e="";if(r.includes("/")||s.includes("/")){if("*"===s&&r.includes("/"))return t("cron.everyNMinutes",{n:r.split("/")[1]});if("0"===r&&s.includes("/"))return t("cron.everyNHours",{n:s.split("/")[1]});return null}let n=parseInt(s,10),o=parseInt(r,10);if(isNaN(n)&&"*"!==s||isNaN(o)&&"*"!==r)return null;e="*"===s&&"*"===r?t("cron.everyMinute"):"*"===s?t("cron.everyHourAtMin",{m:o}):"*"===r?t("cron.hourlyEveryMin",{h:n}):`${String(n).padStart(2,"0")}:${String(o).padStart(2,"0")}`;let d=[];if("*"!==a){let e=a.split(",").map(e=>u[e]||`${e}${t("cron.monthPrefix")}`);d.push(e.join(", "))}if("*"!==l)if(l.includes("-")){let[e,n]=l.split("-");d.push(t("cron.dayRange",{a:e,b:n}))}else l.includes(",")?d.push(l.split(",").map(e=>`${e}${t("cron.dayOfMonth")}`).join(", ")):d.push(`${l}${t("cron.dayOfMonth")}`);if("*"!==i)if("1-5"===i)d.push(t("cron.weekdays"));else if("0,6"===i||"6,0"===i)d.push(t("cron.weekends"));else{let e=i.split(",").map(e=>{if(e.includes("-")){let[n,r]=e.split("-");return t("cron.weekdayRange",{a:c[n]||n,b:c[r]||r})}return`${t("cron.weekdayPrefix")}${c[e]||e}`});d.push(e.join(", "))}if(0===d.length&&"*"===l&&"*"===a&&"*"===i)return t("cron.daily",{time:e});return`${d.join(" ")} ${e}`}catch{return null}}(b.trim())||(0,r.jsx)("span",{className:"text-destructive",children:u("scheduledTasks.cronFormat")})})]}):(0,r.jsx)("input",{type:"number",value:g,onChange:e=>{p(e.target.value),L(null)},placeholder:u("scheduledTasks.minutesPlaceholder"),min:1,className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card text-foreground placeholder-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring"})]}),"interval"===m&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"flex items-center gap-2 text-xs text-muted-foreground mb-1 cursor-pointer",children:[(0,r.jsx)("input",{type:"checkbox",checked:j,onChange:e=>N(e.target.checked),className:"rounded border-border"}),u("scheduledTasks.limitTimeRange")]}),j&&(0,r.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,r.jsx)("input",{type:"time",value:y,onChange:e=>w(e.target.value),className:"flex-1 px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-1 focus:ring-ring"}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:u("scheduledTasks.to")}),(0,r.jsx)("input",{type:"time",value:k,onChange:e=>C(e.target.value),className:"flex-1 px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-1 focus:ring-ring"})]})]}),(0,r.jsx)("button",{onClick:T,disabled:!(f.trim()&&("once"===m||"interval"===m?!!(E||g&&parseInt(g,10)>0):"cron"===m&&!!(E||b.trim()))),className:"w-full py-1.5 text-sm font-medium rounded bg-brand text-white hover:bg-brand/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:d?u("scheduledTasks.saveBtn",{modKey:(0,a.Mu)()}):u("scheduledTasks.createBtn",{modKey:(0,a.Mu)()})})]})]})}},31914:(e,t,n)=>{n.d(t,{b:()=>u});var r=n(95155),s=n(12115),l=n(79114),o=n(72816),a=n(38093),i=n(72588),c=n(10611);function u({isOpen:e,onClose:t}){let{t:n,i18n:u}=(0,l.Bd)(),{theme:d,setTheme:m}=(0,o.D)(),h=(0,c.G)(),[f,x]=(0,s.useState)(""),[g,p]=(0,s.useState)(""),[b,v]=(0,s.useState)("auto");(0,s.useEffect)(()=>{e&&fetch("/api/settings").then(e=>e.json()).then(e=>{e.language&&v(e.language)}).catch(()=>{})},[e]);let y=(0,s.useCallback)(e=>{v(e),fetch("/api/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({language:e})}).catch(()=>{});let t="auto"===e?navigator.language.startsWith("zh")?"zh":"en":e;u.changeLanguage(t)},[u]),w=h?"installed":"not-installed",k=h?.version??null;if((0,s.useEffect)(()=>{e&&fetch("/api/version").then(e=>e.json()).then(e=>{e.version&&p(e.version)}).catch(()=>{})},[e]),(0,s.useEffect)(()=>{e&&fetch("/api/extension/version").then(e=>e.json()).then(e=>{e.path&&x(e.path)}).catch(()=>{})},[e]),!e)return null;let C=[{value:"system",label:n("settings.themeSystem"),icon:"\uD83D\uDCBB"},{value:"light",label:n("settings.themeLight"),icon:"☀️"},{value:"dark",label:n("settings.themeDark"),icon:"\uD83C\uDF19"}];return(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/50",onClick:t}),(0,r.jsxs)("div",{className:"relative bg-card rounded-lg shadow-xl w-full max-w-md mx-4 overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,r.jsx)("h2",{className:"text-sm font-medium text-foreground",children:n("settings.title")}),(0,r.jsx)("button",{onClick:t,className:"p-1 text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,r.jsxs)("div",{className:"p-4 space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:n("settings.theme")}),(0,r.jsx)("div",{className:"grid grid-cols-3 gap-2",children:C.map(e=>(0,r.jsxs)("button",{onClick:()=>m(e.value),className:`flex flex-col items-center gap-1 p-3 rounded-lg border transition-colors ${d===e.value?"border-brand bg-brand/10 text-brand":"border-border hover:border-slate-6 text-muted-foreground hover:text-foreground"}`,children:[(0,r.jsx)("span",{className:"text-xl",children:e.icon}),(0,r.jsx)("span",{className:"text-xs font-medium",children:e.label})]},e.value))})]}),(0,r.jsx)("div",{className:"border-t border-border"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:n("settings.language")}),(0,r.jsx)("div",{className:"grid grid-cols-3 gap-2",children:[{value:"auto",label:n("settings.languageAuto"),icon:"\uD83C\uDF10"},{value:"en",label:"English",icon:"\uD83C\uDDFA\uD83C\uDDF8"},{value:"zh",label:"中文",icon:"\uD83C\uDDE8\uD83C\uDDF3"}].map(e=>(0,r.jsxs)("button",{onClick:()=>y(e.value),className:`flex flex-col items-center gap-1 p-3 rounded-lg border transition-colors ${b===e.value?"border-brand bg-brand/10 text-brand":"border-border hover:border-slate-6 text-muted-foreground hover:text-foreground"}`,children:[(0,r.jsx)("span",{className:"text-xl",children:e.icon}),(0,r.jsx)("span",{className:"text-xs font-medium",children:e.label})]},e.value))})]}),(0,r.jsx)("div",{className:"border-t border-border"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:n("settings.browserExtension")}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsx)("span",{className:`inline-block w-2 h-2 rounded-full flex-shrink-0 ${"installed"===w?"bg-green-500":"bg-slate-400"}`}),(0,r.jsxs)("span",{children:["installed"===w&&`${n("settings.extensionInstalled")}${k?` (v${k})`:""}`,"not-installed"===w&&n("settings.extensionNotInstalled")]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground leading-relaxed",children:n("settings.extensionDescription")}),"installed"!==w&&(0,r.jsxs)("div",{className:"text-xs text-muted-foreground bg-muted/50 rounded-md p-2 space-y-1",children:[(0,r.jsx)("p",{className:"font-medium text-foreground",children:n("settings.installSteps")}),(0,r.jsxs)("p",{children:[n("settings.step1")," ",(0,r.jsx)("code",{className:"px-1 py-0.5 bg-muted rounded text-foreground",children:"chrome://extensions"})]}),(0,r.jsx)("p",{children:n("settings.step2")}),(0,r.jsx)("p",{children:n("settings.step3")}),(0,i.L)()&&(0,r.jsx)("p",{dangerouslySetInnerHTML:{__html:n("settings.step4mac")}})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:()=>{let e=f||"chrome-extension";navigator.clipboard.writeText(e),(0,a.oR)(n("toast.copiedName",{name:e}))},className:"px-3 py-1.5 text-xs bg-brand text-white rounded-md hover:bg-brand/90 transition-colors",children:n("settings.copyExtensionPath")}),"installed"===w&&(0,r.jsx)("button",{onClick:()=>{h?.id&&window.chrome?.runtime?.sendMessage&&(window.chrome.runtime.sendMessage(h.id,{type:"reload"}),(0,a.oR)(n("toast.pluginReloading")))},className:"px-3 py-1.5 text-xs border border-border text-foreground rounded-md hover:bg-muted transition-colors",children:n("settings.reloadExtension")})]}),f&&(0,r.jsx)("p",{className:"text-[11px] text-muted-foreground font-mono truncate",children:f})]})]}),(0,r.jsx)("div",{className:"border-t border-border"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-medium text-foreground mb-2",children:n("settings.about")}),(0,r.jsxs)("div",{className:"text-xs text-muted-foreground space-y-1",children:[(0,r.jsxs)("p",{children:["Cockpit",g?` v${g}`:""]}),(0,r.jsx)("p",{className:"text-muted-foreground/60",children:"One seat. One AI. Everything under control."})]})]})]})]})]})}},36998:(e,t,n)=>{n.d(t,{P:()=>s});var r=n(12115);function s(){let[e,t]=(0,r.useState)([]),n=(0,r.useCallback)(()=>{fetch("/api/pinned-sessions").then(e=>e.json()).then(e=>t(e.sessions||[])).catch(()=>{})},[]);(0,r.useEffect)(()=>{n()},[n]),(0,r.useEffect)(()=>{let e=e=>{e.data?.type==="PINNED_SESSIONS_CHANGED"&&n()};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[n]);let s=(0,r.useCallback)(e=>{t(e),fetch("/api/pinned-sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessions:e})}).catch(()=>{});try{window.parent.postMessage({type:"PINNED_SESSIONS_CHANGED"},"*")}catch{}},[]),l=(0,r.useCallback)(t=>e.some(e=>e.sessionId===t),[e]),o=(0,r.useCallback)((t,n,r)=>{e.some(e=>e.sessionId===t)||s([...e,{sessionId:t,cwd:n,customTitle:r}])},[e,s]),a=(0,r.useCallback)(t=>{s(e.filter(e=>e.sessionId!==t))},[e,s]),i=(0,r.useCallback)((t,n)=>{s(e.map(e=>e.sessionId===t?{...e,customTitle:n}:e))},[e,s]);return{pinnedSessions:e,isPinned:l,pinSession:o,unpinSession:a,updateTitle:i,reorder:(0,r.useCallback)(e=>{s(e)},[s]),reload:n}}},57842:(e,t,n)=>{n.d(t,{Ee:()=>m,SU:()=>c,ft:()=>d,iN:()=>u});var r=n(95155),s=n(12115),l=n(79114),o=n(47650),a=n(38093);let i=(0,s.createContext)(null);function c({container:e,children:t}){return(0,r.jsx)(i.Provider,{value:e,children:t})}function u(){return(0,s.useContext)(i)}function d({x:e,y:t,path:n,cwd:c,isDirectory:u,onClose:d,onCreateFile:m,onDelete:h,onRefresh:f,onCopyFile:x,onPaste:g}){let{t:p}=(0,l.Bd)(),b=(0,s.useRef)(null),v=(0,s.useContext)(i),y=n.split("/").pop()||n,w=`${c}/${n}`,k=n.includes("/")?n.substring(0,n.lastIndexOf("/")):"",C=k?`${c}/${k}`:c,j=u?n:k,N=u?w:C;(0,s.useEffect)(()=>{let e=e=>{b.current&&!b.current.contains(e.target)&&d()},t=e=>{"Escape"===e.key&&d()};return document.addEventListener("mousedown",e),document.addEventListener("keydown",t),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",t)}},[d]);let[E,L]=(0,s.useState)({x:0,y:0});(0,s.useEffect)(()=>{if(b.current&&v){let n=v.getBoundingClientRect(),r=b.current.getBoundingClientRect(),s=e-n.left,l=t-n.top;s=Math.min(s,n.width-r.width-8),l=Math.min(l,n.height-r.height-8),L({x:s=Math.max(8,s),y:l=Math.max(8,l)})}else if(b.current){let n=b.current.getBoundingClientRect();L({x:Math.max(8,Math.min(e,window.innerWidth-n.width-8)),y:Math.max(8,Math.min(t,window.innerHeight-n.height-8))})}},[e,t,v]);let S=(0,s.useCallback)(async(e,t)=>{try{await navigator.clipboard.writeText(e),(0,a.oR)(p("toast.copiedName",{name:t}),"success")}catch{(0,a.oR)(p("toast.copyFailed"),"error")}d()},[d,p]),M=u?n:k,T=[{label:p("fileContextMenu.copyRelativePath"),value:n},{label:p("fileContextMenu.copyAbsolutePath"),value:w},{label:p("fileContextMenu.copyRelativeDirPath"),value:j||"."},{label:p("fileContextMenu.copyAbsoluteDirPath"),value:N},{label:u?p("fileContextMenu.copyFolderName"):p("fileContextMenu.copyFileName"),value:y}],R=(0,r.jsxs)("div",{ref:b,className:"absolute z-[200] bg-card border border-border rounded-lg shadow-lg py-1 w-fit whitespace-nowrap",style:{left:E.x,top:E.y},children:[m&&(0,r.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{d(),m(M)},children:p("fileContextMenu.createFile")}),x&&(0,r.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{d(),x(n)},children:u?p("fileContextMenu.copyFolder"):p("fileContextMenu.copyFile")}),g&&(0,r.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>{d(),g(M)},children:p("fileContextMenu.pasteHere")}),h&&(0,r.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-destructive hover:bg-accent transition-colors",onClick:()=>{d(),h(n,u,y)},children:u?p("fileContextMenu.deleteFolder"):p("fileContextMenu.deleteFile")}),(m||h||x||g)&&(0,r.jsx)("div",{className:"my-1 border-t border-border"}),T.map((e,t)=>(0,r.jsx)("button",{className:"block w-full px-3 py-1.5 text-left text-sm text-foreground hover:bg-accent transition-colors",onClick:()=>S(e.value,e.label),children:e.label},t))]});return v?(0,o.createPortal)(R,v):R}function m(){let[e,t]=(0,s.useState)(null);return{contextMenu:e,showContextMenu:(0,s.useCallback)((e,n,r)=>{e.preventDefault(),e.stopPropagation(),t({x:e.clientX,y:e.clientY,path:n,isDirectory:r})},[]),hideContextMenu:(0,s.useCallback)(()=>{t(null)},[])}}},71063:(e,t,n)=>{n.d(t,{_:()=>l});var r=n(12115),s=n(10222);function l({cwd:e,filePath:t}){let[n,l]=(0,r.useState)([]),[o,a]=(0,r.useState)(!1),[i,c]=(0,r.useState)(null),u=(0,r.useCallback)(async()=>{if(e&&t){a(!0),c(null);try{let n=await fetch(`/api/comments?cwd=${encodeURIComponent(e)}&filePath=${encodeURIComponent(t)}`);if(n.ok){let e=await n.json();l(e.comments||[])}else c("Failed to load comments")}catch(e){c(e instanceof Error?e.message:"Unknown error")}finally{a(!1)}}},[e,t]);(0,r.useEffect)(()=>{u()},[u]),(0,r.useEffect)(()=>(0,s.zL)(()=>{u()}),[u]);let d=(0,r.useCallback)(async(n,r,s,o)=>{try{let a=await fetch("/api/comments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,filePath:t,startLine:n,endLine:r,content:s,...o?{selectedText:o}:{}})});if(a.ok){let e=await a.json();return l(t=>[...t,e.comment]),e.comment}}catch(e){console.error("Failed to add comment:",e)}return null},[e,t]),m=(0,r.useCallback)(async(t,n)=>{try{let r=await fetch("/api/comments",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,id:t,content:n})});if(r.ok){let e=await r.json();return l(n=>n.map(n=>n.id===t?e.comment:n)),!0}}catch(e){console.error("Failed to update comment:",e)}return!1},[e]),h=(0,r.useCallback)(async t=>{try{if((await fetch(`/api/comments?cwd=${encodeURIComponent(e)}&id=${encodeURIComponent(t)}`,{method:"DELETE"})).ok)return l(e=>e.filter(e=>e.id!==t)),!0}catch(e){console.error("Failed to delete comment:",e)}return!1},[e]),f=(0,r.useCallback)(e=>n.filter(t=>e>=t.startLine&&e<=t.endLine),[n]);return{comments:n,isLoading:o,error:i,addComment:d,updateComment:m,deleteComment:h,refresh:u,getCommentsForLine:f}}},72588:(e,t,n)=>{n.d(t,{L:()=>s,Mu:()=>l});var r=n(41463);function s(){return!("u"<typeof navigator)&&(/Mac|iPhone|iPad/.test(navigator.platform||"")||navigator.userAgentData?.platform==="macOS")}function l(){return s()?"⌘":"Ctrl+"}r.platform,r.platform,r.platform},74446:(e,t,n)=>{n.d(t,{U:()=>l,k:()=>s});let r="cockpit-skills";function s(){let e="u"<typeof BroadcastChannel?null:new BroadcastChannel(r);if(e)try{e.postMessage({type:"changed"})}finally{e.close()}}function l(e){if("u"<typeof BroadcastChannel)return()=>{};let t=new BroadcastChannel(r),n=t=>{t.data?.type==="changed"&&e()};return t.addEventListener("message",n),()=>{t.removeEventListener("message",n),t.close()}}},74567:(e,t,n)=>{n.d(t,{f:()=>a,w:()=>o});var r=n(95155),s=n(12115),l=n(79114);function o({x:e,y:t,visible:n,container:s,onAddComment:o,onSendToAI:a,onSearch:i,isChatLoading:c}){let{t:u}=(0,l.Bd)(),d=s.getBoundingClientRect(),m=e-d.left,h=Math.max(0,t-d.top-40);return(0,r.jsxs)("div",{className:"floating-toolbar absolute z-[200] flex items-center gap-1.5 bg-card border border-border rounded-lg shadow-xl p-1.5",style:{left:m+8,top:h,visibility:n?"visible":"hidden",pointerEvents:n?"auto":"none"},children:[(0,r.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors",onClick:o,children:u("floatingToolbar.addComment")}),(0,r.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",onClick:a,disabled:c,title:u(c?"comments.aiResponding":"floatingToolbar.sendToAI"),children:u("floatingToolbar.sendToAI")}),i&&(0,r.jsx)("button",{className:"px-3 py-1.5 text-xs font-medium border border-brand text-brand rounded-md hover:bg-brand/10 transition-colors",onClick:i,children:u("floatingToolbar.search")})]})}let a=(0,s.memo)(function({floatingToolbarRef:e,bumpRef:t,container:n,onAddComment:l,onSendToAI:a,onSearch:i,isChatLoading:c}){let[u,d]=(0,s.useState)(0);(0,s.useEffect)(()=>{t.current=()=>d(e=>e+1)},[t]);let m=(0,s.useMemo)(()=>e.current,[u]);return(0,r.jsx)(o,{x:m?.x??0,y:m?.y??0,visible:!!m,container:n,onAddComment:l,onSendToAI:a,onSearch:i,isChatLoading:c})})},82085:(e,t,n)=>{n.d(t,{C:()=>l});var r=n(12115),s=n(23193);function l(e,t){let[n,l]=(0,r.useState)([]),[o,a]=(0,r.useState)(!1),i=(0,r.useRef)("");(0,r.useEffect)(()=>{let e=()=>{a(document.documentElement.classList.contains("dark"))};e();let t=new MutationObserver(e);return t.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>t.disconnect()},[]);let c=e.join("\n");return(0,r.useEffect)(()=>{if(0===e.length)return;let n=`${c}:${t}:${o}`;if(n===i.current)return;i.current=n,l(e.map(e=>(0,s.ZD)(e||" ")));let r=!1;return(async()=>{try{let n=await (0,s.kS)();if(r)return;let a=(0,s.sQ)(t),i=e.join("\n"),c=n.codeToTokens(i,{lang:a,theme:o?"github-dark":"github-light"}),u=[];for(let e=0;e<c.tokens.length;e++)if(u[e]=(0,s.b8)(c.tokens[e]),e%500==0&&e>0&&(await new Promise(e=>setTimeout(e,0)),r))return;l(u)}catch(e){console.error("Line highlight error:",e)}})(),()=>{r=!0}},[c,t,o]),n}},84392:(e,t,n)=>{n.d(t,{t:()=>o});var r=n(95155),s=n(12115),l=n(79114);function o({x:e,y:t,comment:n,container:o,onClose:a,onUpdateComment:i,onDeleteComment:c}){let{t:u}=(0,l.Bd)(),[d,m]=(0,s.useState)(!1),[h,f]=(0,s.useState)(n.content),x=(0,s.useRef)(null),[g,p]=(0,s.useState)({x:0,y:0});(0,s.useEffect)(()=>{if(x.current&&o){let n=o.getBoundingClientRect(),r=x.current.getBoundingClientRect(),s=e-n.left,l=t-n.top;s+r.width>n.width-16&&(s=n.width-r.width-16),s<16&&(s=16),l+r.height>n.height-16&&(l=l-r.height-8),l<16&&(l=16),queueMicrotask(()=>p({x:s,y:l}))}},[e,t,o]),(0,s.useEffect)(()=>{let e=e=>{x.current&&!x.current.contains(e.target)&&a()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[a]);let b=async()=>{h.trim()&&(await i(n.id,h.trim()),m(!1))},v=async()=>{await c(n.id),a()};return(0,r.jsx)("div",{ref:x,className:"absolute z-[200] w-96 bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:g.x,top:g.y},children:(0,r.jsx)("div",{className:"p-3",children:d?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("textarea",{value:h,onChange:e=>f(e.target.value),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring",rows:3,autoFocus:!0,onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),b()),"Escape"===e.key&&(m(!1),f(n.content))}}),(0,r.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,r.jsx)("button",{onClick:()=>{m(!1),f(n.content)},className:"px-2 py-1 text-xs text-muted-foreground hover:text-foreground",children:u("common.cancel")}),(0,r.jsx)("button",{onClick:b,className:"px-2 py-1 text-xs bg-brand text-white rounded hover:bg-brand/90",children:u("common.save")})]})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:"text-sm text-foreground whitespace-pre-wrap",children:n.content}),(0,r.jsxs)("div",{className:"mt-2 flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:u("comments.lineRange",{start:n.startLine,end:n.endLine})}),(0,r.jsxs)("div",{className:"flex gap-1",children:[(0,r.jsx)("button",{onClick:()=>m(!0),className:"p-1 rounded hover:bg-accent text-muted-foreground",title:u("common.edit"),children:(0,r.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}),(0,r.jsx)("button",{onClick:v,className:"p-1 rounded hover:bg-accent text-muted-foreground hover:text-red-9",title:u("common.delete"),children:(0,r.jsx)("svg",{className:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"})})})]})]})]})})})}},89662:(e,t,n)=>{n.d(t,{Cv:()=>T,XO:()=>R});var r=n(95155),s=n(12115),l=n(79114),o=n(47650),a=n(57842),i=n(91694),c=n(82085),u=n(23193),d=n(74567),m=n(84392),h=n(87918);function f({blame:e,onClick:t}){let{t:n}=(0,l.Bd)(),a=(0,s.useRef)(null),i=(0,s.useRef)(null),c=(0,s.useRef)(!1),u=(0,s.useRef)(!1),d=(0,s.useRef)(null),m=(0,s.useRef)(null),f=(0,s.useRef)(null),x=(0,s.useRef)(e);(0,s.useEffect)(()=>{x.current=e},[e]);let g=(0,s.useRef)(t);(0,s.useEffect)(()=>{g.current=t},[t]);let p=(0,s.useCallback)(()=>{let e,t=i.current,n=a.current;if(!t||!n)return;let r=n.getBoundingClientRect(),s=t.getBoundingClientRect(),l=window.innerWidth,o=window.innerHeight,c=r.left;c+s.width>l-8&&(c=l-s.width-8),c<8&&(c=8),(e=r.top-s.height-4<0?r.bottom+4:r.top-s.height-4)+s.height>o-8&&(e=o-s.height-8),t.style.left=`${c}px`,t.style.top=`${e}px`},[]),b=(0,s.useCallback)(()=>{d.current&&(clearTimeout(d.current),d.current=null),m.current&&(clearTimeout(m.current),m.current=null),c.current=!1,u.current=!1,i.current&&(i.current.style.display="none"),f.current&&(document.removeEventListener("mousedown",f.current.down),document.removeEventListener("mouseup",f.current.up),f.current=null)},[]),v=(0,s.useCallback)(()=>{let e=i.current;if(!e||c.current)return;c.current=!0,e.style.left="-9999px",e.style.top="-9999px",e.style.display="block",requestAnimationFrame(()=>requestAnimationFrame(p));let t=0,n=0,r=e=>{t=e.clientX,n=e.clientY},s=e=>{if(!(Math.abs(e.clientX-t)>5||Math.abs(e.clientY-n)>5)){let t;t=e.target,i.current?.contains(t)||a.current?.contains(t)||b()}};document.addEventListener("mousedown",r),document.addEventListener("mouseup",s),f.current={down:r,up:s}},[p,b]),y=(0,s.useCallback)(()=>{if(d.current&&clearTimeout(d.current),m.current&&(clearTimeout(m.current),m.current=null),c.current)return;let e=window.getSelection();(!e||e.isCollapsed)&&(d.current=setTimeout(v,500))},[v]),w=(0,s.useCallback)(()=>{d.current&&(clearTimeout(d.current),d.current=null),c.current&&(m.current=setTimeout(()=>{u.current||b()},200))},[b]),k=(0,s.useCallback)(()=>{u.current=!0,m.current&&(clearTimeout(m.current),m.current=null)},[]),C=(0,s.useCallback)(()=>{u.current=!1,b()},[b]),j=(0,s.useCallback)(e=>{e.stopPropagation();let t=window.getSelection();t&&t.toString().length>0&&i.current?.contains(t.anchorNode)||(g.current?.(x.current),b())},[b]);(0,s.useEffect)(()=>()=>b(),[b]);let N=e.message.split("\n")[0]||"",E=e.message.split("\n").slice(1).join("\n").trim();return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("span",{ref:a,className:"select-none text-xs text-muted-foreground/50 ml-6 cursor-default hover:text-muted-foreground/80",onMouseEnter:y,onMouseLeave:w,children:[e.author.split(" ")[0],", ",function(e){let t=h.A.t,n=Math.floor((Date.now()-1e3*e)/1e3);if(n<60)return t("common.justNow");let r=Math.floor(n/60);if(r<60)return t("common.minutesAgo",{count:r});let s=Math.floor(r/60);if(s<24)return t("common.hoursAgo",{count:s});let l=Math.floor(s/24);if(l<30)return t("common.daysAgo",{count:l});let o=Math.floor(l/30);return o<12?t("common.monthsAgo",{count:o}):t("common.yearsAgo",{count:Math.floor(o/12)})}(e.time)," \xb7 ",N]}),(0,o.createPortal)((0,r.jsxs)("div",{ref:i,className:"fixed z-[9999] bg-card border border-border rounded-lg shadow-xl p-3 text-xs text-foreground whitespace-pre-wrap max-w-md select-text",style:{display:"none",minWidth:280,cursor:"text"},"data-inline-blame-tip":"",onMouseEnter:k,onMouseLeave:C,children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-1.5",children:[(0,r.jsx)("span",{className:"font-mono text-brand",children:e.hash}),(0,r.jsx)("span",{className:"text-muted-foreground",children:e.author}),(0,r.jsx)("span",{className:"text-muted-foreground/60",children:new Date(1e3*e.time).toLocaleString()})]}),(0,r.jsx)("div",{className:"font-medium",children:N}),E&&(0,r.jsx)("div",{className:"mt-1 text-muted-foreground",children:E}),(0,r.jsx)("div",{className:"mt-2 text-[11px] text-brand border-t border-border pt-2 cursor-pointer hover:underline",onClick:j,children:n("codeViewer.clickToViewDetails")})]}),document.body)]})}let x=[{bg:"rgba(59, 130, 246, 0.15)",border:"rgb(59, 130, 246)"},{bg:"rgba(16, 185, 129, 0.15)",border:"rgb(16, 185, 129)"},{bg:"rgba(245, 158, 11, 0.15)",border:"rgb(245, 158, 11)"},{bg:"rgba(239, 68, 68, 0.15)",border:"rgb(239, 68, 68)"},{bg:"rgba(168, 85, 247, 0.15)",border:"rgb(168, 85, 247)"},{bg:"rgba(236, 72, 153, 0.15)",border:"rgb(236, 72, 153)"},{bg:"rgba(20, 184, 166, 0.15)",border:"rgb(20, 184, 166)"},{bg:"rgba(249, 115, 22, 0.15)",border:"rgb(249, 115, 22)"}];function g(e,t){let n,r=document.caretRangeFromPoint(e.clientX,e.clientY);if(!r||!t.contains(r.startContainer))return 1;let s=r.startContainer,l=r.startOffset,o=document.createTreeWalker(t,NodeFilter.SHOW_TEXT),a=1;for(;n=o.nextNode();){if(n===s){a+=l;break}a+=n.textContent?.length||0}return a}let p=(0,s.memo)(function({virtualKey:e,lineNum:t,highlightedHtml:n,hasComments:o,firstComment:a,lineCommentsCount:i,isInRange:c,showLineNumbers:u,lineNumChars:d,commentsEnabled:m,virtualItemSize:h,virtualItemStart:x,onCommentBubbleClick:p,onCmdClick:b,onTokenHover:v,onTokenHoverLeave:y,flashLine:w,blameLine:k,showBlameInfo:C,blameAuthorColor:j,isBlameHovered:N,onBlameClick:E,onBlameMouseEnter:L,onBlameMouseLeave:S,inlineBlameData:M,onInlineBlameClick:T,isCursorLine:R,cursorCol:$}){let{t:P}=(0,l.Bd)(),I=(0,s.useMemo)(()=>R&&null!=$?function(e,t){let n=0,r=0;for(;r<e.length;){if("<"===e[r]){let t=e.indexOf(">",r);if(-1!==t){r=t+1;continue}}if(n===t){let t;if("&"===e[r]){let n=e.indexOf(";",r);t=-1!==n&&n-r<10?n+1:r+1}else t=r+1;let n=e.substring(r,t);return e.substring(0,r)+'<span class="vi-char-cursor">'+n+"</span>"+e.substring(t)}if("&"===e[r]){let t=e.indexOf(";",r);r=-1!==t&&t-r<10?t+1:r+1}else r++;n++}return e+'<span class="vi-char-cursor"> </span>'}(n,$):n,[n,R,$]),D=(0,s.useCallback)(e=>{if(!e.metaKey||!b)return;e.preventDefault(),e.stopPropagation();let n=e.currentTarget,r=g(e,n);window.getSelection()?.removeAllRanges(),b(t,r)},[t,b]),A=(0,s.useCallback)(e=>{if(!v||0!==e.buttons)return;let n=window.getSelection();if(n&&!n.isCollapsed)return;let r=e.target;if("SPAN"!==r.tagName||!r.style.color)return;let s=e.currentTarget,l=g(e,s),o=r.getBoundingClientRect();v(t,l,{x:o.left,y:o.bottom+4})},[t,v]),O=(0,s.useCallback)(()=>{k&&E&&E(k)},[k,E]),K=(0,s.useCallback)(e=>{k&&L&&L(k,e)},[k,L]);return(0,r.jsxs)("div",{"data-line":t,style:{position:"absolute",top:0,left:0,width:"100%",height:`${h}px`,transform:`translateY(${x}px)`,backgroundColor:N&&j?j.bg:void 0},className:`flex ${w===t?"flash-line":""} ${R?"vi-cursor-line":""} ${c?"bg-blue-9/20":o?"bg-amber-9/10":"hover:bg-accent/50"}`,children:[(0,r.jsxs)("div",{className:"flex shrink-0 sticky left-0 z-[2] bg-secondary",style:{backgroundColor:N&&j?j.bg:void 0},children:[k&&j&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"w-1 flex-shrink-0",style:{backgroundColor:j.border}}),(0,r.jsx)("div",{className:"w-48 flex-shrink-0 px-2 flex items-center gap-2 border-r border-border text-muted-foreground cursor-pointer hover:bg-accent/50",onMouseEnter:K,onMouseLeave:S,onClick:O,title:P("codeViewer.clickToViewCommit"),children:C?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"font-medium",style:{color:j.border},children:k.hash}),(0,r.jsx)("span",{className:"truncate flex-1",children:k.author.split(" ")[0]})]}):null})]}),u&&(0,r.jsxs)("span",{className:`flex-shrink-0 flex items-center justify-end gap-0.5 pr-2 select-none border-r border-border font-variant-tabular ${c?"bg-blue-9/30 text-blue-11":"bg-card/50 text-slate-9"}`,children:[m&&o&&a&&(0,r.jsx)("button",{onClick:e=>p(a,e),className:"w-4 h-4 flex items-center justify-center rounded hover:bg-accent text-amber-9",title:P("codeViewer.nComments",{count:i}),children:(0,r.jsx)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M18 10c0 3.866-3.582 7-8 7a8.841 8.841 0 01-4.083-.98L2 17l1.338-3.123C2.493 12.767 2 11.434 2 10c0-3.866 3.582-7 8-7s8 3.134 8 7zM7 9H5v2h2V9zm8 0h-2v2h2V9zM9 9h2v2H9V9z",clipRule:"evenodd"})})}),m&&!o&&(0,r.jsx)("span",{className:"w-4"}),(0,r.jsx)("span",{className:"text-right",style:{minWidth:`${d}ch`},children:t})]})]}),(0,r.jsxs)("span",{className:"flex-1 px-3 whitespace-pre select-text",onClick:D,onMouseOver:A,onMouseLeave:y,"data-code-content":!0,children:[(0,r.jsx)("span",{dangerouslySetInnerHTML:{__html:I}}),M&&(0,r.jsx)(f,{blame:M,onClick:T})]})]},e)});var b=n(64702),v=n(71063),y=n(10222),w=n(1531);function k(e,t,n){let r,s=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),l=0;for(;(r=s.nextNode())&&r!==t;)l+=r.textContent.length;return l+n}function C(e,t){let n,r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT),s=t,l=null;for(;n=r.nextNode();){l=n;let e=n.textContent.length;if(s<=e)return{node:n,offset:s};s-=e}return l?{node:l,offset:l.textContent.length}:null}var j=n(578),N=n(38093);let E="white-space:pre;padding:0 12px;min-height:20px;line-height:20px";function L(e){let t=window.getSelection();if(!t?.rangeCount)return null;let n=t.getRangeAt(0),r=n.startContainer;for(;r&&r.parentElement!==e;)r=r.parentElement;if(!r)return null;let s=Array.from(e.children).indexOf(r);if(s<0)return null;let l=document.createRange();return l.selectNodeContents(r),l.setEnd(n.startContainer,n.startOffset),{line:s,offset:l.toString().length}}function S(e,t){let n,r=e.children[t.line];if(!r)return;let s=document.createTreeWalker(r,NodeFilter.SHOW_TEXT),l=t.offset;for(;n=s.nextNode();){let e=n.textContent?.length||0;if(l<=e){let e=window.getSelection(),t=document.createRange();t.setStart(n,l),t.collapse(!0),e?.removeAllRanges(),e?.addRange(t);return}l-=e}let o=window.getSelection(),a=document.createRange();a.selectNodeContents(r),a.collapse(!1),o?.removeAllRanges(),o?.addRange(a)}function M(e){return e.map(e=>`<div style="${E}">${e}</div>`).join("")}let T=(0,s.forwardRef)(function({content:e,filePath:t,showLineNumbers:n=!0,showSearch:h=!0,className:f="",cwd:g,enableComments:T=!1,scrollToLine:R=null,scrollToLineAlign:$="center",onScrollToLineComplete:P,highlightKeyword:I=null,visibleLineRef:D,onCmdClick:A,onTokenHover:O,onTokenHoverLeave:K,onTokenHoverCancel:B,blameLines:F,inlineBlameLines:H,onSelectCommit:z,editable:W=!1,initialMtime:_,onEditorClose:q,onSaved:V,onEditorStateChange:U,viMode:X=!1,onContentMutate:J,onEnterInsertMode:Y,onViSave:Z,viStateRef:G,initialCursorLine:Q,initialCursorCol:ee,onInitialCursorSet:et,onContentSearch:en},er){let{t:es}=(0,l.Bd)(),el=(0,s.useRef)(e),eo=(0,s.useRef)(!1),[ea,ei]=(0,s.useState)(!1),[ec,eu]=(0,s.useState)(!1),[ed,em]=(0,s.useState)(()=>e.split("\n").length),eh=(0,s.useRef)(e.split("\n").length),[ef,ex]=(0,s.useState)({show:!1}),eg=(0,s.useRef)(null),ep=(0,s.useRef)(null),eb=(0,s.useRef)(_),ev=(0,s.useRef)(null),ey=(0,s.useRef)(!1),ew=(0,s.useRef)(!1),{parentRef:ek,containerRef:eC,searchInputRef:ej,floatingToolbarRef:eN,suppressHoverRef:eE,bumpToolbarRef:eL,savedSelectionRef:eS,highlightedLines:eM,isMounted:eT,cmdHeld:eR,flashLine:e$,isSearchVisible:eP,searchQuery:eI,caseSensitive:eD,wholeWord:eA,currentMatchIndex:eO,viewingComment:eK,addCommentInput:eB,sendToAIInput:eF,chatContext:eH,commentsEnabled:ez,updateComment:eW,deleteComment:e_,lines:eq,matches:eV,rowData:eU,virtualizer:eX,commentsByEndLine:eJ,linesWithComments:eY,setIsSearchVisible:eZ,setSearchQuery:eG,setCaseSensitive:eQ,setWholeWord:e0,setViewingComment:e1,setAddCommentInput:e2,setSendToAIInput:e5,goToNextMatch:e3,goToPrevMatch:e4,handleSearchKeyDown:e8,handleCommentBubbleClick:e6,handleToolbarAddComment:e9,handleToolbarSendToAI:e7,handleToolbarSearch:te,handleCommentSubmit:tt,handleSendToAISubmit:tn,getHighlightedLineHtml:tr,suppressMatchScrollRef:ts,inlineBlameLineRef:tl,inlineBlameVersion:to}=function({content:e,filePath:t,showSearch:n=!0,cwd:r,enableComments:l=!1,scrollToLine:o=null,scrollToLineAlign:a="center",onScrollToLineComplete:i,visibleLineRef:d,onContentSearch:m}){let[h,f]=(0,s.useState)(!1),x=(0,s.useRef)(null),g=(0,s.useRef)(null),p=(0,s.useRef)(null),C=(0,w.nH)();(0,s.useEffect)(()=>{f(!0)},[]);let[j,N]=(0,s.useState)(!1),[E,L]=(0,s.useState)(null),S=(0,s.useRef)(null),[M,T]=(0,s.useState)(!1),[R,$]=(0,s.useState)(""),[P,I]=(0,s.useState)(!1),[D,A]=(0,s.useState)(!1),[O,K]=(0,s.useState)(0),[B,F]=(0,s.useState)(0),H=(0,s.useRef)(!1),[z,W]=(0,s.useState)(null),_=(0,s.useRef)(null),q=(0,s.useRef)(()=>{}),V=(0,s.useRef)(!1),U=(0,s.useRef)(null),[X,J]=(0,s.useState)(null),[Y,Z]=(0,s.useState)(null),G=(0,s.useRef)(null),[Q,ee]=(0,s.useState)(0),et=l&&!!r,{comments:en,addComment:er,updateComment:es,deleteComment:el,refresh:eo}=(0,v._)({cwd:r||"",filePath:t}),ea=(0,s.useMemo)(()=>e.split("\n"),[e]),ei=(0,c.C)(ea,t),ec=(0,s.useMemo)(()=>{let e=new Map;for(let t of en){let n=t.endLine;e.has(n)||e.set(n,[]),e.get(n).push(t)}return e},[en]),eu=(0,s.useMemo)(()=>{let e=new Set;for(let t of en)for(let n=t.startLine;n<=t.endLine;n++)e.add(n);return e},[en]),ed=(0,s.useMemo)(()=>(0,u.Np)(ea,R,P,D),[ea,R,P,D]);(0,s.useEffect)(()=>{ed.length>0&&K(0)},[ed.length,R,P,D]);let em=(0,s.useMemo)(()=>{let e=[];for(let t=0;t<ea.length;t++)e.push({type:"code",lineIndex:t});return e},[ea.length]),eh=(0,b.Te)({count:em.length,getScrollElement:()=>x.current,estimateSize:()=>20,overscan:10});(0,s.useEffect)(()=>{if(!d)return;let e=x.current;if(!e)return;let t=()=>{if(!eh.range)return;let t=e.scrollTop;for(let e of eh.getVirtualItems())if(e.start>=t){let t=em[e.index];t?.type==="code"&&(d.current=t.lineIndex+1);return}};return e.addEventListener("scroll",t,{passive:!0}),t(),()=>e.removeEventListener("scroll",t)},[d,em]),(0,s.useEffect)(()=>{let e=e=>{"Meta"===e.key&&N(!0)},t=e=>{"Meta"===e.key&&N(!1)},n=()=>N(!1);return window.addEventListener("keydown",e),window.addEventListener("keyup",t),window.addEventListener("blur",n),()=>{window.removeEventListener("keydown",e),window.removeEventListener("keyup",t),window.removeEventListener("blur",n)}},[]),(0,s.useEffect)(()=>{if(!n)return;let e=e=>{(e.metaKey||e.ctrlKey)&&"f"===e.key&&(e.preventDefault(),T(!0),setTimeout(()=>p.current?.focus(),0)),"Escape"===e.key&&(M?(T(!1),$("")):Y?Z(null):X?J(null):_.current?(_.current=null,q.current()):z&&W(null))},t=g.current;if(t)return t.addEventListener("keydown",e),()=>t.removeEventListener("keydown",e)},[n,M,Y,X,z]),(0,s.useEffect)(()=>{if(H.current){H.current=!1;return}if(ed.length>0&&O>=0&&O<ed.length){let e=ed[O],t=em.findIndex(t=>"code"===t.type&&t.lineIndex===e.lineIndex);t>=0&&eh.scrollToIndex(t,{align:"center"})}},[O,ed,eh,em,B]);let ef=(0,s.useCallback)(()=>{0!==ed.length&&(K(e=>(e+1)%ed.length),F(e=>e+1))},[ed.length]),ex=(0,s.useCallback)(()=>{0!==ed.length&&(K(e=>(e-1+ed.length)%ed.length),F(e=>e+1))},[ed.length]),eg=(0,s.useRef)(o);eg.current=o,(0,s.useEffect)(()=>{if(null!==eg.current&&eg.current>0&&em.length>0){let e=eg.current,t=e-1,n=em.findIndex(e=>"code"===e.type&&e.lineIndex===t);if(n>=0){let t=()=>{eh.scrollToIndex(n,{align:a}),"center"===a&&(S.current&&clearTimeout(S.current),L(e),S.current=setTimeout(()=>L(null),500)),i?.()};"start"===a?requestAnimationFrame(t):setTimeout(t,150)}}},[o,a,em.length,eh,i]);let ep=(0,s.useCallback)(e=>{"Enter"===e.key&&(e.preventDefault(),e.shiftKey?ex():ef()),"Escape"===e.key&&(T(!1),$(""))},[ef,ex]),eb=(0,s.useCallback)((e,t)=>{et&&(t.stopPropagation(),W({comment:e,x:t.clientX,y:t.clientY}),_.current=null,q.current(),J(null),Z(null))},[et]);(0,s.useEffect)(()=>{if(!et)return;let e=x.current,t=!1,n=0,r=0,s=e=>{t=!0,n=e.clientX,r=e.clientY,U.current=null,V.current=!0,_.current&&(_.current=null,q.current())},l=e=>{t=!1;let s=e.target;if(s.closest?.(".floating-toolbar"))return;let l=Math.abs(e.clientX-n)>5||Math.abs(e.clientY-r)>5,o=window.getSelection();if(!o||o.isCollapsed){V.current=!1,_.current&&(_.current=null,q.current());return}let a=o.toString();if(!a.trim()||!l){V.current=!1,_.current&&(_.current=null,q.current());return}let i=o.getRangeAt(0),c=x.current;if(!c||!c.contains(i.commonAncestorContainer))return;let u=i.startContainer,d=i.endContainer,m=e=>{if(!document.contains(e))return null;let t=e.nodeType===Node.TEXT_NODE?e.parentElement:e;if(!t)return null;let n=t.closest("[data-line]");return n?parseInt(n.getAttribute("data-line")||"0",10):null},h=m(u),f=m(d);if(h&&f){let t=Math.min(h,f),n=Math.max(h,f);_.current={x:e.clientX,y:e.clientY,range:{start:t,end:n},selectedText:a},V.current=!0,q.current();let r=u.nodeType===Node.TEXT_NODE?u.parentElement?.closest("[data-line]"):u.closest("[data-line]"),s=d.nodeType===Node.TEXT_NODE?d.parentElement?.closest("[data-line]"):d.closest("[data-line]");r&&s&&(U.current={startLine:h,startOffset:k(r,i.startContainer,i.startOffset),endLine:f,endOffset:k(s,i.endContainer,i.endOffset)})}},o=()=>{if(t||!_.current)return;let e=window.getSelection();e&&!e.isCollapsed&&e.toString().trim()||(_.current=null,U.current=null,V.current=!1,q.current())};return e?.addEventListener("mousedown",s),document.addEventListener("mouseup",l),document.addEventListener("selectionchange",o),()=>{e?.removeEventListener("mousedown",s),document.removeEventListener("mouseup",l),document.removeEventListener("selectionchange",o)}},[et]),(0,s.useEffect)(()=>{let e=x.current;if(!e)return;let t=t=>{let n,r;if(!e.contains(t.target)){if(t.target.closest?.("[data-inline-blame-tip]"))return;null!==G.current&&(G.current=null,ee(e=>e+1));return}let s=window.getSelection();if(s&&!s.isCollapsed&&s.toString().trim())return;let l=(n=t.target,(r=n.closest?.("[data-line]"))?parseInt(r.getAttribute("data-line")||"0",10):null);l!==G.current&&(G.current=l,requestAnimationFrame(()=>ee(e=>e+1)))};return document.addEventListener("mouseup",t),()=>document.removeEventListener("mouseup",t)},[]);let ev=(0,s.useCallback)(()=>{let e=_.current;e&&(J({x:e.x,y:e.y,range:e.range,codeContent:e.selectedText}),_.current=null,q.current())},[]),ey=(0,s.useCallback)(()=>{let e=_.current;if(!e)return;let t=e.selectedText;Z({x:e.x,y:e.y,range:e.range,codeContent:t}),_.current=null,q.current()},[]),ew=(0,s.useCallback)(()=>{let e=_.current;if(!e||!m)return;let t=e.selectedText.trim();_.current=null,q.current(),t&&m(t)},[m]),ek=(0,s.useCallback)(async e=>{X&&(await er(X.range.start,X.range.end,e),J(null))},[X,er]),eC=(0,s.useCallback)(async e=>{if(Y&&C&&r)try{let n=await (0,y.$3)(r),s=[];for(let e of n)s.push({filePath:e.filePath,startLine:e.startLine,endLine:e.endLine,codeContent:e.codeContent,note:e.content||void 0});s.push({filePath:t,startLine:Y.range.start,endLine:Y.range.end,codeContent:Y.codeContent});let l=(0,y.Gw)(s,e);C.sendMessage(l),await (0,y.RP)(r),eo(),Z(null)}catch(e){console.error("Failed to send to AI:",e)}},[Y,C,t,r,eo]),ej=(0,s.useCallback)((e,t,n)=>{let r=ea[e];if(!r)return t;let s=[];if(R&&ed.length>0)for(let t of ed.filter(t=>t.lineIndex===e)){let n=ed[O]?.lineIndex===e&&ed[O]?.startCol===t.startCol;s.push({start:t.startCol,end:t.endCol,cls:n?"hl-cur":"hl-m"})}if(n&&!R&&n.length>=1){let e=n.toLowerCase(),t=r.toLowerCase(),l=0;for(;-1!==(l=t.indexOf(e,l));)s.push({start:l,end:l+n.length,cls:"hl-kw"}),l+=1}if(0===s.length)return t;s.sort((e,t)=>e.start-t.start||e.end-t.end);let l=[],o=0;for(let e of s){if(e.start<o)continue;e.start>o&&l.push((0,u.ZD)(r.substring(o,e.start)));let t=(0,u.ZD)(r.substring(e.start,e.end));l.push(`<span class="${e.cls}">${t}</span>`),o=e.end}if(o<r.length&&l.push((0,u.ZD)(r.substring(o))),t!==(0,u.ZD)(r)){let e=t;for(let t of s){let n=r.substring(t.start,t.end),s=(0,u.ZD)(n),l=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),o=RegExp(`(?<=>)([^<]*?)(${l})`,""),a=`$1<span class="${t.cls}">${s}</span>`,i=e.replace(o,a);i.length>e.length+200||(e=i)}return e}return l.join("")},[R,ed,O,ea]);return{parentRef:x,containerRef:g,searchInputRef:p,floatingToolbarRef:_,suppressHoverRef:V,savedSelectionRef:U,highlightedLines:ei,isMounted:h,cmdHeld:j,flashLine:E,isSearchVisible:M,searchQuery:R,caseSensitive:P,wholeWord:D,currentMatchIndex:O,viewingComment:z,bumpToolbarRef:q,addCommentInput:X,sendToAIInput:Y,chatContext:C,commentsEnabled:et,comments:en,updateComment:es,deleteComment:el,lines:ea,matches:ed,rowData:em,virtualizer:eh,commentsByEndLine:ec,linesWithComments:eu,setIsSearchVisible:T,setSearchQuery:$,suppressMatchScrollRef:H,setCaseSensitive:I,setWholeWord:A,setViewingComment:W,setAddCommentInput:J,setSendToAIInput:Z,goToNextMatch:ef,goToPrevMatch:ex,handleSearchKeyDown:ep,handleCommentBubbleClick:eb,handleToolbarAddComment:ev,handleToolbarSendToAI:ey,handleToolbarSearch:ew,handleCommentSubmit:ek,handleSendToAISubmit:eC,getHighlightedLineHtml:ej,inlineBlameLineRef:G,inlineBlameVersion:Q}}({content:e,filePath:t,showSearch:h,cwd:g,enableComments:!W&&T,scrollToLine:W?null:R,scrollToLineAlign:W?"center":$,onScrollToLineComplete:W?void 0:P,visibleLineRef:W?void 0:D,onContentSearch:en}),ta=(0,a.iN)(),ti=(0,s.useRef)(null),tc=(0,s.useRef)(null),tu=(0,s.useRef)({line:0,col:0}),td=function({lines:e,enabled:t,onContentChange:n,onEnterInsert:r,onSave:l,getVisibleLineCount:o,scrollToLine:a,onSearchExecute:i,onSearchNext:c,onSearchPrev:u,onSearchClear:d}){let[m,h]=(0,s.useState)("normal"),[f,x]=(0,s.useState)(-1),[g,p]=(0,s.useState)(0),[b,v]=(0,s.useState)(!1),[y,w]=(0,s.useState)(""),[k,C]=(0,s.useState)(""),[j,N]=(0,s.useState)(""),[E,L]=(0,s.useState)(""),S=(0,s.useRef)([]),M=(0,s.useRef)([]),T=(0,s.useRef)([]),R=(0,s.useRef)(null),$=(0,s.useRef)(e);(0,s.useEffect)(()=>{$.current=e}),(0,s.useEffect)(()=>{0!==e.length&&queueMicrotask(()=>x(t=>Math.min(t,e.length-1)))},[e.length]);let P=(0,s.useCallback)((e,t)=>Math.max(0,Math.min(t,Math.max(0,($.current[e]??"").length-1))),[]),I=(0,s.useRef)(e.length);(0,s.useEffect)(()=>{let t=Math.abs(e.length-I.current);I.current=e.length,t>10&&(queueMicrotask(()=>{x(-1),p(0),v(!1)}),S.current=[],M.current=[],T.current=[])},[e]);let D=(0,s.useCallback)(()=>{R.current&&(clearTimeout(R.current),R.current=null),w("")},[]),A=(0,s.useCallback)(()=>{R.current&&clearTimeout(R.current),R.current=setTimeout(()=>{w(""),R.current=null},500)},[]),O=(0,s.useCallback)((e,t)=>{S.current.push(t),M.current=[],v(!0),n(e.join("\n"))},[n]),K=(0,s.useCallback)((e,t)=>{let n=Math.max(0,Math.min(e,$.current.length-1));x(n),p(P(n,t??0)),a(n,"auto")},[a,P]),B=(0,s.useCallback)(e=>{x(t=>{let n=Math.max(0,Math.min(t+e,$.current.length-1));return a(n,"auto"),p(e=>Math.max(0,Math.min(e,Math.max(0,($.current[n]??"").length-1)))),n})},[a]),F=(0,s.useCallback)(()=>{let e=$.current,t=Math.min(f,e.length-1);if(0===e.length)return;let n=e[t];T.current=[n];let r=[...e];r.splice(t,1),0===r.length&&r.push("");let s=Math.min(t,r.length-1);O(r,{lineIndex:t,oldLines:[n],newLines:[],cursorLine:t}),x(s),p(0)},[f,O]),H=(0,s.useCallback)(()=>{let e=$.current,t=Math.min(f,e.length-1);e.length>0&&(T.current=[e[t]])},[f]),z=(0,s.useCallback)(()=>{let e=T.current;if(0===e.length)return;let t=$.current,n=Math.min(f,t.length-1)+1,r=[...t];r.splice(n,0,...e),O(r,{lineIndex:n,oldLines:[],newLines:[...e],cursorLine:f}),x(n),p(0),a(n,"auto")},[f,O,a]),W=(0,s.useCallback)(()=>{let e=$.current,t=Math.min(f,e.length-1),n=e[t];if(!n||0===n.length)return;let r=n.substring(1),s=[...e];s[t]=r,O(s,{lineIndex:t,oldLines:[n],newLines:[r],cursorLine:f})},[f,O]),_=(0,s.useCallback)(()=>{let e=S.current;if(0===e.length)return;let t=e.pop(),r=[...$.current];0===t.newLines.length&&t.oldLines.length>0?r.splice(t.lineIndex,0,...t.oldLines):0===t.oldLines.length&&t.newLines.length>0?(r.splice(t.lineIndex,t.newLines.length),0===r.length&&r.push("")):r.splice(t.lineIndex,t.newLines.length,...t.oldLines),M.current.push(t),n(r.join("\n")),x(Math.min(t.cursorLine,r.length-1)),a(Math.min(t.cursorLine,r.length-1),"auto"),0===e.length&&v(!1)},[n,a]),q=(0,s.useCallback)(()=>{let e=M.current;if(0===e.length)return;let t=e.pop(),r=[...$.current];0===t.newLines.length&&t.oldLines.length>0?(r.splice(t.lineIndex,t.oldLines.length),0===r.length&&r.push("")):0===t.oldLines.length&&t.newLines.length>0?r.splice(t.lineIndex,0,...t.newLines):r.splice(t.lineIndex,t.oldLines.length,...t.newLines),S.current.push(t),v(!0),n(r.join("\n"));let s=t.lineIndex+Math.max(0,t.newLines.length-1);x(Math.min(s,r.length-1)),a(Math.min(s,r.length-1),"auto")},[n,a]),V=(0,s.useCallback)(e=>{let t=$.current,n=Math.min(f,t.length-1);if("o"===e||"O"===e){let r="o"===e?n+1:n,s=[...t];s.splice(r,0,""),O(s,{lineIndex:r,oldLines:[],newLines:[""],cursorLine:f}),n=r,x(r)}h("insert"),r(n,g,e)},[f,g,O,r]),U=(0,s.useCallback)(()=>{h("normal"),D()},[D]),X=(0,s.useCallback)(()=>{h("command"),C("")},[]),J=(0,s.useCallback)(()=>{h("normal"),C("")},[]),Y=(0,s.useCallback)(()=>{h("search"),N("")},[]),Z=(0,s.useCallback)(()=>{h("normal"),N("")},[]),G=(0,s.useCallback)(e=>{let t=e.trim();if("w"===t){l?.(),h("normal"),C("");return}if("q"===t){h("normal"),C("");return}if("wq"===t){l?.(),h("normal"),C("");return}if("noh"===t||"nohlsearch"===t){d?.(),h("normal"),C("");return}let n=parseInt(t,10);if(!isNaN(n)&&n>0){let e=Math.min(n-1,$.current.length-1);x(e),a(e,"center"),h("normal"),C("");return}h("normal"),C("")},[l,d,a]),Q=(0,s.useCallback)(e=>{if(!e){h("normal"),N("");return}L(e),i?.(e),h("normal"),N("")},[i]),ee=(0,s.useCallback)(e=>{if(!t)return!1;let n=e.ctrlKey&&"c"===e.key&&!e.metaKey&&!e.shiftKey;if("insert"===m)return("Escape"===e.key||!!n)&&(U(),!0);if("command"===m)return!e.isComposing&&("Escape"===e.key||n?J():"Enter"===e.key?G(k):"Backspace"===e.key?0===k.length?J():C(e=>e.slice(0,-1)):1!==e.key.length||e.metaKey||e.ctrlKey||C(t=>t+e.key),!0);if("search"===m)return!e.isComposing&&("Escape"===e.key||n?Z():"Enter"===e.key?Q(j):"Backspace"===e.key?0===j.length?Z():N(e=>e.slice(0,-1)):1!==e.key.length||e.metaKey||e.ctrlKey||N(t=>t+e.key),!0);if(f<0&&(x(0),p(0)),e.metaKey)return!1;if(e.ctrlKey)return"d"===e.key?(B(Math.max(1,Math.floor(o()/2))),D(),!0):"u"===e.key?(B(-Math.max(1,Math.floor(o()/2))),D(),!0):"r"===e.key&&(q(),D(),!0);let r=e.key,s=y+r;if("g"===s)return w("g"),A(),!0;if("gg"===s)return K(0),D(),!0;if("d"===s)return w("d"),A(),!0;if("dd"===s)return F(),D(),!0;if("y"===s)return w("y"),A(),!0;if("yy"===s)return H(),D(),!0;if(y&&s!==r&&D(),"j"===r||"ArrowDown"===r)return B(1),!0;if("k"===r||"ArrowUp"===r)return B(-1),!0;if("h"===r||"ArrowLeft"===r)return p(e=>Math.max(0,e-1)),!0;if("l"===r||"ArrowRight"===r){let e=Math.max(0,($.current[f]??"").length-1);return p(t=>Math.min(e,t+1)),!0}if("0"===r)return p(0),!0;if("$"===r)return p(Math.max(0,($.current[f]??"").length-1)),!0;if("^"===r){let e=($.current[f]??"").search(/\S/);return p(e>=0?e:0),!0}return"G"===r?(K($.current.length-1),!0):"x"===r?(W(),!0):"p"===r?(z(),!0):"u"===r?(_(),!0):"i"===r||"a"===r||"I"===r||"A"===r||"o"===r||"O"===r?(V(r),!0):"/"===r?(Y(),!0):"n"===r?(c?.(),!0):"N"===r?(u?.(),!0):":"===r?(X(),!0):"Escape"!==r&&1===r.length},[t,m,y,k,j,f,U,V,X,J,Y,Z,G,Q,B,K,o,F,H,z,W,_,q,D,A,c,u]);return{state:{mode:m,cursorLine:f,cursorCol:g,isDirty:b,keyBuffer:y,commandInput:k,searchInput:j,lastSearch:E},handleKeyDown:ee,enterNormal:U,enterInsert:V,setCursorLine:x,setCursorCol:p,setCommandInput:C,setSearchInput:N,setIsDirty:v,clearUndoHistory:(0,s.useCallback)(()=>{S.current=[],M.current=[]},[])}}({lines:eq,enabled:X&&!W,onContentChange:e=>{J?.(e)},onEnterInsert:(e,t,n)=>{let r=t;if("a"===n)r=t+1;else if("A"===n)r=(eq[e]??"").length;else if("I"===n){let t=(eq[e]??"").search(/\S/);r=t>=0?t:0}else("o"===n||"O"===n)&&(r=0);tu.current={line:e,col:r},Y?.(e)},onSave:Z,getVisibleLineCount:()=>{let e=ek.current;return e?Math.floor(e.clientHeight/20):20},scrollToLine:(e,t)=>{let n=eU.findIndex(t=>"code"===t.type&&t.lineIndex===e);n>=0&&eX.scrollToIndex(n,{align:t||"auto"})},onSearchExecute:e=>{eG(e),eZ(!1)},onSearchNext:e3,onSearchPrev:e4,onSearchClear:()=>{eG("")}});(0,s.useEffect)(()=>{G&&(G.current={cursorLine:td.state.cursorLine,cursorCol:td.state.cursorCol})},[G,td.state.cursorLine,td.state.cursorCol]);let tm=(0,s.useRef)(null);(0,s.useEffect)(()=>{X&&!W&&null!=Q&&t&&tm.current!==t&&(tm.current=t,td.setCursorLine(Q-1),null!=ee&&td.setCursorCol(ee-1),et?.())},[X,W,Q,ee,t]),(0,s.useEffect)(()=>{if(!X||W)return;let e=eC.current;if(!e)return;let t=e=>{let t=e.target;"TEXTAREA"===t.tagName||"INPUT"===t.tagName||t.isContentEditable||td.handleKeyDown(e)&&(e.preventDefault(),e.stopPropagation())};return e.addEventListener("keydown",t,!0),()=>e.removeEventListener("keydown",t,!0)},[X,W,td.handleKeyDown]),(0,s.useEffect)(()=>{if(!X||W)return;let e=eC.current;e&&"normal"===td.state.mode&&requestAnimationFrame(()=>{let t=document.activeElement;t&&("TEXTAREA"===t.tagName||"INPUT"===t.tagName||t.isContentEditable)||e.focus()})},[X,W,td.state.mode,e]);let th=(0,s.useCallback)(e=>{if(!X||W)return;let t=e.target.closest("[data-line]");if(t){let n=parseInt(t.getAttribute("data-line"),10);if(!isNaN(n)){td.setCursorLine(n-1);let r=t.querySelector("[data-code-content]");if(r){let t=document.caretRangeFromPoint(e.clientX,e.clientY);if(t&&r.contains(t.startContainer)){let e,s=document.createTreeWalker(r,NodeFilter.SHOW_TEXT),l=0;for(;e=s.nextNode();){if(e===t.startContainer){l+=t.startOffset;break}l+=e.textContent?.length||0}let o=eq[n-1]??"";td.setCursorCol(Math.max(0,Math.min(l,Math.max(0,o.length-1))))}}}}let n=e.target;if("TEXTAREA"===n.tagName||"INPUT"===n.tagName||n.isContentEditable)return;let r=eC.current;r&&r.focus()},[X,W,td.setCursorLine,td.setCursorCol,eq]),tf=(0,s.useCallback)(e=>{X&&!W&&requestAnimationFrame(()=>{let e=window.getSelection(),t=e?.toString().trim();t&&/^\S+$/.test(t)&&(ts.current=!0,eG(t))})},[X,W,eG,ts]);(0,s.useEffect)(()=>{"command"===td.state.mode?setTimeout(()=>ti.current?.focus(),0):"search"===td.state.mode&&setTimeout(()=>tc.current?.focus(),0)},[td.state.mode]),(0,s.useEffect)(()=>{let e=ek.current;if(!e)return;let t=()=>{(B??K)?.()};return e.addEventListener("mousedown",t),()=>e.removeEventListener("mousedown",t)},[B,K]),(0,s.useEffect)(()=>{eB||eF?(eE.current=!0,K?.()):eN.current||(eE.current=!1)},[eB,eF,K]),(0,s.useLayoutEffect)(()=>{let e=eS.current;if(!e)return;let t=window.getSelection();if(t&&!t.isCollapsed)return;let n=ek.current;if(!n)return;let r=n.querySelector(`[data-line="${e.startLine}"]`),s=n.querySelector(`[data-line="${e.endLine}"]`);if(!r||!s)return;let l=C(r,e.startOffset),o=C(s,e.endOffset);if(l&&o)try{let e=document.createRange();e.setStart(l.node,l.offset),e.setEnd(o.node,o.offset),t?.removeAllRanges(),t?.addRange(e)}catch{}});let tx=(0,s.useCallback)((e,t,n)=>{eE.current||O?.(e,t,n)},[O]),tg=(0,s.useCallback)((e,t)=>{eE.current||A?.(e,t)},[A]),tp=Math.max(4,String(W?ed:eq.length).length),tb=(0,s.useMemo)(()=>{let e=0;for(let t of eq){let n=0;for(let e=0;e<t.length;e++)" "===t[e]?n+=2-n%2:n+=1;n>e&&(e=n)}return e},[eq]);(0,s.useEffect)(()=>{if(W){el.current=e;let t=e.split("\n").length;eh.current=t,em(t),eo.current=!1,ei(!1),ex({show:!1}),eb.current=_}},[W,e,_]),(0,s.useEffect)(()=>{if(!W)return;let t=eg.current;if(!t)return;let n=e.split("\n");t.innerHTML=M(n.map((e,t)=>eM[t]||(0,u.ZD)(e||" "))),requestAnimationFrame(()=>{let e,r;X?(e=Math.max(0,Math.min(tu.current.line,n.length-1)),r=tu.current.col):(e=Math.max(0,Math.min((D?.current??1)-1,n.length-1)),r=0),t.focus(),S(t,{line:e,offset:r});let s=D?.current??1;ep.current&&(ep.current.scrollTop=(s-1)*20)})},[W]),(0,s.useEffect)(()=>{W&&U?.({isDirty:ea,isSaving:ec})},[W,ea,ec,U]);let tv=(0,s.useCallback)(()=>{let e=eg.current;if(!e)return el.current;let t=[];for(let n of e.childNodes){let e=n.textContent||"";t.push(" "===e?"":e)}return t.join("\n")},[]),ty=(0,s.useCallback)(()=>{ev.current&&clearTimeout(ev.current),ev.current=setTimeout(async()=>{let e=eg.current;if(e&&!ew.current){el.current=tv();try{let n=await (0,u.kS)(),r=(0,u.sQ)(t),s=document.documentElement.classList.contains("dark"),l=el.current.split("\n"),o=n.codeToTokens(l.join("\n"),{lang:r,theme:s?"github-dark":"github-light"}).tokens.map(e=>(0,u.b8)(e)),a=L(e);ey.current=!0,e.innerHTML=M(o),ey.current=!1,a&&S(e,a)}catch{}}},300)},[t,tv]);(0,s.useEffect)(()=>{if(W)return()=>{ev.current&&clearTimeout(ev.current)}},[W]);let tw=(0,s.useCallback)(()=>{let e=eg.current;if(!e)return;eo.current||(eo.current=!0,ei(!0));let t=e.children.length;t!==eh.current&&(eh.current=t,em(t))},[]),tk=(0,s.useCallback)(()=>{ey.current||ew.current||(tw(),ty())},[tw,ty]),tC=(0,s.useCallback)(e=>{if(!e.nativeEvent.isComposing&&("Tab"===e.key&&(e.preventDefault(),document.execCommand("insertText",!1," ")),"Enter"===e.key)){e.preventDefault();let t=eg.current;if(!t)return;let n=window.getSelection();if(!n?.rangeCount)return;let r=n.getRangeAt(0);r.deleteContents();let s=r.startContainer;for(;s&&s.parentElement!==t;)s=s.parentElement;if(!s||!(s instanceof HTMLElement))return;let l=L(t),o=Array.from(t.children).indexOf(s),a=s.textContent||"",i=l?.offset??a.length,c=a.substring(0,i),d=a.substring(i);s.innerHTML=(0,u.ZD)(c||" ");let m=document.createElement("div");m.setAttribute("style",E),m.innerHTML=(0,u.ZD)(d||" "),s.after(m),S(t,{line:o+1,offset:0}),tw(),ty()}},[tw,ty]),tj=(0,s.useCallback)(e=>{e.preventDefault();let t=e.clipboardData.getData("text/plain");document.execCommand("insertText",!1,t)},[]),tN=(0,s.useCallback)(async(e=!1)=>{if(g){el.current=tv(),eu(!0);try{let n=await fetch("/api/files/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:g,path:t,content:el.current,expectedMtime:e?void 0:eb.current})}),r=await n.json();if(409===n.status&&r.conflict){try{let e=await fetch(`/api/files/read?cwd=${encodeURIComponent(g)}&path=${encodeURIComponent(t)}`),n=await e.json();ex({show:!0,diskContent:"text"===n.type?n.content:void 0})}catch{ex({show:!0})}return}if(!n.ok)throw Error("Failed to save file");r.mtime&&(eb.current=r.mtime),eo.current=!1,ei(!1),ex({show:!1}),(0,N.oR)(es("toast.savedSuccess"),"success"),V?.()}catch(e){console.error("Error saving file:",e),(0,N.oR)(es("toast.saveFailed"),"error")}finally{eu(!1)}}},[g,t,tv,V]),tE=(0,s.useCallback)(async()=>{ea&&!ec&&await tN(!1)},[ea,ec,tN]),tL=(0,s.useCallback)(async()=>{ex({show:!1}),await tN(!0)},[tN]),tS=(0,s.useCallback)(()=>{if(void 0!==ef.diskContent){el.current=ef.diskContent;let t=ef.diskContent.split("\n").length;eh.current=t,em(t);let n=ef.diskContent!==e;eo.current=n,ei(n);let r=eg.current;r&&(r.innerHTML=M(ef.diskContent.split("\n").map(e=>(0,u.ZD)(e||" "))),ty())}ex({show:!1}),V?.()},[ef.diskContent,e,V,ty]),tM=(0,s.useCallback)(()=>{let e=ep.current;return e?Math.floor(e.scrollTop/20)+1:D?.current??1},[D]),tT=(0,s.useCallback)(async()=>{(!ea||await (0,N.lJ)(es("codeViewer.unsavedConfirm"),{danger:!0,confirmText:es("codeViewer.discardChanges"),cancelText:es("codeViewer.continueEditing")}))&&q?.(tM())},[ea,q,tM]);(0,s.useEffect)(()=>{if(!W)return;let e=e=>{(e.metaKey||e.ctrlKey)&&"s"===e.key&&(e.preventDefault(),tE())};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[W,tE]);let tR=(0,s.useCallback)(()=>{let e=tv();J?.(e);let t=eg.current,n=t?L(t):null,r=tM();if(td.enterNormal(),n){td.setCursorLine(n.line);let t=e.split("\n")[n.line]??"";td.setCursorCol(Math.max(0,Math.min(n.offset,Math.max(0,t.length-1))))}else td.setCursorLine(Math.max(0,r-1));q?.(r)},[tv,J,tM,q,td]);(0,s.useEffect)(()=>{if(!W)return;let e=e=>{let t="Escape"===e.key,n=e.ctrlKey&&"c"===e.key&&!e.metaKey&&!e.shiftKey;(t||X&&n)&&(e.preventDefault(),e.stopPropagation(),X?eo.current?(0,N.lJ)(es("codeViewer.unsavedExitConfirm"),{danger:!0,confirmText:es("codeViewer.discardChanges"),cancelText:es("codeViewer.continueEditing")}).then(e=>{e&&tR()}):tR():tT())};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[W,X,tT,tR]),(0,s.useImperativeHandle)(er,()=>({save:tE,close:tT,get isDirty(){return ea},get isSaving(){return ec}}),[tE,tT,ea,ec]);let t$=!!(F&&F.length>0),tP=(0,s.useMemo)(()=>{if(!F)return new Map;let e=[...new Set(F.map(e=>e.author))],t=new Map;return e.forEach((e,n)=>{t.set(e,x[n%x.length])}),t},[F]),[tI,tD]=(0,s.useState)(null),[tA,tO]=(0,s.useState)(null);(0,s.useEffect)(()=>{tD(null),tO(null)},[F]);let tK=(0,s.useCallback)((e,t)=>{tD(e.author);let n=t.currentTarget.getBoundingClientRect();tO({line:e,x:n.right+8,y:n.top})},[]),tB=(0,s.useCallback)(()=>{tD(null),tO(null)},[]),tF=(0,s.useCallback)(e=>{z&&(z({hash:e.hashFull,shortHash:e.hash,author:e.author,authorEmail:e.authorEmail,date:new Date(1e3*e.time).toISOString(),subject:e.message.split("\n")[0]||"",body:e.message.split("\n").slice(1).join("\n").trim(),time:e.time}),tO(null))},[z]),tH=`${tp+2}ch`;return(0,r.jsxs)("div",{ref:eC,className:`h-full flex flex-col outline-none ${f}`,tabIndex:0,onClick:th,onDoubleClick:tf,children:[W&&ef.show&&(0,r.jsxs)("div",{className:"px-4 py-2 bg-amber-500/15 border-b border-amber-500/30 flex items-center gap-3 flex-shrink-0",children:[(0,r.jsx)("svg",{className:"w-5 h-5 text-amber-500 flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"})}),(0,r.jsx)("span",{className:"text-sm text-foreground flex-1",children:es("codeViewer.fileModifiedExternally")}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("button",{onClick:tS,className:"px-3 py-1 text-sm rounded border border-border hover:bg-accent transition-colors",children:es("codeViewer.useDiskVersion")}),(0,r.jsx)("button",{onClick:tL,className:"px-3 py-1 text-sm rounded bg-amber-500 text-white hover:bg-amber-600 transition-colors",children:es("codeViewer.forceOverwrite")})]})]}),!W&&h&&eP&&(0,r.jsxs)("div",{className:"flex-shrink-0 flex items-center gap-2 px-3 py-2 bg-secondary border-b border-border",children:[(0,r.jsx)("input",{ref:ej,type:"text",value:eI,onChange:e=>eG(e.target.value),onKeyDown:e8,placeholder:es("codeViewer.searchPlaceholder"),className:"flex-1 max-w-xs px-2 py-1 text-sm border border-border rounded bg-card text-foreground focus:outline-none focus:ring-2 focus:ring-ring"}),(0,r.jsx)("button",{onClick:()=>eQ(!eD),className:`px-2 py-1 text-xs font-mono rounded border transition-colors ${eD?"bg-brand text-white border-brand":"border-border text-muted-foreground hover:bg-accent"}`,title:es("codeViewer.caseSensitive"),children:"Aa"}),(0,r.jsx)("button",{onClick:()=>e0(!eA),className:`px-2 py-1 text-xs font-mono rounded border transition-colors ${eA?"bg-brand text-white border-brand":"border-border text-muted-foreground hover:bg-accent"}`,title:es("codeViewer.wholeWordMatch"),children:"[ab]"}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:eV.length>0?`${eO+1}/${eV.length}`:es("common.noMatch")}),(0,r.jsx)("button",{onClick:e4,disabled:0===eV.length,className:"p-1 rounded hover:bg-accent disabled:opacity-50",title:es("common.previous"),children:(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 15l7-7 7 7"})})}),(0,r.jsx)("button",{onClick:e3,disabled:0===eV.length,className:"p-1 rounded hover:bg-accent disabled:opacity-50",title:es("common.next"),children:(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M19 9l-7 7-7-7"})})}),(0,r.jsx)("button",{onClick:()=>{eZ(!1),eG("")},className:"p-1 rounded hover:bg-accent",title:es("common.close"),children:(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),W?(0,r.jsx)("div",{ref:ep,className:"flex-1 overflow-auto bg-secondary",children:(0,r.jsxs)("div",{className:"flex",style:{minHeight:"100%"},children:[(0,r.jsx)("div",{className:"flex-shrink-0 font-mono text-sm select-none sticky left-0 z-[2] bg-secondary",style:{width:tH},children:Array.from({length:ed},(e,t)=>(0,r.jsx)("div",{className:"text-right text-muted-foreground/50 pr-3",style:{height:20,lineHeight:"20px"},children:t+1},t))}),(0,r.jsx)("div",{ref:eg,contentEditable:!0,suppressContentEditableWarning:!0,onInput:tk,onKeyDown:tC,onPaste:tj,onCompositionStart:()=>{ew.current=!0},onCompositionEnd:()=>{ew.current=!1,tk()},spellCheck:!1,autoCorrect:"off",autoCapitalize:"off",className:"flex-1 font-mono text-sm outline-none",style:{caretColor:"var(--foreground)",tabSize:2}})]})}):(0,r.jsx)("div",{ref:ek,className:`flex-1 overflow-auto font-mono text-sm bg-secondary${eR?" cmd-held-container":""}`,children:(0,r.jsx)("div",{style:{height:`${eX.getTotalSize()}px`,minWidth:"100%",width:t$?`calc(${tp+tb+10}ch + 13rem)`:`${tp+tb+10}ch`,position:"relative"},children:eX.getVirtualItems().map(e=>{let t=eU[e.index];if("code"!==t.type)return null;let s=t.lineIndex,l=s+1,o=eM[s]||(0,u.ZD)(eq[s]||""),a=tr(s,o,I),i=eY.has(l),c=eJ.get(l),d=c?.[0],m=!!(eB&&l>=eB.range.start&&l<=eB.range.end),h=to>=0?tl.current:null,f=!W&&H&&h===l?H[s]??null:null,x=t$?F[s]:void 0,g=t$&&s>0?F[s-1]:void 0,b=!!x&&(!g||g.hash!==x.hash),v=x?tP.get(x.author):void 0;return(0,r.jsx)(p,{virtualKey:e.key,lineNum:l,highlightedHtml:a,hasComments:i,firstComment:d,lineCommentsCount:c?.length,isInRange:m,showLineNumbers:n,lineNumChars:tp,commentsEnabled:ez,virtualItemSize:e.size,virtualItemStart:e.start,onCommentBubbleClick:e6,onCmdClick:tg,onTokenHover:tx,onTokenHoverLeave:K,flashLine:e$,blameLine:x,showBlameInfo:b,blameAuthorColor:v,isBlameHovered:!!(x&&tI===x.author),onBlameClick:tF,onBlameMouseEnter:tK,onBlameMouseLeave:tB,inlineBlameData:f,onInlineBlameClick:tF,isCursorLine:X&&!W&&td.state.cursorLine===s,cursorCol:X&&!W&&td.state.cursorLine===s?td.state.cursorCol:void 0},e.key)})})}),X&&(0,r.jsxs)("div",{className:"vi-status-bar flex-shrink-0 h-6 bg-card border-t border-border flex items-center px-3 text-xs font-mono select-none",children:["normal"===td.state.mode&&(0,r.jsx)("span",{className:"text-green-11 font-medium",children:"NORMAL"}),"insert"===td.state.mode&&(0,r.jsx)("span",{className:"text-blue-11 font-medium",children:"INSERT"}),"command"===td.state.mode&&(0,r.jsxs)("div",{className:"flex items-center flex-1",children:[(0,r.jsx)("span",{className:"text-foreground",children:":"}),(0,r.jsx)("input",{ref:ti,value:td.state.commandInput,onChange:e=>td.setCommandInput(e.target.value),onKeyDown:e=>{if(e.nativeEvent.isComposing)return;let t=e.ctrlKey&&"c"===e.key&&!e.metaKey&&!e.shiftKey;("Enter"===e.key||"Escape"===e.key||t)&&(e.preventDefault(),e.stopPropagation(),td.handleKeyDown(e.nativeEvent))},className:"flex-1 bg-transparent outline-none text-foreground ml-0.5",spellCheck:!1,autoComplete:"off"})]}),"search"===td.state.mode&&(0,r.jsxs)("div",{className:"flex items-center flex-1",children:[(0,r.jsx)("span",{className:"text-foreground",children:"/"}),(0,r.jsx)("input",{ref:tc,value:td.state.searchInput,onChange:e=>td.setSearchInput(e.target.value),onKeyDown:e=>{if(e.nativeEvent.isComposing)return;let t=e.ctrlKey&&"c"===e.key&&!e.metaKey&&!e.shiftKey;("Enter"===e.key||"Escape"===e.key||t)&&(e.preventDefault(),e.stopPropagation(),td.handleKeyDown(e.nativeEvent))},className:"flex-1 bg-transparent outline-none text-foreground ml-0.5",spellCheck:!1,autoComplete:"off"})]}),td.state.keyBuffer&&"normal"===td.state.mode&&(0,r.jsx)("span",{className:"ml-2 text-muted-foreground",children:td.state.keyBuffer}),td.state.isDirty&&("normal"===td.state.mode||"command"===td.state.mode)&&(0,r.jsx)("span",{className:"ml-2 text-amber-11",children:"[+]"}),(0,r.jsxs)("span",{className:"ml-auto text-muted-foreground",children:[td.state.cursorLine+1,":",td.state.cursorCol+1]})]}),eT&&ta&&(0,o.createPortal)((0,r.jsxs)(r.Fragment,{children:[!W&&(0,r.jsx)(d.f,{floatingToolbarRef:eN,bumpRef:eL,container:ta,onAddComment:e9,onSendToAI:e7,onSearch:en?te:void 0,isChatLoading:eH?.isLoading}),!W&&eB&&(0,r.jsx)(i.t,{x:eB.x,y:eB.y,range:eB.range,codeContent:eB.codeContent,container:ta,onSubmit:tt,onClose:()=>e2(null)}),!W&&eF&&(0,r.jsx)(i.G,{x:eF.x,y:eF.y,range:eF.range,filePath:t,codeContent:eF.codeContent,container:ta,onSubmit:tn,onClose:()=>e5(null),isChatLoading:eH?.isLoading}),!W&&eK&&(0,r.jsx)(m.t,{x:eK.x,y:eK.y,comment:eK.comment,container:ta,onClose:()=>e1(null),onUpdateComment:eW,onDeleteComment:e_}),tA&&(0,r.jsxs)("div",{className:"fixed z-50 bg-card border border-border rounded-lg shadow-lg p-3 max-w-lg",style:{left:Math.min(tA.x,window.innerWidth-450),top:Math.max(8,Math.min(tA.y,window.innerHeight-200))},children:[(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("div",{className:"px-2 py-0.5 rounded text-xs font-mono font-medium text-white flex-shrink-0",style:{backgroundColor:tP.get(tA.line.author)?.border||"#666"},children:tA.line.hash}),(0,r.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,r.jsx)("div",{className:"text-sm font-medium text-foreground",children:tA.line.author}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground",children:tA.line.authorEmail})]})]}),(0,r.jsx)("div",{className:"mt-2 text-sm text-foreground whitespace-pre-wrap max-h-48 overflow-y-auto",children:tA.line.message}),(0,r.jsxs)("div",{className:"mt-2 text-xs text-muted-foreground border-t border-border pt-2",children:[(0,j.fw)(tA.line.time)," \xb7 ",new Date(1e3*tA.line.time).toLocaleString(),(0,r.jsx)("span",{className:"ml-2 text-brand",children:es("codeViewer.clickToViewDetails")})]})]})]}),ta)]})});function R({content:e,filePath:t,className:n=""}){let l=(0,s.useMemo)(()=>e.split("\n"),[e]),o=(0,c.C)(l,t),a=Math.max(4,String(l.length).length);return(0,r.jsx)("pre",{className:`overflow-auto text-sm font-mono bg-secondary p-2 ${n}`,children:l.map((e,t)=>(0,r.jsxs)("div",{className:"flex",children:[(0,r.jsx)("span",{className:"text-slate-9 select-none pr-4 text-right",style:{minWidth:`${a+2}ch`},children:t+1}),(0,r.jsx)("span",{className:"flex-1",dangerouslySetInnerHTML:{__html:o[t]||(0,u.ZD)(e||" ")}})]},t))})}},91694:(e,t,n)=>{n.d(t,{G:()=>a,t:()=>o});var r=n(95155),s=n(12115),l=n(79114);function o({x:e,y:t,range:n,codeContent:o,container:a,onSubmit:i,onClose:c}){let{t:u}=(0,l.Bd)(),[d,m]=(0,s.useState)(""),[h,f]=(0,s.useState)(!1),x=(0,s.useRef)(null),g=(0,s.useRef)(null),[p,b]=(0,s.useState)({x:0,y:0}),v=o?.split("\n").slice(0,5).join("\n"),y=!!o&&o.split("\n").length>5;return(0,s.useEffect)(()=>{if(x.current&&a){let n=a.getBoundingClientRect(),r=x.current.getBoundingClientRect(),s=e-n.left,l=t-n.top;s+r.width>n.width-16&&(s=n.width-r.width-16),s<16&&(s=16),l+r.height>n.height-16&&(l=l-r.height-8),l<16&&(l=16),queueMicrotask(()=>b({x:s,y:l}))}},[e,t,a]),(0,s.useEffect)(()=>{g.current?.focus()},[]),(0,s.useEffect)(()=>{let e=e=>{h||!x.current||x.current.contains(e.target)||c()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[c,h]),(0,r.jsxs)("div",{ref:x,className:"absolute z-[200] w-[640px] bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:p.x,top:p.y},children:[(0,r.jsx)("div",{className:"px-3 py-2 bg-amber-9/10 border-b border-border",children:(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-xs font-medium text-amber-11",children:u("comments.addComment")}),(n.start>0||n.end>0)&&(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:u("comments.lineRange",{start:n.start,end:n.end})})]})}),o&&(0,r.jsx)("div",{className:"px-3 py-2 bg-secondary/50 border-b border-border max-h-24 overflow-hidden",children:(0,r.jsxs)("pre",{className:"text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all",children:[v,y&&(0,r.jsx)("span",{className:"text-muted-foreground/50",children:"..."})]})}),(0,r.jsxs)("div",{className:"p-2",children:[(0,r.jsx)("textarea",{ref:g,value:d,onChange:e=>m(e.target.value),placeholder:u("comments.inputPlaceholder"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",rows:2,disabled:h,onKeyDown:e=>{"Enter"===e.key&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),!h&&d.trim()&&(f(!0),i(d.trim()))),"Escape"!==e.key||h||c()}}),(0,r.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:u(h?"comments.submitting":"comments.enterSubmit")})]})]})}function a({x:e,y:t,range:n,filePath:o,codeContent:a,container:i,onSubmit:c,onClose:u,isChatLoading:d}){let{t:m}=(0,l.Bd)(),[h,f]=(0,s.useState)(""),x=(0,s.useRef)(null),g=(0,s.useRef)(null),[p,b]=(0,s.useState)({x:0,y:0});(0,s.useEffect)(()=>{if(x.current&&i){let n=i.getBoundingClientRect(),r=x.current.getBoundingClientRect(),s=e-n.left,l=t-n.top;s+r.width>n.width-16&&(s=n.width-r.width-16),s<16&&(s=16),l+r.height>n.height-16&&(l=l-r.height-8),l<16&&(l=16),queueMicrotask(()=>b({x:s,y:l}))}},[e,t,i]),(0,s.useEffect)(()=>{g.current?.focus()},[]),(0,s.useEffect)(()=>{let e=e=>{x.current&&!x.current.contains(e.target)&&u()};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[u]);let v=a?.split("\n").slice(0,5).join("\n"),y=!!a&&a.split("\n").length>5;return(0,r.jsxs)("div",{ref:x,className:"absolute z-[200] w-[640px] bg-card border border-border rounded-lg shadow-lg overflow-hidden",style:{left:p.x,top:p.y},children:[(0,r.jsxs)("div",{className:"px-3 py-2 bg-brand/10 border-b border-border",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-xs font-medium text-brand",children:m("comments.askAI")}),(n.start>0||n.end>0)&&(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:m("comments.lineRange",{start:n.start,end:n.end})})]}),o&&(0,r.jsx)("div",{className:"mt-1 text-xs text-muted-foreground truncate",children:o})]}),a&&(0,r.jsx)("div",{className:"px-3 py-2 bg-secondary/50 border-b border-border max-h-24 overflow-hidden",children:(0,r.jsxs)("pre",{className:"text-xs font-mono text-muted-foreground whitespace-pre-wrap break-all",children:[v,y&&(0,r.jsx)("span",{className:"text-muted-foreground/50",children:"..."})]})}),(0,r.jsxs)("div",{className:"p-2",children:[(0,r.jsx)("textarea",{ref:g,value:h,onChange:e=>f(e.target.value),placeholder:m("comments.inputQuestion"),className:"w-full px-2 py-1.5 text-sm border border-border rounded bg-card resize-none focus:outline-none focus:ring-1 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed",rows:2,disabled:d,onKeyDown:e=>{"Enter"===e.key&&!e.shiftKey&&!e.nativeEvent.isComposing&&(e.preventDefault(),!d&&h.trim()&&(c(h.trim()),u())),"Escape"===e.key&&u()}}),(0,r.jsx)("div",{className:"mt-1 text-xs text-muted-foreground",children:m(d?"comments.aiGenerating":"comments.enterSend")})]})]})}},97440:(e,t,n)=>{n.d(t,{r:()=>o});var r=n(95155),s=n(12115),l=n(79114);function o({isOpen:e,onClose:t,onSelectSession:n,onAddProject:o}){let{t:a}=(0,l.Bd)(),[i,c]=(0,s.useState)(!1),[u,d]=(0,s.useState)([]),[m,h]=(0,s.useState)({}),[f,x]=(0,s.useState)(!1),[g,p]=(0,s.useState)(null),[b,v]=(0,s.useState)(""),y=(0,s.useRef)(null),w=(0,s.useCallback)(async()=>{x(!0),p(null),h({});try{let e=await fetch("/api/sessions/projects");if(!e.ok)throw Error("Failed to load projects");let t=await e.json();d(t)}catch(e){p(e instanceof Error?e.message:"Unknown error")}finally{x(!1)}},[]),k=(0,s.useCallback)(async e=>{h(t=>({...t,[e]:{...t[e],isExpanded:!0,isLoading:!0,sessions:[],error:null}}));try{let t=await fetch(`/api/sessions/projects/${encodeURIComponent(e)}`);if(!t.ok)throw Error("Failed to load sessions");let n=await t.json();h(t=>({...t,[e]:{...t[e],isLoading:!1,sessions:n}}))}catch(t){h(n=>({...n,[e]:{...n[e],isLoading:!1,error:t instanceof Error?t.message:"Unknown error"}}))}},[]),C=(0,s.useCallback)(e=>{let t=m[e];t?.isExpanded?h(t=>({...t,[e]:{...t[e],isExpanded:!1}})):t?.sessions?.length?h(t=>({...t,[e]:{...t[e],isExpanded:!0}})):k(e)},[m,k]);(0,s.useEffect)(()=>{e&&(w(),setTimeout(()=>{y.current?.focus()},100))},[e,w]);let j=(0,s.useCallback)(async()=>{if(!i){c(!0);try{let e=await fetch("/api/pick-folder"),n=await e.json();n.folder&&o&&(o(n.folder),t())}catch{}finally{c(!1)}}},[i,o,t]);return((0,s.useEffect)(()=>{let n=n=>{"Escape"===n.key&&e&&t()};return window.addEventListener("keydown",n),()=>window.removeEventListener("keydown",n)},[e,t]),e)?(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-sm",onClick:t}),(0,r.jsxs)("div",{className:"relative w-full max-w-6xl h-[90vh] mx-4 bg-card rounded-lg shadow-xl flex flex-col overflow-hidden",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,r.jsx)("h2",{className:"text-sm font-medium text-foreground",children:a("sessions.projectList")}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("input",{ref:y,type:"text",placeholder:a("workspace.searchProjectPath"),value:b,onChange:e=>v(e.target.value),className:"px-2 py-1 text-xs border border-border rounded bg-card text-foreground placeholder-slate-9 focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent"}),o&&(0,r.jsxs)("button",{onClick:j,disabled:i,className:"flex items-center gap-1.5 px-2.5 py-1 text-xs rounded-md border border-border text-muted-foreground hover:text-foreground hover:bg-accent transition-colors disabled:opacity-50",title:a("sessions.openFolder"),children:[(0,r.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 10v6m3-3H9m-4 7h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"})}),i?a("sessions.selectingFolder"):a("sessions.openFolder")]}),(0,r.jsx)("button",{onClick:t,className:"p-1 text-slate-9 hover:text-foreground hover:bg-accent rounded transition-colors",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]})]}),(0,r.jsxs)("div",{className:"flex-1 overflow-y-auto p-4",children:[f&&(0,r.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,r.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,r.jsxs)("svg",{className:"animate-spin h-4 w-4",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,r.jsx)("span",{children:a("workspace.loadingProjects")})]})}),g&&(0,r.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,r.jsx)("div",{className:"text-xs text-red-11",children:g})}),!f&&!g&&0===u.length&&(0,r.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,r.jsx)("div",{className:"text-xs text-muted-foreground",children:a("workspace.projectNotFound")})}),!f&&!g&&u.filter(e=>e.fullPath.toLowerCase().includes(b.toLowerCase())).map(e=>{let t=m[e.encodedPath]||{isExpanded:!1,isLoading:!1,sessions:[],error:null};return(0,r.jsxs)("div",{className:"mb-3",children:[(0,r.jsxs)("button",{onClick:()=>C(e.encodedPath),className:"w-full flex items-center gap-2 p-2 rounded hover:bg-accent transition-colors text-left",children:[(0,r.jsx)("svg",{className:`w-3 h-3 text-muted-foreground transition-transform ${t.isExpanded?"rotate-90":""}`,fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 5l7 7-7 7"})}),(0,r.jsx)("svg",{className:"w-4 h-4 text-muted-foreground",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})}),(0,r.jsx)("span",{className:"flex-1 text-xs font-medium text-foreground truncate",title:e.fullPath,children:e.fullPath}),(0,r.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",e.sessionCount,")"]})]}),t.isExpanded&&(0,r.jsxs)("div",{className:"ml-6 mt-2",children:[t.isLoading&&(0,r.jsxs)("div",{className:"flex items-center gap-2 p-3 text-xs text-muted-foreground",children:[(0,r.jsxs)("svg",{className:"animate-spin h-3 w-3",fill:"none",viewBox:"0 0 24 24",children:[(0,r.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,r.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})]}),(0,r.jsx)("span",{children:a("sessions.loadingSessions")})]}),t.error&&(0,r.jsx)("div",{className:"p-3 text-xs text-red-11",children:t.error}),!t.isLoading&&!t.error&&(0,r.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:t.sessions.map(t=>(0,r.jsxs)("div",{onClick:()=>{var r;let s;return r=e.fullPath,s=(t.path.split("/").pop()||"").replace(".jsonl",""),void(n?n(r,s):window.parent.postMessage({type:"OPEN_PROJECT",cwd:r,sessionId:s},"*"))},className:"p-3 bg-secondary rounded border border-border hover:border-brand hover:shadow-md cursor-pointer transition-all",children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[t.engine&&"claude"!==t.engine&&(0,r.jsx)("span",{className:`shrink-0 px-1 py-0.5 text-[10px] leading-none font-medium rounded ${"claude2"===t.engine?"bg-orange-500/15 text-orange-11":"ollama"===t.engine?"bg-blue-500/15 text-blue-11":"codex"===t.engine?"bg-green-500/15 text-green-11":"kimi"===t.engine?"bg-purple-500/15 text-purple-11":"bg-muted text-muted-foreground"}`,children:t.engine}),(0,r.jsx)("h4",{className:"text-xs font-medium text-foreground truncate",title:t.title,children:t.title})]}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground mb-2",children:new Date(t.modifiedAt).toLocaleString("zh-CN",{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}),(0,r.jsxs)("div",{className:"space-y-0.5 text-xs",children:[t.firstMessages.map((e,t)=>(0,r.jsxs)("div",{className:"text-foreground truncate",title:e,children:[(0,r.jsx)("span",{className:"text-slate-9 mr-1",children:"•"}),e]},`first-${t}`)),t.lastMessages.length>0&&(0,r.jsx)("div",{className:"text-slate-9 text-center py-0.5",children:"\xb7\xb7\xb7"}),t.lastMessages.map((e,t)=>(0,r.jsxs)("div",{className:"text-foreground truncate",title:e,children:[(0,r.jsx)("span",{className:"text-slate-9 mr-1",children:"•"}),e]},`last-${t}`))]})]},t.path))})]})]},e.encodedPath)})]})]})]}):null}}}]);
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6962],{6962:(t,e,i)=>{i.d(e,{diagram:()=>$});var s=i(56087),n=i(37916),a=i(78005),r=i(32165),h=i(94529),l=function(){var t=(0,r.K2)(function(t,e,i,s){for(i=i||{},s=t.length;s--;i[t[s]]=e);return i},"o"),e=[1,4],i=[1,14],s=[1,12],n=[1,13],a=[6,7,8],h=[1,20],l=[1,18],o=[1,19],c=[6,7,11],u=[1,6,13,14],d=[1,23],y=[1,24],p=[1,6,7,11,13,14],g={trace:(0,r.K2)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,ishikawa:4,spaceLines:5,SPACELINE:6,NL:7,ISHIKAWA:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,TEXT:14,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"ISHIKAWA",11:"EOF",13:"SPACELIST",14:"TEXT"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,1],[12,1],[12,1]],performAction:(0,r.K2)(function(t,e,i,s,n,a,r){var h=a.length-1;switch(n){case 6:case 7:return s;case 15:s.addNode(a[h-1].length,a[h].trim());break;case 16:s.addNode(0,a[h].trim())}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:i,7:[1,10],9:9,12:11,13:s,14:n},t(a,[2,3]),{1:[2,2]},t(a,[2,4]),t(a,[2,5]),{1:[2,6],6:i,12:15,13:s,14:n},{6:i,9:16,12:11,13:s,14:n},{6:h,7:l,10:17,11:o},t(c,[2,18],{14:[1,21]}),t(c,[2,16]),t(c,[2,17]),{6:h,7:l,10:22,11:o},{1:[2,7],6:i,12:15,13:s,14:n},t(u,[2,14],{7:d,11:y}),t(p,[2,8]),t(p,[2,9]),t(p,[2,10]),t(c,[2,15]),t(u,[2,13],{7:d,11:y}),t(p,[2,11]),t(p,[2,12])],defaultActions:{2:[2,1],6:[2,2]},parseError:(0,r.K2)(function(t,e){if(e.recoverable)this.trace(t);else{var i=Error(t);throw i.hash=e,i}},"parseError"),parse:(0,r.K2)(function(t){var e=this,i=[0],s=[],n=[null],a=[],h=this.table,l="",o=0,c=0,u=0,d=a.slice.call(arguments,1),y=Object.create(this.lexer),p={};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p[g]=this.yy[g]);y.setInput(t,p),p.lexer=y,p.parser=this,void 0===y.yylloc&&(y.yylloc={});var f=y.yylloc;a.push(f);var k=y.options&&y.options.ranges;function m(){var t;return"number"!=typeof(t=s.pop()||y.lex()||1)&&(t instanceof Array&&(t=(s=t).pop()),t=e.symbols_[t]||t),t}"function"==typeof p.parseError?this.parseError=p.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,r.K2)(function(t){i.length=i.length-2*t,n.length=n.length-t,a.length=a.length-t},"popStack"),(0,r.K2)(m,"lex");for(var w,x,_,b,v,S,K,$,I,E={};;){if(_=i[i.length-1],this.defaultActions[_]?b=this.defaultActions[_]:(null==w&&(w=m()),b=h[_]&&h[_][w]),void 0===b||!b.length||!b[0]){var A="";for(S in I=[],h[_])this.terminals_[S]&&S>2&&I.push("'"+this.terminals_[S]+"'");A=y.showPosition?"Parse error on line "+(o+1)+":\n"+y.showPosition()+"\nExpecting "+I.join(", ")+", got '"+(this.terminals_[w]||w)+"'":"Parse error on line "+(o+1)+": Unexpected "+(1==w?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(A,{text:y.match,token:this.terminals_[w]||w,line:y.yylineno,loc:f,expected:I})}if(b[0]instanceof Array&&b.length>1)throw Error("Parse Error: multiple actions possible at state: "+_+", token: "+w);switch(b[0]){case 1:i.push(w),n.push(y.yytext),a.push(y.yylloc),i.push(b[1]),w=null,x?(w=x,x=null):(c=y.yyleng,l=y.yytext,o=y.yylineno,f=y.yylloc,u>0&&u--);break;case 2:if(K=this.productions_[b[1]][1],E.$=n[n.length-K],E._$={first_line:a[a.length-(K||1)].first_line,last_line:a[a.length-1].last_line,first_column:a[a.length-(K||1)].first_column,last_column:a[a.length-1].last_column},k&&(E._$.range=[a[a.length-(K||1)].range[0],a[a.length-1].range[1]]),void 0!==(v=this.performAction.apply(E,[l,c,o,p,b[1],n,a].concat(d))))return v;K&&(i=i.slice(0,-1*K*2),n=n.slice(0,-1*K),a=a.slice(0,-1*K)),i.push(this.productions_[b[1]][0]),n.push(E.$),a.push(E._$),$=h[i[i.length-2]][i[i.length-1]],i.push($);break;case 3:return!0}}return!0},"parse")};function f(){this.yy={}}return g.lexer={EOF:1,parseError:(0,r.K2)(function(t,e){if(this.yy.parser)this.yy.parser.parseError(t,e);else throw Error(t)},"parseError"),setInput:(0,r.K2)(function(t,e){return this.yy=e||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,r.K2)(function(){var t=this._input[0];return this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t,t.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:(0,r.K2)(function(t){var e=t.length,i=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-e),this.offset-=e;var s=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),i.length-1&&(this.yylineno-=i.length-1);var n=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:i?(i.length===s.length?this.yylloc.first_column:0)+s[s.length-i.length].length-i[0].length:this.yylloc.first_column-e},this.options.ranges&&(this.yylloc.range=[n[0],n[0]+this.yyleng-e]),this.yyleng=this.yytext.length,this},"unput"),more:(0,r.K2)(function(){return this._more=!0,this},"more"),reject:(0,r.K2)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,r.K2)(function(t){this.unput(this.match.slice(t))},"less"),pastInput:(0,r.K2)(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,r.K2)(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,r.K2)(function(){var t=this.pastInput(),e=Array(t.length+1).join("-");return t+this.upcomingInput()+"\n"+e+"^"},"showPosition"),test_match:(0,r.K2)(function(t,e){var i,s,n;if(this.options.backtrack_lexer&&(n={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(n.yylloc.range=this.yylloc.range.slice(0))),(s=t[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=s.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:s?s[s.length-1].length-s[s.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],i=this.performAction.call(this,this.yy,this,e,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),i)return i;if(this._backtrack)for(var a in n)this[a]=n[a];return!1},"test_match"),next:(0,r.K2)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var t,e,i,s,n=this._currentRules(),a=0;a<n.length;a++)if((i=this._input.match(this.rules[n[a]]))&&(!e||i[0].length>e[0].length)){if(e=i,s=a,this.options.backtrack_lexer){if(!1!==(t=this.test_match(i,n[a])))return t;if(!this._backtrack)return!1;e=!1;continue}if(!this.options.flex)break}return e?!1!==(t=this.test_match(e,n[s]))&&t:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,r.K2)(function(){var t=this.next();return t||this.lex()},"lex"),begin:(0,r.K2)(function(t){this.conditionStack.push(t)},"begin"),popState:(0,r.K2)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,r.K2)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,r.K2)(function(t){return(t=this.conditionStack.length-1-Math.abs(t||0))>=0?this.conditionStack[t]:"INITIAL"},"topState"),pushState:(0,r.K2)(function(t){this.begin(t)},"pushState"),stateStackSize:(0,r.K2)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,r.K2)(function(t,e,i,s){switch(i){case 0:case 3:return 6;case 1:case 2:return 8;case 4:return 7;case 5:return 13;case 6:return 14;case 7:return 11}},"anonymous"),rules:[/^(?:\s*%%.*)/i,/^(?:ishikawa-beta\b)/i,/^(?:ishikawa\b)/i,/^(?:[\s]+[\n])/i,/^(?:[\n]+)/i,/^(?:[\s]+)/i,/^(?:[^\n]+)/i,/^(?:$)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7],inclusive:!0}}},(0,r.K2)(f,"Parser"),f.prototype=g,g.Parser=f,new f}();l.parser=l;var o=class{constructor(){this.stack=[],this.clear=this.clear.bind(this),this.addNode=this.addNode.bind(this),this.getRoot=this.getRoot.bind(this)}static{(0,r.K2)(this,"IshikawaDB")}clear(){this.root=void 0,this.stack=[],this.baseLevel=void 0,(0,a.IU)()}getRoot(){return this.root}addNode(t,e){let i=a.Y2.sanitizeText(e,(0,a.D7)());if(!this.root){this.baseLevel=t,this.root={text:i,children:[]},this.stack=[{level:0,node:this.root}],(0,a.ke)(i);return}let s=t-(this.baseLevel??0);for(s<=0&&(s=1);this.stack.length>1&&this.stack[this.stack.length-1].level>=s;)this.stack.pop();let n=this.stack[this.stack.length-1].node,r={text:i,children:[]};n.children.push(r),this.stack.push({level:s,node:r})}getAccTitle(){return(0,a.iN)()}setAccTitle(t){(0,a.SV)(t)}getAccDescription(){return(0,a.m7)()}setAccDescription(t){(0,a.EI)(t)}getDiagramTitle(){return(0,a.ab)()}setDiagramTitle(t){(0,a.ke)(t)}},c=82*Math.PI/180,u=Math.cos(c),d=Math.sin(c),y=(0,r.K2)((t,e,i)=>{let s=t.node().getBBox(),n=s.width+2*e,r=s.height+2*e;(0,a.a$)(t,r,n,i),t.attr("viewBox",`${s.x-e} ${s.y-e} ${n} ${r}`)},"applyPaddedViewBox"),p=(0,r.K2)((t,e,i,r)=>{let l=r.db.getRoot();if(!l)return;let o=(0,a.D7)(),{look:c,handDrawnSeed:u,themeVariables:d}=o,p=(0,n.I5)(o.fontSize)[0]??14,k="handDrawn"===c,m=l.children??[],w=o.ishikawa?.diagramPadding??20,_=o.ishikawa?.useMaxWidth??!1,b=(0,s.D)(e),v=b.append("g").attr("class","ishikawa"),S=k?h.A.svg(b.node()):void 0,$=S?{roughSvg:S,seed:u??0,lineColor:d?.lineColor??"#333",fillColor:d?.mainBkg??"#fff"}:void 0,I=`ishikawa-arrow-${e}`;k||v.append("defs").append("marker").attr("id",I).attr("viewBox","0 0 10 10").attr("refX",0).attr("refY",5).attr("markerWidth",6).attr("markerHeight",6).attr("orient","auto").append("path").attr("d","M 10 0 L 0 5 L 10 10 Z").attr("class","ishikawa-arrow");let E=0,A=250,C=k?void 0:K(v,E,A,E,A,"ishikawa-spine");if(f(v,E,A,l.text,p,$),!m.length){k&&K(v,E,A,E,A,"ishikawa-spine",$),y(b,w,_);return}E-=20;let L=m.filter((t,e)=>e%2==0),M=m.filter((t,e)=>e%2==1),P=g(L),T=g(M),B=P.total+T.total,N=250,D=250;B>0&&(N=Math.max(75,500*(P.total/B)),D=Math.max(75,500*(T.total/B)));let O=2*p;N=Math.max(N,P.max*O),D=Math.max(D,T.max*O),A=Math.max(N,250),C&&C.attr("y1",A).attr("y2",A),v.select(".ishikawa-head-group").attr("transform",`translate(0,${A})`);let W=Math.ceil(m.length/2);for(let t=0;t<W;t++){let e=v.append("g").attr("class","ishikawa-pair");for(let[i,s,n]of[[m[2*t],-1,N],[m[2*t+1],1,D]])i&&x(e,i,E,A,s,n,p,$);E=e.selectAll("text").nodes().reduce((t,e)=>Math.min(t,e.getBBox().x),1/0)}if(k)K(v,E,A,0,A,"ishikawa-spine",$);else{C.attr("x1",E);let t=`url(#${I})`;v.selectAll("line.ishikawa-branch, line.ishikawa-sub-branch").attr("marker-start",t)}y(b,w,_)},"draw"),g=(0,r.K2)(t=>{let e=(0,r.K2)(t=>t.children.reduce((t,i)=>t+1+e(i),0),"countDescendants");return t.reduce((t,i)=>{let s=e(i);return t.total+=s,t.max=Math.max(t.max,s),t},{total:0,max:0})},"sideStats"),f=(0,r.K2)((t,e,i,s,n,a)=>{let r=Math.max(6,Math.floor(110/(.6*n))),h=t.append("g").attr("class","ishikawa-head-group").attr("transform",`translate(${e},${i})`),l=v(h,b(s,r),0,0,"ishikawa-head-label","start",n),o=l.node().getBBox(),c=Math.max(60,o.width+6),u=Math.max(40,2*o.height+40),d=`M 0 ${-u/2} L 0 ${u/2} Q ${2.4*c} 0 0 ${-u/2} Z`;if(a){let t=a.roughSvg.path(d,{roughness:1.5,seed:a.seed,fill:a.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:a.lineColor,strokeWidth:2});h.insert(()=>t,":first-child").attr("class","ishikawa-head")}else h.insert("path",":first-child").attr("class","ishikawa-head").attr("d",d);l.attr("transform",`translate(${(c-o.width)/2-o.x+3},${-o.y-o.height/2})`)},"drawHead"),k=(0,r.K2)((t,e)=>{let i=[],s=[],n=(0,r.K2)((t,a,r)=>{for(let h of -1===e?[...t].reverse():t){let t=i.length,e=h.children??[];i.push({depth:r,text:b(h.text,15),parentIndex:a,childCount:e.length}),r%2==0?(s.push(t),e.length&&n(e,t,r+1)):(e.length&&n(e,t,r+1),s.push(t))}},"walk");return n(t,-1,2),{entries:i,yOrder:s}},"flattenTree"),m=(0,r.K2)((t,e,i,s,n,a,r)=>{let h=t.append("g").attr("class","ishikawa-label-group"),l=v(h,e,i,s+11*n,"ishikawa-label cause","middle",a).node().getBBox();if(r){let t=r.roughSvg.rectangle(l.x-20,l.y-2,l.width+40,l.height+4,{roughness:1.5,seed:r.seed,fill:r.fillColor,fillStyle:"hachure",fillWeight:2.5,hachureGap:5,stroke:r.lineColor,strokeWidth:2});h.insert(()=>t,":first-child").attr("class","ishikawa-label-box")}else h.insert("rect",":first-child").attr("class","ishikawa-label-box").attr("x",l.x-20).attr("y",l.y-2).attr("width",l.width+40).attr("height",l.height+4)},"drawCauseLabel"),w=(0,r.K2)((t,e,i,s,n,a)=>{let r=Math.sqrt(s*s+n*n);if(0===r)return;let h=s/r,l=n/r,o=-(6*l),c=6*h,u=`M ${e} ${i} L ${e-6*h*2+o} ${i-6*l*2+c} L ${e-6*h*2-o} ${i-6*l*2-c} Z`,d=a.roughSvg.path(u,{roughness:1,seed:a.seed,fill:a.lineColor,fillStyle:"solid",stroke:a.lineColor,strokeWidth:1});t.append(()=>d)},"drawArrowMarker"),x=(0,r.K2)((t,e,i,s,n,a,r,h)=>{let l=e.children??[],o=a*(l.length?1:.2),c=d*o*n,y=i+-u*o,p=s+c;if(K(t,i,s,y,p,"ishikawa-branch",h),h&&w(t,i,s,i-y,s-p,h),m(t,e.text,y,p,n,r,h),!l.length)return;let{entries:g,yOrder:f}=k(l,n),x=g.length,_=Array(x);for(let[t,e]of f.entries())_[e]=s+(t+1)/(x+1)*c;let b=new Map;b.set(-1,{x0:i,y0:s,x1:y,y1:p,childCount:l.length,childrenDrawn:0});let $=-u,I=d*n,E=n<0?"ishikawa-label up":"ishikawa-label down";for(let[e,i]of g.entries()){let s=_[e],n=b.get(i.parentIndex),a=t.append("g").attr("class","ishikawa-sub-group"),l=0,o=0,c=0;if(i.depth%2==0){let t=n.y1-n.y0;l=S(n.x0,n.x1,t?(s-n.y0)/t:.5),o=s,c=l-(i.childCount>0?60+5*i.childCount:30),K(a,l,s,c,s,"ishikawa-sub-branch",h),h&&w(a,l,s,1,0,h),v(a,i.text,c,s,"ishikawa-label align","end",r)}else{let t=n.childrenDrawn++;c=(l=S(n.x0,n.x1,(n.childCount-t)/(n.childCount+1)))+(s-(o=n.y0))/I*$,K(a,l,o,c,s,"ishikawa-sub-branch",h),h&&w(a,l,o,l-c,o-s,h),v(a,i.text,c,s,E,"end",r)}i.childCount>0&&b.set(e,{x0:l,y0:o,x1:c,y1:s,childCount:i.childCount,childrenDrawn:0})}},"drawBranch"),_=(0,r.K2)(t=>t.split(/<br\s*\/?>|\n/),"splitLines"),b=(0,r.K2)((t,e)=>{if(t.length<=e)return t;let i=[];for(let s of t.split(/\s+/)){let t=i.length-1;t>=0&&i[t].length+1+s.length<=e?i[t]+=" "+s:i.push(s)}return i.join("\n")},"wrapText"),v=(0,r.K2)((t,e,i,s,n,a,r)=>{let h=_(e),l=1.05*r,o=t.append("text").attr("class",n).attr("text-anchor",a).attr("x",i).attr("y",s-(h.length-1)*l/2);for(let[t,e]of h.entries())o.append("tspan").attr("x",i).attr("dy",0===t?0:l).text(e);return o},"drawMultilineText"),S=(0,r.K2)((t,e,i)=>t+(e-t)*i,"lerp"),K=(0,r.K2)((t,e,i,s,n,a,r)=>{if(r){let h=r.roughSvg.line(e,i,s,n,{roughness:1.5,seed:r.seed,stroke:r.lineColor,strokeWidth:2});t.append(()=>h).attr("class",a);return}return t.append("line").attr("class",a).attr("x1",e).attr("y1",i).attr("x2",s).attr("y2",n)},"drawLine"),$={parser:l,get db(){return new o},renderer:{draw:p},styles:(0,r.K2)(t=>`
|
|
2
|
-
.ishikawa .ishikawa-spine,
|
|
3
|
-
.ishikawa .ishikawa-branch,
|
|
4
|
-
.ishikawa .ishikawa-sub-branch {
|
|
5
|
-
stroke: ${t.lineColor};
|
|
6
|
-
stroke-width: 2;
|
|
7
|
-
fill: none;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.ishikawa .ishikawa-sub-branch {
|
|
11
|
-
stroke-width: 1;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.ishikawa .ishikawa-arrow {
|
|
15
|
-
fill: ${t.lineColor};
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.ishikawa .ishikawa-head {
|
|
19
|
-
fill: ${t.mainBkg};
|
|
20
|
-
stroke: ${t.lineColor};
|
|
21
|
-
stroke-width: 2;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.ishikawa .ishikawa-label-box {
|
|
25
|
-
fill: ${t.mainBkg};
|
|
26
|
-
stroke: ${t.lineColor};
|
|
27
|
-
stroke-width: 2;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.ishikawa text {
|
|
31
|
-
font-family: ${t.fontFamily};
|
|
32
|
-
font-size: ${t.fontSize};
|
|
33
|
-
fill: ${t.textColor};
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.ishikawa .ishikawa-head-label {
|
|
37
|
-
font-weight: 600;
|
|
38
|
-
text-anchor: middle;
|
|
39
|
-
dominant-baseline: middle;
|
|
40
|
-
font-size: 14px;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.ishikawa .ishikawa-label {
|
|
44
|
-
text-anchor: end;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.ishikawa .ishikawa-label.cause {
|
|
48
|
-
text-anchor: middle;
|
|
49
|
-
dominant-baseline: middle;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.ishikawa .ishikawa-label.align {
|
|
53
|
-
text-anchor: end;
|
|
54
|
-
dominant-baseline: middle;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
.ishikawa .ishikawa-label.up {
|
|
58
|
-
dominant-baseline: baseline;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.ishikawa .ishikawa-label.down {
|
|
62
|
-
dominant-baseline: hanging;
|
|
63
|
-
}
|
|
64
|
-
`,"getStyles")}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7084],{57084:(e,c,s)=>{s.d(c,{createPacketServices:()=>a.$});var a=s(65575);s(46598)}}]);
|