commandmate 0.48.0 → 0.49.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 +292 -285
- package/.next/app-path-routes-manifest.json +35 -34
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +8 -0
- 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_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_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 +2 -2
- 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.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.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/[relayId]/route.js +1 -0
- package/.next/server/app/api/relays/[relayId]/route.js.nft.json +1 -0
- package/.next/server/app/api/relays/[relayId]/route_client-reference-manifest.js +1 -0
- 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]/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.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]/prompt-response/strict/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/strict/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 +144 -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 +3 -3
- 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 +103 -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_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.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page.js +1 -1
- 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_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.js +2 -2
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +35 -34
- package/.next/server/chunks/1601.js +2 -2
- package/.next/server/chunks/1656.js +2 -2
- package/.next/server/chunks/2069.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2422.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/2534.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3773.js +1 -0
- package/.next/server/chunks/3801.js +31 -0
- package/.next/server/chunks/4243.js +1 -1
- package/.next/server/chunks/4248.js +1 -1
- package/.next/server/chunks/5209.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/{9130.js → 5630.js} +1 -1
- package/.next/server/chunks/5775.js +1 -0
- package/.next/server/chunks/610.js +1 -0
- package/.next/server/chunks/6119.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6486.js +1 -1
- package/.next/server/chunks/6781.js +1 -1
- package/.next/server/chunks/6808.js +4 -0
- package/.next/server/chunks/7023.js +14 -0
- package/.next/server/chunks/7604.js +2 -2
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/8581.js +16 -16
- package/.next/server/chunks/8728.js +3 -3
- package/.next/server/chunks/8782.js +1 -1
- package/.next/server/chunks/8791.js +1 -1
- package/.next/server/chunks/8807.js +63 -53
- package/.next/server/chunks/8918.js +103 -1
- package/.next/server/chunks/9198.js +144 -0
- package/.next/server/chunks/9390.js +1 -1
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +4 -4
- package/.next/server/chunks/9731.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/1128-914c559913546bbc.js +1 -0
- package/.next/static/chunks/{2407-26139a8a2f1adbe8.js → 2407-675ba6b21844dc3b.js} +1 -1
- package/.next/static/chunks/{2619-a305ad4810f1393a.js → 2619-04bc32f026a0d946.js} +1 -1
- package/.next/static/chunks/{2863-f0121af1cbbedb3b.js → 2863-7173dc305dffc4f6.js} +1 -1
- package/.next/static/chunks/3931-1a1abab16248f14d.js +1 -0
- package/.next/static/chunks/6288-6fadbba6e84393b2.js +1 -0
- package/.next/static/chunks/7665-e9ef6e0a85b9fa49.js +1 -0
- package/.next/static/chunks/{8165-c68b3dc844210e6a.js → 8165-263172c17ae8e8c3.js} +1 -1
- package/.next/static/chunks/8606-ce17ffa77f39608e.js +1 -0
- package/.next/static/chunks/app/api/agents/update/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/agents/versions/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/app/release-notes/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/relays/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/settings/default-agents/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/templates/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/layout-8bfac4724277b47f.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/sessions/page-890fd50ec9739973.js +1 -0
- package/.next/static/chunks/app/skills/[skillId]/{page-52ba58712faf3378.js → page-cb6e74fd9a6a571d.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-704086656fb45699.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/layout-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-f6d3ab8185d93aae.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/{page-c601f3b3ece6557e.js → page-373ea37b16d930c7.js} +1 -1
- package/.next/static/css/c1e307d05daf93b6.css +1 -0
- package/.next/trace +13 -13
- package/.next/types/app/api/relays/[relayId]/route.ts +347 -0
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/dist/cli/commands/ask.d.ts.map +1 -1
- package/dist/cli/commands/ask.js +178 -13
- package/dist/cli/commands/auto-yes.d.ts.map +1 -1
- package/dist/cli/commands/auto-yes.js +3 -5
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +5 -0
- package/dist/cli/commands/message-dispatch.d.ts +25 -5
- package/dist/cli/commands/message-dispatch.d.ts.map +1 -1
- package/dist/cli/commands/message-dispatch.js +92 -6
- package/dist/cli/commands/relays.d.ts +25 -2
- package/dist/cli/commands/relays.d.ts.map +1 -1
- package/dist/cli/commands/relays.js +69 -5
- package/dist/cli/commands/respond.d.ts +12 -0
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +63 -1
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +10 -10
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +8 -1
- package/dist/cli/commands/wait-hook-stop-settle.d.ts +66 -0
- package/dist/cli/commands/wait-hook-stop-settle.d.ts.map +1 -0
- package/dist/cli/commands/wait-hook-stop-settle.js +150 -0
- package/dist/cli/commands/wait-instance.d.ts +21 -0
- package/dist/cli/commands/wait-instance.d.ts.map +1 -0
- package/dist/cli/commands/wait-instance.js +41 -0
- package/dist/cli/commands/wait-notices.d.ts +87 -0
- package/dist/cli/commands/wait-notices.d.ts.map +1 -0
- package/dist/cli/commands/wait-notices.js +301 -0
- package/dist/cli/commands/wait-poll-bookkeeping.d.ts +15 -0
- package/dist/cli/commands/wait-poll-bookkeeping.d.ts.map +1 -0
- package/dist/cli/commands/wait-poll-bookkeeping.js +57 -0
- package/dist/cli/commands/wait-poll-state.d.ts +118 -0
- package/dist/cli/commands/wait-poll-state.d.ts.map +1 -0
- package/dist/cli/commands/wait-poll-state.js +6 -0
- package/dist/cli/commands/wait-timing.d.ts +46 -0
- package/dist/cli/commands/wait-timing.d.ts.map +1 -0
- package/dist/cli/commands/wait-timing.js +99 -0
- package/dist/cli/commands/wait-turn-boundary.d.ts +284 -0
- package/dist/cli/commands/wait-turn-boundary.d.ts.map +1 -0
- package/dist/cli/commands/wait-turn-boundary.js +427 -0
- package/dist/cli/commands/wait-verify.d.ts +50 -0
- package/dist/cli/commands/wait-verify.d.ts.map +1 -0
- package/dist/cli/commands/wait-verify.js +124 -0
- package/dist/cli/commands/wait.d.ts +6 -105
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +207 -959
- package/dist/cli/config/duration-constants.d.ts +16 -13
- package/dist/cli/config/duration-constants.d.ts.map +1 -1
- package/dist/cli/config/duration-constants.js +21 -21
- package/dist/cli/docs/agent-operations.d.ts +2 -2
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +25 -2
- package/dist/cli/types/api-responses.d.ts +76 -4
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/utils/api-client.d.ts +15 -1
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +7 -1
- package/dist/cli/utils/reply-ledger.d.ts +79 -0
- package/dist/cli/utils/reply-ledger.d.ts.map +1 -1
- package/dist/cli/utils/reply-ledger.js +141 -1
- package/dist/cli/utils/verify-runner.d.ts +24 -1
- package/dist/cli/utils/verify-runner.d.ts.map +1 -1
- package/dist/cli/utils/verify-runner.js +54 -1
- package/dist/config/auto-yes-duration.d.ts +56 -0
- package/dist/config/auto-yes-duration.d.ts.map +1 -0
- package/dist/config/auto-yes-duration.js +76 -0
- package/dist/lib/session/send-attempt-types.d.ts +23 -1
- package/dist/lib/session/send-attempt-types.d.ts.map +1 -1
- package/dist/lib/session/send-attempt-types.js +9 -1
- package/dist/server/locales/en/worktree.json +18 -3
- package/dist/server/locales/ja/worktree.json +18 -3
- package/dist/server/src/config/auto-yes-config.js +14 -19
- package/dist/server/src/config/auto-yes-duration.js +76 -0
- package/dist/server/src/lib/auto-yes-poller.js +49 -10
- package/dist/server/src/lib/auto-yes-state.js +9 -2
- package/dist/server/src/lib/cli-tools/antigravity.js +40 -7
- package/dist/server/src/lib/cli-tools/codex.js +60 -11
- package/dist/server/src/lib/cli-tools/command-code-plan-review.js +24 -2
- package/dist/server/src/lib/cli-tools/copilot.js +120 -30
- package/dist/server/src/lib/cli-tools/gemini.js +28 -9
- package/dist/server/src/lib/cli-tools/opencode.js +55 -13
- package/dist/server/src/lib/cli-tools/submit-composer-read.js +580 -0
- package/dist/server/src/lib/cli-tools/submit-verified-sender.js +374 -516
- package/dist/server/src/lib/db/migrations/index.js +2 -0
- package/dist/server/src/lib/db/migrations/pre-migration-backup.js +266 -0
- package/dist/server/src/lib/db/migrations/runner.js +37 -4
- package/dist/server/src/lib/db/migrations/v62-session-relays-bind.js +102 -0
- package/dist/server/src/lib/db/relay-bind-db.js +437 -0
- package/dist/server/src/lib/db/relay-db.js +59 -96
- package/dist/server/src/lib/detection/composer-text.js +215 -11
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice-chrome.js +193 -0
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +8 -191
- package/dist/server/src/lib/detection/upstream-faults.js +56 -5
- package/dist/server/src/lib/hooks/sources/opencode/client.js +12 -6
- package/dist/server/src/lib/hooks/structured-decision-response.js +1 -1
- package/dist/server/src/lib/polling/auto-yes-manual-answer.js +4 -2
- package/dist/server/src/lib/polling/response-checker.js +15 -16
- package/dist/server/src/lib/prompt-answer-errors.js +288 -0
- package/dist/server/src/lib/prompt-answer-sender.js +264 -288
- package/dist/server/src/lib/push/failure-episode-state.js +4 -1
- package/dist/server/src/lib/realtime/terminal-broadcast.js +1 -4
- package/dist/server/src/lib/realtime-snippet.js +54 -0
- package/dist/server/src/lib/relay/relay-bind.js +294 -0
- package/dist/server/src/lib/relay/relay-boot.js +51 -0
- package/dist/server/src/lib/relay/relay-bound-reply.js +519 -0
- package/dist/server/src/lib/relay/relay-delivery.js +134 -220
- package/dist/server/src/lib/relay/relay-messages.js +39 -4
- package/dist/server/src/lib/relay/relay-overlap.js +92 -0
- package/dist/server/src/lib/relay/relay-system-line.js +3 -2
- package/dist/server/src/lib/relay/types.js +12 -1
- package/dist/server/src/lib/session/agent-session-lifecycle.js +18 -0
- package/dist/server/src/lib/session/claude-session.js +41 -6
- package/dist/server/src/lib/session/composer-clear.js +109 -4
- package/dist/server/src/lib/session/current-output-builder.js +23 -6
- package/dist/server/src/lib/session/instance-input-lock.js +664 -0
- package/dist/server/src/lib/session/send-attempt-state.js +19 -1
- package/dist/server/src/lib/session/send-attempt-types.js +9 -1
- package/dist/server/src/lib/session/send-user-message.js +82 -13
- package/dist/server/src/lib/session/waiting-episode-state-ops.js +152 -0
- package/dist/server/src/lib/session/waiting-episode-state-store.js +202 -0
- package/dist/server/src/lib/session/waiting-episode-state-types.js +6 -0
- package/dist/server/src/lib/session/waiting-episode-state.js +26 -339
- package/dist/server/src/lib/tmux/tmux.js +25 -0
- package/dist/server/src/lib/verification/gate-runner.js +11 -4
- package/docs/en/user-guide/webapp-guide.md +15 -10
- package/package.json +1 -1
- package/release-notes/0.49.0.json +45 -0
- package/release-notes/0.49.1.json +66 -0
- package/.next/server/chunks/1210.js +0 -1
- package/.next/server/chunks/1945.js +0 -14
- package/.next/server/chunks/1990.js +0 -103
- package/.next/server/chunks/4194.js +0 -67
- package/.next/server/chunks/4280.js +0 -1
- package/.next/server/chunks/5845.js +0 -1
- package/.next/server/chunks/6722.js +0 -1
- package/.next/server/chunks/720.js +0 -103
- package/.next/server/chunks/936.js +0 -1
- package/.next/server/chunks/9540.js +0 -1
- package/.next/static/chunks/2099-c3e0ab70a1b95dd3.js +0 -1
- package/.next/static/chunks/5371-a549a0d2c2044d41.js +0 -1
- package/.next/static/chunks/6288-09feba367cc2c65e.js +0 -1
- package/.next/static/chunks/8606-cf6bdbff44a764cf.js +0 -1
- package/.next/static/chunks/9079-406b84d3cc891a87.js +0 -1
- package/.next/static/chunks/app/api/agents/update/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/agents/versions/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/app/release-notes/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/relays/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/remote/pair/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/settings/default-agents/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/templates/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/layout-46b4cbf07520d9b6.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/sessions/page-fb241bed579c67aa.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-9cf1ecc59e36a004.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-cbc7749a33450cc5.js +0 -1
- package/.next/static/css/743f79ff19ab91e9.css +0 -1
- /package/.next/static/{PTlAswXLq8PAe2vUJ8dVP → fqfSDqQMweROeHUzOt_m1}/_buildManifest.js +0 -0
- /package/.next/static/{PTlAswXLq8PAe2vUJ8dVP → fqfSDqQMweROeHUzOt_m1}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Yes duration definitions (Issue #3913)
|
|
3
|
+
*
|
|
4
|
+
* The one definition of how long an Auto-Yes grant may last: any whole number
|
|
5
|
+
* of hours from 1 to 24. Server (route, state), browser (confirm dialog, new
|
|
6
|
+
* task) and CLI (`--duration`) all read it from here.
|
|
7
|
+
*
|
|
8
|
+
* Dependency-free on purpose: no `@/` alias and no safe-regex2, so the CLI
|
|
9
|
+
* build (tsconfig.cli.json sets `"paths": {}`) can re-export it through a
|
|
10
|
+
* relative path (`src/cli/config/duration-constants.ts`) instead of keeping a
|
|
11
|
+
* copy. `scripts/orchestrate/launch-worker.mjs` cannot import TypeScript and
|
|
12
|
+
* copies only {@link AUTO_YES_DURATION_FLAG_PATTERN}; a unit test keeps the
|
|
13
|
+
* copy equal to this one.
|
|
14
|
+
*/
|
|
15
|
+
/** Milliseconds per hour */
|
|
16
|
+
export declare const AUTO_YES_MS_PER_HOUR = 3600000;
|
|
17
|
+
/** Shortest grant, in hours */
|
|
18
|
+
export declare const MIN_AUTO_YES_HOURS = 1;
|
|
19
|
+
/** Longest grant, in hours (agreed upper bound, 2026-10-25) */
|
|
20
|
+
export declare const MAX_AUTO_YES_HOURS = 24;
|
|
21
|
+
/**
|
|
22
|
+
* Every allowed duration in milliseconds: 1h, 2h, ..., 24h.
|
|
23
|
+
*
|
|
24
|
+
* Written out as literals so {@link AutoYesDuration} stays a literal union —
|
|
25
|
+
* a `number` would let NaN, Infinity and fractions through the type.
|
|
26
|
+
*/
|
|
27
|
+
export declare const AUTO_YES_DURATIONS: readonly [3600000, 7200000, 10800000, 14400000, 18000000, 21600000, 25200000, 28800000, 32400000, 36000000, 39600000, 43200000, 46800000, 50400000, 54000000, 57600000, 61200000, 64800000, 68400000, 72000000, 75600000, 79200000, 82800000, 86400000];
|
|
28
|
+
/** Auto-Yes duration type (literal union of the 24 values in AUTO_YES_DURATIONS) */
|
|
29
|
+
export type AutoYesDuration = typeof AUTO_YES_DURATIONS[number];
|
|
30
|
+
/** The often-used durations offered as one-tap choices (1h / 3h / 8h) */
|
|
31
|
+
export declare const PRESET_AUTO_YES_DURATIONS: readonly [3600000, 10800000, 28800000];
|
|
32
|
+
/** Default Auto-Yes duration (1 hour = 3600000ms) */
|
|
33
|
+
export declare const DEFAULT_AUTO_YES_DURATION: AutoYesDuration;
|
|
34
|
+
/**
|
|
35
|
+
* Type guard: check whether a value is one of the 24 allowed durations.
|
|
36
|
+
* Rejects every non-number, NaN, ±Infinity, fractions of an hour and values
|
|
37
|
+
* outside 1〜24h.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isAllowedDuration(value: unknown): value is AutoYesDuration;
|
|
40
|
+
/** Whole hours of an allowed duration (e.g. 18000000 → 5) */
|
|
41
|
+
export declare function autoYesDurationToHours(duration: AutoYesDuration): number;
|
|
42
|
+
/** The duration for a whole number of hours, or null outside 1〜24 */
|
|
43
|
+
export declare function hoursToAutoYesDuration(hours: number): AutoYesDuration | null;
|
|
44
|
+
/**
|
|
45
|
+
* The CLI `--duration` format: `1h`〜`24h`, lower-case `h`, no leading zero,
|
|
46
|
+
* sign, whitespace, fraction or other unit.
|
|
47
|
+
*/
|
|
48
|
+
export declare const AUTO_YES_DURATION_FLAG_PATTERN: RegExp;
|
|
49
|
+
/** How the CLI help and errors name the accepted range */
|
|
50
|
+
export declare const AUTO_YES_DURATION_FLAG_RANGE = "1h-24h, whole hours";
|
|
51
|
+
/**
|
|
52
|
+
* Parse a CLI `--duration` value (e.g. '5h') to milliseconds.
|
|
53
|
+
* @returns The duration, or null when the value is not `1h`〜`24h`
|
|
54
|
+
*/
|
|
55
|
+
export declare function parseAutoYesDurationFlag(flag: string): AutoYesDuration | null;
|
|
56
|
+
//# sourceMappingURL=auto-yes-duration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-yes-duration.d.ts","sourceRoot":"","sources":["../../src/config/auto-yes-duration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAE9C,+BAA+B;AAC/B,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,yPAKrB,CAAC;AAEX,oFAAoF;AACpF,MAAM,MAAM,eAAe,GAAG,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAEhE,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,wCAAoF,CAAC;AAE3H,qDAAqD;AACrD,eAAO,MAAM,yBAAyB,EAAE,eAA2B,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAE1E;AAED,6DAA6D;AAC7D,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAExE;AAED,qEAAqE;AACrE,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAG5E;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,QAA+B,CAAC;AAE3E,0DAA0D;AAC1D,eAAO,MAAM,4BAA4B,wBAAwB,CAAC;AAElE;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAG7E"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Auto-Yes duration definitions (Issue #3913)
|
|
4
|
+
*
|
|
5
|
+
* The one definition of how long an Auto-Yes grant may last: any whole number
|
|
6
|
+
* of hours from 1 to 24. Server (route, state), browser (confirm dialog, new
|
|
7
|
+
* task) and CLI (`--duration`) all read it from here.
|
|
8
|
+
*
|
|
9
|
+
* Dependency-free on purpose: no `@/` alias and no safe-regex2, so the CLI
|
|
10
|
+
* build (tsconfig.cli.json sets `"paths": {}`) can re-export it through a
|
|
11
|
+
* relative path (`src/cli/config/duration-constants.ts`) instead of keeping a
|
|
12
|
+
* copy. `scripts/orchestrate/launch-worker.mjs` cannot import TypeScript and
|
|
13
|
+
* copies only {@link AUTO_YES_DURATION_FLAG_PATTERN}; a unit test keeps the
|
|
14
|
+
* copy equal to this one.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.AUTO_YES_DURATION_FLAG_RANGE = exports.AUTO_YES_DURATION_FLAG_PATTERN = exports.DEFAULT_AUTO_YES_DURATION = exports.PRESET_AUTO_YES_DURATIONS = exports.AUTO_YES_DURATIONS = exports.MAX_AUTO_YES_HOURS = exports.MIN_AUTO_YES_HOURS = exports.AUTO_YES_MS_PER_HOUR = void 0;
|
|
18
|
+
exports.isAllowedDuration = isAllowedDuration;
|
|
19
|
+
exports.autoYesDurationToHours = autoYesDurationToHours;
|
|
20
|
+
exports.hoursToAutoYesDuration = hoursToAutoYesDuration;
|
|
21
|
+
exports.parseAutoYesDurationFlag = parseAutoYesDurationFlag;
|
|
22
|
+
/** Milliseconds per hour */
|
|
23
|
+
exports.AUTO_YES_MS_PER_HOUR = 3_600_000;
|
|
24
|
+
/** Shortest grant, in hours */
|
|
25
|
+
exports.MIN_AUTO_YES_HOURS = 1;
|
|
26
|
+
/** Longest grant, in hours (agreed upper bound, 2026-10-25) */
|
|
27
|
+
exports.MAX_AUTO_YES_HOURS = 24;
|
|
28
|
+
/**
|
|
29
|
+
* Every allowed duration in milliseconds: 1h, 2h, ..., 24h.
|
|
30
|
+
*
|
|
31
|
+
* Written out as literals so {@link AutoYesDuration} stays a literal union —
|
|
32
|
+
* a `number` would let NaN, Infinity and fractions through the type.
|
|
33
|
+
*/
|
|
34
|
+
exports.AUTO_YES_DURATIONS = [
|
|
35
|
+
3_600_000, 7_200_000, 10_800_000, 14_400_000, 18_000_000, 21_600_000,
|
|
36
|
+
25_200_000, 28_800_000, 32_400_000, 36_000_000, 39_600_000, 43_200_000,
|
|
37
|
+
46_800_000, 50_400_000, 54_000_000, 57_600_000, 61_200_000, 64_800_000,
|
|
38
|
+
68_400_000, 72_000_000, 75_600_000, 79_200_000, 82_800_000, 86_400_000,
|
|
39
|
+
];
|
|
40
|
+
/** The often-used durations offered as one-tap choices (1h / 3h / 8h) */
|
|
41
|
+
exports.PRESET_AUTO_YES_DURATIONS = [3_600_000, 10_800_000, 28_800_000];
|
|
42
|
+
/** Default Auto-Yes duration (1 hour = 3600000ms) */
|
|
43
|
+
exports.DEFAULT_AUTO_YES_DURATION = 3_600_000;
|
|
44
|
+
/**
|
|
45
|
+
* Type guard: check whether a value is one of the 24 allowed durations.
|
|
46
|
+
* Rejects every non-number, NaN, ±Infinity, fractions of an hour and values
|
|
47
|
+
* outside 1〜24h.
|
|
48
|
+
*/
|
|
49
|
+
function isAllowedDuration(value) {
|
|
50
|
+
return typeof value === 'number' && exports.AUTO_YES_DURATIONS.includes(value);
|
|
51
|
+
}
|
|
52
|
+
/** Whole hours of an allowed duration (e.g. 18000000 → 5) */
|
|
53
|
+
function autoYesDurationToHours(duration) {
|
|
54
|
+
return duration / exports.AUTO_YES_MS_PER_HOUR;
|
|
55
|
+
}
|
|
56
|
+
/** The duration for a whole number of hours, or null outside 1〜24 */
|
|
57
|
+
function hoursToAutoYesDuration(hours) {
|
|
58
|
+
const ms = hours * exports.AUTO_YES_MS_PER_HOUR;
|
|
59
|
+
return isAllowedDuration(ms) ? ms : null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The CLI `--duration` format: `1h`〜`24h`, lower-case `h`, no leading zero,
|
|
63
|
+
* sign, whitespace, fraction or other unit.
|
|
64
|
+
*/
|
|
65
|
+
exports.AUTO_YES_DURATION_FLAG_PATTERN = /^(?:[1-9]|1[0-9]|2[0-4])h$/;
|
|
66
|
+
/** How the CLI help and errors name the accepted range */
|
|
67
|
+
exports.AUTO_YES_DURATION_FLAG_RANGE = '1h-24h, whole hours';
|
|
68
|
+
/**
|
|
69
|
+
* Parse a CLI `--duration` value (e.g. '5h') to milliseconds.
|
|
70
|
+
* @returns The duration, or null when the value is not `1h`〜`24h`
|
|
71
|
+
*/
|
|
72
|
+
function parseAutoYesDurationFlag(flag) {
|
|
73
|
+
if (!exports.AUTO_YES_DURATION_FLAG_PATTERN.test(flag))
|
|
74
|
+
return null;
|
|
75
|
+
return hoursToAutoYesDuration(Number(flag.slice(0, -1)));
|
|
76
|
+
}
|
|
@@ -30,7 +30,7 @@ export type SendAttemptReason =
|
|
|
30
30
|
| 'session-starting'
|
|
31
31
|
/** `not-sent`: the session could not be started. */
|
|
32
32
|
| 'session-start-failed'
|
|
33
|
-
/** `not-sent`: a prompt dialog was open (#1708). */
|
|
33
|
+
/** `not-sent`: a prompt dialog was open (#1708), or opened while the send waited for the composer (#3945). */
|
|
34
34
|
| 'prompt-waiting'
|
|
35
35
|
/** `not-sent`: the tmux session belongs to another server (#2865). */
|
|
36
36
|
| 'foreign-session'
|
|
@@ -40,6 +40,20 @@ export type SendAttemptReason =
|
|
|
40
40
|
| 'composer-not-empty'
|
|
41
41
|
/** `not-sent`: a Command Code plan review overlay refused the send before the body (#3125/#3772). */
|
|
42
42
|
| 'plan-review'
|
|
43
|
+
/** `not-sent`: another send held the instance's composer past the input lock's wait (#3945). */
|
|
44
|
+
| 'input-lock-timeout'
|
|
45
|
+
/** `not-sent`: the session was killed or recreated while the send waited for its composer (#3945). */
|
|
46
|
+
| 'session-replaced'
|
|
47
|
+
/** `not-sent`: the composer was handed to another writer before the body was typed (#3945). */
|
|
48
|
+
| 'input-lock-lost'
|
|
49
|
+
/**
|
|
50
|
+
* `not-sent`: the bound relay the send was going in under was no longer its
|
|
51
|
+
* own right before the first key (cancelled, expired or taken), so the
|
|
52
|
+
* input-boundary hook refused it and nothing was typed or dispatched (#3957/#3992).
|
|
53
|
+
*/
|
|
54
|
+
| 'relay-reservation-lost'
|
|
55
|
+
/** `not-sent`: the pane could not be re-read under the input lock, so nothing was typed (#3945). */
|
|
56
|
+
| 'recheck-failed'
|
|
43
57
|
/** `indeterminate`: the body was typed, did not land intact, and was taken back out best-effort (#2464/#3366). */
|
|
44
58
|
| 'body-not-landed'
|
|
45
59
|
/** `indeterminate`: an autocompletion replaced the body; the line was cleared best-effort (#1501). */
|
|
@@ -63,4 +77,12 @@ export interface LastSendAttempt {
|
|
|
63
77
|
* send before any body is typed (Issue #3772). Matched by code, never by wording.
|
|
64
78
|
*/
|
|
65
79
|
export declare const PLAN_REVIEW_SEND_REFUSED_CODE = "PLAN_REVIEW_SEND_REFUSED";
|
|
80
|
+
/**
|
|
81
|
+
* `code` on the errors the input re-check throws before any key
|
|
82
|
+
* (`recheckComposerBeforeInput`, Issue #3952): a dialog was open, or the pane
|
|
83
|
+
* could not be read. Carried by copilot's `/model` switch, whose caller records
|
|
84
|
+
* the reason by code rather than by the wording around it.
|
|
85
|
+
*/
|
|
86
|
+
export declare const INPUT_RECHECK_PROMPT_WAITING_CODE = "INPUT_RECHECK_PROMPT_WAITING";
|
|
87
|
+
export declare const INPUT_RECHECK_FAILED_CODE = "INPUT_RECHECK_FAILED";
|
|
66
88
|
//# sourceMappingURL=send-attempt-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-attempt-types.d.ts","sourceRoot":"","sources":["../../../src/lib/session/send-attempt-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,CAAC;AAErE,MAAM,MAAM,iBAAiB;AAC3B,wCAAwC;AACtC,WAAW;AACb,2EAA2E;GACzE,kBAAkB;AACpB,mEAAmE;GACjE,kBAAkB;AACpB,oDAAoD;GAClD,sBAAsB;AACxB,
|
|
1
|
+
{"version":3,"file":"send-attempt-types.d.ts","sourceRoot":"","sources":["../../../src/lib/session/send-attempt-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,CAAC;AAErE,MAAM,MAAM,iBAAiB;AAC3B,wCAAwC;AACtC,WAAW;AACb,2EAA2E;GACzE,kBAAkB;AACpB,mEAAmE;GACjE,kBAAkB;AACpB,oDAAoD;GAClD,sBAAsB;AACxB,8GAA8G;GAC5G,gBAAgB;AAClB,sEAAsE;GACpE,iBAAiB;AACnB,oEAAoE;GAClE,qBAAqB;AACvB,4EAA4E;GAC1E,oBAAoB;AACtB,qGAAqG;GACnG,aAAa;AACf,gGAAgG;GAC9F,oBAAoB;AACtB,sGAAsG;GACpG,kBAAkB;AACpB,+FAA+F;GAC7F,iBAAiB;AACnB;;;;GAIG;GACD,wBAAwB;AAC1B,oGAAoG;GAClG,gBAAgB;AAClB,kHAAkH;GAChH,iBAAiB;AACnB,sGAAsG;GACpG,wBAAwB;AAC1B,sGAAsG;GACpG,oBAAoB;AACtB,sFAAsF;GACpF,kBAAkB;AACpB,yEAAyE;GACvE,YAAY,CAAC;AAEjB,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,CAAC;IACxB,8FAA8F;IAC9F,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAAC;CACpC;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAChF,eAAO,MAAM,yBAAyB,yBAAyB,CAAC"}
|
|
@@ -9,9 +9,17 @@
|
|
|
9
9
|
* @module lib/session/send-attempt-types
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PLAN_REVIEW_SEND_REFUSED_CODE = void 0;
|
|
12
|
+
exports.INPUT_RECHECK_FAILED_CODE = exports.INPUT_RECHECK_PROMPT_WAITING_CODE = exports.PLAN_REVIEW_SEND_REFUSED_CODE = void 0;
|
|
13
13
|
/**
|
|
14
14
|
* `code` on the error a tool throws when a plan review overlay refuses the
|
|
15
15
|
* send before any body is typed (Issue #3772). Matched by code, never by wording.
|
|
16
16
|
*/
|
|
17
17
|
exports.PLAN_REVIEW_SEND_REFUSED_CODE = 'PLAN_REVIEW_SEND_REFUSED';
|
|
18
|
+
/**
|
|
19
|
+
* `code` on the errors the input re-check throws before any key
|
|
20
|
+
* (`recheckComposerBeforeInput`, Issue #3952): a dialog was open, or the pane
|
|
21
|
+
* could not be read. Carried by copilot's `/model` switch, whose caller records
|
|
22
|
+
* the reason by code rather than by the wording around it.
|
|
23
|
+
*/
|
|
24
|
+
exports.INPUT_RECHECK_PROMPT_WAITING_CODE = 'INPUT_RECHECK_PROMPT_WAITING';
|
|
25
|
+
exports.INPUT_RECHECK_FAILED_CODE = 'INPUT_RECHECK_FAILED';
|
|
@@ -334,7 +334,10 @@
|
|
|
334
334
|
"remote": "Toggle remote control from GitHub web and mobile",
|
|
335
335
|
"research": "Run a deep research investigation",
|
|
336
336
|
"reset-allowed-tools": "Reset the list of allowed tools",
|
|
337
|
-
"restart":
|
|
337
|
+
"restart": {
|
|
338
|
+
"copilot": "Restart the CLI, preserving the current session",
|
|
339
|
+
"claude": "Restart Claude Code and resume this session, which applies an installed update"
|
|
340
|
+
},
|
|
338
341
|
"rubber-duck": "Get an independent critique of the current work",
|
|
339
342
|
"search": "Search the conversation timeline",
|
|
340
343
|
"session": "View and manage sessions",
|
|
@@ -695,7 +698,14 @@
|
|
|
695
698
|
"regionLabel": "Unsent input",
|
|
696
699
|
"label": "Unsent input:",
|
|
697
700
|
"run": "Run",
|
|
698
|
-
"clear": "Clear"
|
|
701
|
+
"clear": "Clear",
|
|
702
|
+
"clearError": {
|
|
703
|
+
"dismiss": "Dismiss",
|
|
704
|
+
"otherServer": "Could not clear: this session is owned by another server.",
|
|
705
|
+
"busy": "Could not clear: a send is in progress. Wait a moment and try again.",
|
|
706
|
+
"notCleared": "The text is still in the input box; it could not be cleared.",
|
|
707
|
+
"failed": "Failed to clear. Please try again."
|
|
708
|
+
}
|
|
699
709
|
},
|
|
700
710
|
"todo": {
|
|
701
711
|
"addPlaceholder": "Add a todo…",
|
|
@@ -1144,8 +1154,11 @@
|
|
|
1144
1154
|
"commentPlaceholder": "What should change? (Add comment → Submit review)",
|
|
1145
1155
|
"comment": "Add comment",
|
|
1146
1156
|
"submit": "Submit review (Ctrl+R)",
|
|
1157
|
+
"submitCompact": "Submit review",
|
|
1147
1158
|
"approve": "Approve (Ctrl+A)",
|
|
1159
|
+
"approveCompact": "Approve",
|
|
1148
1160
|
"cancel": "Cancel (Esc)",
|
|
1161
|
+
"cancelCompact": "Cancel",
|
|
1149
1162
|
"approveConfirmLabel": "Confirm plan approval",
|
|
1150
1163
|
"approveConfirmText": "Approving runs the plan. Approve it?",
|
|
1151
1164
|
"approveConfirmYes": "Approve and run",
|
|
@@ -1157,7 +1170,9 @@
|
|
|
1157
1170
|
"invalidRequest": "That action does not fit this screen. Nothing was sent.",
|
|
1158
1171
|
"notActive": "Nothing was sent: no plan review is on screen.",
|
|
1159
1172
|
"generic": "Could not send."
|
|
1160
|
-
}
|
|
1173
|
+
},
|
|
1174
|
+
"composerNotice": "The plan is waiting for your review — approve, cancel or comment.",
|
|
1175
|
+
"composerGoto": "Go to the controls"
|
|
1161
1176
|
},
|
|
1162
1177
|
"selectionKeys": {
|
|
1163
1178
|
"numbersToolbarLabel": "Option number keys",
|
|
@@ -334,7 +334,10 @@
|
|
|
334
334
|
"remote": "GitHub の Web・モバイルからのリモート操作を切り替え",
|
|
335
335
|
"research": "ディープリサーチ調査を実行",
|
|
336
336
|
"reset-allowed-tools": "許可済みツールの一覧をリセット",
|
|
337
|
-
"restart":
|
|
337
|
+
"restart": {
|
|
338
|
+
"copilot": "現在のセッションを保ったまま CLI を再起動",
|
|
339
|
+
"claude": "Claude Code を再起動してこのセッションを再開し、インストール済みの更新を適用"
|
|
340
|
+
},
|
|
338
341
|
"rubber-duck": "現在の作業への独立した批評を取得",
|
|
339
342
|
"search": "会話タイムラインを検索",
|
|
340
343
|
"session": "セッションを表示・管理",
|
|
@@ -695,7 +698,14 @@
|
|
|
695
698
|
"regionLabel": "未送信の入力",
|
|
696
699
|
"label": "未送信の入力:",
|
|
697
700
|
"run": "実行",
|
|
698
|
-
"clear": "クリア"
|
|
701
|
+
"clear": "クリア",
|
|
702
|
+
"clearError": {
|
|
703
|
+
"dismiss": "閉じる",
|
|
704
|
+
"otherServer": "別のサーバーが管理しているセッションのため、クリアできませんでした。",
|
|
705
|
+
"busy": "送信中のため、クリアできませんでした。少し待ってからもう一度お試しください。",
|
|
706
|
+
"notCleared": "入力欄に文字が残っています。クリアできませんでした。",
|
|
707
|
+
"failed": "クリアに失敗しました。もう一度お試しください。"
|
|
708
|
+
}
|
|
699
709
|
},
|
|
700
710
|
"todo": {
|
|
701
711
|
"addPlaceholder": "ToDoを追加…",
|
|
@@ -1144,8 +1154,11 @@
|
|
|
1144
1154
|
"commentPlaceholder": "直してほしい点を書く(コメントを追加 → レビューを送信)",
|
|
1145
1155
|
"comment": "コメントを追加",
|
|
1146
1156
|
"submit": "レビューを送信 (Ctrl+R)",
|
|
1157
|
+
"submitCompact": "レビューを送信",
|
|
1147
1158
|
"approve": "承認 (Ctrl+A)",
|
|
1159
|
+
"approveCompact": "承認",
|
|
1148
1160
|
"cancel": "取り消し (Esc)",
|
|
1161
|
+
"cancelCompact": "取り消し",
|
|
1149
1162
|
"approveConfirmLabel": "プランの承認の確認",
|
|
1150
1163
|
"approveConfirmText": "承認するとプランが実行されます。承認しますか?",
|
|
1151
1164
|
"approveConfirmYes": "承認して実行",
|
|
@@ -1157,7 +1170,9 @@
|
|
|
1157
1170
|
"invalidRequest": "この画面では送れない操作です。何も送っていません。",
|
|
1158
1171
|
"notActive": "計画のレビュー画面が表示されていないため、何も送っていません。",
|
|
1159
1172
|
"generic": "送信できませんでした。"
|
|
1160
|
-
}
|
|
1173
|
+
},
|
|
1174
|
+
"composerNotice": "計画の確認待ちです。承認・取り消し・コメントを選んでください",
|
|
1175
|
+
"composerGoto": "操作へ"
|
|
1161
1176
|
},
|
|
1162
1177
|
"selectionKeys": {
|
|
1163
1178
|
"numbersToolbarLabel": "選択肢の番号キー",
|
|
@@ -8,36 +8,31 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Issue #225: Duration selection feature
|
|
10
10
|
* Issue #314: Stop condition (regex) validation
|
|
11
|
+
* Issue #3913: Durations widened to 1〜24 hours (defined in auto-yes-duration.ts)
|
|
11
12
|
*/
|
|
12
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
15
|
};
|
|
15
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
-
exports.MAX_STOP_PATTERN_LENGTH = exports.AUTO_STOP_ERROR_THRESHOLD = exports.AUTO_YES_COUNTDOWN_INTERVAL_MS = exports.FULL_CAPTURE_LINES = exports.REDUCED_CAPTURE_LINES = exports.THINKING_POLLING_INTERVAL_MS = exports.
|
|
17
|
-
exports.isAllowedDuration = isAllowedDuration;
|
|
17
|
+
exports.MAX_STOP_PATTERN_LENGTH = exports.AUTO_STOP_ERROR_THRESHOLD = exports.AUTO_YES_COUNTDOWN_INTERVAL_MS = exports.FULL_CAPTURE_LINES = exports.REDUCED_CAPTURE_LINES = exports.THINKING_POLLING_INTERVAL_MS = exports.hoursToAutoYesDuration = exports.autoYesDurationToHours = exports.isAllowedDuration = exports.MAX_AUTO_YES_HOURS = exports.MIN_AUTO_YES_HOURS = exports.DEFAULT_AUTO_YES_DURATION = exports.PRESET_AUTO_YES_DURATIONS = exports.AUTO_YES_DURATIONS = void 0;
|
|
18
18
|
exports.isReleasedByRestart = isReleasedByRestart;
|
|
19
19
|
exports.validateStopPattern = validateStopPattern;
|
|
20
20
|
exports.executeRegexWithTimeout = executeRegexWithTimeout;
|
|
21
21
|
exports.formatTimeRemaining = formatTimeRemaining;
|
|
22
22
|
const safe_regex2_1 = __importDefault(require("safe-regex2"));
|
|
23
23
|
const tmux_pane_config_1 = require("../config/tmux-pane-config");
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
exports.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
* Replaces `as AutoYesDuration` casts with a runtime-safe check.
|
|
37
|
-
*/
|
|
38
|
-
function isAllowedDuration(value) {
|
|
39
|
-
return typeof value === 'number' && exports.ALLOWED_DURATIONS.includes(value);
|
|
40
|
-
}
|
|
24
|
+
// Issue #3913: the duration definitions live in the dependency-free
|
|
25
|
+
// `auto-yes-duration.ts` so the CLI can re-export them; re-exported here so
|
|
26
|
+
// server and browser code keep importing from this module.
|
|
27
|
+
var auto_yes_duration_1 = require("./auto-yes-duration");
|
|
28
|
+
Object.defineProperty(exports, "AUTO_YES_DURATIONS", { enumerable: true, get: function () { return auto_yes_duration_1.AUTO_YES_DURATIONS; } });
|
|
29
|
+
Object.defineProperty(exports, "PRESET_AUTO_YES_DURATIONS", { enumerable: true, get: function () { return auto_yes_duration_1.PRESET_AUTO_YES_DURATIONS; } });
|
|
30
|
+
Object.defineProperty(exports, "DEFAULT_AUTO_YES_DURATION", { enumerable: true, get: function () { return auto_yes_duration_1.DEFAULT_AUTO_YES_DURATION; } });
|
|
31
|
+
Object.defineProperty(exports, "MIN_AUTO_YES_HOURS", { enumerable: true, get: function () { return auto_yes_duration_1.MIN_AUTO_YES_HOURS; } });
|
|
32
|
+
Object.defineProperty(exports, "MAX_AUTO_YES_HOURS", { enumerable: true, get: function () { return auto_yes_duration_1.MAX_AUTO_YES_HOURS; } });
|
|
33
|
+
Object.defineProperty(exports, "isAllowedDuration", { enumerable: true, get: function () { return auto_yes_duration_1.isAllowedDuration; } });
|
|
34
|
+
Object.defineProperty(exports, "autoYesDurationToHours", { enumerable: true, get: function () { return auto_yes_duration_1.autoYesDurationToHours; } });
|
|
35
|
+
Object.defineProperty(exports, "hoursToAutoYesDuration", { enumerable: true, get: function () { return auto_yes_duration_1.hoursToAutoYesDuration; } });
|
|
41
36
|
// =============================================================================
|
|
42
37
|
// Polling Interval Constants (Issue #499)
|
|
43
38
|
// =============================================================================
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Auto-Yes duration definitions (Issue #3913)
|
|
4
|
+
*
|
|
5
|
+
* The one definition of how long an Auto-Yes grant may last: any whole number
|
|
6
|
+
* of hours from 1 to 24. Server (route, state), browser (confirm dialog, new
|
|
7
|
+
* task) and CLI (`--duration`) all read it from here.
|
|
8
|
+
*
|
|
9
|
+
* Dependency-free on purpose: no `@/` alias and no safe-regex2, so the CLI
|
|
10
|
+
* build (tsconfig.cli.json sets `"paths": {}`) can re-export it through a
|
|
11
|
+
* relative path (`src/cli/config/duration-constants.ts`) instead of keeping a
|
|
12
|
+
* copy. `scripts/orchestrate/launch-worker.mjs` cannot import TypeScript and
|
|
13
|
+
* copies only {@link AUTO_YES_DURATION_FLAG_PATTERN}; a unit test keeps the
|
|
14
|
+
* copy equal to this one.
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.AUTO_YES_DURATION_FLAG_RANGE = exports.AUTO_YES_DURATION_FLAG_PATTERN = exports.DEFAULT_AUTO_YES_DURATION = exports.PRESET_AUTO_YES_DURATIONS = exports.AUTO_YES_DURATIONS = exports.MAX_AUTO_YES_HOURS = exports.MIN_AUTO_YES_HOURS = exports.AUTO_YES_MS_PER_HOUR = void 0;
|
|
18
|
+
exports.isAllowedDuration = isAllowedDuration;
|
|
19
|
+
exports.autoYesDurationToHours = autoYesDurationToHours;
|
|
20
|
+
exports.hoursToAutoYesDuration = hoursToAutoYesDuration;
|
|
21
|
+
exports.parseAutoYesDurationFlag = parseAutoYesDurationFlag;
|
|
22
|
+
/** Milliseconds per hour */
|
|
23
|
+
exports.AUTO_YES_MS_PER_HOUR = 3_600_000;
|
|
24
|
+
/** Shortest grant, in hours */
|
|
25
|
+
exports.MIN_AUTO_YES_HOURS = 1;
|
|
26
|
+
/** Longest grant, in hours (agreed upper bound, 2026-10-25) */
|
|
27
|
+
exports.MAX_AUTO_YES_HOURS = 24;
|
|
28
|
+
/**
|
|
29
|
+
* Every allowed duration in milliseconds: 1h, 2h, ..., 24h.
|
|
30
|
+
*
|
|
31
|
+
* Written out as literals so {@link AutoYesDuration} stays a literal union —
|
|
32
|
+
* a `number` would let NaN, Infinity and fractions through the type.
|
|
33
|
+
*/
|
|
34
|
+
exports.AUTO_YES_DURATIONS = [
|
|
35
|
+
3_600_000, 7_200_000, 10_800_000, 14_400_000, 18_000_000, 21_600_000,
|
|
36
|
+
25_200_000, 28_800_000, 32_400_000, 36_000_000, 39_600_000, 43_200_000,
|
|
37
|
+
46_800_000, 50_400_000, 54_000_000, 57_600_000, 61_200_000, 64_800_000,
|
|
38
|
+
68_400_000, 72_000_000, 75_600_000, 79_200_000, 82_800_000, 86_400_000,
|
|
39
|
+
];
|
|
40
|
+
/** The often-used durations offered as one-tap choices (1h / 3h / 8h) */
|
|
41
|
+
exports.PRESET_AUTO_YES_DURATIONS = [3_600_000, 10_800_000, 28_800_000];
|
|
42
|
+
/** Default Auto-Yes duration (1 hour = 3600000ms) */
|
|
43
|
+
exports.DEFAULT_AUTO_YES_DURATION = 3_600_000;
|
|
44
|
+
/**
|
|
45
|
+
* Type guard: check whether a value is one of the 24 allowed durations.
|
|
46
|
+
* Rejects every non-number, NaN, ±Infinity, fractions of an hour and values
|
|
47
|
+
* outside 1〜24h.
|
|
48
|
+
*/
|
|
49
|
+
function isAllowedDuration(value) {
|
|
50
|
+
return typeof value === 'number' && exports.AUTO_YES_DURATIONS.includes(value);
|
|
51
|
+
}
|
|
52
|
+
/** Whole hours of an allowed duration (e.g. 18000000 → 5) */
|
|
53
|
+
function autoYesDurationToHours(duration) {
|
|
54
|
+
return duration / exports.AUTO_YES_MS_PER_HOUR;
|
|
55
|
+
}
|
|
56
|
+
/** The duration for a whole number of hours, or null outside 1〜24 */
|
|
57
|
+
function hoursToAutoYesDuration(hours) {
|
|
58
|
+
const ms = hours * exports.AUTO_YES_MS_PER_HOUR;
|
|
59
|
+
return isAllowedDuration(ms) ? ms : null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The CLI `--duration` format: `1h`〜`24h`, lower-case `h`, no leading zero,
|
|
63
|
+
* sign, whitespace, fraction or other unit.
|
|
64
|
+
*/
|
|
65
|
+
exports.AUTO_YES_DURATION_FLAG_PATTERN = /^(?:[1-9]|1[0-9]|2[0-4])h$/;
|
|
66
|
+
/** How the CLI help and errors name the accepted range */
|
|
67
|
+
exports.AUTO_YES_DURATION_FLAG_RANGE = '1h-24h, whole hours';
|
|
68
|
+
/**
|
|
69
|
+
* Parse a CLI `--duration` value (e.g. '5h') to milliseconds.
|
|
70
|
+
* @returns The duration, or null when the value is not `1h`〜`24h`
|
|
71
|
+
*/
|
|
72
|
+
function parseAutoYesDurationFlag(flag) {
|
|
73
|
+
if (!exports.AUTO_YES_DURATION_FLAG_PATTERN.test(flag))
|
|
74
|
+
return null;
|
|
75
|
+
return hoursToAutoYesDuration(Number(flag.slice(0, -1)));
|
|
76
|
+
}
|
|
@@ -71,6 +71,7 @@ const db_instance_1 = require("./db/db-instance");
|
|
|
71
71
|
const chat_db_1 = require("./db/chat-db");
|
|
72
72
|
const worktree_session_ownership_1 = require("./cli-tools/worktree-session-ownership");
|
|
73
73
|
const prompt_answer_sender_1 = require("./prompt-answer-sender");
|
|
74
|
+
const instance_input_lock_1 = require("../lib/session/instance-input-lock");
|
|
74
75
|
const session_created_signal_1 = require("./tmux/session-created-signal");
|
|
75
76
|
const manager_1 = require("./cli-tools/manager");
|
|
76
77
|
const cli_patterns_1 = require("./detection/cli-patterns");
|
|
@@ -401,6 +402,24 @@ function settleFailedTick(error, tick) {
|
|
|
401
402
|
logger.info('poller:auto-yes-answer-abandoned', { worktreeId, cliToolId, instanceId, keysSent, delivery });
|
|
402
403
|
return 'no_answer';
|
|
403
404
|
}
|
|
405
|
+
// Issue #3952: the answer waited for a send holding the session's input and
|
|
406
|
+
// was then not typed — the prompt moved, or the wait ran out. Nothing is on
|
|
407
|
+
// the pane and the poller did nothing wrong: the next tick reads the screen
|
|
408
|
+
// afresh and decides again, without counting an error. By name, as the
|
|
409
|
+
// transport's errors are read: test doubles of the sender need not export it.
|
|
410
|
+
if (error instanceof Error && error.name === 'PromptAnswerNotDeliveredError') {
|
|
411
|
+
if (attempt !== null)
|
|
412
|
+
(0, auto_yes_poller_state_1.settleSendAttempt)(attempt, false);
|
|
413
|
+
if (sendInFlight)
|
|
414
|
+
(0, auto_yes_poller_receipt_log_1.noteAnswerSent)(cliToolId, worktreeId, instanceId, true, receiptEpisode);
|
|
415
|
+
logger.info('poller:auto-yes-answer-not-delivered', {
|
|
416
|
+
worktreeId,
|
|
417
|
+
cliToolId,
|
|
418
|
+
instanceId,
|
|
419
|
+
skip: error.skip,
|
|
420
|
+
});
|
|
421
|
+
return 'no_answer';
|
|
422
|
+
}
|
|
404
423
|
// Issue #3839: a failure with keys already on the pane is held the same way —
|
|
405
424
|
// the next tick must not type the answer again over them (step 2.5); the
|
|
406
425
|
// screen leaving or changing forgets it (`forgetPartialAnswer`). Issue #3880:
|
|
@@ -445,10 +464,14 @@ function settleFailedTick(error, tick) {
|
|
|
445
464
|
* dropped rows from the top of what tmux returned, as the capture layer said
|
|
446
465
|
* ({@link capturePollerFrame}'s `headCut`). At a window of the pane's height
|
|
447
466
|
* the row count cannot tell. Omitted, judged from the row count as before.
|
|
467
|
+
* @param inputReadMark - Issue #3952: `instanceInputReadMark()` taken before the
|
|
468
|
+
* tick's capture. Omitted, it is taken when this function is called.
|
|
448
469
|
* @returns 'responded' | 'no_prompt' | 'duplicate' | 'no_answer' | 'error'
|
|
449
470
|
*/
|
|
450
|
-
async function detectAndRespondToPrompt(worktreeId, pollerState, cliToolId, cleanOutput, precomputedLines, instanceId, rawOutput, generation, observation, captureWindowLines, captureHeadCut) {
|
|
471
|
+
async function detectAndRespondToPrompt(worktreeId, pollerState, cliToolId, cleanOutput, precomputedLines, instanceId, rawOutput, generation, observation, captureWindowLines, captureHeadCut, inputReadMark) {
|
|
451
472
|
const compositeKey = (0, auto_yes_state_1.buildCompositeKey)(worktreeId, cliToolId, instanceId);
|
|
473
|
+
// Issue #3952: where the session's input order stood when the frame was read.
|
|
474
|
+
const readMark = inputReadMark ?? (0, instance_input_lock_1.instanceInputReadMark)();
|
|
452
475
|
const captureExtent = captureWindowLines === undefined ? undefined : { windowLines: captureWindowLines, headCut: captureHeadCut };
|
|
453
476
|
const tickObservation = observation ?? {
|
|
454
477
|
start: (0, waiting_episode_binding_1.startWaitingObservation)(worktreeId, cliToolId, instanceId),
|
|
@@ -690,15 +713,28 @@ async function detectAndRespondToPrompt(worktreeId, pollerState, cliToolId, clea
|
|
|
690
713
|
// Issue #3798: the wait this answer goes to, fixed as the send begins.
|
|
691
714
|
const answerTarget = (0, auto_yes_poller_answer_target_1.fixAnswerTarget)(worktreeId, cliToolId, instanceId);
|
|
692
715
|
sendInFlight = true;
|
|
716
|
+
const answerParams = {
|
|
717
|
+
sessionName,
|
|
718
|
+
answer,
|
|
719
|
+
cliToolId,
|
|
720
|
+
promptData: promptDetection.promptData,
|
|
721
|
+
// Issue #3706: asked after each wait inside the send.
|
|
722
|
+
...(generation !== undefined ? { stillCurrent: () => (0, auto_yes_poller_generation_1.isTickCurrent)(generation) } : {}),
|
|
723
|
+
// Issue #3952: an answer that had to wait for a send is read again.
|
|
724
|
+
readMark,
|
|
725
|
+
};
|
|
726
|
+
// Issue #3952 review P1-2: and step 5.5's last look is taken again after
|
|
727
|
+
// that wait, right before the first key — the contract or the grant may
|
|
728
|
+
// have changed while the answer waited for the input. Not enumerable: the
|
|
729
|
+
// params stay the plain record of what was answered (as the ledger's
|
|
730
|
+
// fault-injection test compares them across runs); the sender reads it as
|
|
731
|
+
// the field it is.
|
|
732
|
+
Object.defineProperty(answerParams, 'stillAllowedAtSend', {
|
|
733
|
+
value: () => !(0, auto_yes_poller_steps_1.withheldAtSend)(judged, generation !== undefined),
|
|
734
|
+
enumerable: false,
|
|
735
|
+
});
|
|
693
736
|
try {
|
|
694
|
-
await (0, prompt_answer_sender_1.sendPromptAnswer)(
|
|
695
|
-
sessionName,
|
|
696
|
-
answer,
|
|
697
|
-
cliToolId,
|
|
698
|
-
promptData: promptDetection.promptData,
|
|
699
|
-
// Issue #3706: asked after each wait inside the send.
|
|
700
|
-
...(generation !== undefined ? { stillCurrent: () => (0, auto_yes_poller_generation_1.isTickCurrent)(generation) } : {}),
|
|
701
|
-
});
|
|
737
|
+
await (0, prompt_answer_sender_1.sendPromptAnswer)(answerParams);
|
|
702
738
|
}
|
|
703
739
|
finally {
|
|
704
740
|
(0, tmux_capture_cache_1.invalidateCache)(sessionName);
|
|
@@ -788,6 +824,9 @@ async function pollAutoYes(worktreeId, cliToolId, instanceId, owner) {
|
|
|
788
824
|
// Issue #3798: the waiting episode as this tick found it, before its first wait.
|
|
789
825
|
const observationStart = (0, waiting_episode_binding_1.startWaitingObservation)(worktreeId, cliToolId, instanceId);
|
|
790
826
|
try {
|
|
827
|
+
// Issue #3952: taken before the capture, so a send admitted after it makes
|
|
828
|
+
// an answer from this frame read the screen again.
|
|
829
|
+
const inputReadMark = (0, instance_input_lock_1.instanceInputReadMark)();
|
|
791
830
|
// 2. Capture and clean output
|
|
792
831
|
const captureLines = grant.stopPattern
|
|
793
832
|
? auto_yes_config_1.FULL_CAPTURE_LINES
|
|
@@ -819,7 +858,7 @@ async function pollAutoYes(worktreeId, cliToolId, instanceId, owner) {
|
|
|
819
858
|
const result = await detectAndRespondToPrompt(worktreeId, pollerState, cliToolId, cleanOutput, lines, instanceId, rawOutput, generation, { start: observationStart, frameTime },
|
|
820
859
|
// Issue #3881 (review P2-1): the window this capture was taken with,
|
|
821
860
|
// and (third review N4) whether it cut the pane's top.
|
|
822
|
-
captureLines, headCut);
|
|
861
|
+
captureLines, headCut, inputReadMark);
|
|
823
862
|
if (!(0, auto_yes_poller_generation_1.isTickCurrent)(generation)) {
|
|
824
863
|
endStaleTick(generation);
|
|
825
864
|
return;
|
|
@@ -203,8 +203,10 @@ function getAutoYesState(worktreeId, cliToolId = 'claude', instanceId) {
|
|
|
203
203
|
* @param worktreeId - Worktree identifier
|
|
204
204
|
* @param cliToolId - CLI tool type
|
|
205
205
|
* @param enabled - Whether to enable or disable auto-yes
|
|
206
|
-
* @param duration - Optional duration in milliseconds (must be an
|
|
207
|
-
* Defaults to DEFAULT_AUTO_YES_DURATION (1 hour) when omitted.
|
|
206
|
+
* @param duration - Optional duration in milliseconds (must be an AUTO_YES_DURATIONS value,
|
|
207
|
+
* 1〜24 whole hours). Defaults to DEFAULT_AUTO_YES_DURATION (1 hour) when omitted.
|
|
208
|
+
* Issue #3913: checked at run time too — an enable with any other
|
|
209
|
+
* value throws a RangeError and leaves the state as it was.
|
|
208
210
|
* @param stopPattern - Optional regex pattern for stop condition (Issue #314).
|
|
209
211
|
* @param instanceId - Optional instance identifier (Issue #896; defaults to primary).
|
|
210
212
|
* @param answerMode - Issue #3863: how questions are answered. Omitted, an
|
|
@@ -217,6 +219,11 @@ function getAutoYesState(worktreeId, cliToolId = 'claude', instanceId) {
|
|
|
217
219
|
function setAutoYesEnabled(worktreeId, cliToolId, enabled, duration, stopPattern, instanceId, answerMode) {
|
|
218
220
|
const key = buildCompositeKey(worktreeId, cliToolId, instanceId);
|
|
219
221
|
if (enabled) {
|
|
222
|
+
// Issue #3913: the type is not proof (a cast, or a caller outside the
|
|
223
|
+
// route's check), so the value is checked before anything is written.
|
|
224
|
+
if (duration !== undefined && !(0, auto_yes_config_1.isAllowedDuration)(duration)) {
|
|
225
|
+
throw new RangeError(`Invalid Auto-Yes duration: ${String(duration)} (must be 1-24 whole hours in ms)`);
|
|
226
|
+
}
|
|
220
227
|
const current = answerMode === undefined ? getAutoYesState(worktreeId, cliToolId, instanceId) : null;
|
|
221
228
|
const now = Date.now();
|
|
222
229
|
const effectiveDuration = duration ?? auto_yes_config_1.DEFAULT_AUTO_YES_DURATION;
|