commandmate 0.47.2 → 0.48.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +215 -215
- package/.next/app-path-routes-manifest.json +41 -41
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_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.js +3 -3
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route_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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
- 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 -1
- 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]/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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -103
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_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_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 +12 -12
- 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 +41 -41
- package/.next/server/chunks/1191.js +11 -4
- package/.next/server/chunks/1501.js +1 -1
- package/.next/server/chunks/1601.js +2 -2
- package/.next/server/chunks/1656.js +2 -2
- package/.next/server/chunks/1945.js +3 -3
- package/.next/server/chunks/1990.js +103 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2422.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/2534.js +1 -1
- package/.next/server/chunks/255.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3505.js +2 -2
- package/.next/server/chunks/4248.js +1 -1
- package/.next/server/chunks/4280.js +1 -0
- package/.next/server/chunks/5209.js +1 -1
- 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 +9 -8
- package/.next/server/chunks/6781.js +1 -1
- package/.next/server/chunks/720.js +103 -0
- package/.next/server/chunks/7604.js +2 -0
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/8581.js +7 -7
- package/.next/server/chunks/8728.js +3 -3
- package/.next/server/chunks/8791.js +1 -1
- package/.next/server/chunks/8807.js +19 -18
- package/.next/server/chunks/8918.js +2 -104
- package/.next/server/chunks/936.js +1 -1
- package/.next/server/chunks/9390.js +1 -1
- package/.next/server/chunks/9540.js +1 -1
- package/.next/server/chunks/9627.js +3 -3
- package/.next/server/chunks/9731.js +2 -2
- 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/2099-c3e0ab70a1b95dd3.js +1 -0
- package/.next/static/chunks/{2407-a6533805a86d05bd.js → 2407-26139a8a2f1adbe8.js} +1 -1
- package/.next/static/chunks/{2619-04bc32f026a0d946.js → 2619-a305ad4810f1393a.js} +1 -1
- package/.next/static/chunks/{2863-6a07ec82fb52f4dd.js → 2863-f0121af1cbbedb3b.js} +1 -1
- package/.next/static/chunks/{8165-263172c17ae8e8c3.js → 8165-c68b3dc844210e6a.js} +1 -1
- package/.next/static/chunks/8407-35bbfc84793d7004.js +1 -0
- package/.next/static/chunks/9079-406b84d3cc891a87.js +1 -0
- package/.next/static/chunks/app/{layout-538d8d2746ad1588.js → layout-46b4cbf07520d9b6.js} +1 -1
- package/.next/static/chunks/app/sessions/page-fb241bed579c67aa.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-cbc7749a33450cc5.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/{page-373ea37b16d930c7.js → page-c601f3b3ece6557e.js} +1 -1
- package/.next/trace +13 -13
- package/dist/cli/commands/auto-yes.d.ts +24 -0
- package/dist/cli/commands/auto-yes.d.ts.map +1 -1
- package/dist/cli/commands/auto-yes.js +73 -3
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +10 -1
- package/dist/cli/commands/prompt.d.ts.map +1 -1
- package/dist/cli/commands/prompt.js +5 -3
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +15 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +101 -13
- 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 +27 -0
- package/dist/cli/types/api-responses.d.ts +116 -2
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +4 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/utils/resource-resolvers.d.ts +0 -18
- package/dist/cli/utils/resource-resolvers.d.ts.map +1 -1
- package/dist/cli/utils/resource-resolvers.js +1 -51
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts +54 -2
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -1
- package/dist/lib/polling/auto-yes-suppression-reason.js +33 -2
- package/dist/lib/prompt-observation/types.d.ts +13 -0
- package/dist/lib/prompt-observation/types.d.ts.map +1 -1
- package/dist/server/locales/en/worktree.json +2 -1
- package/dist/server/locales/ja/worktree.json +2 -1
- package/dist/server/src/lib/auto-yes-poller-answer-target.js +38 -0
- package/dist/server/src/lib/auto-yes-poller-keys.js +35 -0
- package/dist/server/src/lib/auto-yes-poller-session-presence.js +26 -0
- package/dist/server/src/lib/auto-yes-poller-tick.js +233 -0
- package/dist/server/src/lib/auto-yes-poller.js +337 -376
- package/dist/server/src/lib/auto-yes-state.js +50 -2
- package/dist/server/src/lib/cli-tools/submit-verified-sender.js +107 -14
- package/dist/server/src/lib/db/chat-db.js +5 -1
- package/dist/server/src/lib/db/verification-db.js +23 -2
- package/dist/server/src/lib/detection/option-recommendation.js +120 -0
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice-approval-context.js +290 -0
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +396 -350
- package/dist/server/src/lib/detection/prompt-detector.js +92 -21
- package/dist/server/src/lib/detection/prompt-screen-key.js +60 -0
- package/dist/server/src/lib/detection/tools/antigravity/dialog.js +158 -35
- package/dist/server/src/lib/detection/tools/claude/detect.js +111 -10
- package/dist/server/src/lib/detection/tools/command-code/dialog.js +67 -0
- package/dist/server/src/lib/detection/tools/dialog-block.js +16 -0
- package/dist/server/src/lib/detection/waiting-screen-reading.js +98 -0
- package/dist/server/src/lib/hooks/permission-decision-service.js +7 -0
- package/dist/server/src/lib/polling/auto-yes-confirm-page.js +2 -2
- package/dist/server/src/lib/polling/auto-yes-confirmation-ledger-types.js +3 -0
- package/dist/server/src/lib/polling/auto-yes-confirmation-ledger.js +34 -3
- package/dist/server/src/lib/polling/auto-yes-decision-state.js +195 -0
- package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +139 -10
- package/dist/server/src/lib/polling/auto-yes-enter-fallback.js +14 -0
- package/dist/server/src/lib/polling/auto-yes-manual-answer.js +122 -0
- package/dist/server/src/lib/polling/auto-yes-option-effect.js +157 -0
- package/dist/server/src/lib/polling/auto-yes-policy.js +11 -5
- package/dist/server/src/lib/polling/auto-yes-poller-capture.js +15 -2
- package/dist/server/src/lib/polling/auto-yes-poller-generation.js +42 -1
- package/dist/server/src/lib/polling/auto-yes-poller-receipt-log.js +42 -5
- package/dist/server/src/lib/polling/auto-yes-poller-state.js +147 -49
- package/dist/server/src/lib/polling/auto-yes-poller-steps.js +172 -2
- package/dist/server/src/lib/polling/auto-yes-prompt-suppression.js +2 -2
- package/dist/server/src/lib/polling/auto-yes-question-choice.js +57 -0
- package/dist/server/src/lib/polling/auto-yes-resolver.js +96 -21
- package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +33 -2
- package/dist/server/src/lib/polling/auto-yes-suppression-state.js +25 -1
- package/dist/server/src/lib/polling/prompt-screen-reading.js +232 -0
- package/dist/server/src/lib/polling/response-checker-dialog-gate.js +39 -0
- package/dist/server/src/lib/polling/response-checker.js +133 -43
- package/dist/server/src/lib/prompt-answer-sender.js +104 -10
- package/dist/server/src/lib/push/notification-dedup.js +15 -2
- package/dist/server/src/lib/push/prompt-card-state.js +140 -19
- package/dist/server/src/lib/push/prompt-push-gate.js +158 -12
- package/dist/server/src/lib/push/push-sender.js +23 -3
- package/dist/server/src/lib/push/resolution-push-notifier.js +14 -0
- package/dist/server/src/lib/push/waiting-push-notifier.js +139 -17
- package/dist/server/src/lib/realtime/terminal-broadcast.js +16 -0
- package/dist/server/src/lib/session/agent-event-state.js +25 -5
- package/dist/server/src/lib/session/agent-event-turn.js +140 -46
- package/dist/server/src/lib/session/cli-session.js +21 -2
- package/dist/server/src/lib/session/current-output-builder.js +64 -11
- package/dist/server/src/lib/session/send-attempt-state.js +23 -7
- package/dist/server/src/lib/session/waiting-episode-binding-observation.js +289 -0
- package/dist/server/src/lib/session/waiting-episode-binding-resolve.js +38 -0
- package/dist/server/src/lib/session/waiting-episode-binding.js +276 -0
- package/dist/server/src/lib/session/waiting-episode-state.js +307 -17
- package/dist/server/src/lib/session/waiting-episode-verdict.js +174 -0
- package/dist/server/src/lib/tmux/tmux-capture-cache.js +76 -11
- package/dist/server/src/lib/tmux/tmux.js +54 -9
- package/dist/server/src/lib/verification/gate-runner.js +162 -13
- package/dist/server/src/lib/verification/machine-lock.js +5 -0
- package/dist/server/src/lib/ws-server.js +18 -3
- package/dist/server/src/types/auto-yes-answer-mode.js +38 -0
- package/dist/server/src/types/auto-yes-decision.js +61 -0
- package/dist/server/src/types/auto-yes.js +6 -0
- package/dist/server/src/types/prompt-reading.js +32 -0
- package/dist/types/auto-yes-answer-mode.d.ts +35 -0
- package/dist/types/auto-yes-answer-mode.d.ts.map +1 -0
- package/dist/types/auto-yes-answer-mode.js +38 -0
- package/docs/en/user-guide/webapp-guide.md +33 -4
- package/package.json +1 -1
- package/public/sw.js +76 -4
- package/release-notes/0.48.0.json +57 -0
- package/.next/server/chunks/1559.js +0 -2
- package/.next/server/chunks/2460.js +0 -1
- package/.next/server/chunks/5595.js +0 -1
- package/.next/server/chunks/610.js +0 -1
- package/.next/static/chunks/602-1c1488959215e140.js +0 -1
- package/.next/static/chunks/8407-155f84e5ba05f1d5.js +0 -1
- package/.next/static/chunks/9079-24f9fa549ed298f1.js +0 -1
- package/.next/static/chunks/app/sessions/page-e02f1adb1d1c1ccc.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-46aced20b2b1c010.js +0 -1
- /package/.next/static/{etorRtpxbQqqOzdUeXdw2 → PTlAswXLq8PAe2vUJ8dVP}/_buildManifest.js +0 -0
- /package/.next/static/{etorRtpxbQqqOzdUeXdw2 → PTlAswXLq8PAe2vUJ8dVP}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Auto-Yes poller: what one tick reads off its frame and records about it —
|
|
4
|
+
* the prompt reading, the no-prompt bookkeeping, the decision recorder and the
|
|
5
|
+
* ledger's labels (Issue #3893: split out of `auto-yes-poller.ts`).
|
|
6
|
+
*
|
|
7
|
+
* Does not import `auto-yes-poller.ts` (no cycle). Nor `polling/response-checker`:
|
|
8
|
+
* that module reaches the poller back through `auto-yes-manager`, so the frame
|
|
9
|
+
* reader is handed in by the poller (`detectPromptOnCleanFrame` below).
|
|
10
|
+
*
|
|
11
|
+
* @module lib/auto-yes-poller-tick
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.readPromptFrame = readPromptFrame;
|
|
15
|
+
exports.captureTopOf = captureTopOf;
|
|
16
|
+
exports.noteNoPromptOnScreen = noteNoPromptOnScreen;
|
|
17
|
+
exports.tickDecisionRecorder = tickDecisionRecorder;
|
|
18
|
+
exports.ledgerCallOf = ledgerCallOf;
|
|
19
|
+
exports.attemptResultOfThrow = attemptResultOfThrow;
|
|
20
|
+
exports.answerBasisOf = answerBasisOf;
|
|
21
|
+
const antigravity_receipt_episodes_1 = require("./polling/antigravity-receipt-episodes");
|
|
22
|
+
const frame_1 = require("./detection/tools/frame");
|
|
23
|
+
const dialog_1 = require("./detection/tools/antigravity/dialog");
|
|
24
|
+
const auto_yes_decision_state_1 = require("./polling/auto-yes-decision-state");
|
|
25
|
+
const auto_yes_suppression_state_1 = require("./polling/auto-yes-suppression-state");
|
|
26
|
+
const manager_1 = require("./cli-tools/manager");
|
|
27
|
+
const auto_yes_state_1 = require("./auto-yes-state");
|
|
28
|
+
const auto_yes_poller_state_1 = require("./polling/auto-yes-poller-state");
|
|
29
|
+
const auto_yes_prompt_suppression_1 = require("./polling/auto-yes-prompt-suppression");
|
|
30
|
+
const auto_yes_poller_generation_1 = require("./polling/auto-yes-poller-generation");
|
|
31
|
+
const auto_yes_poller_receipt_log_1 = require("./polling/auto-yes-poller-receipt-log");
|
|
32
|
+
const prompt_screen_reading_1 = require("./polling/prompt-screen-reading");
|
|
33
|
+
const auto_yes_confirmation_ledger_1 = require("./polling/auto-yes-confirmation-ledger");
|
|
34
|
+
/**
|
|
35
|
+
* Step 1 of `detectAndRespondToPrompt`: normalise the tick's frame once and
|
|
36
|
+
* read the prompt on it.
|
|
37
|
+
*/
|
|
38
|
+
function readPromptFrame(worktreeId, cliToolId, cleanOutput, precomputedLines, instanceId, rawOutput, captureExtent, detectPromptOnCleanFrame) {
|
|
39
|
+
const receiptScope = { worktreeId, instanceId };
|
|
40
|
+
// Issue #3183: the ONE frame every judgement below reads — normalised once,
|
|
41
|
+
// from the capture as captured (the input-box markers are rule rows the
|
|
42
|
+
// cleaned spelling has blanked), and handed as the same object to the
|
|
43
|
+
// prompt reading, the codex launch guards and the dialog gate. That is what
|
|
44
|
+
// makes "the status chain and Auto-Yes read the same live region" a fact
|
|
45
|
+
// rather than a hope: there is no second normalisation to disagree with.
|
|
46
|
+
const frame = (0, frame_1.normalizeFrame)(rawOutput ?? cleanOutput, cliToolId);
|
|
47
|
+
// Issue #3767: bracket the read so the receipt gate can tell when an agy
|
|
48
|
+
// dialog first appeared, not only what time this tick is.
|
|
49
|
+
if (cliToolId === 'antigravity')
|
|
50
|
+
(0, antigravity_receipt_episodes_1.beginAntigravityFrameRead)(worktreeId, instanceId);
|
|
51
|
+
const promptDetection = detectPromptOnCleanFrame(cleanOutput, cliToolId, precomputedLines, rawOutput, receiptScope, frame);
|
|
52
|
+
if (cliToolId === 'antigravity')
|
|
53
|
+
(0, antigravity_receipt_episodes_1.endAntigravityFrameRead)(worktreeId, instanceId);
|
|
54
|
+
return {
|
|
55
|
+
frame,
|
|
56
|
+
promptDetection: withCaptureTop(promptDetection, cliToolId, rawOutput ?? cleanOutput, captureExtent),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Issue #3881 (review P2-1): an approval target whose upward scan reached the
|
|
61
|
+
* top of a capture that filled its window is marked `top-unknown`, so the
|
|
62
|
+
* resolver does not answer on a deny miss. Without the window (a direct
|
|
63
|
+
* caller, a test) the capture's extent is not known and nothing is added, as
|
|
64
|
+
* before.
|
|
65
|
+
*/
|
|
66
|
+
function withCaptureTop(detection, cliToolId, capture, captureExtent) {
|
|
67
|
+
const captureTop = captureTopOf(capture, captureExtent, cliToolId);
|
|
68
|
+
return captureTop === undefined ? detection : (0, prompt_screen_reading_1.withCaptureTopCompleteness)(detection, captureTop);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Where a poller capture's first row sits (Issue #3881 review P2-1): on a
|
|
72
|
+
* scrollback pane the capture is the last `windowLines` rows, so one
|
|
73
|
+
* that came back with fewer rows holds the pane's whole history, and one that
|
|
74
|
+
* filled the window may be cut at its top (#1670's `isCaptureWindowSaturated`)
|
|
75
|
+
* unless the capture layer said it was not (the fourth review's N5: `headCut`);
|
|
76
|
+
* an alternate-screen pane has no history and is read off its screen (the
|
|
77
|
+
* second review's N1, `captureTopOf` in `prompt-screen-reading`), unless the
|
|
78
|
+
* window cut it (the third review's N4: `headCut`).
|
|
79
|
+
* Undefined when the window is not known.
|
|
80
|
+
*/
|
|
81
|
+
function captureTopOf(capture, captureExtent, cliToolId) {
|
|
82
|
+
return captureExtent === undefined
|
|
83
|
+
? undefined
|
|
84
|
+
: (0, prompt_screen_reading_1.captureTopOf)(capture, captureExtent.windowLines, cliToolId, captureExtent.headCut);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* What `detectAndRespondToPrompt` does to the poller state on a frame with no
|
|
88
|
+
* prompt to answer, before it returns `no_prompt`.
|
|
89
|
+
*
|
|
90
|
+
* @returns agy's dialog the ungated reading still sees past the receipt gate
|
|
91
|
+
* (Issue #3821: the decision published for it), else null
|
|
92
|
+
*/
|
|
93
|
+
function noteNoPromptOnScreen(tick) {
|
|
94
|
+
const { worktreeId, cliToolId, instanceId, compositeKey, epoch, pollerState, frame, promptDetection, cleanOutput, precomputedLines, rawOutput, captureExtent, detectPromptOnCleanFrame, } = tick;
|
|
95
|
+
// Issue #3880: a person's hold, which agy's dialog past the receipt window
|
|
96
|
+
// keeps (below) — the gated reading's "no prompt" is not the dialog gone.
|
|
97
|
+
const personHold = cliToolId === 'antigravity' ? (0, auto_yes_poller_state_1.getPartialAnswer)(compositeKey, epoch) : null;
|
|
98
|
+
// The same for a person's send still in flight: one at the dialog the
|
|
99
|
+
// ungated reading still shows is not expired, so its outcome, coming back
|
|
100
|
+
// unknown, still holds the dialog. The ungated reading is taken once.
|
|
101
|
+
// Issue #3881: with the same capture-top reading as the tick's prompt, so the
|
|
102
|
+
// receipt log judges the contract on the frame's known top. The screen key
|
|
103
|
+
// (`partialAnswerScreenKey`) does not read `approvalTargetCompleteness`, so
|
|
104
|
+
// the in-flight sends are matched as before.
|
|
105
|
+
let ungated;
|
|
106
|
+
const readWithoutGate = () => (ungated ??= withCaptureTop(detectPromptOnCleanFrame(cleanOutput, cliToolId, precomputedLines, rawOutput), cliToolId, rawOutput ?? cleanOutput, captureExtent));
|
|
107
|
+
const personSends = cliToolId === 'antigravity' ? (0, auto_yes_poller_state_1.personSendsInFlight)(compositeKey, epoch) : [];
|
|
108
|
+
const dialogUp = personSends.length > 0 ? readWithoutGate() : null;
|
|
109
|
+
const dialogUpKey = dialogUp?.isPrompt && dialogUp.promptData ? (0, auto_yes_poller_state_1.partialAnswerScreenKey)(dialogUp.promptData) : null;
|
|
110
|
+
(0, auto_yes_poller_state_1.forgetPartialAnswer)(compositeKey, undefined, new Set(dialogUpKey === null
|
|
111
|
+
? []
|
|
112
|
+
: personSends.filter((attempt) => (0, auto_yes_poller_state_1.partialAnswerCovers)(attempt.screenKey, dialogUpKey))));
|
|
113
|
+
pollerState.lastAnsweredPromptKey = null;
|
|
114
|
+
pollerState.lastAnsweredAt = null;
|
|
115
|
+
// Issue #3757: agy's trust screen reads as no prompt (unnumbered: neither
|
|
116
|
+
// reader takes it), but it is one nobody here answers — record why, still
|
|
117
|
+
// as `no_prompt`. Before the warn key is cleared, so the WARN stays once
|
|
118
|
+
// per screen.
|
|
119
|
+
// Issue #3820: the trust screen records itself in the ledger when it records
|
|
120
|
+
// its reason (`suppressAntigravityTrustScreen`).
|
|
121
|
+
if (cliToolId === 'antigravity' &&
|
|
122
|
+
(0, auto_yes_prompt_suppression_1.suppressAntigravityTrustScreen)(worktreeId, instanceId, pollerState, frame, manager_1.CLIToolManager.getInstance().getTool(cliToolId).getSessionName(worktreeId, instanceId))) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
pollerState.lastSkipWarnKey = null;
|
|
126
|
+
if (cliToolId === 'antigravity' && !promptDetection.isPrompt) {
|
|
127
|
+
const seen = (0, auto_yes_poller_receipt_log_1.logIfWithheldForWantOfReceipt)(worktreeId, instanceId, compositeKey, readWithoutGate, personHold?.byPerson ? personHold.screenKey : null);
|
|
128
|
+
if (personHold?.byPerson && seen?.keptPersonHold) {
|
|
129
|
+
(0, auto_yes_poller_state_1.keepPartialAnswerByPerson)(compositeKey, personHold, (0, auto_yes_poller_state_1.partialAnswerScreenKey)(seen.promptData));
|
|
130
|
+
}
|
|
131
|
+
// Issue #3820: past the receipt window the gated reading says "no prompt"
|
|
132
|
+
// while the dialog is still up. The ungated reading says it is, so the
|
|
133
|
+
// ledger keeps the same confirmation (and the same withheld interval)
|
|
134
|
+
// rather than closing it on every tick outside the window.
|
|
135
|
+
if (seen !== null) {
|
|
136
|
+
const scope = { compositeKey, worktreeId, cliToolId, instanceId };
|
|
137
|
+
(0, auto_yes_confirmation_ledger_1.observeLedgerScreen)(scope, (0, auto_yes_poller_state_1.ledgerScreenKey)(seen.promptData), seen.promptData.type, ledgerCallOf(cliToolId, worktreeId, instanceId));
|
|
138
|
+
if (seen.reason !== null)
|
|
139
|
+
(0, auto_yes_confirmation_ledger_1.withholdLedgerConfirmation)(scope, seen.reason);
|
|
140
|
+
}
|
|
141
|
+
return seen;
|
|
142
|
+
}
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Issue #3821: records what one tick decided about the prompt it read, for
|
|
147
|
+
* `current-output` to publish (`autoYesDecision`, see
|
|
148
|
+
* `polling/auto-yes-decision-state`). Tied to the grant and the session epoch
|
|
149
|
+
* the tick read under, and to the confirmation (the prompt, and for agy the
|
|
150
|
+
* hook call its receipt was accepted for); a tick that lost its generation
|
|
151
|
+
* (#3706) records nothing, because the grant or the session it decided for is
|
|
152
|
+
* gone.
|
|
153
|
+
*/
|
|
154
|
+
function tickDecisionRecorder(tick) {
|
|
155
|
+
const { worktreeId, cliToolId, instanceId, compositeKey, promptData, epoch, generation, startedAt } = tick;
|
|
156
|
+
const grantOf = () => generation?.grant ?? (0, auto_yes_state_1.getAutoYesState)(worktreeId, cliToolId, instanceId);
|
|
157
|
+
const callId = ledgerCallOf(cliToolId, worktreeId, instanceId).callId ?? null;
|
|
158
|
+
const record = (state, reason) => {
|
|
159
|
+
if (generation !== undefined && !(0, auto_yes_poller_generation_1.isTickCurrent)(generation))
|
|
160
|
+
return;
|
|
161
|
+
(0, auto_yes_decision_state_1.recordAutoYesDecision)(compositeKey, { state, reason, promptData, callId, grant: grantOf(), epoch });
|
|
162
|
+
};
|
|
163
|
+
return {
|
|
164
|
+
answering: () => record('answering', null),
|
|
165
|
+
// The duplicate guard's "answered recently" compares the question only, so
|
|
166
|
+
// it is not evidence this confirmation is the one answered: `answering`
|
|
167
|
+
// stands only when the record the send made is about this confirmation,
|
|
168
|
+
// under the same grant and session (review 2). Otherwise nothing stands.
|
|
169
|
+
reaffirmAnswering: () => {
|
|
170
|
+
if (generation !== undefined && !(0, auto_yes_poller_generation_1.isTickCurrent)(generation)) {
|
|
171
|
+
(0, auto_yes_decision_state_1.forgetAutoYesDecision)(compositeKey);
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
(0, auto_yes_decision_state_1.reaffirmAutoYesAnswering)(compositeKey, { promptData, callId, grant: grantOf(), epoch });
|
|
175
|
+
},
|
|
176
|
+
// The reason the step that withheld it recorded on this tick (the #1684
|
|
177
|
+
// record), else the step's own: a stop the policy record never carries.
|
|
178
|
+
withheld: (fallback) => {
|
|
179
|
+
const recorded = (0, auto_yes_suppression_state_1.getLastPolicySuppression)(worktreeId, cliToolId, instanceId);
|
|
180
|
+
record('withheld', recorded !== null && recorded.at >= startedAt ? recorded.reason : fallback);
|
|
181
|
+
},
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Issue #3820 (design §2.4, PR 3): the agy call the receipt episode on screen
|
|
186
|
+
* was accepted for, for the ledger to tie the confirmation to. Asked after the
|
|
187
|
+
* frame was judged; read only to record, and never throws.
|
|
188
|
+
*/
|
|
189
|
+
function ledgerCallOf(cliToolId, worktreeId, instanceId) {
|
|
190
|
+
if (cliToolId !== 'antigravity')
|
|
191
|
+
return {};
|
|
192
|
+
try {
|
|
193
|
+
const callId = (0, antigravity_receipt_episodes_1.getAntigravityAcceptedReceiptCallId)(worktreeId, instanceId);
|
|
194
|
+
return callId === null ? {} : { callId };
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
// Recording only: a failure here ties nothing and changes nothing else.
|
|
198
|
+
return {};
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Issue #3820: the result of a send that threw, as the ledger counts it.
|
|
203
|
+
* `keysSent` is what the sender said (#3706); a throw that says nothing is a
|
|
204
|
+
* failure whose keys may or may not be on the pane.
|
|
205
|
+
*/
|
|
206
|
+
function attemptResultOfThrow(keysSent) {
|
|
207
|
+
if (keysSent === true)
|
|
208
|
+
return 'partial';
|
|
209
|
+
if (keysSent === false)
|
|
210
|
+
return 'no-keys-sent';
|
|
211
|
+
return 'failed';
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Issue #3820: the evidence an answer on the screen path is given on (design
|
|
215
|
+
* §7 PR 1). A tool's own dialog detector vouched for the frame: `L3`. The
|
|
216
|
+
* gate did not judge it (a `legacy` tool, a non-multiple-choice prompt): the
|
|
217
|
+
* generic reading alone, `L4`.
|
|
218
|
+
*
|
|
219
|
+
* agy's gate is `legacy` (`gated: false`), yet its prompts are read by its own
|
|
220
|
+
* reader first (`detectPromptOnCleanFrame` returns that reader's result
|
|
221
|
+
* whenever it reads the frame). Which reader it was is not on the detection
|
|
222
|
+
* result, so it is asked of the same reader on the same text here — for the
|
|
223
|
+
* label only; the answer was decided before this is called. Read by agy's own
|
|
224
|
+
* reader, and through the receipt gate (the tick's reading carried the
|
|
225
|
+
* receipt scope): `L3`, with `receiptAccepted` on the attempt.
|
|
226
|
+
*/
|
|
227
|
+
function answerBasisOf(prompt, cleanOutput) {
|
|
228
|
+
if (prompt.cliToolId === 'antigravity') {
|
|
229
|
+
return (0, dialog_1.detectAntigravityNumberedDialogPrompt)(cleanOutput) !== null ? 'L3' : 'L4';
|
|
230
|
+
}
|
|
231
|
+
const gate = prompt.dialogGate;
|
|
232
|
+
return gate !== undefined && gate.gated && gate.allowed && gate.dialog !== null ? 'L3' : 'L4';
|
|
233
|
+
}
|