commandmate 0.41.1 → 0.42.1
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 +134 -134
- package/.next/app-path-routes-manifest.json +24 -24
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route.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.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_client-reference-manifest.js +1 -1
- 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 +2 -2
- 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_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.js.nft.json +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_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_client-reference-manifest.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_client-reference-manifest.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_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]/direct-input/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_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_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 +103 -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_client-reference-manifest.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_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 +103 -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 -103
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
- 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 -103
- 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_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_client-reference-manifest.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_client-reference-manifest.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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +9 -9
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +24 -24
- package/.next/server/chunks/1068.js +1 -0
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/1501.js +5 -5
- package/.next/server/chunks/1990.js +103 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3707.js +1 -1
- package/.next/server/chunks/3718.js +1 -0
- package/.next/server/chunks/434.js +1 -1
- package/.next/server/chunks/4443.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/5775.js +1 -0
- package/.next/server/chunks/611.js +1 -0
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/650.js +1 -1
- package/.next/server/chunks/6781.js +1 -1
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/8581.js +1 -1
- package/.next/server/chunks/8583.js +1 -1
- package/.next/server/chunks/8673.js +2 -2
- package/.next/server/chunks/8728.js +3 -3
- package/.next/server/chunks/8791.js +1 -0
- package/.next/server/chunks/8800.js +1 -1
- package/.next/server/chunks/8918.js +1 -103
- package/.next/server/chunks/9130.js +2 -2
- package/.next/server/chunks/964.js +1 -1
- package/.next/server/chunks/9731.js +3 -3
- package/.next/server/chunks/9882.js +3 -3
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{2407-7bd75de2f6be3692.js → 2407-21fbf12d753b8d4d.js} +1 -1
- package/.next/static/chunks/7705-2a2936551b0cf9a3.js +1 -0
- package/.next/static/chunks/8165-934ee7ff3b4ddfd4.js +1 -0
- package/.next/static/chunks/app/{layout-51fa91ea833c97fc.js → layout-8ff4c7c08ef1f621.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-3c946bd2875391fd.js +1 -0
- package/.next/static/css/{974314e796232f53.css → b3f433d52b8ed5c8.css} +1 -1
- package/.next/trace +13 -13
- package/dist/cli/commands/attach.d.ts +6 -4
- package/dist/cli/commands/attach.d.ts.map +1 -1
- package/dist/cli/commands/attach.js +36 -5
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +5 -0
- package/dist/cli/commands/ls.d.ts.map +1 -1
- package/dist/cli/commands/ls.js +19 -9
- package/dist/cli/commands/whoami.d.ts +9 -25
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +18 -42
- package/dist/cli/types/api-responses.d.ts +37 -0
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/lib/cli-tools/session-name.d.ts +72 -4
- package/dist/lib/cli-tools/session-name.d.ts.map +1 -1
- package/dist/lib/cli-tools/session-name.js +115 -12
- package/dist/lib/detection/tools/verified-against.d.ts +11 -2
- package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.js +11 -2
- package/dist/lib/session/tmux-session-surface.d.ts +9 -7
- package/dist/lib/session/tmux-session-surface.d.ts.map +1 -1
- package/dist/lib/session/tmux-session-surface.js +15 -8
- package/dist/lib/tmux/legacy-session-alias.d.ts +43 -0
- package/dist/lib/tmux/legacy-session-alias.d.ts.map +1 -0
- package/dist/lib/tmux/legacy-session-alias.js +64 -0
- package/dist/lib/verification/verify-config.d.ts +21 -0
- package/dist/lib/verification/verify-config.d.ts.map +1 -1
- package/dist/lib/verification/verify-config.js +54 -1
- package/dist/server/locales/en/worktree.json +60 -17
- package/dist/server/locales/ja/worktree.json +63 -20
- package/dist/server/server.js +29 -0
- package/dist/server/src/lib/auto-yes-poller.js +15 -0
- package/dist/server/src/lib/cli-tools/antigravity.js +1 -1
- package/dist/server/src/lib/cli-tools/base.js +10 -1
- package/dist/server/src/lib/cli-tools/codex.js +1 -1
- package/dist/server/src/lib/cli-tools/command-code.js +1 -1
- package/dist/server/src/lib/cli-tools/copilot.js +1 -1
- package/dist/server/src/lib/cli-tools/gemini.js +1 -1
- package/dist/server/src/lib/cli-tools/legacy-session-adoption.js +19 -0
- package/dist/server/src/lib/cli-tools/opencode.js +1 -1
- package/dist/server/src/lib/cli-tools/session-name.js +115 -12
- package/dist/server/src/lib/cli-tools/session-namespace.js +55 -0
- package/dist/server/src/lib/cli-tools/session-ownership.js +21 -0
- package/dist/server/src/lib/cli-tools/vibe-local.js +1 -1
- package/dist/server/src/lib/cli-tools/worktree-session-ownership.js +28 -0
- package/dist/server/src/lib/db/app-settings-db.js +29 -0
- package/dist/server/src/lib/detection/cli-patterns.js +51 -10
- package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +8 -2
- package/dist/server/src/lib/detection/tools/codex/detect.js +8 -1
- package/dist/server/src/lib/detection/tools/codex/prompt.js +6 -2
- package/dist/server/src/lib/detection/tools/verified-against.js +11 -2
- package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +77 -2
- package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +77 -1
- package/dist/server/src/lib/realtime/terminal-broadcast.js +11 -0
- package/dist/server/src/lib/session/adopt-legacy-sessions.js +89 -0
- package/dist/server/src/lib/session/claude-session.js +13 -10
- package/dist/server/src/lib/session/current-output-builder.js +18 -0
- package/dist/server/src/lib/session/send-user-message.js +26 -0
- package/dist/server/src/lib/session/session-instance-targets.js +53 -0
- package/dist/server/src/lib/session/tmux-session-surface.js +15 -8
- package/dist/server/src/lib/session/worktree-session-reconcile.js +101 -56
- package/dist/server/src/lib/session-cleanup.js +33 -3
- package/dist/server/src/lib/tmux/legacy-session-alias.js +64 -0
- package/dist/server/src/lib/tmux/session-hook-scripts.js +12 -4
- package/dist/server/src/lib/tmux/session-ownership.js +174 -0
- package/dist/server/src/lib/tmux/tmux.js +13 -3
- package/dist/server/src/lib/verification/env-clean-gate.js +46 -14
- package/dist/server/src/lib/verification/gate-runner.js +1 -0
- package/dist/server/src/lib/verification/verify-config.js +54 -1
- package/dist/server/src/lib/ws-server.js +11 -0
- package/package.json +1 -1
- package/release-notes/0.42.0.json +62 -0
- package/release-notes/0.42.1.json +16 -0
- package/.next/server/chunks/3323.js +0 -1
- package/.next/server/chunks/7075.js +0 -1
- package/.next/server/chunks/9080.js +0 -1
- package/.next/static/chunks/7705-25076b57224da370.js +0 -1
- package/.next/static/chunks/8165-d3b7c8a7aa776bc7.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-1e6300dd50cd9a4d.js +0 -1
- /package/.next/static/{_fBjTkjoWfOqdjl2SeMIN → 3M_S0B7dhEDdVE2XSJz1Y}/_buildManifest.js +0 -0
- /package/.next/static/{_fBjTkjoWfOqdjl2SeMIN → 3M_S0B7dhEDdVE2XSJz1Y}/_ssgManifest.js +0 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Server-only: reads from disk, so import this from API routes / CLI only.
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.VerifyConfigError = exports.MAX_RETRY_ON_FAIL = exports.MAX_GATE_MUTEX_LENGTH = exports.GATE_MUTEX_PATTERN = exports.GATE_ID_PATTERN = exports.DEFAULT_MAX_LOG_TAIL_BYTES = exports.DEFAULT_TIMEOUT_SEC = exports.VERIFY_CONFIG_RELATIVE_PATH = exports.RESERVED_GATE_IDS = exports.ENV_CLEAN_GATE_ID = exports.SCOPE_GATE_ID = exports.WORK_EVIDENCE_GATE_ID = void 0;
|
|
11
|
+
exports.VerifyConfigError = exports.MAX_ENV_CLEAN_IGNORE_HOME_ENTRIES = exports.MAX_RETRY_ON_FAIL = exports.MAX_GATE_MUTEX_LENGTH = exports.GATE_MUTEX_PATTERN = exports.GATE_ID_PATTERN = exports.DEFAULT_MAX_LOG_TAIL_BYTES = exports.DEFAULT_TIMEOUT_SEC = exports.VERIFY_CONFIG_RELATIVE_PATH = exports.RESERVED_GATE_IDS = exports.ENV_CLEAN_GATE_ID = exports.SCOPE_GATE_ID = exports.WORK_EVIDENCE_GATE_ID = void 0;
|
|
12
12
|
exports.defaultPlannedGateIds = defaultPlannedGateIds;
|
|
13
13
|
exports.validateGateEntries = validateGateEntries;
|
|
14
14
|
exports.loadVerifyConfig = loadVerifyConfig;
|
|
@@ -110,6 +110,11 @@ exports.MAX_GATE_MUTEX_LENGTH = 64;
|
|
|
110
110
|
* reports the machine's luck, not the work.
|
|
111
111
|
*/
|
|
112
112
|
exports.MAX_RETRY_ON_FAIL = 1;
|
|
113
|
+
/**
|
|
114
|
+
* Most names `options.envCleanIgnoreHomeEntries` may list (Issue #2890). A list
|
|
115
|
+
* this long is already a repository papering over a machine it should fix.
|
|
116
|
+
*/
|
|
117
|
+
exports.MAX_ENV_CLEAN_IGNORE_HOME_ENTRIES = 32;
|
|
113
118
|
const TOP_LEVEL_KEYS = ['version', 'gates', 'options'];
|
|
114
119
|
const GATE_KEYS = ['id', 'command', 'timeoutSec', 'mutex', 'retryOnFail', 'flakyIsPass'];
|
|
115
120
|
const OPTION_KEYS = [
|
|
@@ -118,6 +123,7 @@ const OPTION_KEYS = [
|
|
|
118
123
|
'maxLogTailBytes',
|
|
119
124
|
'requireCommit',
|
|
120
125
|
'requireEnvClean',
|
|
126
|
+
'envCleanIgnoreHomeEntries',
|
|
121
127
|
];
|
|
122
128
|
class VerifyConfigError extends Error {
|
|
123
129
|
issues;
|
|
@@ -316,6 +322,47 @@ function validateGates(value, issues) {
|
|
|
316
322
|
}
|
|
317
323
|
return validateGateEntries(value, 'gates', issues);
|
|
318
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Validate `options.envCleanIgnoreHomeEntries` (Issue #2890).
|
|
327
|
+
*
|
|
328
|
+
* Each item must be usable as one exact `$HOME` directory-entry name: a string,
|
|
329
|
+
* non-empty, not `.` / `..`, and free of `/` and NUL. Anything with a separator
|
|
330
|
+
* could never equal a `readdir` result, so accepting it would be a rule that
|
|
331
|
+
* silently matches nothing.
|
|
332
|
+
*
|
|
333
|
+
* @returns the names, or null when the value was invalid (issues were pushed)
|
|
334
|
+
*/
|
|
335
|
+
function validateHomeEntryNames(value, issues) {
|
|
336
|
+
const label = 'options.envCleanIgnoreHomeEntries';
|
|
337
|
+
if (!Array.isArray(value)) {
|
|
338
|
+
issues.push(`${label}: must be a list of $HOME entry names (got ${describe(value)})`);
|
|
339
|
+
return null;
|
|
340
|
+
}
|
|
341
|
+
const before = issues.length;
|
|
342
|
+
if (value.length > exports.MAX_ENV_CLEAN_IGNORE_HOME_ENTRIES) {
|
|
343
|
+
issues.push(`${label}: at most ${exports.MAX_ENV_CLEAN_IGNORE_HOME_ENTRIES} entries (got ${value.length})`);
|
|
344
|
+
}
|
|
345
|
+
const names = [];
|
|
346
|
+
value.forEach((item, index) => {
|
|
347
|
+
const at = `${label}[${index}]`;
|
|
348
|
+
if (typeof item !== 'string') {
|
|
349
|
+
issues.push(`${at}: must be a string (got ${describe(item)})`);
|
|
350
|
+
}
|
|
351
|
+
else if (item === '') {
|
|
352
|
+
issues.push(`${at}: must not be empty`);
|
|
353
|
+
}
|
|
354
|
+
else if (item === '.' || item === '..') {
|
|
355
|
+
issues.push(`${at}: must be an entry name, not ${JSON.stringify(item)}`);
|
|
356
|
+
}
|
|
357
|
+
else if (item.includes('/') || item.includes('\0')) {
|
|
358
|
+
issues.push(`${at}: must be a single $HOME entry name without "/" or NUL (got ${describe(item)})`);
|
|
359
|
+
}
|
|
360
|
+
else {
|
|
361
|
+
names.push(item);
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
return issues.length === before ? names : null;
|
|
365
|
+
}
|
|
319
366
|
function validateOptions(value, issues) {
|
|
320
367
|
const options = {
|
|
321
368
|
baseRef: null,
|
|
@@ -323,6 +370,7 @@ function validateOptions(value, issues) {
|
|
|
323
370
|
maxLogTailBytes: exports.DEFAULT_MAX_LOG_TAIL_BYTES,
|
|
324
371
|
requireCommit: false,
|
|
325
372
|
requireEnvClean: false,
|
|
373
|
+
envCleanIgnoreHomeEntries: [],
|
|
326
374
|
};
|
|
327
375
|
// A childless `options:` key parses as null and means "all defaults".
|
|
328
376
|
if (value === undefined || value === null)
|
|
@@ -367,6 +415,11 @@ function validateOptions(value, issues) {
|
|
|
367
415
|
options.requireEnvClean = parsed;
|
|
368
416
|
}
|
|
369
417
|
}
|
|
418
|
+
if (value.envCleanIgnoreHomeEntries !== undefined) {
|
|
419
|
+
const names = validateHomeEntryNames(value.envCleanIgnoreHomeEntries, issues);
|
|
420
|
+
if (names)
|
|
421
|
+
options.envCleanIgnoreHomeEntries = names;
|
|
422
|
+
}
|
|
370
423
|
if (value.maxLogTailBytes !== undefined) {
|
|
371
424
|
const parsed = asInteger(value.maxLogTailBytes);
|
|
372
425
|
if (parsed === null) {
|
|
@@ -114,7 +114,8 @@
|
|
|
114
114
|
"codex": "Sign out from Codex",
|
|
115
115
|
"claude": "Sign out of your Anthropic account",
|
|
116
116
|
"copilot": "Log out of the current OAuth session",
|
|
117
|
-
"command-code": "Log out of Command Code or a provider"
|
|
117
|
+
"command-code": "Log out of Command Code or a provider",
|
|
118
|
+
"antigravity": "Log out"
|
|
118
119
|
},
|
|
119
120
|
"quit": "Exit Codex CLI",
|
|
120
121
|
"diff": "Show Git diff (including untracked files)",
|
|
@@ -131,7 +132,8 @@
|
|
|
131
132
|
"codex": "Send feedback to Codex team",
|
|
132
133
|
"claude": "Send feedback about Claude Code",
|
|
133
134
|
"copilot": "Provide feedback about the CLI",
|
|
134
|
-
"command-code": "Report a bug or share feedback on GitHub"
|
|
135
|
+
"command-code": "Report a bug or share feedback on GitHub",
|
|
136
|
+
"antigravity": "Submit qualitative feedback to improve the agent"
|
|
135
137
|
},
|
|
136
138
|
"plan": "Toggle plan mode",
|
|
137
139
|
"goal": "Set goal for current session",
|
|
@@ -146,7 +148,8 @@
|
|
|
146
148
|
"claude": "Manage Claude Code skills",
|
|
147
149
|
"copilot": "Manage skills for enhanced capabilities",
|
|
148
150
|
"opencode": "Browse and run available skills",
|
|
149
|
-
"command-code": "Browse and open agent skills"
|
|
151
|
+
"command-code": "Browse and open agent skills",
|
|
152
|
+
"antigravity": "List available skills"
|
|
150
153
|
},
|
|
151
154
|
"hooks": "View or manage hook configurations",
|
|
152
155
|
"sessions": "Browse conversation history",
|
|
@@ -156,14 +159,16 @@
|
|
|
156
159
|
"claude": "Exit the CLI",
|
|
157
160
|
"codex": "Exit the CLI",
|
|
158
161
|
"copilot": "Exit the CLI",
|
|
159
|
-
"command-code": "Exit Command Code"
|
|
162
|
+
"command-code": "Exit Command Code",
|
|
163
|
+
"antigravity": "Exit the CLI"
|
|
160
164
|
},
|
|
161
165
|
"models": "Switch AI model",
|
|
162
166
|
"agents": {
|
|
163
167
|
"opencode": "List and manage available agents",
|
|
164
168
|
"claude": "Show a reminder to ask Claude to create or manage subagents, or to edit .claude/agents/ directly",
|
|
165
169
|
"codex": "view and switch between all active agent sessions",
|
|
166
|
-
"command-code": "Manage agent configurations"
|
|
170
|
+
"command-code": "Manage agent configurations",
|
|
171
|
+
"antigravity": "List available custom agents"
|
|
167
172
|
},
|
|
168
173
|
"themes": "Change TUI theme",
|
|
169
174
|
"editor": "Open editor for long messages",
|
|
@@ -199,7 +204,10 @@
|
|
|
199
204
|
"insights": "Generate a report analyzing your Claude Code sessions, including project areas, interaction patterns, and friction points",
|
|
200
205
|
"install-github-app": "Install the Claude GitHub App for a repository, with an optional step to set up GitHub Actions workflows and secrets",
|
|
201
206
|
"install-slack-app": "Install the Claude Slack app",
|
|
202
|
-
"keybindings":
|
|
207
|
+
"keybindings": {
|
|
208
|
+
"claude": "Open your keyboard shortcuts file",
|
|
209
|
+
"antigravity": "Set custom keybindings"
|
|
210
|
+
},
|
|
203
211
|
"login": {
|
|
204
212
|
"claude": "Sign in to your Anthropic account",
|
|
205
213
|
"copilot": "Log in to Copilot",
|
|
@@ -221,7 +229,10 @@
|
|
|
221
229
|
"release-notes": "View the changelog in an interactive version picker",
|
|
222
230
|
"reload-plugins": "Reload all active plugins to apply pending changes without restarting",
|
|
223
231
|
"reload-skills": "Re-scan skill and command directories so skills added or changed on disk during the session become available without restarting",
|
|
224
|
-
"remote-control":
|
|
232
|
+
"remote-control": {
|
|
233
|
+
"claude": "Make this session available for Remote Control from claude.ai",
|
|
234
|
+
"antigravity": "Turn on remote control for this session (off to disable)"
|
|
235
|
+
},
|
|
225
236
|
"remote-env": "Choose the default environment for cloud agents",
|
|
226
237
|
"rename": "Rename the current session or thread",
|
|
227
238
|
"run": "Launch and drive your project's app to see a change working, not only passing tests",
|
|
@@ -238,18 +249,25 @@
|
|
|
238
249
|
"team-onboarding": "Generate a team onboarding guide from your Claude Code usage history",
|
|
239
250
|
"teleport": "Pull a Claude Code on the web session into this terminal: opens a picker, then fetches the branch and conversation",
|
|
240
251
|
"theme": "Choose the color and syntax highlighting theme",
|
|
241
|
-
"tui":
|
|
252
|
+
"tui": {
|
|
253
|
+
"claude": "Set the terminal UI renderer and relaunch into it with your conversation intact",
|
|
254
|
+
"codex": "Choose the TUI mode for the next launch"
|
|
255
|
+
},
|
|
242
256
|
"ultrareview": "Run a deep, multi-agent code review in a cloud sandbox with ultrareview",
|
|
243
257
|
"upgrade": "Open the upgrade page in your browser to switch to a higher plan tier",
|
|
244
258
|
"usage-credits": "Configure usage credits, or request them from your admin, when you hit a limit",
|
|
245
259
|
"verify": "Confirm a code change does what it should by building your project's app, running it, and observing the result, rather than relying on tests or type checks",
|
|
246
|
-
"voice":
|
|
260
|
+
"voice": {
|
|
261
|
+
"claude": "Toggle voice dictation, or enable it in a specific mode",
|
|
262
|
+
"copilot": "Toggle voice dictation, or enable it in a specific mode",
|
|
263
|
+
"codex": "Start or stop voice, or choose a voice with /voice settings",
|
|
264
|
+
"antigravity": "Dictate a prompt using your microphone"
|
|
265
|
+
},
|
|
247
266
|
"web-setup": "Connect your GitHub account to Claude Code on the web using your local gh CLI credentials",
|
|
248
267
|
"workflows": "Open the workflow progress view to watch, pause, resume, or save running and completed workflows",
|
|
249
268
|
"keymap": "Remap TUI shortcuts",
|
|
250
269
|
"vim": "Toggle Vim mode for the composer",
|
|
251
270
|
"setup-default-sandbox": "Set up elevated agent sandbox",
|
|
252
|
-
"sandbox-add-read-dir": "Let sandbox read a directory: /sandbox-add-read-dir [absolute-path]",
|
|
253
271
|
"experimental": "Toggle experimental features",
|
|
254
272
|
"approve": "Approve one retry of a recent auto-review denial",
|
|
255
273
|
"import": {
|
|
@@ -266,13 +284,15 @@
|
|
|
266
284
|
"side": "Start a side conversation in an ephemeral fork",
|
|
267
285
|
"raw": "Toggle raw scrollback mode for copy-friendly terminal selection",
|
|
268
286
|
"debug-config": "Show config layers and requirement sources for debugging",
|
|
269
|
-
"title":
|
|
287
|
+
"title": {
|
|
288
|
+
"codex": "Configure which items appear in the terminal title",
|
|
289
|
+
"antigravity": "Toggle a custom terminal window title"
|
|
290
|
+
},
|
|
270
291
|
"pets": "Choose or hide the terminal pet",
|
|
271
292
|
"apps": "Manage apps",
|
|
272
293
|
"plugins": "Browse plugins",
|
|
273
294
|
"rollout": "Print the rollout file path",
|
|
274
295
|
"ps": "List background terminals",
|
|
275
|
-
"personality": "Choose a communication style for Codex",
|
|
276
296
|
"test-approval": "Test approval request",
|
|
277
297
|
"list-agents": "List the subagents and other Claude Code sessions Claude can message, with the name to use for each",
|
|
278
298
|
"allow-all": "Enable all tool, path, and URL permissions",
|
|
@@ -322,7 +342,10 @@
|
|
|
322
342
|
},
|
|
323
343
|
"extra": "Open the billing page to buy on-demand credits",
|
|
324
344
|
"hotkeys": "Show all keyboard shortcuts",
|
|
325
|
-
"learn":
|
|
345
|
+
"learn": {
|
|
346
|
+
"command-code": "Open the learn hub in your browser",
|
|
347
|
+
"antigravity": "Reflect on recent successes or corrections and save them as reusable skills or rules"
|
|
348
|
+
},
|
|
326
349
|
"learn-taste": "Learn coding taste from sessions with other coding agents",
|
|
327
350
|
"mode": "Show or switch the permission mode",
|
|
328
351
|
"plan-review": "Open this session's latest plan in review",
|
|
@@ -339,7 +362,24 @@
|
|
|
339
362
|
"codex": "Start or continue a conversation in a new worktree",
|
|
340
363
|
"command-code": "Create, list, or switch git worktrees"
|
|
341
364
|
},
|
|
342
|
-
"skill-doctor": "Show what each of your skills costs in context and how often it gets used, so you can find skills to turn off"
|
|
365
|
+
"skill-doctor": "Show what each of your skills costs in context and how often it gets used, so you can find skills to turn off",
|
|
366
|
+
"output-style": "List output styles or switch to one, for example /output-style concise",
|
|
367
|
+
"update-config": "Describe a settings change and have Claude edit the matching settings.json file",
|
|
368
|
+
"daemon": "Manage the local background server",
|
|
369
|
+
"warnings": "View retained warnings and diagnostic details",
|
|
370
|
+
"credits": "Show remaining G1 credits and purchase link",
|
|
371
|
+
"open": "Open a file or view opened/edited files",
|
|
372
|
+
"schedule": "Run an instruction on a recurring schedule or as a one-time timer",
|
|
373
|
+
"browser": "Invoke a browser agent for web tasks",
|
|
374
|
+
"grill-me": "Have the agent interview you to align on a plan",
|
|
375
|
+
"teamwork-preview": "Invoke a team of agents to autonomously tackle large projects (preview)",
|
|
376
|
+
"boost": "Invoke the Boost multi-agent orchestrator for complex tasks",
|
|
377
|
+
"agy-customizations": "Guide to how Antigravity customizations (skills, rules and more) work",
|
|
378
|
+
"antigravity-guide": "Guide and quick reference for the Antigravity CLI, IDE and SDK",
|
|
379
|
+
"automation": "Interactively design and create a scheduled background automation",
|
|
380
|
+
"migrate-workflows": "Migrate legacy workflows to skills",
|
|
381
|
+
"artifact": "View and review artifacts",
|
|
382
|
+
"codesearch": "Search code in the workspace"
|
|
343
383
|
}
|
|
344
384
|
},
|
|
345
385
|
"session": {
|
|
@@ -501,7 +541,7 @@
|
|
|
501
541
|
},
|
|
502
542
|
"jumpToTop": "Jump to the beginning",
|
|
503
543
|
"toolLog": {
|
|
504
|
-
"summary": "Tool calls
|
|
544
|
+
"summary": "Tool calls · {count}",
|
|
505
545
|
"expand": "Show the tool calls",
|
|
506
546
|
"collapse": "Hide the tool calls"
|
|
507
547
|
},
|
|
@@ -1020,7 +1060,10 @@
|
|
|
1020
1060
|
"caption": "Answer"
|
|
1021
1061
|
},
|
|
1022
1062
|
"promptResponse": {
|
|
1023
|
-
"refused": "Your answer was not sent because the dialog has changed. Please check the screen."
|
|
1063
|
+
"refused": "Your answer was not sent because the dialog has changed. Please check the screen.",
|
|
1064
|
+
"stuckHint": "If sending does not work, operate the terminal in direct input mode.",
|
|
1065
|
+
"stuckHintLink": "Switch to direct input",
|
|
1066
|
+
"unanswerable": "CommandMate cannot operate this screen. Use direct input mode instead."
|
|
1024
1067
|
},
|
|
1025
1068
|
"dismissPanelKeys": {
|
|
1026
1069
|
"toolbarLabel": "Close this screen",
|
|
@@ -1041,7 +1084,7 @@
|
|
|
1041
1084
|
"sessionOnlyAria": "Use the highlighted choice for this session only (s)",
|
|
1042
1085
|
"setDefault": "Set as default",
|
|
1043
1086
|
"setDefaultAria": "Set the highlighted choice as the default (Enter)",
|
|
1044
|
-
"defaultWarning": "Enter saves this choice as the default for new sessions. Use
|
|
1087
|
+
"defaultWarning": "Enter saves this choice as the default for new sessions. Use “This session only” to leave your default unchanged.",
|
|
1045
1088
|
"opencodeToolbarLabel": "opencode model keys",
|
|
1046
1089
|
"opencodeCaption": "Model"
|
|
1047
1090
|
},
|
|
@@ -114,7 +114,8 @@
|
|
|
114
114
|
"codex": "Codex からサインアウト",
|
|
115
115
|
"claude": "Anthropic アカウントからサインアウト",
|
|
116
116
|
"copilot": "現在の OAuth ログインセッションからログアウト",
|
|
117
|
-
"command-code": "Command Code またはプロバイダーからログアウト"
|
|
117
|
+
"command-code": "Command Code またはプロバイダーからログアウト",
|
|
118
|
+
"antigravity": "ログアウト"
|
|
118
119
|
},
|
|
119
120
|
"quit": "Codex CLI を終了",
|
|
120
121
|
"diff": "Git の差分を表示(未追跡ファイルを含む)",
|
|
@@ -131,7 +132,8 @@
|
|
|
131
132
|
"codex": "Codex チームにフィードバックを送信",
|
|
132
133
|
"claude": "Claude Code についてのフィードバックを送信",
|
|
133
134
|
"copilot": "CLI についてのフィードバックを送信",
|
|
134
|
-
"command-code": "GitHub にバグ報告・フィードバックを送信"
|
|
135
|
+
"command-code": "GitHub にバグ報告・フィードバックを送信",
|
|
136
|
+
"antigravity": "エージェント改善のためのフィードバックを送信"
|
|
135
137
|
},
|
|
136
138
|
"plan": "プランモードを切り替え",
|
|
137
139
|
"goal": "現在のセッションの目標を設定",
|
|
@@ -146,7 +148,8 @@
|
|
|
146
148
|
"claude": "Claude Code のスキルを管理",
|
|
147
149
|
"copilot": "機能を拡張するスキルを管理",
|
|
148
150
|
"opencode": "利用可能なスキルを一覧・実行",
|
|
149
|
-
"command-code": "エージェントスキルを一覧・表示"
|
|
151
|
+
"command-code": "エージェントスキルを一覧・表示",
|
|
152
|
+
"antigravity": "利用できるスキルを一覧表示"
|
|
150
153
|
},
|
|
151
154
|
"hooks": "フック設定を確認・管理",
|
|
152
155
|
"sessions": "会話履歴を閲覧",
|
|
@@ -156,14 +159,16 @@
|
|
|
156
159
|
"claude": "CLI を終了",
|
|
157
160
|
"codex": "CLI を終了",
|
|
158
161
|
"copilot": "CLI を終了",
|
|
159
|
-
"command-code": "Command Code を終了"
|
|
162
|
+
"command-code": "Command Code を終了",
|
|
163
|
+
"antigravity": "CLI を終了"
|
|
160
164
|
},
|
|
161
165
|
"models": "AI モデルを切り替え",
|
|
162
166
|
"agents": {
|
|
163
167
|
"opencode": "利用可能なエージェントを一覧・管理",
|
|
164
168
|
"claude": "サブエージェントの作成・管理を Claude に依頼するか .claude/agents/ を直接編集するよう促す案内を表示",
|
|
165
169
|
"codex": "稼働中のすべてのエージェントセッションを一覧・切り替え",
|
|
166
|
-
"command-code": "エージェント構成を管理"
|
|
170
|
+
"command-code": "エージェント構成を管理",
|
|
171
|
+
"antigravity": "利用できるカスタムエージェントを一覧表示"
|
|
167
172
|
},
|
|
168
173
|
"themes": "TUI のテーマを変更",
|
|
169
174
|
"editor": "長文メッセージ用のエディタを開く",
|
|
@@ -199,7 +204,10 @@
|
|
|
199
204
|
"insights": "セッションを分析し、対象領域・対話パターン・摩擦点のレポートを生成",
|
|
200
205
|
"install-github-app": "リポジトリに Claude GitHub App を導入(GitHub Actions の設定も任意で実施)",
|
|
201
206
|
"install-slack-app": "Claude Slack アプリを導入",
|
|
202
|
-
"keybindings":
|
|
207
|
+
"keybindings": {
|
|
208
|
+
"claude": "キーボードショートカットの設定ファイルを開く",
|
|
209
|
+
"antigravity": "キーバインドを設定"
|
|
210
|
+
},
|
|
203
211
|
"login": {
|
|
204
212
|
"claude": "Anthropic アカウントにサインイン",
|
|
205
213
|
"copilot": "Copilot にログイン",
|
|
@@ -221,7 +229,10 @@
|
|
|
221
229
|
"release-notes": "変更履歴をバージョン選択つきで表示",
|
|
222
230
|
"reload-plugins": "再起動せずに有効なプラグインを再読み込み",
|
|
223
231
|
"reload-skills": "スキル・コマンドのディレクトリを再走査し、再起動せずに反映",
|
|
224
|
-
"remote-control":
|
|
232
|
+
"remote-control": {
|
|
233
|
+
"claude": "このセッションを claude.ai のリモートコントロール対象にする",
|
|
234
|
+
"antigravity": "このセッションのリモート操作をオン(off で無効化)"
|
|
235
|
+
},
|
|
225
236
|
"remote-env": "クラウドエージェントの既定環境を選択",
|
|
226
237
|
"rename": "現在のセッション(スレッド)の名前を変更",
|
|
227
238
|
"run": "プロジェクトのアプリを起動・操作し、テストだけでなく実際の動作で変更を確認",
|
|
@@ -238,18 +249,25 @@
|
|
|
238
249
|
"team-onboarding": "利用履歴からチーム向けオンボーディングガイドを生成",
|
|
239
250
|
"teleport": "web の Claude Code セッションをこのターミナルに引き込み(ブランチと会話を取得)",
|
|
240
251
|
"theme": "配色・シンタックスハイライトのテーマを選択",
|
|
241
|
-
"tui":
|
|
252
|
+
"tui": {
|
|
253
|
+
"claude": "端末 UI のレンダラーを設定し、会話を保ったまま再起動",
|
|
254
|
+
"codex": "次回起動時の TUI モードを選択"
|
|
255
|
+
},
|
|
242
256
|
"ultrareview": "クラウドサンドボックスでマルチエージェントの詳細コードレビューを実行",
|
|
243
257
|
"upgrade": "上位プランへの切り替えページをブラウザで開く",
|
|
244
258
|
"usage-credits": "使用クレジットを設定、または上限到達時に管理者へ申請",
|
|
245
259
|
"verify": "ビルド・実行・観察によって、テストや型検査に頼らず変更の動作を確認",
|
|
246
|
-
"voice":
|
|
260
|
+
"voice": {
|
|
261
|
+
"claude": "音声入力を切り替え、または特定モードで有効化",
|
|
262
|
+
"copilot": "音声入力を切り替え、または特定モードで有効化",
|
|
263
|
+
"codex": "音声を開始・停止、または /voice settings で声を選択",
|
|
264
|
+
"antigravity": "マイクでプロンプトを音声入力"
|
|
265
|
+
},
|
|
247
266
|
"web-setup": "ローカルの gh CLI 認証を使って GitHub アカウントを Claude Code on the web に接続",
|
|
248
267
|
"workflows": "実行中・完了済みワークフローの進捗ビューを開く(監視・一時停止・再開・保存)",
|
|
249
268
|
"keymap": "TUI のショートカットを再割り当て",
|
|
250
269
|
"vim": "コンポーザーの Vim モードを切り替え",
|
|
251
270
|
"setup-default-sandbox": "昇格エージェント用のサンドボックスを設定",
|
|
252
|
-
"sandbox-add-read-dir": "サンドボックスに読み取り可能なディレクトリを追加: /sandbox-add-read-dir [絶対パス]",
|
|
253
271
|
"experimental": "実験的機能を切り替え",
|
|
254
272
|
"approve": "直近の自動レビュー拒否に対する再試行を 1 回承認",
|
|
255
273
|
"import": {
|
|
@@ -266,13 +284,15 @@
|
|
|
266
284
|
"side": "一時的なフォークで別の会話を開始",
|
|
267
285
|
"raw": "コピーしやすい raw スクロールバックモードを切り替え",
|
|
268
286
|
"debug-config": "設定の階層と要件の出所をデバッグ用に表示",
|
|
269
|
-
"title":
|
|
287
|
+
"title": {
|
|
288
|
+
"codex": "ターミナルのタイトルに表示する項目を設定",
|
|
289
|
+
"antigravity": "ターミナルのウィンドウタイトル表示を切り替え"
|
|
290
|
+
},
|
|
270
291
|
"pets": "ターミナルのペットを選択・非表示",
|
|
271
292
|
"apps": "アプリを管理",
|
|
272
293
|
"plugins": "プラグインを閲覧",
|
|
273
294
|
"rollout": "rollout ファイルのパスを表示",
|
|
274
295
|
"ps": "バックグラウンドのターミナル一覧を表示",
|
|
275
|
-
"personality": "Codex の応答スタイルを選択",
|
|
276
296
|
"test-approval": "承認リクエストのテスト",
|
|
277
297
|
"list-agents": "Claude がメッセージを送れるサブエージェントと他の Claude Code セッションを宛先名つきで一覧表示",
|
|
278
298
|
"allow-all": "ツール・パス・URL の権限をすべて許可",
|
|
@@ -322,7 +342,10 @@
|
|
|
322
342
|
},
|
|
323
343
|
"extra": "オンデマンドクレジットを購入する請求ページを開く",
|
|
324
344
|
"hotkeys": "すべてのキーボードショートカットを表示",
|
|
325
|
-
"learn":
|
|
345
|
+
"learn": {
|
|
346
|
+
"command-code": "学習ハブをブラウザで開く",
|
|
347
|
+
"antigravity": "最近の成功や修正を振り返り、再利用できるスキルやルールとして保存"
|
|
348
|
+
},
|
|
326
349
|
"learn-taste": "他のコーディングエージェントのセッションからコーディングの好みを学習",
|
|
327
350
|
"mode": "権限モードを表示・切り替え",
|
|
328
351
|
"plan-review": "このセッションの最新プランをレビュー表示で開く",
|
|
@@ -339,7 +362,24 @@
|
|
|
339
362
|
"codex": "新しい worktree で会話を開始・再開する",
|
|
340
363
|
"command-code": "git worktree の作成・一覧・切り替え"
|
|
341
364
|
},
|
|
342
|
-
"skill-doctor": "各スキルのコンテキスト消費量と使用頻度を表示し、オフにするスキルを特定"
|
|
365
|
+
"skill-doctor": "各スキルのコンテキスト消費量と使用頻度を表示し、オフにするスキルを特定",
|
|
366
|
+
"output-style": "出力スタイルを一覧表示・切り替え(例: /output-style concise)",
|
|
367
|
+
"update-config": "設定の変更内容を伝えると、Claude が対応する settings.json を編集",
|
|
368
|
+
"daemon": "ローカルのバックグラウンドサーバを管理",
|
|
369
|
+
"warnings": "保持されている警告と診断情報を表示",
|
|
370
|
+
"credits": "残りの G1 クレジットと購入リンクを表示",
|
|
371
|
+
"open": "ファイルを開く、または開いた・編集したファイルを表示",
|
|
372
|
+
"schedule": "指示を定期実行、または一度きりのタイマーで実行",
|
|
373
|
+
"browser": "ブラウザエージェントで Web 上の作業を実行",
|
|
374
|
+
"grill-me": "計画をすり合わせるために質問してもらう",
|
|
375
|
+
"teamwork-preview": "エージェントのチームで大きなプロジェクトを自律的に進める(プレビュー)",
|
|
376
|
+
"boost": "Boost マルチエージェントオーケストレーターで複雑なタスクを実行",
|
|
377
|
+
"agy-customizations": "Antigravity のカスタマイズ(スキル・ルールなど)の仕組みを解説",
|
|
378
|
+
"antigravity-guide": "Antigravity の CLI・IDE・SDK のガイドとクイックリファレンス",
|
|
379
|
+
"automation": "定期実行するバックグラウンド自動処理を対話形式で作成",
|
|
380
|
+
"migrate-workflows": "旧形式のワークフローをスキルへ移行",
|
|
381
|
+
"artifact": "アーティファクトを表示・レビュー",
|
|
382
|
+
"codesearch": "ワークスペース内のコードを検索"
|
|
343
383
|
}
|
|
344
384
|
},
|
|
345
385
|
"session": {
|
|
@@ -501,13 +541,13 @@
|
|
|
501
541
|
},
|
|
502
542
|
"jumpToTop": "会話の先頭へ",
|
|
503
543
|
"toolLog": {
|
|
504
|
-
"summary": "
|
|
505
|
-
"expand": "
|
|
506
|
-
"collapse": "
|
|
544
|
+
"summary": "ツール呼び出し {count} 件",
|
|
545
|
+
"expand": "ツール呼び出しを開く",
|
|
546
|
+
"collapse": "ツール呼び出しを閉じる"
|
|
507
547
|
},
|
|
508
548
|
"toolActivity": {
|
|
509
|
-
"show": "
|
|
510
|
-
"hide": "
|
|
549
|
+
"show": "ツール活動を開く",
|
|
550
|
+
"hide": "ツール活動を閉じる"
|
|
511
551
|
},
|
|
512
552
|
"toolApproval": {
|
|
513
553
|
"summary": "ツール承認 {count} 件",
|
|
@@ -1020,7 +1060,10 @@
|
|
|
1020
1060
|
"caption": "回答"
|
|
1021
1061
|
},
|
|
1022
1062
|
"promptResponse": {
|
|
1023
|
-
"refused": "ダイアログの状態が変わったため送信できませんでした。画面を確認してください。"
|
|
1063
|
+
"refused": "ダイアログの状態が変わったため送信できませんでした。画面を確認してください。",
|
|
1064
|
+
"stuckHint": "送信がうまくいかない場合は、直接入力モードで操作してください。",
|
|
1065
|
+
"stuckHintLink": "直接入力に切り替える",
|
|
1066
|
+
"unanswerable": "この画面は CommandMate から操作できません。直接入力モードで操作してください。"
|
|
1024
1067
|
},
|
|
1025
1068
|
"dismissPanelKeys": {
|
|
1026
1069
|
"toolbarLabel": "この画面を閉じる",
|
package/dist/server/server.js
CHANGED
|
@@ -409,6 +409,19 @@ app.prepare().then(() => {
|
|
|
409
409
|
catch (error) {
|
|
410
410
|
console.error('Error reconciling Skill operations:', error);
|
|
411
411
|
}
|
|
412
|
+
// Issue #2866: this server's tmux session-name namespace. Must precede the
|
|
413
|
+
// session reconcile below, which renames onto (and attributes against)
|
|
414
|
+
// names in this namespace. Fail-open in its own try/catch: without a
|
|
415
|
+
// namespace sessions keep the legacy `mcbd-{cli}-{id}` names. Dynamic
|
|
416
|
+
// import for the same reason as the reconcilers around it.
|
|
417
|
+
try {
|
|
418
|
+
const { initSessionNamespace } = await Promise.resolve().then(() => __importStar(require('./src/lib/cli-tools/session-namespace')));
|
|
419
|
+
const namespace = initSessionNamespace(db);
|
|
420
|
+
console.log(`tmux session namespace: ${namespace}`);
|
|
421
|
+
}
|
|
422
|
+
catch (error) {
|
|
423
|
+
console.error('Error initializing tmux session namespace:', error);
|
|
424
|
+
}
|
|
412
425
|
// Issue #1621 Phase 3/4: make live tmux sessions follow the worktree IDs
|
|
413
426
|
// that migration v54 has just renumbered. Session names are DERIVED from
|
|
414
427
|
// the ID (`mcbd-{cli}-{worktreeId}`), so a running agent would otherwise
|
|
@@ -445,6 +458,22 @@ app.prepare().then(() => {
|
|
|
445
458
|
catch (error) {
|
|
446
459
|
console.error('Error reconciling worktree sessions:', error);
|
|
447
460
|
}
|
|
461
|
+
// Issue #2866: keep serving this server's sessions that predate the
|
|
462
|
+
// namespace under their legacy names (adopted, not renamed). After the
|
|
463
|
+
// reconcile above, so an ID move has already been applied. Fail-open.
|
|
464
|
+
try {
|
|
465
|
+
const { adoptLegacySessions } = await Promise.resolve().then(() => __importStar(require('./src/lib/session/adopt-legacy-sessions')));
|
|
466
|
+
const adoptReport = await adoptLegacySessions(db);
|
|
467
|
+
if (adoptReport.adopted.length > 0) {
|
|
468
|
+
console.log(`Adopted ${adoptReport.adopted.length} legacy-named tmux session(s)`);
|
|
469
|
+
}
|
|
470
|
+
if (adoptReport.errors.length > 0) {
|
|
471
|
+
console.warn(`Legacy session adoption warnings: ${adoptReport.errors.join(', ')}`);
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
catch (error) {
|
|
475
|
+
console.error('Error adopting legacy tmux sessions:', error);
|
|
476
|
+
}
|
|
448
477
|
// Issue #1543: close verification runs that a crash left in `running`.
|
|
449
478
|
// Gate execution lives in process memory, so none of them survived the
|
|
450
479
|
// restart; leaving the rows open would keep their worktrees permanently
|
|
@@ -69,6 +69,7 @@ const auto_yes_dialog_gate_1 = require("./polling/auto-yes-dialog-gate");
|
|
|
69
69
|
const task_transition_service_1 = require("./tasks/task-transition-service");
|
|
70
70
|
const db_instance_1 = require("./db/db-instance");
|
|
71
71
|
const chat_db_1 = require("./db/chat-db");
|
|
72
|
+
const worktree_session_ownership_1 = require("./cli-tools/worktree-session-ownership");
|
|
72
73
|
const prompt_answer_sender_1 = require("./prompt-answer-sender");
|
|
73
74
|
const manager_1 = require("./cli-tools/manager");
|
|
74
75
|
const cli_patterns_1 = require("./detection/cli-patterns");
|
|
@@ -519,6 +520,20 @@ async function detectAndRespondToPrompt(worktreeId, pollerState, cliToolId, clea
|
|
|
519
520
|
const manager = manager_1.CLIToolManager.getInstance();
|
|
520
521
|
const cliTool = manager.getTool(cliToolId);
|
|
521
522
|
const sessionName = cliTool.getSessionName(worktreeId, instanceId);
|
|
523
|
+
// Issue #2865: never auto-answer a same-named session another CommandMate
|
|
524
|
+
// server created. The poller keeps running; it just does not type.
|
|
525
|
+
const ownership = await (0, worktree_session_ownership_1.checkWorktreeSessionOwnership)(worktreeId, sessionName);
|
|
526
|
+
if (ownership === null || ownership.verdict === 'foreign') {
|
|
527
|
+
logger.warn('poller:auto-yes-skipped-foreign-session', {
|
|
528
|
+
worktreeId,
|
|
529
|
+
cliToolId,
|
|
530
|
+
instanceId,
|
|
531
|
+
sessionName,
|
|
532
|
+
sessionPath: ownership?.sessionPath ?? null,
|
|
533
|
+
reason: ownership ? 'foreign' : 'worktree_not_found',
|
|
534
|
+
});
|
|
535
|
+
return 'no_answer';
|
|
536
|
+
}
|
|
522
537
|
try {
|
|
523
538
|
await (0, prompt_answer_sender_1.sendPromptAnswer)({
|
|
524
539
|
sessionName,
|
|
@@ -200,7 +200,7 @@ class AntigravityTool extends base_1.BaseCLITool {
|
|
|
200
200
|
// Check if session already exists
|
|
201
201
|
const exists = await (0, tmux_1.hasSession)(sessionName);
|
|
202
202
|
if (exists) {
|
|
203
|
-
await this.reconcileExistingSession(sessionName);
|
|
203
|
+
await this.reconcileExistingSession(sessionName, worktreePath);
|
|
204
204
|
// Issue #2070: this branch used to return unconditionally. A tmux session
|
|
205
205
|
// outlives the agent that was launched into it — a quit, a self-update, a
|
|
206
206
|
// crash — and the launch was then skipped for a pane holding nothing but a
|
|
@@ -13,6 +13,7 @@ const child_process_1 = require("child_process");
|
|
|
13
13
|
const util_1 = require("util");
|
|
14
14
|
const session_name_1 = require("./session-name");
|
|
15
15
|
const tmux_1 = require("../tmux/tmux");
|
|
16
|
+
const session_ownership_1 = require("../tmux/session-ownership");
|
|
16
17
|
const composer_spec_1 = require("./composer-spec");
|
|
17
18
|
const capture_spec_1 = require("./capture-spec");
|
|
18
19
|
const agent_mode_spec_1 = require("./agent-mode-spec");
|
|
@@ -235,8 +236,16 @@ class BaseCLITool {
|
|
|
235
236
|
/**
|
|
236
237
|
* Repair geometry when reusing a tmux session that predates the current
|
|
237
238
|
* defaults, and record that this launch reused one (Issue #2429).
|
|
239
|
+
*
|
|
240
|
+
* Issue #2865: only a session created in `worktreePath` is reused. A
|
|
241
|
+
* same-named session another CommandMate server created is refused with
|
|
242
|
+
* {@link ForeignSessionError} before anything touches it, and is never
|
|
243
|
+
* recorded as adopted.
|
|
244
|
+
*
|
|
245
|
+
* @throws {ForeignSessionError} When the session's `#{session_path}` is not `worktreePath`
|
|
238
246
|
*/
|
|
239
|
-
async reconcileExistingSession(sessionName, options) {
|
|
247
|
+
async reconcileExistingSession(sessionName, worktreePath, options) {
|
|
248
|
+
await (0, session_ownership_1.assertSessionNotForeign)(sessionName, worktreePath);
|
|
240
249
|
adoptedSessions.add(sessionName);
|
|
241
250
|
await (0, tmux_1.reconcileSessionGeometry)(sessionName, options);
|
|
242
251
|
}
|
|
@@ -204,7 +204,7 @@ class CodexTool extends base_1.BaseCLITool {
|
|
|
204
204
|
// Check if session already exists
|
|
205
205
|
const exists = await (0, tmux_1.hasSession)(sessionName);
|
|
206
206
|
if (exists) {
|
|
207
|
-
await this.reconcileExistingSession(sessionName);
|
|
207
|
+
await this.reconcileExistingSession(sessionName, worktreePath);
|
|
208
208
|
// Issue #2070: this branch used to return unconditionally, and that is
|
|
209
209
|
// the second half of the reported bug. codex's own "1. Update now"
|
|
210
210
|
// replaces codex with `npm install` and exits; `Ctrl+C` twice quits it; a
|
|
@@ -191,7 +191,7 @@ class CommandCodeTool extends base_1.BaseCLITool {
|
|
|
191
191
|
const sessionName = this.getSessionName(worktreeId, instanceId);
|
|
192
192
|
const exists = await (0, tmux_1.hasSession)(sessionName);
|
|
193
193
|
if (exists) {
|
|
194
|
-
await this.reconcileExistingSession(sessionName);
|
|
194
|
+
await this.reconcileExistingSession(sessionName, worktreePath);
|
|
195
195
|
// Issue #2070's shape: a tmux session outlives the agent that was launched
|
|
196
196
|
// into it, and skipping the launch for a pane holding nothing but a shell
|
|
197
197
|
// prompt leaves `kill-session` by hand as the only recovery.
|
|
@@ -307,7 +307,7 @@ class CopilotTool extends base_1.BaseCLITool {
|
|
|
307
307
|
// Check if session already exists
|
|
308
308
|
const exists = await (0, tmux_1.hasSession)(sessionName);
|
|
309
309
|
if (exists) {
|
|
310
|
-
await this.reconcileExistingSession(sessionName);
|
|
310
|
+
await this.reconcileExistingSession(sessionName, worktreePath);
|
|
311
311
|
// Issue #2070: this branch used to return unconditionally. A tmux session
|
|
312
312
|
// outlives the agent that was launched into it — a quit, a self-update, a
|
|
313
313
|
// crash — and the launch was then skipped for a pane holding nothing but a
|
|
@@ -72,7 +72,7 @@ class GeminiTool extends base_1.BaseCLITool {
|
|
|
72
72
|
// Check if session already exists
|
|
73
73
|
const exists = await (0, tmux_1.hasSession)(sessionName);
|
|
74
74
|
if (exists) {
|
|
75
|
-
await this.reconcileExistingSession(sessionName);
|
|
75
|
+
await this.reconcileExistingSession(sessionName, worktreePath);
|
|
76
76
|
// Issue #2070: this branch used to return unconditionally. A tmux session
|
|
77
77
|
// outlives the agent that was launched into it — a quit, a self-update, a
|
|
78
78
|
// crash — and the launch was then skipped for a pane holding nothing but a
|