commandmate 0.46.0 → 0.47.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 (743) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +417 -410
  3. package/.next/app-path-routes-manifest.json +22 -21
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/react-loadable-manifest.json +2 -2
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +8 -0
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/update/route.js +4 -2
  14. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/capabilities/route.js +1 -1
  20. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/daily-summary/route.js +1 -1
  22. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  23. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  25. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  26. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/hooks/agent-event/route.js +2 -2
  33. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  34. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/hooks/claude-done/route.js +9 -9
  36. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  37. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  39. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  40. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/push/escalation/route.js +1 -7
  44. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  45. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/push/vapid/route.js +1 -7
  48. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  49. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  51. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  52. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/relays/route.js +1 -1
  54. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  55. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  59. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  60. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/repositories/clone/route.js +1 -1
  62. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  63. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/repositories/restore/route.js +1 -1
  66. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  67. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/repositories/route.js +1 -1
  69. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  70. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/scan/route.js +1 -1
  72. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  73. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/sync/route.js +1 -1
  75. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  76. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  79. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  80. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  97. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  100. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  103. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  108. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  111. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  114. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  119. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  147. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  150. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  153. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/logs/route.js +9 -9
  156. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  167. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js +1 -0
  172. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js.nft.json +1 -0
  173. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route_client-reference-manifest.js +1 -0
  174. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  177. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  180. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  183. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  193. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +2 -2
  195. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  207. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  210. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/route.js +1 -1
  233. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  234. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  236. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  238. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  239. package/.next/server/app/page_client-reference-manifest.js +1 -1
  240. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  242. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  243. package/.next/server/app/sessions/page.js +1 -1
  244. package/.next/server/app/sessions/page.js.nft.json +1 -1
  245. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  246. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  247. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  248. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  249. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  250. package/.next/server/app/worktrees/[id]/page.js +11 -11
  251. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  252. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  253. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  254. package/.next/server/app-paths-manifest.json +22 -21
  255. package/.next/server/chunks/1210.js +1 -1
  256. package/.next/server/chunks/1501.js +2 -2
  257. package/.next/server/chunks/1559.js +1 -1
  258. package/.next/server/chunks/1601.js +7 -0
  259. package/.next/server/chunks/1836.js +1 -0
  260. package/.next/server/chunks/1945.js +14 -0
  261. package/.next/server/chunks/2119.js +1 -1
  262. package/.next/server/chunks/2404.js +1 -1
  263. package/.next/server/chunks/2422.js +1 -0
  264. package/.next/server/chunks/2445.js +1 -1
  265. package/.next/server/chunks/2460.js +1 -1
  266. package/.next/server/chunks/2534.js +1 -1
  267. package/.next/server/chunks/3241.js +1 -1
  268. package/.next/server/chunks/{3077.js → 4194.js} +12 -12
  269. package/.next/server/chunks/4207.js +1 -1
  270. package/.next/server/chunks/4248.js +1 -1
  271. package/.next/server/chunks/5209.js +1 -1
  272. package/.next/server/chunks/5292.js +3 -3
  273. package/.next/server/chunks/5595.js +1 -1
  274. package/.next/server/chunks/5845.js +1 -1
  275. package/.next/server/chunks/6130.js +1 -1
  276. package/.next/server/chunks/6401.js +1 -1
  277. package/.next/server/chunks/{2283.js → 6486.js} +7 -7
  278. package/.next/server/chunks/6722.js +1 -1
  279. package/.next/server/chunks/6781.js +1 -1
  280. package/.next/server/chunks/6793.js +2 -2
  281. package/.next/server/chunks/7166.js +19 -0
  282. package/.next/server/chunks/7905.js +1 -1
  283. package/.next/server/chunks/8581.js +12 -12
  284. package/.next/server/chunks/8728.js +2 -2
  285. package/.next/server/chunks/8791.js +1 -1
  286. package/.next/server/chunks/8918.js +6 -6
  287. package/.next/server/chunks/9199.js +1 -0
  288. package/.next/server/chunks/936.js +1 -0
  289. package/.next/server/chunks/9390.js +1 -1
  290. package/.next/server/chunks/9540.js +1 -0
  291. package/.next/server/chunks/9627.js +3 -2
  292. package/.next/server/chunks/9731.js +3 -3
  293. package/.next/server/middleware-build-manifest.js +1 -1
  294. package/.next/server/middleware-manifest.json +5 -5
  295. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  296. package/.next/server/pages/500.html +1 -1
  297. package/.next/server/server-reference-manifest.json +1 -1
  298. package/.next/static/chunks/{2407-acb644c5487e1720.js → 2407-b2f524f99f7fc353.js} +1 -1
  299. package/.next/static/chunks/{2717.21abf5b6bbd45520.js → 2717.1583400c272dc1d9.js} +1 -1
  300. package/.next/static/chunks/5371-a549a0d2c2044d41.js +1 -0
  301. package/.next/static/chunks/5794-80ac3f06f098ea29.js +1 -0
  302. package/.next/static/chunks/602-1c1488959215e140.js +1 -0
  303. package/.next/static/chunks/{8407-9a72e6f07c5d5458.js → 8407-155f84e5ba05f1d5.js} +1 -1
  304. package/.next/static/chunks/9079-24f9fa549ed298f1.js +1 -0
  305. package/.next/static/chunks/app/api/agents/update/{route-0468c3c4baa46028.js → route-c81284a9d8b35304.js} +1 -1
  306. package/.next/static/chunks/app/api/agents/versions/{route-0468c3c4baa46028.js → route-c81284a9d8b35304.js} +1 -1
  307. package/.next/static/chunks/app/api/app/release-notes/{route-0468c3c4baa46028.js → route-c81284a9d8b35304.js} +1 -1
  308. package/.next/static/chunks/app/api/app/update/route-c81284a9d8b35304.js +1 -0
  309. package/.next/static/chunks/app/api/app/update-check/{route-0468c3c4baa46028.js → route-c81284a9d8b35304.js} +1 -1
  310. package/.next/static/chunks/app/api/auth/login/route-c81284a9d8b35304.js +1 -0
  311. package/.next/static/chunks/app/api/auth/logout/route-c81284a9d8b35304.js +1 -0
  312. package/.next/static/chunks/app/api/auth/status/route-c81284a9d8b35304.js +1 -0
  313. package/.next/static/chunks/app/api/capabilities/route-c81284a9d8b35304.js +1 -0
  314. package/.next/static/chunks/app/api/daily-summary/route-c81284a9d8b35304.js +1 -0
  315. package/.next/static/chunks/app/api/daily-summary/status/route-c81284a9d8b35304.js +1 -0
  316. package/.next/static/chunks/app/api/external-apps/[id]/health/route-c81284a9d8b35304.js +1 -0
  317. package/.next/static/chunks/app/api/external-apps/[id]/route-c81284a9d8b35304.js +1 -0
  318. package/.next/static/chunks/app/api/external-apps/route-c81284a9d8b35304.js +1 -0
  319. package/.next/static/chunks/app/api/fs/browse/route-c81284a9d8b35304.js +1 -0
  320. package/.next/static/chunks/app/api/fs/recent-paths/route-c81284a9d8b35304.js +1 -0
  321. package/.next/static/chunks/app/api/hooks/agent-event/route-c81284a9d8b35304.js +1 -0
  322. package/.next/static/chunks/app/api/hooks/claude-done/route-c81284a9d8b35304.js +1 -0
  323. package/.next/static/chunks/app/api/hooks/permission-request/route-c81284a9d8b35304.js +1 -0
  324. package/.next/static/chunks/app/api/metrics/vibe/route-c81284a9d8b35304.js +1 -0
  325. package/.next/static/chunks/app/api/ollama/models/route-c81284a9d8b35304.js +1 -0
  326. package/.next/static/chunks/app/api/push/escalation/route-c81284a9d8b35304.js +1 -0
  327. package/.next/static/chunks/app/api/push/subscriptions/route-c81284a9d8b35304.js +1 -0
  328. package/.next/static/chunks/app/api/push/vapid/route-c81284a9d8b35304.js +1 -0
  329. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-c81284a9d8b35304.js +1 -0
  330. package/.next/static/chunks/app/api/relays/route-c81284a9d8b35304.js +1 -0
  331. package/.next/static/chunks/app/api/remote/pair/route-c81284a9d8b35304.js +1 -0
  332. package/.next/static/chunks/app/api/repositories/[id]/route-c81284a9d8b35304.js +1 -0
  333. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-c81284a9d8b35304.js +1 -0
  334. package/.next/static/chunks/app/api/repositories/clone/route-c81284a9d8b35304.js +1 -0
  335. package/.next/static/chunks/app/api/repositories/excluded/route-c81284a9d8b35304.js +1 -0
  336. package/.next/static/chunks/app/api/repositories/restore/route-c81284a9d8b35304.js +1 -0
  337. package/.next/static/chunks/app/api/repositories/route-c81284a9d8b35304.js +1 -0
  338. package/.next/static/chunks/app/api/repositories/scan/route-c81284a9d8b35304.js +1 -0
  339. package/.next/static/chunks/app/api/repositories/sync/route-c81284a9d8b35304.js +1 -0
  340. package/.next/static/chunks/app/api/repositories/validate-path/route-c81284a9d8b35304.js +1 -0
  341. package/.next/static/chunks/app/api/settings/default-agents/route-c81284a9d8b35304.js +1 -0
  342. package/.next/static/chunks/app/api/settings/default-surface-mode/route-c81284a9d8b35304.js +1 -0
  343. package/.next/static/chunks/app/api/sidebar/group-order/route-c81284a9d8b35304.js +1 -0
  344. package/.next/static/chunks/app/api/skills/[id]/route-c81284a9d8b35304.js +1 -0
  345. package/.next/static/chunks/app/api/skills/installations/route-c81284a9d8b35304.js +1 -0
  346. package/.next/static/chunks/app/api/skills/operations/route-c81284a9d8b35304.js +1 -0
  347. package/.next/static/chunks/app/api/skills/reindex/route-c81284a9d8b35304.js +1 -0
  348. package/.next/static/chunks/app/api/skills/route-c81284a9d8b35304.js +1 -0
  349. package/.next/static/chunks/app/api/slash-commands/route-c81284a9d8b35304.js +1 -0
  350. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-c81284a9d8b35304.js +1 -0
  351. package/.next/static/chunks/app/api/tasks/[taskId]/route-c81284a9d8b35304.js +1 -0
  352. package/.next/static/chunks/app/api/templates/[id]/route-c81284a9d8b35304.js +1 -0
  353. package/.next/static/chunks/app/api/templates/route-c81284a9d8b35304.js +1 -0
  354. package/.next/static/chunks/app/api/verification/runs/[runId]/route-c81284a9d8b35304.js +1 -0
  355. package/.next/static/chunks/app/api/verification/runs/route-c81284a9d8b35304.js +1 -0
  356. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-c81284a9d8b35304.js +1 -0
  357. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-c81284a9d8b35304.js +1 -0
  358. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-c81284a9d8b35304.js +1 -0
  359. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-c81284a9d8b35304.js +1 -0
  360. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-c81284a9d8b35304.js +1 -0
  361. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-c81284a9d8b35304.js +1 -0
  362. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-c81284a9d8b35304.js +1 -0
  363. package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-c81284a9d8b35304.js +1 -0
  364. package/.next/static/chunks/app/api/worktrees/[id]/env/route-c81284a9d8b35304.js +1 -0
  365. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-c81284a9d8b35304.js +1 -0
  366. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-c81284a9d8b35304.js +1 -0
  367. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-c81284a9d8b35304.js +1 -0
  368. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-c81284a9d8b35304.js +1 -0
  369. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-c81284a9d8b35304.js +1 -0
  370. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-c81284a9d8b35304.js +1 -0
  371. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-c81284a9d8b35304.js +1 -0
  372. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-c81284a9d8b35304.js +1 -0
  373. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-c81284a9d8b35304.js +1 -0
  374. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-c81284a9d8b35304.js +1 -0
  375. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-c81284a9d8b35304.js +1 -0
  376. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-c81284a9d8b35304.js +1 -0
  377. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-c81284a9d8b35304.js +1 -0
  378. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-c81284a9d8b35304.js +1 -0
  379. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-c81284a9d8b35304.js +1 -0
  380. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-c81284a9d8b35304.js +1 -0
  381. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-c81284a9d8b35304.js +1 -0
  382. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-c81284a9d8b35304.js +1 -0
  383. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-c81284a9d8b35304.js +1 -0
  384. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-c81284a9d8b35304.js +1 -0
  385. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-c81284a9d8b35304.js +1 -0
  386. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-c81284a9d8b35304.js +1 -0
  387. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-c81284a9d8b35304.js +1 -0
  388. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-c81284a9d8b35304.js +1 -0
  389. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-c81284a9d8b35304.js +1 -0
  390. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-c81284a9d8b35304.js +1 -0
  391. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-c81284a9d8b35304.js +1 -0
  392. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-c81284a9d8b35304.js +1 -0
  393. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-c81284a9d8b35304.js +1 -0
  394. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-c81284a9d8b35304.js +1 -0
  395. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-c81284a9d8b35304.js +1 -0
  396. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-c81284a9d8b35304.js +1 -0
  397. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-c81284a9d8b35304.js +1 -0
  398. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-c81284a9d8b35304.js +1 -0
  399. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-c81284a9d8b35304.js +1 -0
  400. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-c81284a9d8b35304.js +1 -0
  401. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-c81284a9d8b35304.js +1 -0
  402. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-c81284a9d8b35304.js +1 -0
  403. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-c81284a9d8b35304.js +1 -0
  404. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-c81284a9d8b35304.js +1 -0
  405. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-c81284a9d8b35304.js +1 -0
  406. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-c81284a9d8b35304.js +1 -0
  407. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-c81284a9d8b35304.js +1 -0
  408. package/.next/static/chunks/app/api/worktrees/[id]/route-c81284a9d8b35304.js +1 -0
  409. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-c81284a9d8b35304.js +1 -0
  410. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-c81284a9d8b35304.js +1 -0
  411. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-c81284a9d8b35304.js +1 -0
  412. package/.next/static/chunks/app/api/worktrees/[id]/search/route-c81284a9d8b35304.js +1 -0
  413. package/.next/static/chunks/app/api/worktrees/[id]/send/route-c81284a9d8b35304.js +1 -0
  414. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-c81284a9d8b35304.js +1 -0
  415. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-c81284a9d8b35304.js +1 -0
  416. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-c81284a9d8b35304.js +1 -0
  417. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-c81284a9d8b35304.js +1 -0
  418. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-c81284a9d8b35304.js +1 -0
  419. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-c81284a9d8b35304.js +1 -0
  420. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-c81284a9d8b35304.js +1 -0
  421. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-c81284a9d8b35304.js +1 -0
  422. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-c81284a9d8b35304.js +1 -0
  423. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-c81284a9d8b35304.js +1 -0
  424. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-c81284a9d8b35304.js +1 -0
  425. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-c81284a9d8b35304.js +1 -0
  426. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-c81284a9d8b35304.js +1 -0
  427. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-c81284a9d8b35304.js +1 -0
  428. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-c81284a9d8b35304.js +1 -0
  429. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-c81284a9d8b35304.js +1 -0
  430. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-c81284a9d8b35304.js +1 -0
  431. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-c81284a9d8b35304.js +1 -0
  432. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-c81284a9d8b35304.js +1 -0
  433. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-c81284a9d8b35304.js +1 -0
  434. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-c81284a9d8b35304.js +1 -0
  435. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-c81284a9d8b35304.js +1 -0
  436. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-c81284a9d8b35304.js +1 -0
  437. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-c81284a9d8b35304.js +1 -0
  438. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-c81284a9d8b35304.js +1 -0
  439. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-c81284a9d8b35304.js +1 -0
  440. package/.next/static/chunks/app/api/worktrees/route-c81284a9d8b35304.js +1 -0
  441. package/.next/static/chunks/app/layout-419eaf7de340f4ab.js +1 -0
  442. package/.next/static/chunks/app/manifest.webmanifest/route-c81284a9d8b35304.js +1 -0
  443. package/.next/static/chunks/app/proxy/[...path]/route-c81284a9d8b35304.js +1 -0
  444. package/.next/static/chunks/app/sessions/page-e02f1adb1d1c1ccc.js +1 -0
  445. package/.next/static/chunks/app/worktrees/[id]/layout-c81284a9d8b35304.js +1 -0
  446. package/.next/static/chunks/app/worktrees/[id]/page-45294052ee3032f1.js +1 -0
  447. package/.next/static/chunks/{webpack-c0b821f340afdebf.js → webpack-468b7b33030234b3.js} +1 -1
  448. package/.next/trace +13 -13
  449. package/.next/types/app/api/worktrees/[id]/prompt-response/strict/route.ts +347 -0
  450. package/.next/types/routes.d.ts +2 -1
  451. package/.next/types/validator.ts +9 -0
  452. package/dist/cli/commands/auto-yes.d.ts +19 -0
  453. package/dist/cli/commands/auto-yes.d.ts.map +1 -1
  454. package/dist/cli/commands/auto-yes.js +45 -0
  455. package/dist/cli/commands/instances.d.ts.map +1 -1
  456. package/dist/cli/commands/instances.js +23 -18
  457. package/dist/cli/commands/ls.d.ts +15 -1
  458. package/dist/cli/commands/ls.d.ts.map +1 -1
  459. package/dist/cli/commands/ls.js +39 -3
  460. package/dist/cli/commands/prompt.d.ts +42 -0
  461. package/dist/cli/commands/prompt.d.ts.map +1 -0
  462. package/dist/cli/commands/prompt.js +211 -0
  463. package/dist/cli/commands/relays.d.ts.map +1 -1
  464. package/dist/cli/commands/relays.js +13 -1
  465. package/dist/cli/commands/respond-strict.d.ts +31 -0
  466. package/dist/cli/commands/respond-strict.d.ts.map +1 -0
  467. package/dist/cli/commands/respond-strict.js +214 -0
  468. package/dist/cli/commands/respond.d.ts.map +1 -1
  469. package/dist/cli/commands/respond.js +38 -0
  470. package/dist/cli/commands/send.d.ts.map +1 -1
  471. package/dist/cli/commands/send.js +41 -5
  472. package/dist/cli/commands/start.d.ts.map +1 -1
  473. package/dist/cli/commands/start.js +2 -1
  474. package/dist/cli/commands/status.d.ts.map +1 -1
  475. package/dist/cli/commands/status.js +18 -0
  476. package/dist/cli/commands/wait.d.ts +21 -1
  477. package/dist/cli/commands/wait.d.ts.map +1 -1
  478. package/dist/cli/commands/wait.js +113 -12
  479. package/dist/cli/docs/agent-operations.d.ts +1 -1
  480. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  481. package/dist/cli/docs/agent-operations.js +63 -1
  482. package/dist/cli/program.d.ts.map +1 -1
  483. package/dist/cli/program.js +6 -2
  484. package/dist/cli/types/api-responses.d.ts +62 -6
  485. package/dist/cli/types/api-responses.d.ts.map +1 -1
  486. package/dist/cli/types/index.d.ts +30 -0
  487. package/dist/cli/types/index.d.ts.map +1 -1
  488. package/dist/cli/types/index.js +12 -1
  489. package/dist/cli/utils/api-client.d.ts +13 -1
  490. package/dist/cli/utils/api-client.d.ts.map +1 -1
  491. package/dist/cli/utils/api-client.js +10 -2
  492. package/dist/cli/utils/daemon-factory.d.ts.map +1 -1
  493. package/dist/cli/utils/daemon-factory.js +3 -1
  494. package/dist/cli/utils/daemon.d.ts +38 -1
  495. package/dist/cli/utils/daemon.d.ts.map +1 -1
  496. package/dist/cli/utils/daemon.js +161 -8
  497. package/dist/cli/utils/paths.d.ts +12 -0
  498. package/dist/cli/utils/paths.d.ts.map +1 -1
  499. package/dist/cli/utils/paths.js +17 -0
  500. package/dist/lib/polling/auto-yes-suppression-reason.d.ts +55 -1
  501. package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -1
  502. package/dist/lib/polling/auto-yes-suppression-reason.js +20 -0
  503. package/dist/lib/prompt-observation/kinds.d.ts +101 -0
  504. package/dist/lib/prompt-observation/kinds.d.ts.map +1 -0
  505. package/dist/lib/prompt-observation/kinds.js +123 -0
  506. package/dist/lib/prompt-observation/types.d.ts +271 -0
  507. package/dist/lib/prompt-observation/types.d.ts.map +1 -0
  508. package/dist/lib/prompt-observation/types.js +14 -0
  509. package/dist/lib/session/send-attempt-types.d.ts +66 -0
  510. package/dist/lib/session/send-attempt-types.d.ts.map +1 -0
  511. package/dist/lib/session/send-attempt-types.js +17 -0
  512. package/dist/server/locales/en/worktree.json +4 -0
  513. package/dist/server/locales/ja/worktree.json +4 -0
  514. package/dist/server/server.js +20 -1
  515. package/dist/server/src/config/auto-yes-config.js +11 -0
  516. package/dist/server/src/lib/assistant-response-saver.js +13 -0
  517. package/dist/server/src/lib/auto-yes-lifecycle.js +28 -2
  518. package/dist/server/src/lib/auto-yes-poller.js +593 -78
  519. package/dist/server/src/lib/auto-yes-shutdown-record.js +257 -0
  520. package/dist/server/src/lib/auto-yes-state.js +197 -4
  521. package/dist/server/src/lib/cli-tools/antigravity-startup-trust.js +135 -0
  522. package/dist/server/src/lib/cli-tools/antigravity.js +162 -29
  523. package/dist/server/src/lib/cli-tools/command-code.js +10 -2
  524. package/dist/server/src/lib/cli-tools/copilot.js +21 -10
  525. package/dist/server/src/lib/cli-tools/gemini.js +60 -13
  526. package/dist/server/src/lib/cli-tools/launch-dialog.js +203 -0
  527. package/dist/server/src/lib/cli-tools/launch-window.js +96 -0
  528. package/dist/server/src/lib/conversation-logger.js +14 -2
  529. package/dist/server/src/lib/db/chat-db.js +2 -1
  530. package/dist/server/src/lib/detection/selection-shape.js +35 -1
  531. package/dist/server/src/lib/detection/tools/antigravity/detect.js +38 -9
  532. package/dist/server/src/lib/detection/tools/antigravity/dialog.js +88 -1
  533. package/dist/server/src/lib/detection/tools/antigravity/patterns.js +41 -1
  534. package/dist/server/src/lib/detection/tools/claude/detect.js +60 -0
  535. package/dist/server/src/lib/detection/tools/command-code/selection-shape.js +63 -13
  536. package/dist/server/src/lib/detection/tools/copilot/patterns.js +7 -1
  537. package/dist/server/src/lib/history/user-turn-recorder.js +14 -0
  538. package/dist/server/src/lib/hooks/sources/antigravity/history.js +28 -0
  539. package/dist/server/src/lib/hooks/sources/claude/history.js +7 -0
  540. package/dist/server/src/lib/hooks/sources/codex/history.js +7 -0
  541. package/dist/server/src/lib/hooks/sources/command-code/history.js +7 -0
  542. package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +11 -2
  543. package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +5 -3
  544. package/dist/server/src/lib/hooks/sources/transcript-history.js +34 -0
  545. package/dist/server/src/lib/log-manager.js +7 -2
  546. package/dist/server/src/lib/polling/antigravity-permission-receipts.js +15 -0
  547. package/dist/server/src/lib/polling/antigravity-receipt-episodes.js +281 -0
  548. package/dist/server/src/lib/polling/auto-yes-confirm-page.js +56 -0
  549. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +8 -1
  550. package/dist/server/src/lib/polling/auto-yes-enter-fallback-state.js +22 -3
  551. package/dist/server/src/lib/polling/auto-yes-policy.js +61 -7
  552. package/dist/server/src/lib/polling/auto-yes-poller-state.js +234 -0
  553. package/dist/server/src/lib/polling/auto-yes-poller-stop-reason.js +50 -0
  554. package/dist/server/src/lib/polling/auto-yes-prompt-suppression.js +220 -5
  555. package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +20 -0
  556. package/dist/server/src/lib/polling/auto-yes-suppression-state.js +10 -0
  557. package/dist/server/src/lib/polling/pending-scraped-response.js +119 -3
  558. package/dist/server/src/lib/polling/poller-owner.js +110 -0
  559. package/dist/server/src/lib/polling/response-checker-dialog-gate.js +2 -2
  560. package/dist/server/src/lib/polling/response-checker.js +211 -39
  561. package/dist/server/src/lib/polling/response-dedup.js +8 -0
  562. package/dist/server/src/lib/polling/response-poller-core.js +226 -75
  563. package/dist/server/src/lib/polling/structured-history-gate.js +20 -1
  564. package/dist/server/src/lib/prompt-answer-sender.js +59 -12
  565. package/dist/server/src/lib/prompt-observation/kinds.js +123 -0
  566. package/dist/server/src/lib/prompt-observation/types.js +14 -0
  567. package/dist/server/src/lib/push/prompt-push-gate.js +195 -3
  568. package/dist/server/src/lib/push/waiting-push-notifier.js +74 -7
  569. package/dist/server/src/lib/realtime/terminal-broadcast.js +14 -0
  570. package/dist/server/src/lib/relay/relay-delivery-claims.js +46 -0
  571. package/dist/server/src/lib/relay/relay-delivery.js +76 -30
  572. package/dist/server/src/lib/schedule-manager.js +28 -0
  573. package/dist/server/src/lib/session/chat-turn-progress.js +57 -6
  574. package/dist/server/src/lib/session/cli-session.js +38 -3
  575. package/dist/server/src/lib/session/current-output-builder.js +19 -0
  576. package/dist/server/src/lib/session/send-attempt-state.js +155 -0
  577. package/dist/server/src/lib/session/send-attempt-types.js +17 -0
  578. package/dist/server/src/lib/session/send-user-message.js +46 -0
  579. package/dist/server/src/lib/session/worktree-session-reconcile.js +85 -11
  580. package/dist/server/src/lib/timer-manager.js +7 -0
  581. package/dist/server/src/lib/tmux/session-created-signal.js +76 -0
  582. package/dist/server/src/lib/tmux/tmux-capture-cache.js +58 -6
  583. package/dist/server/src/lib/tmux/tmux.js +28 -2
  584. package/dist/server/src/lib/verification/env-clean-gate.js +30 -2
  585. package/dist/server/src/lib/verification/scope-gate-format.js +100 -0
  586. package/dist/server/src/lib/verification/scope-gate-glob.js +185 -0
  587. package/dist/server/src/lib/verification/scope-gate.js +19 -271
  588. package/dist/server/src/lib/ws-server.js +48 -6
  589. package/docs/en/user-guide/cli-setup-guide.md +12 -1
  590. package/docs/en/user-guide/webapp-guide.md +2 -0
  591. package/package.json +1 -1
  592. package/release-notes/0.46.1.json +40 -0
  593. package/release-notes/0.47.0.json +118 -0
  594. package/.next/server/chunks/1789.js +0 -1
  595. package/.next/server/chunks/2908.js +0 -1
  596. package/.next/server/chunks/3718.js +0 -1
  597. package/.next/server/chunks/4837.js +0 -14
  598. package/.next/server/chunks/5625.js +0 -25
  599. package/.next/server/chunks/611.js +0 -1
  600. package/.next/server/chunks/850.js +0 -1
  601. package/.next/static/chunks/3201-c01f1feed69020e6.js +0 -1
  602. package/.next/static/chunks/5371-a94ed618148287a0.js +0 -1
  603. package/.next/static/chunks/5794-947fb4934d8be193.js +0 -1
  604. package/.next/static/chunks/602-25e45a2422d2a3ea.js +0 -1
  605. package/.next/static/chunks/app/api/app/update/route-0468c3c4baa46028.js +0 -1
  606. package/.next/static/chunks/app/api/auth/login/route-0468c3c4baa46028.js +0 -1
  607. package/.next/static/chunks/app/api/auth/logout/route-0468c3c4baa46028.js +0 -1
  608. package/.next/static/chunks/app/api/auth/status/route-0468c3c4baa46028.js +0 -1
  609. package/.next/static/chunks/app/api/capabilities/route-0468c3c4baa46028.js +0 -1
  610. package/.next/static/chunks/app/api/daily-summary/route-0468c3c4baa46028.js +0 -1
  611. package/.next/static/chunks/app/api/daily-summary/status/route-0468c3c4baa46028.js +0 -1
  612. package/.next/static/chunks/app/api/external-apps/[id]/health/route-0468c3c4baa46028.js +0 -1
  613. package/.next/static/chunks/app/api/external-apps/[id]/route-0468c3c4baa46028.js +0 -1
  614. package/.next/static/chunks/app/api/external-apps/route-0468c3c4baa46028.js +0 -1
  615. package/.next/static/chunks/app/api/fs/browse/route-0468c3c4baa46028.js +0 -1
  616. package/.next/static/chunks/app/api/fs/recent-paths/route-0468c3c4baa46028.js +0 -1
  617. package/.next/static/chunks/app/api/hooks/agent-event/route-0468c3c4baa46028.js +0 -1
  618. package/.next/static/chunks/app/api/hooks/claude-done/route-0468c3c4baa46028.js +0 -1
  619. package/.next/static/chunks/app/api/hooks/permission-request/route-0468c3c4baa46028.js +0 -1
  620. package/.next/static/chunks/app/api/metrics/vibe/route-0468c3c4baa46028.js +0 -1
  621. package/.next/static/chunks/app/api/ollama/models/route-0468c3c4baa46028.js +0 -1
  622. package/.next/static/chunks/app/api/push/escalation/route-0468c3c4baa46028.js +0 -1
  623. package/.next/static/chunks/app/api/push/subscriptions/route-0468c3c4baa46028.js +0 -1
  624. package/.next/static/chunks/app/api/push/vapid/route-0468c3c4baa46028.js +0 -1
  625. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-0468c3c4baa46028.js +0 -1
  626. package/.next/static/chunks/app/api/relays/route-0468c3c4baa46028.js +0 -1
  627. package/.next/static/chunks/app/api/remote/pair/route-0468c3c4baa46028.js +0 -1
  628. package/.next/static/chunks/app/api/repositories/[id]/route-0468c3c4baa46028.js +0 -1
  629. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-0468c3c4baa46028.js +0 -1
  630. package/.next/static/chunks/app/api/repositories/clone/route-0468c3c4baa46028.js +0 -1
  631. package/.next/static/chunks/app/api/repositories/excluded/route-0468c3c4baa46028.js +0 -1
  632. package/.next/static/chunks/app/api/repositories/restore/route-0468c3c4baa46028.js +0 -1
  633. package/.next/static/chunks/app/api/repositories/route-0468c3c4baa46028.js +0 -1
  634. package/.next/static/chunks/app/api/repositories/scan/route-0468c3c4baa46028.js +0 -1
  635. package/.next/static/chunks/app/api/repositories/sync/route-0468c3c4baa46028.js +0 -1
  636. package/.next/static/chunks/app/api/repositories/validate-path/route-0468c3c4baa46028.js +0 -1
  637. package/.next/static/chunks/app/api/settings/default-agents/route-0468c3c4baa46028.js +0 -1
  638. package/.next/static/chunks/app/api/settings/default-surface-mode/route-0468c3c4baa46028.js +0 -1
  639. package/.next/static/chunks/app/api/sidebar/group-order/route-0468c3c4baa46028.js +0 -1
  640. package/.next/static/chunks/app/api/skills/[id]/route-0468c3c4baa46028.js +0 -1
  641. package/.next/static/chunks/app/api/skills/installations/route-0468c3c4baa46028.js +0 -1
  642. package/.next/static/chunks/app/api/skills/operations/route-0468c3c4baa46028.js +0 -1
  643. package/.next/static/chunks/app/api/skills/reindex/route-0468c3c4baa46028.js +0 -1
  644. package/.next/static/chunks/app/api/skills/route-0468c3c4baa46028.js +0 -1
  645. package/.next/static/chunks/app/api/slash-commands/route-0468c3c4baa46028.js +0 -1
  646. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-0468c3c4baa46028.js +0 -1
  647. package/.next/static/chunks/app/api/tasks/[taskId]/route-0468c3c4baa46028.js +0 -1
  648. package/.next/static/chunks/app/api/templates/[id]/route-0468c3c4baa46028.js +0 -1
  649. package/.next/static/chunks/app/api/templates/route-0468c3c4baa46028.js +0 -1
  650. package/.next/static/chunks/app/api/verification/runs/[runId]/route-0468c3c4baa46028.js +0 -1
  651. package/.next/static/chunks/app/api/verification/runs/route-0468c3c4baa46028.js +0 -1
  652. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-0468c3c4baa46028.js +0 -1
  653. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-0468c3c4baa46028.js +0 -1
  654. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-0468c3c4baa46028.js +0 -1
  655. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-0468c3c4baa46028.js +0 -1
  656. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-0468c3c4baa46028.js +0 -1
  657. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-0468c3c4baa46028.js +0 -1
  658. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-0468c3c4baa46028.js +0 -1
  659. package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-0468c3c4baa46028.js +0 -1
  660. package/.next/static/chunks/app/api/worktrees/[id]/env/route-0468c3c4baa46028.js +0 -1
  661. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-0468c3c4baa46028.js +0 -1
  662. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-0468c3c4baa46028.js +0 -1
  663. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-0468c3c4baa46028.js +0 -1
  664. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-0468c3c4baa46028.js +0 -1
  665. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-0468c3c4baa46028.js +0 -1
  666. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-0468c3c4baa46028.js +0 -1
  667. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-0468c3c4baa46028.js +0 -1
  668. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-0468c3c4baa46028.js +0 -1
  669. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-0468c3c4baa46028.js +0 -1
  670. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-0468c3c4baa46028.js +0 -1
  671. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-0468c3c4baa46028.js +0 -1
  672. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-0468c3c4baa46028.js +0 -1
  673. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-0468c3c4baa46028.js +0 -1
  674. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-0468c3c4baa46028.js +0 -1
  675. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-0468c3c4baa46028.js +0 -1
  676. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-0468c3c4baa46028.js +0 -1
  677. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-0468c3c4baa46028.js +0 -1
  678. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-0468c3c4baa46028.js +0 -1
  679. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-0468c3c4baa46028.js +0 -1
  680. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-0468c3c4baa46028.js +0 -1
  681. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-0468c3c4baa46028.js +0 -1
  682. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-0468c3c4baa46028.js +0 -1
  683. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-0468c3c4baa46028.js +0 -1
  684. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-0468c3c4baa46028.js +0 -1
  685. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-0468c3c4baa46028.js +0 -1
  686. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-0468c3c4baa46028.js +0 -1
  687. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-0468c3c4baa46028.js +0 -1
  688. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-0468c3c4baa46028.js +0 -1
  689. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-0468c3c4baa46028.js +0 -1
  690. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-0468c3c4baa46028.js +0 -1
  691. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-0468c3c4baa46028.js +0 -1
  692. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-0468c3c4baa46028.js +0 -1
  693. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-0468c3c4baa46028.js +0 -1
  694. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-0468c3c4baa46028.js +0 -1
  695. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-0468c3c4baa46028.js +0 -1
  696. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-0468c3c4baa46028.js +0 -1
  697. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-0468c3c4baa46028.js +0 -1
  698. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-0468c3c4baa46028.js +0 -1
  699. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-0468c3c4baa46028.js +0 -1
  700. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-0468c3c4baa46028.js +0 -1
  701. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-0468c3c4baa46028.js +0 -1
  702. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-0468c3c4baa46028.js +0 -1
  703. package/.next/static/chunks/app/api/worktrees/[id]/route-0468c3c4baa46028.js +0 -1
  704. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-0468c3c4baa46028.js +0 -1
  705. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-0468c3c4baa46028.js +0 -1
  706. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-0468c3c4baa46028.js +0 -1
  707. package/.next/static/chunks/app/api/worktrees/[id]/search/route-0468c3c4baa46028.js +0 -1
  708. package/.next/static/chunks/app/api/worktrees/[id]/send/route-0468c3c4baa46028.js +0 -1
  709. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-0468c3c4baa46028.js +0 -1
  710. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-0468c3c4baa46028.js +0 -1
  711. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-0468c3c4baa46028.js +0 -1
  712. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-0468c3c4baa46028.js +0 -1
  713. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-0468c3c4baa46028.js +0 -1
  714. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-0468c3c4baa46028.js +0 -1
  715. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-0468c3c4baa46028.js +0 -1
  716. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-0468c3c4baa46028.js +0 -1
  717. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-0468c3c4baa46028.js +0 -1
  718. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-0468c3c4baa46028.js +0 -1
  719. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-0468c3c4baa46028.js +0 -1
  720. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-0468c3c4baa46028.js +0 -1
  721. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-0468c3c4baa46028.js +0 -1
  722. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-0468c3c4baa46028.js +0 -1
  723. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-0468c3c4baa46028.js +0 -1
  724. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-0468c3c4baa46028.js +0 -1
  725. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-0468c3c4baa46028.js +0 -1
  726. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-0468c3c4baa46028.js +0 -1
  727. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-0468c3c4baa46028.js +0 -1
  728. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-0468c3c4baa46028.js +0 -1
  729. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-0468c3c4baa46028.js +0 -1
  730. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-0468c3c4baa46028.js +0 -1
  731. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-0468c3c4baa46028.js +0 -1
  732. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-0468c3c4baa46028.js +0 -1
  733. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-0468c3c4baa46028.js +0 -1
  734. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-0468c3c4baa46028.js +0 -1
  735. package/.next/static/chunks/app/api/worktrees/route-0468c3c4baa46028.js +0 -1
  736. package/.next/static/chunks/app/layout-ae30ce63569c22be.js +0 -1
  737. package/.next/static/chunks/app/manifest.webmanifest/route-0468c3c4baa46028.js +0 -1
  738. package/.next/static/chunks/app/proxy/[...path]/route-0468c3c4baa46028.js +0 -1
  739. package/.next/static/chunks/app/sessions/page-9859ed61e93e6890.js +0 -1
  740. package/.next/static/chunks/app/worktrees/[id]/layout-0468c3c4baa46028.js +0 -1
  741. package/.next/static/chunks/app/worktrees/[id]/page-2eb1d0fd0a077b7e.js +0 -1
  742. /package/.next/static/{zI2nQ6WKboSbFbMF4EtrJ → b5BiQC9F6r_XFPdA9cuSj}/_buildManifest.js +0 -0
  743. /package/.next/static/{zI2nQ6WKboSbFbMF4EtrJ → b5BiQC9F6r_XFPdA9cuSj}/_ssgManifest.js +0 -0
