commandmate 0.38.0 → 0.39.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 +471 -576
- package/.next/app-path-routes-manifest.json +32 -42
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +9 -9
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +0 -23
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route.js +1 -0
- package/.next/server/app/api/app/release-notes/route.js.nft.json +1 -0
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -0
- 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/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/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +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_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/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/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/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/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/escalation/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_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/relays/[relayId]/cancel/route.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route.js +1 -1
- package/.next/server/app/api/relays/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/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_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/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/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/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/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/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/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/verification/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route.js +1 -1
- package/.next/server/app/api/verification/runs/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]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/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_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_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]/env/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/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]/resolve-target/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +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_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]/skills/[skillId]/git-workflow/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/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_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]/tasks/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/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_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_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_client-reference-manifest.js +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_client-reference-manifest.js +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]/verify/config/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/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/login/page.js +1 -1
- package/.next/server/app/login/page.js.nft.json +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.js +1 -1
- package/.next/server/app/offline/page.js.nft.json +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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/skills/[skillId]/page.js +2 -2
- package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page.js +2 -2
- package/.next/server/app/skills/installed/page.js.nft.json +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page.js +1 -1
- package/.next/server/app/skills/page.js.nft.json +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +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 +11 -11
- 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.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +32 -42
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/1707.js +1 -1
- package/.next/server/chunks/1825.js +1 -1
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3323.js +1 -1
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/366.js +1 -0
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/4443.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6159.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/650.js +1 -1
- package/.next/server/chunks/6661.js +1 -1
- package/.next/server/chunks/7075.js +1 -1
- package/.next/server/chunks/7086.js +15 -0
- package/.next/server/chunks/8550.js +1 -0
- package/.next/server/chunks/8581.js +60 -0
- package/.next/server/chunks/8728.js +2 -2
- package/.next/server/chunks/8807.js +184 -323
- package/.next/server/chunks/8918.js +1 -1
- package/.next/server/chunks/9130.js +3 -3
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +1 -1
- package/.next/server/chunks/{1886.js → 9731.js} +3 -3
- package/.next/server/chunks/{6677.js → 9882.js} +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/CqFH31RhKQbrRZXsMNosJ/_buildManifest.js +1 -0
- package/.next/static/chunks/1032-9e43405ac6bf6848.js +1 -0
- package/.next/static/chunks/2318-af00abceb9b8eab5.js +1 -0
- package/.next/static/chunks/{2407-6fd60b674e20ec06.js → 2407-8fe4e4d0bab1931a.js} +1 -1
- package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
- package/.next/static/chunks/344-6f9fc1f38f01a839.js +1 -0
- package/.next/static/chunks/3504-0100ab50762f591b.js +1 -0
- package/.next/static/chunks/3778-56f41fc2cecb8c43.js +1 -0
- package/.next/static/chunks/4322-f54abdc5d16b7462.js +1 -0
- package/.next/static/chunks/4768-0ad5eb716bed5de9.js +1 -0
- package/.next/static/chunks/4949-a13ace141c0183d6.js +1 -0
- package/.next/static/chunks/5449-550bd273dccc3ae4.js +1 -0
- package/.next/static/chunks/5529-83e705fc4134a503.js +1 -0
- package/.next/static/chunks/{3313.53f7ff985c0c8852.js → 5694.dda65070757534df.js} +1 -1
- package/.next/static/chunks/6322-f1b30ed0ee43518f.js +1 -0
- package/.next/static/chunks/6966-bb854d1145783a64.js +1 -0
- package/.next/static/chunks/{7485.52361bc061cc663a.js → 7485.442b21101fca7257.js} +1 -1
- package/.next/static/chunks/8019-cc6ac1cc033fd5f0.js +1 -0
- package/.next/static/chunks/8283-26ad31a4670ea52d.js +1 -0
- package/.next/static/chunks/8606-e893c1dab6fb81bc.js +1 -0
- package/.next/static/chunks/9619-c3c4c623b0a4f681.js +1 -0
- package/.next/static/chunks/app/api/agents/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/agents/versions/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/release-notes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/relays/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/settings/default-agents/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/templates/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/{error-c1dc1038d0a84a33.js → error-d9a7067074e7f460.js} +1 -1
- package/.next/static/chunks/app/layout-f43045c9edbc4d1f.js +1 -0
- package/.next/static/chunks/app/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/login/{page-af7241bb4c4a8e59.js → page-269a9de3b91a45a2.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/more/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/more/page-3963a5e56e550442.js +1 -0
- package/.next/static/chunks/app/page-0c1a29ff3609bd8b.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/repositories/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/repositories/page-e9ceeefacf87d470.js +1 -0
- package/.next/static/chunks/app/review/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/review/page-3028fe95de490236.js +1 -0
- package/.next/static/chunks/app/sessions/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/sessions/page-3f39f99b878fdda0.js +1 -0
- package/.next/static/chunks/app/skills/[skillId]/page-6f62668eabb635f5.js +1 -0
- package/.next/static/chunks/app/skills/installed/page-c6c4ac5e26c4e73e.js +1 -0
- package/.next/static/chunks/app/skills/page-bec1d4924004d4de.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-f3361237420719b4.js → page-2e98f11956fe1aea.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-0305d80c8ebda4cb.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-373ea37b16d930c7.js +1 -0
- package/.next/static/chunks/{webpack-0281b30457d46ebc.js → webpack-9f75198882fdaf08.js} +1 -1
- package/.next/static/css/2c63c5531f77719e.css +1 -0
- package/.next/trace +13 -14
- package/.next/types/app/api/{assistant/start → app/release-notes}/route.ts +3 -3
- package/.next/types/routes.d.ts +3 -13
- package/.next/types/validator.ts +9 -99
- package/dist/cli/commands/wait.d.ts +45 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +172 -3
- package/dist/server/locales/en/worktree.json +22 -5
- package/dist/server/locales/ja/worktree.json +22 -5
- package/dist/server/src/config/activity-bar-config.js +3 -1
- package/dist/server/src/lib/cli-tools/copilot.js +244 -11
- package/dist/server/src/lib/db/db.js +3 -32
- package/dist/server/src/lib/db/worktree-todo-db.js +1 -2
- package/dist/server/src/lib/detection/cli-patterns.js +39 -2
- package/dist/server/src/lib/detection/tools/codex/prompt.js +15 -1
- package/dist/server/src/lib/hooks/agent-event-types.js +19 -1
- package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +65 -4
- package/dist/server/src/lib/hooks/sources/antigravity/source.js +32 -3
- package/dist/server/src/lib/hooks/sources/claude/source.js +5 -0
- package/dist/server/src/lib/hooks/sources/codex/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/command-code/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/copilot/source.js +3 -0
- package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/legacy-relay.js +2 -0
- package/dist/server/src/lib/hooks/sources/opencode/source.js +2 -0
- package/dist/server/src/lib/session/current-output-builder.js +3 -1
- package/dist/server/src/lib/session/send-user-message.js +112 -17
- package/dist/server/src/lib/verification/verification-reconciler.js +2 -2
- package/package.json +3 -2
- package/release-notes/0.39.0.json +94 -0
- package/.next/server/app/api/assistant/conversation/route.js +0 -1
- package/.next/server/app/api/assistant/conversation/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/current-output/route.js +0 -1
- package/.next/server/app/api/assistant/current-output/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/messages/route.js +0 -1
- package/.next/server/app/api/assistant/messages/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/session/route.js +0 -1
- package/.next/server/app/api/assistant/session/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/start/route.js +0 -32
- package/.next/server/app/api/assistant/start/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/terminal/route.js +0 -34
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/tools/route.js +0 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/todos/route.js +0 -1
- package/.next/server/app/api/todos/route.js.nft.json +0 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +0 -1
- package/.next/server/app/chat/page.js +0 -2
- package/.next/server/app/chat/page.js.nft.json +0 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +0 -1
- package/.next/server/chunks/1366.js +0 -15
- package/.next/server/chunks/1467.js +0 -48
- package/.next/server/chunks/180.js +0 -1
- package/.next/server/chunks/3123.js +0 -1
- package/.next/server/chunks/3708.js +0 -1
- package/.next/server/chunks/5364.js +0 -1
- package/.next/server/chunks/6015.js +0 -1
- package/.next/server/chunks/8118.js +0 -1
- package/.next/server/chunks/8554.js +0 -1
- package/.next/server/chunks/9123.js +0 -13
- package/.next/static/chunks/3160-79d24ca264a528b9.js +0 -1
- package/.next/static/chunks/4322-59a7dbd77a7763cc.js +0 -1
- package/.next/static/chunks/4388-a778968d9c4e9327.js +0 -1
- package/.next/static/chunks/4718-56ebb6e55073ed5e.js +0 -1
- package/.next/static/chunks/4949-7dbce1029c6bdbb9.js +0 -1
- package/.next/static/chunks/5520-8bde9501846ae660.js +0 -1
- package/.next/static/chunks/5694-498765336d0b8c2b.js +0 -1
- package/.next/static/chunks/6402-d91e099c3f2d78f4.js +0 -1
- package/.next/static/chunks/6983-3ed2099251793bdf.js +0 -1
- package/.next/static/chunks/790-d8e6acd26e03679c.js +0 -1
- package/.next/static/chunks/8019-cbf130d0e6334d2d.js +0 -1
- package/.next/static/chunks/934-a37509667baa86ee.js +0 -1
- package/.next/static/chunks/9948-d139e3e5dbecaf73.js +0 -1
- package/.next/static/chunks/app/api/agents/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/agents/versions/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/relays/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/remote/pair/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/settings/default-agents/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/templates/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/chat/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/chat/page-bfc1f5bb17bd771d.js +0 -1
- package/.next/static/chunks/app/layout-114dc6e93e332392.js +0 -1
- package/.next/static/chunks/app/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/more/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/more/page-400ffa825f8f150e.js +0 -1
- package/.next/static/chunks/app/page-a4f03c188610c6c8.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/repositories/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/repositories/page-a15efb4ce1d1721e.js +0 -1
- package/.next/static/chunks/app/review/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/review/page-90ac618489676cbc.js +0 -1
- package/.next/static/chunks/app/sessions/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/sessions/page-b8651c3f17c36800.js +0 -1
- package/.next/static/chunks/app/skills/[skillId]/page-ce8f6fd9e4356580.js +0 -1
- package/.next/static/chunks/app/skills/installed/page-566dfde26d7e63ba.js +0 -1
- package/.next/static/chunks/app/skills/page-7859540e8092aace.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-86ef4510c70adefc.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-2631bc5c4b0a9fb8.js +0 -1
- package/.next/static/css/c511ecdf1e7f18a0.css +0 -1
- package/.next/static/rM1BO5QIz3tynGdyJy0T-/_buildManifest.js +0 -1
- package/.next/types/app/api/assistant/conversation/route.ts +0 -347
- package/.next/types/app/api/assistant/current-output/route.ts +0 -347
- package/.next/types/app/api/assistant/messages/route.ts +0 -347
- package/.next/types/app/api/assistant/session/route.ts +0 -347
- package/.next/types/app/api/assistant/terminal/route.ts +0 -347
- package/.next/types/app/api/assistant/tools/route.ts +0 -347
- package/.next/types/app/api/repositories/[id]/todos/[todoId]/route.ts +0 -347
- package/.next/types/app/api/repositories/[id]/todos/route.ts +0 -347
- package/.next/types/app/api/todos/route.ts +0 -347
- package/.next/types/app/chat/page.ts +0 -84
- package/dist/server/src/lib/db/assistant-conversation-db.js +0 -428
- package/dist/server/src/lib/db/todo-db.js +0 -150
- package/dist/server/src/types/assistant.js +0 -5
- /package/.next/static/{rM1BO5QIz3tynGdyJy0T- → CqFH31RhKQbrRZXsMNosJ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3135],{540:(e,t,s)=>{Promise.resolve().then(s.bind(s,24502))},9219:(e,t,s)=>{"use strict";s.d(t,{k:()=>i});var a=s(95155),r=s(12115),l=s(28019),n=s(87531);function i(e){let{onRefresh:t,enabled:s=!0,className:i,children:o}=e,{containerRef:c,pullDistance:d,isRefreshing:u,isPulling:p}=function(e){let{onRefresh:t,enabled:s=!0,threshold:a=64,maxPull:l=96,resistance:n=.5}=e,i=(0,r.useRef)(null),[o,c]=(0,r.useState)(0),[d,u]=(0,r.useState)(!1),[p,m]=(0,r.useState)(!1),h=(0,r.useRef)(null),x=(0,r.useRef)(0),f=(0,r.useRef)(!1);f.current=d;let g=(0,r.useCallback)(()=>{h.current=null,x.current=0,c(0),m(!1)},[]),b=(0,r.useCallback)(e=>{if(!s||f.current)return;let t=i.current;t&&!(t.scrollTop>0)&&(h.current=e.touches[0].clientY,x.current=0)},[s]),v=(0,r.useCallback)(e=>{if(null===h.current)return;let t=i.current;if(!t)return;if(t.scrollTop>0)return void g();let s=e.touches[0].clientY-h.current;if(s<=0){0!==x.current&&(x.current=0,c(0),m(!1));return}e.cancelable&&e.preventDefault();let a=Math.min(s*n,l);x.current=a,c(a),m(!0)},[n,l,g]),y=(0,r.useCallback)(async()=>{u(!0),m(!1),c(a);try{await Promise.resolve(t())}finally{u(!1),c(0)}},[t,a]),j=(0,r.useCallback)(()=>{if(null===h.current)return;let e=x.current>=a&&!f.current;h.current=null,x.current=0,e?y():(c(0),m(!1))},[a,y]);return(0,r.useEffect)(()=>{let e=i.current;if(e)return e.addEventListener("touchstart",b,{passive:!0}),e.addEventListener("touchmove",v,{passive:!1}),e.addEventListener("touchend",j,{passive:!0}),e.addEventListener("touchcancel",j,{passive:!0}),()=>{e.removeEventListener("touchstart",b),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",j),e.removeEventListener("touchcancel",j)}},[b,v,j]),{containerRef:i,pullDistance:o,isRefreshing:d,isPulling:p}}({onRefresh:t,enabled:s,threshold:64}),m=u||d>0,h=u?1:Math.min(d/64,1);return(0,a.jsxs)("div",{ref:c,className:(0,n.cn)("relative overflow-auto",i),style:{overscrollBehaviorY:"contain"},"data-testid":"pull-to-refresh",children:[(0,a.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-10 flex justify-center",style:{transform:"translateY(".concat(m?Math.max(d-24,8):-32,"px)"),opacity:h,transition:p?"none":"transform 0.2s ease-out, opacity 0.2s ease-out"},"data-testid":"pull-to-refresh-indicator",role:"status","aria-hidden":!u,children:(0,a.jsx)(l.y$,{size:"sm",variant:"accent"})}),(0,a.jsx)("div",{style:{transform:m?"translateY(".concat(d,"px)"):void 0,transition:p?"none":"transform 0.2s ease-out"},children:o})]})}},18514:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]])},24502:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>A});var a=s(95155),r=s(12115),l=s(9219),n=s(38218),i=s(18955),o=s(58734),c=s(28019),d=s(80344);class u{static getInstance(){return u.instance||(u.instance=new u),u.instance}normalize(e){let t=e.match(/^ssh:\/\/git@([^:\/]+)(:\d+)?\/(.+?)(\.git)?$/);if(t)return"https://".concat(t[1],"/").concat(t[3]).toLowerCase().replace(/\/$/,"");let s=e.match(/^git@([^:]+):(.+?)(\.git)?$/);return s?"https://".concat(s[1],"/").concat(s[2]).toLowerCase().replace(/\/$/,""):e.replace(/\.git\/?$/,"").replace(/\/$/,"").toLowerCase()}isSameRepository(e,t){return this.normalize(e)===this.normalize(t)}extractRepoName(e){let t=e.match(/^ssh:\/\/git@[^\/]+\/(.+?)(\.git)?$/);if(t){let e=t[1].split("/");return e[e.length-1]}let s=e.match(/:(.+?)(\.git)?$/);if(s&&e.startsWith("git@")){let e=s[1].split("/");return e[e.length-1]}let a=e.match(/\/([^\/]+?)(\.git)?$/);return a?a[1]:""}getUrlType(e){return e.startsWith("https://")?"https":e.startsWith("git@")||e.startsWith("ssh://")?"ssh":null}validate(e){if(!e||"string"!=typeof e||""===e.trim())return{valid:!1,error:"EMPTY_URL"};let t=e.trim();return t.startsWith("https://")?/^https:\/\/[^\/]+\/[^\/]+\/[^\/]+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:t.startsWith("git@")?/^git@[^:]+:.+\/.+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:t.startsWith("ssh://")?/^ssh:\/\/git@[^\/]+(:\d+)?\/[^\/]+\/.+(\.git)?$/.test(t)?{valid:!0}:{valid:!1,error:"INVALID_URL_FORMAT"}:{valid:!1,error:"INVALID_URL_FORMAT"}}constructor(){}}var p=s(27937),m=s(59847);let h=(0,s(71847).A)("corner-left-up",[["path",{d:"M14 9 9 4 4 9",key:"1af5af"}],["path",{d:"M20 20h-7a4 4 0 0 1-4-4V4",key:"1blwi3"}]]);var x=s(39332);let f="w-full min-h-[44px] flex items-center gap-2 px-3 py-2 rounded-md text-left text-sm text-foreground hover:bg-muted transition-colors touch-manipulation";function g(e){var t,s;let{isOpen:l,onClose:n,onSelect:o,initialPath:u}=e,g=(0,i.c)("common"),[b,v]=(0,r.useState)(null),[y,j]=(0,r.useState)(!1),[N,k]=(0,r.useState)(null),w=(0,r.useCallback)(async e=>{j(!0),k(null);try{v(await d.gC.browse(e))}catch(e){k((0,d.hS)(e))}finally{j(!1)}},[]);(0,r.useEffect)(()=>{if(!l)return;let e=!1;return(async()=>{j(!0),k(null);try{let t=await d.gC.browse(u);if(e)return;let s=u?void 0:t.recentPaths[0];if(s)try{let t=await d.gC.browse(s);e||v(t);return}catch(t){if(e)return}v(t)}catch(t){e||k((0,d.hS)(t))}finally{e||j(!1)}})(),()=>{e=!0}},[l,u]);let C=(0,r.useCallback)(async()=>{let e=null==b?void 0:b.path;e&&(await d.gC.addRecentPath(e).catch(()=>void 0),o(e),n())},[null==b?void 0:b.path,o,n]),S=function(e,t){let s=[{label:"/",path:null}];if(!e)return s;let a=t.filter(t=>e===t||e.startsWith("".concat(t,"/"))).sort((e,t)=>t.length-e.length)[0];if(!a)return s.push({label:e,path:e}),s;s.push({label:a,path:a});let r=e.slice(a.length).split("/").filter(Boolean),l=a;for(let e of r)l="".concat(l,"/").concat(e),s.push({label:e,path:l});return s}(null!=(t=null==b?void 0:b.path)?t:null,null!=(s=null==b?void 0:b.roots)?s:[]),R=null!==b&&null===b.path;return(0,a.jsx)(c.Jh,{isOpen:l,onClose:n,title:g("repositories.pickerTitle"),size:"full",children:(0,a.jsxs)("div",{className:"flex flex-col h-[calc(100vh-12rem)] md:h-[26rem]",children:[(0,a.jsx)("nav",{"aria-label":g("repositories.pickerTitle"),className:"flex items-center flex-wrap gap-1 pb-2 border-b border-border text-xs",children:S.map((e,t)=>{var s;return(0,a.jsxs)(r.Fragment,{children:[t>0&&(0,a.jsx)(p.A,{className:"w-3 h-3 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,a.jsx)("button",{type:"button",onClick:()=>{var t;w(null!=(t=e.path)?t:void 0)},disabled:t===S.length-1,className:"min-h-[32px] px-1.5 rounded font-mono text-muted-foreground hover:text-foreground hover:bg-muted disabled:text-foreground disabled:font-semibold disabled:hover:bg-transparent touch-manipulation",children:e.label})]},null!=(s=e.path)?s:"roots")})}),(0,a.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto py-2",children:[y&&(0,a.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 text-sm text-muted-foreground",children:[(0,a.jsx)(c.y$,{size:"sm"}),g("repositories.pickerLoading")]}),!y&&N&&(0,a.jsx)("p",{className:"px-3 py-2 text-sm text-danger-foreground",children:N}),!y&&!N&&b&&(0,a.jsxs)(a.Fragment,{children:[R&&b.recentPaths.length>0&&(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsx)("p",{className:"px-3 pb-1 text-xs font-medium text-muted-foreground",children:g("repositories.pickerRecentLabel")}),b.recentPaths.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>void w(e),className:f,children:[(0,a.jsx)(m.A,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,a.jsx)("span",{className:"font-mono truncate",children:e})]},e))]}),R&&(0,a.jsx)("p",{className:"px-3 pb-1 text-xs font-medium text-muted-foreground",children:g("repositories.pickerRootsLabel")}),b.parent&&(0,a.jsxs)("button",{type:"button",onClick:()=>{var e;w(null!=(e=b.parent)?e:void 0)},className:f,children:[(0,a.jsx)(h,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),g("repositories.pickerUp")]}),b.entries.map(e=>(0,a.jsxs)("button",{type:"button",onClick:()=>void w(e.path),className:f,children:[(0,a.jsx)(m.A,{className:"w-4 h-4 text-muted-foreground flex-shrink-0","aria-hidden":!0}),(0,a.jsx)("span",{className:"font-mono truncate flex-1",children:e.name}),e.isGitRepo&&(0,a.jsxs)(c.Ex,{variant:"info",className:"flex-shrink-0",children:[(0,a.jsx)(x.A,{className:"w-3 h-3 mr-1","aria-hidden":!0}),null===e.worktreeCount?"git":g("repositories.pickerWorktreeCount",{count:e.worktreeCount})]})]},e.path)),0===b.entries.length&&(0,a.jsx)("p",{className:"px-3 py-2 text-sm text-muted-foreground",children:g("repositories.pickerEmpty")}),b.truncated&&(0,a.jsx)("p",{className:"px-3 py-2 text-xs text-warning-foreground",children:g("repositories.pickerTruncated",{limit:b.entryLimit})})]})]}),(0,a.jsxs)("div",{className:"flex gap-2 pt-2 border-t border-border",children:[(0,a.jsx)(c.$n,{type:"button",variant:"primary",onClick:()=>void C(),disabled:!(null==b?void 0:b.path),className:"min-h-[44px]",children:g("repositories.pickerSelectHere")}),(0,a.jsx)(c.$n,{type:"button",variant:"ghost",onClick:n,className:"min-h-[44px]",children:g("cancel")})]})]})})}let b={ok:"text-success-foreground",warn:"text-warning-foreground",error:"text-danger-foreground"};function v(e){var t,s,l,n,p,m;let{onRepositoryAdded:h}=e,x=(0,i.c)("common"),[f,v]=(0,r.useState)(!1),[y,j]=(0,r.useState)("local"),[N,k]=(0,r.useState)(""),[w,C]=(0,r.useState)(""),[S,R]=(0,r.useState)(!1),[A,E]=(0,r.useState)(!1),[L,T]=(0,r.useState)(!1),[$,D]=(0,r.useState)(!1),[M,P]=(0,r.useState)(null),[z,O]=(0,r.useState)(null),[U,_]=(0,r.useState)(null),[I,F]=(0,r.useState)(!1),[V,W]=(0,r.useState)([]),[H,q]=(0,r.useState)(null),[B,Y]=(0,r.useState)(null),[Z,G]=(0,r.useState)(null),K=u.getInstance(),X=(0,r.useCallback)(async e=>{try{let s=await d.Rx.getCloneStatus(e);if("completed"===s.status)_(x("repositories.cloneSuccess")),D(!1),P(null),C(""),R(!1),v(!1),h&&h();else if("failed"===s.status){var t;O((null==(t=s.error)?void 0:t.message)||x("repositories.cloneFailed")),D(!1),P(null)}else("running"===s.status||"pending"===s.status)&&setTimeout(()=>X(e),2e3)}catch(e){O((0,d.hS)(e)),D(!1),P(null)}},[h,x]);(0,r.useEffect)(()=>{M&&$&&X(M)},[M,$]),(0,r.useEffect)(()=>{if(!f)return;let e=!1;return d.gC.browse().then(t=>{e||W(t.roots)}).catch(()=>void 0),()=>{e=!0}},[f]),(0,r.useEffect)(()=>{let e=N.trim();if(!e){q(null),Y(null);return}let t=!1,s=setTimeout(()=>{d.Rx.validatePath(e).then(s=>{t||(q(s),Y(e))}).catch(()=>{t||(q(null),Y(null))})},400);return()=>{t=!0,clearTimeout(s)}},[N]);let J=(0,r.useCallback)(async e=>{var t,s;let a;if(B===e&&H)return null!=(t=H.duplicateScanRoots)?t:[];try{let t=await Promise.race([d.Rx.validatePath(e).then(t=>(q(t),Y(e),t)),new Promise(e=>{a=setTimeout(()=>e(null),400)})]);return null!=(s=null==t?void 0:t.duplicateScanRoots)?s:[]}catch(e){return[]}finally{void 0!==a&&clearTimeout(a)}},[H,B]),Q=(0,r.useCallback)(async e=>{try{let t=await d.Rx.scan(e);_(t.message),k(""),v(!1),h&&h()}catch(e){O((0,d.hS)(e))}},[h]),ee=async e=>{e.preventDefault();let t=N.trim();if(!t)return void O(x("repositories.pathRequired"));O(null),_(null),E(!0);try{let e=await J(t);if(e.length>0)return void G({path:t,duplicates:e});await Q(t)}finally{E(!1)}},et=(0,r.useCallback)(()=>{G(null),Z&&(E(!0),Q(Z.path).finally(()=>E(!1)))},[Z,Q]),es=async e=>{if(e.preventDefault(),!w.trim())return void O(x("repositories.urlRequired"));let t=K.validate(w.trim());if(!t.valid)return void("EMPTY_URL"===t.error?O(x("repositories.urlRequired")):O(x("repositories.urlInvalid")));O(null),_(null),D(!0);try{let e=await d.Rx.clone(w.trim(),{fork:S});P(e.jobId)}catch(e){O((0,d.hS)(e)),D(!1)}},ea=async()=>{O(null),_(null),T(!0);try{let e=await d.Rx.sync();_(e.message),h&&h()}catch(e){O((0,d.hS)(e))}finally{T(!1)}},er=()=>{v(!1),k(""),C(""),R(!1),O(null),j("local"),G(null)},el=H?(n=x,(p=H).valid?p.isGitRepo?{message:n("repositories.validationGitRepo",{count:null!=(m=p.worktreeCount)?m:1}),intent:"ok"}:{message:n("repositories.validationNotGitRepo"),intent:"warn"}:"not-found"===p.reason?{message:n("repositories.validationNotFound"),intent:"error"}:{message:n("repositories.validationOutsideRoots",{roots:p.allowedRootsLabel}),intent:"error"}):null,en=null!=(t=null==H?void 0:H.duplicateScanRoots)?t:[];return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[!f&&(0,a.jsxs)(c.$n,{"data-testid":"add-repository-button",variant:"primary",size:"sm",onClick:()=>v(!0),children:["+ ",x("repositories.add")]}),(0,a.jsx)(c.$n,{"data-testid":"sync-all-button",variant:"secondary",size:"sm",onClick:ea,disabled:L,children:L?x("repositories.syncing"):x("repositories.syncAll")})]}),f&&(0,a.jsx)(c.Zp,{padding:"lg",children:(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("div",{children:(0,a.jsx)("h3",{className:"text-lg font-semibold mb-2 text-foreground",children:x("repositories.addNewTitle")})}),(0,a.jsxs)(c.tU,{value:y,onValueChange:e=>j(e),children:[(0,a.jsxs)(c.j7,{className:"w-full",children:[(0,a.jsx)(c.Xi,{value:"local",children:x("repositories.localPathTab")}),(0,a.jsx)(c.Xi,{value:"url",children:x("repositories.cloneUrlTab")})]}),(0,a.jsx)(c.av,{value:"local",children:(0,a.jsxs)("form",{onSubmit:ee,className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:x("repositories.localPathDescription")}),(0,a.jsx)("label",{htmlFor:"repositoryPath",className:"block text-sm font-medium text-foreground mb-2",children:x("repositories.localPathLabel")}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.pd,{id:"repositoryPath","data-testid":"repository-path-input",type:"text",value:N,onChange:e=>k(e.target.value),placeholder:"/absolute/path/to/repository",className:"font-mono flex-1",disabled:A}),(0,a.jsxs)(c.$n,{type:"button",variant:"secondary",onClick:()=>F(!0),disabled:A,className:"min-h-[44px] flex-shrink-0",children:[(0,a.jsx)(o.A,{className:"w-4 h-4 mr-1","aria-hidden":!0}),x("repositories.browse")]})]}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:x("repositories.localPathExample",{example:V[0]?"".concat(V[0],"/my-repo"):"/Users/username/projects/my-repo"})}),V.length>0&&(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-1 font-mono break-all",children:x("repositories.localPathAllowedRoots",{roots:V.join(", ")})}),el&&(0,a.jsx)("p",{className:"text-xs mt-1 ".concat(b[el.intent]),children:el.message}),en.length>0&&(0,a.jsx)("p",{className:"text-xs mt-1 text-warning-foreground break-all","data-testid":"duplicate-scan-root-warning",children:x("repositories.duplicateScanRootWarning",{paths:en.join(", ")})})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{"data-testid":"repository-scan-submit",type:"submit",variant:"primary",disabled:A||!N.trim(),children:A?x("repositories.scanning"):x("repositories.scan")}),(0,a.jsx)(c.$n,{type:"button",variant:"ghost",onClick:er,disabled:A,children:x("cancel")})]})]})}),(0,a.jsx)(c.av,{value:"url",children:(0,a.jsxs)("form",{onSubmit:es,className:"space-y-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:x("repositories.cloneUrlDescription")}),(0,a.jsx)("label",{htmlFor:"cloneUrl",className:"block text-sm font-medium text-foreground mb-2",children:x("repositories.cloneUrlLabel")}),(0,a.jsx)(c.pd,{id:"cloneUrl",type:"text",value:w,onChange:e=>C(e.target.value),placeholder:"https://github.com/user/repo.git",className:"font-mono",disabled:$}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:x("repositories.cloneUrlHelp")})]}),(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsx)("input",{id:"forkBeforeClone",type:"checkbox",checked:S,onChange:e=>R(e.target.checked),disabled:$,className:"mt-1"}),(0,a.jsxs)("label",{htmlFor:"forkBeforeClone",className:"text-sm text-foreground",children:[x("repositories.forkOptionLabel"),(0,a.jsx)("span",{className:"block text-xs text-muted-foreground",children:x("repositories.forkOptionHelp")})]})]}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{type:"submit",variant:"primary",disabled:$||!w.trim(),children:$?x("repositories.cloning"):S?x("repositories.forkAndClone"):x("repositories.clone")}),(0,a.jsx)(c.$n,{type:"button",variant:"ghost",onClick:er,disabled:$,children:x("cancel")})]})]})})]})]})}),U&&(0,a.jsx)("div",{className:"p-4 bg-success-subtle border border-success-border rounded-lg",children:(0,a.jsx)("p",{className:"text-sm text-success-foreground",children:U})}),z&&(0,a.jsx)("div",{className:"p-4 bg-danger-subtle border border-danger-border rounded-lg",children:(0,a.jsx)("p",{className:"text-sm text-danger-foreground",children:z})}),(0,a.jsx)(g,{isOpen:I,onClose:()=>F(!1),onSelect:e=>{k(e),O(null)}}),(0,a.jsx)(c.TM,{isOpen:null!==Z,title:x("repositories.duplicateConfirmTitle"),description:x("repositories.duplicateConfirmBody",{path:null!=(s=null==Z?void 0:Z.path)?s:"",paths:(null!=(l=null==Z?void 0:Z.duplicates)?l:[]).join("\n")}),confirmLabel:x("repositories.duplicateConfirmAction"),variant:"default",onConfirm:et,onCancel:()=>G(null)})]})}var y=s(18514),j=s(87531);let N={id:null,value:"",error:null,saving:!1};function k(){return(0,a.jsx)("thead",{className:"bg-muted border-b border-border",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Name"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Display name"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Visibility"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Path"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Worktrees"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Scan"}),(0,a.jsx)("th",{className:"px-4 py-2 text-left font-medium text-foreground",children:"Actions"})]})})}function w(e){let{repo:t,pending:s,onToggle:r}=e,l=t.visible;return(0,a.jsxs)("button",{type:"button",role:"switch","aria-checked":l,"aria-label":l?"Hide ".concat(t.name," from sidebar"):"Show ".concat(t.name," in sidebar"),"data-testid":"visibility-toggle-".concat(t.id),onClick:()=>r(t),disabled:s,className:(0,j.cn)("inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs font-medium","text-muted-foreground transition-colors","hover:bg-muted hover:text-foreground","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:opacity-60 disabled:cursor-not-allowed"),children:[(0,a.jsx)(c.md,{status:l?"ready":"idle",size:"sm",label:l?"Visible":"Hidden","aria-hidden":"true"}),l?"Visible":"Hidden"]})}function C(e){let{repo:t,pending:s,onToggle:r,registerRef:l}=e,n=t.enabled;return(0,a.jsxs)("button",{ref:e=>l(t.id,e),type:"button",role:"switch","aria-checked":n,"aria-label":n?"Exclude ".concat(t.name," from repository scans"):"Include ".concat(t.name," in repository scans"),"data-testid":"scan-toggle-".concat(t.id),onClick:()=>r(t),disabled:s,className:(0,j.cn)("inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs font-medium","text-muted-foreground transition-colors","hover:bg-muted hover:text-foreground","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:opacity-60 disabled:cursor-not-allowed"),children:[(0,a.jsx)(c.md,{status:n?"ready":"idle",size:"sm",label:n?"Enabled":"Disabled","aria-hidden":"true"}),n?"Enabled":"Disabled"]})}function S(e){var t;let{repo:s,onNavigateToScanToggle:r}=e,l=(0,i.c)("common"),n=null!=(t=s.duplicateOf)?t:[];if(0===n.length)return null;let o=l("repositories.duplicateRowDetail",{paths:n.join(", ")});return(0,a.jsx)("button",{type:"button","data-testid":"duplicate-scan-root-".concat(s.id),onClick:()=>r(s.id),title:o,"aria-label":o,className:(0,j.cn)("rounded-full","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring"),children:(0,a.jsx)(c.Ex,{variant:"warning",children:l("repositories.duplicateRowBadge")})})}let R=(0,r.memo)(function(e){var t,s;let{refreshKey:l,onChanged:n}=e,o=(0,i.c)("common"),[u,p]=(0,r.useState)([]),[m,h]=(0,r.useState)(!0),[x,f]=(0,r.useState)(null),[g,b]=(0,r.useState)(N),[v,R]=(0,r.useState)(null),[A,E]=(0,r.useState)(new Set),[L,T]=(0,r.useState)(new Set),[$,D]=(0,r.useState)("all"),[M,P]=(0,r.useState)(null),z=(0,r.useRef)(new Map),O=(0,r.useCallback)((e,t)=>{t?z.current.set(e,t):z.current.delete(e)},[]),U=(0,r.useCallback)(e=>{var t;null==(t=z.current.get(e))||t.focus()},[]),_=(0,r.useCallback)(async()=>{h(!0),f(null);try{let e=await d.Rx.list();p(e.repositories)}catch(e){f((0,d.hS)(e))}finally{h(!1)}},[]);(0,r.useEffect)(()=>{_()},[_,l]);let I=(0,r.useCallback)(e=>{var t;b({id:e.id,value:null!=(t=e.displayName)?t:"",error:null,saving:!1}),R(null)},[]),F=(0,r.useCallback)(()=>{b(N)},[]),V=(0,r.useCallback)(e=>{b(t=>{if(null===t.id)return t;let s=e.length>100?"Display name must be ".concat(100," characters or less"):null;return{...t,value:e,error:s}})},[]),W=(0,r.useCallback)(async e=>{let t=g.value.trim();if(t.length>100)return void b(e=>({...e,error:"Display name must be ".concat(100," characters or less")}));b(e=>({...e,saving:!0,error:null}));try{let s=0===t.length?null:t,a=await d.Rx.updateDisplayName(e.id,s);p(t=>t.map(t=>t.id===e.id?{...t,...a.repository}:t)),b(N),R({type:"success",message:"Display name updated"}),n&&n()}catch(t){let e=(0,d.hS)(t);b(t=>({...t,saving:!1,error:e})),R({type:"error",message:e})}},[g.value,n]),H=(0,r.useCallback)((e,t)=>{"Enter"!==e.key||e.nativeEvent.isComposing?"Escape"===e.key&&(e.preventDefault(),F()):(e.preventDefault(),W(t))},[F,W]),q=(0,r.useCallback)(async e=>{if(A.has(e.id))return;let t=!e.visible;E(t=>{let s=new Set(t);return s.add(e.id),s}),p(s=>s.map(s=>s.id===e.id?{...s,visible:t}:s)),R(null);try{let s=await d.Rx.updateVisibility(e.id,t);p(t=>t.map(t=>t.id===e.id?{...t,...s.repository}:t)),n&&n()}catch(t){p(t=>t.map(t=>t.id===e.id?{...e}:t)),R({type:"error",message:(0,d.hS)(t)})}finally{E(t=>{let s=new Set(t);return s.delete(e.id),s})}},[n,A]),B=(0,r.useCallback)((e,t)=>{T(s=>{let a=new Set(s);return t?a.add(e):a.delete(e),a})},[]),Y=(0,r.useCallback)(async e=>{B(e.id,!0),R(null);try{let t=await d.Rx.updateEnabled(e.id,!1);p(s=>s.map(s=>{var a,r;if(s.id===e.id)return{...s,...t.repository,duplicateOf:[]};let l=(null!=(a=s.duplicateOf)?a:[]).filter(t=>t!==e.path);return l.length===(null!=(r=s.duplicateOf)?r:[]).length?s:{...s,duplicateOf:l}})),R({type:"success",message:o("repositories.disableSuccess",{name:e.name})}),n&&n()}catch(e){R({type:"error",message:(0,d.hS)(e)})}finally{B(e.id,!1)}},[n,B,o]),Z=(0,r.useCallback)(async e=>{B(e.id,!0),R(null);try{var t;let s=await d.Rx.restore(e.path);await _(),R({type:s.warning?"error":"success",message:null!=(t=s.warning)?t:o("repositories.enableSuccess",{name:e.name,count:s.worktreeCount})}),n&&n()}catch(e){R({type:"error",message:(0,d.hS)(e)})}finally{B(e.id,!1)}},[_,n,B,o]),G=(0,r.useCallback)(e=>{if(!L.has(e.id)){if(e.enabled)return void P(e);Z(e)}},[Z,L]),K=(0,r.useCallback)(()=>{P(null),M&&Y(M)},[Y,M]),X=(0,r.useMemo)(()=>u.filter(e=>!e.enabled).length,[u]),J=(0,r.useMemo)(()=>"disabled"===$?u.filter(e=>!e.enabled):u,[$,u]);return m&&0===u.length?(0,a.jsx)(c.Zp,{padding:"none",children:(0,a.jsx)("div",{className:"overflow-x-auto","data-testid":"repository-list-loading",role:"status","aria-label":o("repositories.loading"),children:(0,a.jsxs)("table",{className:"min-w-full text-sm",children:[(0,a.jsx)(k,{}),(0,a.jsx)("tbody",{children:[0,1,2].map(e=>(0,a.jsxs)("tr",{className:"border-b border-border",children:[(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-24"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-20"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-16"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-48"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-10"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-14"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(c.EA,{className:"h-4 w-20"})})]},e))})]})})}):x?(0,a.jsx)(c.Zp,{padding:"lg",children:(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("p",{className:"text-sm text-danger-foreground",children:["Failed to load repositories: ",x]}),(0,a.jsx)(c.$n,{variant:"secondary",size:"sm",onClick:()=>void _(),children:"Retry"})]})}):(0,a.jsxs)("div",{className:"space-y-3",children:[v&&(0,a.jsx)("div",{role:"status",className:"p-3 rounded-lg text-sm ".concat("success"===v.type?"bg-success-subtle border border-success-border text-success-foreground":"bg-danger-subtle border border-danger-border text-danger-foreground"),children:v.message}),(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(c.$n,{variant:"all"===$?"secondary":"ghost",size:"sm","aria-pressed":"all"===$,"data-testid":"repository-filter-all",onClick:()=>D("all"),children:o("repositories.filterAll",{count:u.length})}),(0,a.jsx)(c.$n,{variant:"disabled"===$?"secondary":"ghost",size:"sm","aria-pressed":"disabled"===$,"data-testid":"repository-filter-disabled",onClick:()=>D("disabled"),children:o("repositories.filterDisabled",{count:X})})]}),(0,a.jsx)(c.Zp,{padding:"none",children:(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"min-w-full text-sm",children:[(0,a.jsx)(k,{}),(0,a.jsxs)("tbody",{children:[0===J.length&&(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:7,className:"px-4 py-6 text-center text-muted-foreground",children:"disabled"===$?o("repositories.emptyDisabled"):o("repositories.empty")})}),J.map(e=>{let t=g.id===e.id;return(0,a.jsxs)("tr",{className:(0,j.cn)("border-b border-border",!e.enabled&&"bg-muted/40"),"data-testid":"repository-row-".concat(e.id),children:[(0,a.jsx)("td",{className:"px-4 py-3 align-top text-foreground",children:(0,a.jsxs)("span",{className:"flex flex-wrap items-center gap-1.5",children:[e.name,(0,a.jsx)(S,{repo:e,onNavigateToScanToggle:U})]})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:t?(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)(c.pd,{"aria-label":"Edit display name for ".concat(e.name),type:"text",value:g.value,disabled:g.saving,maxLength:101,onChange:e=>V(e.target.value),onKeyDown:t=>H(t,e)}),g.error&&(0,a.jsx)("p",{className:"text-xs text-danger-foreground",children:g.error})]}):e.displayName?(0,a.jsx)("span",{className:"text-foreground",children:e.displayName}):(0,a.jsx)("span",{className:"text-muted-foreground","aria-hidden":"true",children:"—"})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(w,{repo:e,pending:A.has(e.id),onToggle:q})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)("span",{className:"block max-w-[240px] truncate font-mono text-xs text-muted-foreground",title:e.path,children:e.path})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top text-foreground",children:e.worktreeCount}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:(0,a.jsx)(C,{repo:e,pending:L.has(e.id),onToggle:G,registerRef:O})}),(0,a.jsx)("td",{className:"px-4 py-3 align-top",children:t?(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsx)(c.$n,{variant:"primary",size:"sm",onClick:()=>void W(e),disabled:g.saving||null!==g.error,children:g.saving?"Saving...":"Save"}),(0,a.jsx)(c.$n,{variant:"ghost",size:"sm",onClick:F,disabled:g.saving,children:"Cancel"})]}):(0,a.jsx)(c.$n,{variant:"ghost",size:"sm",className:"px-2",onClick:()=>I(e),"aria-label":"Edit display name for ".concat(e.name),children:(0,a.jsx)(y.A,{className:"h-4 w-4","aria-hidden":"true"})})})]},e.id)})]})]})})}),(0,a.jsx)(c.TM,{isOpen:null!==M,title:o("repositories.disableConfirmTitle"),description:o("repositories.disableConfirmBody",{name:null!=(t=null==M?void 0:M.name)?t:"",count:null!=(s=null==M?void 0:M.worktreeCount)?s:0}),confirmLabel:o("repositories.disableConfirmAction"),variant:"default",onConfirm:K,onCancel:()=>P(null)})]})});function A(){let e=(0,n.a)(),[t,s]=(0,r.useState)(0),i=(0,r.useCallback)(()=>{s(e=>e+1)},[]),o=(0,r.useCallback)(async()=>{s(e=>e+1),await new Promise(e=>setTimeout(e,500))},[]);return(0,a.jsxs)(l.k,{onRefresh:o,enabled:e,className:"container-custom py-8 h-full",children:[(0,a.jsxs)("div",{className:"mb-6",children:[(0,a.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:"Repositories"}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:"Manage repositories and worktrees."})]}),(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsx)(v,{onRepositoryAdded:i}),(0,a.jsx)(R,{refreshKey:t,onChanged:i})]})]})}},27937:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},38218:(e,t,s)=>{"use strict";s.d(t,{D:()=>l,a:()=>n});var a=s(12115);let r=a.useLayoutEffect,l=768;function n(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{breakpoint:t=l}=e,[s,n]=(0,a.useState)(!1);return r(()=>{let e=window.matchMedia("(max-width: ".concat(t-1,"px)"));n(e.matches);let s=e=>{n(e.matches)};return e.addEventListener("change",s),()=>{e.removeEventListener("change",s)}},[t]),s}},39332:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("git-branch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]])},58734:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]])},59847:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])}},e=>{e.O(0,[6809,4909,2770,8019,2407,344,8441,1255,7358],()=>e(e.s=540)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8975],{17442:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>z});var r=a(95155),s=a(12115),n=a(18955),l=a(28019),i=a(52619),d=a.n(i),o=a(20063),c=a(87531),u=a(44308),m=a(55449),p=a(38606),x=a(54014),g=a(46892);let h={in_review:"status.inReview",approval:"status.approval",stalled:"status.stalled"},f=u.DR,v={in_review:e=>"in_review"===e.status,approval:e=>!0===e.isWaitingForResponse,stalled:e=>!0===e.isStalled};function b(e){let{status:t,label:a}=e,s=(0,n.c)("common"),l=g.PL[t],i="".concat(a,": ").concat(s(l.labelKey)),d="w-2.5 h-2.5 rounded-full flex-shrink-0";return"spinner"===l.type?(0,r.jsx)("span",{className:"".concat(d," border-2 border-t-transparent animate-spin ").concat(l.className),title:i}):(0,r.jsx)("span",{className:"".concat(d," ").concat(l.className),title:i})}function y(){var e;let t=(0,n.c)("review"),[a,i]=(0,s.useState)([]),[g,y]=(0,s.useState)(!0),j=(0,o.useSearchParams)(),[w,N]=(0,s.useState)(()=>{var e;return null!=(e=(0,u._d)(null==j?void 0:j.get(u.z7)))?e:u.SD}),S=(0,s.useRef)(null),k=null!=(e=null==j?void 0:j.get(u.z7))?e:null;(0,s.useEffect)(()=>{let e=(0,u._d)(k);e&&N(e)},[k]);let C=(0,s.useCallback)(async()=>{try{let t=await fetch("/api/worktrees?include=review");if(t.ok){var e;let a=await t.json();(0,m.IK)(a.defaultSelectedAgents),i(null!=(e=a.worktrees)?e:[])}}catch(e){}finally{y(!1)}},[]);(0,s.useEffect)(()=>(C(),S.current=setInterval(C,u.Iu),()=>{S.current&&clearInterval(S.current)}),[C]);let P=(0,s.useMemo)(()=>a.filter(v[w]),[a,w]),_=(0,s.useMemo)(()=>({in_review:a.filter(v.in_review).length,approval:a.filter(v.approval).length,stalled:a.filter(v.stalled).length}),[a]),E=(0,s.useMemo)(()=>{switch(w){case"in_review":return t("empty.inReview");case"approval":return t("empty.approval");case"stalled":return t("empty.stalled")}},[w,t]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-6 inline-flex items-center gap-1 rounded-lg bg-muted p-1",role:"group","aria-label":t("filters.ariaLabel"),"data-testid":"review-filters",children:f.map(e=>{let a=w===e;return(0,r.jsxs)("button",{type:"button","aria-pressed":a,onClick:()=>N(e),"data-testid":"review-filter-".concat(e),className:(0,c.cn)("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",a?"bg-accent-500/15 text-accent-700 dark:text-accent-300":"text-muted-foreground hover:text-foreground"),children:[t(h[e]),(0,r.jsx)("span",{className:(0,c.cn)("text-xs font-semibold tabular-nums",a?"text-accent-700 dark:text-accent-300":"text-muted-foreground"),children:_[e]})]},e)})}),g&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-loading",role:"status","aria-label":t("filters.loading"),children:[0,1,2].map(e=>(0,r.jsx)(l.Zp,{padding:"md",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,r.jsx)(l.EA,{className:"h-4 w-40 max-w-full"}),(0,r.jsx)(l.EA,{className:"h-3 w-24 max-w-full"})]}),(0,r.jsx)(l.EA,{className:"ml-4 h-5 w-16 flex-shrink-0"})]})},e))}),!g&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-list",children:0===P.length?(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"review-empty",children:E}):P.map(e=>{var a;let s=null!=(a=e.selectedAgents)?a:(0,m.sA)();return(0,r.jsx)(d(),{href:"/worktrees/".concat(e.id),className:"block","data-testid":"review-item-".concat(e.id),children:(0,r.jsxs)(l.Zp,{padding:"md",className:"transition-colors ".concat(function(e){switch(e){case"in_review":return"border-info-border hover:border-info-border";case"approval":return"border-warning-border hover:border-warning-border";case"stalled":return"border-danger-border hover:border-danger-border"}}(w)),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:e.name}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:e.repositoryName})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0",children:[(0,r.jsx)("span",{className:"px-2 py-0.5 text-xs font-medium rounded ".concat(function(e){switch(e){case"in_review":return"bg-info-subtle text-info-foreground";case"approval":return"bg-warning-subtle text-warning-foreground";case"stalled":return"bg-danger-subtle text-danger-foreground"}}(w)),children:t(h[w])}),s.map(t=>{var a;let s=(0,p.kA)(null==(a=e.sessionStatusByCli)?void 0:a[t]);return(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(b,{status:s,label:(0,x.oo)(t)}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,x.oo)(t)})]},t)})]})]}),e.description&&(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 whitespace-pre-wrap",children:e.description})})]})},e.id)})})]})}function j(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)}function w(e){let{value:t,onChange:a}=e,s=(0,n.c)("review"),i=j(new Date),d=t===i;return(0,r.jsxs)("div",{className:"flex items-center gap-2","data-testid":"report-date-picker",children:[(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{let e=new Date(t+"T00:00:00");e.setDate(e.getDate()-1),a(j(e))},"data-testid":"date-prev","aria-label":s("datePicker.previousDay"),children:"<"}),(0,r.jsx)(l.pd,{type:"date",inputSize:"sm",value:t,max:i,onChange:e=>a(e.target.value),className:"w-auto","data-testid":"date-input"}),(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{if(d)return;let e=new Date(t+"T00:00:00");e.setDate(e.getDate()+1);let r=j(e);r>i||a(r)},disabled:d,"data-testid":"date-next","aria-label":s("datePicker.nextDay"),children:">"})]})}var N=a(36402),S=a(3199),k=a(4138),C=a(60322);let P=[{value:"none",labelKey:"report.modes.none"},{value:"template",labelKey:"report.modes.template"},{value:"custom",labelKey:"report.modes.custom"}];function _(){let e=(0,n.c)("review"),t=(0,N.SC)(),[a,i]=(0,s.useState)(function(){let e=new Date,t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)}()),[d,o]=(0,s.useState)("claude"),[c,m]=(0,s.useState)(""),[p,x]=(0,s.useState)(null),[g,h]=(0,s.useState)(0),[f,v]=(0,s.useState)(""),[b,y]=(0,s.useState)(!1),[j,_]=(0,s.useState)(!1),[E,T]=(0,s.useState)(!1),[z,D]=(0,s.useState)(!1),{copied:A,markCopied:K}=(0,k.q)(),[R,$]=(0,s.useState)(null),O=S.Vt.has(d),{mode:I,setMode:L,userInstruction:M,setUserInstruction:Z,isUserInstructionReadOnly:F,templates:U,selectedTemplateId:J,selectTemplate:q,isLoadingTemplates:B}=function(){let[e,t]=(0,s.useState)("none"),[a,r]=(0,s.useState)(""),[n,l]=(0,s.useState)([]),[i,d]=(0,s.useState)(null),[o,c]=(0,s.useState)(!1),u=(0,s.useCallback)(async()=>{c(!0);try{let e=await fetch("/api/templates");if(e.ok){let t=await e.json();l(t.templates||[])}}catch(e){}finally{c(!1)}},[]);(0,s.useEffect)(()=>{u()},[u]);let m=(0,s.useCallback)(e=>{t(e),r(""),d(null)},[]),p=(0,s.useCallback)(t=>{"custom"===e&&r(t)},[e]),x=(0,s.useCallback)(t=>{let a=n.find(e=>e.id===t);a&&"template"===e&&(d(t),r(a.content))},[n,e]);return{mode:e,setMode:m,userInstruction:a,setUserInstruction:p,isUserInstructionReadOnly:"template"===e,templates:n,selectedTemplateId:i,selectTemplate:x,isLoadingTemplates:o,refreshTemplates:u}}(),H=function(e){let[t,a]=(0,s.useState)({generating:!1}),r=(0,s.useRef)(null),n=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/daily-summary/status");if(e.ok){let t=await e.json();a(t)}}catch(e){}},[]);return(0,s.useEffect)(()=>e?(n(),r.current=setInterval(n,5e3),()=>{r.current&&(clearInterval(r.current),r.current=null)}):void a({generating:!1}),[e,n]),t}(!E),V=H.generating&&!E,W=(0,s.useCallback)(async t=>{_(!0),$(null);try{let a=await fetch("/api/daily-summary?date=".concat(t));if(!a.ok){let t=await a.json();$(t.error||e("report.errors.fetch"));return}let r=await a.json();x(r.report),h(r.messageCount),r.report?v(r.report.content):v(""),y(!1)}catch(t){$(e("report.errors.fetch"))}finally{_(!1)}},[e]);(0,s.useEffect)(()=>{W(a)},[a,W]);let[Y,X]=(0,s.useState)(!1);(0,s.useEffect)(()=>{H.generating?X(!0):Y&&(X(!1),W(a))},[H.generating,Y,W,a]);let G=async()=>{if(!p||await t({description:e("report.regenerateConfirm")})){T(!0),$(null);try{let t={date:a,tool:d};O&&c.trim()&&(t.model=c.trim()),"none"!==I&&M.trim()&&(t.userInstruction=M.trim());let r=await fetch("/api/daily-summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(429===r.status)return void $(e("report.errors.rateLimited"));if(!r.ok){let t=await r.json();$(t.error||e("report.errors.generate"));return}let s=await r.json();x(s.report),v(s.report.content),y(!1)}catch(t){$(e("report.errors.generate"))}finally{T(!1)}}},Q=async()=>{if(!f.trim())return void $(e("report.errors.emptyContent"));D(!0),$(null);try{let t=await fetch("/api/daily-summary",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({date:a,content:f})});if(!t.ok){let a=await t.json();$(a.error||e("report.errors.save"));return}let r=await t.json();x(r.report),y(!1)}catch(t){$(e("report.errors.save"))}finally{D(!1)}};return(0,r.jsxs)("div",{"data-testid":"report-tab",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4 mb-6",children:[(0,r.jsx)(w,{value:a,onChange:e=>{i(e)}}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("label",{className:"text-sm text-muted-foreground",children:e("report.toolLabel")}),(0,r.jsx)("select",{value:d,onChange:e=>o(e.target.value),className:"px-3 py-1 text-sm rounded border border-input bg-surface dark:bg-surface-2 text-surface-foreground","data-testid":"tool-selector",children:u.IH.map(e=>(0,r.jsx)("option",{value:e,children:e},e))}),O&&(0,r.jsx)(l.pd,{type:"text",inputSize:"sm",placeholder:"opencode"===d?e("report.modelPlaceholderOpencode"):e("report.modelPlaceholder"),value:c,onChange:e=>m(e.target.value),className:"w-auto","data-testid":"model-input"})]})]}),(0,r.jsxs)("div",{className:"mb-4","data-testid":"generation-mode-selector",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-foreground mb-2 block",children:e("report.generationMode")}),(0,r.jsx)(l.z6,{value:I,onValueChange:e=>L(e),name:"generation-mode",className:"flex flex-row gap-4",children:P.map(t=>(0,r.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[(0,r.jsx)(l.CU,{value:t.value,"data-testid":"mode-radio-".concat(t.value)}),(0,r.jsx)("span",{className:"text-foreground",children:e(t.labelKey)})]},t.value))})]}),"template"===I&&(0,r.jsxs)("div",{className:"mb-4","data-testid":"template-selector",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-foreground mb-2 block",children:e("report.selectTemplate")}),B?(0,r.jsx)(l.EA,{className:"h-9 w-full","data-testid":"report-template-loading",role:"status","aria-label":e("report.loadingTemplates"),"aria-hidden":void 0}):0===U.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground",children:e("report.noTemplates")}):(0,r.jsxs)("select",{value:J||"",onChange:e=>q(e.target.value),className:"px-3 py-1 text-sm rounded border border-input bg-surface dark:bg-surface-2 text-surface-foreground","data-testid":"template-select",children:[(0,r.jsx)("option",{value:"",children:e("report.templatePlaceholderOption")}),U.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),"none"!==I&&(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)(l.k_,{value:M,onChange:e=>Z(e.target.value),rows:3,maxLength:u.t7,readOnly:F,placeholder:"template"===I?e("report.instructionPlaceholderTemplate"):e("report.instructionPlaceholderCustom"),className:"resize-y ".concat(F?"bg-muted cursor-not-allowed":""),"data-testid":"user-instruction-input"})}),(0,r.jsx)("div",{className:"mb-6",children:(0,r.jsx)(l.$n,{variant:"primary",onClick:G,disabled:E||V||0===g,"data-testid":"generate-button",children:E||V?e("report.generating"):e("report.generate")})}),(0,r.jsx)("div",{className:"mb-4 text-sm text-muted-foreground","data-testid":"message-count",children:j?(0,r.jsx)(l.EA,{className:"h-4 w-48"}):0===g?e("report.noMessages"):e("report.messagesFound",{count:g})}),R&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"report-error",children:R}),(E||V)&&(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4 text-sm text-muted-foreground","data-testid":"generating-spinner",children:[(0,r.jsx)(l.y$,{size:"sm",variant:"muted"}),V&&H.tool?H.startedAt?e("report.generatingRemoteWithTime",{tool:H.tool,seconds:Math.round((Date.now()-new Date(H.startedAt).getTime())/1e3)}):e("report.generatingRemote",{tool:H.tool}):e("report.generatingSummary")]}),!j&&p&&(0,r.jsxs)(l.Zp,{"data-testid":"report-content",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,r.jsxs)("div",{className:"text-xs text-muted-foreground",children:[e("report.generatedBy",{tool:p.generatedByTool}),p.model&&" (".concat(p.model,")")]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:async()=>{await (0,C.l)(p.content),K()},"data-testid":"copy-report-button",children:A?e("report.copied"):e("report.copy")}),(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{b?Q():y(!0)},disabled:z,"data-testid":"edit-save-button",children:z?e("report.saving"):b?e("report.save"):e("report.edit")})]})]}),b?(0,r.jsx)(l.k_,{value:f,onChange:e=>v(e.target.value),className:"h-64 p-3 font-mono","data-testid":"report-editor"}):(0,r.jsx)("div",{className:"prose dark:prose-invert max-w-none text-sm whitespace-pre-wrap","data-testid":"report-preview",children:p.content})]})]})}function E(){let e=(0,n.c)("review"),t=(0,N.SC)(),[a,i]=(0,s.useState)([]),[d,o]=(0,s.useState)(!1),[c,m]=(0,s.useState)(null),[p,x]=(0,s.useState)(""),[g,h]=(0,s.useState)(""),[f,v]=(0,s.useState)(!1),[b,y]=(0,s.useState)(null),[j,w]=(0,s.useState)(""),[S,k]=(0,s.useState)(""),[C,P]=(0,s.useState)(!1),_=(0,s.useCallback)(async()=>{o(!0),m(null);try{let t=await fetch("/api/templates");if(!t.ok){let a=await t.json();m(a.error||e("template.errors.fetch"));return}let a=await t.json();i(a.templates||[])}catch(t){m(e("template.errors.fetch"))}finally{o(!1)}},[e]);(0,s.useEffect)(()=>{_()},[_]);let E=async()=>{if(!p.trim()||!g.trim())return void m(e("template.errors.nameAndContentRequired"));v(!0),m(null);try{let t=await fetch("/api/templates",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:p.trim(),content:g.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.create"));return}x(""),h(""),await _()}catch(t){m(e("template.errors.create"))}finally{v(!1)}},T=async()=>{if(!b||!j.trim()||!S.trim())return void m(e("template.errors.nameAndContentRequired"));P(!0),m(null);try{let t=await fetch("/api/templates/".concat(b),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:j.trim(),content:S.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.update"));return}y(null),await _()}catch(t){m(e("template.errors.update"))}finally{P(!1)}},z=async a=>{if(await t({description:e("template.deleteConfirm"),variant:"danger"})){m(null);try{let t=await fetch("/api/templates/".concat(a),{method:"DELETE"});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.delete"));return}await _()}catch(t){m(e("template.errors.delete"))}}},D=()=>{y(null),w(""),k("")};return(0,r.jsxs)("div",{"data-testid":"template-tab",children:[c&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"template-error",children:c}),(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-foreground mb-3",children:e("template.heading",{count:a.length,max:u.$h})}),d?(0,r.jsx)("div",{className:"space-y-3","data-testid":"template-loading",role:"status","aria-label":e("template.loading"),children:[0,1].map(e=>(0,r.jsx)(l.Zp,{padding:"md",children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l.EA,{className:"h-4 w-32"}),(0,r.jsx)(l.EA,{className:"h-3 w-full"}),(0,r.jsx)(l.EA,{className:"h-3 w-2/3"})]})},e))}):0===a.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground","data-testid":"template-empty",children:e("template.empty")}):(0,r.jsx)("div",{className:"space-y-3","data-testid":"template-list",children:a.map(t=>(0,r.jsx)(l.Zp,{padding:"sm","data-testid":"template-item-".concat(t.id),children:b===t.id?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(l.pd,{type:"text",inputSize:"sm",value:j,onChange:e=>w(e.target.value),maxLength:u.Nb,"data-testid":"edit-name-input"}),(0,r.jsx)(l.k_,{value:S,onChange:e=>k(e.target.value),maxLength:u.bm,rows:3,className:"resize-y","data-testid":"edit-content-input"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(l.$n,{variant:"primary",size:"sm",onClick:T,disabled:C,"data-testid":"edit-save-button",children:C?e("template.saving"):e("template.save")}),(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:D,"data-testid":"edit-cancel-button",children:e("template.cancel")})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,r.jsx)("span",{className:"font-medium text-sm text-foreground","data-testid":"template-name",children:t.name}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>{y(t.id),w(t.name),k(t.content)},"data-testid":"edit-button-".concat(t.id),children:e("template.edit")}),(0,r.jsx)(l.$n,{variant:"danger",size:"sm",onClick:()=>z(t.id),"data-testid":"delete-button-".concat(t.id),children:e("template.delete")})]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground whitespace-pre-wrap","data-testid":"template-content",children:t.content})]})},t.id))})]}),a.length<u.$h&&(0,r.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg shadow-sm","data-testid":"create-form",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-3",children:e("template.newHeading")}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(l.pd,{type:"text",value:p,onChange:e=>x(e.target.value),maxLength:u.Nb,placeholder:e("template.namePlaceholder"),"data-testid":"new-name-input"}),(0,r.jsx)(l.k_,{value:g,onChange:e=>h(e.target.value),maxLength:u.bm,rows:3,placeholder:e("template.contentPlaceholder"),className:"resize-y","data-testid":"new-content-input"}),(0,r.jsx)(l.$n,{variant:"primary",onClick:E,disabled:f||!p.trim()||!g.trim(),"data-testid":"create-button",children:f?e("template.creating"):e("template.create")})]})]})]})}let T=[{value:"review",labelKey:"tabs.review"},{value:"report",labelKey:"tabs.report"},{value:"template",labelKey:"tabs.template"}];function z(){let e=(0,n.c)("review"),[t,a]=(0,s.useState)("review");return(0,r.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("page.title")}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:e("page.description")})]}),(0,r.jsxs)(l.tU,{value:t,onValueChange:e=>a(e),children:[(0,r.jsx)(l.j7,{className:"mb-6 w-full justify-start","data-testid":"page-tabs",children:T.map(t=>(0,r.jsx)(l.Xi,{value:t.value,"data-testid":"page-tab-".concat(t.value),children:e(t.labelKey)},t.value))}),(0,r.jsx)(l.av,{value:"review",children:(0,r.jsx)(s.Suspense,{fallback:null,children:(0,r.jsx)(y,{})})}),(0,r.jsx)(l.av,{value:"report",children:(0,r.jsx)(_,{})}),(0,r.jsx)(l.av,{value:"template",children:(0,r.jsx)(E,{})})]})]})}},20063:(e,t,a)=>{"use strict";var r=a(47260);a.o(r,"useParams")&&a.d(t,{useParams:function(){return r.useParams}}),a.o(r,"usePathname")&&a.d(t,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}}),a.o(r,"useSearchParams")&&a.d(t,{useSearchParams:function(){return r.useSearchParams}})},44308:(e,t,a)=>{"use strict";a.d(t,{$h:()=>u,DR:()=>s,IH:()=>o,Iu:()=>r,Nb:()=>m,SD:()=>n,_d:()=>d,bm:()=>p,ks:()=>i,t7:()=>c,z7:()=>l});let r=7e3,s=["in_review","approval","stalled"],n="in_review",l="filter",i="/review?".concat(l,"=approval");function d(e){return e&&s.includes(e)?e:null}let o=["claude","codex","copilot","antigravity","opencode"],c=1e3,u=5,m=100,p=1e3},46892:(e,t,a)=>{"use strict";a.d(t,{PL:()=>s,sb:()=>n});let r={idle:"bg-muted-foreground",ready:"bg-success",spinner:"border-info",waiting:"bg-warning"},s={idle:{className:r.idle,labelKey:"status.idle",type:"dot"},ready:{className:r.ready,labelKey:"status.ready",type:"dot"},running:{className:r.spinner,labelKey:"status.running",type:"spinner"},waiting:{className:r.waiting,labelKey:"status.waiting",type:"dot"},generating:{className:r.spinner,labelKey:"status.generating",type:"spinner"}},n={idle:"detailStatus.idle",ready:"detailStatus.ready",running:"detailStatus.running",waiting:"detailStatus.waiting"}},60322:(e,t,a)=>{"use strict";a.d(t,{l:()=>s});let r=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function s(e){var t;if(!e||0===e.trim().length)return;let a=e.replace(r,"");if(null==(t=navigator.clipboard)?void 0:t.writeText)try{await navigator.clipboard.writeText(a);return}catch(e){}let s=document.createElement("textarea");s.value=a,s.style.position="fixed",s.style.left="-9999px",s.style.top="-9999px",s.style.opacity="0",document.body.appendChild(s),s.focus(),s.select();try{document.execCommand("copy")}finally{document.body.removeChild(s)}}},80488:(e,t,a)=>{Promise.resolve().then(a.bind(a,17442))}},e=>{e.O(0,[6809,4909,2770,2619,8019,5449,8606,998,8441,1255,7358],()=>e(e.s=80488)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8898],{9219:(e,t,s)=>{"use strict";s.d(t,{k:()=>l});var n=s(95155),a=s(12115),r=s(28019),i=s(87531);function l(e){let{onRefresh:t,enabled:s=!0,className:l,children:o}=e,{containerRef:c,pullDistance:d,isRefreshing:u,isPulling:m}=function(e){let{onRefresh:t,enabled:s=!0,threshold:n=64,maxPull:r=96,resistance:i=.5}=e,l=(0,a.useRef)(null),[o,c]=(0,a.useState)(0),[d,u]=(0,a.useState)(!1),[m,x]=(0,a.useState)(!1),h=(0,a.useRef)(null),f=(0,a.useRef)(0),g=(0,a.useRef)(!1);g.current=d;let p=(0,a.useCallback)(()=>{h.current=null,f.current=0,c(0),x(!1)},[]),b=(0,a.useCallback)(e=>{if(!s||g.current)return;let t=l.current;t&&!(t.scrollTop>0)&&(h.current=e.touches[0].clientY,f.current=0)},[s]),v=(0,a.useCallback)(e=>{if(null===h.current)return;let t=l.current;if(!t)return;if(t.scrollTop>0)return void p();let s=e.touches[0].clientY-h.current;if(s<=0){0!==f.current&&(f.current=0,c(0),x(!1));return}e.cancelable&&e.preventDefault();let n=Math.min(s*i,r);f.current=n,c(n),x(!0)},[i,r,p]),y=(0,a.useCallback)(async()=>{u(!0),x(!1),c(n);try{await Promise.resolve(t())}finally{u(!1),c(0)}},[t,n]),w=(0,a.useCallback)(()=>{if(null===h.current)return;let e=f.current>=n&&!g.current;h.current=null,f.current=0,e?y():(c(0),x(!1))},[n,y]);return(0,a.useEffect)(()=>{let e=l.current;if(e)return e.addEventListener("touchstart",b,{passive:!0}),e.addEventListener("touchmove",v,{passive:!1}),e.addEventListener("touchend",w,{passive:!0}),e.addEventListener("touchcancel",w,{passive:!0}),()=>{e.removeEventListener("touchstart",b),e.removeEventListener("touchmove",v),e.removeEventListener("touchend",w),e.removeEventListener("touchcancel",w)}},[b,v,w]),{containerRef:l,pullDistance:o,isRefreshing:d,isPulling:m}}({onRefresh:t,enabled:s,threshold:64}),x=u||d>0,h=u?1:Math.min(d/64,1);return(0,n.jsxs)("div",{ref:c,className:(0,i.cn)("relative overflow-auto",l),style:{overscrollBehaviorY:"contain"},"data-testid":"pull-to-refresh",children:[(0,n.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-10 flex justify-center",style:{transform:"translateY(".concat(x?Math.max(d-24,8):-32,"px)"),opacity:h,transition:m?"none":"transform 0.2s ease-out, opacity 0.2s ease-out"},"data-testid":"pull-to-refresh-indicator",role:"status","aria-hidden":!u,children:(0,n.jsx)(r.y$,{size:"sm",variant:"accent"})}),(0,n.jsx)("div",{style:{transform:x?"translateY(".concat(d,"px)"):void 0,transition:m?"none":"transform 0.2s ease-out"},children:o})]})}},80003:(e,t,s)=>{"use strict";s.d(t,{A:()=>n});let n=(0,s(71847).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},87047:(e,t,s)=>{Promise.resolve().then(s.bind(s,89569))},89569:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>eo});var n=s(95155),a=s(12115),r=s(52619),i=s.n(r),l=s(18955),o=s(20562),c=s(8803),d=s(9219),u=s(37586),m=s(22479),x=s(54485),h=s(84228),f=s(83051),g=s(14006),p=s(73333),b=s(2954),v=s(28019),y=s(62560),w=s(308),j=s(80635),k=s(52407);function N(){let{signals:e}=(0,k.Fx)();return(0,a.useMemo)(()=>({offline:(0,k.sV)(e),reachable:(0,k._X)(e)}),[e])}var A=s(66966);let C=Object.freeze({enabled:!1,expiresAt:null});var M=s(81507),S=s(2317),L=s(75676),I=s(63881),E=s(8355),P=s(80344),T=s(38606),R=s(54014),_=s(55449),D=s(67149),z=s(68394);let F=[{mode:"chat",labelKey:"surfaceMode.showChat",icon:u.A},{mode:"terminal",labelKey:"surfaceMode.showTerminal",icon:m.A}];function U(e){return"flex h-7 w-7 shrink-0 items-center justify-center rounded transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ".concat(e?"bg-accent-500/15 text-accent-600 dark:text-accent-400":"text-muted-foreground hover:bg-muted hover:text-foreground")}let K=()=>{},O=(0,a.memo)(function(e){return e.connectivity?(0,n.jsx)(Y,{...e,connectivity:e.connectivity}):(0,n.jsx)(B,{...e})});function B(e){let t=N();return(0,n.jsx)(Y,{...e,connectivity:t})}function Y(e){var t,s,r,o,c,d,u;let{worktree:m,enabled:k,connectivity:N,className:O=""}=e,B=(0,l.c)("common"),Y=(0,l.c)("worktree"),V=(0,a.useMemo)(()=>{var e;return m.agentInstances&&m.agentInstances.length>0?m.agentInstances:(0,R.lu)(null!=(e=m.selectedAgents)?e:(0,_.sA)())},[m]),[H,q]=(0,a.useState)(null),W=null!=(s=V.find(e=>e.id===H))?s:V[0],G=null==W?void 0:W.id,J=null!=(r=null==W?void 0:W.cliTool)?r:"claude",Q=null!=G?G:J,{surfaceMode:X,setSurfaceMode:$}=function(e){let{value:t,setValue:s}=(0,S.V)({key:"".concat("commandmate.sessions.tileSurfaceMode-").concat(e),defaultValue:"chat",validate:L.jg,serialize:e=>e,deserialize:e=>e});return{surfaceMode:t,setSurfaceMode:(0,a.useCallback)(e=>s(e),[s])}}(m.id),{visible:Z,toggle:ee}=(0,M.TG)(M.jt),et="terminal"===X,es=et&&Z,[en,ea]=(0,a.useState)(null),[er,ei]=(0,a.useState)(null),el=(0,I.b4)(en,er,240),{terminal:eo,prompt:ec,refresh:ed,setAutoScroll:eu}=(0,y.NK)({worktreeId:m.id,cliToolId:J,instanceId:G,enabled:k,cadence:D.sD}),{messages:em,isLoading:ex,refresh:eh}=(0,w.Md)({worktreeId:m.id,cliToolId:J,instanceId:G,enabled:k&&(!et||Z),cadence:D.WT}),ef=(0,a.useCallback)((e,t)=>P.y.sendMessage(m.id,e,t),[m.id]),{messages:eg,sendOptimistic:ep,retry:eb,discard:ev}=(0,j.v4)({worktreeId:m.id,serverMessages:em,sendFn:ef,onSent:eh,connectivity:N}),ey=(0,a.useMemo)(()=>(function(e,t){let s=e=>{var s;return void 0!==e.optimisticState&&(null!=(s=e.instanceId)?s:e.cliToolId)!==t};return e.some(s)?e.filter(e=>!s(e)):e})(eg,Q),[eg,Q]),[ew,ej]=(0,a.useState)(null),ek=(0,a.useCallback)(()=>ej(null),[]),eN=(0,a.useCallback)(e=>{let t=ev(e);t&&ej(t)},[ev]),eA=(0,a.useCallback)(()=>{ed()},[ed]),eC=function(e){var t;let{worktree:s,cliToolId:n,instanceId:r}=e,i=null==(t=(0,A.rC)())?void 0:t.refresh,l=s.id,o=(0,a.useMemo)(()=>(function(e,t){var s;let n=null==(s=e.autoYesByInstance)?void 0:s[t];return n&&!0===n.enabled?{enabled:!0,expiresAt:"number"==typeof n.expiresAt?n.expiresAt:null}:C})(s,r),[s,r]),[c,d]=(0,a.useState)(null),u=(0,a.useRef)(s);u.current=s;let m=null===c||c.instanceId!==r||function(e,t,s){let n=t.enabled===e.value.enabled&&(!t.enabled||t.expiresAt===e.value.expiresAt),a=null!==e.settledRow&&s!==e.settledRow;return n||a}(c,o,s)?null:c;(0,a.useEffect)(()=>{null!==c&&null===m&&d(null)},[c,m]);let x=(0,a.useCallback)(async e=>{let t;try{let s=await fetch("/api/worktrees/".concat(encodeURIComponent(l),"/auto-yes"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e.enabled,cliToolId:n,instanceId:r,duration:e.duration,stopPattern:e.stopPattern})});if(!s.ok)return;let a=await s.json(),i=!0===a.enabled;t={enabled:i,expiresAt:i&&"number"==typeof a.expiresAt?a.expiresAt:null}}catch(e){return}let s={instanceId:r,value:t,settledRow:null};d(s);try{await (null==i?void 0:i())}catch(e){}d(e=>e===s?{...s,settledRow:u.current}:e)},[l,n,r,i]),h=m?m.value:o;return{enabled:h.enabled,expiresAt:h.expiresAt,toggle:x}}({worktree:m,cliToolId:J,instanceId:Q}),eM=(0,a.useMemo)(()=>({isRunning:eo.isRunning,attaching:eo.attaching,sessionStatus:eo.sessionStatus,isThinking:eo.isThinking,isPromptWaiting:ec.visible,promptData:ec.data,isSelectionListActive:eo.isSelectionListActive,isPagerActive:eo.isPagerActive,isDismissablePanelActive:eo.isDismissablePanelActive,isUnclassifiedActive:eo.isUnclassifiedActive}),[eo.isRunning,eo.attaching,eo.sessionStatus,eo.isThinking,eo.isSelectionListActive,eo.isPagerActive,eo.isDismissablePanelActive,eo.isUnclassifiedActive,ec.visible,ec.data]),eS=(0,a.useCallback)(e=>$(e),[$]),eL=(0,a.useMemo)(()=>({isLoading:ex,onRetryPending:eb,onDiscardPending:eN,onInsertToMessage:ej}),[ex,eb,eN]),{compactTuiLayoutPadding:eI,preservePaintedPanelRows:eE}=(0,a.useMemo)(()=>(0,z.EK)(J),[J]),eP="opencode"===J||"copilot"===J,eT=(u=m.id,"session-tile-history-".concat(u)),eR=(0,a.useCallback)(e=>{q(e.target.value)},[]),e_=null!=(o=m.branch)?o:m.name,eD=null!=(c=m.repositoryDisplayName)?c:m.repositoryName,ez=(0,T.kA)(G?null==(t=m.sessionStatusByInstance)?void 0:t[G]:void 0);return(0,n.jsxs)("section",{className:"flex h-full min-w-0 flex-col overflow-hidden rounded-lg border border-border bg-surface shadow-sm ".concat(O),"data-testid":"session-tile-".concat(m.id),"data-enabled":k?"true":"false","aria-label":B("sessions.tileAriaLabel",{branch:e_}),children:[(0,n.jsxs)("header",{className:"flex shrink-0 items-center gap-2 border-b border-border px-3 py-2",children:[(0,n.jsx)(v.md,{status:ez,size:"sm",label:B("status.".concat(ez))}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:eD}),(0,n.jsx)(i(),{href:"/worktrees/".concat(m.id),className:"block truncate text-sm font-medium text-foreground underline-offset-2 hover:text-accent-600 hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring dark:hover:text-accent-400","data-testid":"session-tile-branch-".concat(m.id),title:e_,children:e_})]}),V.length>1&&(0,n.jsx)("select",{value:null!=(d=null==W?void 0:W.id)?d:"",onChange:eR,className:"max-w-[9rem] shrink-0 rounded-md border border-border bg-surface px-2 py-1 text-xs text-muted-foreground transition-colors hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring","data-testid":"session-tile-instance-".concat(m.id),"aria-label":B("sessions.tileInstanceAriaLabel"),children:V.map(e=>(0,n.jsx)("option",{value:e.id,children:(0,R.sw)(e)},e.id))}),et&&(0,n.jsx)("button",{type:"button",onClick:ee,"aria-pressed":Z,"aria-expanded":Z,"aria-controls":eT,"aria-label":Z?Y("terminal.hideHistory"):Y("terminal.showHistory"),title:Z?Y("terminal.hideHistory"):Y("terminal.showHistory"),className:U(Z),"data-testid":"session-tile-history-toggle-".concat(m.id),children:(0,n.jsx)(x.A,{size:14,"aria-hidden":"true"})}),(0,n.jsx)("div",{role:"group","aria-label":Y("surfaceMode.groupLabelMobile"),className:"flex shrink-0 items-center gap-0.5 rounded-md border border-border p-0.5","data-testid":"session-tile-surface-mode-".concat(m.id),children:F.map(e=>{let{mode:t,labelKey:s,icon:a}=e,r=X===t,i=Y(s);return(0,n.jsx)("button",{type:"button",onClick:()=>$(t),"aria-pressed":r,"aria-label":i,title:i,className:U(r),"data-testid":"session-tile-surface-".concat(t,"-").concat(m.id),children:(0,n.jsx)(a,{size:14,"aria-hidden":"true"})},t)})})]}),(0,n.jsx)("div",{ref:ea,className:"min-w-0 flex-1 overflow-hidden ".concat("min-h-[15rem]"),"data-testid":"session-tile-body-".concat(m.id),children:k&&et?(0,n.jsxs)("div",{className:"flex h-full min-h-0 min-w-0 flex-col","data-testid":"session-tile-terminal-stack-".concat(m.id),children:[(0,n.jsx)("div",{className:"relative min-w-0 overflow-hidden ".concat(es?"flex-[3_3_0%] min-h-[8.5rem]":"min-h-0 flex-1"),"data-testid":"session-tile-terminal-".concat(m.id),children:(0,n.jsx)(g.D,{output:eo.output,isActive:eo.isRunning,attaching:eo.attaching,isThinking:eo.isThinking,autoScroll:eo.autoScroll,onScrollChange:eu,disableAutoFollow:eP,compactTuiLayoutPadding:eI,preservePaintedPanelRows:eE,wrapMode:z.Wq.wrapMode,density:z.Wq.density})}),es&&(0,n.jsx)("div",{id:eT,className:"min-w-0 overflow-hidden border-t border-border ".concat("flex-[2_2_0%] min-h-[6.5rem]"),"data-testid":"session-tile-history-".concat(m.id),children:(0,n.jsx)(f.bl,{messages:ey,worktreeId:m.id,worktreePath:m.path,cliToolId:J,isLoading:ex,onFilePathClick:K,onInsertToMessage:ej,onRetryPending:eb,onDiscardPending:eN,className:"h-full"})})]}):k?(0,n.jsx)(h.wY,{messages:ey,worktreeId:m.id,worktreePath:m.path,cliToolId:J,instanceId:G,live:eM,frame:eo.output,onKeysSent:ed,onSurfaceModeChange:eS,compact:!0,history:eL}):(0,n.jsx)("div",{className:"h-full","data-testid":"session-tile-placeholder-".concat(m.id),"aria-hidden":"true"})}),k&&(0,n.jsx)("div",{ref:ei,className:"shrink-0 border-t border-border p-2","data-testid":"session-tile-composer-".concat(m.id),children:(0,n.jsx)(p.E,{worktreeId:m.id,cliToolId:J,instanceId:Q,isSessionRunning:eo.isRunning,onOptimisticSend:ep,onMessageSent:eA,pendingInsertText:ew,onInsertConsumed:ek,heightScope:E.CM,maxHeight:el,autoYesSlot:(0,n.jsx)(b.T,{enabled:eC.enabled,expiresAt:eC.expiresAt,onToggle:eC.toggle,lastAutoResponse:null,cliToolName:J,inline:!0})})})]})}let V=(0,a.memo)(function(e){let{worktree:t,connectivity:s}=e,{ref:r,inViewport:i}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{rootMargin:t,threshold:s}=e,[n,r]=(0,a.useState)(!1),[i,l]=(0,a.useState)(null),o=(0,a.useCallback)(e=>{l(e)},[]);return(0,a.useEffect)(()=>{if("undefined"==typeof IntersectionObserver)return void r(!0);if(!i)return;let e=new IntersectionObserver(e=>{let t=e[e.length-1];t&&r(t.isIntersecting)},{rootMargin:t,threshold:s});return e.observe(i),()=>e.disconnect()},[i,t,s]),{ref:o,inViewport:n}}({rootMargin:"560px"});return(0,n.jsx)("div",{ref:r,className:"min-w-0 ".concat("h-[35rem]"),children:(0,n.jsx)(O,{worktree:t,enabled:i,connectivity:s})})}),H=(0,a.memo)(function(e){let{worktrees:t}=e,s=N();return(0,n.jsx)("div",{className:"grid grid-cols-1 gap-4 xl:grid-cols-2","data-testid":"sessions-tile-grid",children:t.map(e=>(0,n.jsx)(V,{worktree:e,connectivity:s},e.id))})});var q=s(80003);let W=(0,s(71847).A)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]),G=["list","tile"];function J(e){return"string"==typeof e&&G.includes(e)}let Q=[{mode:"list",labelKey:"sessions.viewMode.list",icon:q.A},{mode:"tile",labelKey:"sessions.viewMode.tile",icon:W}],X=(0,a.memo)(function(e){let{value:t,onChange:s}=e,a=(0,l.c)("common");return(0,n.jsx)("div",{className:"flex shrink-0 items-center gap-1 rounded-md border border-input bg-surface p-0.5",role:"group","aria-label":a("sessions.viewMode.groupAriaLabel"),"data-testid":"sessions-view-mode",children:Q.map(e=>{let{mode:r,labelKey:i,icon:l}=e,o=t===r;return(0,n.jsx)("button",{type:"button",onClick:()=>s(r),"aria-pressed":o,"aria-label":a(i),title:a(i),"data-testid":"sessions-view-mode-".concat(r),className:"rounded p-1.5 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ".concat(o?"bg-accent-100 text-accent-700 dark:bg-accent-900/30 dark:text-accent-400":"text-muted-foreground hover:text-foreground"),children:(0,n.jsx)(l,{size:16,"aria-hidden":"true"})},r)})})});var $=s(38218),Z=s(50857),ee=s(7636),et=s(83012);let es=[{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"status",labelKey:"sort.status"},{key:"lastSent",labelKey:"sort.lastSent"}],en={lastSent:"desc",updatedAt:"desc"},ea={ready:0,in_progress:1,in_review:2,done:3};function er(e){let{status:t,label:s}=e,a=(0,l.c)("common"),r="".concat(s,": ").concat(a("status.".concat(t)));return(0,n.jsx)(v.md,{status:t,size:"md",label:r})}let ei={ready:"worktreeStatus.ready",in_progress:"worktreeStatus.inProgress",in_review:"worktreeStatus.inReview",done:"worktreeStatus.done"},el={done:"bg-success-subtle text-success-foreground",in_review:"bg-info-subtle text-info-foreground",in_progress:"bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-400"};function eo(){let e=(0,l.c)("common"),t=(0,l.c)("worktree"),s=(0,$.a)(),{worktrees:r,isLoading:u,error:m,refresh:x}=(0,A.Fn)(),h=r.length>0,[f,g]=(0,a.useState)(""),[p,b]=(0,a.useState)("lastSent"),[y,w]=(0,a.useState)("desc"),{viewMode:j,setViewMode:k}=function(){let{value:e,setValue:t}=(0,S.V)({key:"mcbd-sessions-view-mode",defaultValue:"list",validate:J,serialize:e=>e,deserialize:e=>e});return{viewMode:e,setViewMode:(0,a.useCallback)(e=>t(e),[t])}}(),N="tile"===j;(0,a.useEffect)(()=>{(0,_.qD)()},[]);let C=(0,a.useMemo)(()=>{let e=r;if(f){let t=f.toLowerCase();e=e.filter(e=>{var s,n;return e.name.toLowerCase().includes(t)||e.repositoryName.toLowerCase().includes(t)||null!=(n=null==(s=e.repositoryDisplayName)?void 0:s.toLowerCase().includes(t))&&n})}let t=[...e];return t.sort((e,t)=>{var s,n,a,r,i,l,o,c;let d=0;switch(p){case"lastSent":{let s=(0,ee.nO)(e.lastUserMessageAt,t.lastUserMessageAt);if(!e.lastUserMessageAt&&!t.lastUserMessageAt)return 0;if(!e.lastUserMessageAt)return 1;if(!t.lastUserMessageAt)return -1;d=s;break}case"repositoryName":{let a=(null!=(s=e.repositoryDisplayName)?s:e.repositoryName).toLowerCase(),r=(null!=(n=t.repositoryDisplayName)?n:t.repositoryName).toLowerCase();0===(d=a.localeCompare(r))&&(d=e.name.toLowerCase().localeCompare(t.name.toLowerCase()));break}case"status":if(0==(d=(null!=(r=ea[null!=(a=e.status)?a:""])?r:4)-(null!=(l=ea[null!=(i=t.status)?i:""])?l:4))){let s=(null!=(o=e.repositoryDisplayName)?o:e.repositoryName).toLowerCase(),n=(null!=(c=t.repositoryDisplayName)?c:t.repositoryName).toLowerCase();d=s.localeCompare(n)}break;default:d=0}return("lastSent"===p?"desc"===y:"asc"===y)?d:-d}),t},[r,f,p,y]),M=(0,a.useCallback)(e=>{g(e.target.value)},[]),L=(0,a.useCallback)(e=>{var t;b(e),w(null!=(t=en[e])?t:"asc")},[]),I=(0,a.useCallback)(()=>{w(e=>"asc"===e?"desc":"asc")},[]);return(0,n.jsx)(n.Fragment,{children:(0,n.jsxs)(d.k,{onRefresh:x,enabled:s,className:"".concat(N?"w-full px-4 sm:px-6 lg:px-8":"container-custom"," py-8 h-full"),children:[(0,n.jsxs)("div",{className:"mb-6",children:[(0,n.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("sessions.title")}),(0,n.jsx)("p",{className:"text-sm text-muted-foreground",children:e("sessions.description")})]}),(0,n.jsxs)("div",{className:"mb-6 flex items-center gap-3",children:[(0,n.jsx)(v.pd,{type:"text",placeholder:e("sessions.filterPlaceholder"),value:f,onChange:M,className:"max-w-md flex-1","data-testid":"sessions-filter","aria-label":e("sessions.filterAriaLabel"),inputMode:"search",enterKeyHint:"search"}),(0,n.jsxs)(v.l6,{value:p,onValueChange:L,children:[(0,n.jsx)(v.bq,{className:"w-40","data-testid":"sessions-sort-select","aria-label":e("sessions.sortByAriaLabel"),children:(0,n.jsx)(v.yv,{})}),(0,n.jsx)(v.gC,{children:es.map(t=>(0,n.jsx)(v.eb,{value:t.key,children:e(t.labelKey)},t.key))})]}),(0,n.jsx)("button",{type:"button",onClick:I,"data-testid":"sessions-sort-direction","aria-label":"asc"===y?e("sessions.sortAscending"):e("sessions.sortDescending"),className:"rounded-md border border-input bg-surface p-2 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:"asc"===y?(0,n.jsx)(o.A,{size:16,"aria-hidden":"true"}):(0,n.jsx)(c.A,{size:16,"aria-hidden":"true"})}),(0,n.jsx)(X,{value:j,onChange:k})]}),h?(0,n.jsxs)(n.Fragment,{children:[m&&(0,n.jsx)("div",{className:"mb-4 rounded-md border border-danger-border bg-danger-subtle px-3 py-2 text-sm text-danger-foreground",role:"status","data-testid":"sessions-error-banner",children:e("sessions.refreshError",{message:m.message})}),N?0===C.length?(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:e("sessions.noMatching")}):(0,n.jsx)(H,{worktrees:C}):(0,n.jsx)("div",{className:"space-y-2","data-testid":"sessions-list",children:0===C.length?(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:e("sessions.noMatching")}):C.map((s,a)=>{var r,l,o,c;let d=null!=(r=s.selectedAgents)?r:(0,_.sA)(),u=s.lastUserMessage?s.lastUserMessage.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]/g,"").replace(/[\u200B-\u200F\u2028-\u202F\uFEFF\u061C]/g,"").replace(/[\r\n\t]/g," ").replace(/\s+/g," ").trim():null,m=s.lastUserMessageAt?(0,et.Fx)(String(s.lastUserMessageAt)):null,x=d.map(e=>{var t;return{agent:e,status:(0,T.kA)(null==(t=s.sessionStatusByCli)?void 0:t[e])}}),h=x.filter(e=>(0,Z.Qo)(e.status)),f=x.length-h.length,g=d.some(e=>{var t;let n=(0,T.kA)(null==(t=s.sessionStatusByCli)?void 0:t[e]);return"running"===n||"generating"===n});return(0,n.jsxs)(i(),{href:"/worktrees/".concat(s.id),style:{animationDelay:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;if(Number.isFinite(e)&&!(e<=0)&&!(e>=s))return"".concat(e*t,"ms")}(a)},className:"block bg-surface rounded-lg p-4 border transition-colors ".concat(g?"border-accent-500/40 shadow-[0_0_16px_-4px_rgb(var(--accent-500)/0.45)] hover:border-accent-400":"border-border shadow-sm hover:border-accent-300 dark:hover:border-accent-700"," ").concat("animate-in fade-in-0 slide-in-from-bottom-2 fill-mode-backwards duration-300"),"data-testid":"session-item-".concat(s.id),children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:null!=(l=s.repositoryDisplayName)?l:s.repositoryName}),(0,n.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:s.name})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0","data-testid":"session-agents-".concat(s.id),children:[h.map(e=>{let{agent:t,status:s}=e;return(0,n.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-agent-".concat(t),children:[(0,n.jsx)(er,{status:s,label:(0,R.oo)(t)}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,R.oo)(t)})]},t)}),f>0&&(0,n.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-idle-cluster-".concat(s.id),"aria-label":e("sessions.idleAgents",{count:f}),children:[(0,n.jsx)(v.md,{status:"idle",size:"sm","aria-hidden":!0,title:void 0}),(0,n.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums",children:["+",f]})]})]})]}),s.description&&(0,n.jsx)("div",{className:"mt-2",children:(0,n.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 whitespace-pre-wrap",children:s.description})}),s.status&&(0,n.jsx)("div",{className:"mt-2",children:(0,n.jsx)("span",{className:"px-2 py-0.5 text-xs font-medium rounded ".concat(null!=(c=el[null!=(o=s.status)?o:""])?c:"bg-muted text-muted-foreground"),children:function(e,t){if(!e)return"";let s=ei[e];return s?t(s):e}(s.status,t)})}),u&&(0,n.jsxs)("div",{className:"mt-2 flex items-center gap-2","data-testid":"session-message-".concat(s.id),children:[(0,n.jsx)("span",{className:"text-xs text-muted-foreground truncate min-w-0 flex-1","data-testid":"session-message-text-".concat(s.id),title:u,children:u}),m&&(0,n.jsx)("span",{className:"text-xs text-muted-foreground flex-shrink-0 whitespace-nowrap tabular-nums","data-testid":"session-time-".concat(s.id),children:m})]})]},s.id)})})]}):(0,n.jsxs)(n.Fragment,{children:[u&&(0,n.jsx)("div",{className:"space-y-2","data-testid":"sessions-loading",role:"status","aria-label":e("sessions.loadingAriaLabel"),children:[0,1,2].map(e=>(0,n.jsxs)("div",{className:"block bg-surface rounded-lg p-4 border border-border shadow-sm",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,n.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,n.jsx)(v.EA,{className:"h-4 w-40 max-w-full"}),(0,n.jsx)(v.EA,{className:"h-3 w-56 max-w-full"})]}),(0,n.jsx)(v.EA,{className:"ml-4 h-3 w-16 flex-shrink-0"})]}),(0,n.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,n.jsx)(v.EA,{className:"h-3 min-w-0 flex-1"}),(0,n.jsx)(v.EA,{className:"h-3 w-10 flex-shrink-0"})]})]},e))}),!u&&m&&(0,n.jsx)("div",{className:"text-danger-foreground","data-testid":"sessions-error",children:e("sessions.loadError",{message:m.message})}),!u&&!m&&(0,n.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:f?e("sessions.noMatching"):e("sessions.empty")})]})]})})}}},e=>{e.O(0,[6809,4909,2770,2619,8566,6322,3778,8019,2407,344,5449,6966,8606,4768,2039,4949,8441,1255,7358],()=>e(e.s=87047)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9404],{54014:(e,t,s)=>{"use strict";s.d(t,{Ab:()=>a,NL:()=>p,O6:()=>u,XH:()=>l,f_:()=>m,hR:()=>o,lu:()=>g,n6:()=>r,oo:()=>c,pQ:()=>i,sw:()=>x,vz:()=>h});let l=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code"],a=10,i=50,n=/^[a-zA-Z0-9_-]+$/;function r(e){return"string"==typeof e&&e.length>0&&e.length<=64&&n.test(e)}let d={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code"};function o(e){return l.includes(e)}function c(e){var t;return null!=(t=d[e])?t:e}function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Assistant";return e&&o(e)?c(e):t}function x(e){let t=e.alias;return"string"==typeof t&&t.trim().length>0?t:c(e.cliTool)}function u(e,t,s){let l=e.find(e=>e.id===t);return l?x(l):c(s)}function g(e){return e.map((e,t)=>({id:e,cliTool:e,alias:c(e),order:t}))}let h=128,p=2097152},68331:(e,t,s)=>{"use strict";s.d(t,{y:()=>r});var l=s(95155);s(12115);var a=s(18955),i=s(37381),n=s(95584);function r(e){let{catalog:t}=e,s=(0,a.c)("skills");return t.stale||t.offline?(0,l.jsx)(i.u,{tone:"warning","data-testid":"skill-catalog-stale",className:"flex-col sm:flex-row",children:(0,l.jsxs)("div",{className:"space-y-1",children:[(0,l.jsx)("p",{className:"font-medium",children:s("catalog.staleHeading")}),(0,l.jsx)("p",{children:s("catalog.staleNotice")}),t.offline&&(0,l.jsx)("p",{children:s("catalog.offlineNotice")}),(0,l.jsx)("p",{children:s((0,n.pk)(t.staleReason))}),(0,l.jsxs)("p",{className:"break-words",children:[s("catalog.fetchedAt",{timestamp:t.fetchedAt})," \xb7"," ",s("catalog.revalidatedAt",{timestamp:t.revalidatedAt})]}),(0,l.jsx)("p",{className:"break-words",children:s("catalog.sourceLabel",{repository:t.source.repository,ref:t.source.ref})})]})}):(0,l.jsxs)("p",{"data-testid":"skill-catalog-fresh",className:"text-xs text-muted-foreground break-words",children:[s("catalog.freshLabel")," \xb7"," ",s("catalog.revalidatedAt",{timestamp:t.revalidatedAt})," \xb7"," ",s("catalog.sourceLabel",{repository:t.source.repository,ref:t.source.ref})]})}},89675:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>C});var l=s(95155),a=s(20063),i=s(12115),n=s(52619),r=s.n(n),d=s(18955),o=s(35626),c=s(28019),m=s(99648),x=s(75333),u=s(68331),g=s(50825),h=s(24027),p=s(95584);function j(e){let{changelog:t}=e,s=(0,d.c)("skills"),a=(0,p.RG)(t).trim();return 0===a.length?(0,l.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"skill-changelog-empty",children:s("detail.changelogEmpty")}):(0,l.jsxs)("div",{"data-testid":"skill-changelog",children:[(0,l.jsx)("div",{className:"prose prose-sm max-w-none dark:prose-invert break-words",children:(0,l.jsx)(h.G8,{content:a})}),(0,l.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:s("detail.mediaStripped")})]})}var f=s(34380),k=s(37381),b=s(80130);let v={status:"loading",catalog:null,skill:null,failure:null};function N(e){let{label:t,children:s,mono:a=!1}=e;return(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:t}),(0,l.jsx)("dd",{className:"mt-0.5 text-sm text-foreground ".concat(a?"break-all font-mono text-xs":"break-words"),children:s})]})}function y(e){let{title:t,children:s,testId:a}=e;return(0,l.jsxs)(c.Zp,{"data-testid":a,className:"space-y-3",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:t}),s]})}function w(e){var t;let{compatibility:s}=e,a=(0,d.c)("skills");return(0,l.jsx)("p",{className:"text-sm text-foreground","data-testid":"skill-compatibility-reason",children:a((0,p.e5)(s.messageKey),{range:s.requiredRange,currentVersion:null!=(t=s.currentVersion)?t:""})})}function V(e){let{version:t}=e,s=(0,d.c)("skills");return(0,l.jsxs)(c.Zp,{"data-testid":"skill-version-".concat(t.version),className:"space-y-3",padding:"sm",children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)("span",{className:"font-mono text-sm font-semibold text-foreground",children:t.version}),t.prerelease&&(0,l.jsx)(c.Ex,{variant:"warning",children:s("detail.prerelease")}),(0,l.jsx)(x.Xz,{status:t.compatibility.commandmate.status}),(0,l.jsx)(x.qW,{risk:t.declaredRisk})]}),(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,l.jsx)(N,{label:s("detail.publishedAt"),children:t.publishedAt}),(0,l.jsx)(N,{label:s("detail.requiredRangeLabel"),children:t.compatibility.commandmate.requiredRange}),(0,l.jsx)(N,{label:s("detail.sourceRepository"),children:t.source.repository}),(0,l.jsx)(N,{label:s("detail.sourceRef"),children:t.source.ref}),(0,l.jsx)(N,{label:s("detail.sourceCommit"),mono:!0,children:t.source.commit}),(0,l.jsx)(N,{label:s("detail.packageAsset"),mono:!0,children:t.artifact.assetName}),(0,l.jsx)(N,{label:s("detail.packageDigest"),mono:!0,children:t.artifact.sha256}),(0,l.jsx)(N,{label:s("detail.packageSize"),children:s("detail.packageBytes",{bytes:t.artifact.size})})]}),(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.compatibility.agents.length>0?t.compatibility.agents.map(e=>(0,l.jsx)(x.uE,{agent:e},e.agent)):(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:s("compatibility.agentsUnknown")})}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:s("detail.changelogHeading")}),(0,l.jsx)("div",{className:"mt-1",children:(0,l.jsx)(j,{changelog:t.changelog})})]})]})}function A(e){var t,s,a,n,h,j,A,C,R;let{skillId:I}=e,q=(0,d.c)("skills"),[E,_]=(0,i.useState)(v),[z,H]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=new AbortController;return _(v),(0,b.Db)(I,e.signal).then(t=>{e.signal.aborted||_(t.ok?{status:"loaded",catalog:t.data.catalog,skill:t.data.skill,failure:null}:{status:"error",catalog:null,skill:null,failure:t.failure})}).catch(()=>{}),()=>e.abort()},[I,z]);let L=(0,i.useCallback)(()=>H(e=>e+1),[]),U=(0,l.jsxs)(r(),{href:"/skills",className:"inline-flex items-center gap-1 text-sm text-accent-600 hover:underline dark:text-accent-400","data-testid":"skill-detail-back",children:[(0,l.jsx)(o.A,{size:14,"aria-hidden":"true"}),q("page.backToCatalog")]});if("loading"===E.status)return(0,l.jsxs)("div",{className:"space-y-4","data-testid":"skill-detail-loading",children:[U,(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:q("state.loading")}),(0,l.jsx)(c.EA,{className:"h-40 w-full rounded-lg"})]});if("error"===E.status||!E.skill){let e=(null==(s=E.failure)?void 0:s.status)===404;return(0,l.jsxs)("div",{className:"space-y-4",children:[U,(0,l.jsxs)(c.Zp,{"data-testid":e?"skill-detail-not-found":"skill-detail-error",className:"space-y-3",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:q(e?"state.notFoundHeading":"state.errorHeading")}),(0,l.jsxs)(k.u,{tone:"danger",children:[(0,l.jsx)("p",{children:q(e?"state.notFoundNotice":"state.errorNotice")}),(0,l.jsx)("p",{className:"mt-1 break-words",children:q("state.errorCode",{code:null!=(n=null==(a=E.failure)?void 0:a.code)?n:""})})]}),!e&&(0,l.jsx)(c.$n,{variant:"secondary",size:"sm",onClick:L,"data-testid":"skill-detail-retry",children:q("state.retry")})]})]})}let Z=E.skill,F=Z.compatibility,O=null!=(h=Z.versions.find(e=>e.version===Z.recommendedVersion))?h:null,S=null!=(j=null==(t=null!=O?O:Z.versions[0])?void 0:t.declaredRisk)?j:null,W=Z.recommendedVersion?F&&"compatible"!==F.status?q("detail.install.blockedIncompatible",{reason:q((0,p.e5)(F.messageKey),{range:F.requiredRange,currentVersion:null!=(A=F.currentVersion)?A:""})}):null:q("detail.install.blockedNoVersion");return(0,l.jsxs)("div",{className:"space-y-4",children:[U,E.catalog&&(0,l.jsx)(u.y,{catalog:E.catalog}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("h1",{className:"text-2xl font-bold text-foreground break-words",children:Z.name}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground break-words",children:Z.summary}),(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[F&&(0,l.jsx)(x.Xz,{status:F.status}),S&&(0,l.jsx)(x.qW,{risk:S})]})]}),(0,l.jsx)(y,{title:q("detail.install.action"),testId:"skill-install-section",children:(0,l.jsx)(f.B,{skillId:Z.id,version:Z.recommendedVersion,blockedReason:W,agents:null!=(C=null==O?void 0:O.compatibility.agents)?C:[]})}),(0,l.jsxs)(y,{title:q("capabilities.heading"),testId:"skill-capabilities-section",children:[(0,l.jsx)("p",{className:"text-sm text-foreground break-words",children:Z.summary}),(0,l.jsx)(k.u,{tone:"neutral",children:q("capabilities.unavailable")})]}),(0,l.jsxs)(y,{title:q("detail.overview"),testId:"skill-overview-section",children:[(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,l.jsx)(N,{label:q("detail.skillId"),mono:!0,children:Z.id}),(0,l.jsx)(N,{label:q("detail.provider"),children:Z.provider.url?(0,l.jsx)("a",{href:Z.provider.url,target:"_blank",rel:"noopener noreferrer",className:"text-accent-600 hover:underline dark:text-accent-400",children:Z.provider.name}):Z.provider.name}),Z.provider.contact&&(0,l.jsx)(N,{label:q("detail.providerContact"),children:Z.provider.contact}),(0,l.jsx)(N,{label:q("detail.license"),children:Z.license}),Z.homepage&&(0,l.jsx)(N,{label:q("detail.homepage"),children:(0,l.jsx)("a",{href:Z.homepage,target:"_blank",rel:"noopener noreferrer",className:"break-all text-accent-600 hover:underline dark:text-accent-400",children:Z.homepage})}),(0,l.jsx)(N,{label:q("detail.latestVersion"),mono:!0,children:Z.latest}),(0,l.jsx)(N,{label:q("detail.recommendedVersion"),mono:!0,children:null!=(R=Z.recommendedVersion)?R:q("detail.recommendedVersionNone")})]}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-recommendation-reason",children:q(p.TE[Z.recommendedReason])}),Z.keywords.length>0&&(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-xs font-medium text-muted-foreground",children:q("detail.keywords")}),(0,l.jsx)("div",{className:"mt-1 flex flex-wrap gap-1.5",children:Z.keywords.map(e=>(0,l.jsx)(c.Ex,{variant:"gray",children:e},e))})]})]}),(0,l.jsxs)(y,{title:q("compatibility.label"),testId:"skill-compatibility-section",children:[F?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)(x.Xz,{status:F.status}),(0,l.jsx)("span",{className:"text-sm text-muted-foreground",children:q("compatibility.requiredRange",{range:F.requiredRange})})]}),(0,l.jsx)(w,{compatibility:F}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:F.currentVersion?q("compatibility.currentVersion",{version:F.currentVersion}):q("compatibility.currentVersionUnknown")}),"unknown"===F.status&&(0,l.jsx)(k.u,{tone:"warning","data-testid":"skill-compatibility-unknown-notice",children:q("compatibility.unverifiedNotice")})]}):(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:q("compatibility.currentVersionUnknown")}),(0,l.jsxs)("div",{className:"space-y-2",children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-foreground",children:q("compatibility.agentsHeading")}),O&&O.compatibility.agents.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5",children:O.compatibility.agents.map(e=>(0,l.jsx)(x.uE,{agent:e},e.agent))}),(0,l.jsx)("div",{className:"space-y-3",children:O.compatibility.agents.map(e=>(0,l.jsx)(g.m,{agent:e},e.agent))})]}):(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:q("compatibility.agentsUnknown")}),(0,l.jsx)(k.u,{tone:"neutral",children:q("compatibility.agentsNotice")})]})]}),(0,l.jsxs)(y,{title:q("risk.declaredHeading"),testId:"skill-risk-section",children:[S?(0,l.jsx)(x.qW,{risk:S}):null,(0,l.jsx)(k.u,{tone:"neutral",children:q("risk.declaredNotice")}),"high"===S&&(0,l.jsx)(k.u,{tone:"danger","data-testid":"skill-high-risk-warning",children:q("risk.highWarning")}),(0,l.jsxs)("div",{children:[(0,l.jsx)("h3",{className:"text-sm font-medium text-foreground",children:q("risk.computedHeading")}),(0,l.jsx)("p",{className:"mt-1 text-sm text-muted-foreground","data-testid":"skill-computed-risk-unavailable",children:q("risk.computedUnavailable")})]})]}),(0,l.jsxs)(y,{title:q("permissions.heading"),testId:"skill-permissions-section",children:[(0,l.jsx)(k.u,{tone:"warning","data-testid":"skill-permission-declaration-notice",children:q((0,p.e5)(m.Ms))}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:q("permissions.unavailable")})]}),(0,l.jsx)(y,{title:q("requirements.heading"),testId:"skill-requirements-section",children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:q("requirements.unavailable")})}),(0,l.jsx)(y,{title:q("contents.heading"),testId:"skill-contents-section",children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:q("contents.unavailable")})}),(0,l.jsxs)("section",{className:"space-y-3","data-testid":"skill-versions-section",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:q("detail.versionsHeading")}),0===Z.versions.length?(0,l.jsx)(c.Zp,{children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:q("detail.versionsEmpty")})}):Z.versions.map(e=>(0,l.jsx)(V,{version:e},e.version))]})]})}function C(){let e=(0,a.useParams)(),t="string"==typeof e.skillId?e.skillId:"";return(0,l.jsx)("div",{className:"container-custom py-8 overflow-auto h-full",children:(0,l.jsx)(A,{skillId:t})})}},99027:(e,t,s)=>{Promise.resolve().then(s.bind(s,89675))}},e=>{e.O(0,[6481,6809,4909,2770,2619,8566,6322,8283,8019,2751,2039,2053,8441,1255,7358],()=>e(e.s=99027)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9336],{7727:(e,t,s)=>{Promise.resolve().then(s.bind(s,72754))},23327:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},52056:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},72754:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>y});var a=s(95155),r=s(52619),l=s.n(r),d=s(18955),n=s(12115),i=s(28019),o=s(37381),c=s(80130),u=s(95584);let h="w-full rounded-md border border-input bg-surface px-3 py-2 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",m=["install","uninstall","update"],x=["succeeded","failed","reconciled"],g={status:"loading",operations:[],nextCursor:null,failure:null};function f(e){return null===e?null:e.slice(0,12)}function p(e){var t,s;let{worktreeId:r,skillId:p}=e,b=(0,d.c)("skills"),[k,j]=(0,n.useState)(g),[N,v]=(0,n.useState)(""),[y,C]=(0,n.useState)(""),[w,I]=(0,n.useState)(!1);(0,n.useEffect)(()=>{let e=new AbortController;return j(g),(0,c.mf)({worktreeId:r,skillId:p,operation:N,result:y,limit:20},e.signal).then(t=>{e.signal.aborted||j(t.ok?{status:"loaded",operations:t.data.operations,nextCursor:t.data.nextCursor,failure:null}:{status:"error",operations:[],nextCursor:null,failure:t.failure})}).catch(()=>{}),()=>e.abort()},[r,p,N,y]);let A=(0,n.useCallback)(()=>{null!==k.nextCursor&&(I(!0),(0,c.mf)({worktreeId:r,skillId:p,operation:N,result:y,limit:20,cursor:k.nextCursor}).then(e=>{e.ok&&j(t=>({...t,operations:[...t.operations,...e.data.operations],nextCursor:e.data.nextCursor}))}).catch(()=>{}).finally(()=>I(!1)))},[k.nextCursor,r,p,N,y]);return(0,a.jsxs)(i.Zp,{className:"space-y-3","data-testid":"skill-operation-history",children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-foreground",children:b("history.heading")}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,a.jsxs)("label",{className:"block text-xs font-medium text-muted-foreground",children:[b("history.filterOperation"),(0,a.jsxs)("select",{className:"".concat(h," mt-1"),value:N,onChange:e=>v(e.target.value),"data-testid":"skill-history-filter-operation",children:[(0,a.jsx)("option",{value:"",children:b("dashboard.all")}),m.map(e=>(0,a.jsx)("option",{value:e,children:b(u.u0[e])},e))]})]}),(0,a.jsxs)("label",{className:"block text-xs font-medium text-muted-foreground",children:[b("history.filterResult"),(0,a.jsxs)("select",{className:"".concat(h," mt-1"),value:y,onChange:e=>C(e.target.value),"data-testid":"skill-history-filter-result",children:[(0,a.jsx)("option",{value:"",children:b("dashboard.all")}),x.map(e=>(0,a.jsx)("option",{value:e,children:b(u.xX[e])},e))]})]})]}),"loading"===k.status&&(0,a.jsxs)("div",{className:"space-y-2","data-testid":"skill-history-loading",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:b("history.loading")}),[0,1].map(e=>(0,a.jsx)(i.EA,{className:"h-16 w-full rounded-lg"},e))]}),"error"===k.status&&(0,a.jsxs)(o.u,{tone:"danger","data-testid":"skill-history-error",children:[(0,a.jsx)("p",{children:b("history.errorNotice")}),(0,a.jsx)("p",{className:"mt-1 break-words",children:b("state.errorCode",{code:null!=(s=null==(t=k.failure)?void 0:t.code)?s:""})})]}),"loaded"===k.status&&0===k.operations.length&&(0,a.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"skill-history-empty",children:b("history.empty")}),"loaded"===k.status&&k.operations.length>0&&(0,a.jsx)("ul",{className:"space-y-2","data-testid":"skill-history-list",children:k.operations.map(e=>{var t,s,r,d,n,c;return(0,a.jsxs)("li",{className:"rounded-lg border border-border p-3 text-xs","data-testid":"skill-history-item",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(i.Ex,{variant:null!=(t=u.R1[e.result])?t:"gray",children:b(null!=(s=u.xX[e.result])?s:"history.result.succeeded")}),(0,a.jsx)("span",{className:"font-medium text-foreground",children:b(null!=(r=u.u0[e.operation])?r:"history.operation.install")}),(0,a.jsx)("span",{className:"font-medium text-foreground",children:e.skillId}),(0,a.jsx)("span",{className:"text-muted-foreground",children:e.worktreeId}),(0,a.jsx)("span",{className:"ml-auto text-muted-foreground",children:b("history.recordedAt",{timestamp:new Date(e.recordedAt).toISOString().replace("T"," ").slice(0,19)})})]}),(0,a.jsxs)("dl",{className:"mt-2 grid grid-cols-1 gap-x-4 gap-y-1 sm:grid-cols-2",children:[(0,a.jsxs)("div",{className:"flex gap-1",children:[(0,a.jsx)("dt",{className:"text-muted-foreground",children:b("history.transitionLabel")}),(0,a.jsx)("dd",{className:"text-foreground",children:b("history.transition",{from:null!=(d=e.fromVersion)?d:b("history.none"),to:null!=(n=e.toVersion)?n:b("history.none")})})]}),(0,a.jsxs)("div",{className:"flex gap-1",children:[(0,a.jsx)("dt",{className:"text-muted-foreground",children:b("history.actorLabel")}),(0,a.jsx)("dd",{className:"text-foreground",children:b(null!=(c=u.bD[e.actorType])?c:"history.actor.system")})]}),null!==e.sourceOrigin&&(0,a.jsxs)("div",{className:"flex gap-1",children:[(0,a.jsx)("dt",{className:"text-muted-foreground",children:b("history.origin")}),(0,a.jsx)("dd",{className:"text-foreground",children:e.sourceOrigin})]}),null!==e.sourceCommit&&(0,a.jsxs)("div",{className:"flex gap-1",children:[(0,a.jsx)("dt",{className:"text-muted-foreground",children:b("history.sourceCommit")}),(0,a.jsx)("dd",{className:"break-all font-mono text-foreground",children:f(e.sourceCommit)})]}),null!==e.artifactSha256&&(0,a.jsxs)("div",{className:"flex gap-1",children:[(0,a.jsx)("dt",{className:"text-muted-foreground",children:b("history.artifactDigest")}),(0,a.jsx)("dd",{className:"break-all font-mono text-foreground",children:f(e.artifactSha256)})]})]}),null!==e.errorCode&&(0,a.jsxs)("div",{className:"mt-2 space-y-1","data-testid":"skill-history-failure",children:[(0,a.jsxs)(o.u,{tone:"danger",children:[(0,a.jsx)("p",{className:"break-words",children:b("state.errorCode",{code:e.errorCode})}),null!==e.errorMessage&&(0,a.jsx)("p",{className:"mt-1 break-words",children:e.errorMessage})]}),(0,a.jsx)(l(),{href:"/skills/".concat(encodeURIComponent(e.skillId)),className:"inline-flex text-accent-600 hover:underline dark:text-accent-400","data-testid":"skill-history-retry",children:b("history.retry")})]})]},e.id)})}),null!==k.nextCursor&&(0,a.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:A,disabled:w,"data-testid":"skill-history-load-more",children:b("history.loadMore")})]})}let b="w-full rounded-md border border-input bg-surface px-3 py-2 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",k=["missing","modified","unmanaged","update_available","installed"],j={missing:0,modified:1,unmanaged:2,update_available:3,installed:4},N={status:"loading",scannedAt:null,worktreeCount:0,truncated:!1,unreadableWorktreeIds:[],catalogAvailable:!1,installations:[],failure:null};function v(){let e=(0,d.c)("skills"),[t,s]=(0,n.useState)(N),[r,h]=(0,n.useState)({running:!1,outcome:null,failure:null}),[m,x]=(0,n.useState)(""),[g,f]=(0,n.useState)(""),[v,y]=(0,n.useState)(""),[C,w]=(0,n.useState)(0);(0,n.useEffect)(()=>{let e=new AbortController;return s(N),(0,c.V_)({refresh:C>0},e.signal).then(t=>{e.signal.aborted||s(t.ok?{status:"loaded",scannedAt:t.data.scannedAt,worktreeCount:t.data.worktreeCount,truncated:t.data.truncated,unreadableWorktreeIds:t.data.unreadableWorktreeIds,catalogAvailable:t.data.catalogAvailable,installations:t.data.installations,failure:null}:{...N,status:"error",failure:t.failure})}).catch(()=>{}),()=>e.abort()},[C]);let I=(0,n.useCallback)(()=>w(e=>e+1),[]),A=(0,n.useCallback)(()=>{h({running:!0,outcome:null,failure:null}),(0,c.vg)().then(e=>{if(e.ok){h({running:!1,outcome:{indexed:e.data.indexed,removed:e.data.removed,skipped:e.data.skipped.length},failure:null}),I();return}h({running:!1,outcome:null,failure:e.failure})}).catch(()=>{h({running:!1,outcome:null,failure:null})})},[I]),S=(0,n.useMemo)(()=>{let e=new Map;for(let s of t.installations)e.set(s.worktreeId,s.worktreeName);return[...e].sort((e,t)=>{let[s]=e,[a]=t;return s<a?-1:1})},[t.installations]),M=(0,n.useMemo)(()=>{let e=v.trim().toLowerCase();return t.installations.filter(e=>""===m||e.worktreeId===m).filter(e=>""===g||e.status===g).filter(t=>""===e||t.skillId.toLowerCase().includes(e)).slice().sort((e,t)=>{var s,a;let r=(null!=(s=j[e.status])?s:9)-(null!=(a=j[t.status])?a:9);return 0!==r?r:e.skillId!==t.skillId?e.skillId<t.skillId?-1:1:e.worktreeId<t.worktreeId?-1:1})},[t.installations,m,g,v]);if("loading"===t.status)return(0,a.jsxs)("div",{"data-testid":"skill-dashboard-loading",className:"space-y-3",children:[(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e("state.loading")}),[0,1,2].map(e=>(0,a.jsx)(i.EA,{className:"h-24 w-full rounded-lg"},e))]});if("error"===t.status){var E,_;return(0,a.jsxs)(i.Zp,{"data-testid":"skill-dashboard-error",className:"space-y-3",children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-foreground",children:e("state.errorHeading")}),(0,a.jsxs)(o.u,{tone:"danger",children:[(0,a.jsx)("p",{children:e("dashboard.errorNotice")}),(0,a.jsx)("p",{className:"mt-1 break-words",children:e("state.errorCode",{code:null!=(_=null==(E=t.failure)?void 0:E.code)?_:""})})]}),(0,a.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:I,"data-testid":"skill-dashboard-retry",children:e("state.retry")})]})}return(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-dashboard-scanned-at",children:e("dashboard.scannedAt",{timestamp:null===t.scannedAt?"":new Date(t.scannedAt).toISOString().replace("T"," ").slice(0,19)})}),(0,a.jsx)("p",{className:"text-xs text-muted-foreground",children:e("dashboard.worktreeCount",{count:t.worktreeCount})}),(0,a.jsxs)("div",{className:"ml-auto flex gap-2",children:[(0,a.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:I,"data-testid":"skill-dashboard-rescan",children:e("dashboard.rescan")}),(0,a.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:A,disabled:r.running,"data-testid":"skill-dashboard-reindex",children:r.running?e("dashboard.reindexRunning"):e("dashboard.reindex")})]})]}),!t.catalogAvailable&&(0,a.jsx)(o.u,{tone:"warning","data-testid":"skill-dashboard-catalog-unavailable",children:e("dashboard.catalogUnavailable")}),t.truncated&&(0,a.jsx)(o.u,{tone:"warning","data-testid":"skill-dashboard-truncated",children:e("dashboard.truncated")}),t.unreadableWorktreeIds.length>0&&(0,a.jsx)(o.u,{tone:"warning","data-testid":"skill-dashboard-unreadable",children:e("dashboard.unreadableWorktrees",{worktrees:t.unreadableWorktreeIds.join(", ")})}),null!==r.outcome&&(0,a.jsx)(o.u,{tone:"info","data-testid":"skill-dashboard-reindex-result",children:e("dashboard.reindexDone",{indexed:r.outcome.indexed,removed:r.outcome.removed,skipped:r.outcome.skipped})}),null!==r.failure&&(0,a.jsxs)(o.u,{tone:"danger","data-testid":"skill-dashboard-reindex-error",children:[(0,a.jsx)("p",{children:e("dashboard.reindexFailed")}),(0,a.jsx)("p",{className:"mt-1 break-words",children:e("state.errorCode",{code:r.failure.code})})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-3",children:[(0,a.jsxs)("label",{className:"block text-xs font-medium text-muted-foreground sm:col-span-1",children:[e("dashboard.filterSkill"),(0,a.jsx)(i.pd,{type:"search",className:"mt-1",value:v,onChange:e=>y(e.target.value),"aria-label":e("dashboard.filterSkill"),"data-testid":"skill-dashboard-search"})]}),(0,a.jsxs)("label",{className:"block text-xs font-medium text-muted-foreground",children:[e("dashboard.filterWorktree"),(0,a.jsxs)("select",{className:"".concat(b," mt-1"),value:m,onChange:e=>x(e.target.value),"data-testid":"skill-dashboard-filter-worktree",children:[(0,a.jsx)("option",{value:"",children:e("dashboard.all")}),S.map(e=>{let[t,s]=e;return(0,a.jsx)("option",{value:t,children:s},t)})]})]}),(0,a.jsxs)("label",{className:"block text-xs font-medium text-muted-foreground",children:[e("dashboard.filterStatus"),(0,a.jsxs)("select",{className:"".concat(b," mt-1"),value:g,onChange:e=>f(e.target.value),"data-testid":"skill-dashboard-filter-status",children:[(0,a.jsx)("option",{value:"",children:e("dashboard.all")}),k.map(t=>(0,a.jsx)("option",{value:t,children:e(u.DN[t])},t))]})]})]}),0===t.installations.length?(0,a.jsx)(i.Zp,{"data-testid":"skill-dashboard-empty",children:(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e("dashboard.empty")})}):0===M.length?(0,a.jsxs)(i.Zp,{"data-testid":"skill-dashboard-no-results",children:[(0,a.jsx)("p",{className:"text-sm text-foreground",children:e("state.noResults")}),(0,a.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e("state.noResultsHint")})]}):(0,a.jsx)("ul",{className:"space-y-2","data-testid":"skill-dashboard-list",children:M.map(t=>{var s,r,d,n;return(0,a.jsxs)("li",{className:"rounded-lg border border-border p-3","data-testid":"skill-dashboard-item",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,a.jsx)(i.Ex,{variant:null!=(s=u.J[t.status])?s:"gray",children:e(null!=(r=u.DN[t.status])?r:"dashboard.status.installed")}),(0,a.jsx)(l(),{href:"/skills/".concat(encodeURIComponent(t.skillId)),className:"text-sm font-semibold text-accent-600 hover:underline dark:text-accent-400","data-testid":"skill-dashboard-item-link",children:t.skillId}),(0,a.jsxs)("span",{className:"text-xs text-muted-foreground",children:[t.repositoryName," / ",t.worktreeName]}),(0,a.jsxs)("span",{className:"ml-auto text-xs text-foreground",children:[null!=(d=t.version)?d:e("history.none"),"update_available"===t.status&&null!==t.latestVersion?" → ".concat(t.latestVersion):""]})]}),(0,a.jsx)("p",{className:"mt-1 text-xs text-muted-foreground","data-testid":"skill-dashboard-hint",children:e(null!=(n=u.SC[t.status])?n:"dashboard.statusHint.installed")}),(0,a.jsx)("ul",{className:"mt-2 space-y-1","data-testid":"skill-dashboard-roots",children:t.installRoots.map(t=>(0,a.jsxs)("li",{className:"flex flex-wrap items-center gap-2 text-xs","data-testid":"skill-dashboard-root",children:[(0,a.jsx)(i.Ex,{variant:t.present?"gray":"error",children:t.present?e("dashboard.rootPresent"):e("dashboard.rootMissing")}),(0,a.jsx)("span",{className:"break-all font-mono text-muted-foreground",children:t.root}),t.modifiedFiles+t.missingFiles+t.unmanagedFiles+t.irregularPaths>0&&(0,a.jsx)("span",{className:"text-warning-foreground","data-testid":"skill-dashboard-drift",children:e("dashboard.driftSummary",{modified:t.modifiedFiles,missing:t.missingFiles,unmanaged:t.unmanagedFiles,irregular:t.irregularPaths})}),t.truncated&&(0,a.jsx)("span",{className:"text-warning-foreground",children:e("dashboard.rootTruncated")})]},t.root))})]},"".concat(t.worktreeId,":").concat(t.skillId))})}),(0,a.jsx)(p,{})]})}function y(){let e=(0,d.c)("skills");return(0,a.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,a.jsxs)("div",{className:"mb-6",children:[(0,a.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("dashboard.title")}),(0,a.jsx)("p",{className:"text-sm text-muted-foreground",children:e("dashboard.description")}),(0,a.jsx)(l(),{href:"/skills",className:"mt-2 inline-flex text-sm text-accent-600 hover:underline dark:text-accent-400",children:e("page.backToCatalog")})]}),(0,a.jsx)(v,{})]})}},77801:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});let a=(0,s(71847).A)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]])}},e=>{e.O(0,[6809,4909,2770,2619,8019,2751,8441,1255,7358],()=>e(e.s=7727)),_N_E=e.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9501],{16530:(e,t,s)=>{Promise.resolve().then(s.bind(s,99898))},23327:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});let l=(0,s(71847).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},52056:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});let l=(0,s(71847).A)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},54014:(e,t,s)=>{"use strict";s.d(t,{Ab:()=>a,NL:()=>g,O6:()=>x,XH:()=>l,f_:()=>u,hR:()=>o,lu:()=>h,n6:()=>n,oo:()=>d,pQ:()=>i,sw:()=>m,vz:()=>p});let l=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code"],a=10,i=50,r=/^[a-zA-Z0-9_-]+$/;function n(e){return"string"==typeof e&&e.length>0&&e.length<=64&&r.test(e)}let c={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code"};function o(e){return l.includes(e)}function d(e){var t;return null!=(t=c[e])?t:e}function u(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Assistant";return e&&o(e)?d(e):t}function m(e){let t=e.alias;return"string"==typeof t&&t.trim().length>0?t:d(e.cliTool)}function x(e,t,s){let l=e.find(e=>e.id===t);return l?m(l):d(s)}function h(e){return e.map((e,t)=>({id:e,cliTool:e,alias:d(e),order:t}))}let p=128,g=2097152},68331:(e,t,s)=>{"use strict";s.d(t,{y:()=>n});var l=s(95155);s(12115);var a=s(18955),i=s(37381),r=s(95584);function n(e){let{catalog:t}=e,s=(0,a.c)("skills");return t.stale||t.offline?(0,l.jsx)(i.u,{tone:"warning","data-testid":"skill-catalog-stale",className:"flex-col sm:flex-row",children:(0,l.jsxs)("div",{className:"space-y-1",children:[(0,l.jsx)("p",{className:"font-medium",children:s("catalog.staleHeading")}),(0,l.jsx)("p",{children:s("catalog.staleNotice")}),t.offline&&(0,l.jsx)("p",{children:s("catalog.offlineNotice")}),(0,l.jsx)("p",{children:s((0,r.pk)(t.staleReason))}),(0,l.jsxs)("p",{className:"break-words",children:[s("catalog.fetchedAt",{timestamp:t.fetchedAt})," \xb7"," ",s("catalog.revalidatedAt",{timestamp:t.revalidatedAt})]}),(0,l.jsx)("p",{className:"break-words",children:s("catalog.sourceLabel",{repository:t.source.repository,ref:t.source.ref})})]})}):(0,l.jsxs)("p",{"data-testid":"skill-catalog-fresh",className:"text-xs text-muted-foreground break-words",children:[s("catalog.freshLabel")," \xb7"," ",s("catalog.revalidatedAt",{timestamp:t.revalidatedAt})," \xb7"," ",s("catalog.sourceLabel",{repository:t.source.repository,ref:t.source.ref})]})}},75333:(e,t,s)=>{"use strict";s.d(t,{Xz:()=>o,qW:()=>d,uE:()=>u});var l=s(95155);s(12115);var a=s(18955),i=s(77801),r=s(28019),n=s(54014),c=s(95584);function o(e){let{status:t,className:s}=e,i=(0,a.c)("skills");return(0,l.jsx)(r.Ex,{variant:c.H$[t],className:s,"data-testid":"skill-compatibility-".concat(t),children:i(c.OV[t])})}function d(e){let{risk:t,className:s}=e,n=(0,a.c)("skills");return(0,l.jsxs)(r.Ex,{variant:c.eK[t],className:s,"data-testid":"skill-declared-risk-".concat(t),children:["high"===t&&(0,l.jsx)(i.A,{size:12,"aria-hidden":"true",className:"mr-1 shrink-0"}),n("risk.declaredLabel",{level:n(c.pP[t])})]})}function u(e){let{agent:t}=e,s=(0,a.c)("skills");return(0,l.jsxs)(r.Ex,{variant:c.Et[t.support],"data-testid":"skill-agent-".concat(t.agent,"-").concat(t.support),children:[(0,n.f_)(t.agent),": ",s((0,c.e5)(t.labelKey))]})}},77801:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});let l=(0,s(71847).A)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]])},99898:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>b});var l=s(95155),a=s(18955),i=s(12115),r=s(28019),n=s(54014),c=s(68331),o=s(52619),d=s.n(o),u=s(75333),m=s(95584);function x(e){var t;let{skill:s}=e,i=(0,a.c)("skills"),c=(0,m.gh)(s),o=(0,m.r0)(s);return(0,l.jsx)(d(),{href:"/skills/".concat(encodeURIComponent(s.id)),className:"block focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring rounded-lg","data-testid":"skill-card-".concat(s.id),children:(0,l.jsx)(r.Zp,{variant:"interactive",className:"h-full",children:(0,l.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-start justify-between gap-2",children:[(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsx)("h3",{className:"truncate text-base font-semibold text-foreground",children:s.name}),(0,l.jsx)("p",{className:"truncate text-xs text-muted-foreground",children:i("card.provider",{provider:s.provider.name})})]}),(0,l.jsx)("span",{className:"shrink-0 text-xs font-medium text-muted-foreground",children:null!=(t=s.recommendedVersion)?t:i("card.noRecommendedVersion")})]}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground line-clamp-3",children:s.summary}),(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[s.compatibility&&(0,l.jsx)(u.Xz,{status:s.compatibility.status}),c&&(0,l.jsx)(u.qW,{risk:c}),o.map(e=>(0,l.jsx)(r.Ex,{variant:"gray",children:(0,n.f_)(e)},e))]})]})})})}var h=s(37381),p=s(80130);let g="w-full rounded-md border border-input bg-surface px-3 py-2 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",f=["compatible","incompatible","unknown"],k=["low","moderate","high"],v={status:"loading",catalog:null,skills:[],failure:null};function j(){let e=(0,a.c)("skills"),[t,s]=(0,i.useState)(v),[o,d]=(0,i.useState)(m.IV),[u,j]=(0,i.useState)(0);(0,i.useEffect)(()=>{let e=new AbortController;return s(v),(0,p.s5)(e.signal).then(t=>{e.signal.aborted||s(t.ok?{status:"loaded",catalog:t.data.catalog,skills:t.data.skills,failure:null}:{status:"error",catalog:null,skills:[],failure:t.failure})}).catch(()=>{}),()=>e.abort()},[u]);let b=(0,i.useCallback)(()=>j(e=>e+1),[]),N=(0,i.useCallback)((e,t)=>d(s=>({...s,[e]:t})),[]),y=(0,i.useMemo)(()=>(0,m.AJ)(t.skills),[t.skills]),w=(0,i.useMemo)(()=>(0,m.$d)(t.skills,o),[t.skills,o]);if("loading"===t.status)return(0,l.jsxs)("div",{"data-testid":"skill-catalog-loading",className:"space-y-3",children:[(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:e("state.loading")}),[0,1,2].map(e=>(0,l.jsx)(r.EA,{className:"h-28 w-full rounded-lg"},e))]});if("error"===t.status){var C,A;return(0,l.jsxs)(r.Zp,{"data-testid":"skill-catalog-error",className:"space-y-3",children:[(0,l.jsx)("h2",{className:"text-base font-semibold text-foreground",children:e("state.errorHeading")}),(0,l.jsxs)(h.u,{tone:"danger",children:[(0,l.jsx)("p",{children:e("state.errorNotice")}),(0,l.jsx)("p",{className:"mt-1 break-words",children:e("state.errorCode",{code:null!=(A=null==(C=t.failure)?void 0:C.code)?A:""})})]}),(0,l.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:b,"data-testid":"skill-catalog-retry",children:e("state.retry")})]})}return(0,l.jsxs)("div",{className:"space-y-4",children:[t.catalog&&(0,l.jsx)(c.y,{catalog:t.catalog}),(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsx)(r.pd,{type:"search",value:o.query,onChange:e=>N("query",e.target.value),"aria-label":e("search.label"),placeholder:e("search.placeholder"),"data-testid":"skill-search-input"}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-3",children:[(0,l.jsxs)("label",{className:"block text-xs font-medium text-muted-foreground",children:[e("filters.compatibility"),(0,l.jsxs)("select",{className:"".concat(g," mt-1"),value:o.compatibility,onChange:e=>N("compatibility",e.target.value),"data-testid":"skill-filter-compatibility",children:[(0,l.jsx)("option",{value:"all",children:e("filters.all")}),f.map(t=>(0,l.jsx)("option",{value:t,children:e(m.OV[t])},t))]})]}),(0,l.jsxs)("label",{className:"block text-xs font-medium text-muted-foreground",children:[e("filters.risk"),(0,l.jsxs)("select",{className:"".concat(g," mt-1"),value:o.risk,onChange:e=>N("risk",e.target.value),"data-testid":"skill-filter-risk",children:[(0,l.jsx)("option",{value:"all",children:e("filters.all")}),k.map(t=>(0,l.jsx)("option",{value:t,children:e(m.pP[t])},t))]})]}),(0,l.jsxs)("label",{className:"block text-xs font-medium text-muted-foreground",children:[e("filters.agent"),(0,l.jsxs)("select",{className:"".concat(g," mt-1"),value:o.agent,onChange:e=>N("agent",e.target.value),"data-testid":"skill-filter-agent",children:[(0,l.jsx)("option",{value:"all",children:e("filters.all")}),y.map(e=>(0,l.jsx)("option",{value:e,children:(0,n.f_)(e)},e))]})]})]}),(0,l.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[(0,l.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-result-count",children:e("search.resultCount",{shown:w.length,total:t.skills.length})}),(0,l.jsx)(r.$n,{variant:"ghost",size:"sm",onClick:()=>d(m.IV),"data-testid":"skill-filter-reset",children:e("filters.reset")})]})]}),0===t.skills.length?(0,l.jsx)(r.Zp,{"data-testid":"skill-catalog-empty",children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:e("state.empty")})}):0===w.length?(0,l.jsxs)(r.Zp,{"data-testid":"skill-catalog-no-results",children:[(0,l.jsx)("p",{className:"text-sm text-foreground",children:e("state.noResults")}),(0,l.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:e("state.noResultsHint")})]}):(0,l.jsx)("div",{className:"grid grid-cols-1 gap-3 md:grid-cols-2 xl:grid-cols-3",children:w.map(e=>(0,l.jsx)(x,{skill:e},e.id))})]})}function b(){let e=(0,a.c)("skills");return(0,l.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,l.jsxs)("div",{className:"mb-6",children:[(0,l.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("page.title")}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:e("page.description")})]}),(0,l.jsx)(j,{})]})}}},e=>{e.O(0,[6809,4909,2770,2619,8019,2751,8441,1255,7358],()=>e(e.s=16530)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1385],{17846:(u,e,D)=>{"use strict";D.d(e,{a:()=>s});var F=D(95155),t=D(12115),r=D(18955);function s(u){let{src:e,alt:D,onError:s}=u,n=(0,r.c)("worktree"),[a,o]=(0,t.useState)(!1);return a?(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,F.jsx)("svg",{className:"w-16 h-16 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})}),(0,F.jsx)("p",{className:"text-sm",children:n("imageViewer.loadError")}),(0,F.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:D})]}):(0,F.jsx)("div",{className:"flex items-center justify-center p-4",children:(0,F.jsx)("img",{src:e,alt:D,onError:()=>{o(!0),null==s||s()},style:{maxWidth:"100%",maxHeight:"500px",objectFit:"contain"},className:"rounded-lg shadow-sm"})})}},20063:(u,e,D)=>{"use strict";var F=D(47260);D.o(F,"useParams")&&D.d(e,{useParams:function(){return F.useParams}}),D.o(F,"usePathname")&&D.d(e,{usePathname:function(){return F.usePathname}}),D.o(F,"useRouter")&&D.d(e,{useRouter:function(){return F.useRouter}}),D.o(F,"useSearchParams")&&D.d(e,{useSearchParams:function(){return F.useSearchParams}})},21286:(u,e,D)=>{"use strict";D.d(e,{A:()=>r});let F=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,t=Object.hasOwnProperty;class r{constructor(){this.occurrences,this.reset()}slug(u,e){var D,r;let s=(D=u,r=!0===e,"string"!=typeof D?"":(r||(D=D.toLowerCase()),D.replace(F,"").replace(/ /g,"-"))),n=s;for(;t.call(this.occurrences,s);)this.occurrences[n]++,s=n+"-"+this.occurrences[n];return this.occurrences[s]=0,s}reset(){this.occurrences=Object.create(null)}}},32366:(u,e,D)=>{Promise.resolve().then(D.bind(D,82743))},50666:(u,e,D)=>{"use strict";D.d(e,{Ck:()=>s});var F=D(95155),t=D(12115),r=D(53482);function s(u){let{children:e,as:D="div",className:s=""}=u,n=function u(e){return null==e||"boolean"==typeof e?"":"string"==typeof e?e:"number"==typeof e?String(e):Array.isArray(e)?e.map(u).join(""):t.isValidElement(e)?u(e.props.children):""}(e);if(!n||0===n.trim().length)return(0,F.jsx)(D,{className:s||void 0,children:e});let a="relative group ".concat("span"===D?"block ":"").concat(s).trim();return(0,F.jsxs)(D,{className:a,"data-testid":"code-block-with-copy",children:[e,(0,F.jsx)(r.i,{text:n,className:"absolute right-2 top-2 z-10 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 focus:opacity-100"})]})}},53482:(u,e,D)=>{"use strict";D.d(e,{i:()=>o});var F=D(95155),t=D(12115),r=D(60322),s=D(9900);function n(){return(0,F.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function a(){return(0,F.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function o(u){let{text:e,className:D="",label:o="Copy"}=u,[l,c]=(0,t.useState)(!1),i=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]);let C=(0,t.useCallback)(async()=>{try{await (0,r.l)(e),c(!0),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>c(!1),s.s7)}catch(u){}},[e]);return(0,F.jsxs)("button",{type:"button",onClick:C,className:"inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ".concat(D),"aria-label":l?"Copied":o,title:l?"Copied!":o,children:[l?(0,F.jsx)(a,{}):(0,F.jsx)(n,{}),(0,F.jsx)("span",{children:l?"Copied":o})]})}},55924:(u,e,D)=>{"use strict";D.d(e,{K:()=>r});var F=D(95155),t=D(12115);function r(u){let{entries:e,title:D,headerOffset:r=64,root:s=null,className:n=""}=u,[a,o]=(0,t.useState)(null);return((0,t.useRef)(null).current=a,(0,t.useEffect)(()=>{if("undefined"==typeof IntersectionObserver||0===e.length)return;let u=new IntersectionObserver(u=>{let e=function(u){let e=u.filter(u=>u.isIntersecting).sort((u,e)=>u.boundingClientRect.top-e.boundingClientRect.top);return e.length>0?e[0].target.id:null}(u);e&&o(e)},{root:s,rootMargin:"-".concat(r,"px 0px -70% 0px"),threshold:0}),D=[];for(let F of e){let e=document.getElementById(F.id);e&&(u.observe(e),D.push(e))}return()=>{u.disconnect(),D.length=0}},[e,r,s]),0===e.length)?null:(0,F.jsxs)("nav",{"aria-label":D,className:n,children:[(0,F.jsx)("p",{className:"px-3 pb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:D}),(0,F.jsx)("ul",{className:"space-y-0.5 text-sm",children:e.map((u,e)=>{let D=u.id===a;return(0,F.jsx)("li",{children:(0,F.jsx)("a",{href:"#".concat(u.id),onClick:e=>((u,e)=>{u.preventDefault();let D="undefined"!=typeof document?document.getElementById(e):null;D&&D.scrollIntoView({behavior:"smooth",block:"start"}),o(e)})(e,u.id),"aria-current":D?"location":void 0,"data-depth":u.depth,style:{paddingLeft:"".concat((u.depth-1)*12+12,"px")},className:["block truncate rounded py-1 pr-2 transition-colors",D?"bg-accent-50 font-medium text-accent-700":"text-muted-foreground hover:bg-muted hover:text-foreground"].join(" "),title:u.text,children:u.text})},"".concat(u.id,"-").concat(e))})})]})}},60322:(u,e,D)=>{"use strict";D.d(e,{l:()=>t});let F=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function t(u){var e;if(!u||0===u.trim().length)return;let D=u.replace(F,"");if(null==(e=navigator.clipboard)?void 0:e.writeText)try{await navigator.clipboard.writeText(D);return}catch(u){}let t=document.createElement("textarea");t.value=D,t.style.position="fixed",t.style.left="-9999px",t.style.top="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy")}finally{document.body.removeChild(t)}}},69264:(u,e,D)=>{"use strict";D.d(e,{u:()=>n});var F=D(95155),t=D(12115),r=D(18955),s=D(3005);function n(u){let{src:e,onError:D}=u,n=(0,r.c)("worktree"),[a,o]=(0,t.useState)(!0),[l,c]=(0,t.useState)(!1);return l?(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,F.jsx)("svg",{className:"w-16 h-16 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})}),(0,F.jsx)("p",{className:"text-sm",children:n("videoViewer.loadError")})]}):(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center p-4",children:[a&&(0,F.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,F.jsx)(s.y,{size:"xl",variant:"accent"}),(0,F.jsx)("p",{className:"ml-3 text-muted-foreground",children:n("videoViewer.loading")})]}),(0,F.jsx)("video",{controls:!0,src:e,onLoadedData:()=>{o(!1)},onError:()=>{o(!1),c(!0),null==D||D()},style:{maxWidth:"100%",maxHeight:"500px",display:a?"none":"block"},className:"rounded-lg shadow-sm",children:n("videoViewer.unsupported")})]})}},79962:(u,e,D)=>{"use strict";D.d(e,{K:()=>n,Y:()=>t});var F=D(21286);let t="commandmate:md-toc-visible",r=/^ {0,3}(#{1,6})(?:[ \t]+(.*?))?[ \t]*$/,s=/^( {0,3})(`{3,}|~{3,})(.*)$/;function n(u){if(!u)return[];let e=new F.A,D=[],t=null,n=0;for(let F of u.split("\n")){var a;let u=s.exec(F);if(t){if(u){let e=u[2];e[0]===t&&e.length>=n&&""===u[3].trim()&&(t=null,n=0)}continue}if(u){let e=u[2],D=e[0];if("`"===D&&u[3].includes("`"));else{t=D,n=e.length;continue}}let o=r.exec(F);if(!o)continue;let l=o[1].length,c=function(u){let e=u;return(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/!\[[^\]]*\]\([^)]*\)/g,"")).replace(/!\[[^\]]*\]\[[^\]]*\]/g,"")).replace(/\[([^\]]*)\]\([^)]*\)/g,"$1")).replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1")).replace(/\[([^\]]*)\]/g,"$1")).replace(/(`+)([\s\S]*?)\1/g,"$2")).replace(/(\*\*|__)(.*?)\1/g,"$2")).replace(/(\*|_)(.*?)\1/g,"$2")).replace(/~~(.*?)~~/g,"$1")).replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")).trim()}((null!=(a=o[2])?a:"").replace(/([ \t]|^)#+[ \t]*$/,"")),i=e.slug(c);D.push({depth:l,text:c,id:i})}return D}},80003:(u,e,D)=>{"use strict";D.d(e,{A:()=>F});let F=(0,D(71847).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},82743:(u,e,D)=>{"use strict";D.r(e),D.d(e,{default:()=>h});var F=D(95155),t=D(12115),r=D(20063),s=D(18955),n=D(80003);let a=(0,D(71847).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);var o=D(28019),l=D(51238),c=D(22133),i=D(5225),C=D(92254),d=D(17846),E=D(69264),A=D(55924),B=D(50666),x=D(79962);function h(){let u=(0,r.useRouter)(),e=(0,r.useParams)(),D=(0,s.c)("common"),h=(0,s.c)("worktree"),p=e.id,m=e.path.join("/"),[g,f]=(0,t.useState)(null),[y,j]=(0,t.useState)(!0),[b,v]=(0,t.useState)(null),[k,N]=(0,t.useState)(!0),[w,L]=(0,t.useState)(!1),M=(null==g?void 0:g.extension)==="md"||(null==g?void 0:g.extension)==="markdown",S=(0,t.useMemo)(()=>M&&g?(0,x.K)(g.content):[],[M,g]),P=S.length>=2,z=M&&P&&k;return(0,t.useEffect)(()=>{let u=localStorage.getItem(x.Y);"true"===u?N(!0):"false"===u&&N(!1),L(!0)},[]),(0,t.useEffect)(()=>{w&&localStorage.setItem(x.Y,String(k))},[k,w]),(0,t.useEffect)(()=>{(async()=>{j(!0),v(null);try{let u=await fetch("/api/worktrees/".concat(p,"/files/").concat(m));if(!u.ok){let e=await u.json();throw Error(e.error||"Failed to load file")}let e=await u.json();f(e)}catch(u){v(u instanceof Error?u.message:"Failed to load file")}finally{j(!1)}})()},[p,m]),(0,F.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,F.jsx)("div",{className:"sticky top-0 z-10 bg-white border-b border-gray-200 shadow-sm",children:(0,F.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center gap-3",children:[(0,F.jsxs)("button",{onClick:()=>u.back(),className:"flex items-center gap-2 text-gray-600 hover:text-gray-900 transition-colors","aria-label":D("back"),children:[(0,F.jsx)("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 19l-7-7m0 0l7-7m-7 7h18"})}),(0,F.jsx)("span",{className:"hidden sm:inline",children:D("back")})]}),(0,F.jsx)("div",{className:"flex-1 min-w-0",children:(0,F.jsx)("h1",{className:"text-lg font-semibold text-gray-900 truncate",children:m})}),M&&P&&(0,F.jsxs)("button",{onClick:()=>N(u=>!u),"aria-pressed":k,"aria-label":h(k?"toc.hide":"toc.show"),title:h(k?"toc.hide":"toc.show"),className:"hidden lg:flex items-center gap-1.5 flex-shrink-0 rounded-md border border-gray-200 px-2.5 py-1.5 text-sm text-gray-600 hover:bg-gray-50 hover:text-gray-900 transition-colors",children:[k?(0,F.jsx)(n.A,{className:"w-4 h-4"}):(0,F.jsx)(a,{className:"w-4 h-4"}),(0,F.jsx)("span",{className:"hidden xl:inline",children:h("toc.title")})]})]})}),(0,F.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-6",children:[y&&(0,F.jsx)(o.Zp,{padding:"lg",children:(0,F.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,F.jsx)(o.y$,{size:"xl",variant:"accent"}),(0,F.jsx)("p",{className:"ml-3 text-gray-600",children:"Loading file..."})]})}),b&&(0,F.jsx)(o.Zp,{padding:"lg",children:(0,F.jsx)("div",{className:"bg-danger-subtle border border-danger-border rounded-lg p-4",children:(0,F.jsxs)("div",{className:"flex items-center gap-2",children:[(0,F.jsx)("svg",{className:"w-5 h-5 text-danger-foreground flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,F.jsx)("p",{className:"text-sm text-danger-foreground",children:b})]})})}),g&&!y&&!b&&(0,F.jsxs)(o.Zp,{padding:"none",children:[(0,F.jsx)("div",{className:"bg-gray-100 px-4 py-3 border-b border-gray-200",children:(0,F.jsxs)("p",{className:"text-xs text-gray-600 font-mono break-all",children:[g.worktreePath,"/",g.path]})}),(0,F.jsx)("div",{className:"p-6 sm:p-8 bg-white",children:g.isVideo?(0,F.jsx)(E.u,{src:g.content,mimeType:g.mimeType}):g.isImage?(0,F.jsx)(d.a,{src:g.content,alt:g.path,mimeType:g.mimeType}):M?(0,F.jsxs)("div",{className:"lg:flex lg:gap-6 lg:items-start",children:[(0,F.jsx)("div",{className:"min-w-0 lg:flex-1 prose prose-slate max-w-none prose-headings:font-semibold prose-headings:scroll-mt-[57px] prose-h1:text-3xl prose-h1:border-b prose-h1:pb-2 prose-h2:text-2xl prose-h2:border-b prose-h2:pb-2 prose-h3:text-xl prose-a:text-accent-600 prose-a:no-underline hover:prose-a:underline prose-code:text-sm prose-code:bg-gray-100 prose-code:px-1 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none prose-img:rounded-lg prose-img:shadow-md",children:(0,F.jsx)(l.oz,{remarkPlugins:[c.A],rehypePlugins:[C.A,i.A],components:{code:u=>{let{className:e,children:D,...t}=u;return e&&e.includes("language-")?(0,F.jsx)("code",{className:e,...t,children:D}):(0,F.jsx)("code",{className:"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono",...t,children:D})},pre:u=>{let{children:e}=u;return(0,F.jsx)(B.Ck,{children:(0,F.jsx)("pre",{className:"overflow-x-auto",children:e})})},table:u=>{let{children:e}=u;return(0,F.jsx)("div",{className:"overflow-x-auto",children:(0,F.jsx)("table",{className:"border-collapse border border-gray-300",children:e})})},th:u=>{let{children:e}=u;return(0,F.jsx)("th",{className:"border border-gray-300 bg-gray-100 px-4 py-2 text-left font-semibold",children:e})},td:u=>{let{children:e}=u;return(0,F.jsx)("td",{className:"border border-gray-300 px-4 py-2",children:e})},blockquote:u=>{let{children:e}=u;return(0,F.jsx)("blockquote",{className:"border-l-4 border-gray-300 pl-4 italic text-gray-700",children:e})}},children:g.content})}),z&&(0,F.jsx)("aside",{className:"hidden lg:block lg:w-64 lg:flex-shrink-0",children:(0,F.jsx)("div",{className:"lg:sticky",style:{top:"".concat(65,"px")},children:(0,F.jsx)(A.K,{entries:S,title:h("toc.title"),headerOffset:57})})})]}):(0,F.jsx)("pre",{className:"bg-gray-50 border border-gray-200 rounded-md p-4 overflow-x-auto text-sm",children:(0,F.jsx)("code",{className:"language-".concat(g.extension),children:g.content})})})]})]})]})}},92254:(u,e,D)=>{"use strict";D.d(e,{A:()=>n});var F=D(21286),t=D(95139);let r={},s=new F.A;function n(u){let e=(u||r).prefix||"";return function(u){s.reset(),(0,t.YR)(u,"element",function(u){(function(u){let e="element"===u.type?u.tagName.toLowerCase():"",D=2===e.length&&104===e.charCodeAt(0)?e.charCodeAt(1):0;return D>48&&D<55?D-48:void 0})(u)&&!u.properties.id&&(u.properties.id=e+s.slug("children"in u?function u(e){let D=-1,F=[];for(;++D<e.children.length;){var t;F[D]="text"===(t=e.children[D]).type?t.value:"children"in t?u(t):""}return F.join("")}(u):"value"in u?u.value:""))})}}}},u=>{u.O(0,[6809,4909,2770,8566,6402,8019,8441,1255,7358],()=>u(u.s=32366)),_N_E=u.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1385],{17846:(u,e,D)=>{"use strict";D.d(e,{a:()=>s});var F=D(95155),t=D(12115),r=D(18955);function s(u){let{src:e,alt:D,onError:s}=u,n=(0,r.c)("worktree"),[a,o]=(0,t.useState)(!1);return a?(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,F.jsx)("svg",{className:"w-16 h-16 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})}),(0,F.jsx)("p",{className:"text-sm",children:n("imageViewer.loadError")}),(0,F.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:D})]}):(0,F.jsx)("div",{className:"flex items-center justify-center p-4",children:(0,F.jsx)("img",{src:e,alt:D,onError:()=>{o(!0),null==s||s()},style:{maxWidth:"100%",maxHeight:"500px",objectFit:"contain"},className:"rounded-lg shadow-sm"})})}},20063:(u,e,D)=>{"use strict";var F=D(47260);D.o(F,"useParams")&&D.d(e,{useParams:function(){return F.useParams}}),D.o(F,"usePathname")&&D.d(e,{usePathname:function(){return F.usePathname}}),D.o(F,"useRouter")&&D.d(e,{useRouter:function(){return F.useRouter}}),D.o(F,"useSearchParams")&&D.d(e,{useSearchParams:function(){return F.useSearchParams}})},21286:(u,e,D)=>{"use strict";D.d(e,{A:()=>r});let F=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,t=Object.hasOwnProperty;class r{constructor(){this.occurrences,this.reset()}slug(u,e){var D,r;let s=(D=u,r=!0===e,"string"!=typeof D?"":(r||(D=D.toLowerCase()),D.replace(F,"").replace(/ /g,"-"))),n=s;for(;t.call(this.occurrences,s);)this.occurrences[n]++,s=n+"-"+this.occurrences[n];return this.occurrences[s]=0,s}reset(){this.occurrences=Object.create(null)}}},32366:(u,e,D)=>{Promise.resolve().then(D.bind(D,82743))},50666:(u,e,D)=>{"use strict";D.d(e,{Ck:()=>s});var F=D(95155),t=D(12115),r=D(53482);function s(u){let{children:e,as:D="div",className:s=""}=u,n=function u(e){return null==e||"boolean"==typeof e?"":"string"==typeof e?e:"number"==typeof e?String(e):Array.isArray(e)?e.map(u).join(""):t.isValidElement(e)?u(e.props.children):""}(e);if(!n||0===n.trim().length)return(0,F.jsx)(D,{className:s||void 0,children:e});let a="relative group ".concat("span"===D?"block ":"").concat(s).trim();return(0,F.jsxs)(D,{className:a,"data-testid":"code-block-with-copy",children:[e,(0,F.jsx)(r.i,{text:n,className:"absolute right-2 top-2 z-10 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 focus:opacity-100"})]})}},53482:(u,e,D)=>{"use strict";D.d(e,{i:()=>o});var F=D(95155),t=D(12115),r=D(60322),s=D(9900);function n(){return(0,F.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function a(){return(0,F.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function o(u){let{text:e,className:D="",label:o="Copy"}=u,[l,c]=(0,t.useState)(!1),i=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{i.current&&clearTimeout(i.current)},[]);let C=(0,t.useCallback)(async()=>{try{await (0,r.l)(e),c(!0),i.current&&clearTimeout(i.current),i.current=setTimeout(()=>c(!1),s.s7)}catch(u){}},[e]);return(0,F.jsxs)("button",{type:"button",onClick:C,className:"inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ".concat(D),"aria-label":l?"Copied":o,title:l?"Copied!":o,children:[l?(0,F.jsx)(a,{}):(0,F.jsx)(n,{}),(0,F.jsx)("span",{children:l?"Copied":o})]})}},55924:(u,e,D)=>{"use strict";D.d(e,{K:()=>r});var F=D(95155),t=D(12115);function r(u){let{entries:e,title:D,headerOffset:r=64,root:s=null,className:n=""}=u,[a,o]=(0,t.useState)(null);return((0,t.useRef)(null).current=a,(0,t.useEffect)(()=>{if("undefined"==typeof IntersectionObserver||0===e.length)return;let u=new IntersectionObserver(u=>{let e=function(u){let e=u.filter(u=>u.isIntersecting).sort((u,e)=>u.boundingClientRect.top-e.boundingClientRect.top);return e.length>0?e[0].target.id:null}(u);e&&o(e)},{root:s,rootMargin:"-".concat(r,"px 0px -70% 0px"),threshold:0}),D=[];for(let F of e){let e=document.getElementById(F.id);e&&(u.observe(e),D.push(e))}return()=>{u.disconnect(),D.length=0}},[e,r,s]),0===e.length)?null:(0,F.jsxs)("nav",{"aria-label":D,className:n,children:[(0,F.jsx)("p",{className:"px-3 pb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:D}),(0,F.jsx)("ul",{className:"space-y-0.5 text-sm",children:e.map((u,e)=>{let D=u.id===a;return(0,F.jsx)("li",{children:(0,F.jsx)("a",{href:"#".concat(u.id),onClick:e=>((u,e)=>{u.preventDefault();let D="undefined"!=typeof document?document.getElementById(e):null;D&&D.scrollIntoView({behavior:"smooth",block:"start"}),o(e)})(e,u.id),"aria-current":D?"location":void 0,"data-depth":u.depth,style:{paddingLeft:"".concat((u.depth-1)*12+12,"px")},className:["block truncate rounded py-1 pr-2 transition-colors",D?"bg-accent-50 font-medium text-accent-700":"text-muted-foreground hover:bg-muted hover:text-foreground"].join(" "),title:u.text,children:u.text})},"".concat(u.id,"-").concat(e))})})]})}},60322:(u,e,D)=>{"use strict";D.d(e,{l:()=>t});let F=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function t(u){var e;if(!u||0===u.trim().length)return;let D=u.replace(F,"");if(null==(e=navigator.clipboard)?void 0:e.writeText)try{await navigator.clipboard.writeText(D);return}catch(u){}let t=document.createElement("textarea");t.value=D,t.style.position="fixed",t.style.left="-9999px",t.style.top="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy")}finally{document.body.removeChild(t)}}},69264:(u,e,D)=>{"use strict";D.d(e,{u:()=>n});var F=D(95155),t=D(12115),r=D(18955),s=D(3005);function n(u){let{src:e,onError:D}=u,n=(0,r.c)("worktree"),[a,o]=(0,t.useState)(!0),[l,c]=(0,t.useState)(!1);return l?(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,F.jsx)("svg",{className:"w-16 h-16 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})}),(0,F.jsx)("p",{className:"text-sm",children:n("videoViewer.loadError")})]}):(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center p-4",children:[a&&(0,F.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,F.jsx)(s.y,{size:"xl",variant:"accent"}),(0,F.jsx)("p",{className:"ml-3 text-muted-foreground",children:n("videoViewer.loading")})]}),(0,F.jsx)("video",{controls:!0,src:e,onLoadedData:()=>{o(!1)},onError:()=>{o(!1),c(!0),null==D||D()},style:{maxWidth:"100%",maxHeight:"500px",display:a?"none":"block"},className:"rounded-lg shadow-sm",children:n("videoViewer.unsupported")})]})}},79962:(u,e,D)=>{"use strict";D.d(e,{K:()=>n,Y:()=>t});var F=D(21286);let t="commandmate:md-toc-visible",r=/^ {0,3}(#{1,6})(?:[ \t]+(.*?))?[ \t]*$/,s=/^( {0,3})(`{3,}|~{3,})(.*)$/;function n(u){if(!u)return[];let e=new F.A,D=[],t=null,n=0;for(let F of u.split("\n")){var a;let u=s.exec(F);if(t){if(u){let e=u[2];e[0]===t&&e.length>=n&&""===u[3].trim()&&(t=null,n=0)}continue}if(u){let e=u[2],D=e[0];if("`"===D&&u[3].includes("`"));else{t=D,n=e.length;continue}}let o=r.exec(F);if(!o)continue;let l=o[1].length,c=function(u){let e=u;return(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/!\[[^\]]*\]\([^)]*\)/g,"")).replace(/!\[[^\]]*\]\[[^\]]*\]/g,"")).replace(/\[([^\]]*)\]\([^)]*\)/g,"$1")).replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1")).replace(/\[([^\]]*)\]/g,"$1")).replace(/(`+)([\s\S]*?)\1/g,"$2")).replace(/(\*\*|__)(.*?)\1/g,"$2")).replace(/(\*|_)(.*?)\1/g,"$2")).replace(/~~(.*?)~~/g,"$1")).replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")).trim()}((null!=(a=o[2])?a:"").replace(/([ \t]|^)#+[ \t]*$/,"")),i=e.slug(c);D.push({depth:l,text:c,id:i})}return D}},80003:(u,e,D)=>{"use strict";D.d(e,{A:()=>F});let F=(0,D(71847).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},82743:(u,e,D)=>{"use strict";D.r(e),D.d(e,{default:()=>h});var F=D(95155),t=D(12115),r=D(20063),s=D(18955),n=D(80003);let a=(0,D(71847).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);var o=D(28019),l=D(51238),c=D(22133),i=D(5225),C=D(92254),d=D(17846),E=D(69264),A=D(55924),B=D(50666),x=D(79962);function h(){let u=(0,r.useRouter)(),e=(0,r.useParams)(),D=(0,s.c)("common"),h=(0,s.c)("worktree"),p=e.id,m=e.path.join("/"),[g,f]=(0,t.useState)(null),[y,j]=(0,t.useState)(!0),[b,v]=(0,t.useState)(null),[k,N]=(0,t.useState)(!0),[w,L]=(0,t.useState)(!1),M=(null==g?void 0:g.extension)==="md"||(null==g?void 0:g.extension)==="markdown",S=(0,t.useMemo)(()=>M&&g?(0,x.K)(g.content):[],[M,g]),P=S.length>=2,z=M&&P&&k;return(0,t.useEffect)(()=>{let u=localStorage.getItem(x.Y);"true"===u?N(!0):"false"===u&&N(!1),L(!0)},[]),(0,t.useEffect)(()=>{w&&localStorage.setItem(x.Y,String(k))},[k,w]),(0,t.useEffect)(()=>{(async()=>{j(!0),v(null);try{let u=await fetch("/api/worktrees/".concat(p,"/files/").concat(m));if(!u.ok){let e=await u.json();throw Error(e.error||"Failed to load file")}let e=await u.json();f(e)}catch(u){v(u instanceof Error?u.message:"Failed to load file")}finally{j(!1)}})()},[p,m]),(0,F.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,F.jsx)("div",{className:"sticky top-0 z-10 bg-white border-b border-gray-200 shadow-sm",children:(0,F.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center gap-3",children:[(0,F.jsxs)("button",{onClick:()=>u.back(),className:"flex items-center gap-2 text-gray-600 hover:text-gray-900 transition-colors","aria-label":D("back"),children:[(0,F.jsx)("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 19l-7-7m0 0l7-7m-7 7h18"})}),(0,F.jsx)("span",{className:"hidden sm:inline",children:D("back")})]}),(0,F.jsx)("div",{className:"flex-1 min-w-0",children:(0,F.jsx)("h1",{className:"text-lg font-semibold text-gray-900 truncate",children:m})}),M&&P&&(0,F.jsxs)("button",{onClick:()=>N(u=>!u),"aria-pressed":k,"aria-label":h(k?"toc.hide":"toc.show"),title:h(k?"toc.hide":"toc.show"),className:"hidden lg:flex items-center gap-1.5 flex-shrink-0 rounded-md border border-gray-200 px-2.5 py-1.5 text-sm text-gray-600 hover:bg-gray-50 hover:text-gray-900 transition-colors",children:[k?(0,F.jsx)(n.A,{className:"w-4 h-4"}):(0,F.jsx)(a,{className:"w-4 h-4"}),(0,F.jsx)("span",{className:"hidden xl:inline",children:h("toc.title")})]})]})}),(0,F.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-6",children:[y&&(0,F.jsx)(o.Zp,{padding:"lg",children:(0,F.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,F.jsx)(o.y$,{size:"xl",variant:"accent"}),(0,F.jsx)("p",{className:"ml-3 text-gray-600",children:"Loading file..."})]})}),b&&(0,F.jsx)(o.Zp,{padding:"lg",children:(0,F.jsx)("div",{className:"bg-danger-subtle border border-danger-border rounded-lg p-4",children:(0,F.jsxs)("div",{className:"flex items-center gap-2",children:[(0,F.jsx)("svg",{className:"w-5 h-5 text-danger-foreground flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,F.jsx)("p",{className:"text-sm text-danger-foreground",children:b})]})})}),g&&!y&&!b&&(0,F.jsxs)(o.Zp,{padding:"none",children:[(0,F.jsx)("div",{className:"bg-gray-100 px-4 py-3 border-b border-gray-200",children:(0,F.jsxs)("p",{className:"text-xs text-gray-600 font-mono break-all",children:[g.worktreePath,"/",g.path]})}),(0,F.jsx)("div",{className:"p-6 sm:p-8 bg-white",children:g.isVideo?(0,F.jsx)(E.u,{src:g.content,mimeType:g.mimeType}):g.isImage?(0,F.jsx)(d.a,{src:g.content,alt:g.path,mimeType:g.mimeType}):M?(0,F.jsxs)("div",{className:"lg:flex lg:gap-6 lg:items-start",children:[(0,F.jsx)("div",{className:"min-w-0 lg:flex-1 prose prose-slate max-w-none prose-headings:font-semibold prose-headings:scroll-mt-[57px] prose-h1:text-3xl prose-h1:border-b prose-h1:pb-2 prose-h2:text-2xl prose-h2:border-b prose-h2:pb-2 prose-h3:text-xl prose-a:text-accent-600 prose-a:no-underline hover:prose-a:underline prose-code:text-sm prose-code:bg-gray-100 prose-code:px-1 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none prose-img:rounded-lg prose-img:shadow-md",children:(0,F.jsx)(l.oz,{remarkPlugins:[c.A],rehypePlugins:[C.A,i.A],components:{code:u=>{let{className:e,children:D,...t}=u;return e&&e.includes("language-")?(0,F.jsx)("code",{className:e,...t,children:D}):(0,F.jsx)("code",{className:"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono",...t,children:D})},pre:u=>{let{children:e}=u;return(0,F.jsx)(B.Ck,{children:(0,F.jsx)("pre",{className:"overflow-x-auto",children:e})})},table:u=>{let{children:e}=u;return(0,F.jsx)("div",{className:"overflow-x-auto",children:(0,F.jsx)("table",{className:"border-collapse border border-gray-300",children:e})})},th:u=>{let{children:e}=u;return(0,F.jsx)("th",{className:"border border-gray-300 bg-gray-100 px-4 py-2 text-left font-semibold",children:e})},td:u=>{let{children:e}=u;return(0,F.jsx)("td",{className:"border border-gray-300 px-4 py-2",children:e})},blockquote:u=>{let{children:e}=u;return(0,F.jsx)("blockquote",{className:"border-l-4 border-gray-300 pl-4 italic text-gray-700",children:e})}},children:g.content})}),z&&(0,F.jsx)("aside",{className:"hidden lg:block lg:w-64 lg:flex-shrink-0",children:(0,F.jsx)("div",{className:"lg:sticky",style:{top:"".concat(65,"px")},children:(0,F.jsx)(A.K,{entries:S,title:h("toc.title"),headerOffset:57})})})]}):(0,F.jsx)("pre",{className:"bg-gray-50 border border-gray-200 rounded-md p-4 overflow-x-auto text-sm",children:(0,F.jsx)("code",{className:"language-".concat(g.extension),children:g.content})})})]})]})]})}},92254:(u,e,D)=>{"use strict";D.d(e,{A:()=>n});var F=D(21286),t=D(95139);let r={},s=new F.A;function n(u){let e=(u||r).prefix||"";return function(u){s.reset(),(0,t.YR)(u,"element",function(u){(function(u){let e="element"===u.type?u.tagName.toLowerCase():"",D=2===e.length&&104===e.charCodeAt(0)?e.charCodeAt(1):0;return D>48&&D<55?D-48:void 0})(u)&&!u.properties.id&&(u.properties.id=e+s.slug("children"in u?function u(e){let D=-1,F=[];for(;++D<e.children.length;){var t;F[D]="text"===(t=e.children[D]).type?t.value:"children"in t?u(t):""}return F.join("")}(u):"value"in u?u.value:""))})}}}},u=>{u.O(0,[6809,4909,2770,8566,8019,8441,1255,7358],()=>u(u.s=32366)),_N_E=u.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[11,66,74,263,341,532,543,640,836,865,890,960,1099,1123,1158,1164,1274,1295,1310,1317,1327,1337,1360,1363,1377,1421,1437,1523,1645,1652,1745,1796,1972,2017,2046,2117,2132,2207,2260,2344,2360,2464,2548,2609,2786,2852,2893,3002,3175,3350,3657,3685,3792,3797,3845,3965,3969,3990,4016,4035,4042,4199,4225,4240,4275,4468,4476,4594,4614,4748,4767,4779,4907,4961,4985,5004,5145,5286,5332,5522,5580,5657,5683,5832,6067,6140,6194,6248,6393,6451,6564,6635,6680,6734,6824,6839,6901,7e3,7115,7238,7473,7509,7560,7670,7758,7760,7895,7939,8043,8238,8418,8457,8460,8464,8472,8489,8509,8544,8658,8710,8914,8979,9015,9059,9114,9162,9245,9281,9282,9325,9416,9549,9602,9792,9932,9946,9968],{84441:()=>{}},_=>{_.O(0,[8441,1255,7358],()=>_(_.s=84441)),_N_E=_.O()}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[662,1174,3125,4209,5361,6926],{3809:(e,r,l)=>{"use strict";l.d(r,{default:()=>t});var s=l(36809),o=l(95155);function t(e){let{locale:r,...l}=e;if(!r)throw Error(void 0);return(0,o.jsx)(s.Dk,{locale:r,...l})}},22998:(e,r,l)=>{Promise.resolve().then(l.bind(l,3809))}},e=>{e.O(0,[6809,8441,1255,7358],()=>e(e.s=22998)),_N_E=e.O()}]);
|