commandmate 0.33.2 → 0.34.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.
Files changed (370) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +160 -160
  3. package/.next/app-path-routes-manifest.json +28 -28
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update-check/route.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  15. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  16. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  18. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  19. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/messages/route.js +1 -1
  21. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/session/route.js +1 -1
  24. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/start/route.js +2 -2
  27. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/terminal/route.js +3 -3
  30. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/assistant/tools/route.js +1 -1
  33. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  34. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/capabilities/route.js +1 -1
  39. package/.next/server/app/api/capabilities/route.js.nft.json +1 -1
  40. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  49. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  50. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  52. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  53. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  55. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  56. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/push/escalation/route.js +1 -1
  60. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/push/vapid/route.js +1 -1
  63. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  65. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  66. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/relays/route.js +1 -1
  68. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  69. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  75. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  76. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/clone/route.js +1 -1
  78. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  79. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/restore/route.js +1 -1
  82. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/route.js +1 -1
  85. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/scan/route.js +1 -1
  88. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/sync/route.js +1 -1
  91. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  95. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  96. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/skills/[id]/route.js +1 -1
  100. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/skills/installations/route.js +1 -1
  103. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  104. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/skills/route.js +1 -1
  108. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  109. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  120. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  123. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  126. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  132. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  163. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  166. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  169. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  181. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  198. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +2 -2
  200. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  201. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  205. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  216. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  218. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  219. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  221. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  222. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  226. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  244. package/.next/server/app/api/worktrees/route.js +1 -1
  245. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  246. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  247. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  248. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  249. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  251. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/page.js +1 -1
  253. package/.next/server/app/page_client-reference-manifest.js +1 -1
  254. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  256. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  257. package/.next/server/app/sessions/page.js +1 -1
  258. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  259. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  260. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  261. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  262. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  263. package/.next/server/app/worktrees/[id]/page.js +10 -10
  264. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  265. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  266. package/.next/server/app-paths-manifest.json +28 -28
  267. package/.next/server/chunks/1049.js +1 -0
  268. package/.next/server/chunks/1501.js +6 -2
  269. package/.next/server/chunks/1886.js +3 -3
  270. package/.next/server/chunks/2119.js +1 -1
  271. package/.next/server/chunks/2404.js +1 -1
  272. package/.next/server/chunks/2445.js +1 -1
  273. package/.next/server/chunks/3123.js +1 -1
  274. package/.next/server/chunks/3241.js +1 -1
  275. package/.next/server/chunks/3323.js +1 -1
  276. package/.next/server/chunks/3480.js +2 -2
  277. package/.next/server/chunks/4443.js +1 -1
  278. package/.next/server/chunks/4802.js +1 -1
  279. package/.next/server/chunks/5164.js +1 -1
  280. package/.next/server/chunks/5571.js +1 -1
  281. package/.next/server/chunks/595.js +2 -2
  282. package/.next/server/chunks/6130.js +1 -0
  283. package/.next/server/chunks/6285.js +1 -1
  284. package/.next/server/chunks/6286.js +7 -7
  285. package/.next/server/chunks/6337.js +1 -1
  286. package/.next/server/chunks/650.js +1 -1
  287. package/.next/server/chunks/663.js +1 -1
  288. package/.next/server/chunks/6661.js +1 -1
  289. package/.next/server/chunks/6677.js +25 -0
  290. package/.next/server/chunks/6781.js +1 -1
  291. package/.next/server/chunks/7075.js +1 -0
  292. package/.next/server/chunks/7905.js +1 -1
  293. package/.next/server/chunks/8583.js +1 -0
  294. package/.next/server/chunks/8918.js +7 -5
  295. package/.next/server/chunks/9080.js +1 -0
  296. package/.next/server/chunks/9627.js +1 -1
  297. package/.next/server/chunks/964.js +1 -0
  298. package/.next/server/middleware-manifest.json +5 -5
  299. package/.next/server/pages/500.html +1 -1
  300. package/.next/server/server-reference-manifest.json +1 -1
  301. package/.next/static/chunks/2053-9ac860ab4e92ac89.js +1 -0
  302. package/.next/static/chunks/2652-18b8fea64413467e.js +1 -0
  303. package/.next/static/chunks/{4718-441a2af91f0374e9.js → 4718-2d9f0397a8f931c4.js} +1 -1
  304. package/.next/static/chunks/6022-7a7d1760fc9814c7.js +1 -0
  305. package/.next/static/chunks/{8361-9bb887203c456edb.js → 8361-0142beb59be2abf3.js} +1 -1
  306. package/.next/static/chunks/app/{page-022090bf6f932818.js → page-26a42881c8648cd3.js} +1 -1
  307. package/.next/static/chunks/app/sessions/page-a3ab6f122ec60d5a.js +1 -0
  308. package/.next/static/chunks/app/worktrees/[id]/page-a39ec2a0732d11a6.js +1 -0
  309. package/.next/static/css/b09bede85744e1cf.css +1 -0
  310. package/.next/trace +13 -13
  311. package/dist/cli/commands/ask.d.ts.map +1 -1
  312. package/dist/cli/commands/ask.js +11 -2
  313. package/dist/cli/commands/respond.d.ts.map +1 -1
  314. package/dist/cli/commands/respond.js +8 -4
  315. package/dist/cli/commands/send.d.ts.map +1 -1
  316. package/dist/cli/commands/send.js +18 -0
  317. package/dist/cli/commands/wait.d.ts +18 -3
  318. package/dist/cli/commands/wait.d.ts.map +1 -1
  319. package/dist/cli/commands/wait.js +137 -2
  320. package/dist/cli/docs/agent-operations.d.ts +2 -2
  321. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  322. package/dist/cli/docs/agent-operations.js +41 -1
  323. package/dist/cli/utils/session-target.d.ts +23 -6
  324. package/dist/cli/utils/session-target.d.ts.map +1 -1
  325. package/dist/cli/utils/session-target.js +33 -5
  326. package/dist/server/locales/en/worktree.json +30 -4
  327. package/dist/server/locales/ja/worktree.json +30 -4
  328. package/dist/server/src/config/schedule-config.js +45 -3
  329. package/dist/server/src/lib/cli-tools/antigravity.js +95 -10
  330. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +377 -16
  331. package/dist/server/src/lib/cli-tools/vibe-local.js +10 -0
  332. package/dist/server/src/lib/cmate-parser.js +8 -1
  333. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +140 -19
  334. package/dist/server/src/lib/detection/tools/claude/detect.js +13 -2
  335. package/dist/server/src/lib/detection/tools/claude/picker-chrome.js +239 -0
  336. package/dist/server/src/lib/detection/tools/claude/prompt.js +74 -6
  337. package/dist/server/src/lib/hooks/hook-settings-generator.js +61 -1
  338. package/dist/server/src/lib/hooks/sources/antigravity/history.js +302 -27
  339. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +103 -0
  340. package/dist/server/src/lib/hooks/sources/claude/history.js +391 -34
  341. package/dist/server/src/lib/hooks/sources/claude/transcript.js +91 -0
  342. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +114 -11
  343. package/dist/server/src/lib/polling/response-checker.js +82 -3
  344. package/dist/server/src/lib/polling/structured-history-gate.js +68 -4
  345. package/dist/server/src/lib/schedule-manager.js +178 -19
  346. package/dist/server/src/lib/session/agent-session-lifecycle.js +31 -1
  347. package/dist/server/src/lib/session/ask-user-question-prompt.js +4 -2
  348. package/dist/server/src/lib/session/claude-executor.js +33 -2
  349. package/dist/server/src/lib/session/resolve-session-target.js +37 -9
  350. package/dist/server/src/lib/session/session-generation-archive.js +194 -0
  351. package/dist/server/src/lib/tasks/contract-message.js +83 -9
  352. package/dist/server/src/lib/tasks/contract-parser.js +2 -0
  353. package/dist/server/src/lib/verification/env-clean-gate.js +81 -4
  354. package/dist/server/src/types/agent-transcript.js +143 -1
  355. package/package.json +1 -1
  356. package/.next/server/chunks/1068.js +0 -1
  357. package/.next/server/chunks/153.js +0 -1
  358. package/.next/server/chunks/4299.js +0 -1
  359. package/.next/server/chunks/6808.js +0 -1
  360. package/.next/server/chunks/6838.js +0 -1
  361. package/.next/server/chunks/7366.js +0 -5
  362. package/.next/server/chunks/7875.js +0 -25
  363. package/.next/static/chunks/2053-3f299a7a2c7d6767.js +0 -1
  364. package/.next/static/chunks/6022-2fa0b5a82d4ce7b6.js +0 -1
  365. package/.next/static/chunks/8772-9be53a530950d804.js +0 -1
  366. package/.next/static/chunks/app/sessions/page-584adf11ae51df10.js +0 -1
  367. package/.next/static/chunks/app/worktrees/[id]/page-38edcd53e51f53b0.js +0 -1
  368. package/.next/static/css/acd46e25427a2080.css +0 -1
  369. /package/.next/static/{0a4qrU8WdUwQrlO4mfLMu → gniPBCKoXtbIOQey8kNcx}/_buildManifest.js +0 -0
  370. /package/.next/static/{0a4qrU8WdUwQrlO4mfLMu → gniPBCKoXtbIOQey8kNcx}/_ssgManifest.js +0 -0