@@ -502,6 +502,7 @@ function setupWebSocket(server, options) {
502
502
  ws,
503
503
  worktreeIds: new Set(),
504
504
  terminalSubscription: null,
505
+ terminalSubscriptionSeq: 0,
505
506
  isAlive: true,
506
507
  };
507
508
  clients.set(ws, clientInfo);
@@ -733,6 +734,9 @@ function handleDisconnect(ws) {
733
734
  }
734
735
  }
735
736
  });
737
+ // Issue #3733: a subscribe still in flight finds this moved and releases
738
+ // what it obtains instead of registering it on a socket that is gone.
739
+ clientInfo.terminalSubscriptionSeq += 1;
736
740
  if (clientInfo.terminalSubscription) {
737
741
  void clientInfo.terminalSubscription.unsubscribe();
738
742
  clientInfo.terminalSubscription = null;
@@ -779,14 +783,25 @@ async function handleTerminalSubscribe(ws, message) {
779
783
  });
780
784
  return;
781
785
  }
782
- if (clientInfo.terminalSubscription) {
783
- await clientInfo.terminalSubscription.unsubscribe();
786
+ // Issue #3733: from here on this request is the one the socket wants; every
787
+ // await below is followed by a look at whether it still is.
788
+ const seq = ++clientInfo.terminalSubscriptionSeq;
789
+ const isCurrent = () => clients.get(ws) === clientInfo && clientInfo.terminalSubscriptionSeq === seq;
790
+ const previous = clientInfo.terminalSubscription;
791
+ if (previous) {
792
+ // Detached before the await, so a request arriving meanwhile neither
793
+ // releases it a second time nor has its own registration cleared by ours.
784
794
  clientInfo.terminalSubscription = null;
795
+ await previous.unsubscribe();
785
796
  }
797
+ if (!isCurrent())
798
+ return;
786
799
  const sessionName = (0, session_name_1.resolveSessionName)(cliToolId, worktreeId);
787
800
  // Issue #2865: never stream a same-named session another CommandMate server
788
801
  // created (its `#{session_path}` is not this worktree's directory).
789
802
  const ownership = await (0, session_ownership_1.checkSessionOwnership)(sessionName, worktree.path);
803
+ if (!isCurrent())
804
+ return;
790
805
  if (ownership.verdict === 'foreign') {
791
806
  sendTerminalEvent(ws, {
792
807
  type: 'terminal_error',
@@ -806,6 +821,8 @@ async function handleTerminalSubscribe(ws, message) {
806
821
  const startedAt = Date.now();
807
822
  const subscription = await transport.subscribe(sessionName, {
808
823
  onOutput: (data) => {
824
+ if (!isCurrent())
825
+ return;
809
826
  if (!firstOutputObserved) {
810
827
  firstOutputObserved = true;
811
828
  (0, tmux_control_mode_metrics_1.observeTmuxControlFirstOutputLatency)(Date.now() - startedAt);
@@ -813,6 +830,8 @@ async function handleTerminalSubscribe(ws, message) {
813
830
  sendTerminalEvent(ws, { type: 'terminal_output', data });
814
831
  },
815
832
  onExit: ({ exitCode }) => {
833
+ if (!isCurrent())
834
+ return;
816
835
  sendTerminalEvent(ws, { type: 'terminal_exit', exitCode });
817
836
  },
818
837
  onError: (error) => {
@@ -825,7 +844,9 @@ async function handleTerminalSubscribe(ws, message) {
825
844
  const snapshot = await transport.captureSnapshot(sessionName, {
826
845
  startLine: TERMINAL_FALLBACK_CAPTURE_LINES,
827
846
  });
828
- if (snapshot.length > 0) {
847
+ // Issue #3733: the reads above awaited; a subscription released
848
+ // or replaced meanwhile has nothing left to say to this socket.
849
+ if (snapshot.length > 0 && isCurrent()) {
829
850
  sendTerminalEvent(ws, {
830
851
  type: 'terminal_output',
831
852
  data: snapshot,
@@ -837,6 +858,8 @@ async function handleTerminalSubscribe(ws, message) {
837
858
  catch {
838
859
  // Best-effort snapshot fallback. The original control-mode error is still reported.
839
860
  }
861
+ if (!isCurrent())
862
+ return;
840
863
  sendTerminalEvent(ws, {
841
864
  type: 'terminal_error',
842
865
  error: error.message,
@@ -845,6 +868,17 @@ async function handleTerminalSubscribe(ws, message) {
845
868
  })();
846
869
  },
847
870
  });
871
+ if (!isCurrent()) {
872
+ // Disconnected, unsubscribed or superseded while subscribing: nobody else
873
+ // holds this handle, so release it now or the registry keeps it forever.
874
+ try {
875
+ await subscription.unsubscribe();
876
+ }
877
+ catch {
878
+ // Best-effort cleanup of a subscription nobody wants.
879
+ }
880
+ return;
881
+ }
848
882
  clientInfo.terminalSubscription = {
849
883
  worktreeId,
850
884
  cliToolId,
@@ -934,16 +968,23 @@ async function runTerminalResize(ws, message) {
934
968
  }
935
969
  async function handleTerminalUnsubscribe(ws) {
936
970
  const clientInfo = clients.get(ws);
937
- if (!clientInfo?.terminalSubscription) {
971
+ if (!clientInfo)
972
+ return;
973
+ // Issue #3733: also withdraws a subscribe still in flight, which would
974
+ // otherwise register after this and keep streaming.
975
+ clientInfo.terminalSubscriptionSeq += 1;
976
+ const subscription = clientInfo.terminalSubscription;
977
+ if (!subscription) {
938
978
  return;
939
979
  }
980
+ // Detached before the await so a subscribe arriving meanwhile is not cleared.
981
+ clientInfo.terminalSubscription = null;
940
982
  try {
941
- await clientInfo.terminalSubscription.unsubscribe();
983
+ await subscription.unsubscribe();
942
984
  }
943
985
  catch {
944
986
  // Best-effort cleanup during terminal unsubscribe.
945
987
  }
946
- clientInfo.terminalSubscription = null;
947
988
  sendTerminalEvent(ws, { type: 'terminal_status', connected: false });
948
989
  }
949
990
  // ---------------------------------------------------------------------------
@@ -1281,6 +1322,7 @@ exports.__internal = {
1281
1322
  ws,
1282
1323
  worktreeIds: new Set(),
1283
1324
  terminalSubscription: null,
1325
+ terminalSubscriptionSeq: 0,
1284
1326
  isAlive,
1285
1327
  });
1286
1328
  },
@@ -404,6 +404,8 @@ commandmate status [options]
404
404
  | `-i, --issue <number>` | Show status for a specific issue worktree (Issue #136) |
405
405
  | `-a, --all` | Show status for all servers (main + worktrees) |
406
406
 
407
+ For a running server (or one with a stale PID file) it also prints a `Log:` line with the file `start --daemon` writes the server's output to.
408
+
407
409
  ### commandmate update
408
410
 
409
411
  Update CommandMate to the latest version (stop -> `npm install -g commandmate@latest` -> restart).
@@ -532,10 +534,19 @@ commandmate status
532
534
  commandmate stop --force
533
535
  commandmate start --daemon
534
536
 
535
- # Check logs (in config directory)
537
+ # Check logs (in config directory; commandmate status also prints the path on its Log: line)
536
538
  tail -f ~/.commandmate/logs/server.log
539
+ # a parallel server started with --issue 135 has its own file
540
+ tail -f ~/.commandmate/logs/server-135.log
537
541
  ```
538
542
 
543
+ `commandmate start --daemon` (and `commandmate update`, which restarts through it) appends the server's stdout and stderr to `logs/server.log` in the config directory (`logs/server-<N>.log` for an `--issue <N>` server). The file is owner-only (0600), and so are the rotated `server.log.1` and later generations (an existing 0640 file written by `scripts/start.sh` is tightened to 0600 when the CLI daemon opens or rotates it). Each start writes a separator line (`=== <timestamp> commandmate start --daemon ... ===`).
544
+
545
+ - **Rotation**: at start, a log of 10MB or more is moved to `server.log.1`, shifting older generations to `.2` and `.3` (three generations kept, the same approach as `scripts/build-and-start.sh`). It is not rotated while the server runs, so a long-running server's log can grow past 10MB.
546
+ - If the log file cannot be opened (the directory cannot be created, a symbolic link is in the way, etc.), a warning is printed and the server starts with its output discarded.
547
+ - `CM_LOG_DIR` does not move this file (`CM_LOG_DIR` is a separate setting, used by the server for conversation logs and by the CLI for its security log).
548
+ - A foreground start (`commandmate start`) prints to the terminal only and does not write this file.
549
+
539
550
  ### Dependency Errors
540
551
 
541
552
  ```bash
@@ -268,6 +268,7 @@ See [Agent event hooks](./agent-event-hooks.md) for the per-route technical deta
268
268
  - Important changes (file deletions, etc.) are also auto-approved, so use with caution
269
269
  - You can disable it by turning off the toggle
270
270
  - Auto Yes automatically turns OFF after the selected duration
271
+ - **When the server restarts (`/rebuild`, `commandmate stop`, etc.), an active Auto Yes is turned OFF and does not come back.** The affected instance shows **"Released by restart"** (「再起動で解除」 in the Japanese UI). The label stays until the original grant's deadline, and disappears when you turn the toggle on again or turn it off manually (it is not shown after SIGKILL or a crash). A manual OFF or an expiry does not show it
271
272
  - **Security best practices**:
272
273
  - Select the **minimum time** needed for your work (1 hour recommended when in doubt)
273
274
  - Limit `CM_ROOT_DIR` to the target worktree directory
@@ -499,6 +500,7 @@ that kind of screen directly under it. You answer it without leaving chat.
499
500
  | A selection list is open | Arrow keys plus Enter / Esc. Depending on the screen, number keys or "This session only" / "Set as default" are added (see "The buttons a selection list gets" below) |
500
501
  | A screen nothing could classify | Arrows and Esc (Navigate) plus the digits 1-9, y / n and Enter |
501
502
  | Waiting, with options nobody could read | The digits 1-9, y / n and Enter |
503
+ | Trust confirmation (agy) | The banner reads "Terminal action needed (trust confirmation). The agent will not continue until you answer whether to trust this folder, and Auto-Yes does not answer this screen. Pick with the arrows and press Enter, or answer it in the terminal." You can send the arrows and Enter from here |
502
504
 
503
505
  **Press the number or y/n while reading the card.** Enter confirms whatever the CLI has
504
506
  currently highlighted, so on a numbered dialog an Enter meant as "no" can land as an
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commandmate",
3
- "version": "0.46.0",
3
+ "version": "0.47.0",
4
4
  "description": "No long blocks of time? Run an AI team from your phone. Git worktree sessions, task contracts and verification gates for Claude Code, Codex, Gemini CLI, Copilot, OpenCode, Antigravity and Command Code.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -0,0 +1,40 @@
1
+ {
2
+ "version": "0.46.1",
3
+ "date": "2026-10-16",
4
+ "highlight": {
5
+ "ja": "Auto-Yes を切った直後や切り替えの最中に、古い回答が送られたり同じ確認に二重に答えたりする問題を直しました。",
6
+ "en": "Fixed Auto-Yes sending a stale answer, or answering the same prompt twice, right after it was turned off or switched."
7
+ },
8
+ "added": [],
9
+ "improved": [],
10
+ "fixed": [
11
+ {
12
+ "ja": "Auto-Yes を切った直後に、待ちの間に始まっていた回答が 1 回送られてしまう問題を直しました。",
13
+ "en": "Fixed an answer that had already started being sent once right after Auto-Yes was turned off."
14
+ },
15
+ {
16
+ "ja": "途中まで入力した回答が残っているとき、Auto-Yes が同じ確認にもう一度入力しないようにしました。",
17
+ "en": "Auto-Yes no longer types into the same prompt again when an earlier answer was left half-entered."
18
+ },
19
+ {
20
+ "ja": "worktree の名前が変わったときも、途中まで入力した回答の記録が引き継がれるようにしました。",
21
+ "en": "The record of a half-entered answer now carries over when a worktree is renamed."
22
+ },
23
+ {
24
+ "ja": "止めたセッションの古い処理が、返答の保存や完了の通知を遅れて出す問題を直しました。",
25
+ "en": "Fixed a stopped session's old work saving replies or sending completion notices late."
26
+ },
27
+ {
28
+ "ja": "予約送信をキャンセルしたのに送信されてしまうことがある問題を直しました。",
29
+ "en": "Fixed a scheduled message sometimes being sent even though it had been cancelled."
30
+ },
31
+ {
32
+ "ja": "Esc キーが、最大化したファイルや検索欄、メニューなどを前面のものから 1 つずつ閉じるようにしました。",
33
+ "en": "The Esc key now closes the front-most layer first, one at a time, such as a maximized file, a search box or a menu."
34
+ },
35
+ {
36
+ "ja": "チャットの検索で、記号を表す書き方(&lt; など)に一致したときも強調されるようにしました。",
37
+ "en": "Chat search now highlights matches on character references such as &lt;."
38
+ }
39
+ ]
40
+ }
@@ -0,0 +1,118 @@
1
+ {
2
+ "version": "0.47.0",
3
+ "date": "2026-10-21",
4
+ "highlight": {
5
+ "ja": "Auto-Yes が答えずに止まった確認を、CLI から画面を確かめたうえで直接答えられるようになりました。あわせて、Auto-Yes が答えてはいけない画面に答えたり、答えずに止まったりする問題を多数直しました。",
6
+ "en": "You can now answer a prompt that Auto-Yes left waiting directly from the CLI, after checking the screen. Many issues where Auto-Yes answered the wrong screen or stopped without answering are also fixed."
7
+ },
8
+ "added": [
9
+ {
10
+ "ja": "止まっている画面を CLI から 1 回観測して、種類・質問・選択肢を確かめられる commandmate prompt を追加しました。",
11
+ "en": "Added commandmate prompt, which observes a waiting screen once so you can check its kind, question and choices from the CLI."
12
+ },
13
+ {
14
+ "ja": "観測した画面にだけ答える厳格な respond を追加しました。画面が変わっていれば何も送りません。",
15
+ "en": "Added a strict respond mode that answers only the screen you observed, and sends nothing if the screen has changed."
16
+ },
17
+ {
18
+ "ja": "直前の送信が「未送信・送信済み・不確定」のどれかを、prompt の出力と送信の失敗メッセージで確かめられるようになりました。",
19
+ "en": "The prompt output and send error messages now tell you whether the last message was not sent, sent, or indeterminate."
20
+ },
21
+ {
22
+ "ja": "Codex の /config をスラッシュコマンドの一覧に追加しました。",
23
+ "en": "Added Codex's /config to the slash command list."
24
+ }
25
+ ],
26
+ "improved": [
27
+ {
28
+ "ja": "サーバーの再起動で外れた Auto-Yes を「再起動で解除」と表示するようになりました。",
29
+ "en": "Auto-Yes that was turned off by a server restart is now shown as Released by restart."
30
+ },
31
+ {
32
+ "ja": "契約で Auto-Yes が止められているとき、有効化の時点と一覧・画面でそのことが分かるようになりました。",
33
+ "en": "When a contract stops Auto-Yes, this is now shown when you enable it and in the lists and screens."
34
+ },
35
+ {
36
+ "ja": "Antigravity の信頼の確認で止まっているとき、画面に「端末で操作が必要」と表示するようになりました。",
37
+ "en": "When Antigravity is waiting on its folder trust prompt, the screen now says the terminal needs your input."
38
+ },
39
+ {
40
+ "ja": "start --daemon で起動したサーバーの出力を logs/server.log に残すようになりました。",
41
+ "en": "A server started with start --daemon now keeps its output in logs/server.log."
42
+ }
43
+ ],
44
+ "fixed": [
45
+ {
46
+ "ja": "Antigravity のログイン方法の画面や、表示が切れた許可の画面に、Auto-Yes が番号で答えうる問題を直しました。",
47
+ "en": "Fixed Auto-Yes possibly answering Antigravity's login method screen, or a cut-off permission screen, with a number."
48
+ },
49
+ {
50
+ "ja": "Antigravity の確認に Auto-Yes が答えないまま長時間止まることがある問題を直しました。",
51
+ "en": "Fixed Auto-Yes sometimes leaving an Antigravity prompt unanswered for a long time."
52
+ },
53
+ {
54
+ "ja": "Antigravity で答えた確認が画面に残り続けたとき、Auto-Yes が理由を残さずに黙る問題を直しました。",
55
+ "en": "Fixed Auto-Yes going silent without a reason when an answered Antigravity prompt stayed on screen."
56
+ },
57
+ {
58
+ "ja": "厳格な respond で、Antigravity の許可の確認のカーソル以外の選択肢を選べるようになりました。",
59
+ "en": "Strict respond can now choose options other than the highlighted one on Antigravity's permission prompt."
60
+ },
61
+ {
62
+ "ja": "厳格な respond で信頼の確認に No, exit と答えたとき、終了を正しく読み取るようになりました。",
63
+ "en": "Strict respond now correctly reports the session ending after answering No, exit on the trust prompt."
64
+ },
65
+ {
66
+ "ja": "Antigravity のターミナル画面が黒く見える問題を直しました。",
67
+ "en": "Fixed the Antigravity terminal view appearing blank."
68
+ },
69
+ {
70
+ "ja": "Submit と Cancel の確認画面に、Auto-Yes が答えないようにしました。",
71
+ "en": "Auto-Yes no longer answers Submit and Cancel confirmation pages."
72
+ },
73
+ {
74
+ "ja": "Gemini と Antigravity の起動時の信頼の確認を、安全な選択肢のときだけ通し、Auto-Yes と二重に答えないようにしました。",
75
+ "en": "Gemini and Antigravity startup trust prompts are now confirmed only on the safe option, and never answered twice with Auto-Yes."
76
+ },
77
+ {
78
+ "ja": "Copilot の信頼の確認に、Auto-Yes の入力がメッセージとして送られることがある問題を直しました。",
79
+ "en": "Fixed Auto-Yes input sometimes being sent as a message on Copilot's folder trust prompt."
80
+ },
81
+ {
82
+ "ja": "Antigravity の起動の後に出た信頼の確認が処理されず、通知も出ない問題を直しました。",
83
+ "en": "Fixed an Antigravity trust prompt shown after startup going unhandled without a notification."
84
+ },
85
+ {
86
+ "ja": "Auto-Yes が答える前に、答えていないという通知が誤って出ることがある問題を直しました。",
87
+ "en": "Fixed a not-answered notification sometimes being shown before Auto-Yes had a chance to answer."
88
+ },
89
+ {
90
+ "ja": "契約が止めた確認について、hooks の設定が原因であるかのような案内が出る問題を直しました。",
91
+ "en": "Fixed a hint that blamed the hooks setup for a prompt that a contract had stopped."
92
+ },
93
+ {
94
+ "ja": "再起動で解除された Auto-Yes の表示が、消えるべきときに消えないなどの問題を直しました。",
95
+ "en": "Fixed the released-by-restart Auto-Yes label not clearing when it should, among other display issues."
96
+ },
97
+ {
98
+ "ja": "Command Code の plan review で送信が断られたとき、未送信と表示するようにしました。",
99
+ "en": "A message refused by Command Code's plan review is now shown as not sent."
100
+ },
101
+ {
102
+ "ja": "送信の直後に、送信前の古い画面が表示されることがある問題を直しました。",
103
+ "en": "Fixed the screen sometimes showing the old content from before a message was sent."
104
+ },
105
+ {
106
+ "ja": "取り消した返答の受け渡しが、依頼元に届いてしまうことがある問題を直しました。",
107
+ "en": "Fixed a cancelled reply relay sometimes still being delivered."
108
+ },
109
+ {
110
+ "ja": "削除した worktree やサーバー停止の後に、スケジュールが作り直されることがある問題を直しました。",
111
+ "en": "Fixed schedules sometimes being recreated after a worktree was removed or the server was stopped."
112
+ },
113
+ {
114
+ "ja": "ターミナルの購読が残り続け、上限に達することがある問題を直しました。",
115
+ "en": "Fixed terminal subscriptions sometimes piling up until the limit was reached."
116
+ }
117
+ ]
118
+ }
@@ -1 +0,0 @@
1
- "use strict";exports.id=1789,exports.ids=[1789],exports.modules={682:(a,b,c)=>{c.d(b,{c:()=>f});let d=/^[^\S\n]*[│┃]?[^\S\n]*([❯›●>])?[^\S\n]*(\d{1,2})[.)][^\S\n]+(\S.*?)[^\S\n]*[│┃]?$/;function e(a){let b=d.exec(a);if(!b)return null;let c=Number(b[2]);return!Number.isInteger(c)||c<1?null:{glyph:b[1],number:c,label:b[3].trim()}}function f(a,b,c=8){let d=Math.min(b,a.length)-1,g=0,h=[],i=null;for(;d>=0&&g<=c;){let b=a[d];if(""===b.trim()){d--;continue}if(g++,i=e(b))break;h.unshift(b.trim()),d--}if(!i)return null;let j=d,k=[i],l=i.number-1,m=d-1,n=1,o=[];for(;l>=1&&m>=0&&n<=60;){let b=a[m];if(n++,""===b.trim()){m--;continue}let c=e(b);if(c&&c.number===l){k.unshift({...c,label:[c.label,...o].join(" ").trim()}),o=[],l--,m--;continue}if(c)break;o.unshift(b.trim()),m--}if(0!==l||k.length<2)return null;let p=k.findIndex(a=>void 0!==a.glyph);return{options:k.map(a=>a.label),selectedIndex:p,selectedGlyph:p<0?null:k[p].glyph??null,firstRow:m+1,lastRow:j,footer:h.join("\n")}}},1804:(a,b,c)=>{c.d(b,{BG:()=>g,MJ:()=>f,_:()=>l,hB:()=>k,iE:()=>d,jP:()=>e,ji:()=>i,u3:()=>j,yh:()=>h});let d={version:"2.1.240",capturedAt:"2026-08-23",paneGeometry:"200x1000"},e={version:"0.157.1",capturedAt:"2026-09-27",paneGeometry:"200x1000"},f={version:"1.0.82",capturedAt:"2026-09-04",paneGeometry:"200x1000"},g={version:"1.18.22",capturedAt:"2026-08-26",paneGeometry:"80x200"},h={version:"1.1.27",capturedAt:"2026-09-06",paneGeometry:"200x1000"},i={version:"1.54.1",capturedAt:"2026-09-20",paneGeometry:"200x1000"},j={version:"2.0.18",capturedAt:"2026-09-28",paneGeometry:"80x200"},k={version:"unmeasured",capturedAt:"never",paneGeometry:"unmeasured"},l={claude:d,codex:e,copilot:f,opencode:g,antigravity:h,"command-code":i,"opencode-v2":j,gemini:k,"vibe-local":k}},27789:(a,b,c)=>{c.d(b,{$I:()=>C,DR:()=>m,Dd:()=>B,E6:()=>y,Jn:()=>A,Mt:()=>g,Nc:()=>L,Qh:()=>u,RK:()=>s,UO:()=>H,X3:()=>z,Y7:()=>l,Zu:()=>J,aW:()=>G,bh:()=>E,gm:()=>n,ir:()=>D,mk:()=>i,pn:()=>F,sB:()=>p,zZ:()=>r});var d=c(51297),e=c(46423),f=c(65912);let g=/•\s*(Planning|Searching|Exploring|Running|Thinking|Working|Reading|Writing|Analyzing|Ran|Deciding)/m,h=/esc to interrupt/,i=/^[•◦]\s.*\((?:\d+h\s*)?(?:\d+m\s*)?\d+s\s*•\s*esc to interrupt\)/m,j=/^■ Conversation interrupted\b/,k=/^\d+ background terminals? running\b/;function l(a){let b=s(a);if(b<0)return!1;for(let c=b-1;c>=0;c--){let b=a[c].trim();if(!(""===b||k.test(b)))return j.test(b)}return!1}function m(a,b){let c=(0,d.aJ)(a.slice(Math.max(0,a.length-b)).join("\n"));if(h.test(c))return!0;let f=-1;for(let b=a.length-1;b>=Math.max(0,a.length-8);b--)if(n.test((0,d.aJ)(a[b]))){f=b;break}if(f<0)return g.test(c);let i=Math.max(0,f-e.$+1),j=(0,d.aJ)(a.slice(i,f+1).join("\n"));return g.test(j)}let n=/^›\s*/m,o=/Do you trust|Trust this folder\?/,p=RegExp(`Skip until next version|${o.source}|Press enter to continue|^\\s*›\\s*\\d+\\.\\s`,"m"),q=/^\s*›(?!\s*\d+\.)/;function r(a){let b=a.split("\n"),c=-1,d=-1;for(let a=0;a<b.length;a++){let e=b[a];if(p.test(e)){c=a;continue}q.test(e)&&(d=a)}return d>=0&&d>c}function s(a){for(let b=a.length-1;b>=0;b--)if(q.test(a[b]))return b;return -1}function t(a){if("string"!=typeof a){let b=a.liveRegion;return"codex"===b.tool?"composer"===b.anchor?a.contentLines.slice((b.composerEndRow??b.startRow)+1):a.contentLines:t(a.clean)}let b=a.split("\n");return b.slice(s(b)+1)}function u(a){let b=t(a).join("\n");return""===b?null:b.includes("Skip until next version")||b.includes("Update")&&b.includes("Skip")?"update":o.test(b)?"trust":b.includes("Press enter to continue")?"press-enter":null}let v=/press\s+t\s+to\s+trust\s+all\s*;/i,w=/press\s+t\s+to\s+trust\s*;/i,x=[/skip until next version/i,/^\s*[›❯]?\s*\d+\.\s*Update now/im];function y(a){let b=t(a),c=[];for(let a=b.length-1;a>=0&&c.length<12;a--)""!==b[a].trim()&&c.unshift(b[a]);if(0===c.length)return null;let d=c.join("\n");for(let a=c.length-1;a>=0;a--){let b=c[a];if(v.test(b))return"hooks-list";if(w.test(b))return"hooks-detail";if(B.test(b))break;if(x.some(a=>a.test(b)))return"update";if(o.test(b))return"trust";if(b.includes("Continue without trusting")&&d.includes("Hooks need review"))return"hooks-review"}return null}let z=/^─.*Worked for.*─+$/m,A=/press\s+enter\s+to\s+(?:confirm|select)/i,B=/esc\s+to\s+cancel/i,C=/^enter\s+to\s+submit\s*\|\s*esc\s+to\s+cancel$/im,D=/^enter\s+select\s*·\s*esc\s+back$/im,E=/^enter\s+default\s*·\s*s\s+session\s*·\s*esc\s+back$/im,F=/(?:↑\/↓|pgup\/pgdn|home\/end)\s+to\s+(?:scroll|page|jump)|to\s+edit\s+(?:prev|next|message)/i,G=/^\s*\S.*·\s*~?\/\S*\s*$/,H=/^\s*\S[^·]*·\s*~?\/\S*(?:\s*·[^\n]*|[^\S\n]{2,}\S[^\n]*)$/,I=/^›(\s|$)/;function J(a){let b=a.length-1;for(;b>=0&&""===(0,d.aJ)(a[b]).trim();)b--;if(b<0)return -1;let c=-1;for(let e=b;e>=Math.max(0,b-12);e--)if(I.test((0,d.aJ)(a[e]))){c=e;break}if(c<0)return -1;let e=(0,f.kT)(a[c]);if("composer"===e)return c;if(null!==e)return -1;for(let e=c+1;e<=b;e++)if(G.test((0,d.aJ)(a[e])))return c;return -1}let K=/^›\s+\S/;function L(a,b,c,e){let g=e;for(let e=Math.min(b,a.length)-1;e>=Math.max(0,b-c);e--){if(!K.test((0,d.aJ)(a[e])))continue;let b=(0,f.kT)(a[e]);if("option"!==b){if("transcript-echo"===b)return e;if(!g){g=!0;continue}return e}}return -1}},46423:(a,b,c)=>{c.d(b,{$:()=>d});let d=5},51297:(a,b,c)=>{c.d(b,{aJ:()=>f});let d="\\x1b\\][^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)";RegExp(d,"g");let e=RegExp(`\\x1b\\[[0-9;]*[a-zA-Z]|${d}|\\[[0-9;]*m`,"g");function f(a){return a.replace(e,"")}},61789:(a,b,c)=>{c.d(b,{OM:()=>ap,Ly:()=>an,lE:()=>ai,kT:()=>al,kn:()=>ak,HR:()=>aq,d0:()=>ao,VF:()=>aj,aU:()=>H.aU,l8:()=>H.l8,hx:()=>H.hx,XY:()=>H.XY,F0:()=>H.F0,Fw:()=>H.Fw,Dd:()=>i.Dd,sB:()=>i.sB,bh:()=>i.bh,$I:()=>i.$I,pn:()=>i.pn,ir:()=>i.ir,gm:()=>i.gm,Jn:()=>i.Jn,aW:()=>i.aW,Mt:()=>i.Mt,UO:()=>i.UO,jk:()=>av,WK:()=>at,k0:()=>au,E0:()=>_,JN:()=>W,rX:()=>ac,oD:()=>ae,Ub:()=>Q,Du:()=>N,V:()=>aa,A:()=>S,J7:()=>ag,rb:()=>O,Jr:()=>Y,Fg:()=>$,y:()=>X,tJ:()=>P,wN:()=>I,s0:()=>J,Cc:()=>u,vU:()=>k,Ty:()=>p,kD:()=>q,uA:()=>l,sy:()=>j,Md:()=>n,LO:()=>z,sx:()=>B,a2:()=>m,$t:()=>o,c7:()=>D,wK:()=>C,xL:()=>E,fW:()=>g,Dj:()=>K,b2:()=>L,KO:()=>aF,ut:()=>aD,GT:()=>H.GT,Zu:()=>i.Zu,RK:()=>i.RK,Nc:()=>i.Nc,I$:()=>aw,wv:()=>V,x7:()=>v,mu:()=>x,M4:()=>w,dF:()=>ay,_X:()=>aE,Qh:()=>i.Qh,E6:()=>i.E6,bH:()=>as,lX:()=>H.lX,zZ:()=>i.zZ,DR:()=>i.DR,Rx:()=>af,gT:()=>ab,Ok:()=>F,U1:()=>f,dx:()=>ar,Wn:()=>R,lQ:()=>H.lQ,aJ:()=>M.aJ,_A:()=>h,pV:()=>y,c:()=>aG});var d=c(72626);let e=new Set(["sh","bash","zsh","fish","dash","ksh","tcsh","csh"]);function f(a){return e.has(a.trim().replace(/^-/,""))}let g=/\[Pasted text #\d+/;function h(a){return a.split("\n").map(a=>/^[\u2502\u2503\u256D\u256E\u256F\u2570\u2500\u2579\u2580\u2588\s]+$/.test(a)?"":a.replace(/^\s*[\u2502\u2503]\s?/,"").replace(/\s*[\u2502\u2503\u2588]$/,"")).join("\n")}var i=c(27789);let j=/Ask anything(?:\.\.\.|\u2026)/,k=/^[^\S\n]*[\u2502\u2503][^\S\n]*Ask anything(?:\.\.\.|\u2026)/m,l=/tab agents\s+ctrl\+p commands/,m=/Thinking:/,n=/\u25A3\s+\w+\s+·\s+\S+(?:\s+·\s+(?:[\d]+h\s*)?(?:[\d]+m\s*)?[\d.]+s)?/,o=/\u25A3\s+\w+\s+·\s+[^·\n]+·\s+(?:\d+h\s*)?(?:\d+m\s*)?[\d.]+s/,p=/^[^\S\n]*[\u2502\u2503][^\S\n]*Allow once[^\S\n]+Allow always[^\S\n]+Reject\b/m,q=/esc (?:again to )?interrupt/,r=/^[^\S\n]*╹▀{4,}/,s=/^[^\S\n]*[│┃]/,t=/^[^\S\n]*[│┃][^\S\n]*\S/,u=/\d+(?:\.\d+)?[KMGT]?\s+\(\d+%\)\s+·\s+\$/;function v(a){let b=a.length-1;for(;b>=0&&""===a[b].trim();)b--;if(b<0)return -1;let c=b=>{let c=b;for(;c-1>=0&&s.test(a[c-1]);)c--;return c};for(let d=b;d>=0;d--)if(r.test(a[d]))return c(d);return s.test(a[b])?c(b):-1}function w(a,b){let c=b>=0?b:a.length;for(let b=c-1;b>=0;b--){if(!t.test(a[b]))continue;let d=b;for(;d+1<c&&s.test(a[d+1]);)d++;return d}return -1}function x(a){let b=-1;for(let c=a.length-1;c>=0;c--)if(r.test(a[c])){b=c;break}if(b<0)return null;let c=b;for(;c-1>=0&&s.test(a[c-1]);)c--;let d=b-1;return d<c?null:a.slice(c,d)}function y(a){return a.replace(s,"").trim()}let z=/^[^\S\n]*(?:Select[^\S\n]+(?:model|provider)|Connect[^\S\n]+a[^\S\n]+provider)[^\S\n]{2,}esc[^\S\n]*$/m,A=/^[\u2503\u2579\u25A3\u2580\u2500\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C]+$/,B=[A,/\u2B1D{4,}/,/^Build\s+/,l,q,j,u,g],C=/^[^\S\n]*[\u2502\u2503][^\S\n]*Ask anything(?:\.\.\.|\u2026)/m,D=/ctrl\+p commands/,E=/esc interrupt/;function F(a){return C.test(a)||D.test(a)}let G=[A,D,E,/Ask anything(?:\.\.\.|\u2026)/,/^Build\s+·/,g];var H=c(79204);let I=/^[>❯]\s*$|^\s*[>❯]\s+Type your message.*$/m,J=/[\u2800-\u28FF]|Thinking\.\.\./,K=/ctx:\d+%\s*[>❯]/m,L=/[\u2800-\u28FF]|Thinking|⠋|⠙|⠹|⠸|⠼|⠴|⠦|⠧|⠇|⠏|Running|Executing/;var M=c(51297);let N=/^[>❯]\s|^\?\s+/m,O=/[\u2800-\u28FF]|\(Esc to cancel|Reasoning\s+[■▪▮]|\.\.\.\s+Thinking/,P=/\besc\s+interrupt\b/,Q=/\/\s+commands\b|\?\s+(?:help\b|for\s+shortcuts\b)/;function R(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if(""!==c.trim()){if(P.test(c))return"working";if(Q.test(c))return"idle";break}}return null}let S=/^─{10,}$/m,T=/^(?:─{10,}|╻▄{10,}|╹▀{10,})$/,U=/^ {0,2}[>❯┃]/;function V(a){let b=a=>T.test((0,M.aJ)(a).trim()),c=a.length-1;for(;c>=0&&""===(0,M.aJ)(a[c]).trim();)c--;if(c<0)return -1;let d=-1;for(let e=c;e>=Math.max(0,c-2);e--)if(b(a[e])){d=e;break}if(d<0)return -1;let e=-1;for(let c=d-1;c>=Math.max(0,d-40);c--)if(b(a[c])){e=c;break}return e<0||!U.test((0,M.aJ)(a[e+1]??""))?-1:Math.max(0,e-1)}let W=/^\s*[│└╰╭╮╯├┤┬┴┼]/,X=/^ {0,2}[>❯]\s+\S/,Y="Get|Read|Run|Search|Write|Edit|Delete|List|Create|Fetch|Explore|Execute|Install|Asked user|Asking user|Model changed to:",Z=RegExp(`^\\s*(?:\\/|\\{\\}|[A-Z][A-Z0-9+#]{1,3})\\s+(?:${Y})[\\s:]`),$=/^ {2,}\S/,_=[/No copilot-instructions\.md found/,/Copilot uses AI, so always check for mistakes\./,/Copilot v\d[\w.]*\s+uses AI/,/^\s*(?:●\s+)?GitHub Copilot\s+v\d/m,/^\s*(?:●\s+)?Tip:\s*\//m,/Describe a task to get started/,/Prefer a visual workspace\?/,/what would you like to work on\?/i],aa=/^(?=[^\n]*·)[^\n]*(?:↑\/?↓|\besc\s+(?:to\s+)?(?:cancel|close)\b)/m;function ab(a){if(null!==R(a))return!1;let b=0;for(let c=a.length-1;c>=0;c--){let d=a[c],e=d.trim();if(""!==e){if(++b>3)break;if(!(e.startsWith("│")||e.endsWith("│"))&&aa.test(d))return!0}}return!1}let ac=["Confirm folder trust","Do you trust the files in this folder?"],ad=/^[ \t]*(?:[>❯][ \t]*)?1\.[ \t]+Yes[ \t]*$/m,ae="1";function af(a){return!!ac.every(b=>a.includes(b))&&ad.test(h(a))}let ag=[g,S,O,aa,/^\s*⌄\s/,/^\s*[╻╹]?[▀▄]{10,}\s*$/,Z,W,/^GitHub Copilot\s+v/,/[█▘▝▖▗▔▄▌▐]/,/[╭╮╰╯│]/,/\[⎇\s+\w[^\]]*\]/,/^shift\+tab\s/,/^\?\s+for\s+shortcuts/,/^ctrl\+[a-z]\s+\w/,/^[❯>]\s*(Type\s+@|$)/,/^\s*(?:●\s+)?Tip:\s*\//,/^\s*Current\s+Sessions\s+Issues\s+Pull requests\s+Gists\s*$/,/^Describe a task to get started/,/^Copilot uses AI, so always check for mistakes\.$/,/^● 💡/,/^● Environment loaded:/],ah=">[^\\S\\n]+[A-Z][A-Za-z-]*[^\\S\\n]mode:[^\\n]*\\(shift\\+tab to cycle\\)[^\\S\\n]*";RegExp(`^${ah}$`,"m");let ai=RegExp(`^(?:>\\s*|${ah})$`,"m"),aj=/[\u2800-\u28FF]|Generating|esc to cancel/,ak=/^─{3,}$/m,al=/Switch Model|↑\/↓\s*Navigate/m,am=/↑\/↓\s*Navigate/,an=/^\s*>?\s*\d+\.\s+\S/m,ao=/^\s*Switch Model\s*$/,ap=/^\s*(?:─{3,}\s*$|[●⎿▸]|>(?!\s*\d+\.\s+\S))/,aq=/^\s*\[1\]\s*Good\s+\[2\]\s*Fine\s+\[3\]\s*Bad\s+\[0\]\s*Skip\s*$/m;function ar(a){let b=-1;for(let c=a.length-1;c>=0;c--)if(am.test(a[c])){b=c;break}if(b<0)return null;for(let c=b+1;c<a.length;c++)if(ai.test(a[c]))return null;let c=Math.max(0,b-60),d=c;for(let e=b-1;e>=c;e--)if(ap.test(a[e])){d=e+1;break}return{start:d,footer:b}}function as(a){let b=a.split("\n"),c=ar(b);if(null===c)return!1;let d=0;for(let a=c.start;a<c.footer;a++){let c=b[a];if(ao.test(c))return!1;an.test(c)&&d++}return d>=2}let at=/^❯(\s*$|\s+\S)/m,au=RegExp(`^[^\\S\\n]*[\xb7○◇☆✧⌘][^\\S\\n]+[A-Za-z]+…|^[^\\S\\n]*✻ Thinking…|${/esc to interrupt/.source}`,"m"),av=/\?\s+for\s+shortcuts|»\s+accept edits on|»\s+permission bypass on|»\s+don't-ask on|^[^\S\n]*plan mode\s/m;function aw(a){let b=a=>/^─{10,}$/.test((0,M.aJ)(a??"").trimEnd()),c=a.length-1;for(;c>=0&&""===a[c].trim();)c--;if(c<0)return -1;let d=-1;for(let e=c;e>=Math.max(0,c-4);e--)if(b(a[e])){d=e;break}if(d<0)return -1;let e=-1;for(let c=d-1;c>=Math.max(0,d-40);c--)if(b(a[c])){e=c;break}return e<0||!/^❯/.test((0,M.aJ)(a[e+1]??""))?-1:e}let ax=/^[^\S\n]*[^\s\u2502\u2503\u2579\u2580][^\n]*?[^\S\n]{8,}esc[^\S\n]*$/m;function ay(a){let b=ax.exec(a);return null===b?null:b[0].trim().replace(/\s+esc$/,"")}let az=(0,d.h)("cli-patterns"),aA={claude:{promptPattern:H.hx,separatorPattern:H.g0,thinkingPattern:H.j7,skipPatterns:[/^─{10,}$/,/^[>❯]\s*$/,H.j7,/^\s*[⎿⏋]\s+Tip:/,/^\s*Tip:/,/^\s*\?\s*for shortcuts/,/to interrupt\)/,g],promptOptions:{requireDefaultIndicator:!1},fullFramePrompt:!0},codex:{promptPattern:i.gm,separatorPattern:i.X3,thinkingPattern:i.Mt,skipPatterns:[/^─.*─+$/,/^›\s*$/,/^›\s+(Implement|Find and fix|Type)/,i.Mt,/^\s*\d+%\s+context left/,/^\s*for shortcuts$/,/╭─+╮/,/╰─+╯/,/•\s*Ran\s+/,/^\s*└/,/^\s*│/,/\(.*esc to interrupt\)/,g],promptOptions:void 0,fullFramePrompt:!0},gemini:{promptPattern:I,separatorPattern:/^[─━]{3,}$/m,thinkingPattern:J,skipPatterns:[I,J,/^\s*$/,/Gemini\s+\d+\.\d+/,g],promptOptions:void 0,fullFramePrompt:!1},"vibe-local":{promptPattern:K,separatorPattern:/^[·]{10,}$/m,thinkingPattern:L,skipPatterns:[K,L,/^\s*$/,/vibe-local|vibe-coder/,/ctx:\s*\d+%/,/Model\s+\w/,/Engine\s+\w/,/Mode\s+/,/RAM\s+/,/CWD\s+/,/^[·]{10,}$/,/✦\s*Ready/,/ESC:\s*stop/,g],promptOptions:void 0,fullFramePrompt:!1},opencode:{promptPattern:j,separatorPattern:A,thinkingPattern:m,skipPatterns:B,promptOptions:{requireDefaultIndicator:!1,hasNumberedDialogs:!1},fullFramePrompt:!0},copilot:{promptPattern:N,separatorPattern:S,thinkingPattern:O,skipPatterns:ag,promptOptions:{requireDefaultIndicator:!1},fullFramePrompt:!0},antigravity:{promptPattern:ai,separatorPattern:ak,thinkingPattern:aj,skipPatterns:[ak,/^>\s*$/,/^\?\s+for\s+shortcuts/,aj,/[▄▀█▌▐]/,g],promptOptions:{requireDefaultIndicator:!1},fullFramePrompt:!1},"command-code":{promptPattern:at,separatorPattern:/^─{10,}$/m,thinkingPattern:au,skipPatterns:[/^─{10,}$/,/^❯\s*$/,/^❯\s+Ask your question\.\.\./,av,au,/^[^\S\n]*✻\s+(?:Worked|Thought)\s+for\b/,/^[^\S\n]*◼\s+Ran\s+\d+\s+.*hooks?\b/,/^#\s+Command Code v\d/,/^#\s+models:\s/,/^#\s+[~/]/,/^[^\S\n]*[█▀▄▌▐]{3,}/,g],promptOptions:void 0,fullFramePrompt:!1},"opencode-v2":{promptPattern:C,separatorPattern:A,thinkingPattern:E,skipPatterns:G,promptOptions:void 0,fullFramePrompt:!1}};function aB(a){return Object.prototype.hasOwnProperty.call(aA,a)?aA[a]:void 0}function aC(a){return aB(a)??aA.claude}function aD(a,b){let c=az.withContext({cliToolId:a});c.debug("detectThinking:check",{contentLength:b.length});let d=aC(a).thinkingPattern.test(b);return c.debug("detectThinking:result",{isThinking:d}),d}function aE(a){let b=aC(a);return{promptPattern:b.promptPattern,separatorPattern:b.separatorPattern,thinkingPattern:b.thinkingPattern,skipPatterns:[...b.skipPatterns]}}function aF(a){let b=aB(a)?.promptOptions;return void 0===b?void 0:{...b}}function aG(a){return aB(a)?.fullFramePrompt??!1}},65912:(a,b,c)=>{c.d(b,{AT:()=>p,Gs:()=>n,kT:()=>j,kp:()=>k,t:()=>l});var d=c(72626),e=c(682);let f=(0,d.h)("codex-dialog-rules"),g={version:"0.157.1"},h=/press\s+\S+\s+to\s+\S|esc\s+(?:to\s+)?(?:cancel|close|dismiss|quit|exit|back|go\s+back|skip)/i,i={bold:!1,dim:!1,fg:null};function j(a){if(!a.includes("\x1b"))return null;let b=function(a){let b=[],c=i,d=0;for(;d<a.length;){let e=a[d];if("\x1b"!==e){b.push({ch:e,attrs:c}),d++;continue}let f=a[d+1];if("["===f){let b=d+2;for(;b<a.length&&!/[A-Za-z]/.test(a[b]);)b++;if(b>=a.length)break;"m"===a[b]&&(c=function(a,b){let c=""===a?["0"]:a.split(";"),{bold:d,dim:e,fg:f}=b;for(let a=0;a<c.length;a++){let b=""===c[a]?0:Number(c[a]);if(!Number.isNaN(b)){if(38===b){let b=""===c[a+1]||void 0===c[a+1]?-1:Number(c[a+1]),d=5===b?2:2===b?4:1;f=c.slice(a+1,a+1+d).join(";"),a+=d;continue}if(48===b||58===b){let b=""===c[a+1]||void 0===c[a+1]?-1:Number(c[a+1]);5===b?a+=2:2===b?a+=4:a+=1;continue}0===b?(d=!1,e=!1,f=null):1===b?d=!0:2===b?e=!0:22===b?(d=!1,e=!1):39===b?f=null:(b>=30&&b<=37||b>=90&&b<=97)&&(f=String(b))}}return{bold:d,dim:e,fg:f}}(a.slice(d+2,b),c)),d=b+1;continue}if("]"===f){let b=d+2;for(;b<a.length;){if("\x07"===a[b]){b++;break}if("\x1b"===a[b]&&"\\"===a[b+1]){b+=2;break}b++}d=b;continue}d+=2}return b}(a),c=b.findIndex(a=>""!==a.ch.trim());if(c<0||"›"!==b[c].ch)return null;let d=b[c].attrs;if(d.dim)return"transcript-echo";let e=b.slice(c+1).find(a=>""!==a.ch.trim());return e?.attrs.bold?"option":e?.attrs.dim?"composer":null!==d.fg&&e?.attrs.fg===d.fg?"option":"composer"}function k(a){let b=a.split("\n");for(let a=b.length-1;a>=0;a--){let c=j(b[a]);if(null!==c)return{kind:c,row:a}}return null}function l(a,b,c){let d=k(a),f=(0,e.c)(b,c),g=null!==f&&"›"===f.selectedGlyph,i=d?.kind==="option"?"glyph":g&&d?.kind!=="composer"&&d?.kind!=="transcript-echo"?"numbered-block":null;if(null===i)return null;let j=null!==f?f.footer:function(a,b,c){let d=[];for(let e=b+1;e<c&&d.length<8;e++){let b=a[e].trim();""!==b&&d.push(b)}return d.join("\n")}(b,function(a,b){for(let c=Math.min(b,a.length)-1;c>=0;c--)if(a[c].trimStart().startsWith("›"))return c;return -1}(b,c),c);return{by:i,options:f?.options??[],footer:j,footerRecognised:h.test(j)}}let m=/^\s*›\s*\d{1,2}[.)]\s/;function n(a,b,c){let d=k(a);if(null!==d)return"composer"===d.kind;let e=Math.min(c,b.length)-1;for(;e>=0&&""===b[e].trim();)e--;if(e<0)return!1;let f=b[e];return f.trimStart().startsWith("›")&&!m.test(f)}let o=new Set;function p(a){let b=a.slice(0,200);!o.has(b)&&(o.size>=64||(o.add(b),f.warn("codexDialogFooterUnrecognised",{footer:b,verifiedAgainst:g.version,hint:"codex reworded a dialog footer; widen CODEX_DIALOG_FOOTER_PATTERN after re-capturing the frame"})))}},79204:(a,b,c)=>{c.d(b,{F0:()=>v,Fw:()=>w,GT:()=>n,Tk:()=>h,V2:()=>e.iE,W1:()=>f,Wq:()=>i,XY:()=>u,aU:()=>k,g0:()=>m,hx:()=>l,j7:()=>j,ji:()=>g,l8:()=>t,lQ:()=>q,lX:()=>r});var d=c(94154),e=c(1804);let f=/^\s*[✻✽✶✢✳⦿◉●·⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]\s+\S+\s+for\s+(?:\d+m\s*)?\d+(?:\.\d+)?s(?:\s|$|\s*·)/,g=/^\s*╭─+\s*Claude Code v/,h=/^\s*[>❯]\s+\S/,i=/·\s*\/effort\s*$/,j=RegExp(`[✻✽⏺\xb7∴✢✳✶⦿◉●○◌◎⊙⊚⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]\\s+.+…|esc to interrupt`,"m"),k=/esc to interrupt/,l=/^[>❯](\s*$|\s+\S)/m,m=/^─{10,}$/m;function n(a){let b=(0,d.p4)(a);return null===b?-1:Math.max(0,b.openingSeparator-1)}let o=/Yes, I trust this folder/m,p=/^\s*[>❯]\s+\S/;function q(a){let b=a.split("\n"),c=s(b);if(-1===c)return null;for(let a=0;a<=3;a++)for(let d of 0===a?[0]:[-1,1]){let e=c+d*a;if(e<0||e>=b.length||!p.test(b[e]))continue;let f=d<0?"Down":"Up";return[...Array(a).fill(f),"Enter"]}return null}function r(a){return -1!==s(a.split("\n"))}function s(a){for(let b=a.length-1;b>=0;b--)if(o.test(a[b]))return a.slice(b+1).some(a=>m.test(a))?-1:b;return -1}let t=/Enter\s+to\s+set\s+as\s+default\b/i,u=/Enter\s+to\s+(?:select\s+.*to\s+navigate|confirm\s+·\s+(?:Esc|s\s+for\s+this\s+session\s+only)|set\s+as\s+default)/,v=["Claude Code cannot be launched inside another Claude Code session"],w=[/^Error:.*Claude Code/]},94154:(a,b,c)=>{c.d(b,{ji:()=>l,mO:()=>i,p4:()=>f,wn:()=>k});var d=c(51297);let e=/^[>❯]/;function f(a){let b=a=>/^─{10,}$/.test((0,d.aJ)(a).trimEnd()),c=a.length-1;for(;c>=0&&""===a[c].trim();)c--;if(c<0)return null;let f=-1;for(let d=c;d>=Math.max(0,c-4);d--)if(b(a[d])){f=d;break}if(f<0)return null;let g=-1;for(let c=f-1;c>=Math.max(0,f-40);c--)if(b(a[c])){g=c;break}return g<0||!e.test((0,d.aJ)(a[g+1]??""))?null:{openingSeparator:g,closingSeparator:f}}let g=/^\u203A/;function h(a){return void 0===a||""===(0,d.aJ)(a).trim()}function i(a){let b=a.length-1;for(;b>=0&&h(a[b]);)b--;if(b<0)return null;for(let c=0;c<4&&b>=0;c++){let c=b,d=b;for(;d>0&&!h(a[d-1]);)d--;if(function(a){if(void 0===a)return!1;let b=j(a);if(0===b.length||"›"!==b[0].ch||b[0].dim||b.length>1&&" "!==b[1].ch)return!1;let c=b.slice(2).find(a=>" "!==a.ch);return void 0===c||!c.bold}(a[d]))return{firstRow:d,lastRow:Math.min(c,d+40-1)};for(b=d-1;b>=0&&h(a[b]);)b--}return null}function j(a){let b=[],c={dim:!1,bold:!1},d=0;for(;d<a.length;){let e=a[d];if("\x1b"!==e){b.push({ch:e,dim:c.dim,bold:c.bold}),d++;continue}let f=a[d+1];if("["===f){let b=d+2;for(;b<a.length&&!/[A-Za-z]/.test(a[b]);)b++;if(b>=a.length)break;"m"===a[b]&&(c=function(a,b){let c=""===a?["0"]:a.split(";"),{dim:d,bold:e}=b;for(let a=0;a<c.length;a++){let b=""===c[a]?0:Number(c[a]);if(!Number.isNaN(b)){if(38===b||48===b||58===b){let b=""===c[a+1]||void 0===c[a+1]?-1:Number(c[a+1]);5===b?a+=2:2===b?a+=4:a+=1;continue}0===b||22===b?(d=!1,e=!1):1===b?e=!0:2===b&&(d=!0)}}return{dim:d,bold:e}}(a.slice(d+2,b),c)),d=b+1;continue}if("]"===f){let b=d+2;for(;b<a.length;){if("\x07"===a[b]){b++;break}if("\x1b"===a[b]&&"\\"===a[b+1]){b+=2;break}b++}d=b;continue}d+=2}return b}let k=new Set(["claude","codex"]);function l(a,b){if(!k.has(b))return{text:"",state:"unsupported_tool"};let c=a.split("\n"),d=function(a,b){if("claude"===b){let b=f(a);return null===b?null:{firstRow:b.openingSeparator+1,lastRow:b.closingSeparator-1,glyph:e}}let c=i(a);return null===c?null:{firstRow:c.firstRow,lastRow:c.lastRow,glyph:g}}(c,b);if(null===d)return{text:"",state:"no_composer"};let h=[],l=[];for(let a=d.firstRow;a<=d.lastRow;a++){let b=function(a,b,c){if(b){let b=a.findIndex(a=>c.test(a.ch));if(b<0)return a;let d=b+1;return d<a.length&&/\s/.test(a[d].ch)&&d++,a.slice(d)}let d=0;for(;d<2&&d<a.length&&" "===a[d].ch;)d++;return a.slice(d)}(j(c[a]??""),a===d.firstRow,d.glyph);h.push(b.filter(a=>!a.dim).map(a=>a.ch).join("").trimEnd()),l.push(b.map(a=>a.ch).join("").trimEnd())}let n=m(h).join("\n");return""!==n.trim()?{text:n.slice(0,2e3),state:"content"}:{text:"",state:""===m(l).join("\n").trim()?"empty":"ghost"}}function m(a){let b=a.length;for(;b>0&&""===a[b-1].trim();)b--;return a.slice(0,b)}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=2908,exports.ids=[850,2839,2908,5220,9130],exports.modules={2669:(a,b,c)=>{c.d(b,{JI:()=>n,M7:()=>d,Sr:()=>h,Zf:()=>f,c7:()=>e,lU:()=>k,mR:()=>j,qO:()=>i,su:()=>m,wQ:()=>l});let d="SESSION_STARTING",e="SESSION_START_FAILED",f="SESSION_START_UNAVAILABLE",g=[d,e];class h extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}function i(a,b){return`${a} exited before reaching its input prompt: the tmux session '${b}' is back at a shell, so this is not a slow start and waiting will not help. The message was not delivered. Run \`commandmate capture <worktree-id>\` to see why it exited (for example a startup dialog answered with exit, or a missing login), fix that, then send again.`}class j extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}class k extends Error{constructor(a,b=`${a} is not installed. Please install it first.`){super(b),this.toolName=a,this.code=f,this.name="SessionStartUnavailableError"}}function l(a){return o(a)===d}function m(a){let b=o(a);return void 0!==b&&g.includes(b)}function n(a){return o(a)===f}function o(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K9,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(59409);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},39687:(a,b,c)=>{c.d(b,{d:()=>t});var d=c(56791),e=c(8360),f=c(15194),g=c(95220),h=c(12462),i=c(43015),j=c(54325),k=c(72626),l=c(34331),m=c(40964),n=c(58707),o=c(2669),p=c(49319);let q=(0,k.h)("session/send-user-message");function r(a){return a instanceof Error?a.message:String(a)}async function s(a,b){let c=`${a}:${b}`,d=Date.now()+5e3;for(;(0,g.getActivePollers)().includes(c);){if(Date.now()>=d)return!1;await new Promise(a=>setTimeout(a,100))}return!0}async function t(a,b){let{worktreeId:c,content:k,cliToolId:t,instanceId:u,absoluteImagePath:v,copilotModel:w}=b,x=b.messageType??"normal",y=u??t,z=e.CLIToolManager.getInstance().getTool(t),A=(0,m.mf)(t,c,u),B=await (0,l.L)(c,A,a);if(null===B||"foreign"===B.verdict)return q.warn("send-refused-foreign-session",{worktreeId:c,cliToolId:t,instanceId:y,sessionName:A,sessionPath:B?.sessionPath??null,reason:B?"foreign":"worktree_not_found"}),{ok:!1,stage:"foreign_session",error:B?`tmux session "${A}" belongs to another CommandMate server`:`Worktree '${c}' not found; cannot confirm tmux session "${A}" is this server's`};let C=await (0,n.a3)(c,t,u,{ignoreStructured:b.ignoreStructuredPromptGuard});if(C.waiting)return q.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:t,reason:C.reason,blockedBy:C.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,n.br)(c,C.blockedBy)};if(w&&"copilot"===t){try{await z.sendModelCommand(c,w,u),q.info("copilot-model-command-sent",{model:w})}catch(a){return q.error("failed-to-send-model-command:",{error:r(a)}),{ok:!1,stage:"model",error:r(a)}}await s(c,y)||q.warn("previous-turn-poller-still-running",{worktreeId:c,instanceId:y,waitedMs:5e3})}let D=new Date;try{await (0,h.o4)(a,c,t,D,u)}catch(a){q.error("failed-to-save-pending-assistant-response:",{error:r(a)})}let E=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:t,instanceId:y,matchResolvedInstance:!0});b.length>0&&"user"===b[0].role&&b[0].content===k&&(E=b[0].id)}catch(a){q.error("failed-to-detect-orphaned-messages:",{error:r(a)})}try{v?(0,f._J)(z)?await z.sendMessageWithImage(c,k,v,u):await z.sendMessage(c,(0,p.TZ)(k,v),u):await z.sendMessage(c,k,u)}catch(a){if(q.error("failed-to-send-message-to:",{error:r(a)}),(0,o.wQ)(a))return{ok:!1,stage:"send",error:a.message,code:o.M7};return{ok:!1,stage:"send",error:r(a)}}let F=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:x,timestamp:D,cliToolId:t,instanceId:u,requestId:b.requestId});try{(0,i.broadcastMessage)("message",{worktreeId:c,message:{...F,cliToolId:t,instanceId:y}})}catch(a){q.warn("user-message-broadcast-failed",{error:r(a)})}if(E)try{if((0,d.deleteMessageById)(a,E)){q.info("cleaned-up-orphaned-user");try{(0,i.broadcastMessage)(j.dz,{worktreeId:c,cliToolId:t,instanceId:y,reason:"orphan_cleanup"})}catch(a){q.warn("orphan-cleanup-broadcast-failed",{error:r(a)})}}}catch(a){q.error("failed-to-clean-up-orphaned-message:",{error:r(a)})}return(0,d.updateLastUserMessage)(a,c,k,D),(0,d.clearInProgressMessageId)(a,c,t,u),q.info("cleared-in-progress-message"),(0,g.startPolling)(c,t,u),{ok:!0,message:F}}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(8360),e=c(31990),f=c(95595),g=c(34405),h=c(72626),i=c(30008);let j=(0,h.h)("prompt-waiting-guard"),k="PROMPT_WAITING";async function l(a,b,c,h){try{let k=d.CLIToolManager.getInstance().getTool(b);if(!await k.isRunning(a,c))return{waiting:!1};let l=await (0,e.Wh)(a,b,g._,c),m=(0,f.WC)(l,b),n=(0,i._G)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:m.status,reason:m.reason,hasActivePrompt:m.hasActivePrompt},ignoreStructured:h?.ignoreStructured});if(!n.blocksSend)return null!==n.structuredSendBlockSuppressed&&j.info("structured-send-guard-not-applied",{worktreeId:a,cliToolId:b,instanceId:c,suppressed:n.structuredSendBlockSuppressed,promptWaitingSince:n.structured?.at??null}),{waiting:!1};return{waiting:!0,reason:n.blockReason??void 0,blockedBy:n.blockedBy??void 0}}catch(c){return j.warn("prompt-waiting-check-failed",{worktreeId:a,cliToolId:b,error:c instanceof Error?c.message:String(c)}),{waiting:!1}}}function m(a,b){let c=`${a} is waiting on a prompt. Sending now would type into the prompt's input line instead of reaching the agent, and would leave that text in place for the next answer. Answer the prompt first: \`commandmate respond ${a} <answer>\`.`;if("structured"!==b)return c;let d=Math.round(i.j0/6e4);return`${c} This dialog was reported by the agent's own hooks and is not visible to the terminal scraper, so if the pane looks idle the record has outlived its dialog: it stops blocking sends ${d} minutes after it was reported, or immediately with \`commandmate send ${a} <message> --ignore-structured-prompt\` (server-wide: ${i.F1}=off).`}},85775:(a,b,c)=>{c.d(b,{Tm:()=>p,x4:()=>n,xJ:()=>o});var d=c(34129),e=c(8360),f=c(88807),g=c(72626),h=c(87374),i=c(39687),j=c(36925);let k=(0,g.h)("timer-manager");function l(){return(0,j.v)("__timerManagerState",()=>({timers:new Map,timerWorktrees:new Map,initialized:!1}))}async function m(a){let b=l(),c=(0,f.getDbInstance)();try{let b=(0,d.kx)(c,a);if(!b||"pending"!==b.status)return;let f=e.CLIToolManager.getInstance().getTool(b.cliToolId),g=b.instanceId;if(!await f.isRunning(b.worktreeId,g)){k.warn("timer:no-session",{timerId:a,worktreeId:b.worktreeId,instanceId:g}),(0,d.j2)(c,a,h.HR.NO_SESSION);return}(0,d.j2)(c,a,"sending");let j=await (0,i.d)(c,{worktreeId:b.worktreeId,content:b.message,cliToolId:b.cliToolId,instanceId:g});if(!j.ok){let b=`[${j.stage}] ${j.error}`;(0,d.j2)(c,a,"failed",void 0,b),k.error("timer:send-failed",{timerId:a,stage:j.stage,error:j.error});return}(0,d.j2)(c,a,"sent",Date.now()),k.info("timer:sent",{timerId:a,worktreeId:b.worktreeId})}catch(e){let b=e instanceof Error?e.message:String(e);try{(0,d.j2)(c,a,"failed",void 0,b)}catch{}k.error("timer:send-failed",{timerId:a,error:b})}finally{b.timers.delete(a),b.timerWorktrees.delete(a)}}function n(a,b,c){let d=l(),e=setTimeout(()=>{m(a)},c);d.timers.set(a,e),d.timerWorktrees.set(a,b)}function o(a){let b=l(),c=b.timers.get(a);c&&(clearTimeout(c),b.timers.delete(a),b.timerWorktrees.delete(a));let e=(0,f.getDbInstance)();(0,d.Ud)(e,a)}function p(a){let b=l(),c=(0,f.getDbInstance)();for(let[c,d]of b.timerWorktrees)if(d===a){let a=b.timers.get(c);a&&clearTimeout(a),b.timers.delete(c),b.timerWorktrees.delete(c)}(0,d.$$)(c,a)}},95220:(a,b,c)=>{c.r(b),c.d(b,{accumulateTuiContent:()=>g.IZ,cleanClaudeResponse:()=>f.NN,cleanCopilotResponse:()=>f.LH,cleanGeminiResponse:()=>f.IS,cleanOpenCodeResponse:()=>f.aW,clearPromptHashCache:()=>h.iX,clearTuiAccumulator:()=>g.q1,extractCopilotContentLines:()=>g.o0,extractTuiContentLines:()=>g.K0,findOverlapIndex:()=>g.vQ,getAccumulatedContent:()=>g.Uz,getActivePollers:()=>d.KQ,initTuiAccumulator:()=>g.tb,isDuplicatePrompt:()=>h.gv,isOpenCodeComplete:()=>e.bE,migrateResponsePollerWorktreeIds:()=>d.sR,normalizeCopilotLine:()=>g.IW,normalizePromptForDedup:()=>h.zm,renamePromptHashCacheKey:()=>h.i2,resolveExtractionStartIndex:()=>e.QM,startPolling:()=>d.g8,stopAllPolling:()=>d.fq,stopPolling:()=>d.Et,truncateMessage:()=>f.Sj});var d=c(45146),e=c(60),f=c(82450),g=c(13033),h=c(72457)}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=3718,exports.ids=[3718],exports.modules={4803:(a,b,c)=>{c.d(b,{H2:()=>i,eM:()=>f,kN:()=>e,tP:()=>l});let d=/^\[[ xX\u2714]\] /;function e(a){return a.some(a=>d.test(a.label))}function f(a){return!0===a.multiSelect||e(a.options)}let g=/^yes\b/i,h=[/^no\b/i,/\bdeny\b/i];class i extends Error{constructor(a){super(a),this.name="PromptAnswerResolutionError"}}function j(a){return h.some(b=>b.test(a))}function k(a){return g.test(a)&&!j(a)}function l(a){let{answer:b,useDefault:c,promptData:d,fallbackPromptType:e}=a;if(c){if(d?.type==="multiple_choice"){if(f(d))throw new i('Multi-select (checkbox) prompts have no default answer: the cursor marks the row a key would toggle, not a choice. Answer with the option numbers you want ticked, comma-separated (for example "1,3").');let a=function(a){let b=a.find(a=>a.isDefault)??a.find(a=>1===a.number)??a[0];if(!b)throw new i("The prompt has no options to select a default from.");return b}(d.options);return{input:String(a.number),resolved:{via:"default",optionNumber:a.number,optionLabel:a.label}}}if(d?.type==="yes_no"){if(d.defaultOption)return{input:d.defaultOption,resolved:{via:"default",optionLabel:d.defaultOption}};throw new i("The yes/no prompt declares no default option.")}throw new i("Cannot select the default option: no active prompt was detected.")}let g=b??"",h=function(a){let b=a.trim().toLowerCase();return"yes"===b||"y"===b?"yes":"no"===b||"n"===b?"no":null}(g);if(null===h)return{input:g};if(d?.type==="multiple_choice"){let a=function(a,b){let c=a.options;if(f(a))throw new i('Multi-select (checkbox) prompts cannot be answered with yes/no. Answer with the option numbers you want ticked, comma-separated (for example "1,3").');let d="yes"===b?k:j,e=c.filter(a=>d(a.label));if(0===e.length)throw new i(`No option label matches "${b}". Answer with an option number.`);return e.reduce((a,b)=>a.number<=b.number?a:b)}(d,h);return{input:String(a.number),resolved:{via:"semantic",optionNumber:a.number,optionLabel:a.label}}}if(!d&&"multiple_choice"===e)throw new i("Cannot resolve yes/no: the prompt is multiple choice but its options could not be read.");return{input:g}}},15388:(a,b,c)=>{c.d(b,{RJ:()=>f,SQ:()=>g});var d=c(24455);let e=(0,c(36925).v)("__toolInputNormalizations",()=>new Map);function f(a,b,c,g,h,i=Date.now()){e.set((0,d.v7)(a,b,c),{...g,toolName:h,at:i})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},52277:(a,b,c)=>{c.d(b,{ZS:()=>f,gb:()=>g});var d=c(24455);let e=(0,c(36925).v)("__autoYesPolicySuppressions",()=>new Map);function f(a,b,c,g,h=Date.now()){e.set((0,d.v7)(a,b,c),{...g,at:h})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},75498:(a,b,c)=>{c.d(b,{Lj:()=>g,Tb:()=>f,sD:()=>h});var d=c(68901),e=c(4803);let f=2e4;function g(a,b,c){if(!c)return null;if("off"===c.mode)return{reason:"mode-off"};let e=function(a,b){if(0===b.length)return{outcome:"no-match"};let c=a.map(a=>a.length>f?a.slice(0,f):a);for(let a of b){if(a.length>200||!(0,d.P0)(a).valid)return{outcome:"unusable",pattern:a};let b=new RegExp(a);for(let e of c){let c=(0,d.eJ)(b,e);if(null===c)return{outcome:"unusable",pattern:a};if(c)return{outcome:"match",pattern:a}}}return{outcome:"no-match"}}(b,c.denyPatterns);return"match"===e.outcome?{reason:"deny-pattern",pattern:e.pattern}:"unusable"===e.outcome?{reason:"deny-pattern-unusable",pattern:e.pattern}:"safe"===c.mode?"yes_no"===a?null:{reason:"type-not-allowed"}:"allow-listed"===c.mode?c.allowPromptTypes.includes(a)?null:{reason:"type-not-allowed"}:null}function h(a,b){let c=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){if((0,e.eM)(a))return null;let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(a);if(null===c)return{answer:null,suppressedBy:null};let d=g(a.type,function(a){let b=[a.question];if(a.approvalTarget&&b.push(a.approvalTarget),"multiple_choice"===a.type)for(let c of a.options)b.push(c.label);else b.push(...a.options);return b}(a),b);return d?{answer:null,suppressedBy:d.reason,pattern:d.pattern}:{answer:c,suppressedBy:null}}},91318:(a,b,c)=>{c.d(b,{ie:()=>j,n:()=>i});var d=c(56791),e=c(88807),f=c(24455);let g=(0,c(72626).h)("auto-yes-policy"),h=new Map;function i(a,b,c){let i=c??b,j=(0,f.v7)(a,b,i),k=Date.now(),l=h.get(j);if(l&&l.expiresAt>k)return l.policy;let m=function(a,b,c){try{let f=(0,d.getActiveTaskForInstance)((0,e.getDbInstance)(),a,b,c);if(!f)return null;return f.contract.autoYes}catch(d){return g.warn("policy-lookup-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}(a,b,i);return h.size>=200&&function(a){for(let[b,c]of h.entries())c.expiresAt<=a&&h.delete(b)}(k),h.set(j,{policy:m,expiresAt:k+5e3}),m}function j(a){h.delete(a)}}};