commandmate 0.10.3 → 0.11.0
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/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +155 -155
- package/.next/app-path-routes-manifest.json +30 -30
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +12 -12
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route.js +3 -3
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/conversation/route.js +1 -1
- package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/current-output/route.js +1 -1
- package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/session/route.js +1 -1
- package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/start/route.js +1 -1
- package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/terminal/route.js +3 -2
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route.js +1 -1
- package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route.js +1 -47
- package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route.js +1 -47
- package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route.js +1 -1
- package/.next/server/app/api/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +1 -1
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page.js +2 -2
- package/.next/server/app/more/page.js.nft.json +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page.js +1 -1
- package/.next/server/app/repositories/page.js.nft.json +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page.js.nft.json +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +8 -8
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +30 -30
- package/.next/server/chunks/1068.js +1 -1
- package/.next/server/chunks/1117.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/233.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3270.js +1 -1
- package/.next/server/chunks/3480.js +2 -2
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/406.js +47 -0
- package/.next/server/chunks/4444.js +1 -1
- package/.next/server/chunks/5381.js +1 -47
- package/.next/server/chunks/5959.js +2 -2
- package/.next/server/chunks/646.js +33 -0
- package/.next/server/chunks/8681.js +1 -0
- package/.next/server/chunks/8807.js +305 -300
- package/.next/server/chunks/9067.js +1 -1
- package/.next/server/chunks/9355.js +1 -1
- package/.next/server/chunks/9687.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/4560-2bf9cb6504cc4425.js +1 -0
- package/.next/static/chunks/7347-7ee39e14be89e508.js +1 -0
- package/.next/static/chunks/app/chat/page-5d20240f98c07cee.js +1 -0
- package/.next/static/chunks/app/layout-fe5857360dfba2b9.js +1 -0
- package/.next/static/chunks/app/more/page-af1d2af13ea901d2.js +1 -0
- package/.next/static/chunks/app/page-3bbe737ec910d1fb.js +1 -0
- package/.next/static/chunks/app/repositories/page-ace9134ac165a6de.js +1 -0
- package/.next/static/chunks/app/review/page-331b80f4f58582bc.js +1 -0
- package/.next/static/chunks/app/sessions/page-d694149a7e8649b6.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-1c311aaa0950db1e.js +1 -0
- package/.next/static/css/d7e2e8d1b8d69d36.css +1 -0
- package/.next/trace +10 -10
- package/dist/cli/commands/quickstart.d.ts.map +1 -1
- package/dist/cli/commands/quickstart.js +27 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +19 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +178 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +6 -0
- package/dist/cli/types/index.d.ts +13 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/utils/agent-instances.d.ts +1 -1
- package/dist/cli/utils/agent-instances.d.ts.map +1 -1
- package/dist/cli/utils/agent-instances.js +8 -1
- package/dist/cli/utils/api-client.d.ts +36 -0
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +82 -0
- package/dist/cli/utils/daemon.d.ts.map +1 -1
- package/dist/cli/utils/daemon.js +44 -9
- package/dist/cli/utils/npx-runner.d.ts +88 -0
- package/dist/cli/utils/npx-runner.d.ts.map +1 -0
- package/dist/cli/utils/npx-runner.js +165 -0
- package/dist/cli/utils/package-info.d.ts +17 -0
- package/dist/cli/utils/package-info.d.ts.map +1 -0
- package/dist/cli/utils/package-info.js +31 -0
- package/dist/cli/utils/pid-manager.d.ts +65 -9
- package/dist/cli/utils/pid-manager.d.ts.map +1 -1
- package/dist/cli/utils/pid-manager.js +81 -21
- package/dist/cli/utils/process-inspector.d.ts +27 -0
- package/dist/cli/utils/process-inspector.d.ts.map +1 -0
- package/dist/cli/utils/process-inspector.js +37 -0
- package/dist/lib/app-update/update-lock.d.ts +39 -0
- package/dist/lib/app-update/update-lock.d.ts.map +1 -0
- package/dist/lib/app-update/update-lock.js +116 -0
- package/dist/server/src/config/github-links.js +22 -0
- package/dist/server/src/lib/db/db-instance.js +22 -3
- package/dist/server/src/lib/db/db-repository.js +107 -19
- package/dist/server/src/lib/db/db.js +3 -2
- package/dist/server/src/lib/db/memo-db.js +32 -1
- package/dist/server/src/lib/db/migrations/index.js +2 -0
- package/dist/server/src/lib/db/migrations/runner.js +11 -1
- package/dist/server/src/lib/db/migrations/v43-remove-cm-root-dir-ghost-repository.js +126 -0
- package/dist/server/src/lib/git/worktrees.js +90 -0
- package/dist/server/src/lib/job-executor.js +8 -2
- package/dist/server/src/lib/realtime/types.js +76 -0
- package/dist/server/src/lib/schedule-manager.js +9 -1
- package/dist/server/src/lib/version-checker.js +297 -0
- package/dist/server/src/lib/ws-server.js +37 -0
- package/package.json +1 -1
- package/.next/server/chunks/2464.js +0 -33
- package/.next/server/chunks/6791.js +0 -47
- package/.next/static/chunks/7347-4a031aecf4664a6d.js +0 -1
- package/.next/static/chunks/8954-ce15ee4d0423f1b1.js +0 -1
- package/.next/static/chunks/app/chat/page-dee86bdf87516e40.js +0 -1
- package/.next/static/chunks/app/layout-d02f4691a4eff86b.js +0 -1
- package/.next/static/chunks/app/more/page-39ec8b5f27cf52e7.js +0 -1
- package/.next/static/chunks/app/page-ebf1db9826b4065d.js +0 -1
- package/.next/static/chunks/app/repositories/page-2be54cae5fcc1f7a.js +0 -1
- package/.next/static/chunks/app/review/page-ac4efe6857a0f3bf.js +0 -1
- package/.next/static/chunks/app/sessions/page-dc545a3d45374187.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-9eb2f37809919531.js +0 -1
- package/.next/static/css/eabd34bf2ab147a4.css +0 -1
- /package/.next/static/{Ndx_NzkoP54cD0UCmjUlu → 8yp8SRJ9h3Uj75SpHLYpl}/_buildManifest.js +0 -0
- /package/.next/static/{Ndx_NzkoP54cD0UCmjUlu → 8yp8SRJ9h3Uj75SpHLYpl}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=233,exports.ids=[233],exports.modules={30233:(a,b,c)=>{c.d(b,{A1:()=>m,N_:()=>z,Ky:()=>B,Du:()=>p,ax:()=>s,Gl:()=>D,AJ:()=>t,QS:()=>x,FH:()=>E,ng:()=>y,LK:()=>F});var d=c(79748),e=c(29021),f=c(4984),g=c(33873),h=c(66007),i=c(73462);let j={MAX_RECURSIVE_DELETE_FILES:100,MAX_RECURSIVE_DELETE_DEPTH:10,PROTECTED_DIRECTORIES:[".git",".github","node_modules"]};function k(a){if(!a)return!1;let b=a.endsWith("/")?a.slice(0,-1):a;for(let a of j.PROTECTED_DIRECTORIES)if(b===a||b.startsWith(`${a}/`))return!0;return!1}let l={FILE_NOT_FOUND:"File not found",PERMISSION_DENIED:"Permission denied",INVALID_PATH:"Invalid path",INVALID_NAME:"Invalid name",INVALID_REQUEST:"Invalid request",DIRECTORY_NOT_EMPTY:"Directory is not empty",FILE_EXISTS:"File already exists",PROTECTED_DIRECTORY:"Protected directory cannot be deleted",DELETE_LIMIT_EXCEEDED:"Delete limit exceeded",DISK_FULL:"Disk is full",INTERNAL_ERROR:"Internal error",INVALID_EXTENSION:"Unsupported file type",INVALID_MIME_TYPE:"Invalid file format",INVALID_MAGIC_BYTES:"Invalid file format",FILE_TOO_LARGE:"File size exceeds limit",INVALID_FILENAME:"Invalid filename",INVALID_FILE_CONTENT:"Invalid file content",MOVE_SAME_PATH:"Source and destination are the same",MOVE_INTO_SELF:"Cannot move a directory into itself"};function m(a,b){return{success:!1,error:{code:a,message:b||l[a]}}}function n(a){switch(a.code){case"EACCES":return m("PERMISSION_DENIED");case"ENOSPC":return m("DISK_FULL");case"ENOTEMPTY":return m("DIRECTORY_NOT_EMPTY");case"EEXIST":return m("FILE_EXISTS");default:return m("INTERNAL_ERROR")}}function o(a,b){return(0,h.B9)(a,b)&&(0,h.Px)(a,b)?null:m("INVALID_PATH")}function p(a){let b=(0,g.extname)(a).toLowerCase();return(0,i.Ol)(b)}let q=/[<>:"|?*]/,r=/[\x00-\x1F]/;function s(a,b){if(!a||""===a.trim())return{valid:!1,error:"Name cannot be empty"};if(a.includes(".."))return{valid:!1,error:'Name cannot contain ".."'};if(a.includes("/")||a.includes("\\"))return{valid:!1,error:"Name cannot contain path separators"};if(b?.forUpload){if(r.test(a))return{valid:!1,error:"Name cannot contain control characters"};if(q.test(a))return{valid:!1,error:"Name contains forbidden characters"};if(a.endsWith(" ")||a.endsWith("."))return{valid:!1,error:"Name cannot end with space or dot"}}return{valid:!0}}async function t(a,b){let c=o(b,a);if(c)return c;let f=(0,g.join)(a,b);if(!(0,e.existsSync)(f))return m("FILE_NOT_FOUND");try{let a=await (0,d.readFile)(f,"utf-8");return{success:!0,path:b,content:a}}catch(a){return n(a)}}function u(a){return{success:!1,error:{code:a,message:l[a]}}}async function v(a,b,c){let d=[],g=0,h=!1;for await(let i of(0,f.createInterface)({input:(0,e.createReadStream)(a,{encoding:"utf-8"}),crlfDelay:1/0}))if((g+=1)>=b&&g<=c&&d.push(i),g>c){h=!0;break}return h&&(g=await w(a)),{collected:d,totalLines:g}}async function w(a){let b=(0,f.createInterface)({input:(0,e.createReadStream)(a,{encoding:"utf-8"}),crlfDelay:1/0}),c=0;for await(let a of b)c+=1;return c}async function x(a,b,c,f){let h,i=!(Number.isFinite(c)&&Number.isFinite(f)&&Number.isInteger(c)&&Number.isInteger(f))||c<1||f<c||f-c>2e3?u("INVALID_REQUEST"):null;if(i)return i;let j=o(b,a);if(j)return{success:!1,error:{code:j.error?.code??"INVALID_PATH",message:j.error?.message??l.INVALID_PATH}};let k=(0,g.join)(a,b);if(!(0,e.existsSync)(k))return u("FILE_NOT_FOUND");try{h=(await (0,d.stat)(k)).size}catch{return u("INTERNAL_ERROR")}try{let{collected:a,totalLines:d}=await v(k,c,f),e=0===d?0:Math.min(f,d),g=0===d?c:Math.min(c,e||c);return{success:!0,path:b,content:a.join("\n"),totalLines:d,totalBytes:h,encoding:"utf-8",range:{start:g,end:e}}}catch{return u("INTERNAL_ERROR")}}async function y(a,b,c){let f=o(b,a);if(f)return f;let h=(0,g.join)(a,b);if(!(0,e.existsSync)(h))return m("FILE_NOT_FOUND");try{return await (0,d.writeFile)(h,c,"utf-8"),{success:!0,path:b}}catch(a){return n(a)}}async function z(a,b,c,f){let h=o(b,a);if(h)return h;let i=(0,g.join)(a,b);if((0,e.existsSync)(i))return m("FILE_EXISTS");try{if("directory"===c)await (0,d.mkdir)(i,{recursive:!0});else{let a=(0,g.dirname)(i);(0,e.existsSync)(a)||await (0,d.mkdir)(a,{recursive:!0}),await (0,d.writeFile)(i,f||"","utf-8")}return{success:!0,path:b}}catch(a){return n(a)}}async function A(a,b=0){if(b>j.MAX_RECURSIVE_DELETE_DEPTH)return j.MAX_RECURSIVE_DELETE_FILES+1;let c=0;try{for(let e of(await (0,d.readdir)(a,{withFileTypes:!0})))if(++c>j.MAX_RECURSIVE_DELETE_FILES||e.isDirectory()&&(c+=await A((0,g.join)(a,e.name),b+1))>j.MAX_RECURSIVE_DELETE_FILES)break}catch{}return c}async function B(a,b,f){let h=o(b,a);if(h)return h;if(k(b))return m("PROTECTED_DIRECTORY");let i=(0,g.join)(a,b);if(!(0,e.existsSync)(i))return m("FILE_NOT_FOUND");try{let a=await (0,d.stat)(i);if(a.isDirectory()){if((await (0,d.readdir)(i)).length>0&&!f)return m("DIRECTORY_NOT_EMPTY");if(f){let a=await A(i);if(a>j.MAX_RECURSIVE_DELETE_FILES)return m("DELETE_LIMIT_EXCEEDED",`Delete limit exceeded: ${a} files (max: ${j.MAX_RECURSIVE_DELETE_FILES})`)}}if(a.isDirectory()&&!f){let{rmdir:a}=await Promise.resolve().then(c.t.bind(c,79748,23));await a(i)}else await (0,d.rm)(i,{recursive:f||!1,force:!1});return{success:!0,path:b}}catch(a){return n(a)}}function C(a,b){let c=o(b,a);if(c)return{success:!1,error:c};let d=(0,g.join)(a,b);return(0,e.existsSync)(d)?{success:!0,resolvedSource:d}:{success:!1,error:m("FILE_NOT_FOUND")}}async function D(a,b,c){let f,i=C(a,b);if(!i.success)return i.error;let j=i.resolvedSource;if(k(b))return m("PROTECTED_DIRECTORY");if(""!==c&&!(0,h.B9)(c,a))return m("INVALID_PATH");let l=c?(0,g.join)(a,c):a;if(!(0,e.existsSync)(l))return m("INVALID_PATH");try{if(!(0,e.statSync)(l).isDirectory())return m("INVALID_PATH")}catch{return m("INVALID_PATH")}if(c&&k(c))return m("PROTECTED_DIRECTORY");try{let b=(0,e.realpathSync)(l),c=(0,e.realpathSync)(a);if(!b.startsWith(c+g.sep)&&b!==c)return m("INVALID_PATH")}catch{return m("INVALID_PATH")}let o=(0,g.basename)(b),p=c?(0,g.join)(c,o):o;try{f=(0,e.realpathSync)(j)}catch{f=(0,g.resolve)(j)}let q=(0,g.resolve)((0,e.realpathSync)(a),p);if(q===f)return m("MOVE_SAME_PATH");if(q.startsWith(f+g.sep))return m("MOVE_INTO_SELF");if(!(0,h.B9)(p,a))return m("INVALID_PATH");if(k(p))return m("PROTECTED_DIRECTORY");let r=(0,g.join)(a,p);if((0,e.existsSync)(r))return m("FILE_EXISTS");try{return await (0,d.rename)(j,r),{success:!0,path:p}}catch(a){return n(a)}}async function E(a,b,c){let f=C(a,b);if(!f.success)return f.error;let i=s(c);if(!i.valid)return m("INVALID_NAME",i.error);let j=f.resolvedSource,k=(0,g.dirname)(b),l="."===k?c:(0,g.join)(k,c),o=(0,g.join)(a,l);if(!(0,h.B9)(l,a))return m("INVALID_PATH");if((0,e.existsSync)(o))return m("FILE_EXISTS");try{return await (0,d.rename)(j,o),{success:!0,path:l}}catch(a){return n(a)}}async function F(a,b,c){let f=o(b,a);if(f)return f;let h=(0,g.join)(a,b);if((0,e.existsSync)(h))return m("FILE_EXISTS");try{let a=(0,g.dirname)(h);return(0,e.existsSync)(a)||await (0,d.mkdir)(a,{recursive:!0}),await (0,d.writeFile)(h,c),{success:!0,path:b,size:c.length}}catch(a){return n(a)}}},39333:(a,b,c)=>{c.d(b,{$Y:()=>g,Bg:()=>i,HB:()=>f,df:()=>h,f9:()=>d});let d=[".png",".jpg",".jpeg",".gif",".webp",".svg"],e=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function f(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}function g(a){let b=f(a),c=e.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"}function h(a){if(!a)return!1;let b=f(a);return d.includes(b)}function i(a,b){if(b.length>0x1400000)return{valid:!1,error:"File size exceeds 20MB limit"};if(".svg"===f(a)){var c;return(c=b.toString("utf-8")).includes("<svg")||c.startsWith("<?xml")?/<script[\s>]/i.test(c)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(c)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(c)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(c)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(a,b){let c=f(a),d=e.find(a=>a.extension===c);if(!d?.magicBytes)return".svg"===c;let g=d.magicBytesOffset||0;return!(b.length<g+d.magicBytes.length)&&d.magicBytes.every((a,c)=>b[g+c]===a)}(a,b)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}d.filter(a=>".svg"!==a).map(a=>g(a)).filter(a=>"application/octet-stream"!==a).join(",")},39481:(a,b,c)=>{c.d(b,{BH:()=>k,El:()=>j,R:()=>f,dn:()=>h,jw:()=>l,rf:()=>i});let d=[{extension:".png",maxFileSize:0x1400000,allowedMimeTypes:["image/png"],magicBytes:[{bytes:[137,80,78,71,13,10,26,10]}]},{extension:".jpg",maxFileSize:0x1400000,allowedMimeTypes:["image/jpeg"],magicBytes:[{bytes:[255,216,255]}]},{extension:".jpeg",maxFileSize:0x1400000,allowedMimeTypes:["image/jpeg"],magicBytes:[{bytes:[255,216,255]}]},{extension:".gif",maxFileSize:0x1400000,allowedMimeTypes:["image/gif"],magicBytes:[{bytes:[71,73,70,56,55,97]},{bytes:[71,73,70,56,57,97]}]},{extension:".webp",maxFileSize:0x1400000,allowedMimeTypes:["image/webp"],magicBytes:[{bytes:[82,73,70,70],offset:0}]},{extension:".mp4",maxFileSize:0x6400000,allowedMimeTypes:["video/mp4"],magicBytes:[{bytes:[102,116,121,112],offset:4}]},{extension:".txt",maxFileSize:0x1400000,allowedMimeTypes:["text/plain"]},{extension:".log",maxFileSize:0x1400000,allowedMimeTypes:["text/plain"]},{extension:".md",maxFileSize:0x1400000,allowedMimeTypes:["text/markdown","text/plain"]},{extension:".csv",maxFileSize:0x1400000,allowedMimeTypes:["text/csv"]},{extension:".json",maxFileSize:0x1400000,allowedMimeTypes:["application/json"]},{extension:".yaml",maxFileSize:0x1400000,allowedMimeTypes:["text/yaml","application/x-yaml"]},{extension:".yml",maxFileSize:0x1400000,allowedMimeTypes:["text/yaml","application/x-yaml"]}],e=d.map(a=>a.extension);function f(a){if(!a)return!1;let b=a.toLowerCase();return e.includes(b)}function g(a){let b=a.toLowerCase();return d.find(a=>a.extension===b)}function h(a,b){let c=g(a);return c?.allowedMimeTypes.includes(b)??!1}function i(a,b){let c=g(a);return!c?.magicBytes||0===c.magicBytes.length||c.magicBytes.some(a=>{let c=a.offset??0;return!(b.length<c+a.bytes.length)&&a.bytes.every((a,d)=>b[c+d]===a)})}function j(a){let b=g(a);return b?.maxFileSize??0x1400000}function k(a){return![/!ruby\/object/i,/!python\/object/i,/!!python/i,/!!ruby/i,/!<tag:yaml\.org,2002:python/i,/!<tag:yaml\.org,2002:ruby/i].some(b=>b.test(a))}function l(a){try{return JSON.parse(a),!0}catch{return!1}}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},73462:(a,b,c)=>{c.d(b,{Nu:()=>f,Ol:()=>j,mS:()=>k});var d=c(98125),e=c(39481);let f=2097152,g=[".md",".html",".htm",".yaml",".yml"];function h(a){return!!(0,e.BH)(a)||"Dangerous YAML tags detected (e.g., !ruby/object). Please use only safe tags."}let i=[{extension:".md",maxFileSize:2097152},{extension:".html",maxFileSize:d.j6},{extension:".htm",maxFileSize:d.j6},{extension:".yaml",maxFileSize:f,additionalValidation:h},{extension:".yml",maxFileSize:f,additionalValidation:h}];function j(a){if(!a)return!1;let b=a.toLowerCase();return g.includes(b)}function k(a,b){let c=a.toLowerCase(),d=i.find(a=>a.extension===c);if(!d)return{valid:!1,error:"Unsupported extension"};if(d.maxFileSize&&b.length>d.maxFileSize)return{valid:!1,error:"File size exceeds limit"};if(b.includes("\0"))return{valid:!1,error:"Binary content detected"};if(/[\x01-\x08\x0B\x0C\x0E-\x1F]/.test(b)&&console.warn("Content contains control characters"),d.additionalValidation){let a=d.additionalValidation(b);if(!0!==a)return{valid:!1,error:"string"==typeof a?a:"Content validation failed"}}return{valid:!0}}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},98125:(a,b,c)=>{c.d(b,{j6:()=>f,lk:()=>g});var d=c(39333);let e=[".html",".htm"],f=5242880;function g(a){if(!a)return!1;let b=(0,d.HB)(a);return e.includes(b)}}};
|
|
1
|
+
"use strict";exports.id=233,exports.ids=[233],exports.modules={30233:(a,b,c)=>{c.d(b,{A1:()=>m,N_:()=>z,Ky:()=>B,Du:()=>p,ax:()=>s,Gl:()=>D,AJ:()=>t,QS:()=>x,FH:()=>E,ng:()=>y,LK:()=>F});var d=c(79748),e=c(29021),f=c(4984),g=c(33873),h=c(66007),i=c(73462);let j={MAX_RECURSIVE_DELETE_FILES:100,MAX_RECURSIVE_DELETE_DEPTH:10,PROTECTED_DIRECTORIES:[".git",".github","node_modules"]};function k(a){if(!a)return!1;let b=a.endsWith("/")?a.slice(0,-1):a;for(let a of j.PROTECTED_DIRECTORIES)if(b===a||b.startsWith(`${a}/`))return!0;return!1}let l={FILE_NOT_FOUND:"File not found",PERMISSION_DENIED:"Permission denied",INVALID_PATH:"Invalid path",INVALID_NAME:"Invalid name",INVALID_REQUEST:"Invalid request",DIRECTORY_NOT_EMPTY:"Directory is not empty",FILE_EXISTS:"File already exists",PROTECTED_DIRECTORY:"Protected directory cannot be deleted",DELETE_LIMIT_EXCEEDED:"Delete limit exceeded",DISK_FULL:"Disk is full",INTERNAL_ERROR:"Internal error",INVALID_EXTENSION:"Unsupported file type",INVALID_MIME_TYPE:"Invalid file format",INVALID_MAGIC_BYTES:"Invalid file format",FILE_TOO_LARGE:"File size exceeds limit",INVALID_FILENAME:"Invalid filename",INVALID_FILE_CONTENT:"Invalid file content",MOVE_SAME_PATH:"Source and destination are the same",MOVE_INTO_SELF:"Cannot move a directory into itself"};function m(a,b){return{success:!1,error:{code:a,message:b||l[a]}}}function n(a){switch(a.code){case"EACCES":return m("PERMISSION_DENIED");case"ENOSPC":return m("DISK_FULL");case"ENOTEMPTY":return m("DIRECTORY_NOT_EMPTY");case"EEXIST":return m("FILE_EXISTS");default:return m("INTERNAL_ERROR")}}function o(a,b){return(0,h.B9)(a,b)&&(0,h.Px)(a,b)?null:m("INVALID_PATH")}function p(a){let b=(0,g.extname)(a).toLowerCase();return(0,i.Ol)(b)}let q=/[<>:"|?*]/,r=/[\x00-\x1F]/;function s(a,b){if(!a||""===a.trim())return{valid:!1,error:"Name cannot be empty"};if(a.includes(".."))return{valid:!1,error:'Name cannot contain ".."'};if(a.includes("/")||a.includes("\\"))return{valid:!1,error:"Name cannot contain path separators"};if(b?.forUpload){if(r.test(a))return{valid:!1,error:"Name cannot contain control characters"};if(q.test(a))return{valid:!1,error:"Name contains forbidden characters"};if(a.endsWith(" ")||a.endsWith("."))return{valid:!1,error:"Name cannot end with space or dot"}}return{valid:!0}}async function t(a,b){let c=o(b,a);if(c)return c;let f=(0,g.join)(a,b);if(!(0,e.existsSync)(f))return m("FILE_NOT_FOUND");try{let a=await (0,d.readFile)(f,"utf-8");return{success:!0,path:b,content:a}}catch(a){return n(a)}}function u(a){return{success:!1,error:{code:a,message:l[a]}}}async function v(a,b,c){let d=[],g=0,h=!1;for await(let i of(0,f.createInterface)({input:(0,e.createReadStream)(a,{encoding:"utf-8"}),crlfDelay:1/0}))if((g+=1)>=b&&g<=c&&d.push(i),g>c){h=!0;break}return h&&(g=await w(a)),{collected:d,totalLines:g}}async function w(a){let b=(0,f.createInterface)({input:(0,e.createReadStream)(a,{encoding:"utf-8"}),crlfDelay:1/0}),c=0;for await(let a of b)c+=1;return c}async function x(a,b,c,f){let h,i=!(Number.isFinite(c)&&Number.isFinite(f)&&Number.isInteger(c)&&Number.isInteger(f))||c<1||f<c||f-c>2e3?u("INVALID_REQUEST"):null;if(i)return i;let j=o(b,a);if(j)return{success:!1,error:{code:j.error?.code??"INVALID_PATH",message:j.error?.message??l.INVALID_PATH}};let k=(0,g.join)(a,b);if(!(0,e.existsSync)(k))return u("FILE_NOT_FOUND");try{h=(await (0,d.stat)(k)).size}catch{return u("INTERNAL_ERROR")}try{let{collected:a,totalLines:d}=await v(k,c,f),e=0===d?0:Math.min(f,d),g=0===d?c:Math.min(c,e||c);return{success:!0,path:b,content:a.join("\n"),totalLines:d,totalBytes:h,encoding:"utf-8",range:{start:g,end:e}}}catch{return u("INTERNAL_ERROR")}}async function y(a,b,c){let f=o(b,a);if(f)return f;let h=(0,g.join)(a,b);if(!(0,e.existsSync)(h))return m("FILE_NOT_FOUND");try{return await (0,d.writeFile)(h,c,"utf-8"),{success:!0,path:b}}catch(a){return n(a)}}async function z(a,b,c,f){let h=o(b,a);if(h)return h;let i=(0,g.join)(a,b);if((0,e.existsSync)(i))return m("FILE_EXISTS");try{if("directory"===c)await (0,d.mkdir)(i,{recursive:!0});else{let a=(0,g.dirname)(i);(0,e.existsSync)(a)||await (0,d.mkdir)(a,{recursive:!0}),await (0,d.writeFile)(i,f||"","utf-8")}return{success:!0,path:b}}catch(a){return n(a)}}async function A(a,b=0){if(b>j.MAX_RECURSIVE_DELETE_DEPTH)return j.MAX_RECURSIVE_DELETE_FILES+1;let c=0;try{for(let e of(await (0,d.readdir)(a,{withFileTypes:!0})))if(++c>j.MAX_RECURSIVE_DELETE_FILES||e.isDirectory()&&(c+=await A((0,g.join)(a,e.name),b+1))>j.MAX_RECURSIVE_DELETE_FILES)break}catch{}return c}async function B(a,b,f){let h=o(b,a);if(h)return h;if(k(b))return m("PROTECTED_DIRECTORY");let i=(0,g.join)(a,b);if(!(0,e.existsSync)(i))return m("FILE_NOT_FOUND");try{let a=await (0,d.stat)(i);if(a.isDirectory()){if((await (0,d.readdir)(i)).length>0&&!f)return m("DIRECTORY_NOT_EMPTY");if(f){let a=await A(i);if(a>j.MAX_RECURSIVE_DELETE_FILES)return m("DELETE_LIMIT_EXCEEDED",`Delete limit exceeded: ${a} files (max: ${j.MAX_RECURSIVE_DELETE_FILES})`)}}if(a.isDirectory()&&!f){let{rmdir:a}=await Promise.resolve().then(c.t.bind(c,79748,23));await a(i)}else await (0,d.rm)(i,{recursive:f||!1,force:!1});return{success:!0,path:b}}catch(a){return n(a)}}function C(a,b){let c=o(b,a);if(c)return{success:!1,error:c};let d=(0,g.join)(a,b);return(0,e.existsSync)(d)?{success:!0,resolvedSource:d}:{success:!1,error:m("FILE_NOT_FOUND")}}async function D(a,b,c){let f,i=C(a,b);if(!i.success)return i.error;let j=i.resolvedSource;if(k(b))return m("PROTECTED_DIRECTORY");if(""!==c&&!(0,h.B9)(c,a))return m("INVALID_PATH");let l=c?(0,g.join)(a,c):a;if(!(0,e.existsSync)(l))return m("INVALID_PATH");try{if(!(0,e.statSync)(l).isDirectory())return m("INVALID_PATH")}catch{return m("INVALID_PATH")}if(c&&k(c))return m("PROTECTED_DIRECTORY");try{let b=(0,e.realpathSync)(l),c=(0,e.realpathSync)(a);if(!b.startsWith(c+g.sep)&&b!==c)return m("INVALID_PATH")}catch{return m("INVALID_PATH")}let o=(0,g.basename)(b),p=c?(0,g.join)(c,o):o;try{f=(0,e.realpathSync)(j)}catch{f=(0,g.resolve)(j)}let q=(0,g.resolve)((0,e.realpathSync)(a),p);if(q===f)return m("MOVE_SAME_PATH");if(q.startsWith(f+g.sep))return m("MOVE_INTO_SELF");if(!(0,h.B9)(p,a))return m("INVALID_PATH");if(k(p))return m("PROTECTED_DIRECTORY");let r=(0,g.join)(a,p);if((0,e.existsSync)(r))return m("FILE_EXISTS");try{return await (0,d.rename)(j,r),{success:!0,path:p}}catch(a){return n(a)}}async function E(a,b,c){let f=C(a,b);if(!f.success)return f.error;let i=s(c);if(!i.valid)return m("INVALID_NAME",i.error);let j=f.resolvedSource,k=(0,g.dirname)(b),l="."===k?c:(0,g.join)(k,c),o=(0,g.join)(a,l);if(!(0,h.B9)(l,a))return m("INVALID_PATH");if((0,e.existsSync)(o))return m("FILE_EXISTS");try{return await (0,d.rename)(j,o),{success:!0,path:l}}catch(a){return n(a)}}async function F(a,b,c){let f=o(b,a);if(f)return f;let h=(0,g.join)(a,b);if((0,e.existsSync)(h))return m("FILE_EXISTS");try{let a=(0,g.dirname)(h);return(0,e.existsSync)(a)||await (0,d.mkdir)(a,{recursive:!0}),await (0,d.writeFile)(h,c),{success:!0,path:b,size:c.length}}catch(a){return n(a)}}},39481:(a,b,c)=>{c.d(b,{BH:()=>k,El:()=>j,R:()=>f,dn:()=>h,jw:()=>l,rf:()=>i});let d=[{extension:".png",maxFileSize:0x1400000,allowedMimeTypes:["image/png"],magicBytes:[{bytes:[137,80,78,71,13,10,26,10]}]},{extension:".jpg",maxFileSize:0x1400000,allowedMimeTypes:["image/jpeg"],magicBytes:[{bytes:[255,216,255]}]},{extension:".jpeg",maxFileSize:0x1400000,allowedMimeTypes:["image/jpeg"],magicBytes:[{bytes:[255,216,255]}]},{extension:".gif",maxFileSize:0x1400000,allowedMimeTypes:["image/gif"],magicBytes:[{bytes:[71,73,70,56,55,97]},{bytes:[71,73,70,56,57,97]}]},{extension:".webp",maxFileSize:0x1400000,allowedMimeTypes:["image/webp"],magicBytes:[{bytes:[82,73,70,70],offset:0}]},{extension:".mp4",maxFileSize:0x6400000,allowedMimeTypes:["video/mp4"],magicBytes:[{bytes:[102,116,121,112],offset:4}]},{extension:".txt",maxFileSize:0x1400000,allowedMimeTypes:["text/plain"]},{extension:".log",maxFileSize:0x1400000,allowedMimeTypes:["text/plain"]},{extension:".md",maxFileSize:0x1400000,allowedMimeTypes:["text/markdown","text/plain"]},{extension:".csv",maxFileSize:0x1400000,allowedMimeTypes:["text/csv"]},{extension:".json",maxFileSize:0x1400000,allowedMimeTypes:["application/json"]},{extension:".yaml",maxFileSize:0x1400000,allowedMimeTypes:["text/yaml","application/x-yaml"]},{extension:".yml",maxFileSize:0x1400000,allowedMimeTypes:["text/yaml","application/x-yaml"]}],e=d.map(a=>a.extension);function f(a){if(!a)return!1;let b=a.toLowerCase();return e.includes(b)}function g(a){let b=a.toLowerCase();return d.find(a=>a.extension===b)}function h(a,b){let c=g(a);return c?.allowedMimeTypes.includes(b)??!1}function i(a,b){let c=g(a);return!c?.magicBytes||0===c.magicBytes.length||c.magicBytes.some(a=>{let c=a.offset??0;return!(b.length<c+a.bytes.length)&&a.bytes.every((a,d)=>b[c+d]===a)})}function j(a){let b=g(a);return b?.maxFileSize??0x1400000}function k(a){return![/!ruby\/object/i,/!python\/object/i,/!!python/i,/!!ruby/i,/!<tag:yaml\.org,2002:python/i,/!<tag:yaml\.org,2002:ruby/i].some(b=>b.test(a))}function l(a){try{return JSON.parse(a),!0}catch{return!1}}},73462:(a,b,c)=>{c.d(b,{Nu:()=>f,Ol:()=>j,mS:()=>k});var d=c(98125),e=c(39481);let f=2097152,g=[".md",".html",".htm",".yaml",".yml"];function h(a){return!!(0,e.BH)(a)||"Dangerous YAML tags detected (e.g., !ruby/object). Please use only safe tags."}let i=[{extension:".md",maxFileSize:2097152},{extension:".html",maxFileSize:d.j6},{extension:".htm",maxFileSize:d.j6},{extension:".yaml",maxFileSize:f,additionalValidation:h},{extension:".yml",maxFileSize:f,additionalValidation:h}];function j(a){if(!a)return!1;let b=a.toLowerCase();return g.includes(b)}function k(a,b){let c=a.toLowerCase(),d=i.find(a=>a.extension===c);if(!d)return{valid:!1,error:"Unsupported extension"};if(d.maxFileSize&&b.length>d.maxFileSize)return{valid:!1,error:"File size exceeds limit"};if(b.includes("\0"))return{valid:!1,error:"Binary content detected"};if(/[\x01-\x08\x0B\x0C\x0E-\x1F]/.test(b)&&console.warn("Content contains control characters"),d.additionalValidation){let a=d.additionalValidation(b);if(!0!==a)return{valid:!1,error:"string"==typeof a?a:"Content validation failed"}}return{valid:!0}}},98125:(a,b,c)=>{c.d(b,{j6:()=>f,lk:()=>g});var d=c(39333);let e=[".html",".htm"],f=5242880;function g(a){if(!a)return!1;let b=(0,d.HB)(a);return e.includes(b)}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=2404,exports.ids=[2404],exports.modules={10176:(a,b,c)=>{c.d(b,{C8:()=>g,MN:()=>h,lg:()=>f});var d=c(50446);let e=["planning","development","review","documentation","workflow","skill","standard-session","standard-config","standard-monitor","standard-git","standard-util"];function f(a){if(0===a.length)return[];let b=new Map;for(let c of a){let a=b.get(c.category)||[];a.push(c),b.set(c.category,a)}let c=[];for(let a of e){let e=b.get(a);e&&e.length>0&&c.push({category:a,label:d.B[a],commands:e})}for(let[a,f]of b)!e.includes(a)&&f.length>0&&c.push({category:a,label:d.B[a]||a,commands:f});return c}function g(a,b){let c=new Map;for(let b of a)for(let a of b.commands)c.set(a.name,{...a,source:a.source||"standard"});for(let a of b)for(let b of a.commands)c.set(b.name,{...b,source:b.source||"worktree"});return f(Array.from(c.values()))}function h(a,b){return a.map(a=>({...a,commands:a.commands.filter(a=>a.cliTools?a.cliTools.includes(b):"claude"===b)})).filter(a=>a.commands.length>0)}},32404:(a,b,c)=>{c.d(b,{$B:()=>z,DP:()=>B,SN:()=>w,XN:()=>x,eH:()=>y});var d=c(29021),e=c(21820),f=c(33873),g=c(4018),h=c.n(g),i=c(50446),j=c(10176),k=c(15194),l=c(70673);let m=(0,c(72626).h)("slash-commands"),n=null,o=null,p=f.join(".codex","skills"),q=f.join(".agents","skills");function r(a){return h()(a,{engines:{js:{parse:()=>{throw Error("JavaScript engine is disabled for security")},stringify:()=>{throw Error("JavaScript engine is disabled for security")}},javascript:{parse:()=>{throw Error("JavaScript engine is disabled for security")},stringify:()=>{throw Error("JavaScript engine is disabled for security")}}}})}function s(a){if("string"==typeof a)return(0,k.hR)(a)?[a]:void 0;if(!Array.isArray(a))return;let b=a.filter(a=>"string"==typeof a&&(0,k.hR)(a));if(0!==b.length)return Array.from(new Set(b))}async function t(a){let b=function(a){let b=a||process.cwd();return f.join(b,".claude","commands")}(a);if(!d.existsSync(b))return m.warn("commands-directory-not-found:commandsdir"),[];let c=d.readdirSync(b).filter(a=>a.endsWith(".md")),e=[];for(let a of c){let c=function(a){try{let b=d.readFileSync(a,"utf-8"),{data:c}=r(b),e=f.basename(a,".md"),g=i.N[e]||"workflow";return{name:e,description:c.description||"",category:g,model:c.model,cliTools:s(c.cliTools),filePath:f.relative(process.cwd(),a)}}catch(a){return m.error("error-parsing-command-file-filepath:",{error:a instanceof Error?a.message:String(a)}),null}}(f.join(b,a));c&&e.push(c)}return e.sort((a,b)=>a.name.localeCompare(b.name)),n=e,e}function u(a,b,c,e=!1){if(!d.existsSync(a))return[];let g=d.readdirSync(a,{withFileTypes:!0}),h=[];for(let b of g)if(b.isDirectory()&&!b.name.includes(".."))if(e&&".system"===b.name)try{let b=f.join(a,".system");for(let a of d.readdirSync(b,{withFileTypes:!0}))a.isDirectory()&&(a.name.includes("..")||h.push({dir:b,name:a.name}))}catch{}else h.push({dir:a,name:b.name});let i=f.resolve(a)+f.sep,j=[];for(let{dir:a,name:e}of h){if(j.length>=100){m.warn(c);break}let g=f.resolve(a,e);if(!g.startsWith(i))continue;let h=function(a,b){let c=f.join(a,"SKILL.md");try{let a;if(d.statSync(c).size>65536)return m.warn("skipping-oversized-skill-file-statsize-b"),null;let e=d.readFileSync(c,"utf-8"),g=b,h="";try{let{data:c}=r(e);g=c.name||b,h=c.description||"",a=s(c.cliTools)}catch{let a=function(a){let b=a.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!b)return{name:"",description:""};let c=b[1],d=c.match(/^name:\s*(.+)$/m),e=c.match(/^description:\s*(.+)$/m);return{name:d?d[1].trim():"",description:e?e[1].trim():""}}(e);g=a.name||b,h=a.description||""}return{name:(0,l.W5)(g,100),description:(0,l.W5)(h,500),category:"skill",source:"skill",cliTools:a,filePath:f.relative(process.cwd(),c)}}catch(a){return m.error("error-parsing-skill-file-skillpath:",{error:a instanceof Error?a.message:String(a)}),null}}(g,e);h&&j.push({...h,...b})}return j.sort((a,b)=>a.name.localeCompare(b.name)),j}async function v(a){return u(function(a){let b=a||process.cwd();return f.join(b,".claude","skills")}(a),{},"skills-count-limit")}async function w(a){let b=a??e.homedir();return u(f.join(b,p),{source:"codex-skill",cliTools:["codex"]},"codex-skills-count-limit",!0)}async function x(a){let b=a??e.homedir();return u(f.join(b,q),{source:"codex-skill",cliTools:["codex"]},"agents-skills-count-limit",!0)}function y(){return[{name:"model",description:"Select AI model to use",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"delegate",description:"Send session to GitHub to create a PR",category:"workflow",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"fleet",description:"Enable fleet mode for parallel subagent execution",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"tasks",description:"View and manage background tasks",category:"standard-monitor",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"init",description:"Initialize Copilot instructions for repository",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"agent",description:"Browse and select from available agents",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"skills",description:"Manage skills for enhanced capabilities",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"mcp",description:"Manage MCP server configuration",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"plugin",description:"Manage plugins and plugin marketplaces",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"ide",description:"Connect to an IDE workspace",category:"workflow",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"diff",description:"Review changes in current directory",category:"standard-git",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"pr",description:"Operate on pull requests for current branch",category:"standard-git",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"review",description:"Run code review agent to analyze changes",category:"review",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"lsp",description:"Manage language server configuration",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"terminal-setup",description:"Configure terminal for multiline input",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"allow-all",description:"Enable all permissions",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"add-dir",description:"Add directory to allowed list",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"list-dirs",description:"Display all allowed directories",category:"standard-monitor",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"cwd",description:"Change or show working directory",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"reset-allowed-tools",description:"Reset the list of allowed tools",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"resume",description:"Switch to a different session",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"rename",description:"Rename the current session",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"context",description:"Show context window token usage",category:"standard-monitor",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"usage",description:"Display session usage metrics",category:"standard-monitor",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"session",description:"View and manage sessions",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"compact",description:"Summarize conversation to reduce context",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"share",description:"Share session to markdown or GitHub gist",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"copy",description:"Copy last response to clipboard",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"rewind",description:"Rewind last turn and revert file changes",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"help",description:"Show help for interactive commands",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"changelog",description:"Display changelog for CLI versions",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"feedback",description:"Provide feedback about the CLI",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"theme",description:"View or set color mode",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"update",description:"Update the CLI to the latest version",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"version",description:"Display version information",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"experimental",description:"Show or toggle experimental features",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"clear",description:"Abandon session and start fresh",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"instructions",description:"View and toggle custom instruction files",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"streamer-mode",description:"Toggle streamer mode",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"exit",description:"Exit the CLI",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"login",description:"Log in to Copilot",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"logout",description:"Log out of Copilot",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"new",description:"Start a new conversation",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"plan",description:"Create an implementation plan before coding",category:"workflow",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"research",description:"Run deep research investigation",category:"workflow",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"restart",description:"Restart the CLI preserving session",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"undo",description:"Rewind last turn and revert changes",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"user",description:"Manage GitHub user list",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"}]}function z(){return[{name:"clear",description:"Clear the screen and conversation history",category:"standard-session",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"compact",description:"Compress the context by replacing it with a summary",category:"standard-session",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"rewind",description:"Rewind to a previous conversation state",category:"standard-session",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"quit",description:"Exit the CLI",category:"standard-session",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"model",description:"Manage model configuration",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"theme",description:"Change the theme",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"agents reload",description:"Reload the agent registry",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"commands reload",description:"Reload custom slash commands",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"memory reload",description:"Reload context files (e.g. GEMINI.md)",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"mcp reload",description:"Restart and reload MCP servers",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"skills reload",description:"Reload discovered agent skills from disk",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"extensions reload",description:"Reload all active extensions",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"help",description:"Show help for interactive commands",category:"standard-util",cliTools:["gemini"],filePath:"",source:"builtin"}]}function A(a,b){let c=new Map,d=a=>{let b=a.cliTools&&a.cliTools.length>0?[...a.cliTools].sort().join(","):"claude";return`${a.name}::${b}`};for(let b of a)c.set(d(b),b);for(let a of b)c.set(d(a),a);return Array.from(c.values())}async function B(a){if(a){let b=await t(a),c=await v(a),d=A([...c,...await w(a),...await x(a)],b);return(0,j.lg)(d)}null===n&&(n=await t()),null===o&&(o=await v().catch(()=>[]));let b=A([...o],n);return(0,j.lg)(b)}},50446:(a,b,c)=>{c.d(b,{B:()=>d,N:()=>e});let d={planning:"Planning",development:"Development",review:"Review",documentation:"Documentation",workflow:"Workflow",skill:"Skills","standard-session":"Standard (Session)","standard-config":"Standard (Config)","standard-monitor":"Standard (Monitor)","standard-git":"Standard (Git)","standard-util":"Standard (Utility)"},e={"work-plan":"planning","issue-create":"planning","issue-split":"planning","design-policy":"planning","tdd-impl":"development","bug-fix":"development",refactoring:"development","architecture-review":"review","acceptance-test":"review","progress-report":"documentation","create-pr":"workflow","pm-auto-dev":"workflow"}},70673:(a,b,c)=>{function d(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function e(a,b=30){return a.length<=b?a:`${a.substring(0,b-3)}...`}c.d(b,{Nt:()=>d,W5:()=>e,wj:()=>g});class f extends Error{constructor(a){super(a),this.name="TimeoutError"}}function g(a,b,c){return new Promise((d,e)=>{let g=setTimeout(()=>{void 0!==c?d(c):e(new f(`Operation timed out after ${b}ms`))},b);a.then(a=>{clearTimeout(g),d(a)},a=>{clearTimeout(g),e(a)})})}}};
|
|
1
|
+
"use strict";exports.id=2404,exports.ids=[2404],exports.modules={10176:(a,b,c)=>{c.d(b,{C8:()=>h,MN:()=>i,TN:()=>g,lg:()=>f});var d=c(50446);let e=["planning","development","review","documentation","workflow","skill","standard-session","standard-config","standard-monitor","standard-git","standard-util"];function f(a){if(0===a.length)return[];let b=new Map;for(let c of a){let a=b.get(c.category)||[];a.push(c),b.set(c.category,a)}let c=[];for(let a of e){let e=b.get(a);e&&e.length>0&&c.push({category:a,label:d.B[a],commands:e})}for(let[a,f]of b)!e.includes(a)&&f.length>0&&c.push({category:a,label:d.B[a]||a,commands:f});return c}function g(a){let b=a.cliTools&&a.cliTools.length>0?[...a.cliTools].sort().join(","):"claude";return`${a.name}::${b}`}function h(a,b){let c=new Map;for(let b of a)for(let a of b.commands)c.set(g(a),{...a,source:a.source||"standard"});for(let a of b)for(let b of a.commands)c.set(g(b),{...b,source:b.source||"worktree"});return f(Array.from(c.values()))}function i(a,b){return a.map(a=>({...a,commands:a.commands.filter(a=>a.cliTools?a.cliTools.includes(b):"claude"===b)})).filter(a=>a.commands.length>0)}},32404:(a,b,c)=>{c.d(b,{$B:()=>z,DP:()=>B,SN:()=>w,XN:()=>x,eH:()=>y});var d=c(29021),e=c(21820),f=c(33873),g=c(4018),h=c.n(g),i=c(50446),j=c(10176),k=c(15194),l=c(70673);let m=(0,c(72626).h)("slash-commands"),n=null,o=null,p=f.join(".codex","skills"),q=f.join(".agents","skills");function r(a){return h()(a,{engines:{js:{parse:()=>{throw Error("JavaScript engine is disabled for security")},stringify:()=>{throw Error("JavaScript engine is disabled for security")}},javascript:{parse:()=>{throw Error("JavaScript engine is disabled for security")},stringify:()=>{throw Error("JavaScript engine is disabled for security")}}}})}function s(a){if("string"==typeof a)return(0,k.hR)(a)?[a]:void 0;if(!Array.isArray(a))return;let b=a.filter(a=>"string"==typeof a&&(0,k.hR)(a));if(0!==b.length)return Array.from(new Set(b))}async function t(a){let b=function(a){let b=a||process.cwd();return f.join(b,".claude","commands")}(a);if(!d.existsSync(b))return m.warn("commands-directory-not-found:commandsdir"),[];let c=d.readdirSync(b).filter(a=>a.endsWith(".md")),e=[];for(let a of c){let c=function(a){try{let b=d.readFileSync(a,"utf-8"),{data:c}=r(b),e=f.basename(a,".md"),g=i.N[e]||"workflow";return{name:e,description:c.description||"",category:g,model:c.model,cliTools:s(c.cliTools),filePath:f.relative(process.cwd(),a)}}catch(a){return m.error("error-parsing-command-file-filepath:",{error:a instanceof Error?a.message:String(a)}),null}}(f.join(b,a));c&&e.push(c)}return e.sort((a,b)=>a.name.localeCompare(b.name)),n=e,e}function u(a,b,c,e=!1){if(!d.existsSync(a))return[];let g=d.readdirSync(a,{withFileTypes:!0}),h=[];for(let b of g)if(b.isDirectory()&&!b.name.includes(".."))if(e&&".system"===b.name)try{let b=f.join(a,".system");for(let a of d.readdirSync(b,{withFileTypes:!0}))a.isDirectory()&&(a.name.includes("..")||h.push({dir:b,name:a.name}))}catch{}else h.push({dir:a,name:b.name});let i=f.resolve(a)+f.sep,j=[];for(let{dir:a,name:e}of h){if(j.length>=100){m.warn(c);break}let g=f.resolve(a,e);if(!g.startsWith(i))continue;let h=function(a,b){let c=f.join(a,"SKILL.md");try{let a;if(d.statSync(c).size>65536)return m.warn("skipping-oversized-skill-file-statsize-b"),null;let e=d.readFileSync(c,"utf-8"),g=b,h="";try{let{data:c}=r(e);g=c.name||b,h=c.description||"",a=s(c.cliTools)}catch{let a=function(a){let b=a.match(/^---\r?\n([\s\S]*?)\r?\n---/);if(!b)return{name:"",description:""};let c=b[1],d=c.match(/^name:\s*(.+)$/m),e=c.match(/^description:\s*(.+)$/m);return{name:d?d[1].trim():"",description:e?e[1].trim():""}}(e);g=a.name||b,h=a.description||""}return{name:(0,l.W5)(g,100),description:(0,l.W5)(h,500),category:"skill",source:"skill",cliTools:a,filePath:f.relative(process.cwd(),c)}}catch(a){return m.error("error-parsing-skill-file-skillpath:",{error:a instanceof Error?a.message:String(a)}),null}}(g,e);h&&j.push({...h,...b})}return j.sort((a,b)=>a.name.localeCompare(b.name)),j}async function v(a){return u(function(a){let b=a||process.cwd();return f.join(b,".claude","skills")}(a),{},"skills-count-limit")}async function w(a){let b=a??e.homedir();return u(f.join(b,p),{source:"codex-skill",cliTools:["codex"]},"codex-skills-count-limit",!0)}async function x(a){let b=a??e.homedir();return u(f.join(b,q),{source:"codex-skill",cliTools:["codex"]},"agents-skills-count-limit",!0)}function y(){return[{name:"model",description:"Select AI model to use",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"delegate",description:"Send session to GitHub to create a PR",category:"workflow",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"fleet",description:"Enable fleet mode for parallel subagent execution",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"tasks",description:"View and manage background tasks",category:"standard-monitor",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"init",description:"Initialize Copilot instructions for repository",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"agent",description:"Browse and select from available agents",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"skills",description:"Manage skills for enhanced capabilities",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"mcp",description:"Manage MCP server configuration",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"plugin",description:"Manage plugins and plugin marketplaces",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"ide",description:"Connect to an IDE workspace",category:"workflow",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"diff",description:"Review changes in current directory",category:"standard-git",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"pr",description:"Operate on pull requests for current branch",category:"standard-git",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"review",description:"Run code review agent to analyze changes",category:"review",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"lsp",description:"Manage language server configuration",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"terminal-setup",description:"Configure terminal for multiline input",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"allow-all",description:"Enable all permissions",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"add-dir",description:"Add directory to allowed list",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"list-dirs",description:"Display all allowed directories",category:"standard-monitor",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"cwd",description:"Change or show working directory",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"reset-allowed-tools",description:"Reset the list of allowed tools",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"resume",description:"Switch to a different session",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"rename",description:"Rename the current session",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"context",description:"Show context window token usage",category:"standard-monitor",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"usage",description:"Display session usage metrics",category:"standard-monitor",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"session",description:"View and manage sessions",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"compact",description:"Summarize conversation to reduce context",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"share",description:"Share session to markdown or GitHub gist",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"copy",description:"Copy last response to clipboard",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"rewind",description:"Rewind last turn and revert file changes",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"help",description:"Show help for interactive commands",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"changelog",description:"Display changelog for CLI versions",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"feedback",description:"Provide feedback about the CLI",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"theme",description:"View or set color mode",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"update",description:"Update the CLI to the latest version",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"version",description:"Display version information",category:"standard-util",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"experimental",description:"Show or toggle experimental features",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"clear",description:"Abandon session and start fresh",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"instructions",description:"View and toggle custom instruction files",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"streamer-mode",description:"Toggle streamer mode",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"exit",description:"Exit the CLI",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"login",description:"Log in to Copilot",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"logout",description:"Log out of Copilot",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"new",description:"Start a new conversation",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"plan",description:"Create an implementation plan before coding",category:"workflow",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"research",description:"Run deep research investigation",category:"workflow",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"restart",description:"Restart the CLI preserving session",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"undo",description:"Rewind last turn and revert changes",category:"standard-session",cliTools:["copilot"],filePath:"",source:"builtin"},{name:"user",description:"Manage GitHub user list",category:"standard-config",cliTools:["copilot"],filePath:"",source:"builtin"}]}function z(){return[{name:"clear",description:"Clear the screen and conversation history",category:"standard-session",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"compact",description:"Compress the context by replacing it with a summary",category:"standard-session",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"rewind",description:"Rewind to a previous conversation state",category:"standard-session",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"quit",description:"Exit the CLI",category:"standard-session",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"model",description:"Manage model configuration",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"theme",description:"Change the theme",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"agents reload",description:"Reload the agent registry",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"commands reload",description:"Reload custom slash commands",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"memory reload",description:"Reload context files (e.g. GEMINI.md)",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"mcp reload",description:"Restart and reload MCP servers",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"skills reload",description:"Reload discovered agent skills from disk",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"extensions reload",description:"Reload all active extensions",category:"standard-config",cliTools:["gemini"],filePath:"",source:"builtin"},{name:"help",description:"Show help for interactive commands",category:"standard-util",cliTools:["gemini"],filePath:"",source:"builtin"}]}function A(a,b){let c=new Map;for(let b of a)c.set((0,j.TN)(b),b);for(let a of b)c.set((0,j.TN)(a),a);return Array.from(c.values())}async function B(a){if(a){let b=await t(a),c=await v(a),d=A([...c,...await w(a),...await x(a)],b);return(0,j.lg)(d)}null===n&&(n=await t()),null===o&&(o=await v().catch(()=>[]));let b=A([...o],n);return(0,j.lg)(b)}},50446:(a,b,c)=>{c.d(b,{B:()=>d,N:()=>e});let d={planning:"Planning",development:"Development",review:"Review",documentation:"Documentation",workflow:"Workflow",skill:"Skills","standard-session":"Standard (Session)","standard-config":"Standard (Config)","standard-monitor":"Standard (Monitor)","standard-git":"Standard (Git)","standard-util":"Standard (Utility)"},e={"work-plan":"planning","issue-create":"planning","issue-split":"planning","design-policy":"planning","tdd-impl":"development","bug-fix":"development",refactoring:"development","architecture-review":"review","acceptance-test":"review","progress-report":"documentation","create-pr":"workflow","pm-auto-dev":"workflow"}},70673:(a,b,c)=>{function d(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function e(a,b=30){return a.length<=b?a:`${a.substring(0,b-3)}...`}c.d(b,{Nt:()=>d,W5:()=>e,wj:()=>g});class f extends Error{constructor(a){super(a),this.name="TimeoutError"}}function g(a,b,c){return new Promise((d,e)=>{let g=setTimeout(()=>{void 0!==c?d(c):e(new f(`Operation timed out after ${b}ms`))},b);a.then(a=>{clearTimeout(g),d(a)},a=>{clearTimeout(g),e(a)})})}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=2445,exports.ids=[2445],exports.modules={52445:a=>{a.exports=JSON.parse('{"agentStatus":{"moreAgents":"他 {count} 件のエージェント","overflowTrigger":"他のエージェント"},"toc":{"title":"目次","show":"目次を表示","hide":"目次を非表示","empty":"見出しなし"},"composer":{"placeholder":"メッセージを入力…","commandsHint":"コマンド","newlineHint":"改行","removeAttachment":"添付を削除","showSlashCommands":"スラッシュコマンドを表示","attachImage":"画像を添付","sendMessage":"メッセージを送信"},"interrupt":{"stopProcessing":"処理を中断"},"history":{"title":"メッセージ履歴","regionLabel":"メッセージ履歴","loading":"メッセージを読み込み中","empty":"メッセージはまだありません","show":"表示件数","displayLimit":"履歴の表示件数","showArchived":"アーカイブを表示","showUserOnly":"ユーザーのメッセージのみ表示","showAllMessages":"すべてのメッセージを表示","openSearch":"検索を開く","closeSearch":"検索を閉じる","copied":"クリップボードにコピーしました","copyFailed":"コピーに失敗しました","search":{"regionLabel":"履歴内テキスト検索","placeholder":"検索...","keywordLabel":"検索キーワード","prev":"前の結果 (prev)","next":"次の結果 (next)","close":"検索を閉じる (close)","countAtMax":"{current}/{max}以上"}},"conversation":{"waitingForResponse":"レスポンス待ち...","you":"あなた","assistant":"アシスタント","sending":"送信中…","failedToSend":"送信に失敗しました","retrySending":"メッセージを再送信","discard":"破棄","discardMessage":"メッセージを破棄","insertToMessage":"メッセージ欄に挿入","copy":"コピー","copyMessage":"メッセージをコピー","collapse":"折りたたむ","expand":"展開","collapseMessage":"メッセージを折りたたむ","expandMessage":"メッセージを展開","systemMessage":"システムメッセージ","systemMessageLabel":"システムメッセージ","openFile":"ファイルを開く: {path}","conversationLabel":"会話: {preview}"},"messages":{"loading":"メッセージを読み込み中...","empty":"メッセージはまだありません","you":"あなた","copy":"コピー","copyMessage":"メッセージをコピー","viewLogFile":"ログファイルを表示 →"},"slashCommands":{"title":"コマンド","searchPlaceholder":"コマンドを検索...","enterCustomCommand":"カスタムコマンドを入力...","selectHint":"選択","closeHint":"閉じる","empty":"利用可能なコマンドがありません","descriptions":{"clear":"会話履歴をクリア","compact":"コンテキストを圧縮してトークン使用量を削減","resume":"前回の会話を再開","rewind":"会話を以前の状態に巻き戻す","config":"設定を開く","model":"AI モデルを切り替え","permissions":"ツールの権限を表示・更新","status":"セッションの状態を確認","context":"コンテキストウィンドウの使用量を表示","cost":"トークンとコストの使用量を表示","review":"コードの変更をレビュー","pr-comments":"PR のコメントを表示","help":"利用可能なすべてのコマンドを表示","doctor":"インストール状態を診断","export":"会話履歴をエクスポート","todos":"TODO リストを表示","focus":"フォーカスモードを切り替え","effort":"モデルの思考量を調整(high/medium/low)","fast":"高速応答モードに切り替え","lazy":"レイジーモードを切り替え","new":"新しい会話を開始","undo":"直前の Codex の操作を取り消す","logout":"Codex からサインアウト","quit":"Codex CLI を終了","approvals":"自動実行の承認レベルを変更","diff":"Git の差分を表示(未追跡ファイルを含む)","mention":"次のやり取りにファイル/フォルダを添付","mcp":"利用可能な MCP ツールを一覧表示","init":"カレントディレクトリに AGENTS.md テンプレートを生成","feedback":"Codex チームにフィードバックを送信","plan":"プランモードを切り替え","goal":"現在のセッションの目標を設定","agent":"アクティブなエージェントを切り替え(Codex)","subagents":"サブエージェントを管理","fork":"現在のセッションをフォーク","memories":"Codex のメモリを管理","skills":"Codex のスキルを管理","hooks":"Codex のフックを管理","sessions":"会話履歴を閲覧","connect":"言語サーバーに接続","exit":"OpenCode TUI を終了","models":"AI モデルを切り替え","agents":"利用可能なすべてのエージェントを一覧・管理(OpenCode)","themes":"TUI のテーマを変更","editor":"長文メッセージ用のエディタを開く"}},"session":{"confirmKill":"「{name}」のセッションを終了しますか?\\n\\n※全てのメッセージ履歴が削除されます。ログファイルは保持されます。","failedToKill":"セッションの終了に失敗しました","confirmEnd":"{tool} セッションを終了しますか?","endWarning":"セッションを終了すると、チャット履歴がクリアされます。","running":"セッション実行中","starting":"セッション起動中","startingEllipsis":"セッション起動中..."},"status":{"waitingForResponse":"レスポンス待ち","responseCompleted":"レスポンス完了","thinking":"考え中...","thinkingStatus":"思考中","claudeIsThinking":"Claude が考え中です..."},"output":{"latest":"最新の出力","realtimeUpdate":"リアルタイム更新"},"errors":{"failedToUpdateFavorite":"お気に入りの更新に失敗しました","failedToUpdateStatus":"ステータスの更新に失敗しました"},"feedback":{"title":"フィードバック・サポート","bugReport":"バグを報告","featureRequest":"機能を提案","question":"質問する","viewIssues":"Issue一覧を見る"},"fileTree":{"moveTo":"移動先を選択...","moveDialogTitle":"移動先を選択","moveConfirm":"ここに移動","moveSuccess":"移動しました","timeAgo":"{time}前","rootDirectory":"ルート","metadata":{"size":"サイズ","created":"作成","modified":"更新","settingsLabel":"メタデータ表示設定","settingsTitle":"インライン表示","showSize":"ファイルサイズ","showCreated":"作成日時","showModified":"更新日時"},"loading":"ファイルを読み込み中","empty":"ファイルが見つかりません","newFile":"新規ファイル","newDirectory":"新規ディレクトリ","noResultsMatching":"「{query}」に一致するファイルはありません","noResultsContaining":"「{query}」を含むファイルはありません","label":"ファイルツリー","refreshing":"ファイルを更新中","refreshLabel":"ファイルツリーを更新","resetViewLabel":"ファイルツリーの表示をリセット","loadError":"ファイルの読み込みに失敗しました","loadDirectoryError":"ディレクトリの読み込みに失敗しました: {status}","itemCount":"{count} 項目"},"update":{"available":"新しいバージョンが利用可能です","latestVersion":"最新: v{version}","updateCommand":"更新コマンド:","viewRelease":"リリースを表示","dataPreserved":"アップデートによりデータベースのデータは保持されます。","version":"バージョン","installTypeGlobal":"npm(グローバル)","installTypeLocal":"ローカル(git pull)","updateNow":"今すぐアップデート","confirmTitle":"CommandMate をアップデートしますか?","confirmDescription":"CommandMate を v{version} に更新します。サーバを停止し、新しいバージョンをインストールして、再度起動します。数分かかります。","confirmButton":"アップデート","starting":"アップデートを開始しています...","updating":"アップデート中です。サーバは自動的に再起動します。","updatingHint":"数分かかります。この画面を開いたままにしてください。新しいバージョンの準備ができると自動的に再読み込みされます。","noRestartTitle":"更新をインストールしました","noRestartDescription":"このサーバは「commandmate start --daemon」以外の方法で起動されているため、旧バージョンのまま稼働しています。反映するにはサーバを手動で再起動してください。","timeoutTitle":"アップデートに失敗した可能性があります","timeoutDescription":"想定時間内にサーバが復帰しませんでした。状態を確認し、手動でアップデートを完了してください:","errorTitle":"アップデートを開始できませんでした","errorNotGlobal":"CommandMate はグローバルインストールではないため、自己更新できません。","errorInProgress":"アップデートは既に実行中です。","errorGeneric":"アップデートを開始できませんでした。手動でコマンドを実行してください:","logHint":"アップデートログ: {path}"},"terminal":{"historyLabel":"履歴","filesLabel":"ファイル","showHistory":"履歴を表示","hideHistory":"履歴を非表示","showFiles":"ファイルを表示","hideFiles":"ファイルを非表示","equalizeWidths":"均等幅","equalizeWidthsHint":"ターミナル幅を均等にし、履歴幅を初期値に戻す","addSplit":"分割を追加","removeSplit":"分割を削除","selectInstance":"{split} のエージェントインスタンスを選択","moreActions":"その他の操作","searchTerminal":"ターミナル内を検索","endSession":"セッションを終了","endSessionFor":"{name}のセッションを終了"},"todo":{"addPlaceholder":"ToDoを追加…","add":"追加","empty":"ToDoはまだありません。","loading":"読み込み中…","statusTodo":"未着手","statusDoing":"仕掛","statusDone":"完了","cycleStatus":"ステータス: {status}(クリックで変更)","moveUp":"上へ移動","moveDown":"下へ移動","delete":"ToDoを削除","edit":"ToDoを編集","editTitle":"ToDoを編集","contentLabel":"件名","contentPlaceholder":"ToDoの件名","detailLabel":"詳細","detailPlaceholder":"詳細を入力(任意)…","hasDetail":"詳細あり","copyDetail":"詳細をコピー","save":"保存","cancel":"キャンセル","loadError":"ToDoの読み込みに失敗しました","addError":"ToDoの追加に失敗しました","updateError":"ToDoの更新に失敗しました","deleteError":"ToDoの削除に失敗しました","reorderError":"ToDoの並び替えに失敗しました"},"htmlPreview":{"interactiveModeConfirm":"Interactiveモードではスクリプトが実行されます。信頼できないHTMLファイルではSafeモードを使用してください。","title":"HTML プレビュー: {path}","modeSource":"ソース","modePreview":"プレビュー","modeSplit":"分割","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ"},"editor":{"saveFailedCloseConfirm":"保存に失敗しました。このまま閉じますか?","unsavedCloseConfirm":"未保存の変更があります。閉じてもよろしいですか?","loading":"読み込み中...","placeholder":"入力を開始...","placeholderMarkdown":"Markdown の入力を開始...","saveSuccess":"ファイルを保存しました","saveError":"ファイルの保存に失敗しました","loadError":"ファイルの読み込みに失敗しました","sessionExpired":"セッションの有効期限が切れました。再ログインしてください。","autoSaveFailed":"自動保存に失敗しました。手動保存に切り替えます。","unsaved":"未保存","auto":"自動","splitView":"分割表示","editorOnly":"エディタのみ","previewOnly":"プレビューのみ","enterFullscreen":"全画面にする (Ctrl+Shift+F)","exitFullscreen":"全画面を終了 (ESC)"},"actions":{"copyPath":"パスをコピー","copyContent":"内容をコピー","copyFilePath":"ファイルパスをコピー","copyFileContent":"ファイルの内容をコピー","search":"検索","searchInFile":"ファイル内を検索","edit":"編集","editFile":"ファイルを編集","download":"ダウンロード","downloadFile":"ファイルをダウンロード","close":"閉じる","save":"保存","saving":"保存中...","saved":"保存済み","prev":"前へ","next":"次へ","fullscreen":"全画面","exitFullscreen":"全画面を終了","minimize":"最小化","maximize":"最大化","retry":"再試行","refresh":"更新","resetView":"表示をリセット"},"fileSearch":{"placeholder":"検索...","prevMatch":"前の結果","nextMatch":"次の結果","close":"検索を閉じる"},"fileViewer":{"loading":"ファイルを読み込み中...","loadError":"ファイルの読み込みに失敗しました","tabSource":"ソース","tabPreview":"プレビュー","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ","slideTitle":"{name} - スライド {number}","noSlides":"{fileName} にスライドが見つかりません","slides":"スライド","editor":"エディタ"},"fileTabs":{"unsavedChanges":"未保存の変更","closeTab":"{name} を閉じる"},"markdownPreview":{"loadingImage":"[画像を読み込み中...]","editor":"エディタ","preview":"プレビュー","exitFullscreenHint":"ESC キーで全画面を終了","exitFullscreenHintSwipe":"(または下にスワイプ)","largeFileWarning":"大きなファイル: パフォーマンスに影響する場合があります。"},"mermaid":{"rendering":"図を描画中...","loading":"図を読み込み中...","errorTitle":"図のエラー","emptyCode":"図のコードが空です","renderError":"図の描画に失敗しました"},"imageViewer":{"loadError":"画像の読み込みに失敗しました"},"videoViewer":{"loadError":"動画の読み込みに失敗しました","loading":"動画を読み込み中...","unsupported":"お使いのブラウザは video タグに対応していません。"},"logViewer":{"title":"ログファイル","all":"すべて ({count})","toolCount":"{tool} ({count})","empty":"ログファイルが見つかりません","emptyFiltered":"{tool} のログファイルが見つかりません","copyTitle":"サニタイズしたログをクリップボードにコピー","export":"エクスポート","exporting":"エクスポート中...","copied":"ログをクリップボードにコピーしました (サニタイズ済み)","exportError":"ログのエクスポートに失敗しました: {error}","searchPlaceholder":"ログファイル内を検索...","prevMatch":"前の一致 (Shift+Enter)","nextMatch":"次の一致 (Enter)","noMatches":"「{query}」に一致するものはありません"},"pdfPreview":{"title":"PDF プレビュー: {path}","loadError":"PDFプレビューを読み込めませんでした。","openInNewTab":"PDFを新しいタブで開く","download":"ダウンロード","downloadPdf":"PDF をダウンロード"},"diffViewer":{"badge":"DIFF","close":"差分表示を閉じる"},"search":{"searching":"検索中...","placeholder":"ファイルを検索...","label":"ファイルを検索","clear":"検索をクリア","mode":"モード:","modeName":"名前","modeContent":"内容"},"tabs":{"ariaLabel":"モバイルナビゲーション","terminal":"ターミナル","history":"履歴","files":"ファイル","memo":"ツール","info":"情報","newOutput":"新しい出力があります","promptWaiting":"プロンプト待機中","updateAvailable":"更新があります"},"git":{"uncommittedChanges":"未コミットの変更","askAi":"AI に質問","askAiTooltip":"現在の状況を AI チャットに下書きします(自動送信はされません)","advancedOperations":"高度な操作","remote":"リモート","paneSections":"Git ペインのセクション","tabs":{"status":"ステータス","changes":"変更","history":"履歴","advanced":"高度な操作"},"checkout":{"action":"チェックアウト","ariaLabel":"ブランチをチェックアウト","noBranches":"ブランチがありません","checkoutBranch":"{name} をチェックアウト","checkedOutElsewhere":"別のワークツリーでチェックアウト中: {path}","defaultBadge":"デフォルト","confirmTitlePrefix":"","confirmTitleSuffix":" をチェックアウトしますか?","forceLabel":"変更を破棄して強制チェックアウト — 未コミットの変更は失われます","historyLossWarning":"別ブランチへ切り替えると、このワークツリーに紐づくチャット履歴・メモ・スケジュールが次回同期時に失われる可能性があります","runningSessionWarning":"このブランチに切り替えると、稼働中のセッションの作業ファイルが変化します。"},"branches":{"title":"ブランチ","newButton":"+ 新規","refresh":"ブランチを更新","filterLocal":"ローカル","filterRemote":"リモート","filterAll":"すべて","loading":"ブランチを読み込み中...","empty":"ブランチがありません","defaultBadge":"デフォルト","deleteBranch":"{name} を削除","delete":"削除","createTitle":"ブランチを作成","namePlaceholder":"ブランチ名(例: feature/123-foo)","nameLabel":"新しいブランチ名","baseLabel":"ベースブランチ","currentHead":"(現在の HEAD)","create":"作成","deleteTitlePrefix":"","deleteTitleSuffix":" を削除しますか?","forceDeleteLabel":"強制削除(-D)— マージされていないコミットは失われます"},"changes":{"title":"変更","refresh":"変更を更新","loading":"変更を読み込み中...","listHeader":"{title}({count})","empty":"なし","togglePreview":"{path} の差分プレビューを切り替え","showDiff":"{path} の差分を表示","diff":"差分","fileAction":"{path} を{action}","loadingPreview":"差分プレビューを読み込み中...","previewFailed":"プレビューの読み込みに失敗しました","noDiff":"差分がありません","truncated":"… 省略されました — 完全な差分を開く","staged":"ステージ済み","unstaged":"未ステージ","untracked":"未追跡","stage":"ステージ","unstage":"アンステージ","commitMessage":"コミットメッセージ","amend":"直前のコミットを修正","commit":"コミット","committing":"コミット中...","commitAndPush":"コミット + プッシュ","commitAndPushTooltip":"コミットしてからプッシュします。プッシュに失敗してもコミットは保存済みなので、プッシュを再実行してください。"},"history":{"title":"コミット履歴","refresh":"コミット履歴を更新","loading":"コミット履歴を読み込み中...","empty":"コミットがありません","viewDiffFor":"{hash} の差分を表示","viewDiff":"差分を表示","hideDiff":"差分を隠す","loadingChangedFiles":"変更ファイルを読み込み中...","noChangedFiles":"変更ファイルがありません","showCommitDiff":"{path} のコミット差分を表示","changedFiles":"変更ファイル","diffLabel":"差分: {file}","loadingDiff":"差分を読み込み中...","noDiff":"差分がありません","diffInFilePanel":"ファイルパネルに差分を表示中: {file}"},"currentStatus":{"title":"現在の状況","refresh":"Git ステータスを更新","loading":"Git ステータスを読み込み中...","uncommitted":"未コミット","aheadTooltip":"アップストリームより先行しているコミット数","behindTooltip":"アップストリームより遅れているコミット数"},"danger":{"title":"危険な操作","resetOpen":"リセット…","revertOpen":"リバート…","forcePushOpen":"強制プッシュ…","selectCommitHint":"リバート / 指定コミットへのリセットを行うには、コミット履歴でコミットを選択してください。","resetTitle":"リセット","resetTargetHead":"HEAD","resetTargetSelectedPrefix":"選択中のコミット ","resetTargetSelectedHash":"({hash})","resetTargetNoneSelected":"(未選択)","modeSoft":"soft","modeMixed":"mixed","modeHard":"hard","resetHardWarning":"ハードリセットは未コミットの変更を完全に破棄し、HEAD を移動するとコミットも失われる可能性があります。この操作は取り消せません。","runningSessionWarning":"この危険な操作は、稼働中のセッションが編集中の作業ファイルを破壊的に書き換えます。","confirmPlaceholder":"確認のため \\"{branch}\\" と入力してください","reset":"リセット","revertTitle":"リバート","revertBodyPrefix":"コミットをリバート ","revertNoCommit":"コミットしない(ステージのまま)","revert":"リバート","forcePushTitle":"強制プッシュ","protectedBranchWarning":"デフォルトブランチへの force push は禁止されています。","forceWithLease":"--force-with-lease を使用(推奨 — リモートが更新されていた場合は拒否されます)","forcePush":"強制プッシュ"},"network":{"quickActions":"クイック操作","fetch":"フェッチ","pull":"プル","push":"プッシュ","noUpstreamTooltip":"アップストリームがありません — プッシュ時に設定されます","pushing":"プッシュ中","pulling":"プル中","fetching":"フェッチ中","progress":"{operation}… {elapsed}秒","abort":"中止","conflicts":"プルで競合が発生しました: {files}。ターミナルで解決してください。","authFailedGuidance":"ターミナルで一度 push/pull して認証情報を設定してください。","failed":"Git のネットワーク操作に失敗しました"},"stash":{"titlePrefix":"スタッシュ ","count":"({count})","refresh":"スタッシュ一覧を更新","messagePlaceholder":"スタッシュメッセージ(任意)","includeUntracked":"未追跡ファイルを含める","push":"スタッシュ","loading":"スタッシュを読み込み中...","empty":"スタッシュがありません","apply":"適用","pop":"ポップ","drop":"破棄","dropConfirmSuffix":" を完全に削除します。この操作は取り消せません。"},"aiPrompts":{"branchCreate":"{base} から {name} ブランチを作成して checkout してください。","branchCreateBaseHead":"現在の HEAD","branchDelete":"{name} ブランチを削除してください。","branchDeleteForce":"{name} ブランチを削除してください。(マージされていないコミットがあっても -D で強制削除してください)","stashCleanup":"古い stash entry をリストアップし、不要なものを削除する提案をしてください。","stashCleanupCurrent":"現在の stash:","stashConflict":"stash の pop / apply で conflict が発生しました。conflict を解決してから commit してください。","reset":"{target} に対して {mode} reset を行いたいです。安全に実行してください。","resetHard":"{target} に対して hard reset を行いたいです。安全に実行してください。 hard reset は作業内容を失う可能性があります。もし直前の hard reset を取り消したい場合は git reflog から復旧してください。","revert":"コミット {commit} を revert してください。","forcePush":"{branchRef} を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushAhead":"{branchRef}(↑{ahead}) を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushCurrentBranch":"現在のブランチ"}},"activityBar":{"toggleSidebar":"サイドバーを切り替え","label":"アクティビティバー","files":"ファイル","git":"Git","notes":"メモ","schedules":"スケジュール","agent":"エージェント","timer":"タイマー","todo":"ToDo"},"branchMismatch":{"changedFrom":"ブランチが","to":"から","dismiss":"アラートを閉じる"},"contextMenu":{"label":"ファイル操作","uploadFile":"ファイルをアップロード","rename":"名前を変更","move":"移動","delete":"削除"},"navigation":{"toolbarLabel":"TUI ナビゲーション","caption":"ナビ","quitPager":"ページャーを終了"},"newFileDialog":{"title":"新規ファイル","fileNameLabel":"ファイル名","placeholder":"document","create":"作成"},"paneResizer":{"label":"ペインのサイズを変更します。{arrows}キーで調整できます。","arrowsHorizontal":"左右の矢印","arrowsVertical":"上下の矢印"},"desktopLayout":{"activityPane":"アクティビティペイン","terminalPane":"ターミナルペイン"},"worktreeStatus":{"notSet":"未設定","ready":"準備完了","inProgress":"作業中","inReview":"レビュー中","done":"完了"},"card":{"main":"メイン","description":"説明","link":"リンク","openLink":"リンクを新しいタブで開く","updated":"更新 {time}"},"detail":{"worktree":"ワークツリー","repository":"リポジトリ","copyRepositoryPath":"リポジトリのパスをコピー","copyWorktreePath":"ワークツリーのパスをコピー","copyPath":"パスをコピー","copied":"コピーしました!","path":"パス","status":"ステータス","worktreeStatusLabel":"ワークツリーのステータス","description":"説明","addNotesPlaceholder":"このブランチについてのメモを追加...","noDescription":"説明はまだ追加されていません","link":"リンク","lastUpdated":"最終更新","logs":"ログ","hide":"隠す","show":"表示","goBack":"ワークツリー一覧に戻る","home":"ホーム","viewInfo":"ワークツリーの情報を表示","info":"情報","infoModalTitle":"ワークツリー情報","loading":"ワークツリーを読み込み中...","loadingInfo":"ワークツリー情報を読み込み中...","errorLoading":"ワークツリーの読み込みに失敗しました","uploadFile":"ファイルをアップロード","unknownRepository":"不明","loadingEditor":"エディタを読み込み中...","agentInstanceSelection":"エージェントインスタンスの選択","statusPill":"{label}: {status}","subTabMessage":"メッセージ","subTabGit":"Git"},"detailStatus":{"idle":"アイドル - セッションなし","ready":"準備完了 - 入力待ち","running":"実行中 - 処理しています","waiting":"待機中 - ユーザー入力が必要です"}}')}};
|
|
1
|
+
"use strict";exports.id=2445,exports.ids=[2445],exports.modules={52445:a=>{a.exports=JSON.parse('{"agentStatus":{"moreAgents":"他 {count} 件のエージェント","overflowTrigger":"他のエージェント"},"toc":{"title":"目次","show":"目次を表示","hide":"目次を非表示","empty":"見出しなし"},"composer":{"placeholder":"メッセージを入力…","commandsHint":"コマンド","newlineHint":"改行","removeAttachment":"添付を削除","showSlashCommands":"スラッシュコマンドを表示","attachImage":"画像を添付","sendMessage":"メッセージを送信"},"interrupt":{"stopProcessing":"処理を中断"},"history":{"title":"メッセージ履歴","regionLabel":"メッセージ履歴","loading":"メッセージを読み込み中","empty":"メッセージはまだありません","show":"表示件数","displayLimit":"履歴の表示件数","showArchived":"アーカイブを表示","showUserOnly":"ユーザーのメッセージのみ表示","showAllMessages":"すべてのメッセージを表示","openSearch":"検索を開く","closeSearch":"検索を閉じる","copied":"クリップボードにコピーしました","copyFailed":"コピーに失敗しました","search":{"regionLabel":"履歴内テキスト検索","placeholder":"検索...","keywordLabel":"検索キーワード","prev":"前の結果 (prev)","next":"次の結果 (next)","close":"検索を閉じる (close)","countAtMax":"{current}/{max}以上"}},"conversation":{"waitingForResponse":"レスポンス待ち...","you":"あなた","assistant":"アシスタント","sending":"送信中…","failedToSend":"送信に失敗しました","retrySending":"メッセージを再送信","discard":"破棄","discardMessage":"メッセージを破棄","insertToMessage":"メッセージ欄に挿入","copy":"コピー","copyMessage":"メッセージをコピー","collapse":"折りたたむ","expand":"展開","collapseMessage":"メッセージを折りたたむ","expandMessage":"メッセージを展開","systemMessage":"システムメッセージ","systemMessageLabel":"システムメッセージ","openFile":"ファイルを開く: {path}","conversationLabel":"会話: {preview}"},"messages":{"loading":"メッセージを読み込み中...","empty":"メッセージはまだありません","you":"あなた","copy":"コピー","copyMessage":"メッセージをコピー","viewLogFile":"ログファイルを表示 →"},"slashCommands":{"title":"コマンド","searchPlaceholder":"コマンドを検索...","enterCustomCommand":"カスタムコマンドを入力...","selectHint":"選択","closeHint":"閉じる","empty":"利用可能なコマンドがありません","descriptions":{"clear":"会話履歴をクリア","compact":"コンテキストを圧縮してトークン使用量を削減","resume":"前回の会話を再開","rewind":"会話を以前の状態に巻き戻す","config":"設定を開く","model":"AI モデルを切り替え","permissions":"ツールの権限を表示・更新","status":"セッションの状態を確認","context":"コンテキストウィンドウの使用量を表示","cost":"トークンとコストの使用量を表示","review":"コードの変更をレビュー","pr-comments":"PR のコメントを表示","help":"利用可能なすべてのコマンドを表示","doctor":"インストール状態を診断","export":"会話履歴をエクスポート","todos":"TODO リストを表示","focus":"フォーカスモードを切り替え","effort":"モデルの思考量を調整(high/medium/low)","fast":"高速応答モードに切り替え","lazy":"レイジーモードを切り替え","new":"新しい会話を開始","undo":"直前の Codex の操作を取り消す","logout":"Codex からサインアウト","quit":"Codex CLI を終了","approvals":"自動実行の承認レベルを変更","diff":"Git の差分を表示(未追跡ファイルを含む)","mention":"次のやり取りにファイル/フォルダを添付","mcp":"利用可能な MCP ツールを一覧表示","init":"カレントディレクトリに AGENTS.md テンプレートを生成","feedback":"Codex チームにフィードバックを送信","plan":"プランモードを切り替え","goal":"現在のセッションの目標を設定","agent":"アクティブなエージェントを切り替え(Codex)","subagents":"サブエージェントを管理","fork":"現在のセッションをフォーク","memories":"Codex のメモリを管理","skills":"Codex のスキルを管理","hooks":"Codex のフックを管理","sessions":"会話履歴を閲覧","connect":"言語サーバーに接続","exit":"OpenCode TUI を終了","models":"AI モデルを切り替え","agents":"利用可能なすべてのエージェントを一覧・管理(OpenCode)","themes":"TUI のテーマを変更","editor":"長文メッセージ用のエディタを開く"}},"session":{"confirmKill":"「{name}」のセッションを終了しますか?\\n\\n※全てのメッセージ履歴が削除されます。ログファイルは保持されます。","failedToKill":"セッションの終了に失敗しました","confirmEnd":"{tool} セッションを終了しますか?","endWarning":"セッションを終了すると、チャット履歴がクリアされます。","running":"セッション実行中","starting":"セッション起動中","startingEllipsis":"セッション起動中..."},"status":{"waitingForResponse":"レスポンス待ち","responseCompleted":"レスポンス完了","thinking":"考え中...","thinkingStatus":"思考中","claudeIsThinking":"Claude が考え中です..."},"output":{"latest":"最新の出力","realtimeUpdate":"リアルタイム更新"},"errors":{"failedToUpdateFavorite":"お気に入りの更新に失敗しました","failedToUpdateStatus":"ステータスの更新に失敗しました"},"feedback":{"title":"フィードバック・サポート","bugReport":"バグを報告","featureRequest":"機能を提案","question":"質問する","viewIssues":"Issue一覧を見る"},"fileTree":{"moveTo":"移動先を選択...","moveDialogTitle":"移動先を選択","moveConfirm":"ここに移動","moveSuccess":"移動しました","timeAgo":"{time}前","rootDirectory":"ルート","metadata":{"size":"サイズ","created":"作成","modified":"更新","settingsLabel":"メタデータ表示設定","settingsTitle":"インライン表示","showSize":"ファイルサイズ","showCreated":"作成日時","showModified":"更新日時"},"loading":"ファイルを読み込み中","empty":"ファイルが見つかりません","newFile":"新規ファイル","newDirectory":"新規ディレクトリ","noResultsMatching":"「{query}」に一致するファイルはありません","noResultsContaining":"「{query}」を含むファイルはありません","label":"ファイルツリー","refreshing":"ファイルを更新中","refreshLabel":"ファイルツリーを更新","resetViewLabel":"ファイルツリーの表示をリセット","loadError":"ファイルの読み込みに失敗しました","loadDirectoryError":"ディレクトリの読み込みに失敗しました: {status}","itemCount":"{count} 項目"},"update":{"available":"新しいバージョンが利用可能です","latestVersion":"最新: v{version}","updateCommand":"更新コマンド:","viewRelease":"リリースを表示","dataPreserved":"アップデートによりデータベースのデータは保持されます。","version":"バージョン","installTypeGlobal":"npm(グローバル)","installTypeLocal":"ローカル(git pull)","updateNow":"今すぐアップデート","npxRestartNotice":"このサーバは npx で起動しています。アップデートは最新版を取得してサーバを再起動します。ポートなど一部の起動設定は変わることがあります。自動で再接続しない場合は「commandmate status」で稼働先を確認してください。","confirmTitle":"CommandMate をアップデートしますか?","confirmDescription":"CommandMate を v{version} に更新します。サーバを停止し、新しいバージョンをインストールして、再度起動します。数分かかります。","confirmButton":"アップデート","starting":"アップデートを開始しています...","updating":"アップデート中です。サーバは自動的に再起動します。","updatingHint":"数分かかります。この画面を開いたままにしてください。新しいバージョンの準備ができると自動的に再読み込みされます。","noRestartTitle":"更新をインストールしました","noRestartDescription":"このサーバは「commandmate start --daemon」以外の方法で起動されているため、旧バージョンのまま稼働しています。反映するにはサーバを手動で再起動してください。","timeoutTitle":"アップデートに失敗した可能性があります","timeoutDescription":"想定時間内にサーバが復帰しませんでした。状態を確認し、手動でアップデートを完了してください:","errorTitle":"アップデートを開始できませんでした","errorNotGlobal":"CommandMate はグローバルインストールではないため、自己更新できません。","errorInProgress":"アップデートは既に実行中です。","errorGeneric":"アップデートを開始できませんでした。手動でコマンドを実行してください:","logHint":"アップデートログ: {path}"},"terminal":{"historyLabel":"履歴","filesLabel":"ファイル","showHistory":"履歴を表示","hideHistory":"履歴を非表示","showFiles":"ファイルを表示","hideFiles":"ファイルを非表示","equalizeWidths":"均等幅","equalizeWidthsHint":"ターミナル幅を均等にし、履歴幅を初期値に戻す","addSplit":"分割を追加","removeSplit":"分割を削除","selectInstance":"{split} のエージェントインスタンスを選択","moreActions":"その他の操作","searchTerminal":"ターミナル内を検索","endSession":"セッションを終了","endSessionFor":"{name}のセッションを終了"},"todo":{"addPlaceholder":"ToDoを追加…","add":"追加","empty":"ToDoはまだありません。","loading":"読み込み中…","statusTodo":"未着手","statusDoing":"仕掛","statusDone":"完了","cycleStatus":"ステータス: {status}(クリックで変更)","moveUp":"上へ移動","moveDown":"下へ移動","delete":"ToDoを削除","edit":"ToDoを編集","editTitle":"ToDoを編集","contentLabel":"件名","contentPlaceholder":"ToDoの件名","detailLabel":"詳細","detailPlaceholder":"詳細を入力(任意)…","hasDetail":"詳細あり","copyDetail":"詳細をコピー","save":"保存","cancel":"キャンセル","loadError":"ToDoの読み込みに失敗しました","addError":"ToDoの追加に失敗しました","updateError":"ToDoの更新に失敗しました","deleteError":"ToDoの削除に失敗しました","reorderError":"ToDoの並び替えに失敗しました"},"htmlPreview":{"interactiveModeConfirm":"Interactiveモードではスクリプトが実行されます。信頼できないHTMLファイルではSafeモードを使用してください。","title":"HTML プレビュー: {path}","modeSource":"ソース","modePreview":"プレビュー","modeSplit":"分割","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ"},"editor":{"saveFailedCloseConfirm":"保存に失敗しました。このまま閉じますか?","unsavedCloseConfirm":"未保存の変更があります。閉じてもよろしいですか?","loading":"読み込み中...","placeholder":"入力を開始...","placeholderMarkdown":"Markdown の入力を開始...","saveSuccess":"ファイルを保存しました","saveError":"ファイルの保存に失敗しました","loadError":"ファイルの読み込みに失敗しました","sessionExpired":"セッションの有効期限が切れました。再ログインしてください。","autoSaveFailed":"自動保存に失敗しました。手動保存に切り替えます。","unsaved":"未保存","auto":"自動","splitView":"分割表示","editorOnly":"エディタのみ","previewOnly":"プレビューのみ","enterFullscreen":"全画面にする (Ctrl+Shift+F)","exitFullscreen":"全画面を終了 (ESC)"},"actions":{"copyPath":"パスをコピー","copyContent":"内容をコピー","copyFilePath":"ファイルパスをコピー","copyFileContent":"ファイルの内容をコピー","search":"検索","searchInFile":"ファイル内を検索","edit":"編集","editFile":"ファイルを編集","download":"ダウンロード","downloadFile":"ファイルをダウンロード","close":"閉じる","save":"保存","saving":"保存中...","saved":"保存済み","prev":"前へ","next":"次へ","fullscreen":"全画面","exitFullscreen":"全画面を終了","minimize":"最小化","maximize":"最大化","retry":"再試行","refresh":"更新","resetView":"表示をリセット"},"fileSearch":{"placeholder":"検索...","prevMatch":"前の結果","nextMatch":"次の結果","close":"検索を閉じる"},"fileViewer":{"loading":"ファイルを読み込み中...","loadError":"ファイルの読み込みに失敗しました","tabSource":"ソース","tabPreview":"プレビュー","sandboxSafe":"セーフ","sandboxInteractive":"インタラクティブ","slideTitle":"{name} - スライド {number}","noSlides":"{fileName} にスライドが見つかりません","slides":"スライド","editor":"エディタ"},"fileTabs":{"unsavedChanges":"未保存の変更","closeTab":"{name} を閉じる"},"markdownPreview":{"loadingImage":"[画像を読み込み中...]","editor":"エディタ","preview":"プレビュー","exitFullscreenHint":"ESC キーで全画面を終了","exitFullscreenHintSwipe":"(または下にスワイプ)","largeFileWarning":"大きなファイル: パフォーマンスに影響する場合があります。"},"mermaid":{"rendering":"図を描画中...","loading":"図を読み込み中...","errorTitle":"図のエラー","emptyCode":"図のコードが空です","renderError":"図の描画に失敗しました"},"imageViewer":{"loadError":"画像の読み込みに失敗しました"},"videoViewer":{"loadError":"動画の読み込みに失敗しました","loading":"動画を読み込み中...","unsupported":"お使いのブラウザは video タグに対応していません。"},"logViewer":{"title":"ログファイル","all":"すべて ({count})","toolCount":"{tool} ({count})","empty":"ログファイルが見つかりません","emptyFiltered":"{tool} のログファイルが見つかりません","copyTitle":"サニタイズしたログをクリップボードにコピー","export":"エクスポート","exporting":"エクスポート中...","copied":"ログをクリップボードにコピーしました (サニタイズ済み)","exportError":"ログのエクスポートに失敗しました: {error}","searchPlaceholder":"ログファイル内を検索...","prevMatch":"前の一致 (Shift+Enter)","nextMatch":"次の一致 (Enter)","noMatches":"「{query}」に一致するものはありません"},"pdfPreview":{"title":"PDF プレビュー: {path}","loadError":"PDFプレビューを読み込めませんでした。","openInNewTab":"PDFを新しいタブで開く","download":"ダウンロード","downloadPdf":"PDF をダウンロード"},"diffViewer":{"badge":"DIFF","close":"差分表示を閉じる"},"search":{"searching":"検索中...","placeholder":"ファイルを検索...","label":"ファイルを検索","clear":"検索をクリア","mode":"モード:","modeName":"名前","modeContent":"内容"},"tabs":{"ariaLabel":"モバイルナビゲーション","terminal":"ターミナル","history":"履歴","files":"ファイル","memo":"ツール","info":"情報","newOutput":"新しい出力があります","promptWaiting":"プロンプト待機中","updateAvailable":"更新があります"},"git":{"uncommittedChanges":"未コミットの変更","askAi":"AI に質問","askAiTooltip":"現在の状況を AI チャットに下書きします(自動送信はされません)","advancedOperations":"高度な操作","remote":"リモート","paneSections":"Git ペインのセクション","tabs":{"status":"ステータス","changes":"変更","history":"履歴","advanced":"高度な操作"},"checkout":{"action":"チェックアウト","ariaLabel":"ブランチをチェックアウト","noBranches":"ブランチがありません","checkoutBranch":"{name} をチェックアウト","checkedOutElsewhere":"別のワークツリーでチェックアウト中: {path}","defaultBadge":"デフォルト","confirmTitlePrefix":"","confirmTitleSuffix":" をチェックアウトしますか?","forceLabel":"変更を破棄して強制チェックアウト — 未コミットの変更は失われます","historyLossWarning":"別ブランチへ切り替えると、このワークツリーに紐づくチャット履歴・メモ・スケジュールが次回同期時に失われる可能性があります","runningSessionWarning":"このブランチに切り替えると、稼働中のセッションの作業ファイルが変化します。"},"branches":{"title":"ブランチ","newButton":"+ 新規","refresh":"ブランチを更新","filterLocal":"ローカル","filterRemote":"リモート","filterAll":"すべて","loading":"ブランチを読み込み中...","empty":"ブランチがありません","defaultBadge":"デフォルト","deleteBranch":"{name} を削除","delete":"削除","createTitle":"ブランチを作成","namePlaceholder":"ブランチ名(例: feature/123-foo)","nameLabel":"新しいブランチ名","baseLabel":"ベースブランチ","currentHead":"(現在の HEAD)","create":"作成","deleteTitlePrefix":"","deleteTitleSuffix":" を削除しますか?","forceDeleteLabel":"強制削除(-D)— マージされていないコミットは失われます"},"changes":{"title":"変更","refresh":"変更を更新","loading":"変更を読み込み中...","listHeader":"{title}({count})","empty":"なし","togglePreview":"{path} の差分プレビューを切り替え","showDiff":"{path} の差分を表示","diff":"差分","fileAction":"{path} を{action}","loadingPreview":"差分プレビューを読み込み中...","previewFailed":"プレビューの読み込みに失敗しました","noDiff":"差分がありません","truncated":"… 省略されました — 完全な差分を開く","staged":"ステージ済み","unstaged":"未ステージ","untracked":"未追跡","stage":"ステージ","unstage":"アンステージ","commitMessage":"コミットメッセージ","amend":"直前のコミットを修正","commit":"コミット","committing":"コミット中...","commitAndPush":"コミット + プッシュ","commitAndPushTooltip":"コミットしてからプッシュします。プッシュに失敗してもコミットは保存済みなので、プッシュを再実行してください。"},"history":{"title":"コミット履歴","refresh":"コミット履歴を更新","loading":"コミット履歴を読み込み中...","empty":"コミットがありません","viewDiffFor":"{hash} の差分を表示","viewDiff":"差分を表示","hideDiff":"差分を隠す","loadingChangedFiles":"変更ファイルを読み込み中...","noChangedFiles":"変更ファイルがありません","showCommitDiff":"{path} のコミット差分を表示","changedFiles":"変更ファイル","diffLabel":"差分: {file}","loadingDiff":"差分を読み込み中...","noDiff":"差分がありません","diffInFilePanel":"ファイルパネルに差分を表示中: {file}"},"currentStatus":{"title":"現在の状況","refresh":"Git ステータスを更新","loading":"Git ステータスを読み込み中...","uncommitted":"未コミット","aheadTooltip":"アップストリームより先行しているコミット数","behindTooltip":"アップストリームより遅れているコミット数"},"danger":{"title":"危険な操作","resetOpen":"リセット…","revertOpen":"リバート…","forcePushOpen":"強制プッシュ…","selectCommitHint":"リバート / 指定コミットへのリセットを行うには、コミット履歴でコミットを選択してください。","resetTitle":"リセット","resetTargetHead":"HEAD","resetTargetSelectedPrefix":"選択中のコミット ","resetTargetSelectedHash":"({hash})","resetTargetNoneSelected":"(未選択)","modeSoft":"soft","modeMixed":"mixed","modeHard":"hard","resetHardWarning":"ハードリセットは未コミットの変更を完全に破棄し、HEAD を移動するとコミットも失われる可能性があります。この操作は取り消せません。","runningSessionWarning":"この危険な操作は、稼働中のセッションが編集中の作業ファイルを破壊的に書き換えます。","confirmPlaceholder":"確認のため \\"{branch}\\" と入力してください","reset":"リセット","revertTitle":"リバート","revertBodyPrefix":"コミットをリバート ","revertNoCommit":"コミットしない(ステージのまま)","revert":"リバート","forcePushTitle":"強制プッシュ","protectedBranchWarning":"デフォルトブランチへの force push は禁止されています。","forceWithLease":"--force-with-lease を使用(推奨 — リモートが更新されていた場合は拒否されます)","forcePush":"強制プッシュ"},"network":{"quickActions":"クイック操作","fetch":"フェッチ","pull":"プル","push":"プッシュ","noUpstreamTooltip":"アップストリームがありません — プッシュ時に設定されます","pushing":"プッシュ中","pulling":"プル中","fetching":"フェッチ中","progress":"{operation}… {elapsed}秒","abort":"中止","conflicts":"プルで競合が発生しました: {files}。ターミナルで解決してください。","authFailedGuidance":"ターミナルで一度 push/pull して認証情報を設定してください。","failed":"Git のネットワーク操作に失敗しました"},"stash":{"titlePrefix":"スタッシュ ","count":"({count})","refresh":"スタッシュ一覧を更新","messagePlaceholder":"スタッシュメッセージ(任意)","includeUntracked":"未追跡ファイルを含める","push":"スタッシュ","loading":"スタッシュを読み込み中...","empty":"スタッシュがありません","apply":"適用","pop":"ポップ","drop":"破棄","dropConfirmSuffix":" を完全に削除します。この操作は取り消せません。"},"aiPrompts":{"branchCreate":"{base} から {name} ブランチを作成して checkout してください。","branchCreateBaseHead":"現在の HEAD","branchDelete":"{name} ブランチを削除してください。","branchDeleteForce":"{name} ブランチを削除してください。(マージされていないコミットがあっても -D で強制削除してください)","stashCleanup":"古い stash entry をリストアップし、不要なものを削除する提案をしてください。","stashCleanupCurrent":"現在の stash:","stashConflict":"stash の pop / apply で conflict が発生しました。conflict を解決してから commit してください。","reset":"{target} に対して {mode} reset を行いたいです。安全に実行してください。","resetHard":"{target} に対して hard reset を行いたいです。安全に実行してください。 hard reset は作業内容を失う可能性があります。もし直前の hard reset を取り消したい場合は git reflog から復旧してください。","revert":"コミット {commit} を revert してください。","forcePush":"{branchRef} を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushAhead":"{branchRef}(↑{ahead}) を force-with-lease で push したいです。事前に upstream({upstream})との差分を確認し、安全な場合のみ push してください。","forcePushCurrentBranch":"現在のブランチ"}},"activityBar":{"toggleSidebar":"サイドバーを切り替え","label":"アクティビティバー","files":"ファイル","git":"Git","notes":"メモ","schedules":"スケジュール","agent":"エージェント","timer":"タイマー","todo":"ToDo"},"branchMismatch":{"changedFrom":"ブランチが","to":"から","dismiss":"アラートを閉じる"},"contextMenu":{"label":"ファイル操作","uploadFile":"ファイルをアップロード","rename":"名前を変更","move":"移動","delete":"削除"},"navigation":{"toolbarLabel":"TUI ナビゲーション","caption":"ナビ","quitPager":"ページャーを終了"},"newFileDialog":{"title":"新規ファイル","fileNameLabel":"ファイル名","placeholder":"document","create":"作成"},"paneResizer":{"label":"ペインのサイズを変更します。{arrows}キーで調整できます。","arrowsHorizontal":"左右の矢印","arrowsVertical":"上下の矢印"},"desktopLayout":{"activityPane":"アクティビティペイン","terminalPane":"ターミナルペイン"},"worktreeStatus":{"notSet":"未設定","ready":"準備完了","inProgress":"作業中","inReview":"レビュー中","done":"完了"},"card":{"main":"メイン","description":"説明","link":"リンク","openLink":"リンクを新しいタブで開く","updated":"更新 {time}"},"detail":{"worktree":"ワークツリー","repository":"リポジトリ","copyRepositoryPath":"リポジトリのパスをコピー","copyWorktreePath":"ワークツリーのパスをコピー","copyPath":"パスをコピー","copied":"コピーしました!","path":"パス","status":"ステータス","worktreeStatusLabel":"ワークツリーのステータス","description":"説明","addNotesPlaceholder":"このブランチについてのメモを追加...","noDescription":"説明はまだ追加されていません","link":"リンク","lastUpdated":"最終更新","logs":"ログ","hide":"隠す","show":"表示","goBack":"ワークツリー一覧に戻る","home":"ホーム","viewInfo":"ワークツリーの情報を表示","info":"情報","infoModalTitle":"ワークツリー情報","loading":"ワークツリーを読み込み中...","loadingInfo":"ワークツリー情報を読み込み中...","errorLoading":"ワークツリーの読み込みに失敗しました","uploadFile":"ファイルをアップロード","unknownRepository":"不明","loadingEditor":"エディタを読み込み中...","agentInstanceSelection":"エージェントインスタンスの選択","statusPill":"{label}: {status}","subTabMessage":"メッセージ","subTabGit":"Git"},"detailStatus":{"idle":"アイドル - セッションなし","ready":"準備完了 - 入力待ち","running":"実行中 - 処理しています","waiting":"待機中 - ユーザー入力が必要です"}}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3270,exports.ids=[3270],exports.modules={3270:(a,b,c)=>{c.d(b,{VQ:()=>q});var d=c(79646),e=c(29021),f=c(33873),g=c.n(f);class h{constructor(){}static getInstance(){return h.instance||(h.instance=new h),h.instance}normalize(a){let b=a.match(/^ssh:\/\/git@([^:\/]+)(:\d+)?\/(.+?)(\.git)?$/);if(b)return`https://${b[1]}/${b[3]}`.toLowerCase().replace(/\/$/,"");let c=a.match(/^git@([^:]+):(.+?)(\.git)?$/);return c?`https://${c[1]}/${c[2]}`.toLowerCase().replace(/\/$/,""):a.replace(/\.git\/?$/,"").replace(/\/$/,"").toLowerCase()}isSameRepository(a,b){return this.normalize(a)===this.normalize(b)}extractRepoName(a){let b=a.match(/^ssh:\/\/git@[^\/]+\/(.+?)(\.git)?$/);if(b){let a=b[1].split("/");return a[a.length-1]}let c=a.match(/:(.+?)(\.git)?$/);if(c&&a.startsWith("git@")){let a=c[1].split("/");return a[a.length-1]}let d=a.match(/\/([^\/]+?)(\.git)?$/);return d?d[1]:""}getUrlType(a){return a.startsWith("https://")?"https":a.startsWith("git@")||a.startsWith("ssh://")?"ssh":null}validate(a){if(!a||"string"!=typeof a||""===a.trim())return{valid:!1,error:"EMPTY_URL"};let b=a.trim();return b.startsWith("https://")?/^https:\/\/[^\/]+\/[^\/]+\/[^\/]+(\.git)?$/.test(b)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:b.startsWith("git@")?/^git@[^:]+:.+\/.+(\.git)?$/.test(b)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:b.startsWith("ssh://")?/^ssh:\/\/git@[^\/]+(:\d+)?\/[^\/]+\/.+(\.git)?$/.test(b)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:{valid:!1,error:"INVALID_URL_FORMAT"}}}var i=c(66007),j=c(10406),k=c(82325),l=c(61068);let m=(0,c(72626).h)("clone-manager");class n extends Error{constructor(a){super(a.message),this.name="CloneManagerError",this.category=a.category,this.code=a.code,this.recoverable=a.recoverable,this.suggestedAction=a.suggestedAction}}let o={EMPTY_URL:{category:"validation",code:"EMPTY_URL",message:"Clone URL is required",recoverable:!0,suggestedAction:"Please enter a valid git clone URL"},INVALID_URL_FORMAT:{category:"validation",code:"INVALID_URL_FORMAT",message:"Invalid URL format. Please use HTTPS or SSH URL.",recoverable:!0,suggestedAction:"Enter a valid URL like https://github.com/owner/repo or git@github.com:owner/repo"},DUPLICATE_CLONE_URL:{category:"validation",code:"DUPLICATE_CLONE_URL",message:"This repository is already registered",recoverable:!1,suggestedAction:"Use the existing repository instead"},CLONE_IN_PROGRESS:{category:"validation",code:"CLONE_IN_PROGRESS",message:"A clone operation is already in progress for this URL",recoverable:!1,suggestedAction:"Wait for the current clone to complete"},DIRECTORY_EXISTS:{category:"filesystem",code:"DIRECTORY_EXISTS",message:"Target directory already exists",recoverable:!0,suggestedAction:"Choose a different directory or remove the existing one"},INVALID_TARGET_PATH:{category:"validation",code:"INVALID_TARGET_PATH",message:"Target path is invalid or outside allowed directory",recoverable:!0,suggestedAction:"Use a path within the configured base directory"},AUTH_FAILED:{category:"auth",code:"AUTH_FAILED",message:"Authentication failed",recoverable:!0,suggestedAction:"Check your credentials or SSH keys"},NETWORK_ERROR:{category:"network",code:"NETWORK_ERROR",message:"Network error occurred",recoverable:!0,suggestedAction:"Check your internet connection and try again"},GIT_ERROR:{category:"git",code:"GIT_ERROR",message:"Git command failed",recoverable:!1,suggestedAction:"Check the error message for details"},CLONE_TIMEOUT:{category:"network",code:"CLONE_TIMEOUT",message:"Clone operation timed out",recoverable:!0,suggestedAction:"Try again or clone a smaller repository"}},p=!1;class q{constructor(a,b={}){this.db=a,this.urlNormalizer=h.getInstance(),this.config={basePath:b.basePath||this.resolveDefaultBasePath(),timeout:b.timeout||6e5},this.activeProcesses=new Map}resolveDefaultBasePath(){let a=process.env.WORKTREE_BASE_PATH;return a?(p||(m.warn("config:deprecated",{key:"WORKTREE_BASE_PATH",replacement:"CM_ROOT_DIR"}),p=!0),g().resolve(a)):process.cwd()}validateCloneRequest(a){let b=this.urlNormalizer.validate(a);return b.valid?{valid:!0,normalizedUrl:this.urlNormalizer.normalize(a),repoName:this.urlNormalizer.extractRepoName(a)}:{valid:!1,error:o[b.error||"INVALID_URL_FORMAT"]}}checkDuplicateRepository(a){return(0,j.Uj)(this.db,a)}checkActiveCloneJob(a){return(0,j.fD)(this.db,a)}createCloneJob(a){return(0,j.tw)(this.db,a)}getTargetPath(a){return g().join(this.config.basePath,a)}async startCloneJob(a,b){let c,d=this.validateCloneRequest(a);if(!d.valid)return{success:!1,error:d.error};let f=d.normalizedUrl,g=d.repoName,h=this.checkDuplicateRepository(f);if(h)return{success:!1,error:{...o.DUPLICATE_CLONE_URL,message:`This repository is already registered as "${h.name}"`}};let j=this.checkActiveCloneJob(f);if(j)return{success:!1,jobId:j.id,error:o.CLONE_IN_PROGRESS};if(b){let a=function(a,b){try{return(0,i.b$)(a,b)}catch{return m.warn("invalid-custom-target"),null}}(b,this.config.basePath);if(!a)return{success:!1,error:o.INVALID_TARGET_PATH};c=a}else c=this.getTargetPath(g);if((0,e.existsSync)(c))return{success:!1,error:o.DIRECTORY_EXISTS};let k=this.createCloneJob({cloneUrl:a,normalizedCloneUrl:f,targetPath:c});return this.executeClone(k.id,a,c).catch(a=>{m.error("clone:job-failed",{jobId:k.id,error:a instanceof Error?a.message:String(a)})}),{success:!0,jobId:k.id}}async executeClone(a,b,c){(0,j.k5)(this.db,a,{status:"running",startedAt:new Date});let f=g().dirname(c);return(0,e.existsSync)(f)||(0,e.mkdirSync)(f,{recursive:!0}),new Promise((e,g)=>{let h=(0,d.spawn)("git",["clone","--progress",b,c],{stdio:["ignore","pipe","pipe"],cwd:f});this.activeProcesses.set(a,h),h.pid&&(0,j.k5)(this.db,a,{pid:h.pid});let i="";h.stderr?.on("data",b=>{i+=b.toString();let c=this.parseGitProgress(b.toString());null!==c&&(0,j.k5)(this.db,a,{progress:c})});let k=setTimeout(()=>{h.kill("SIGTERM"),(0,j.k5)(this.db,a,{status:"failed",errorCategory:"network",errorCode:"CLONE_TIMEOUT",errorMessage:"Clone operation timed out",completedAt:new Date}),this.activeProcesses.delete(a),g(new n(o.CLONE_TIMEOUT))},this.config.timeout);h.on("close",async d=>{if(clearTimeout(k),this.activeProcesses.delete(a),0===d)await this.onCloneSuccess(a,b,c),e();else{let b=this.parseGitError(i,d);(0,j.k5)(this.db,a,{status:"failed",errorCategory:b.category,errorCode:b.code,errorMessage:b.message,completedAt:new Date}),g(new n(b))}}),h.on("error",b=>{clearTimeout(k),this.activeProcesses.delete(a);let c={category:"system",code:"SPAWN_ERROR",message:`Failed to spawn git process: ${b.message}`,recoverable:!1,suggestedAction:"Ensure git is installed and available in PATH"};(0,j.k5)(this.db,a,{status:"failed",errorCategory:c.category,errorCode:c.code,errorMessage:c.message,completedAt:new Date}),g(new n(c))})})}async onCloneSuccess(a,b,c){let d=(0,j.bM)(this.db,a);if(!d)return;let e=this.urlNormalizer.getUrlType(b),f=(0,j.vB)(this.db,{name:g().basename(c),path:c,cloneUrl:b,normalizedCloneUrl:d.normalizedCloneUrl,cloneSource:e||"https"});try{let a=await (0,k.YM)(c);if(a.length>0){let{syncResult:b,cleanupWarnings:c}=await (0,l.l7)(this.db,a);m.info("clone:worktrees-registered",{count:a.length,upserted:b.upsertedCount}),c.length>0&&m.warn("clone:cleanup-warnings",{cleanupWarnings:c})}}catch(a){m.error("clone:worktree-scan-failed",{targetPath:c,error:a instanceof Error?a.message:String(a)})}(0,j.k5)(this.db,a,{status:"completed",progress:100,repositoryId:f.id,completedAt:new Date})}parseGitProgress(a){let b=a.match(/(?:Receiving objects|Resolving deltas|Cloning into[^:]*?):\s*(\d+)%/);if(b){let a=parseInt(b[1],10);return isNaN(a)?null:a}return null}parseGitError(a,b){let c=a.toLowerCase(),d=a.substring(0,200);return["authentication failed","permission denied","could not read from remote repository"].some(a=>c.includes(a))?{...o.AUTH_FAILED,message:`Authentication failed: ${d}`}:["could not resolve host","connection refused","network is unreachable"].some(a=>c.includes(a))?{...o.NETWORK_ERROR,message:`Network error: ${d}`}:{...o.GIT_ERROR,message:`Git clone failed (exit code ${b}): ${d}`}}getCloneJobStatus(a){let b=(0,j.bM)(this.db,a);if(!b)return null;let c={jobId:b.id,status:b.status,progress:b.progress,repositoryId:b.repositoryId};return"failed"===b.status&&b.errorCode&&(c.error={category:b.errorCategory||"system",code:b.errorCode,message:b.errorMessage||"Unknown error"}),c}cancelCloneJob(a){let b=this.activeProcesses.get(a);if(b)return b.kill("SIGTERM"),this.activeProcesses.delete(a),(0,j.k5)(this.db,a,{status:"cancelled",completedAt:new Date}),!0;let c=(0,j.bM)(this.db,a);return!!c&&"pending"===c.status&&((0,j.k5)(this.db,a,{status:"cancelled",completedAt:new Date}),!0)}}}};
|
|
1
|
+
"use strict";exports.id=3270,exports.ids=[3270],exports.modules={3270:(a,b,c)=>{c.d(b,{VQ:()=>q});var d=c(79646),e=c(29021),f=c(33873),g=c.n(f);class h{constructor(){}static getInstance(){return h.instance||(h.instance=new h),h.instance}normalize(a){let b=a.match(/^ssh:\/\/git@([^:\/]+)(:\d+)?\/(.+?)(\.git)?$/);if(b)return`https://${b[1]}/${b[3]}`.toLowerCase().replace(/\/$/,"");let c=a.match(/^git@([^:]+):(.+?)(\.git)?$/);return c?`https://${c[1]}/${c[2]}`.toLowerCase().replace(/\/$/,""):a.replace(/\.git\/?$/,"").replace(/\/$/,"").toLowerCase()}isSameRepository(a,b){return this.normalize(a)===this.normalize(b)}extractRepoName(a){let b=a.match(/^ssh:\/\/git@[^\/]+\/(.+?)(\.git)?$/);if(b){let a=b[1].split("/");return a[a.length-1]}let c=a.match(/:(.+?)(\.git)?$/);if(c&&a.startsWith("git@")){let a=c[1].split("/");return a[a.length-1]}let d=a.match(/\/([^\/]+?)(\.git)?$/);return d?d[1]:""}getUrlType(a){return a.startsWith("https://")?"https":a.startsWith("git@")||a.startsWith("ssh://")?"ssh":null}validate(a){if(!a||"string"!=typeof a||""===a.trim())return{valid:!1,error:"EMPTY_URL"};let b=a.trim();return b.startsWith("https://")?/^https:\/\/[^\/]+\/[^\/]+\/[^\/]+(\.git)?$/.test(b)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:b.startsWith("git@")?/^git@[^:]+:.+\/.+(\.git)?$/.test(b)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:b.startsWith("ssh://")?/^ssh:\/\/git@[^\/]+(:\d+)?\/[^\/]+\/.+(\.git)?$/.test(b)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:{valid:!1,error:"INVALID_URL_FORMAT"}}}var i=c(66007),j=c(10406),k=c(82325),l=c(61068);let m=(0,c(72626).h)("clone-manager");class n extends Error{constructor(a){super(a.message),this.name="CloneManagerError",this.category=a.category,this.code=a.code,this.recoverable=a.recoverable,this.suggestedAction=a.suggestedAction}}let o={EMPTY_URL:{category:"validation",code:"EMPTY_URL",message:"Clone URL is required",recoverable:!0,suggestedAction:"Please enter a valid git clone URL"},INVALID_URL_FORMAT:{category:"validation",code:"INVALID_URL_FORMAT",message:"Invalid URL format. Please use HTTPS or SSH URL.",recoverable:!0,suggestedAction:"Enter a valid URL like https://github.com/owner/repo or git@github.com:owner/repo"},DUPLICATE_CLONE_URL:{category:"validation",code:"DUPLICATE_CLONE_URL",message:"This repository is already registered",recoverable:!1,suggestedAction:"Use the existing repository instead"},DUPLICATE_REPOSITORY_PATH:{category:"validation",code:"DUPLICATE_REPOSITORY_PATH",message:"Another repository is already registered at the target location",recoverable:!0,suggestedAction:"Choose a different directory, or remove the existing repository registration"},CLONE_IN_PROGRESS:{category:"validation",code:"CLONE_IN_PROGRESS",message:"A clone operation is already in progress for this URL",recoverable:!1,suggestedAction:"Wait for the current clone to complete"},DIRECTORY_EXISTS:{category:"filesystem",code:"DIRECTORY_EXISTS",message:"Target directory already exists",recoverable:!0,suggestedAction:"Choose a different directory or remove the existing one"},INVALID_TARGET_PATH:{category:"validation",code:"INVALID_TARGET_PATH",message:"Target path is invalid or outside allowed directory",recoverable:!0,suggestedAction:"Use a path within the configured base directory"},AUTH_FAILED:{category:"auth",code:"AUTH_FAILED",message:"Authentication failed",recoverable:!0,suggestedAction:"Check your credentials or SSH keys"},NETWORK_ERROR:{category:"network",code:"NETWORK_ERROR",message:"Network error occurred",recoverable:!0,suggestedAction:"Check your internet connection and try again"},GIT_ERROR:{category:"git",code:"GIT_ERROR",message:"Git command failed",recoverable:!1,suggestedAction:"Check the error message for details"},CLONE_TIMEOUT:{category:"network",code:"CLONE_TIMEOUT",message:"Clone operation timed out",recoverable:!0,suggestedAction:"Try again or clone a smaller repository"},CLONE_SETUP_FAILED:{category:"filesystem",code:"CLONE_SETUP_FAILED",message:"Failed to prepare the clone target directory",recoverable:!0,suggestedAction:"Check the permissions and free space of the target directory, then try again"},CLONE_REGISTRATION_FAILED:{category:"system",code:"CLONE_REGISTRATION_FAILED",message:"The repository was cloned but could not be registered",recoverable:!0,suggestedAction:"Remove the cloned directory and try again"}},p=!1;class q{constructor(a,b={}){this.db=a,this.urlNormalizer=h.getInstance(),this.config={basePath:b.basePath||this.resolveDefaultBasePath(),timeout:b.timeout||6e5},this.activeProcesses=new Map}resolveDefaultBasePath(){let a=process.env.WORKTREE_BASE_PATH;return a?(p||(m.warn("config:deprecated",{key:"WORKTREE_BASE_PATH",replacement:"CM_ROOT_DIR"}),p=!0),g().resolve(a)):process.cwd()}validateCloneRequest(a){let b=this.urlNormalizer.validate(a);return b.valid?{valid:!0,normalizedUrl:this.urlNormalizer.normalize(a),repoName:this.urlNormalizer.extractRepoName(a)}:{valid:!1,error:o[b.error||"INVALID_URL_FORMAT"]}}checkDuplicateRepository(a){return(0,j.Uj)(this.db,a)}checkRepositoryAtPath(a){return(0,j.Dp)(this.db,a)}removeIfGhostRepository(a){return!((0,e.existsSync)(a.path)||(0,j.kp)(this.db,a.path)>0)&&((0,j.oG)(this.db,a.id),m.info("clone:ghost-repository-removed",{repositoryId:a.id,name:a.name}),!0)}checkActiveCloneJob(a){return(0,j.fD)(this.db,a)}createCloneJob(a){return(0,j.tw)(this.db,a)}getTargetPath(a){return g().join(this.config.basePath,a)}async startCloneJob(a,b){let c,d=this.validateCloneRequest(a);if(!d.valid)return{success:!1,error:d.error};let f=d.normalizedUrl,g=d.repoName,h=this.checkDuplicateRepository(f);if(h&&!this.removeIfGhostRepository(h))return{success:!1,error:{...o.DUPLICATE_CLONE_URL,message:`This repository is already registered as "${h.name}"`}};let j=this.checkActiveCloneJob(f);if(j)return{success:!1,jobId:j.id,error:o.CLONE_IN_PROGRESS};if(b){let a=function(a,b){try{return(0,i.b$)(a,b)}catch{return m.warn("invalid-custom-target"),null}}(b,this.config.basePath);if(!a)return{success:!1,error:o.INVALID_TARGET_PATH};c=a}else c=this.getTargetPath(g);if((0,e.existsSync)(c))return{success:!1,error:o.DIRECTORY_EXISTS};let k=this.checkRepositoryAtPath(c);if(k&&!this.removeIfGhostRepository(k))return{success:!1,error:{...o.DUPLICATE_REPOSITORY_PATH,message:`Another repository is already registered at the target location as "${k.name}"`}};let l=this.createCloneJob({cloneUrl:a,normalizedCloneUrl:f,targetPath:c});return this.executeClone(l.id,a,c).catch(a=>{m.error("clone:job-failed",{jobId:l.id,error:a instanceof Error?a.message:String(a)})}),{success:!0,jobId:l.id}}markJobFailed(a,b){try{(0,j.k5)(this.db,a,{status:"failed",errorCategory:b.category,errorCode:b.code,errorMessage:b.message,completedAt:new Date})}catch(c){m.error("clone:job-status-update-failed",{jobId:a,errorCode:b.code,dbError:c instanceof Error?c.message:String(c)})}}async executeClone(a,b,c){let f;try{(0,j.k5)(this.db,a,{status:"running",startedAt:new Date}),f=g().dirname(c),(0,e.existsSync)(f)||(0,e.mkdirSync)(f,{recursive:!0})}catch(b){throw m.error("clone:setup-failed",{jobId:a,error:b instanceof Error?b.message:String(b)}),this.markJobFailed(a,o.CLONE_SETUP_FAILED),new n(o.CLONE_SETUP_FAILED)}return new Promise((e,g)=>{let h=(0,d.spawn)("git",["clone","--progress",b,c],{stdio:["ignore","pipe","pipe"],cwd:f});this.activeProcesses.set(a,h),h.pid&&(0,j.k5)(this.db,a,{pid:h.pid});let i="";h.stderr?.on("data",b=>{i+=b.toString();let c=this.parseGitProgress(b.toString());null!==c&&(0,j.k5)(this.db,a,{progress:c})});let k=setTimeout(()=>{h.kill("SIGTERM"),(0,j.k5)(this.db,a,{status:"failed",errorCategory:"network",errorCode:"CLONE_TIMEOUT",errorMessage:"Clone operation timed out",completedAt:new Date}),this.activeProcesses.delete(a),g(new n(o.CLONE_TIMEOUT))},this.config.timeout);h.on("close",async d=>{if(clearTimeout(k),this.activeProcesses.delete(a),0===d)try{await this.onCloneSuccess(a,b,c),e()}catch(a){g(a)}else{let b=this.parseGitError(i,d);(0,j.k5)(this.db,a,{status:"failed",errorCategory:b.category,errorCode:b.code,errorMessage:b.message,completedAt:new Date}),g(new n(b))}}),h.on("error",b=>{clearTimeout(k),this.activeProcesses.delete(a);let c={category:"system",code:"SPAWN_ERROR",message:`Failed to spawn git process: ${b.message}`,recoverable:!1,suggestedAction:"Ensure git is installed and available in PATH"};(0,j.k5)(this.db,a,{status:"failed",errorCategory:c.category,errorCode:c.code,errorMessage:c.message,completedAt:new Date}),g(new n(c))})})}async onCloneSuccess(a,b,c){try{let d=(0,j.bM)(this.db,a);if(!d)return;let e=this.urlNormalizer.getUrlType(b),f=(0,j.vB)(this.db,{name:g().basename(c),path:c,cloneUrl:b,normalizedCloneUrl:d.normalizedCloneUrl,cloneSource:e||"https"});try{let a=await (0,k.YM)(c);if(a.length>0){let{syncResult:b,cleanupWarnings:c}=await (0,l.l7)(this.db,a);m.info("clone:worktrees-registered",{count:a.length,upserted:b.upsertedCount}),c.length>0&&m.warn("clone:cleanup-warnings",{cleanupWarnings:c})}}catch(a){m.error("clone:worktree-scan-failed",{targetPath:c,error:a instanceof Error?a.message:String(a)})}(0,j.k5)(this.db,a,{status:"completed",progress:100,repositoryId:f.id,completedAt:new Date})}catch(b){throw m.error("clone:registration-failed",{jobId:a,error:b instanceof Error?b.message:String(b)}),this.markJobFailed(a,o.CLONE_REGISTRATION_FAILED),new n(o.CLONE_REGISTRATION_FAILED)}}parseGitProgress(a){let b=a.match(/(?:Receiving objects|Resolving deltas|Cloning into[^:]*?):\s*(\d+)%/);if(b){let a=parseInt(b[1],10);return isNaN(a)?null:a}return null}parseGitError(a,b){let c=a.toLowerCase(),d=a.substring(0,200);return["authentication failed","permission denied","could not read from remote repository"].some(a=>c.includes(a))?{...o.AUTH_FAILED,message:`Authentication failed: ${d}`}:["could not resolve host","connection refused","network is unreachable"].some(a=>c.includes(a))?{...o.NETWORK_ERROR,message:`Network error: ${d}`}:{...o.GIT_ERROR,message:`Git clone failed (exit code ${b}): ${d}`}}getCloneJobStatus(a){let b=(0,j.bM)(this.db,a);if(!b)return null;let c={jobId:b.id,status:b.status,progress:b.progress,repositoryId:b.repositoryId};return"failed"===b.status&&b.errorCode&&(c.error={category:b.errorCategory||"system",code:b.errorCode,message:b.errorMessage||"Unknown error"}),c}cancelCloneJob(a){let b=this.activeProcesses.get(a);if(b)return b.kill("SIGTERM"),this.activeProcesses.delete(a),(0,j.k5)(this.db,a,{status:"cancelled",completedAt:new Date}),!0;let c=(0,j.bM)(this.db,a);return!!c&&"pending"===c.status&&((0,j.k5)(this.db,a,{status:"cancelled",completedAt:new Date}),!0)}}}};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";exports.id=3480,exports.ids=[3480],exports.modules={11099:(a,b,c)=>{c.d(b,{DL:()=>F,Yg:()=>E,oX:()=>D});var d=c(73736),e=c(79748),f=c(33873),g=c.n(f),h=c(15194),i=c(47494),j=c(20137),k=c(15003),l=c(72626);let m=(0,l.h)("cmate-parser");async function n(a,b){let c=await (0,e.realpath)(a),d=await (0,e.realpath)(b);if(!c.startsWith(d+g().sep)&&c!==g().join(d,k.fp))throw Error(`Path traversal detected: ${a} is not within ${b}`);return!0}async function o(a){let b=g().join(a,k.fp);try{await n(b,a);let c=await (0,e.readFile)(b,"utf-8");return function(a){let b=new Map,c=a.split("\n"),d=null,e=!1,f=!1;for(let a of c){let c=a.trim(),g=c.match(/^##\s+(.+)$/);if(g){d=g[1].trim(),e=!1,f=!1,b.has(d)||b.set(d,[]);continue}if(!c||!c.startsWith("|")||!d)continue;if(!e){e=!0;continue}if(!f){if(c.match(/^\|[\s-:|]+\|$/)){f=!0;continue}f=!0}let h=c.split("|").slice(1,-1).map(a=>a.trim());h.length>0&&b.get(d).push(h)}return b}(c)}catch(a){if(a instanceof Error&&"code"in a&&"ENOENT"===a.code)return null;throw a}}var p=c(34207),q=c(55511),r=c(29021);let s=(0,l.h)("cron-parser");function t(){let{getDbInstance:a}=c(88807);return a()}let u=(0,l.h)("job-executor");function v(){let{getDbInstance:a}=c(88807);return a()}function w(a,b,c,d){let e=v(),f=Date.now();e.prepare(`
|
|
2
2
|
UPDATE execution_logs SET status = ?, result = ?, exit_code = ?, completed_at = ? WHERE id = ?
|
|
3
|
-
`).run(b,c,d,f,a)}async function x(a){if(a.isExecuting)return void u.warn("execution:skip-concurrent",{name:a.entry.name});a.isExecuting=!0;
|
|
3
|
+
`).run(b,c,d,f,a)}async function x(a){let b;if(a.isExecuting)return void u.warn("execution:skip-concurrent",{name:a.entry.name});a.isExecuting=!0;try{b=function(a,b,c){let d=v(),e=Date.now(),f=(0,q.randomUUID)();return d.prepare(`
|
|
4
4
|
INSERT INTO execution_logs (id, schedule_id, worktree_id, message, status, started_at, created_at)
|
|
5
5
|
VALUES (?, ?, ?, ?, 'running', ?, ?)
|
|
6
|
-
`).run(f,a,b,c,e,e),f}(a.scheduleId,a.worktreeId,a.entry.message);
|
|
6
|
+
`).run(f,a,b,c,e,e),f}(a.scheduleId,a.worktreeId,a.entry.message);let e=v().prepare("SELECT path, vibe_local_model FROM worktrees WHERE id = ?").get(a.worktreeId);if(!e)return void w(b,"failed","Worktree not found",null);let f=(c=a.entry,"copilot"===c.cliToolId&&c.model?{model:c.model}:"vibe-local"===c.cliToolId&&e.vibe_local_model?{model:e.vibe_local_model}:void 0),g=await (0,p.V$)(a.entry.message,e.path,a.entry.cliToolId,a.entry.permission,f);w(b,g.status,g.output,g.exitCode);var c,d=a.scheduleId;let h=v(),i=Date.now();h.prepare("UPDATE scheduled_executions SET last_executed_at = ?, updated_at = ? WHERE id = ?").run(i,i,d),u.info("execution:completed",{name:a.entry.name,status:g.status})}catch(d){let c=d instanceof Error?d.message:String(d);void 0!==b&&w(b,"failed",c,null),u.error("execution:failed",{name:a.entry.name,error:c})}finally{a.isExecuting=!1}}let y=(0,l.h)("schedule-manager");function z(a){try{if("function"==typeof a.isStopped)return!a.isStopped();if("function"==typeof a.isRunning)return a.isRunning()}catch{return!1}return!0}function A(a,b,c){let e=new d.l4(c.cronExpression,{paused:!1,protect:!0}),f={scheduleId:b,worktreeId:a,cronJob:e,isExecuting:!1,entry:c};return e.schedule(()=>{x(f).catch(a=>{y.error("execution:unhandled",{name:c.name,error:a instanceof Error?a.message:String(a)})})}),f}function B(){return globalThis.__scheduleManagerStates||(globalThis.__scheduleManagerStates={timerId:null,schedules:new Map,initialized:!1,isSyncing:!1,cmateFileCache:new Map}),globalThis.__scheduleManagerStates}async function C(){let a=B();if(!a.isSyncing){a.isSyncing=!0;try{let b=function(){try{return t().prepare("SELECT id, path FROM worktrees").all()}catch(a){return s.error("worktree:fetch-failed",{error:a instanceof Error?a.message:String(a)}),[]}}(),c=new Set;for(let d of b)try{let b=function(a){let b=g().join(a,k.fp);try{return(0,r.statSync)(b).mtimeMs}catch(a){if(a instanceof Error&&"code"in a&&"ENOENT"===a.code)return null;return s.warn("file:stat-failed",{filePath:b}),null}}(d.path),e=a.cmateFileCache.get(d.path);if(null===b){void 0!==e&&a.cmateFileCache.delete(d.path);continue}let f=[],l=!1;for(let[b,c]of a.schedules)c.worktreeId===d.id&&(f.push(b),z(c.cronJob)||(l=!0));if(void 0!==e&&e===b){if(!l){for(let a of f)c.add(a);continue}y.warn("schedule:inactive-state-detected",{worktreeId:d.id})}a.cmateFileCache.set(d.path,b);let n=await o(d.path);if(!n)continue;let p=n.get("Schedules");if(!p)continue;let u=function(a){let b=[];for(let c of a){let a;if(b.length>=k.QD){m.warn("maximum-schedule-entries");break}if(c.length<3){m.warn("parse:insufficient-columns",{columnCount:c.length});continue}let[d,e,f,g,l,n]=c,o=(0,k.j0)(d);if(!k.Vh.test(o)){m.warn("parse:invalid-name",{name:o});continue}if(!(0,k.ri)(e)){m.warn("parse:invalid-cron",{name:o,cron:e});continue}let p=(0,k.j0)(f);if(!p){m.warn("parse:empty-message",{name:o});continue}let q=void 0===l||""===l||"true"===l.toLowerCase(),{result:r,errors:s}=(0,i.zK)(g||"");if(s.length>0){m.warn("parse:invalid-cli-tool-column",{name:o,errors:s});continue}let t=r.cliToolId;if(!(0,h.hR)(t)){m.warn("parse:invalid-cli-tool",{name:o,cliToolId:t});continue}let u=j.Hf[t]??"",v=n?.trim()||u;switch(t){case"codex":a=j.o1;break;case"copilot":a=j.oN;break;case"antigravity":a=j.eb;break;case"gemini":case"vibe-local":a=[],v&&(m.warn("parse:permission-ignored",{name:o,cliToolId:t,permission:v}),v="");break;default:a=j.kd}a.length>0&&v&&!a.includes(v)&&(m.warn("parse:invalid-permission",{name:o,cliToolId:t,permission:v,defaultPermission:u}),v=u),b.push({name:o,cronExpression:e.trim(),message:p,cliToolId:t,enabled:q,permission:v,model:r.model})}return b}(p),v=function(a,b){if(0===b.length)return[];let c=t(),d=Date.now(),e=c.prepare("SELECT id, name FROM scheduled_executions WHERE worktree_id = ?").all(a),f=new Map;for(let a of e)f.set(a.name,a.id);let g=[],h=c.prepare(`
|
|
7
7
|
UPDATE scheduled_executions
|
|
8
8
|
SET message = ?, cron_expression = ?, cli_tool_id = ?, enabled = ?, updated_at = ?
|
|
9
9
|
WHERE id = ?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3543,exports.ids=[3543],exports.modules={73543:a=>{a.exports=JSON.parse('{"sessions":{"idleAgents":"{count} idle","activeAgents":"{count} active","title":"Sessions","description":"All worktree sessions across repositories.","filterPlaceholder":"Filter by name or repository...","filterAriaLabel":"Filter sessions by name or repository","sortByAriaLabel":"Sort by","sortAscending":"Sort ascending","sortDescending":"Sort descending","loadingAriaLabel":"Loading sessions","refreshError":"Failed to refresh sessions: {message}","loadError":"Failed to load sessions: {message}","noMatching":"No matching sessions found.","empty":"No sessions yet."},"nav":{"home":"Home","chat":"Chat","sessions":"Sessions","repositories":"Repositories","repositoriesShort":"Repos","review":"Review","reviewReport":"Review/Report","more":"More"},"repositories":{"empty":"No repositories registered yet.","add":"Add Repository","syncAll":"Sync All","syncing":"Syncing...","addNewTitle":"Add New Repository","localPathTab":"Local Path","cloneUrlTab":"Clone URL","localPathDescription":"Enter the absolute path to a git repository containing worktrees.","localPathLabel":"Repository Path","localPathExample":"Example: /Users/username/projects/my-repo","scan":"Scan & Add","scanning":"Scanning...","cloneUrlDescription":"Enter a git clone URL to clone a remote repository.","cloneUrlLabel":"Clone URL","cloneUrlHelp":"Supports HTTPS and SSH URLs","clone":"Clone","cloning":"Cloning...","cloneSuccess":"Repository cloned successfully","cloneFailed":"Clone failed","pathRequired":"Repository path is required","urlRequired":"Clone URL is required","urlInvalid":"Invalid URL format","loading":"Loading repositories"},"cancel":"Cancel","send":"Send","sending":"Sending...","sendMessagePlaceholder":"Send a message...","end":"End","ending":"Ending...","retry":"Retry","reload":"Reload","reconnect":"Reconnect","close":"Close","back":"Back","menu":"Menu","sidebar":{"open":"Open sidebar","close":"Close sidebar","branchNavigation":"Branch navigation","branches":"Branches","searchBranches":"Search branches...","noBranchesFound":"No branches found","noBranchesAvailable":"No branches available","dragToReorderGroup":"Drag to reorder group","switchToFlatView":"Switch to flat view","switchToGroupedView":"Switch to grouped view"},"confirmDelete":"Delete \\"{name}\\"?","favorites":{"add":"Add to favorites","remove":"Remove from favorites"},"syncSuccess":"Synced {count} worktrees","syncError":"Sync failed","syncAuthError":"Authentication error","syncButtonLabel":"Sync branches","tooltips":{"viewMode":"Toggle view mode (grouped / flat)","sort":"Sort branches","sync":"Sync worktrees","repositories":"Manage repositories (add / sync)"},"displaySize":{"ariaLabel":"Display size","large":"Large","medium":"Medium","small":"Small","xsmall":"Extra small"},"confirmDialog":{"title":"Confirm","confirm":"OK"},"language":"Language","loadingPage":"Loading page","closeNotification":"Close notification","status":{"idle":"Idle","ready":"Ready","running":"Running","generating":"Generating","waiting":"Waiting for response","error":"Error","unknown":"Unknown"},"sort":{"options":"Sort options","updatedAt":"Updated","repositoryName":"Repository","branchName":"Branch","status":"Status","lastSent":"Last Sent"},"branchItem":{"cliToolStatus":"CLI tool status","hasUnread":"Has unread messages"},"connection":{"reconnecting":"Reconnecting","offline":"Offline","reconnectingTooltip":"Re-establishing the live connection (running on polling)","offlineTooltip":"No live connection (running on polling)"},"meta":{"description":"Git worktree management with Claude CLI and tmux sessions"}}')}};
|
|
1
|
+
"use strict";exports.id=3543,exports.ids=[3543],exports.modules={73543:a=>{a.exports=JSON.parse('{"sessions":{"idleAgents":"{count} idle","activeAgents":"{count} active","title":"Sessions","description":"All worktree sessions across repositories.","filterPlaceholder":"Filter by name or repository...","filterAriaLabel":"Filter sessions by name or repository","sortByAriaLabel":"Sort by","sortAscending":"Sort ascending","sortDescending":"Sort descending","loadingAriaLabel":"Loading sessions","refreshError":"Failed to refresh sessions: {message}","loadError":"Failed to load sessions: {message}","noMatching":"No matching sessions found.","empty":"No sessions yet."},"nav":{"home":"Home","chat":"Chat","sessions":"Sessions","repositories":"Repositories","repositoriesShort":"Repos","review":"Review","reviewReport":"Review/Report","more":"More"},"repositories":{"empty":"No repositories registered yet.","add":"Add Repository","syncAll":"Sync All","syncing":"Syncing...","addNewTitle":"Add New Repository","localPathTab":"Local Path","cloneUrlTab":"Clone URL","localPathDescription":"Enter the absolute path to a git repository containing worktrees.","localPathLabel":"Repository Path","localPathExample":"Example: /Users/username/projects/my-repo","scan":"Scan & Add","scanning":"Scanning...","cloneUrlDescription":"Enter a git clone URL to clone a remote repository.","cloneUrlLabel":"Clone URL","cloneUrlHelp":"Supports HTTPS and SSH URLs","clone":"Clone","cloning":"Cloning...","cloneSuccess":"Repository cloned successfully","cloneFailed":"Clone failed","pathRequired":"Repository path is required","urlRequired":"Clone URL is required","urlInvalid":"Invalid URL format","loading":"Loading repositories"},"cancel":"Cancel","send":"Send","sending":"Sending...","sendMessagePlaceholder":"Send a message...","end":"End","ending":"Ending...","retry":"Retry","reload":"Reload","reconnect":"Reconnect","close":"Close","back":"Back","menu":"Menu","sidebar":{"open":"Open sidebar","close":"Close sidebar","branchNavigation":"Branch navigation","branches":"Branches","searchBranches":"Search branches...","noBranchesFound":"No branches found","noBranchesAvailable":"No branches available","dragToReorderGroup":"Drag to reorder group","switchToFlatView":"Switch to flat view","switchToGroupedView":"Switch to grouped view"},"confirmDelete":"Delete \\"{name}\\"?","favorites":{"add":"Add to favorites","remove":"Remove from favorites"},"syncSuccess":"Synced {count} worktrees","syncError":"Sync failed","syncAuthError":"Authentication error","syncButtonLabel":"Sync branches","tooltips":{"viewMode":"Toggle view mode (grouped / flat)","sort":"Sort branches","sync":"Sync worktrees","repositories":"Manage repositories (add / sync)"},"displaySize":{"ariaLabel":"Display size","large":"Large","medium":"Medium","small":"Small","xsmall":"Extra small"},"confirmDialog":{"title":"Confirm","confirm":"OK"},"language":"Language","loadingPage":"Loading page","closeNotification":"Close notification","status":{"idle":"Idle","ready":"Ready","running":"Running","generating":"Generating","waiting":"Waiting for response","error":"Error","unknown":"Unknown"},"sort":{"options":"Sort options","updatedAt":"Updated","repositoryName":"Repository","branchName":"Branch","status":"Status","lastSent":"Last Sent"},"branchItem":{"cliToolStatus":"CLI tool status","hasUnread":"Has unread messages"},"connection":{"reconnecting":"Reconnecting","offline":"Offline","reconnectingTooltip":"Re-establishing the live connection (running on polling)","offlineTooltip":"No live connection (running on polling)"},"versionMismatch":{"title":"A new version is running","description":"The server is now on {serverVersion}, but this tab is still on {clientVersion}. Reload to get the latest.","reload":"Reload","dismiss":"Dismiss"},"meta":{"description":"Git worktree management with Claude CLI and tmux sessions"}}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3945,exports.ids=[3945],exports.modules={53945:a=>{a.exports=JSON.parse('{"sessions":{"idleAgents":"アイドル {count} 件","activeAgents":"稼働 {count} 件","title":"セッション","description":"全リポジトリの worktree セッション。","filterPlaceholder":"名前またはリポジトリで絞り込み...","filterAriaLabel":"名前またはリポジトリでセッションを絞り込む","sortByAriaLabel":"並び替え","sortAscending":"昇順に並び替え","sortDescending":"降順に並び替え","loadingAriaLabel":"セッションを読み込み中","refreshError":"セッションの更新に失敗しました: {message}","loadError":"セッションの読み込みに失敗しました: {message}","noMatching":"一致するセッションがありません。","empty":"セッションがまだありません。"},"nav":{"home":"ホーム","chat":"チャット","sessions":"セッション","repositories":"リポジトリ","repositoriesShort":"リポジトリ","review":"レビュー","reviewReport":"レビュー/レポート","more":"その他"},"repositories":{"empty":"リポジトリが登録されていません。","add":"リポジトリを追加","syncAll":"すべて同期","syncing":"同期中...","addNewTitle":"リポジトリを新規追加","localPathTab":"ローカルパス","cloneUrlTab":"クローン URL","localPathDescription":"worktree を含む git リポジトリの絶対パスを入力してください。","localPathLabel":"リポジトリパス","localPathExample":"例: /Users/username/projects/my-repo","scan":"スキャンして追加","scanning":"スキャン中...","cloneUrlDescription":"リモートリポジトリをクローンする git の URL を入力してください。","cloneUrlLabel":"クローン URL","cloneUrlHelp":"HTTPS と SSH の URL に対応しています","clone":"クローン","cloning":"クローン中...","cloneSuccess":"リポジトリをクローンしました","cloneFailed":"クローンに失敗しました","pathRequired":"リポジトリパスを入力してください","urlRequired":"クローン URL を入力してください","urlInvalid":"URL の形式が正しくありません","loading":"リポジトリを読み込み中"},"cancel":"キャンセル","send":"送信","sending":"送信中...","sendMessagePlaceholder":"メッセージを送信...","end":"終了する","ending":"終了中...","retry":"再試行","reload":"再読み込み","reconnect":"再接続","close":"閉じる","back":"戻る","menu":"メニュー","sidebar":{"open":"サイドバーを開く","close":"サイドバーを閉じる","branchNavigation":"ブランチナビゲーション","branches":"ブランチ","searchBranches":"ブランチを検索...","noBranchesFound":"ブランチが見つかりません","noBranchesAvailable":"ブランチがありません","dragToReorderGroup":"ドラッグでグループを並べ替え","switchToFlatView":"フラット表示に切り替え","switchToGroupedView":"グループ表示に切り替え"},"confirmDelete":"「{name}」を削除しますか?","favorites":{"add":"お気に入りに追加","remove":"お気に入りを解除"},"syncSuccess":"{count}件のworktreeを同期しました","syncError":"同期に失敗しました","syncAuthError":"認証エラー","syncButtonLabel":"ブランチを同期","tooltips":{"viewMode":"表示モード切替(グループ / フラット)","sort":"ブランチの並び替え","sync":"worktree を同期","repositories":"リポジトリを管理(追加・同期)"},"displaySize":{"ariaLabel":"表示サイズ","large":"大","medium":"中","small":"小","xsmall":"極小"},"confirmDialog":{"title":"確認","confirm":"OK"},"language":"言語","loadingPage":"ページを読み込み中","closeNotification":"通知を閉じる","status":{"idle":"アイドル","ready":"準備完了","running":"実行中","generating":"生成中","waiting":"応答待ち","error":"エラー","unknown":"不明"},"sort":{"options":"並び替えオプション","updatedAt":"更新日時","repositoryName":"リポジトリ","branchName":"ブランチ","status":"ステータス","lastSent":"最終送信"},"branchItem":{"cliToolStatus":"CLI ツールのステータス","hasUnread":"未読メッセージあり"},"connection":{"reconnecting":"再接続中","offline":"オフライン","reconnectingTooltip":"ライブ接続を再確立しています(ポーリングで動作中)","offlineTooltip":"ライブ接続なし(ポーリングで動作中)"},"meta":{"description":"Claude CLI と tmux セッションによる Git worktree 管理"}}')}};
|
|
1
|
+
"use strict";exports.id=3945,exports.ids=[3945],exports.modules={53945:a=>{a.exports=JSON.parse('{"sessions":{"idleAgents":"アイドル {count} 件","activeAgents":"稼働 {count} 件","title":"セッション","description":"全リポジトリの worktree セッション。","filterPlaceholder":"名前またはリポジトリで絞り込み...","filterAriaLabel":"名前またはリポジトリでセッションを絞り込む","sortByAriaLabel":"並び替え","sortAscending":"昇順に並び替え","sortDescending":"降順に並び替え","loadingAriaLabel":"セッションを読み込み中","refreshError":"セッションの更新に失敗しました: {message}","loadError":"セッションの読み込みに失敗しました: {message}","noMatching":"一致するセッションがありません。","empty":"セッションがまだありません。"},"nav":{"home":"ホーム","chat":"チャット","sessions":"セッション","repositories":"リポジトリ","repositoriesShort":"リポジトリ","review":"レビュー","reviewReport":"レビュー/レポート","more":"その他"},"repositories":{"empty":"リポジトリが登録されていません。","add":"リポジトリを追加","syncAll":"すべて同期","syncing":"同期中...","addNewTitle":"リポジトリを新規追加","localPathTab":"ローカルパス","cloneUrlTab":"クローン URL","localPathDescription":"worktree を含む git リポジトリの絶対パスを入力してください。","localPathLabel":"リポジトリパス","localPathExample":"例: /Users/username/projects/my-repo","scan":"スキャンして追加","scanning":"スキャン中...","cloneUrlDescription":"リモートリポジトリをクローンする git の URL を入力してください。","cloneUrlLabel":"クローン URL","cloneUrlHelp":"HTTPS と SSH の URL に対応しています","clone":"クローン","cloning":"クローン中...","cloneSuccess":"リポジトリをクローンしました","cloneFailed":"クローンに失敗しました","pathRequired":"リポジトリパスを入力してください","urlRequired":"クローン URL を入力してください","urlInvalid":"URL の形式が正しくありません","loading":"リポジトリを読み込み中"},"cancel":"キャンセル","send":"送信","sending":"送信中...","sendMessagePlaceholder":"メッセージを送信...","end":"終了する","ending":"終了中...","retry":"再試行","reload":"再読み込み","reconnect":"再接続","close":"閉じる","back":"戻る","menu":"メニュー","sidebar":{"open":"サイドバーを開く","close":"サイドバーを閉じる","branchNavigation":"ブランチナビゲーション","branches":"ブランチ","searchBranches":"ブランチを検索...","noBranchesFound":"ブランチが見つかりません","noBranchesAvailable":"ブランチがありません","dragToReorderGroup":"ドラッグでグループを並べ替え","switchToFlatView":"フラット表示に切り替え","switchToGroupedView":"グループ表示に切り替え"},"confirmDelete":"「{name}」を削除しますか?","favorites":{"add":"お気に入りに追加","remove":"お気に入りを解除"},"syncSuccess":"{count}件のworktreeを同期しました","syncError":"同期に失敗しました","syncAuthError":"認証エラー","syncButtonLabel":"ブランチを同期","tooltips":{"viewMode":"表示モード切替(グループ / フラット)","sort":"ブランチの並び替え","sync":"worktree を同期","repositories":"リポジトリを管理(追加・同期)"},"displaySize":{"ariaLabel":"表示サイズ","large":"大","medium":"中","small":"小","xsmall":"極小"},"confirmDialog":{"title":"確認","confirm":"OK"},"language":"言語","loadingPage":"ページを読み込み中","closeNotification":"通知を閉じる","status":{"idle":"アイドル","ready":"準備完了","running":"実行中","generating":"生成中","waiting":"応答待ち","error":"エラー","unknown":"不明"},"sort":{"options":"並び替えオプション","updatedAt":"更新日時","repositoryName":"リポジトリ","branchName":"ブランチ","status":"ステータス","lastSent":"最終送信"},"branchItem":{"cliToolStatus":"CLI ツールのステータス","hasUnread":"未読メッセージあり"},"connection":{"reconnecting":"再接続中","offline":"オフライン","reconnectingTooltip":"ライブ接続を再確立しています(ポーリングで動作中)","offlineTooltip":"ライブ接続なし(ポーリングで動作中)"},"versionMismatch":{"title":"新しいバージョンが起動しています","description":"サーバーは {serverVersion} になりましたが、このタブは {clientVersion} のままです。最新の状態にするには再読み込みしてください。","reload":"再読み込み","dismiss":"閉じる"},"meta":{"description":"Claude CLI と tmux セッションによる Git worktree 管理"}}')}};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";exports.id=406,exports.ids=[406],exports.modules={10406:(a,b,c)=>{c.d(b,{$G:()=>v,Dp:()=>n,Ir:()=>q,RS:()=>z,Uj:()=>l,Ux:()=>u,Yg:()=>r,_D:()=>s,bM:()=>B,eP:()=>x,fD:()=>D,k5:()=>C,kp:()=>p,l$:()=>w,lS:()=>y,oG:()=>o,r:()=>m,tw:()=>A,vB:()=>k});var d=c(55511),e=c(33873),f=c.n(e),g=c(7956);class h extends Error{constructor(a,b,c){super(a),this.code=b,this.cause=c,this.name="RepositoryDbError"}}function i(a){return{id:a.id,name:a.name,displayName:a.display_name||void 0,path:a.path,enabled:1===a.enabled,visible:1===a.visible,cloneUrl:a.clone_url||void 0,normalizedCloneUrl:a.normalized_clone_url||void 0,cloneSource:a.clone_source,isEnvManaged:1===a.is_env_managed,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function j(a){return{id:a.id,cloneUrl:a.clone_url,normalizedCloneUrl:a.normalized_clone_url,targetPath:a.target_path,repositoryId:a.repository_id||void 0,status:a.status,pid:a.pid||void 0,progress:a.progress,errorCategory:a.error_category||void 0,errorCode:a.error_code||void 0,errorMessage:a.error_message||void 0,startedAt:a.started_at?new Date(a.started_at):void 0,completedAt:a.completed_at?new Date(a.completed_at):void 0,createdAt:new Date(a.created_at)}}function k(a,b){let c=(0,d.randomUUID)(),e=Date.now(),f=a.prepare(`
|
|
2
|
+
INSERT INTO repositories (
|
|
3
|
+
id, name, path, enabled, visible, clone_url, normalized_clone_url,
|
|
4
|
+
clone_source, is_env_managed, created_at, updated_at
|
|
5
|
+
)
|
|
6
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
7
|
+
`);try{f.run(c,b.name,b.path,+(!1!==b.enabled),+(!1!==b.visible),b.cloneUrl||null,b.normalizedCloneUrl||null,b.cloneSource,+!!b.isEnvManaged,e,e)}catch(a){if(a instanceof Error&&a.message.includes("UNIQUE constraint"))throw new h(`A repository is already registered at path "${b.path}"`+(b.normalizedCloneUrl?` or for URL "${b.normalizedCloneUrl}"`:""),"DUPLICATE",a);throw new h(`Failed to create repository: ${a instanceof Error?a.message:"Unknown error"}`,"DB_ERROR",a instanceof Error?a:void 0)}return{id:c,name:b.name,path:b.path,enabled:!1!==b.enabled,visible:!1!==b.visible,cloneUrl:b.cloneUrl,normalizedCloneUrl:b.normalizedCloneUrl,cloneSource:b.cloneSource,isEnvManaged:b.isEnvManaged||!1,createdAt:new Date(e),updatedAt:new Date(e)}}function l(a,b){let c=a.prepare(`
|
|
8
|
+
SELECT * FROM repositories
|
|
9
|
+
WHERE normalized_clone_url = ?
|
|
10
|
+
`).get(b);return c?i(c):null}function m(a,b){let c=a.prepare(`
|
|
11
|
+
SELECT * FROM repositories
|
|
12
|
+
WHERE id = ?
|
|
13
|
+
`).get(b);return c?i(c):null}function n(a,b){let c=a.prepare(`
|
|
14
|
+
SELECT * FROM repositories
|
|
15
|
+
WHERE path = ?
|
|
16
|
+
`).get(b);return c?i(c):null}function o(a,b){return a.prepare("DELETE FROM repositories WHERE id = ?").run(b).changes>0}function p(a,b){return Number(a.prepare("SELECT COUNT(*) AS count FROM worktrees WHERE repository_path = ?").get(b).count)||0}function q(a,b,c){let d=Date.now(),e=["updated_at = ?"],f=[d];void 0!==c.name&&(e.push("name = ?"),f.push(c.name)),void 0!==c.displayName&&(e.push("display_name = ?"),f.push(c.displayName||null)),void 0!==c.enabled&&(e.push("enabled = ?"),f.push(+!!c.enabled)),void 0!==c.visible&&(e.push("visible = ?"),f.push(+!!c.visible)),void 0!==c.cloneUrl&&(e.push("clone_url = ?"),f.push(c.cloneUrl||null)),void 0!==c.normalizedCloneUrl&&(e.push("normalized_clone_url = ?"),f.push(c.normalizedCloneUrl||null)),f.push(b),a.prepare(`
|
|
17
|
+
UPDATE repositories
|
|
18
|
+
SET ${e.join(", ")}
|
|
19
|
+
WHERE id = ?
|
|
20
|
+
`).run(...f)}function r(a){return a.prepare(`
|
|
21
|
+
SELECT * FROM repositories
|
|
22
|
+
ORDER BY name ASC
|
|
23
|
+
`).all().map(i)}function s(a){return a.prepare(`
|
|
24
|
+
SELECT r.*,
|
|
25
|
+
(SELECT COUNT(*) FROM worktrees w WHERE w.repository_path = r.path) AS worktree_count
|
|
26
|
+
FROM repositories r
|
|
27
|
+
ORDER BY r.name ASC
|
|
28
|
+
`).all().map(a=>({...i(a),worktreeCount:Number(a.worktree_count)||0}))}function t(a){return f().resolve(a)}function u(a){if(!a||"string"!=typeof a)return{valid:!1,error:"repositoryPath is required"};if(a.includes("\0"))return{valid:!1,error:"Invalid repository path"};let b=t(a);return(0,g.fW)(b)?{valid:!1,error:"Invalid repository path"}:{valid:!0,resolvedPath:b}}function v(a,b){for(let c of b){let b=t(c);n(a,b)||k(a,{name:f().basename(b),path:b,cloneSource:"local",isEnvManaged:!0,enabled:!0})}let c=function(a,b){let c=a.prepare("SELECT path FROM repositories WHERE enabled = 0").all().map(a=>a.path);return b.filter(a=>!c.includes(t(a)))}(a,b),d=b.filter(a=>!c.includes(a));return{filteredPaths:c,excludedPaths:d,excludedCount:d.length}}function w(a,b){if(x(a,b))return;let c=t(b);if(a.prepare("SELECT COUNT(*) as count FROM repositories WHERE enabled = 0").get().count>=1e3)throw Error("Disabled repository limit exceeded");k(a,{name:f().basename(c),path:c,cloneSource:"local",isEnvManaged:!1,enabled:!1})}function x(a,b){let c=n(a,t(b));return!!c&&(q(a,c.id,{enabled:!1}),!0)}function y(a){return a.prepare("SELECT * FROM repositories WHERE enabled = 0 ORDER BY name ASC").all().map(i)}function z(a,b){let c=n(a,t(b));return c?(q(a,c.id,{enabled:!0}),{...c,enabled:!0}):null}function A(a,b){let c=(0,d.randomUUID)(),e=Date.now();return a.prepare(`
|
|
29
|
+
INSERT INTO clone_jobs (
|
|
30
|
+
id, clone_url, normalized_clone_url, target_path,
|
|
31
|
+
status, progress, created_at
|
|
32
|
+
)
|
|
33
|
+
VALUES (?, ?, ?, ?, 'pending', 0, ?)
|
|
34
|
+
`).run(c,b.cloneUrl,b.normalizedCloneUrl,b.targetPath,e),{id:c,cloneUrl:b.cloneUrl,normalizedCloneUrl:b.normalizedCloneUrl,targetPath:b.targetPath,status:"pending",progress:0,createdAt:new Date(e)}}function B(a,b){let c=a.prepare(`
|
|
35
|
+
SELECT * FROM clone_jobs
|
|
36
|
+
WHERE id = ?
|
|
37
|
+
`).get(b);return c?j(c):null}function C(a,b,c){let d=[],e=[];void 0!==c.status&&(d.push("status = ?"),e.push(c.status)),void 0!==c.pid&&(d.push("pid = ?"),e.push(c.pid)),void 0!==c.progress&&(d.push("progress = ?"),e.push(c.progress)),void 0!==c.repositoryId&&(d.push("repository_id = ?"),e.push(c.repositoryId)),void 0!==c.errorCategory&&(d.push("error_category = ?"),e.push(c.errorCategory)),void 0!==c.errorCode&&(d.push("error_code = ?"),e.push(c.errorCode)),void 0!==c.errorMessage&&(d.push("error_message = ?"),e.push(c.errorMessage)),void 0!==c.startedAt&&(d.push("started_at = ?"),e.push(c.startedAt.getTime())),void 0!==c.completedAt&&(d.push("completed_at = ?"),e.push(c.completedAt.getTime())),0!==d.length&&(e.push(b),a.prepare(`
|
|
38
|
+
UPDATE clone_jobs
|
|
39
|
+
SET ${d.join(", ")}
|
|
40
|
+
WHERE id = ?
|
|
41
|
+
`).run(...e))}function D(a,b){let c=a.prepare(`
|
|
42
|
+
SELECT * FROM clone_jobs
|
|
43
|
+
WHERE normalized_clone_url = ?
|
|
44
|
+
AND status IN ('pending', 'running')
|
|
45
|
+
ORDER BY created_at DESC
|
|
46
|
+
LIMIT 1
|
|
47
|
+
`).get(b);return c?j(c):null}}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=4444,exports.ids=[4444],exports.modules={12462:(a,b,c)=>{c.d(b,{T8:()=>j,o4:()=>k});var d=c(31766),e=c(56791),f=c(
|
|
1
|
+
"use strict";exports.id=4444,exports.ids=[4444],exports.modules={12462:(a,b,c)=>{c.d(b,{T8:()=>j,o4:()=>k});var d=c(31766),e=c(56791),f=c(49997),g=c(82450),h=c(15194);let i=(0,c(72626).h)("assistant-response-saver");function j(a,b){switch(b){case"claude":return(0,g.NN)(a);case"gemini":return(0,g.IS)(a);case"opencode":return(0,g.aW)(a);case"copilot":return(0,g.LH)(a);default:return a.trim()}}async function k(a,b,c,g,k){let l=k??c;try{let m;if((0,h.VA)(c))return null;let n=(0,e.y1)(a,b,l),o=n?.lastCapturedLine||0;try{m=await (0,d.Wh)(b,c,1e4,k)}catch{return i.info("failed-to-capture"),null}if(!m)return null;let p=m.split("\n"),q=p.length;for(;q>0&&""===p[q-1].trim();)q--;let r=q,{bufferReset:s,reason:t}=r>0&&o>25&&r+25<o?{bufferReset:!0,reason:"shrink"}:r>0&&o>50&&r<50?{bufferReset:!0,reason:"restart"}:{bufferReset:!1,reason:null};s&&i.info("buffer:reset-detected",{reason:t,currentLineCount:r,lastCapturedLine:o});let u=s?0:o;if(!s&&r<=o)return r<o&&((0,e.gb)(a,b,c,r,k),i.info("position:corrected-stale",{from:o,to:r})),null;let v=p.slice(u).join("\n"),w=j(v,c);if(!w||""===w.trim())return(0,e.gb)(a,b,c,r,k),i.debug("response:empty-after-clean",{currentLineCount:r}),null;let x=new Date(g.getTime()-1),y=(0,e.oH)(a,{worktreeId:b,role:"assistant",content:w,messageType:"normal",timestamp:x,cliToolId:c,instanceId:l});return(0,e.gb)(a,b,c,r,k),(0,f.Lo)("message",{worktreeId:b,message:y}),i.info("response:saved",{fromLine:o,toLine:r}),y}catch(a){return i.error("error:",{error:a instanceof Error?a.message:String(a)}),null}}},16700:(a,b,c)=>{c.d(b,{A:()=>e,Y:()=>f});let d=new Set(["claude","codex","antigravity"]);function e(a){return d.has(a)?"non_interactive":"interactive"}function f(a){return"non_interactive"===e(a)}},46961:(a,b,c)=>{c.d(b,{e:()=>f});var d=c(56791),e=c(82149);function f(a,b){if(!(0,d.iT)(a,b))return;let c=(0,d.ce)(a,b),f=(0,e.kx)(b);c&&!f&&((0,d.az)(a,c.id,{status:"failed",finishedAt:new Date,stderrText:[c.stderrText??"","[Execution reconciled after process registry loss]"].filter(Boolean).join("\n")}),(0,d.xR)(a,b,{status:"ready"}))}},49070:(a,b,c)=>{c.d(b,{A:()=>l});var d=c(31766),e=c(3523),f=c(12462),g=c(56791),h=c(57821),i=c(72626),j=c(26283);let k=(0,i.h)("assistant/conversation-response-saver");async function l(a,b,c,i=new Date){try{let k=(0,g.qK)(a,b),l=k?.lastCapturedLine??0,m=(0,h.G)(b),n=await (0,d.Wh)(m,c,1e4),o="codex"===c?function(a,b){let c=a.split("\n"),d=c.length;for(;d>0&&""===c[d-1].trim();)d--;let e=c.slice(0,d),f=[];for(let a=Math.max(0,b);a<e.length;a++){let b=(0,j.aJ)(e[a]).trimEnd();/^›(?:\s+.*)?$/.test(b)&&f.push(a)}if(f.length<2)return null;let g=f[f.length-2],h=f[f.length-1],i=(0,j.aJ)(e.slice(g+1,h).join("\n")).trim();return i?!function(a){let b=a.trim();return/^•\s+Working\s+\(\d+s\s+•\s+esc to interrupt\)$/i.test(b)||/^•\s+Thinking\s+\(\d+s\s+•\s+esc to interrupt\)$/i.test(b)||/^•\s+Running/i.test(b)}(i)?{response:i,lineCount:h}:null:{response:"",lineCount:h}}(n,l):null,p=o?{response:o.response,isComplete:!0,lineCount:o.lineCount,bufferReset:!1}:(0,e.z$)(n,l,c);if(!p||!p.isComplete||!p.bufferReset&&p.lineCount<=l)return null;let q=(0,f.T8)(p.response,c);if(!q||""===q.trim()||"[No content]"===q)return(0,g.PP)(a,b,p.lineCount),null;let r=(0,g.qp)(a,{conversationId:b,role:"assistant",content:q,messageType:"normal",timestamp:i});return(0,g.PP)(a,b,p.lineCount),r}catch(a){return k.debug("save:skipped",{conversationId:b,cliToolId:c,error:a instanceof Error?a.message:String(a)}),null}}},57821:(a,b,c)=>{c.d(b,{G:()=>e,O:()=>f});var d=c(31268);function e(a){return`assistant-${a}`}function f(a,b){let c=d.s.getInstance().getTool(a),f=e(b),g=c.getSessionName(f);return{cliTool:c,worktreeId:f,sessionName:g}}},67502:(a,b,c)=>{c.d(b,{JD:()=>h,_$:()=>g});var d=c(15194),e=c(10406),f=c(73753);function g(a,b,c=new Date){var h;let i=(0,d.oo)(a);return[`You are an assistant using ${i}, running inside CommandMate.`,"",(h="commandmate-cli"===process.env.CM_LAUNCHED_BY?"commandmate":"commandmatedev",`## CommandMate CLI Reference
|
|
2
2
|
|
|
3
3
|
The user runs a CommandMate server locally. These are the CLI commands available from their terminal:
|
|
4
4
|
|