@@ -15,7 +15,10 @@
15
15
  * compatibility path for a daemon older than the endpoint, reported as
16
16
  * `resolvedBy: 'client-fallback'` with a warning on stderr. It is deliberately
17
17
  * NOT kept in step with the server — adding the primary-anchor stage to it would
18
- * be growing the second authority back (DR2-008).
18
+ * be growing the second authority back (DR2-008). The one exception is a
19
+ * refusal, not a choice: an `--agent` that contradicts an unregistered
20
+ * tool-named instance is reported exactly as the server reports it (Issue
21
+ * #2487), because a copy that obeys it sends where the server would refuse to.
19
22
  */
20
23
  import type { ApiClient } from './api-client';
21
24
  /**
@@ -24,11 +27,22 @@ import type { ApiClient } from './api-client';
24
27
  * CLI keeps its own copy of API shapes (see api-responses.ts).
25
28
  */
26
29
  export type SessionTargetResolvedBy = 'explicit' | 'roster' | 'primary' | 'worktree-default' | 'fallback' | 'client-fallback';
27
- /** An explicit `--agent` that the roster contradicts. */
30
+ /**
31
+ * An explicit `--agent` that the instance's declaration contradicts: its roster
32
+ * row, or — with no row — its own id when that id is a CLI tool id (the
33
+ * primary-instance anchor, #868; Issue #2487).
34
+ */
28
35
  export interface SessionTargetConflict {
29
36
  instanceId: string;
37
+ /** The tool the instance is declared as; for a primary-anchor conflict, the id itself. */
30
38
  rosterCliTool: string;
31
39
  requestedCliTool: string;
40
+ /**
41
+ * Set when the declaration is the primary-instance anchor rather than a
42
+ * roster row. Mirrors the server's field of the same name, which
43
+ * `resolve-target` sends; absent for a roster contradiction.
44
+ */
45
+ primaryAnchor?: true;
32
46
  }
33
47
  export interface CliSessionTarget {
34
48
  /**
@@ -56,15 +70,18 @@ export interface ResolveSessionTargetOptions {
56
70
  * @param client - API client aimed at the server
57
71
  * @param worktreeId - Worktree ID
58
72
  * @param options - `--instance` and `--agent` as the user gave them
59
- * @returns The resolved target, with `conflict` set when `--agent` contradicts the roster
73
+ * @returns The resolved target, with `conflict` set when `--agent` contradicts
74
+ * the roster or the primary-instance anchor
60
75
  * @throws ApiError when the server's capabilities cannot be determined (auth
61
76
  * failure, redirect, non-JSON body) — those are never treated as "old server"
62
77
  */
63
78
  export declare function resolveSessionTarget(client: ApiClient, worktreeId: string, options?: ResolveSessionTargetOptions): Promise<CliSessionTarget>;
64
79
  /**
65
- * The sentence shown when the roster and `--agent` disagree. Names both
66
- * declarations and the three ways out, because only the operator knows which of
67
- * the two is wrong.
80
+ * The sentence shown when the instance's declaration and `--agent` disagree.
81
+ * Names both declarations and the three ways out, because only the operator
82
+ * knows which of the two is wrong. A primary-anchor conflict has no roster row
83
+ * to re-register — `instances add --id <tool>` answers "already exists" — so its
84
+ * third way out is another instance.
68
85
  */
69
86
  export declare function describeSessionTargetConflict(conflict: SessionTargetConflict): string;
70
87
  //# sourceMappingURL=session-target.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-target.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/session-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAC/B,UAAU,GACV,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,UAAU,GACV,iBAAiB,CAAC;AAEtB,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,0EAA0E;IAC1E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,uBAAuB,CAAC;IACpC,gFAAgF;IAChF,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAuBD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,gBAAgB,CAAC,CAM3B;AA6ED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAMrF"}
1
+ {"version":3,"file":"session-target.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/session-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAC/B,UAAU,GACV,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,UAAU,GACV,iBAAiB,CAAC;AAEtB;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,0EAA0E;IAC1E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,uBAAuB,CAAC;IACpC,gFAAgF;IAChF,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAuBD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,gBAAgB,CAAC,CAM3B;AA4FD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAcrF"}
@@ -16,12 +16,16 @@
16
16
  * compatibility path for a daemon older than the endpoint, reported as
17
17
  * `resolvedBy: 'client-fallback'` with a warning on stderr. It is deliberately
18
18
  * NOT kept in step with the server — adding the primary-anchor stage to it would
19
- * be growing the second authority back (DR2-008).
19
+ * be growing the second authority back (DR2-008). The one exception is a
20
+ * refusal, not a choice: an `--agent` that contradicts an unregistered
21
+ * tool-named instance is reported exactly as the server reports it (Issue
22
+ * #2487), because a copy that obeys it sends where the server would refuse to.
20
23
  */
21
24
  Object.defineProperty(exports, "__esModule", { value: true });
22
25
  exports.resolveSessionTarget = resolveSessionTarget;
23
26
  exports.describeSessionTargetConflict = describeSessionTargetConflict;
24
27
  const types_1 = require("../types");
28
+ const cli_tool_ids_1 = require("../config/cli-tool-ids");
25
29
  const agent_instances_1 = require("./agent-instances");
26
30
  const server_capabilities_1 = require("./server-capabilities");
27
31
  /**
@@ -40,7 +44,8 @@ function warnClientFallback() {
40
44
  * @param client - API client aimed at the server
41
45
  * @param worktreeId - Worktree ID
42
46
  * @param options - `--instance` and `--agent` as the user gave them
43
- * @returns The resolved target, with `conflict` set when `--agent` contradicts the roster
47
+ * @returns The resolved target, with `conflict` set when `--agent` contradicts
48
+ * the roster or the primary-instance anchor
44
49
  * @throws ApiError when the server's capabilities cannot be determined (auth
45
50
  * failure, redirect, non-JSON body) — those are never treated as "old server"
46
51
  */
@@ -73,6 +78,13 @@ async function resolveViaServer(client, worktreeId, options) {
73
78
  * primary-anchor stage and no worktree-default read — an old server applies
74
79
  * those itself when the CLI sends no `cliToolId`, and reimplementing them here
75
80
  * is how the second authority grew in the first place (DR2-008).
81
+ *
82
+ * The one thing borrowed from the server's chain is its refusal (Issue #2487):
83
+ * with no roster row, an `--agent` that differs from a tool-named instance id
84
+ * is the contradiction the server reports, and it is reported here with the
85
+ * same `conflict`. It resolves nothing — without `--agent` that id still
86
+ * resolves to nothing here — but taking the `--agent` would start an ad-hoc
87
+ * session under another tool's primary id, which the server now refuses.
76
88
  */
77
89
  async function resolveLocally(client, worktreeId, options) {
78
90
  const { instanceId, requestedCliTool } = options;
@@ -95,6 +107,14 @@ async function resolveLocally(client, worktreeId, options) {
95
107
  return degraded(requestedCliTool);
96
108
  }
97
109
  if (!registered) {
110
+ if (requestedCliTool && (0, cli_tool_ids_1.isCliToolId)(instanceId) && requestedCliTool !== instanceId) {
111
+ return degraded(instanceId, {
112
+ instanceId,
113
+ rosterCliTool: instanceId,
114
+ requestedCliTool,
115
+ primaryAnchor: true,
116
+ });
117
+ }
98
118
  return degraded(requestedCliTool);
99
119
  }
100
120
  if (requestedCliTool && requestedCliTool !== registered.cliTool) {
@@ -107,11 +127,19 @@ async function resolveLocally(client, worktreeId, options) {
107
127
  return degraded(registered.cliTool);
108
128
  }
109
129
  /**
110
- * The sentence shown when the roster and `--agent` disagree. Names both
111
- * declarations and the three ways out, because only the operator knows which of
112
- * the two is wrong.
130
+ * The sentence shown when the instance's declaration and `--agent` disagree.
131
+ * Names both declarations and the three ways out, because only the operator
132
+ * knows which of the two is wrong. A primary-anchor conflict has no roster row
133
+ * to re-register — `instances add --id <tool>` answers "already exists" — so its
134
+ * third way out is another instance.
113
135
  */
114
136
  function describeSessionTargetConflict(conflict) {
137
+ if (conflict.primaryAnchor) {
138
+ return (`instance '${conflict.instanceId}' is the primary instance of ${conflict.rosterCliTool}, `
139
+ + `but --agent ${conflict.requestedCliTool} was given. `
140
+ + `Drop --agent, pass --agent ${conflict.rosterCliTool}, or target a ${conflict.requestedCliTool} instance instead `
141
+ + `(e.g. --instance ${conflict.requestedCliTool}).`);
142
+ }
115
143
  return (`instance '${conflict.instanceId}' is registered as ${conflict.rosterCliTool}, `
116
144
  + `but --agent ${conflict.requestedCliTool} was given. `
117
145
  + `Drop --agent, pass --agent ${conflict.rosterCliTool}, or re-register the instance.`);
@@ -334,7 +334,10 @@
334
334
  "trace": "Copy the current trace id for support debugging",
335
335
  "tree": "Browse the session tree and jump to any point in it",
336
336
  "unshare": "Stop sharing the conversation",
337
- "worktree": "Create, list, or switch git worktrees",
337
+ "worktree": {
338
+ "codex": "Start or continue a conversation in a new worktree",
339
+ "command-code": "Create, list, or switch git worktrees"
340
+ },
338
341
  "skill-doctor": "Show what each of your skills costs in context and how often it gets used, so you can find skills to turn off"
339
342
  }
340
343
  },
@@ -436,12 +439,13 @@
436
439
  "endSessionFor": "End session for {name}",
437
440
  "filesEmptyHint": "Open a file to enable this",
438
441
  "historyAllSplitsHint": "Applies to all splits",
439
- "historyChatOnlyHint": "Every split shows Chat, which has no history column",
440
442
  "maximizeSplit": "Maximize {split}",
441
443
  "maximizeFocusedSplit": "Maximize the focused split",
442
444
  "restoreSplits": "Restore the split layout",
443
445
  "maximizeShortcutHint": "⌘ / Ctrl + Shift + Enter",
444
- "maximizedStatus": "Split {split} maximized"
446
+ "maximizedStatus": "Split {split} maximized",
447
+ "loading": "Loading…",
448
+ "sessionEnded": "The session has ended. Send a message to start a new session."
445
449
  },
446
450
  "surfaceMode": {
447
451
  "groupLabel": "Output surface for {split}",
@@ -478,6 +482,7 @@
478
482
  "empty": "No messages yet",
479
483
  "emptyHint": "Sending a message starts the session",
480
484
  "openSearch": "Search this conversation",
485
+ "turnBoundary": "Next turn",
481
486
  "thinking": {
482
487
  "summary": "Thinking · {count}",
483
488
  "expand": "Show the reasoning",
@@ -503,7 +508,25 @@
503
508
  "awaitingAnswer": "Awaiting an answer",
504
509
  "unclassified": "Dialog not recognized",
505
510
  "resolved": "Resolved",
506
- "unlabeled": "Approval dialog"
511
+ "unlabeled": "Approval dialog",
512
+ "unlabeledQuestion": "Question",
513
+ "autoAnswered": "Auto-answered",
514
+ "submitConfirmation": "Answer submission",
515
+ "confirmation": "Submission: {outcome}",
516
+ "summaryQuestions": "Questions · {count}",
517
+ "summaryConfirmations": "Submissions · {count}",
518
+ "summaryConfirmationsOnly": "Answer submissions · {count}",
519
+ "summarySeparator": " / ",
520
+ "expandQuestions": "Show the questions",
521
+ "collapseQuestions": "Hide the questions",
522
+ "expandMixed": "Show the questions and approvals",
523
+ "collapseMixed": "Hide the questions and approvals"
524
+ },
525
+ "previousSession": {
526
+ "summary": "Previous session ({count})",
527
+ "expand": "Show the previous session",
528
+ "collapse": "Hide the previous session",
529
+ "hint": "You can view the previous conversation in History."
507
530
  }
508
531
  },
509
532
  "unsentComposer": {
@@ -920,6 +943,9 @@
920
943
  "toolbarLabel": "Dialog answer keys",
921
944
  "caption": "Answer"
922
945
  },
946
+ "promptResponse": {
947
+ "refused": "Your answer was not sent because the dialog has changed. Please check the screen."
948
+ },
923
949
  "dismissPanelKeys": {
924
950
  "toolbarLabel": "Close this screen",
925
951
  "close": "Close (Esc)",
@@ -334,7 +334,10 @@
334
334
  "trace": "サポート調査用に現在のトレース ID をコピー",
335
335
  "tree": "セッションツリーを辿って任意の地点へジャンプ",
336
336
  "unshare": "会話の共有を停止",
337
- "worktree": "git worktree の作成・一覧・切り替え",
337
+ "worktree": {
338
+ "codex": "新しい worktree で会話を開始・再開する",
339
+ "command-code": "git worktree の作成・一覧・切り替え"
340
+ },
338
341
  "skill-doctor": "各スキルのコンテキスト消費量と使用頻度を表示し、オフにするスキルを特定"
339
342
  }
340
343
  },
@@ -436,12 +439,13 @@
436
439
  "endSessionFor": "{name}のセッションを終了",
437
440
  "filesEmptyHint": "ファイルを開くと有効になります",
438
441
  "historyAllSplitsHint": "すべての split に適用",
439
- "historyChatOnlyHint": "すべての split がチャット表示のため、履歴列はありません",
440
442
  "maximizeSplit": "{split} を最大化",
441
443
  "maximizeFocusedSplit": "フォーカス中の split を最大化",
442
444
  "restoreSplits": "分割表示に戻す",
443
445
  "maximizeShortcutHint": "⌘ / Ctrl + Shift + Enter",
444
- "maximizedStatus": "{split} を最大化中"
446
+ "maximizedStatus": "{split} を最大化中",
447
+ "loading": "読込中...",
448
+ "sessionEnded": "セッションは終了しています。送信すると新しいセッションが起動します。"
445
449
  },
446
450
  "surfaceMode": {
447
451
  "groupLabel": "{split} の出力面",
@@ -478,6 +482,7 @@
478
482
  "empty": "まだメッセージはありません",
479
483
  "emptyHint": "送信するとセッションが起動します",
480
484
  "openSearch": "この会話を検索",
485
+ "turnBoundary": "ここから次のターン",
481
486
  "thinking": {
482
487
  "summary": "思考 {count} 件",
483
488
  "expand": "思考を開く",
@@ -503,7 +508,25 @@
503
508
  "awaitingAnswer": "応答待ち",
504
509
  "unclassified": "判別できないダイアログ",
505
510
  "resolved": "応答済み",
506
- "unlabeled": "承認ダイアログ"
511
+ "unlabeled": "承認ダイアログ",
512
+ "unlabeledQuestion": "質問",
513
+ "autoAnswered": "自動回答",
514
+ "submitConfirmation": "質問の送信確認",
515
+ "confirmation": "送信確認: {outcome}",
516
+ "summaryQuestions": "質問 {count} 件",
517
+ "summaryConfirmations": "送信確認 {count} 件",
518
+ "summaryConfirmationsOnly": "質問の送信確認 {count} 件",
519
+ "summarySeparator": "・",
520
+ "expandQuestions": "質問を開く",
521
+ "collapseQuestions": "質問を閉じる",
522
+ "expandMixed": "質問と承認を開く",
523
+ "collapseMixed": "質問と承認を閉じる"
524
+ },
525
+ "previousSession": {
526
+ "summary": "前回のセッション({count} 件)",
527
+ "expand": "前回のセッションを開く",
528
+ "collapse": "前回のセッションを閉じる",
529
+ "hint": "前回の会話は履歴で参照できます。"
507
530
  }
508
531
  },
509
532
  "unsentComposer": {
@@ -920,6 +943,9 @@
920
943
  "toolbarLabel": "ダイアログへの回答キー",
921
944
  "caption": "回答"
922
945
  },
946
+ "promptResponse": {
947
+ "refused": "ダイアログの状態が変わったため送信できませんでした。画面を確認してください。"
948
+ },
923
949
  "dismissPanelKeys": {
924
950
  "toolbarLabel": "この画面を閉じる",
925
951
  "close": "閉じる (Esc)",
@@ -10,7 +10,7 @@
10
10
  * [S4-014] UUID v4 format validation
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.UUID_V4_PATTERN = exports.DEFAULT_PERMISSIONS = exports.NO_PERMISSION_FLAGS = exports.OPENCODE_PERMISSIONS = exports.VIBE_LOCAL_PERMISSIONS = exports.GEMINI_PERMISSIONS = exports.COMMAND_CODE_PERMISSIONS = exports.ANTIGRAVITY_PERMISSIONS = exports.COPILOT_PERMISSIONS = exports.CODEX_SANDBOXES = exports.CLAUDE_PERMISSIONS = exports.MAX_SCHEDULE_CRON_LENGTH = exports.MAX_SCHEDULE_MESSAGE_LENGTH = exports.MAX_SCHEDULE_NAME_LENGTH = void 0;
13
+ exports.UUID_V4_PATTERN = exports.DEFAULT_PERMISSIONS = exports.NO_PERMISSION_FLAGS = exports.OPENCODE_PERMISSIONS = exports.VIBE_LOCAL_PERMISSIONS = exports.GEMINI_PERMISSIONS = exports.COMMAND_CODE_SCHEDULE_PERMISSIONS = exports.COMMAND_CODE_YOLO_PERMISSION = exports.COMMAND_CODE_PERMISSIONS = exports.ANTIGRAVITY_PERMISSIONS = exports.COPILOT_PERMISSIONS = exports.CODEX_SANDBOXES = exports.CLAUDE_PERMISSIONS = exports.MAX_SCHEDULE_CRON_LENGTH = exports.MAX_SCHEDULE_MESSAGE_LENGTH = exports.MAX_SCHEDULE_NAME_LENGTH = void 0;
14
14
  exports.getPermissionOptionsForTool = getPermissionOptionsForTool;
15
15
  exports.isValidUuidV4 = isValidUuidV4;
16
16
  // =============================================================================
@@ -62,6 +62,41 @@ exports.COMMAND_CODE_PERMISSIONS = [
62
62
  'auto-accept',
63
63
  'dont-ask',
64
64
  ];
65
+ /**
66
+ * The value that means `--yolo` in the Permission column (Issue #2454).
67
+ *
68
+ * Not a `--permission-mode` value — it is the flag name, the same trick
69
+ * {@link COPILOT_PERMISSIONS} plays with `allow-all-tools` / `yolo`. Named so
70
+ * the branch in `buildCliArgs` reads as a comparison against a vocabulary
71
+ * entry rather than against a bare string.
72
+ */
73
+ exports.COMMAND_CODE_YOLO_PERMISSION = 'yolo';
74
+ /**
75
+ * What the CMATE.md Permission column accepts for command-code (Issue #2454).
76
+ *
77
+ * {@link COMMAND_CODE_PERMISSIONS} is what `--permission-mode` accepts; this is
78
+ * what a *schedule* may say, and the two are different sets because `--yolo`
79
+ * lives on its own axis. The column is modelled on copilot's, where the cell
80
+ * holds a flag name (`allow-all-tools` / `yolo`) rather than a mode.
81
+ *
82
+ * ## Why `yolo` is first and is the default
83
+ *
84
+ * Measured on the 1.53.0 bundle: `commandcode -p …` injects a
85
+ * `print-permission-gate` mod unless `--yolo` was passed, and that mod answers
86
+ * `edit_file` / `write_file` / `shell_command` / `monitor_command` /
87
+ * `kill_shell` with `block: true`. `--permission-mode` does not reach the gate
88
+ * at all — every one of the five values leaves print mode read-only. The block
89
+ * does not fail the run: it ends exit 0 with `subtype: "success"`, so the
90
+ * execution log says the schedule succeeded and nothing was written.
91
+ *
92
+ * Before this Issue the column had no spelling for `--yolo`, so the parser
93
+ * filled an empty cell with `'default'` and `buildCliArgs`'s `--yolo` branch
94
+ * was unreachable from a schedule (#2454).
95
+ */
96
+ exports.COMMAND_CODE_SCHEDULE_PERMISSIONS = [
97
+ exports.COMMAND_CODE_YOLO_PERMISSION,
98
+ ...exports.COMMAND_CODE_PERMISSIONS,
99
+ ];
65
100
  /** Allowed permission values for gemini CLI (no permission flags) */
66
101
  exports.GEMINI_PERMISSIONS = [];
67
102
  /** Allowed permission values for vibe-local CLI (no permission flags) */
@@ -108,7 +143,11 @@ exports.DEFAULT_PERMISSIONS = {
108
143
  opencode: '',
109
144
  copilot: 'allow-all-tools',
110
145
  antigravity: '--dangerously-skip-permissions',
111
- 'command-code': 'default',
146
+ // Issue #2454: `yolo`, not `default` -- see COMMAND_CODE_SCHEDULE_PERMISSIONS.
147
+ // Every `--permission-mode` value leaves `commandcode -p` read-only, and the
148
+ // run still reports success, so an unattended schedule that omits the column
149
+ // would look like it worked and change nothing.
150
+ 'command-code': exports.COMMAND_CODE_YOLO_PERMISSION,
112
151
  };
113
152
  /**
114
153
  * Resolve the allowed Permission dropdown options for a CLI tool (Issue #824).
@@ -144,7 +183,10 @@ function getPermissionOptionsForTool(cliToolId) {
144
183
  case 'antigravity':
145
184
  return exports.ANTIGRAVITY_PERMISSIONS;
146
185
  case 'command-code':
147
- return exports.COMMAND_CODE_PERMISSIONS;
186
+ // Issue #2454: the six-value column vocabulary, not the five
187
+ // `--permission-mode` choices -- the dropdown has to be able to offer
188
+ // `yolo`, which is the only value that lets print mode write.
189
+ return exports.COMMAND_CODE_SCHEDULE_PERMISSIONS;
148
190
  case 'gemini':
149
191
  return exports.GEMINI_PERMISSIONS;
150
192
  case 'vibe-local':
@@ -8,14 +8,19 @@
8
8
  * conversation area (grows downward) | bare "> " input box | status bar
9
9
  * The status bar reads "? for shortcuts ... <model>" when idle and
10
10
  * "esc to cancel ..." while generating. Patterns confirmed on a real machine.
11
+ * agy 1.2.1 leaves the idle half of that bar blank after a turn that used a
12
+ * tool (Issue #2478), so readiness is read off the input box — see
13
+ * {@link isAntigravityReady}.
11
14
  */
12
15
  Object.defineProperty(exports, "__esModule", { value: true });
13
16
  exports.AntigravityTool = void 0;
17
+ exports.isAntigravityReady = isAntigravityReady;
14
18
  const base_1 = require("./base");
15
19
  const tmux_1 = require("../tmux/tmux");
16
20
  const submit_verified_sender_1 = require("./submit-verified-sender");
17
21
  const tmux_capture_cache_1 = require("../tmux/tmux-capture-cache");
18
22
  const cli_patterns_1 = require("../detection/cli-patterns");
23
+ const frame_1 = require("../detection/tools/frame");
19
24
  const sources_1 = require("../../lib/hooks/sources");
20
25
  const agent_session_lifecycle_1 = require("../../lib/session/agent-session-lifecycle");
21
26
  const logger_1 = require("../../lib/logger");
@@ -51,10 +56,14 @@ const ANTIGRAVITY_INIT_MAX_ATTEMPTS = 30;
51
56
  /** Timeout for waiting for the prompt before sending a message. */
52
57
  const ANTIGRAVITY_PROMPT_WAIT_TIMEOUT_MS = 15000;
53
58
  /**
54
- * Idle REPL footer marker. agy shows "? for shortcuts" in the status bar ONLY
55
- * when the input prompt is live and ready not during the startup trust dialog
56
- * (which shows "↑/↓ Navigate · enter Confirm") nor while generating (which shows
57
- * "esc to cancel"). So this is a reliable "ready" signal. (Confirmed on machine.)
59
+ * agy's own word for "idle", drawn on the status row under the input box
60
+ * ("? for shortcuts <model>"). While generating the same row reads "esc to
61
+ * cancel"; the trust screen and the dialogs draw their own footers instead.
62
+ *
63
+ * Issue #2478: sufficient, no longer required. agy 1.2.1 does not redraw it
64
+ * after a turn that used a tool — the row keeps only the right-aligned model
65
+ * label (`tests/fixtures/antigravity-live-2478/after-tool-turn.txt`) — and a
66
+ * send that waited for it timed out on every later turn of that session.
58
67
  */
59
68
  const ANTIGRAVITY_READY_FOOTER_PATTERN = /\?\s+for\s+shortcuts/;
60
69
  /**
@@ -69,12 +78,88 @@ const ANTIGRAVITY_READY_FOOTER_PATTERN = /\?\s+for\s+shortcuts/;
69
78
  */
70
79
  const ANTIGRAVITY_TRUST_DIALOG_PATTERN = /Do you trust the contents of this project\?/;
71
80
  /**
72
- * Decide whether agy is at a genuine, ready input prompt.
73
- * The idle footer is present AND no trust dialog is awaiting confirmation.
81
+ * Read agy's input box off the bottom of a frame (Issue #2478).
82
+ *
83
+ * agy draws the box — a bare `>` between two rules, its status row under the
84
+ * lower one — as the last thing on the screen, and everything else it can show
85
+ * either replaces the box (the permission dialogs, the trust screen, the
86
+ * post-answer survey) or is drawn below it (the `/model` picker, the slash
87
+ * command popup, `/feedback`'s category menu). So a frame that ENDS in the box
88
+ * is one whose input box is live, and a `>` row with more than the status row
89
+ * under it is not a box anyone can type into.
90
+ *
91
+ * This is stricter than the status detector's `promptPattern.test(lastLines)`
92
+ * (`detection/tools/antigravity/detect.ts`), which accepts the `>` anywhere in
93
+ * the 15-row tail: the detector tells `/feedback`'s menu apart only in the
94
+ * shared generic prompt step that runs before it, and this check does not run
95
+ * that step. The rows between the `>` and the lower rule may be blank — agy
96
+ * 1.2.1 leaves the box three rows tall after a tool turn.
97
+ *
98
+ * @param contentLines - ANSI-stripped rows, trailing blank rows dropped
99
+ * @returns The status row under the box ('' when agy drew none), or null when
100
+ * the frame does not end in the box
101
+ */
102
+ function readInputBoxStatusRow(contentLines) {
103
+ const rows = contentLines.map((row) => row.trim());
104
+ const isRule = (i) => i >= 0 && cli_patterns_1.ANTIGRAVITY_SEPARATOR_PATTERN.test(rows[i]);
105
+ const skipBlank = (from) => {
106
+ let i = from;
107
+ while (i >= 0 && rows[i] === '')
108
+ i--;
109
+ return i;
110
+ };
111
+ let i = rows.length - 1;
112
+ let statusRow = '';
113
+ if (i >= 0 && !isRule(i)) {
114
+ statusRow = rows[i];
115
+ i = skipBlank(i - 1);
116
+ }
117
+ if (!isRule(i))
118
+ return null;
119
+ i = skipBlank(i - 1);
120
+ if (i < 0 || !cli_patterns_1.ANTIGRAVITY_PROMPT_PATTERN.test(rows[i]))
121
+ return null;
122
+ return isRule(skipBlank(i - 1)) ? statusRow : null;
123
+ }
124
+ /**
125
+ * Decide whether a typed message would land in agy's input box (Issue #2478).
126
+ *
127
+ * Read on the status detector's evidence (`detection/tools/antigravity/detect.ts`)
128
+ * over the status detector's frame (`normalizeFrame`: ANSI stripped, padding
129
+ * dropped, the same 15-row tail):
130
+ *
131
+ * 1. No agy screen is up: the `Switch Model` / `↑/↓ Navigate` test its
132
+ * `beforePrompt` makes (every branch after that test answers `waiting` or
133
+ * `running`, so it covers the numbered dialogs too), and the trust
134
+ * question. Both over the tail — with the pane 1000 rows tall the whole
135
+ * transcript is in the capture, and a quoted question anywhere in it used
136
+ * to block every send.
137
+ * 2. The frame ends in the input box ({@link readInputBoxStatusRow}).
138
+ * 3. agy is not generating. `? for shortcuts` on the status row settles it —
139
+ * kept as a sufficient signal so a thought summary such as "Generating the
140
+ * specified file" left in the tail cannot block a send the pre-#2478 rule
141
+ * allowed. Without it, `afterThinking`'s reading: no spinner, `Generating`
142
+ * or `esc to cancel` in the tail. The box stays on screen while agy
143
+ * generates, so 2 alone would not do.
144
+ *
145
+ * Before #2478 the footer was required and the detector never read it, so the
146
+ * two disagreed on every frame agy 1.2.1 draws after a tool turn.
147
+ *
148
+ * @param output - A captured pane, raw or ANSI-stripped
149
+ * @returns True when the input box is live and agy is idle
74
150
  */
75
151
  function isAntigravityReady(output) {
76
- return (ANTIGRAVITY_READY_FOOTER_PATTERN.test(output) &&
77
- !ANTIGRAVITY_TRUST_DIALOG_PATTERN.test(output));
152
+ const frame = (0, frame_1.normalizeFrame)(output);
153
+ if (cli_patterns_1.ANTIGRAVITY_SELECTION_LIST_PATTERN.test(frame.lastLines))
154
+ return false;
155
+ if (ANTIGRAVITY_TRUST_DIALOG_PATTERN.test(frame.lastLines))
156
+ return false;
157
+ const statusRow = readInputBoxStatusRow(frame.contentLines);
158
+ if (statusRow === null)
159
+ return false;
160
+ if (ANTIGRAVITY_READY_FOOTER_PATTERN.test(statusRow))
161
+ return true;
162
+ return !(0, cli_patterns_1.detectThinking)('antigravity', frame.lastLines);
78
163
  }
79
164
  /**
80
165
  * Antigravity CLI tool implementation.
@@ -185,7 +270,7 @@ class AntigravityTool extends base_1.BaseCLITool {
185
270
  * Wait for agy to become ready (input prompt live).
186
271
  * Handles the first-run trust dialog ("Do you trust the contents of this
187
272
  * project?") by sending Enter to confirm the default "Yes, I trust this folder"
188
- * selection. Polls until the idle footer is detected or max attempts reached.
273
+ * selection. Polls until {@link isAntigravityReady} or max attempts reached.
189
274
  */
190
275
  async waitForReady(sessionName) {
191
276
  // One-shot guard: capturePane keeps the dismissed dialog in scrollback, so
@@ -195,7 +280,7 @@ class AntigravityTool extends base_1.BaseCLITool {
195
280
  try {
196
281
  const rawOutput = await (0, tmux_1.capturePane)(sessionName, 50);
197
282
  const output = (0, cli_patterns_1.stripAnsi)(rawOutput);
198
- // Ready: idle footer present and no trust dialog pending.
283
+ // Ready: the input box is live and no agy screen covers it.
199
284
  if (isAntigravityReady(output)) {
200
285
  logger.info('antigravity-prompt-detected');
201
286
  return;