commandmate 0.44.1 → 0.44.3
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 +169 -169
- package/.next/app-path-routes-manifest.json +35 -35
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +0 -6
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route.js +2 -2
- 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.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.js +1 -1
- package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route.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.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 +2 -2
- 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/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.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.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.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.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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route.js +2 -2
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route.js +2 -2
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.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 +3 -3
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_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_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_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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route.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 +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.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_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.js +1 -2
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +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.js +1 -2
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +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 +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
- package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +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.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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +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 +2 -2
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.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_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +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 -35
- package/.next/server/chunks/1191.js +2 -2
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/1559.js +2 -0
- package/.next/server/chunks/1789.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/2460.js +1 -0
- package/.next/server/chunks/2710.js +1 -1
- package/.next/server/chunks/2908.js +1 -0
- package/.next/server/chunks/2980.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3480.js +1 -1
- package/.next/server/chunks/3718.js +1 -1
- package/.next/server/chunks/4207.js +2 -2
- package/.next/server/chunks/450.js +1 -1
- package/.next/server/chunks/4672.js +5 -0
- package/.next/server/chunks/{9353.js → 4718.js} +2 -2
- package/.next/server/chunks/4837.js +14 -0
- package/.next/server/chunks/5048.js +1 -1
- package/.next/server/chunks/5209.js +1 -0
- package/.next/server/chunks/5595.js +1 -0
- package/.next/server/chunks/5625.js +25 -0
- package/.next/server/chunks/5845.js +1 -0
- package/.next/server/chunks/611.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6781.js +1 -1
- package/.next/server/chunks/6793.js +3 -3
- package/.next/server/chunks/7491.js +2 -2
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/850.js +1 -0
- package/.next/server/chunks/8543.js +1 -1
- package/.next/server/chunks/8728.js +3 -3
- package/.next/server/chunks/8791.js +1 -1
- package/.next/server/chunks/8800.js +1 -1
- package/.next/server/chunks/8918.js +7 -7
- package/.next/server/chunks/9130.js +1 -5
- package/.next/server/chunks/9390.js +2 -3
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +6 -6
- package/.next/server/chunks/9731.js +3 -3
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{1642-fb2e176aaadbd137.js → 1642-767aed8e7c61ef7f.js} +1 -1
- package/.next/static/chunks/{2407-f1f258d4a1d92620.js → 2407-06d35bb1aa02de80.js} +1 -1
- package/.next/static/chunks/{2619-04bc32f026a0d946.js → 2619-a305ad4810f1393a.js} +1 -1
- package/.next/static/chunks/4727-5d695d71e3fdf97b.js +1 -0
- package/.next/static/chunks/{8165-3853772f6ae1299b.js → 8165-3525fb42f1b4976e.js} +1 -1
- package/.next/static/chunks/app/{layout-da66300cc20244ed.js → layout-0d1750b833f5cc3e.js} +1 -1
- package/.next/static/chunks/app/sessions/page-2af68c63211c751f.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-e36898c3a80e7302.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/{page-373ea37b16d930c7.js → page-c601f3b3ece6557e.js} +1 -1
- package/.next/static/css/057f64a65726c439.css +1 -0
- package/.next/trace +13 -13
- package/dist/cli/commands/ask.d.ts.map +1 -1
- package/dist/cli/commands/ask.js +120 -119
- package/dist/cli/commands/attach.d.ts +94 -0
- package/dist/cli/commands/attach.d.ts.map +1 -1
- package/dist/cli/commands/attach.js +145 -7
- package/dist/cli/commands/auto-yes.js +1 -1
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +10 -13
- package/dist/cli/commands/command-target.d.ts +23 -0
- package/dist/cli/commands/command-target.d.ts.map +1 -0
- package/dist/cli/commands/command-target.js +25 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +41 -2
- package/dist/cli/commands/message-dispatch.d.ts +36 -0
- package/dist/cli/commands/message-dispatch.d.ts.map +1 -0
- package/dist/cli/commands/message-dispatch.js +63 -0
- package/dist/cli/commands/reply.d.ts.map +1 -1
- package/dist/cli/commands/reply.js +2 -5
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +3 -6
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +149 -146
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +608 -416
- package/dist/cli/types/api-responses.d.ts +174 -27
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/api-responses.js +4 -2
- package/dist/cli/utils/api-client.d.ts +25 -5
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +87 -55
- package/dist/cli/utils/server-url.d.ts +1 -0
- package/dist/cli/utils/server-url.d.ts.map +1 -1
- package/dist/cli/utils/server-url.js +7 -0
- package/dist/config/uat-isolation.d.ts +140 -0
- package/dist/config/uat-isolation.d.ts.map +1 -0
- package/dist/config/uat-isolation.js +246 -0
- package/dist/lib/global-state.d.ts +12 -0
- package/dist/lib/global-state.d.ts.map +1 -0
- package/dist/lib/global-state.js +16 -0
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts +33 -0
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -0
- package/dist/lib/polling/auto-yes-suppression-reason.js +2 -0
- package/dist/lib/session/prompt-view.d.ts +228 -0
- package/dist/lib/session/prompt-view.d.ts.map +1 -0
- package/dist/lib/session/prompt-view.js +290 -0
- package/dist/lib/session/status-evidence-type.d.ts +16 -0
- package/dist/lib/session/status-evidence-type.d.ts.map +1 -0
- package/dist/lib/session/status-evidence-type.js +2 -0
- package/dist/lib/tmux/legacy-session-alias.d.ts.map +1 -1
- package/dist/lib/tmux/legacy-session-alias.js +2 -1
- package/dist/server/locales/en/worktree.json +3 -1
- package/dist/server/locales/ja/worktree.json +3 -1
- package/dist/server/server.js +5 -3
- package/dist/server/src/cli/types/api-responses.js +4 -2
- package/dist/server/src/config/cli-tool-timing-config.js +1 -6
- package/dist/server/src/config/uat-isolation.js +246 -0
- package/dist/server/src/lib/assistant-response-saver.js +62 -3
- package/dist/server/src/lib/auto-yes-lifecycle.js +139 -0
- package/dist/server/src/lib/auto-yes-poller.js +465 -160
- package/dist/server/src/lib/auto-yes-state.js +2 -2
- package/dist/server/src/lib/cli-tools/antigravity.js +39 -80
- package/dist/server/src/lib/cli-tools/base.js +151 -0
- package/dist/server/src/lib/cli-tools/codex.js +44 -80
- package/dist/server/src/lib/cli-tools/command-code.js +24 -56
- package/dist/server/src/lib/cli-tools/copilot.js +25 -67
- package/dist/server/src/lib/cli-tools/direct-input.js +8 -0
- package/dist/server/src/lib/cli-tools/gemini.js +23 -73
- package/dist/server/src/lib/cli-tools/opencode-pane-width.js +53 -0
- package/dist/server/src/lib/cli-tools/opencode-v2.js +9 -7
- package/dist/server/src/lib/cli-tools/opencode.js +21 -85
- package/dist/server/src/lib/cli-tools/submit-verified-sender.js +127 -4
- package/dist/server/src/lib/cli-tools/vibe-local.js +21 -66
- package/dist/server/src/lib/detection/cli-patterns.js +374 -3047
- package/dist/server/src/lib/detection/idle-evidence-observation.js +2 -2
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +7 -32
- package/dist/server/src/lib/detection/prompt-detector.js +2 -35
- package/dist/server/src/lib/detection/selection-shape-patterns.js +69 -0
- package/dist/server/src/lib/detection/selection-shape.js +32 -520
- package/dist/server/src/lib/detection/shared/pasted-text.js +41 -0
- package/dist/server/src/lib/detection/shared/shell-pane-command.js +16 -0
- package/dist/server/src/lib/detection/shared/strip-box-drawing.js +25 -0
- package/dist/server/src/lib/detection/status-detector.js +1 -1
- package/dist/server/src/lib/detection/tools/antigravity/detect.js +12 -60
- package/dist/server/src/lib/detection/tools/antigravity/dialog.js +2 -15
- package/dist/server/src/lib/detection/tools/antigravity/live-region.js +39 -0
- package/dist/server/src/lib/detection/tools/antigravity/patterns.js +286 -0
- package/dist/server/src/lib/detection/tools/claude/detect.js +11 -17
- package/dist/server/src/lib/detection/tools/claude/live-region.js +26 -0
- package/dist/server/src/lib/detection/tools/claude/patterns.js +264 -4
- package/dist/server/src/lib/detection/tools/claude/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +1 -1
- package/dist/server/src/lib/detection/tools/codex/detect.js +71 -130
- package/dist/server/src/lib/detection/tools/codex/live-region.js +104 -0
- package/dist/server/src/lib/detection/tools/codex/patterns.js +855 -0
- package/dist/server/src/lib/detection/tools/codex/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/command-code/detect.js +19 -50
- package/dist/server/src/lib/detection/tools/command-code/dialog.js +2 -18
- package/dist/server/src/lib/detection/tools/command-code/live-region.js +36 -0
- package/dist/server/src/lib/detection/tools/command-code/patterns.js +234 -0
- package/dist/server/src/lib/detection/tools/command-code/selection-shape.js +461 -0
- package/dist/server/src/lib/detection/tools/context-above.js +20 -0
- package/dist/server/src/lib/detection/tools/copilot/detect.js +13 -35
- package/dist/server/src/lib/detection/tools/copilot/live-region.js +52 -0
- package/dist/server/src/lib/detection/tools/copilot/patterns.js +640 -0
- package/dist/server/src/lib/detection/tools/copilot/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/frame.js +36 -2
- package/dist/server/src/lib/detection/tools/gemini/patterns.js +29 -0
- package/dist/server/src/lib/detection/tools/live-region-specs.js +31 -0
- package/dist/server/src/lib/detection/tools/live-region.js +204 -0
- package/dist/server/src/lib/detection/tools/opencode/detect.js +11 -49
- package/dist/server/src/lib/detection/tools/opencode/live-region.js +24 -0
- package/dist/server/src/lib/detection/tools/opencode/patterns.js +508 -0
- package/dist/server/src/lib/detection/tools/opencode-gutter-live-region.js +72 -0
- package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +10 -42
- package/dist/server/src/lib/detection/tools/opencode-v2/live-region.js +24 -0
- package/dist/server/src/lib/detection/tools/opencode-v2/patterns.js +63 -0
- package/dist/server/src/lib/detection/tools/run-detection.js +31 -50
- package/dist/server/src/lib/detection/tools/verdicts.js +59 -0
- package/dist/server/src/lib/detection/tools/vibe-local/patterns.js +20 -0
- package/dist/server/src/lib/detection/truncate-raw-content.js +38 -0
- package/dist/server/src/lib/detection/turn-abandoned.js +66 -0
- package/dist/server/src/lib/detection/unclassified-frame-tracker.js +2 -2
- package/dist/server/src/lib/global-state.js +16 -0
- package/dist/server/src/lib/hooks/agent-session-telemetry.js +4 -6
- package/dist/server/src/lib/hooks/permission-decision-state.js +2 -2
- package/dist/server/src/lib/hooks/sources/antigravity/history.js +11 -76
- package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +63 -1
- package/dist/server/src/lib/hooks/sources/antigravity/source.js +16 -0
- package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +3 -12
- package/dist/server/src/lib/hooks/sources/claude/history.js +17 -156
- package/dist/server/src/lib/hooks/sources/claude/queued-notice.js +53 -0
- package/dist/server/src/lib/hooks/sources/claude/source.js +33 -3
- package/dist/server/src/lib/hooks/sources/claude/transcript.js +3 -13
- package/dist/server/src/lib/hooks/sources/codex/history.js +11 -74
- package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +147 -11
- package/dist/server/src/lib/hooks/sources/codex/relay-install.js +64 -21
- package/dist/server/src/lib/hooks/sources/codex/transcript.js +5 -15
- package/dist/server/src/lib/hooks/sources/command-code/history.js +20 -121
- package/dist/server/src/lib/hooks/sources/command-code/transcript.js +3 -13
- package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +161 -31
- package/dist/server/src/lib/hooks/sources/define-source.js +40 -55
- package/dist/server/src/lib/hooks/sources/event-mapper.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/diff.js +3 -4
- package/dist/server/src/lib/hooks/sources/opencode/history.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/payloads.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/ports.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/subscription.js +4 -3
- package/dist/server/src/lib/hooks/sources/opencode/transcript.js +3 -16
- package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode-v2/mappers.js +5 -4
- package/dist/server/src/lib/hooks/sources/opencode-v2/ports.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +3 -7
- package/dist/server/src/lib/hooks/sources/opencode-v2/usage.js +2 -1
- package/dist/server/src/lib/hooks/sources/pending-decisions.js +2 -1
- package/dist/server/src/lib/hooks/sources/registry.js +3 -2
- package/dist/server/src/lib/hooks/sources/transcript-history.js +262 -0
- package/dist/server/src/lib/hooks/sources/turn-body.js +31 -0
- package/dist/server/src/lib/hooks/tool-input-normalization-state.js +2 -2
- package/dist/server/src/lib/polling/antigravity-permission-receipts.js +2 -2
- package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +16 -4
- package/dist/server/src/lib/polling/auto-yes-enter-fallback-state.js +142 -0
- package/dist/server/src/lib/polling/auto-yes-enter-fallback.js +187 -0
- package/dist/server/src/lib/polling/auto-yes-resolver.js +9 -3
- package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +2 -0
- package/dist/server/src/lib/polling/auto-yes-suppression-state.js +2 -2
- package/dist/server/src/lib/polling/pending-scraped-response.js +190 -0
- package/dist/server/src/lib/polling/prompt-dedup-state.js +2 -2
- package/dist/server/src/lib/polling/prompt-dedup.js +2 -2
- package/dist/server/src/lib/polling/response-checker-dialog-gate.js +95 -0
- package/dist/server/src/lib/polling/response-checker-extraction-result.js +50 -0
- package/dist/server/src/lib/polling/response-checker-extraction-steps.js +670 -0
- package/dist/server/src/lib/polling/response-checker.js +666 -1162
- package/dist/server/src/lib/polling/response-dedup.js +3 -4
- package/dist/server/src/lib/polling/response-poller-constants.js +17 -0
- package/dist/server/src/lib/polling/response-poller-core.js +54 -20
- package/dist/server/src/lib/polling/startup-screen.js +142 -0
- package/dist/server/src/lib/polling/structured-history-gate.js +3 -2
- package/dist/server/src/lib/prompt-answer-semantic.js +178 -0
- package/dist/server/src/lib/prompt-answer-sender.js +6 -5
- package/dist/server/src/lib/push/failure-episode-state.js +2 -2
- package/dist/server/src/lib/push/notification-dedup.js +3 -4
- package/dist/server/src/lib/push/prompt-card-state.js +2 -2
- package/dist/server/src/lib/push/waiting-push-notifier.js +3 -4
- package/dist/server/src/lib/realtime/publisher-registry.js +3 -2
- package/dist/server/src/lib/realtime/terminal-broadcast.js +38 -2
- package/dist/server/src/lib/realtime/terminal-session-ownership.js +45 -0
- package/dist/server/src/lib/relay/relay-delivery.js +6 -2
- package/dist/server/src/lib/relay/relay-readiness.js +38 -1
- package/dist/server/src/lib/relay/relay-triggers.js +9 -0
- package/dist/server/src/lib/resource-cleanup.js +6 -4
- package/dist/server/src/lib/response-cleaner.js +24 -1
- package/dist/server/src/lib/response-extractor.js +16 -0
- package/dist/server/src/lib/schedule-manager.js +8 -10
- package/dist/server/src/lib/session/agent-event-ask-user-question.js +168 -0
- package/dist/server/src/lib/session/agent-event-awaiting-instruction.js +104 -0
- package/dist/server/src/lib/session/agent-event-dedup.js +539 -0
- package/dist/server/src/lib/session/agent-event-model.js +562 -0
- package/dist/server/src/lib/session/agent-event-record.js +10 -0
- package/dist/server/src/lib/session/agent-event-state.js +106 -1854
- package/dist/server/src/lib/session/agent-event-structured-state.js +109 -0
- package/dist/server/src/lib/session/agent-event-turn.js +811 -0
- package/dist/server/src/lib/session/agent-session-lifecycle.js +11 -2
- package/dist/server/src/lib/session/chat-turn-progress.js +322 -0
- package/dist/server/src/lib/session/claude-executor.js +45 -5
- package/dist/server/src/lib/session/claude-session.js +21 -65
- package/dist/server/src/lib/session/cli-session.js +17 -0
- package/dist/server/src/lib/session/current-output-builder.js +454 -1103
- package/dist/server/src/lib/session/current-output-history-writers.js +255 -0
- package/dist/server/src/lib/session/current-output-types.js +9 -0
- package/dist/server/src/lib/session/detection-divergence.js +55 -0
- package/dist/server/src/lib/session/global-session-constants.js +2 -13
- package/dist/server/src/lib/session/hook-turn-hold.js +102 -0
- package/dist/server/src/lib/session/layer-disagreement.js +2 -2
- package/dist/server/src/lib/session/opencode-session-store.js +2 -1
- package/dist/server/src/lib/session/prompt-view.js +290 -0
- package/dist/server/src/lib/session/prompt-waiting-composition.js +35 -0
- package/dist/server/src/lib/session/provisional-turn.js +3 -1
- package/dist/server/src/lib/session/send-user-message.js +1 -1
- package/dist/server/src/lib/session/session-starting-state.js +4 -6
- package/dist/server/src/lib/session/status-evidence-type.js +2 -0
- package/dist/server/src/lib/session/status-evidence.js +2 -2
- package/dist/server/src/lib/session/structured-status-merge.js +335 -0
- package/dist/server/src/lib/session/waiting-episode-state.js +3 -4
- package/dist/server/src/lib/session/waiting-kind.js +3 -0
- package/dist/server/src/lib/session-cleanup.js +6 -8
- package/dist/server/src/lib/skills/install-plan.js +2 -1
- package/dist/server/src/lib/skills/snapshot-store.js +2 -2
- package/dist/server/src/lib/skills/uninstall-plan.js +2 -2
- package/dist/server/src/lib/timer-manager.js +6 -8
- package/dist/server/src/lib/tmux/geometry-delegation.js +3 -4
- package/dist/server/src/lib/tmux/legacy-session-alias.js +2 -1
- package/dist/server/src/lib/tmux/session-hooks.js +2 -1
- package/dist/server/src/lib/tmux/session-status-options.js +3 -3
- package/dist/server/src/lib/tmux/tmux-capture-cache.js +3 -2
- package/dist/server/src/lib/tmux/tmux.js +33 -59
- package/dist/server/src/lib/tui-accumulator.js +2 -2
- package/dist/server/src/lib/version-checker.js +6 -6
- package/dist/server/src/lib/ws-server.js +47 -11
- package/docs/en/user-guide/webapp-guide.md +27 -3
- package/package.json +1 -1
- package/release-notes/0.44.2.json +33 -0
- package/release-notes/0.44.3.json +82 -0
- package/scripts/hooks/cmate-agent-event.sh +18 -0
- package/.next/server/chunks/1068.js +0 -1
- package/.next/server/chunks/434.js +0 -1
- package/.next/server/chunks/5775.js +0 -1
- package/.next/server/chunks/6474.js +0 -14
- package/.next/server/chunks/650.js +0 -1
- package/.next/server/chunks/6661.js +0 -1
- package/.next/server/chunks/8583.js +0 -1
- package/.next/server/chunks/964.js +0 -1
- package/.next/server/chunks/967.js +0 -1
- package/.next/server/chunks/9882.js +0 -25
- package/.next/static/chunks/591-308072f285c34787.js +0 -1
- package/.next/static/chunks/app/sessions/page-049e06335187aa91.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-040c5f0f585e6812.js +0 -1
- package/.next/static/css/38070d879efa1371.css +0 -1
- package/dist/server/src/lib/cli-tools/index.js +0 -41
- package/dist/server/src/lib/polling/global-session-poller.js +0 -140
- /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_buildManifest.js +0 -0
- /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* How a waiting prompt is shown and answered, decided once (Issue #3184).
|
|
4
|
+
*
|
|
5
|
+
* Before this module every reader of a prompt payload re-derived the same three
|
|
6
|
+
* facts for itself — "can it be answered?", "where are the choices?", "is the
|
|
7
|
+
* answer a keystroke or an API call?" — from `type`, `options`,
|
|
8
|
+
* `decisionOptions`, `decisionId` and `askUserQuestion`. The panel, the phone
|
|
9
|
+
* sheet, the chat surface, Auto-Yes and `wait` each combined them a little
|
|
10
|
+
* differently, and a fix to one surface kept missing the others (#2775 →
|
|
11
|
+
* #2810 → #2822, #3181). {@link derivePromptView} is the one combination; a
|
|
12
|
+
* reader takes its {@link PromptView} and does not look at the raw fields to
|
|
13
|
+
* decide what to show.
|
|
14
|
+
*
|
|
15
|
+
* ## No imports, on purpose
|
|
16
|
+
*
|
|
17
|
+
* The CLI (`tsconfig.cli.json`) compiles with `"paths": {}`, so it can reach a
|
|
18
|
+
* module under `src/lib` by a relative path only when nothing in that module's
|
|
19
|
+
* graph uses the `@/` alias. `types/models` and `session/structured-prompt` both
|
|
20
|
+
* do. The input is therefore a structural type ({@link PromptViewSource}) that
|
|
21
|
+
* every existing prompt shape — `LivePromptData`, `StoredPromptData`, the CLI's
|
|
22
|
+
* own `PromptData` mirror — satisfies without a cast, and this file stays
|
|
23
|
+
* importable from a client component, the server and the CLI alike.
|
|
24
|
+
*
|
|
25
|
+
* ## What it does not replace
|
|
26
|
+
*
|
|
27
|
+
* `isAnswerablePromptData()` (`types/models`) stays: it narrows to the closed
|
|
28
|
+
* `PromptData` union (#1725) for the code that builds an answer body. The two
|
|
29
|
+
* agree by construction — `derivePromptView(x)?.kind === 'screen-choices'`
|
|
30
|
+
* exactly when `isAnswerablePromptData(x)` — and
|
|
31
|
+
* `tests/unit/session/prompt-view-3184.test.ts` holds that over every fixture.
|
|
32
|
+
*
|
|
33
|
+
* @module lib/session/prompt-view
|
|
34
|
+
*/
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.TYPED_TEXT_FIELD_LABEL_PATTERNS = exports.UNCLASSIFIED_PROMPT_VIEW_TYPE = void 0;
|
|
37
|
+
exports.promptHeadingMessage = promptHeadingMessage;
|
|
38
|
+
exports.optionTakesTypedText = optionTakesTypedText;
|
|
39
|
+
exports.readDecisionId = readDecisionId;
|
|
40
|
+
exports.readQuestionChoices = readQuestionChoices;
|
|
41
|
+
exports.readDecisionHeading = readDecisionHeading;
|
|
42
|
+
exports.derivePromptView = derivePromptView;
|
|
43
|
+
exports.readPromptView = readPromptView;
|
|
44
|
+
/**
|
|
45
|
+
* `promptData.type` for a frame nothing could classify. Same value as
|
|
46
|
+
* `UNCLASSIFIED_PROMPT_TYPE` in `types/models`, restated because this module may
|
|
47
|
+
* not import it (see the module note); the test asserts the two are equal.
|
|
48
|
+
*/
|
|
49
|
+
exports.UNCLASSIFIED_PROMPT_VIEW_TYPE = 'unclassified';
|
|
50
|
+
function promptHeadingMessage(heading) {
|
|
51
|
+
switch (heading.kind) {
|
|
52
|
+
case 'question':
|
|
53
|
+
return { text: heading.text };
|
|
54
|
+
case 'approval':
|
|
55
|
+
return heading.toolName
|
|
56
|
+
? { key: 'structuredApprovalTitle', values: { toolName: heading.toolName } }
|
|
57
|
+
: { key: 'structuredApprovalTitleNoTool' };
|
|
58
|
+
case 'agent-question':
|
|
59
|
+
return { key: 'structuredQuestionTitle' };
|
|
60
|
+
case 'unreadable':
|
|
61
|
+
return { key: 'unclassifiedTitle' };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// =============================================================================
|
|
65
|
+
// Field readers (moved from components/worktree/prompt-decision-id, #1932/#2039/#3181)
|
|
66
|
+
// =============================================================================
|
|
67
|
+
/**
|
|
68
|
+
* Labels of the rows measured to BE a text field on screen (Issue #2573).
|
|
69
|
+
*
|
|
70
|
+
* `requiresTextInput` (from {@link TEXT_INPUT_PATTERNS}) reads the WORDS of a
|
|
71
|
+
* label — "tell … what to do differently", "custom", "enter …" — and says the
|
|
72
|
+
* option is about the user's own text. It does not say where typed characters
|
|
73
|
+
* land, and for two rows it flags alike the measured answer is opposite:
|
|
74
|
+
*
|
|
75
|
+
* | row | on screen | free text + Enter |
|
|
76
|
+
* |-----|-----------|-------------------|
|
|
77
|
+
* | Command Code `AskUserQuestion` `Type something...` (#2522) | a `TextInput` | lands in the field — the answer |
|
|
78
|
+
* | Command Code permission `No, tell Command Code what to do differently` | a menu row | ignored; the Enter confirms the highlighted `1. Yes` |
|
|
79
|
+
*
|
|
80
|
+
* The second is how a "No + reason" was delivered as an approval. The same
|
|
81
|
+
* words sit on codex's and copilot's approval rows (codex's also name letter
|
|
82
|
+
* hotkeys, `(y)` / `(p)`), and the generic patterns match inside the command an
|
|
83
|
+
* approval row quotes (`… commands that start with 'npm run custom'`).
|
|
84
|
+
*
|
|
85
|
+
* So this is an allowlist of what was measured, not a denylist of what went
|
|
86
|
+
* wrong: a flagged row is a field only when its label is one of these. Anchored
|
|
87
|
+
* at the start so Command Code's folded description (`Type something... Give me
|
|
88
|
+
* a branch name …`) still matches. Command Code's reader
|
|
89
|
+
* (`tools/command-code/dialog.ts`) marks the same rows with the same expression.
|
|
90
|
+
*
|
|
91
|
+
* The one definition since Issue #3218: `isTypedTextFieldOption` in
|
|
92
|
+
* `lib/detection/prompt-detect-multiple-choice`, whose graph reaches `fs`,
|
|
93
|
+
* reads it through `optionTakesTypedText` below.
|
|
94
|
+
*/
|
|
95
|
+
exports.TYPED_TEXT_FIELD_LABEL_PATTERNS = [
|
|
96
|
+
/^[^\S\n]*type\s+something\b/i,
|
|
97
|
+
];
|
|
98
|
+
/**
|
|
99
|
+
* Whether an option is a text field on screen, so its answer is the typed TEXT
|
|
100
|
+
* rather than its number (Issue #2573). `requiresTextInput` alone is also true
|
|
101
|
+
* for a menu row such as `No, tell Command Code what to do differently`.
|
|
102
|
+
*/
|
|
103
|
+
function optionTakesTypedText(option) {
|
|
104
|
+
return option.requiresTextInput === true
|
|
105
|
+
&& exports.TYPED_TEXT_FIELD_LABEL_PATTERNS.some((pattern) => pattern.test(option.label));
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* The decision id a payload names, or null (Issue #1932). A validating read:
|
|
109
|
+
* absent, empty or not a string is "no addressable decision".
|
|
110
|
+
*/
|
|
111
|
+
function readDecisionId(source) {
|
|
112
|
+
if (!source)
|
|
113
|
+
return null;
|
|
114
|
+
const candidate = source.decisionId;
|
|
115
|
+
return typeof candidate === 'string' && candidate !== '' ? candidate : null;
|
|
116
|
+
}
|
|
117
|
+
function hasDecisionOptions(source) {
|
|
118
|
+
return Array.isArray(source.decisionOptions) && source.decisionOptions.length > 0;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The choices a question offers when it may be answered over the API, or null
|
|
122
|
+
* (Issue #2039). All three must hold: a decision id, exactly one question with
|
|
123
|
+
* a complete label list, and NO approval verdicts on the same payload.
|
|
124
|
+
*/
|
|
125
|
+
function readQuestionChoices(source) {
|
|
126
|
+
if (!source || readDecisionId(source) === null)
|
|
127
|
+
return null;
|
|
128
|
+
if (hasDecisionOptions(source))
|
|
129
|
+
return null;
|
|
130
|
+
const asked = source.askUserQuestion;
|
|
131
|
+
if (!asked || typeof asked.question !== 'string' || asked.question === '')
|
|
132
|
+
return null;
|
|
133
|
+
if (!Array.isArray(asked.labels) || asked.labels.length === 0)
|
|
134
|
+
return null;
|
|
135
|
+
const labels = asked.labels.filter((label) => typeof label === 'string' && label !== '');
|
|
136
|
+
// Partial is worse than none: the numbers are positions in this list.
|
|
137
|
+
if (labels.length !== asked.labels.length)
|
|
138
|
+
return null;
|
|
139
|
+
const questionCount = typeof asked.questionCount === 'number' ? asked.questionCount : 1;
|
|
140
|
+
if (questionCount !== 1)
|
|
141
|
+
return null;
|
|
142
|
+
return {
|
|
143
|
+
question: asked.question,
|
|
144
|
+
labels,
|
|
145
|
+
questionCount,
|
|
146
|
+
...(asked.custom === true ? { custom: true } : {}),
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/** The heading for addressable choices, or null when there is nothing to click (#3181). */
|
|
150
|
+
function readDecisionHeading(source) {
|
|
151
|
+
if (!source || readDecisionId(source) === null)
|
|
152
|
+
return null;
|
|
153
|
+
if (hasDecisionOptions(source)) {
|
|
154
|
+
return {
|
|
155
|
+
kind: 'approval',
|
|
156
|
+
toolName: typeof source.toolName === 'string' && source.toolName ? source.toolName : null,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
return readQuestionChoices(source) ? { kind: 'question' } : null;
|
|
160
|
+
}
|
|
161
|
+
// =============================================================================
|
|
162
|
+
// The view
|
|
163
|
+
// =============================================================================
|
|
164
|
+
function screenChoices(source) {
|
|
165
|
+
const options = Array.isArray(source.options) ? source.options : [];
|
|
166
|
+
const choices = [];
|
|
167
|
+
for (const option of options) {
|
|
168
|
+
if (typeof option === 'string') {
|
|
169
|
+
// yes_no: `['yes', 'no']`, answered by the word itself.
|
|
170
|
+
choices.push({
|
|
171
|
+
answer: option,
|
|
172
|
+
label: option,
|
|
173
|
+
isDefault: source.defaultOption === option,
|
|
174
|
+
takesText: false,
|
|
175
|
+
});
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
if (!option || typeof option !== 'object')
|
|
179
|
+
continue;
|
|
180
|
+
const o = option;
|
|
181
|
+
if (typeof o.number !== 'number' || typeof o.label !== 'string')
|
|
182
|
+
continue;
|
|
183
|
+
choices.push({
|
|
184
|
+
answer: String(o.number),
|
|
185
|
+
label: o.label,
|
|
186
|
+
isDefault: o.isDefault === true,
|
|
187
|
+
takesText: optionTakesTypedText({ label: o.label, requiresTextInput: o.requiresTextInput === true }),
|
|
188
|
+
...(typeof o.description === 'string' ? { description: o.description } : {}),
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
return choices;
|
|
192
|
+
}
|
|
193
|
+
function decisionChoices(decisionOptions) {
|
|
194
|
+
if (!Array.isArray(decisionOptions))
|
|
195
|
+
return [];
|
|
196
|
+
const choices = [];
|
|
197
|
+
for (const option of decisionOptions) {
|
|
198
|
+
const o = option;
|
|
199
|
+
if (!o || typeof o.number !== 'number' || typeof o.label !== 'string')
|
|
200
|
+
continue;
|
|
201
|
+
choices.push({ answer: String(o.number), label: o.label, isDefault: false, takesText: false });
|
|
202
|
+
}
|
|
203
|
+
return choices;
|
|
204
|
+
}
|
|
205
|
+
const UNREADABLE_VIEW = {
|
|
206
|
+
kind: 'unreadable',
|
|
207
|
+
heading: { kind: 'unreadable' },
|
|
208
|
+
choices: [],
|
|
209
|
+
multiSelect: false,
|
|
210
|
+
freeText: null,
|
|
211
|
+
decisionId: null,
|
|
212
|
+
apiTarget: null,
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Decide how a prompt payload is shown and answered (Issue #3184).
|
|
216
|
+
*
|
|
217
|
+
* Evaluated in this order (design §2.3):
|
|
218
|
+
* 1. any `type` but the unclassified sentinel → `screen-choices`;
|
|
219
|
+
* 2. unclassified + decision id + approval verdicts → `api-choices` (approval);
|
|
220
|
+
* 3. unclassified + decision id + one complete question → `api-choices` (question);
|
|
221
|
+
* 4. every other unclassified payload — no id, #1932's options-without-id half
|
|
222
|
+
* state, and both stored history records — → `unreadable`.
|
|
223
|
+
*
|
|
224
|
+
* @param source - A live or stored prompt payload, or null
|
|
225
|
+
* @returns The view, or null when there is no prompt
|
|
226
|
+
*/
|
|
227
|
+
function derivePromptView(source) {
|
|
228
|
+
if (source == null)
|
|
229
|
+
return null;
|
|
230
|
+
if (source.type !== exports.UNCLASSIFIED_PROMPT_VIEW_TYPE) {
|
|
231
|
+
const choices = screenChoices(source);
|
|
232
|
+
return {
|
|
233
|
+
kind: 'screen-choices',
|
|
234
|
+
heading: { kind: 'question', text: typeof source.question === 'string' ? source.question : '' },
|
|
235
|
+
choices,
|
|
236
|
+
multiSelect: source.multiSelect === true,
|
|
237
|
+
freeText: choices.some((choice) => choice.takesText) ? { via: 'screen' } : null,
|
|
238
|
+
decisionId: null,
|
|
239
|
+
apiTarget: null,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
const decisionId = readDecisionId(source);
|
|
243
|
+
if (decisionId !== null && hasDecisionOptions(source)) {
|
|
244
|
+
const choices = decisionChoices(source.decisionOptions);
|
|
245
|
+
if (choices.length > 0) {
|
|
246
|
+
return {
|
|
247
|
+
kind: 'api-choices',
|
|
248
|
+
heading: {
|
|
249
|
+
kind: 'approval',
|
|
250
|
+
toolName: typeof source.toolName === 'string' && source.toolName ? source.toolName : null,
|
|
251
|
+
},
|
|
252
|
+
choices,
|
|
253
|
+
multiSelect: false,
|
|
254
|
+
freeText: null,
|
|
255
|
+
decisionId,
|
|
256
|
+
apiTarget: 'approval',
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
const question = readQuestionChoices(source);
|
|
261
|
+
if (decisionId !== null && question !== null) {
|
|
262
|
+
return {
|
|
263
|
+
kind: 'api-choices',
|
|
264
|
+
heading: { kind: 'agent-question', text: question.question },
|
|
265
|
+
choices: question.labels.map((label, index) => ({
|
|
266
|
+
answer: String(index + 1),
|
|
267
|
+
label,
|
|
268
|
+
isDefault: false,
|
|
269
|
+
takesText: false,
|
|
270
|
+
})),
|
|
271
|
+
multiSelect: false,
|
|
272
|
+
freeText: question.custom === true ? { via: 'api' } : null,
|
|
273
|
+
decisionId,
|
|
274
|
+
apiTarget: 'question',
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
return UNREADABLE_VIEW;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* The view a `current-output` payload carries, falling back to deriving it.
|
|
281
|
+
*
|
|
282
|
+
* `??`, not `||`: a server from before #3184 sends no `promptView`, and its
|
|
283
|
+
* absence means "this daemon does not publish the field" — the same function
|
|
284
|
+
* then decides from `promptData`, so old and new servers reach the same answer.
|
|
285
|
+
*/
|
|
286
|
+
function readPromptView(payload) {
|
|
287
|
+
if (!payload)
|
|
288
|
+
return null;
|
|
289
|
+
return payload.promptView ?? derivePromptView(payload.promptData);
|
|
290
|
+
}
|
|
@@ -33,11 +33,46 @@
|
|
|
33
33
|
*/
|
|
34
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
35
|
exports.STRUCTURED_SEND_GUARD_ENV = exports.STRUCTURED_SEND_BLOCK_MAX_AGE_MS = void 0;
|
|
36
|
+
exports.isApiAnswerableStructuredWait = isApiAnswerableStructuredWait;
|
|
37
|
+
exports.isApiAnswerableWaitNow = isApiAnswerableWaitNow;
|
|
36
38
|
exports.structuredWaitingReason = structuredWaitingReason;
|
|
37
39
|
exports.resolvePromptWaiting = resolvePromptWaiting;
|
|
38
40
|
exports.peekPromptWaiting = peekPromptWaiting;
|
|
39
41
|
const agent_event_state_1 = require("../../lib/session/agent-event-state");
|
|
40
42
|
const status_mapping_1 = require("../../lib/session/status-mapping");
|
|
43
|
+
const structured_prompt_1 = require("../../lib/session/structured-prompt");
|
|
44
|
+
/**
|
|
45
|
+
* Whether a structured wait is one the app answers over the agent's own API
|
|
46
|
+
* (Issue #3184, design §6-2).
|
|
47
|
+
*
|
|
48
|
+
* The three conjuncts `composePromptData` in `current-output-builder` requires
|
|
49
|
+
* — by calling this function (Issue #3215) — before it publishes a
|
|
50
|
+
* `decisionId` on the live payload (its `addressableDecisionId`):
|
|
51
|
+
* the record came from `Notification(permission_prompt)` rather than being a
|
|
52
|
+
* `permission-request` forecast, the tool's event source names each decision
|
|
53
|
+
* by id (`eventIdentity: 'permission-id'`), and the record carries such an id.
|
|
54
|
+
* That is exactly when `derivePromptView` reads the payload as `api-choices` —
|
|
55
|
+
* an approval or a question the panel draws buttons for — so the waiting kind
|
|
56
|
+
* published beside it says `prompt` too, instead of the scraper's `menu` /
|
|
57
|
+
* `unclassified` and the push body's "check the terminal".
|
|
58
|
+
*
|
|
59
|
+
* @param structured - The structured record, or null
|
|
60
|
+
* @param eventIdentity - `capabilities.eventIdentity` of the tool's event source
|
|
61
|
+
*/
|
|
62
|
+
function isApiAnswerableStructuredWait(structured, eventIdentity) {
|
|
63
|
+
return (structured !== null &&
|
|
64
|
+
structured.source === 'notification' &&
|
|
65
|
+
eventIdentity === 'permission-id' &&
|
|
66
|
+
(0, structured_prompt_1.isAddressableDecision)(structured.decisionId));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* {@link isApiAnswerableStructuredWait} for the record as it stands now — a
|
|
70
|
+
* read, like {@link peekPromptWaiting}: nothing is released or corroborated.
|
|
71
|
+
* Kept here so the structured record is still read in this one module (#1737).
|
|
72
|
+
*/
|
|
73
|
+
function isApiAnswerableWaitNow(worktreeId, cliToolId, instanceId, eventIdentity) {
|
|
74
|
+
return isApiAnswerableStructuredWait((0, agent_event_state_1.getStructuredPromptWaiting)(worktreeId, cliToolId, instanceId), eventIdentity);
|
|
75
|
+
}
|
|
41
76
|
/**
|
|
42
77
|
* How long a structured-only dialog may keep refusing sends (Issue #1737).
|
|
43
78
|
*
|
|
@@ -88,7 +88,9 @@ exports.TURN_ACTIVITY_EVENTS = new Set([
|
|
|
88
88
|
* bound that stops a lost `Stop` from asserting `running` forever.
|
|
89
89
|
* - `scraper_evidence` — the terminal frame said "done" on
|
|
90
90
|
* {@link SCRAPER_COMPLETION_POLLS} consecutive polls with positive evidence.
|
|
91
|
-
* The screen, not the agent.
|
|
91
|
+
* The screen, not the agent. For a codex hooks source only when the frame
|
|
92
|
+
* shows a turn whose `Stop` is not coming — an interrupt (Issue #3337, see
|
|
93
|
+
* `lib/detection/turn-abandoned`).
|
|
92
94
|
* - `resync_idle` — a source that can be re-read (`capabilities.resync`) was
|
|
93
95
|
* asked after a dropped transport and answered "not busy".
|
|
94
96
|
* - `generation` — the process that owned the turn was replaced.
|
|
@@ -401,7 +401,7 @@ async function sendUserMessage(db, params) {
|
|
|
401
401
|
(0, db_1.updateLastUserMessage)(db, worktreeId, content, userMessageTimestamp);
|
|
402
402
|
// 8. Clear in-progress message ID (session state managed by savePendingAssistantResponse).
|
|
403
403
|
(0, db_1.clearInProgressMessageId)(db, worktreeId, cliToolId, instanceId);
|
|
404
|
-
logger.info('cleared-in-progress-message
|
|
404
|
+
logger.info('cleared-in-progress-message');
|
|
405
405
|
// 9. Start polling for the CLI tool's response.
|
|
406
406
|
(0, response_poller_1.startPolling)(worktreeId, cliToolId, instanceId);
|
|
407
407
|
return { ok: true, message };
|
|
@@ -73,13 +73,11 @@ const node_async_hooks_1 = require("node:async_hooks");
|
|
|
73
73
|
const auto_yes_state_1 = require("../../lib/auto-yes-state");
|
|
74
74
|
const status_reason_1 = require("../../lib/detection/status-reason");
|
|
75
75
|
const session_starting_config_1 = require("../../config/session-starting-config");
|
|
76
|
-
const
|
|
77
|
-
|
|
76
|
+
const global_state_1 = require("../global-state");
|
|
77
|
+
const records = (0, global_state_1.getOrInitGlobal)('__sessionStartingRecords', () => new Map());
|
|
78
78
|
/** On `globalThis` like the map, so tokens keep growing across route bundles. */
|
|
79
|
-
const tokenSeq =
|
|
80
|
-
|
|
81
|
-
const tokenScope = globalThis.__sessionStartingTokenScope ??
|
|
82
|
-
(globalThis.__sessionStartingTokenScope = new node_async_hooks_1.AsyncLocalStorage());
|
|
79
|
+
const tokenSeq = (0, global_state_1.getOrInitGlobal)('__sessionStartingTokenSeq', () => ({ last: 0 }));
|
|
80
|
+
const tokenScope = (0, global_state_1.getOrInitGlobal)('__sessionStartingTokenScope', () => new node_async_hooks_1.AsyncLocalStorage());
|
|
83
81
|
/**
|
|
84
82
|
* A token for a launch about to begin (Issue #3195). Strictly greater than
|
|
85
83
|
* every token issued before it.
|
|
@@ -55,6 +55,7 @@ exports.clearLastKnownStatuses = clearLastKnownStatuses;
|
|
|
55
55
|
// at exactly that moment (`worktree-status-helper.test.ts` does).
|
|
56
56
|
const status_reason_1 = require("../../lib/detection/status-reason");
|
|
57
57
|
const agent_event_state_1 = require("../../lib/session/agent-event-state");
|
|
58
|
+
const global_state_1 = require("../global-state");
|
|
58
59
|
/**
|
|
59
60
|
* The reasons that mean "no rule could read this frame" (Issue #2011).
|
|
60
61
|
*
|
|
@@ -110,8 +111,7 @@ function isUnclassifiedFrame(status, reason) {
|
|
|
110
111
|
* whole job is to be honest about age.
|
|
111
112
|
*/
|
|
112
113
|
exports.LAST_KNOWN_STATUS_TTL_MS = agent_event_state_1.STRUCTURED_STATE_MAX_AGE_MS;
|
|
113
|
-
const latches =
|
|
114
|
-
(globalThis.__lastKnownStatusByKey = new Map());
|
|
114
|
+
const latches = (0, global_state_1.getOrInitGlobal)('__lastKnownStatusByKey', () => new Map());
|
|
115
115
|
/**
|
|
116
116
|
* Cap on retained latches, so a long-lived server cannot grow one per worktree
|
|
117
117
|
* per tool per instance forever.
|