commandmate 0.31.3 → 0.32.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 (802) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +487 -473
  3. package/.next/app-path-routes-manifest.json +37 -35
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +9 -9
  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/update/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/update-check/route.js +1 -1
  14. package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
  15. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  17. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  18. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  20. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  21. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/assistant/messages/route.js +1 -1
  23. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  24. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/assistant/session/route.js +1 -1
  26. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  27. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/assistant/start/route.js +1 -32
  29. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  30. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/assistant/terminal/route.js +2 -33
  32. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  33. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/assistant/tools/route.js +1 -1
  35. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  36. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/capabilities/route.js +1 -1
  41. package/.next/server/app/api/capabilities/route.js.nft.json +1 -1
  42. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  51. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  52. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  54. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  55. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  57. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  58. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/push/escalation/route.js +1 -1
  62. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  64. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/push/vapid/route.js +1 -1
  66. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -0
  68. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -0
  69. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -0
  70. package/.next/server/app/api/relays/route.js +1 -0
  71. package/.next/server/app/api/relays/route.js.nft.json +1 -0
  72. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -0
  73. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  76. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  78. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  80. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  81. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/repositories/clone/route.js +1 -1
  83. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  84. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/repositories/restore/route.js +1 -1
  87. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  88. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/repositories/route.js +1 -1
  90. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  91. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/repositories/scan/route.js +1 -1
  93. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  94. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/repositories/sync/route.js +1 -1
  96. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  97. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  100. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  101. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/skills/[id]/route.js +1 -1
  105. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  106. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/skills/installations/route.js +1 -1
  108. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  109. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/skills/route.js +1 -1
  113. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  114. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  118. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/todos/route.js +1 -1
  122. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  124. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/verification/runs/route.js +1 -1
  126. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  129. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  132. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  135. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  144. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +2 -1
  222. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  223. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +2 -1
  225. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  226. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  229. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  234. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  237. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  247. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +103 -1
  249. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  250. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  263. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  266. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  267. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  269. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  275. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  277. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  278. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  281. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  284. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  286. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  287. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  290. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  293. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  296. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  298. package/.next/server/app/api/worktrees/route.js +1 -1
  299. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  300. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  301. package/.next/server/app/chat/page.js +2 -2
  302. package/.next/server/app/chat/page.js.nft.json +1 -1
  303. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  304. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  305. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/more/page.js +2 -2
  307. package/.next/server/app/more/page.js.nft.json +1 -1
  308. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  309. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  310. package/.next/server/app/page.js +1 -1
  311. package/.next/server/app/page.js.nft.json +1 -1
  312. package/.next/server/app/page_client-reference-manifest.js +1 -1
  313. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  314. package/.next/server/app/repositories/page.js +2 -2
  315. package/.next/server/app/repositories/page.js.nft.json +1 -1
  316. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  317. package/.next/server/app/review/page.js +1 -1
  318. package/.next/server/app/review/page.js.nft.json +1 -1
  319. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  320. package/.next/server/app/sessions/page.js +1 -1
  321. package/.next/server/app/sessions/page.js.nft.json +1 -1
  322. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  323. package/.next/server/app/skills/[skillId]/page.js +2 -2
  324. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  325. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  326. package/.next/server/app/skills/installed/page.js +2 -2
  327. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  328. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  329. package/.next/server/app/skills/page.js +1 -1
  330. package/.next/server/app/skills/page.js.nft.json +1 -1
  331. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  332. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  333. package/.next/server/app/worktrees/[id]/page.js +11 -11
  334. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  335. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  336. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  337. package/.next/server/app-paths-manifest.json +37 -35
  338. package/.next/server/chunks/1210.js +1 -0
  339. package/.next/server/chunks/153.js +1 -0
  340. package/.next/server/chunks/1886.js +1 -1
  341. package/.next/server/chunks/21.js +1 -0
  342. package/.next/server/chunks/2119.js +1 -1
  343. package/.next/server/chunks/2445.js +1 -1
  344. package/.next/server/chunks/3077.js +67 -0
  345. package/.next/server/chunks/3086.js +1 -0
  346. package/.next/server/chunks/3241.js +1 -1
  347. package/.next/server/chunks/3270.js +1 -0
  348. package/.next/server/chunks/3543.js +1 -1
  349. package/.next/server/chunks/3730.js +1 -0
  350. package/.next/server/chunks/3925.js +1 -0
  351. package/.next/server/chunks/3945.js +1 -1
  352. package/.next/server/chunks/4443.js +2 -1
  353. package/.next/server/chunks/5043.js +1 -1
  354. package/.next/server/chunks/5164.js +1 -1
  355. package/.next/server/chunks/5220.js +1 -1
  356. package/.next/server/chunks/5354.js +1 -1
  357. package/.next/server/chunks/595.js +3 -3
  358. package/.next/server/chunks/6286.js +48 -0
  359. package/.next/server/chunks/6306.js +1 -0
  360. package/.next/server/chunks/6363.js +1 -0
  361. package/.next/server/chunks/6401.js +1 -1
  362. package/.next/server/chunks/6491.js +103 -0
  363. package/.next/server/chunks/{9798.js → 6661.js} +1 -2
  364. package/.next/server/chunks/6838.js +1 -0
  365. package/.next/server/chunks/7875.js +25 -0
  366. package/.next/server/chunks/7890.js +1 -0
  367. package/.next/server/chunks/8063.js +32 -0
  368. package/.next/server/chunks/8118.js +1 -1
  369. package/.next/server/chunks/{7587.js → 8554.js} +1 -1
  370. package/.next/server/chunks/8687.js +1 -0
  371. package/.next/server/chunks/8807.js +37 -3
  372. package/.next/server/chunks/8918.js +6 -4
  373. package/.next/server/chunks/9123.js +2 -2
  374. package/.next/server/chunks/9584.js +1 -1
  375. package/.next/server/chunks/9627.js +21 -5
  376. package/.next/server/middleware-build-manifest.js +1 -1
  377. package/.next/server/middleware-manifest.json +5 -5
  378. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  379. package/.next/server/pages/500.html +1 -1
  380. package/.next/server/server-reference-manifest.json +1 -1
  381. package/.next/static/UIUPchtWvcEuQgcbGJv4g/_buildManifest.js +1 -0
  382. package/.next/static/chunks/{5694.dda65070757534df.js → 3313.53f7ff985c0c8852.js} +1 -1
  383. package/.next/static/chunks/4718-0053d42fb635e700.js +1 -0
  384. package/.next/static/chunks/{4974-35592ec312322124.js → 5694-498765336d0b8c2b.js} +1 -1
  385. package/.next/static/chunks/{7485.442b21101fca7257.js → 7485.52361bc061cc663a.js} +1 -1
  386. package/.next/static/chunks/8019-cbf130d0e6334d2d.js +1 -0
  387. package/.next/static/chunks/8361-9bb887203c456edb.js +1 -0
  388. package/.next/static/chunks/8772-9be53a530950d804.js +1 -0
  389. package/.next/static/chunks/998-ac0ded6d5eeb4dc0.js +1 -0
  390. package/.next/static/chunks/app/api/agents/update/route-8bc5b680c5f3eae4.js +1 -0
  391. package/.next/static/chunks/app/api/agents/versions/route-8bc5b680c5f3eae4.js +1 -0
  392. package/.next/static/chunks/app/api/app/update/route-8bc5b680c5f3eae4.js +1 -0
  393. package/.next/static/chunks/app/api/app/update-check/route-8bc5b680c5f3eae4.js +1 -0
  394. package/.next/static/chunks/app/api/assistant/conversation/route-8bc5b680c5f3eae4.js +1 -0
  395. package/.next/static/chunks/app/api/assistant/current-output/route-8bc5b680c5f3eae4.js +1 -0
  396. package/.next/static/chunks/app/api/assistant/messages/route-8bc5b680c5f3eae4.js +1 -0
  397. package/.next/static/chunks/app/api/assistant/session/route-8bc5b680c5f3eae4.js +1 -0
  398. package/.next/static/chunks/app/api/assistant/start/route-8bc5b680c5f3eae4.js +1 -0
  399. package/.next/static/chunks/app/api/assistant/terminal/route-8bc5b680c5f3eae4.js +1 -0
  400. package/.next/static/chunks/app/api/assistant/tools/route-8bc5b680c5f3eae4.js +1 -0
  401. package/.next/static/chunks/app/api/auth/login/route-8bc5b680c5f3eae4.js +1 -0
  402. package/.next/static/chunks/app/api/auth/logout/route-8bc5b680c5f3eae4.js +1 -0
  403. package/.next/static/chunks/app/api/auth/status/route-8bc5b680c5f3eae4.js +1 -0
  404. package/.next/static/chunks/app/api/capabilities/route-8bc5b680c5f3eae4.js +1 -0
  405. package/.next/static/chunks/app/api/daily-summary/route-8bc5b680c5f3eae4.js +1 -0
  406. package/.next/static/chunks/app/api/daily-summary/status/route-8bc5b680c5f3eae4.js +1 -0
  407. package/.next/static/chunks/app/api/external-apps/[id]/health/route-8bc5b680c5f3eae4.js +1 -0
  408. package/.next/static/chunks/app/api/external-apps/[id]/route-8bc5b680c5f3eae4.js +1 -0
  409. package/.next/static/chunks/app/api/external-apps/route-8bc5b680c5f3eae4.js +1 -0
  410. package/.next/static/chunks/app/api/fs/browse/route-8bc5b680c5f3eae4.js +1 -0
  411. package/.next/static/chunks/app/api/fs/recent-paths/route-8bc5b680c5f3eae4.js +1 -0
  412. package/.next/static/chunks/app/api/hooks/agent-event/route-8bc5b680c5f3eae4.js +1 -0
  413. package/.next/static/chunks/app/api/hooks/claude-done/route-8bc5b680c5f3eae4.js +1 -0
  414. package/.next/static/chunks/app/api/hooks/permission-request/route-8bc5b680c5f3eae4.js +1 -0
  415. package/.next/static/chunks/app/api/metrics/vibe/route-8bc5b680c5f3eae4.js +1 -0
  416. package/.next/static/chunks/app/api/ollama/models/route-8bc5b680c5f3eae4.js +1 -0
  417. package/.next/static/chunks/app/api/push/escalation/route-8bc5b680c5f3eae4.js +1 -0
  418. package/.next/static/chunks/app/api/push/subscriptions/route-8bc5b680c5f3eae4.js +1 -0
  419. package/.next/static/chunks/app/api/push/vapid/route-8bc5b680c5f3eae4.js +1 -0
  420. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
  421. package/.next/static/chunks/app/api/relays/route-8bc5b680c5f3eae4.js +1 -0
  422. package/.next/static/chunks/app/api/remote/pair/route-8bc5b680c5f3eae4.js +1 -0
  423. package/.next/static/chunks/app/api/repositories/[id]/route-8bc5b680c5f3eae4.js +1 -0
  424. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-8bc5b680c5f3eae4.js +1 -0
  425. package/.next/static/chunks/app/api/repositories/[id]/todos/route-8bc5b680c5f3eae4.js +1 -0
  426. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-8bc5b680c5f3eae4.js +1 -0
  427. package/.next/static/chunks/app/api/repositories/clone/route-8bc5b680c5f3eae4.js +1 -0
  428. package/.next/static/chunks/app/api/repositories/excluded/route-8bc5b680c5f3eae4.js +1 -0
  429. package/.next/static/chunks/app/api/repositories/restore/route-8bc5b680c5f3eae4.js +1 -0
  430. package/.next/static/chunks/app/api/repositories/route-8bc5b680c5f3eae4.js +1 -0
  431. package/.next/static/chunks/app/api/repositories/scan/route-8bc5b680c5f3eae4.js +1 -0
  432. package/.next/static/chunks/app/api/repositories/sync/route-8bc5b680c5f3eae4.js +1 -0
  433. package/.next/static/chunks/app/api/repositories/validate-path/route-8bc5b680c5f3eae4.js +1 -0
  434. package/.next/static/chunks/app/api/settings/default-agents/route-8bc5b680c5f3eae4.js +1 -0
  435. package/.next/static/chunks/app/api/settings/default-surface-mode/route-8bc5b680c5f3eae4.js +1 -0
  436. package/.next/static/chunks/app/api/sidebar/group-order/route-8bc5b680c5f3eae4.js +1 -0
  437. package/.next/static/chunks/app/api/skills/[id]/route-8bc5b680c5f3eae4.js +1 -0
  438. package/.next/static/chunks/app/api/skills/installations/route-8bc5b680c5f3eae4.js +1 -0
  439. package/.next/static/chunks/app/api/skills/operations/route-8bc5b680c5f3eae4.js +1 -0
  440. package/.next/static/chunks/app/api/skills/reindex/route-8bc5b680c5f3eae4.js +1 -0
  441. package/.next/static/chunks/app/api/skills/route-8bc5b680c5f3eae4.js +1 -0
  442. package/.next/static/chunks/app/api/slash-commands/route-8bc5b680c5f3eae4.js +1 -0
  443. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
  444. package/.next/static/chunks/app/api/tasks/[taskId]/route-8bc5b680c5f3eae4.js +1 -0
  445. package/.next/static/chunks/app/api/templates/[id]/route-8bc5b680c5f3eae4.js +1 -0
  446. package/.next/static/chunks/app/api/templates/route-8bc5b680c5f3eae4.js +1 -0
  447. package/.next/static/chunks/app/api/todos/route-8bc5b680c5f3eae4.js +1 -0
  448. package/.next/static/chunks/app/api/verification/runs/[runId]/route-8bc5b680c5f3eae4.js +1 -0
  449. package/.next/static/chunks/app/api/verification/runs/route-8bc5b680c5f3eae4.js +1 -0
  450. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-8bc5b680c5f3eae4.js +1 -0
  451. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-8bc5b680c5f3eae4.js +1 -0
  452. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-8bc5b680c5f3eae4.js +1 -0
  453. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-8bc5b680c5f3eae4.js +1 -0
  454. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-8bc5b680c5f3eae4.js +1 -0
  455. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-8bc5b680c5f3eae4.js +1 -0
  456. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-8bc5b680c5f3eae4.js +1 -0
  457. package/.next/static/chunks/app/api/worktrees/[id]/env/route-8bc5b680c5f3eae4.js +1 -0
  458. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-8bc5b680c5f3eae4.js +1 -0
  459. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-8bc5b680c5f3eae4.js +1 -0
  460. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-8bc5b680c5f3eae4.js +1 -0
  461. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-8bc5b680c5f3eae4.js +1 -0
  462. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-8bc5b680c5f3eae4.js +1 -0
  463. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-8bc5b680c5f3eae4.js +1 -0
  464. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-8bc5b680c5f3eae4.js +1 -0
  465. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-8bc5b680c5f3eae4.js +1 -0
  466. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-8bc5b680c5f3eae4.js +1 -0
  467. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-8bc5b680c5f3eae4.js +1 -0
  468. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-8bc5b680c5f3eae4.js +1 -0
  469. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-8bc5b680c5f3eae4.js +1 -0
  470. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-8bc5b680c5f3eae4.js +1 -0
  471. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-8bc5b680c5f3eae4.js +1 -0
  472. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-8bc5b680c5f3eae4.js +1 -0
  473. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-8bc5b680c5f3eae4.js +1 -0
  474. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-8bc5b680c5f3eae4.js +1 -0
  475. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-8bc5b680c5f3eae4.js +1 -0
  476. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-8bc5b680c5f3eae4.js +1 -0
  477. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-8bc5b680c5f3eae4.js +1 -0
  478. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-8bc5b680c5f3eae4.js +1 -0
  479. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-8bc5b680c5f3eae4.js +1 -0
  480. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-8bc5b680c5f3eae4.js +1 -0
  481. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-8bc5b680c5f3eae4.js +1 -0
  482. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-8bc5b680c5f3eae4.js +1 -0
  483. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-8bc5b680c5f3eae4.js +1 -0
  484. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-8bc5b680c5f3eae4.js +1 -0
  485. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-8bc5b680c5f3eae4.js +1 -0
  486. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-8bc5b680c5f3eae4.js +1 -0
  487. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-8bc5b680c5f3eae4.js +1 -0
  488. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-8bc5b680c5f3eae4.js +1 -0
  489. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-8bc5b680c5f3eae4.js +1 -0
  490. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-8bc5b680c5f3eae4.js +1 -0
  491. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-8bc5b680c5f3eae4.js +1 -0
  492. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-8bc5b680c5f3eae4.js +1 -0
  493. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-8bc5b680c5f3eae4.js +1 -0
  494. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-8bc5b680c5f3eae4.js +1 -0
  495. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-8bc5b680c5f3eae4.js +1 -0
  496. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-8bc5b680c5f3eae4.js +1 -0
  497. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-8bc5b680c5f3eae4.js +1 -0
  498. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-8bc5b680c5f3eae4.js +1 -0
  499. package/.next/static/chunks/app/api/worktrees/[id]/route-8bc5b680c5f3eae4.js +1 -0
  500. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-8bc5b680c5f3eae4.js +1 -0
  501. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-8bc5b680c5f3eae4.js +1 -0
  502. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-8bc5b680c5f3eae4.js +1 -0
  503. package/.next/static/chunks/app/api/worktrees/[id]/search/route-8bc5b680c5f3eae4.js +1 -0
  504. package/.next/static/chunks/app/api/worktrees/[id]/send/route-8bc5b680c5f3eae4.js +1 -0
  505. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-8bc5b680c5f3eae4.js +1 -0
  506. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-8bc5b680c5f3eae4.js +1 -0
  507. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-8bc5b680c5f3eae4.js +1 -0
  508. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-8bc5b680c5f3eae4.js +1 -0
  509. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-8bc5b680c5f3eae4.js +1 -0
  510. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-8bc5b680c5f3eae4.js +1 -0
  511. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-8bc5b680c5f3eae4.js +1 -0
  512. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-8bc5b680c5f3eae4.js +1 -0
  513. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-8bc5b680c5f3eae4.js +1 -0
  514. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-8bc5b680c5f3eae4.js +1 -0
  515. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-8bc5b680c5f3eae4.js +1 -0
  516. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-8bc5b680c5f3eae4.js +1 -0
  517. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-8bc5b680c5f3eae4.js +1 -0
  518. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-8bc5b680c5f3eae4.js +1 -0
  519. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-8bc5b680c5f3eae4.js +1 -0
  520. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-8bc5b680c5f3eae4.js +1 -0
  521. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-8bc5b680c5f3eae4.js +1 -0
  522. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-8bc5b680c5f3eae4.js +1 -0
  523. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-8bc5b680c5f3eae4.js +1 -0
  524. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-8bc5b680c5f3eae4.js +1 -0
  525. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-8bc5b680c5f3eae4.js +1 -0
  526. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
  527. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-8bc5b680c5f3eae4.js +1 -0
  528. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-8bc5b680c5f3eae4.js +1 -0
  529. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-8bc5b680c5f3eae4.js +1 -0
  530. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-8bc5b680c5f3eae4.js +1 -0
  531. package/.next/static/chunks/app/api/worktrees/route-8bc5b680c5f3eae4.js +1 -0
  532. package/.next/static/chunks/app/chat/{page-37d7615d17d7e2a0.js → page-e60d07c4c79602f0.js} +1 -1
  533. package/.next/static/chunks/app/manifest.webmanifest/route-8bc5b680c5f3eae4.js +1 -0
  534. package/.next/static/chunks/app/more/{page-353a3924e6d7968e.js → page-fc94f86aa881489e.js} +1 -1
  535. package/.next/static/chunks/app/{page-c2bf871d953a1d6f.js → page-6871cca022b24807.js} +1 -1
  536. package/.next/static/chunks/app/proxy/[...path]/route-8bc5b680c5f3eae4.js +1 -0
  537. package/.next/static/chunks/app/repositories/{page-7d0f26df0537254c.js → page-788ded1b72963d94.js} +1 -1
  538. package/.next/static/chunks/app/review/{page-e3f141b2829973e9.js → page-35b99baaf3c93b38.js} +1 -1
  539. package/.next/static/chunks/app/sessions/{page-53f188ed9ca49e5f.js → page-fa2d62f3e8436c69.js} +1 -1
  540. package/.next/static/chunks/app/skills/[skillId]/{page-80569b720aea59cc.js → page-06799157652e8fa9.js} +1 -1
  541. package/.next/static/chunks/app/skills/installed/{page-dbd2690ad72da95b.js → page-2f3987e3a131c8d0.js} +1 -1
  542. package/.next/static/chunks/app/skills/{page-dacd36f9c11aa7da.js → page-e70bfcf5ed4e4865.js} +1 -1
  543. package/.next/static/chunks/app/worktrees/[id]/layout-8bc5b680c5f3eae4.js +1 -0
  544. package/.next/static/chunks/app/worktrees/[id]/page-06e1ff5ce2d126fd.js +1 -0
  545. package/.next/static/chunks/webpack-1dc9eb5ebb4fa5ff.js +1 -0
  546. package/.next/static/css/96d94a4ba771efc3.css +1 -0
  547. package/.next/trace +13 -13
  548. package/.next/types/app/api/relays/[relayId]/cancel/route.ts +347 -0
  549. package/.next/types/app/api/relays/route.ts +347 -0
  550. package/.next/types/routes.d.ts +3 -1
  551. package/.next/types/validator.ts +18 -0
  552. package/dist/cli/commands/ask.d.ts +34 -0
  553. package/dist/cli/commands/ask.d.ts.map +1 -0
  554. package/dist/cli/commands/ask.js +494 -0
  555. package/dist/cli/commands/capture.d.ts +20 -0
  556. package/dist/cli/commands/capture.d.ts.map +1 -1
  557. package/dist/cli/commands/capture.js +80 -30
  558. package/dist/cli/commands/docs.d.ts.map +1 -1
  559. package/dist/cli/commands/docs.js +47 -4
  560. package/dist/cli/commands/instances.d.ts +67 -0
  561. package/dist/cli/commands/instances.d.ts.map +1 -1
  562. package/dist/cli/commands/instances.js +103 -7
  563. package/dist/cli/commands/peers.d.ts +64 -0
  564. package/dist/cli/commands/peers.d.ts.map +1 -0
  565. package/dist/cli/commands/peers.js +196 -0
  566. package/dist/cli/commands/relays.d.ts +92 -0
  567. package/dist/cli/commands/relays.d.ts.map +1 -0
  568. package/dist/cli/commands/relays.js +293 -0
  569. package/dist/cli/commands/report.d.ts +3 -0
  570. package/dist/cli/commands/report.d.ts.map +1 -1
  571. package/dist/cli/commands/report.js +29 -1
  572. package/dist/cli/commands/respond.d.ts.map +1 -1
  573. package/dist/cli/commands/respond.js +13 -10
  574. package/dist/cli/commands/send.d.ts.map +1 -1
  575. package/dist/cli/commands/send.js +66 -20
  576. package/dist/cli/commands/task.d.ts.map +1 -1
  577. package/dist/cli/commands/task.js +30 -0
  578. package/dist/cli/commands/wait.d.ts +20 -0
  579. package/dist/cli/commands/wait.d.ts.map +1 -1
  580. package/dist/cli/commands/wait.js +55 -6
  581. package/dist/cli/commands/whoami.d.ts +109 -0
  582. package/dist/cli/commands/whoami.d.ts.map +1 -0
  583. package/dist/cli/commands/whoami.js +271 -0
  584. package/dist/cli/docs/agent-operations.d.ts +25 -1
  585. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  586. package/dist/cli/docs/agent-operations.js +184 -1
  587. package/dist/cli/index.d.ts +13 -0
  588. package/dist/cli/index.d.ts.map +1 -1
  589. package/dist/cli/index.js +25 -1
  590. package/dist/cli/types/api-responses.d.ts +93 -0
  591. package/dist/cli/types/api-responses.d.ts.map +1 -1
  592. package/dist/cli/types/index.d.ts +16 -0
  593. package/dist/cli/types/index.d.ts.map +1 -1
  594. package/dist/lib/cli/command-reference.d.ts +179 -0
  595. package/dist/lib/cli/command-reference.d.ts.map +1 -0
  596. package/dist/lib/cli/command-reference.js +210 -0
  597. package/dist/lib/detection/ansi.d.ts +14 -1
  598. package/dist/lib/detection/ansi.d.ts.map +1 -1
  599. package/dist/lib/detection/ansi.js +40 -3
  600. package/dist/lib/detection/status-reason.d.ts +28 -0
  601. package/dist/lib/detection/status-reason.d.ts.map +1 -1
  602. package/dist/lib/detection/status-reason.js +28 -0
  603. package/dist/server/locales/en/worktree.json +23 -0
  604. package/dist/server/locales/ja/worktree.json +23 -0
  605. package/dist/server/src/lib/auto-yes-poller.js +26 -11
  606. package/dist/server/src/lib/db/chat-db.js +161 -7
  607. package/dist/server/src/lib/db/migrations/index.js +2 -0
  608. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  609. package/dist/server/src/lib/db/migrations/v60-session-relays.js +110 -0
  610. package/dist/server/src/lib/db/relay-db.js +343 -0
  611. package/dist/server/src/lib/detection/ansi.js +40 -3
  612. package/dist/server/src/lib/detection/selection-shape.js +72 -1
  613. package/dist/server/src/lib/detection/status-reason.js +28 -0
  614. package/dist/server/src/lib/detection/tools/antigravity/dialog.js +13 -7
  615. package/dist/server/src/lib/detection/tools/command-code/detect.js +33 -0
  616. package/dist/server/src/lib/history/user-turn-recorder.js +79 -16
  617. package/dist/server/src/lib/polling/response-checker.js +45 -8
  618. package/dist/server/src/lib/polling/structured-history-gate.js +14 -1
  619. package/dist/server/src/lib/realtime/terminal-broadcast.js +5 -0
  620. package/dist/server/src/lib/realtime/waiting-broadcast.js +12 -0
  621. package/dist/server/src/lib/relay/relay-delivery.js +400 -0
  622. package/dist/server/src/lib/relay/relay-messages.js +144 -0
  623. package/dist/server/src/lib/relay/relay-policy.js +127 -0
  624. package/dist/server/src/lib/relay/relay-readiness.js +63 -0
  625. package/dist/server/src/lib/relay/relay-session-ref.js +72 -0
  626. package/dist/server/src/lib/relay/relay-system-line.js +79 -0
  627. package/dist/server/src/lib/relay/relay-triggers.js +177 -0
  628. package/dist/server/src/lib/relay/types.js +25 -0
  629. package/dist/server/src/lib/session/current-output-builder.js +18 -0
  630. package/dist/server/src/lib/session/send-user-message.js +1 -0
  631. package/package.json +1 -1
  632. package/.next/server/chunks/1058.js +0 -1
  633. package/.next/server/chunks/1068.js +0 -1
  634. package/.next/server/chunks/1990.js +0 -103
  635. package/.next/server/chunks/261.js +0 -1
  636. package/.next/server/chunks/2739.js +0 -1
  637. package/.next/server/chunks/2839.js +0 -1
  638. package/.next/server/chunks/3484.js +0 -1
  639. package/.next/server/chunks/358.js +0 -1
  640. package/.next/server/chunks/3869.js +0 -1
  641. package/.next/server/chunks/4325.js +0 -1
  642. package/.next/server/chunks/4393.js +0 -1
  643. package/.next/server/chunks/5017.js +0 -1
  644. package/.next/server/chunks/5120.js +0 -1
  645. package/.next/server/chunks/552.js +0 -25
  646. package/.next/server/chunks/6130.js +0 -1
  647. package/.next/server/chunks/7836.js +0 -1
  648. package/.next/server/chunks/7859.js +0 -21
  649. package/.next/server/chunks/9696.js +0 -3
  650. package/.next/static/0hTIackGXw6v7diXJS6yN/_buildManifest.js +0 -1
  651. package/.next/static/chunks/2813-de885de8a4b11910.js +0 -1
  652. package/.next/static/chunks/4718-07ec4e10186928db.js +0 -1
  653. package/.next/static/chunks/6170-951b9f5fe6b4b3b5.js +0 -1
  654. package/.next/static/chunks/8019-f8e73c1fb5f6f0d3.js +0 -1
  655. package/.next/static/chunks/8593-fa0eb2802e0ce68a.js +0 -1
  656. package/.next/static/chunks/app/api/agents/update/route-ee11f7b8a34cba8c.js +0 -1
  657. package/.next/static/chunks/app/api/agents/versions/route-ee11f7b8a34cba8c.js +0 -1
  658. package/.next/static/chunks/app/api/app/update/route-ee11f7b8a34cba8c.js +0 -1
  659. package/.next/static/chunks/app/api/app/update-check/route-ee11f7b8a34cba8c.js +0 -1
  660. package/.next/static/chunks/app/api/assistant/conversation/route-ee11f7b8a34cba8c.js +0 -1
  661. package/.next/static/chunks/app/api/assistant/current-output/route-ee11f7b8a34cba8c.js +0 -1
  662. package/.next/static/chunks/app/api/assistant/messages/route-ee11f7b8a34cba8c.js +0 -1
  663. package/.next/static/chunks/app/api/assistant/session/route-ee11f7b8a34cba8c.js +0 -1
  664. package/.next/static/chunks/app/api/assistant/start/route-ee11f7b8a34cba8c.js +0 -1
  665. package/.next/static/chunks/app/api/assistant/terminal/route-ee11f7b8a34cba8c.js +0 -1
  666. package/.next/static/chunks/app/api/assistant/tools/route-ee11f7b8a34cba8c.js +0 -1
  667. package/.next/static/chunks/app/api/auth/login/route-ee11f7b8a34cba8c.js +0 -1
  668. package/.next/static/chunks/app/api/auth/logout/route-ee11f7b8a34cba8c.js +0 -1
  669. package/.next/static/chunks/app/api/auth/status/route-ee11f7b8a34cba8c.js +0 -1
  670. package/.next/static/chunks/app/api/capabilities/route-ee11f7b8a34cba8c.js +0 -1
  671. package/.next/static/chunks/app/api/daily-summary/route-ee11f7b8a34cba8c.js +0 -1
  672. package/.next/static/chunks/app/api/daily-summary/status/route-ee11f7b8a34cba8c.js +0 -1
  673. package/.next/static/chunks/app/api/external-apps/[id]/health/route-ee11f7b8a34cba8c.js +0 -1
  674. package/.next/static/chunks/app/api/external-apps/[id]/route-ee11f7b8a34cba8c.js +0 -1
  675. package/.next/static/chunks/app/api/external-apps/route-ee11f7b8a34cba8c.js +0 -1
  676. package/.next/static/chunks/app/api/fs/browse/route-ee11f7b8a34cba8c.js +0 -1
  677. package/.next/static/chunks/app/api/fs/recent-paths/route-ee11f7b8a34cba8c.js +0 -1
  678. package/.next/static/chunks/app/api/hooks/agent-event/route-ee11f7b8a34cba8c.js +0 -1
  679. package/.next/static/chunks/app/api/hooks/claude-done/route-ee11f7b8a34cba8c.js +0 -1
  680. package/.next/static/chunks/app/api/hooks/permission-request/route-ee11f7b8a34cba8c.js +0 -1
  681. package/.next/static/chunks/app/api/metrics/vibe/route-ee11f7b8a34cba8c.js +0 -1
  682. package/.next/static/chunks/app/api/ollama/models/route-ee11f7b8a34cba8c.js +0 -1
  683. package/.next/static/chunks/app/api/push/escalation/route-ee11f7b8a34cba8c.js +0 -1
  684. package/.next/static/chunks/app/api/push/subscriptions/route-ee11f7b8a34cba8c.js +0 -1
  685. package/.next/static/chunks/app/api/push/vapid/route-ee11f7b8a34cba8c.js +0 -1
  686. package/.next/static/chunks/app/api/remote/pair/route-ee11f7b8a34cba8c.js +0 -1
  687. package/.next/static/chunks/app/api/repositories/[id]/route-ee11f7b8a34cba8c.js +0 -1
  688. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +0 -1
  689. package/.next/static/chunks/app/api/repositories/[id]/todos/route-ee11f7b8a34cba8c.js +0 -1
  690. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-ee11f7b8a34cba8c.js +0 -1
  691. package/.next/static/chunks/app/api/repositories/clone/route-ee11f7b8a34cba8c.js +0 -1
  692. package/.next/static/chunks/app/api/repositories/excluded/route-ee11f7b8a34cba8c.js +0 -1
  693. package/.next/static/chunks/app/api/repositories/restore/route-ee11f7b8a34cba8c.js +0 -1
  694. package/.next/static/chunks/app/api/repositories/route-ee11f7b8a34cba8c.js +0 -1
  695. package/.next/static/chunks/app/api/repositories/scan/route-ee11f7b8a34cba8c.js +0 -1
  696. package/.next/static/chunks/app/api/repositories/sync/route-ee11f7b8a34cba8c.js +0 -1
  697. package/.next/static/chunks/app/api/repositories/validate-path/route-ee11f7b8a34cba8c.js +0 -1
  698. package/.next/static/chunks/app/api/settings/default-agents/route-ee11f7b8a34cba8c.js +0 -1
  699. package/.next/static/chunks/app/api/settings/default-surface-mode/route-ee11f7b8a34cba8c.js +0 -1
  700. package/.next/static/chunks/app/api/sidebar/group-order/route-ee11f7b8a34cba8c.js +0 -1
  701. package/.next/static/chunks/app/api/skills/[id]/route-ee11f7b8a34cba8c.js +0 -1
  702. package/.next/static/chunks/app/api/skills/installations/route-ee11f7b8a34cba8c.js +0 -1
  703. package/.next/static/chunks/app/api/skills/operations/route-ee11f7b8a34cba8c.js +0 -1
  704. package/.next/static/chunks/app/api/skills/reindex/route-ee11f7b8a34cba8c.js +0 -1
  705. package/.next/static/chunks/app/api/skills/route-ee11f7b8a34cba8c.js +0 -1
  706. package/.next/static/chunks/app/api/slash-commands/route-ee11f7b8a34cba8c.js +0 -1
  707. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-ee11f7b8a34cba8c.js +0 -1
  708. package/.next/static/chunks/app/api/tasks/[taskId]/route-ee11f7b8a34cba8c.js +0 -1
  709. package/.next/static/chunks/app/api/templates/[id]/route-ee11f7b8a34cba8c.js +0 -1
  710. package/.next/static/chunks/app/api/templates/route-ee11f7b8a34cba8c.js +0 -1
  711. package/.next/static/chunks/app/api/todos/route-ee11f7b8a34cba8c.js +0 -1
  712. package/.next/static/chunks/app/api/verification/runs/[runId]/route-ee11f7b8a34cba8c.js +0 -1
  713. package/.next/static/chunks/app/api/verification/runs/route-ee11f7b8a34cba8c.js +0 -1
  714. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-ee11f7b8a34cba8c.js +0 -1
  715. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-ee11f7b8a34cba8c.js +0 -1
  716. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-ee11f7b8a34cba8c.js +0 -1
  717. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-ee11f7b8a34cba8c.js +0 -1
  718. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-ee11f7b8a34cba8c.js +0 -1
  719. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-ee11f7b8a34cba8c.js +0 -1
  720. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-ee11f7b8a34cba8c.js +0 -1
  721. package/.next/static/chunks/app/api/worktrees/[id]/env/route-ee11f7b8a34cba8c.js +0 -1
  722. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-ee11f7b8a34cba8c.js +0 -1
  723. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-ee11f7b8a34cba8c.js +0 -1
  724. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-ee11f7b8a34cba8c.js +0 -1
  725. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-ee11f7b8a34cba8c.js +0 -1
  726. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-ee11f7b8a34cba8c.js +0 -1
  727. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-ee11f7b8a34cba8c.js +0 -1
  728. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-ee11f7b8a34cba8c.js +0 -1
  729. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-ee11f7b8a34cba8c.js +0 -1
  730. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-ee11f7b8a34cba8c.js +0 -1
  731. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-ee11f7b8a34cba8c.js +0 -1
  732. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-ee11f7b8a34cba8c.js +0 -1
  733. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-ee11f7b8a34cba8c.js +0 -1
  734. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-ee11f7b8a34cba8c.js +0 -1
  735. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-ee11f7b8a34cba8c.js +0 -1
  736. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-ee11f7b8a34cba8c.js +0 -1
  737. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-ee11f7b8a34cba8c.js +0 -1
  738. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-ee11f7b8a34cba8c.js +0 -1
  739. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-ee11f7b8a34cba8c.js +0 -1
  740. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-ee11f7b8a34cba8c.js +0 -1
  741. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-ee11f7b8a34cba8c.js +0 -1
  742. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-ee11f7b8a34cba8c.js +0 -1
  743. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-ee11f7b8a34cba8c.js +0 -1
  744. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-ee11f7b8a34cba8c.js +0 -1
  745. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-ee11f7b8a34cba8c.js +0 -1
  746. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-ee11f7b8a34cba8c.js +0 -1
  747. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-ee11f7b8a34cba8c.js +0 -1
  748. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-ee11f7b8a34cba8c.js +0 -1
  749. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-ee11f7b8a34cba8c.js +0 -1
  750. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-ee11f7b8a34cba8c.js +0 -1
  751. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-ee11f7b8a34cba8c.js +0 -1
  752. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-ee11f7b8a34cba8c.js +0 -1
  753. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-ee11f7b8a34cba8c.js +0 -1
  754. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-ee11f7b8a34cba8c.js +0 -1
  755. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-ee11f7b8a34cba8c.js +0 -1
  756. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-ee11f7b8a34cba8c.js +0 -1
  757. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-ee11f7b8a34cba8c.js +0 -1
  758. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-ee11f7b8a34cba8c.js +0 -1
  759. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-ee11f7b8a34cba8c.js +0 -1
  760. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-ee11f7b8a34cba8c.js +0 -1
  761. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-ee11f7b8a34cba8c.js +0 -1
  762. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-ee11f7b8a34cba8c.js +0 -1
  763. package/.next/static/chunks/app/api/worktrees/[id]/route-ee11f7b8a34cba8c.js +0 -1
  764. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-ee11f7b8a34cba8c.js +0 -1
  765. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-ee11f7b8a34cba8c.js +0 -1
  766. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-ee11f7b8a34cba8c.js +0 -1
  767. package/.next/static/chunks/app/api/worktrees/[id]/search/route-ee11f7b8a34cba8c.js +0 -1
  768. package/.next/static/chunks/app/api/worktrees/[id]/send/route-ee11f7b8a34cba8c.js +0 -1
  769. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-ee11f7b8a34cba8c.js +0 -1
  770. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-ee11f7b8a34cba8c.js +0 -1
  771. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-ee11f7b8a34cba8c.js +0 -1
  772. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-ee11f7b8a34cba8c.js +0 -1
  773. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-ee11f7b8a34cba8c.js +0 -1
  774. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-ee11f7b8a34cba8c.js +0 -1
  775. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-ee11f7b8a34cba8c.js +0 -1
  776. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-ee11f7b8a34cba8c.js +0 -1
  777. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-ee11f7b8a34cba8c.js +0 -1
  778. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-ee11f7b8a34cba8c.js +0 -1
  779. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-ee11f7b8a34cba8c.js +0 -1
  780. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-ee11f7b8a34cba8c.js +0 -1
  781. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-ee11f7b8a34cba8c.js +0 -1
  782. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-ee11f7b8a34cba8c.js +0 -1
  783. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +0 -1
  784. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-ee11f7b8a34cba8c.js +0 -1
  785. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-ee11f7b8a34cba8c.js +0 -1
  786. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-ee11f7b8a34cba8c.js +0 -1
  787. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-ee11f7b8a34cba8c.js +0 -1
  788. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-ee11f7b8a34cba8c.js +0 -1
  789. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-ee11f7b8a34cba8c.js +0 -1
  790. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-ee11f7b8a34cba8c.js +0 -1
  791. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-ee11f7b8a34cba8c.js +0 -1
  792. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-ee11f7b8a34cba8c.js +0 -1
  793. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-ee11f7b8a34cba8c.js +0 -1
  794. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-ee11f7b8a34cba8c.js +0 -1
  795. package/.next/static/chunks/app/api/worktrees/route-ee11f7b8a34cba8c.js +0 -1
  796. package/.next/static/chunks/app/manifest.webmanifest/route-ee11f7b8a34cba8c.js +0 -1
  797. package/.next/static/chunks/app/proxy/[...path]/route-ee11f7b8a34cba8c.js +0 -1
  798. package/.next/static/chunks/app/worktrees/[id]/layout-ee11f7b8a34cba8c.js +0 -1
  799. package/.next/static/chunks/app/worktrees/[id]/page-91b639c90795baa9.js +0 -1
  800. package/.next/static/chunks/webpack-9f75198882fdaf08.js +0 -1
  801. package/.next/static/css/acc4b9c3feb04287.css +0 -1
  802. /package/.next/static/{0hTIackGXw6v7diXJS6yN → UIUPchtWvcEuQgcbGJv4g}/_ssgManifest.js +0 -0
@@ -127,7 +127,7 @@ function createRespondCommand() {
127
127
  .argument('<worktree-id>', 'Worktree ID')
128
128
  .argument('[answer]', 'Response answer (yes, no, number, or free text)')
129
129
  .option('--default', "Select the prompt's default option (mutually exclusive with <answer>)")
130
- .option('--instance <id>', agent_target_options_1.INSTANCE_OPTION_DESCRIPTION)
130
+ .option('--instance <id>', `${agent_target_options_1.INSTANCE_OPTION_DESCRIPTION} ${instances_1.INSTANCE_ALIAS_HELP_SUFFIX}`)
131
131
  .option('--agent <agent>', agent_target_options_1.AGENT_OPTION_DESCRIPTION)
132
132
  .option('--token <token>', command_helpers_1.TOKEN_WARNING)
133
133
  .action(async (worktreeId, answer, options) => {
@@ -142,9 +142,9 @@ function createRespondCommand() {
142
142
  console.error('Error: Invalid agent.');
143
143
  process.exit(types_1.ExitCode.CONFIG_ERROR);
144
144
  }
145
- // Issue #868: Validate instance ID if provided
146
- if (options.instance && !(0, api_client_1.isValidInstanceId)(options.instance)) {
147
- console.error('Error: Invalid --instance. Must be an alphanumeric/underscore/hyphen identifier (max 64 chars).');
145
+ // Issue #868 / #2376: an instance id or a roster alias.
146
+ if (options.instance && !(0, instances_1.isInstanceSelector)(options.instance)) {
147
+ console.error(instances_1.INSTANCE_SELECTOR_ERROR);
148
148
  process.exit(types_1.ExitCode.CONFIG_ERROR);
149
149
  }
150
150
  // Issue #1681: exactly one of <answer> / --default
@@ -162,17 +162,20 @@ function createRespondCommand() {
162
162
  // and falls back to the worktree default, so `--instance codex` alone
163
163
  // answered into a session that was never started. Resolve the tool the
164
164
  // instance is registered under first.
165
- const agent = options.instance
166
- ? await (0, instances_1.resolveInstanceCliTool)(client, worktreeId, options.instance, options.agent)
167
- : options.agent;
165
+ const target = options.instance
166
+ ? await (0, instances_1.resolveInstanceTarget)(client, worktreeId, options.instance, options.agent)
167
+ : null;
168
+ const agent = target ? target.cliToolId : options.agent;
169
+ // Issue #2376: the resolved id. /prompt-response reads instance ids.
170
+ const instanceId = target?.instanceId;
168
171
  // [DR2-06] Use prompt-response API with cliTool (not cliToolId)
169
172
  const body = useDefault ? { useDefault: true } : { answer };
170
173
  if (agent) {
171
174
  body.cliTool = agent;
172
175
  }
173
176
  // Issue #868: target a specific agent instance
174
- if (options.instance) {
175
- body.instanceId = options.instance;
177
+ if (instanceId) {
178
+ body.instanceId = instanceId;
176
179
  }
177
180
  // Issue #2040: for an agent that publishes per-decision ids (opencode
178
181
  // today, and only opencode), a bare `respond <worktree> 3` names the ONE
@@ -186,7 +189,7 @@ function createRespondCommand() {
186
189
  // the structured path refuses it (`answerStructuredDecision` says so in
187
190
  // as many words) — while Enter at a `keys` dialog is a real answer that
188
191
  // this command has always been able to give.
189
- const structured = !useDefault && (await addressesDecisionsById(client, worktreeId, agent, options.instance));
192
+ const structured = !useDefault && (await addressesDecisionsById(client, worktreeId, agent, instanceId));
190
193
  let result = null;
191
194
  if (structured) {
192
195
  const outcome = await answerSolePendingDecision(client, worktreeId, body);
@@ -1 +1 @@
1
- {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqLpC,wBAAgB,iBAAiB,IAAI,OAAO,CA+L3C"}
1
+ {"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoMpC,wBAAgB,iBAAiB,IAAI,OAAO,CAkP3C"}
@@ -15,6 +15,7 @@ const agent_target_options_1 = require("../config/agent-target-options");
15
15
  const model_validation_1 = require("../config/model-validation");
16
16
  const agent_instances_1 = require("../utils/agent-instances");
17
17
  const instances_1 = require("./instances");
18
+ const relays_1 = require("./relays");
18
19
  /** Auto-yes duration used when --duration is omitted. */
19
20
  const DEFAULT_AUTO_YES_DURATION = '1h';
20
21
  /**
@@ -58,7 +59,7 @@ function resolveAutoYesDurationMs(duration) {
58
59
  * @param durationMs - Duration already validated by resolveAutoYesDurationMs()
59
60
  * @param agent - CLI tool resolved for --instance (Issue #1629), else --agent
60
61
  */
61
- async function enableAutoYes(client, worktreeId, options, durationMs, agent) {
62
+ async function enableAutoYes(client, worktreeId, options, durationMs, agent, instanceId) {
62
63
  const autoYesBody = {
63
64
  enabled: true,
64
65
  duration: durationMs,
@@ -69,8 +70,8 @@ async function enableAutoYes(client, worktreeId, options, durationMs, agent) {
69
70
  // Issue #896: per-instance auto-yes. When --instance is given, the poller keys
70
71
  // on worktreeId:cliToolId:instanceId so the targeted instance is auto-answered
71
72
  // independently of other instances of the same agent.
72
- if (options.instance) {
73
- autoYesBody.instanceId = options.instance;
73
+ if (instanceId) {
74
+ autoYesBody.instanceId = instanceId;
74
75
  }
75
76
  if (options.stopPattern) {
76
77
  autoYesBody.stopPattern = options.stopPattern;
@@ -104,13 +105,13 @@ async function registerInstance(client, worktreeId, instanceId, cliTool) {
104
105
  * from that worktree's verify.yaml. Every violation the server found is printed
105
106
  * before exiting, so a broken contract is fixed in one pass (Issue #1545).
106
107
  */
107
- async function createContractTask(client, worktreeId, options, agent) {
108
+ async function createContractTask(client, worktreeId, options, agent, instanceId) {
108
109
  const body = { contractPath: options.contract };
109
110
  if (agent) {
110
111
  body.cliToolId = agent;
111
112
  }
112
- if (options.instance) {
113
- body.instanceId = options.instance;
113
+ if (instanceId) {
114
+ body.instanceId = instanceId;
114
115
  }
115
116
  try {
116
117
  const response = await client.post(`/api/worktrees/${worktreeId}/tasks`, body);
@@ -149,7 +150,7 @@ function createSendCommand() {
149
150
  .description('Send a message to a worktree agent')
150
151
  .argument('<worktree-id>', 'Worktree ID')
151
152
  .argument('[message]', 'Message to send (omit when using --contract)')
152
- .option('--instance <id>', agent_target_options_1.INSTANCE_OPTION_DESCRIPTION)
153
+ .option('--instance <id>', `${agent_target_options_1.INSTANCE_OPTION_DESCRIPTION} ${instances_1.INSTANCE_ALIAS_HELP_SUFFIX}`)
153
154
  .option('--agent <agent>', agent_target_options_1.AGENT_OPTION_DESCRIPTION)
154
155
  .option('--register', 'Register the --instance session into the agent-instance roster (needs --agent unless the instance id is itself a CLI tool id)')
155
156
  .option('--model <model>', 'Specify AI model for Copilot or Antigravity agent')
@@ -158,7 +159,20 @@ function createSendCommand() {
158
159
  .option('--stop-pattern <pattern>', 'Auto-yes stop pattern (regex). Matched against terminal output; cannot block commands (use the task contract\'s autoYes.denyPatterns for that)')
159
160
  .option('--contract <path>', 'Execution contract path relative to the worktree root (e.g. .commandmate/tasks/my-task.yaml). Records a task and sends the contract preamble plus its goal.')
160
161
  .option('--ignore-structured-prompt', 'Send even if only the agent\'s hooks report an open dialog (Issue #1737). Use when the pane looks idle but sends are refused; a prompt visible in the terminal is still refused.')
162
+ .option('--reply-to <target>', relays_1.REPLY_TO_OPTION_DESCRIPTION)
163
+ .option('--allow-relay-chain', relays_1.ALLOW_RELAY_CHAIN_DESCRIPTION)
161
164
  .option('--token <token>', command_helpers_1.TOKEN_WARNING)
165
+ .addHelpText('after', `
166
+ --reply-to registers a relay: when the target session finishes this turn,
167
+ CommandMate puts its answer into the named session's composer, prefixed with
168
+ \`[from <alias> / <worktree>]\`. Nothing blocks — there is no wait to run and
169
+ no pane to scrape. Watch it with \`commandmate relays\`, withdraw it with
170
+ \`commandmate relays cancel <id>\`; it expires after 24h either way.
171
+
172
+ Exit 2 when the relay is refused: you are answering a relayed message already
173
+ (pass --allow-relay-chain), the chain would exceed 3 hops, or an open relay
174
+ between these two sessions exists. Nothing is sent in that case.
175
+ `)
162
176
  .action(async (worktreeId, message, options) => {
163
177
  try {
164
178
  // [SEC4-04] Validate worktree ID
@@ -181,9 +195,10 @@ function createSendCommand() {
181
195
  console.error(`Error: Invalid agent. Must be one of: ${cli_tool_ids_1.CLI_TOOL_IDS.join(', ')}`);
182
196
  process.exit(types_1.ExitCode.CONFIG_ERROR);
183
197
  }
184
- // Issue #868: Validate instance ID if provided
185
- if (options.instance && !(0, api_client_1.isValidInstanceId)(options.instance)) {
186
- console.error('Error: Invalid --instance. Must be an alphanumeric/underscore/hyphen identifier (max 64 chars).');
198
+ // Issue #868 / #2376: Validate the instance SELECTOR if provided. An id
199
+ // or an alias — which of the two it is, only the roster knows.
200
+ if (options.instance && !(0, instances_1.isInstanceSelector)(options.instance)) {
201
+ console.error(instances_1.INSTANCE_SELECTOR_ERROR);
187
202
  process.exit(types_1.ExitCode.CONFIG_ERROR);
188
203
  }
189
204
  // Issue #1000: --register requires --instance, and requires --agent
@@ -216,9 +231,14 @@ function createSendCommand() {
216
231
  // the roster is the only place that pairs the two. Resolve it once, up
217
232
  // front, so the task row, the send and auto-yes all name the same tool
218
233
  // as the session that actually starts.
219
- const agent = options.instance
220
- ? await (0, instances_1.resolveInstanceCliTool)(client, worktreeId, options.instance, options.agent)
221
- : options.agent;
234
+ const target = options.instance
235
+ ? await (0, instances_1.resolveInstanceTarget)(client, worktreeId, options.instance, options.agent)
236
+ : null;
237
+ const agent = target ? target.cliToolId : options.agent;
238
+ // Issue #2376: the RESOLVED id, never the string the user typed.
239
+ // `--instance "Codex 2"` has to reach /send as `codex-2`; no route but
240
+ // /resolve-target knows how to read an alias.
241
+ const instanceId = target?.instanceId;
222
242
  // Issue #576/#588/#989: Validate --model option via shared validator (DR1-003).
223
243
  // Issue #1925: judged against the RESOLVED agent, not against --agent.
224
244
  // `--instance copilot-2 --model gpt-5` names a copilot session in the
@@ -246,7 +266,7 @@ function createSendCommand() {
246
266
  let taskId;
247
267
  let content = message;
248
268
  if (options.contract) {
249
- const task = await createContractTask(client, worktreeId, options, agent);
269
+ const task = await createContractTask(client, worktreeId, options, agent, instanceId);
250
270
  taskId = task.taskId;
251
271
  content = task.message;
252
272
  console.error(`Task created: ${taskId}`);
@@ -254,7 +274,27 @@ function createSendCommand() {
254
274
  }
255
275
  // --auto-yes: enable auto-yes first (unless --model is specified, then after send) [DR2-02]
256
276
  if (options.autoYes && !options.model) {
257
- await enableAutoYes(client, worktreeId, options, autoYesDurationMs, agent);
277
+ await enableAutoYes(client, worktreeId, options, autoYesDurationMs, agent, instanceId);
278
+ }
279
+ // Issue #2377: the relay is registered BEFORE the message goes out, so a
280
+ // session that answers immediately cannot finish its turn in the window
281
+ // between the send and the ledger row — the completion trigger reads the
282
+ // ledger, and a row that does not exist yet is a reply nobody collects.
283
+ // A refusal exits 2 here, having sent nothing.
284
+ let relayId;
285
+ if (options.replyTo) {
286
+ const replyEndpoint = await (0, relays_1.resolveRelayEndpoint)(client, options.replyTo);
287
+ const workerEndpoint = await (0, relays_1.resolveEndpointForWorktree)(client, worktreeId, options.instance, options.agent);
288
+ relayId = await (0, relays_1.registerRelay)(client, {
289
+ from: replyEndpoint,
290
+ to: workerEndpoint,
291
+ allowRelayChain: options.allowRelayChain,
292
+ });
293
+ // stderr, not stdout: `--contract` already owns this command's stdout
294
+ // (it prints the task id there), and two commands writing two ids to
295
+ // one stream is how a `$(…)` capture ends up with both. `ask --async`
296
+ // is the form that hands the relay id back on stdout.
297
+ console.error(`Relay registered: ${relayId}`);
258
298
  }
259
299
  // [DR2-05] Send API uses "content" not "message"
260
300
  const sendBody = { content };
@@ -262,8 +302,8 @@ function createSendCommand() {
262
302
  sendBody.cliToolId = agent;
263
303
  }
264
304
  // Issue #868: Include instance ID in send body
265
- if (options.instance) {
266
- sendBody.instanceId = options.instance;
305
+ if (instanceId) {
306
+ sendBody.instanceId = instanceId;
267
307
  }
268
308
  // Issue #576: Include model in send body
269
309
  if (options.model) {
@@ -284,6 +324,12 @@ function createSendCommand() {
284
324
  if (taskId) {
285
325
  await reportTaskStatus(client, taskId, 'failed');
286
326
  }
327
+ // A relay whose message never arrived can never be answered; leaving
328
+ // it open would have the requester waiting 24h for a turn that was
329
+ // never started.
330
+ if (relayId) {
331
+ await (0, relays_1.cancelRelayQuietly)(client, relayId);
332
+ }
287
333
  // Issue #1708: the session is sitting on a prompt, so the message
288
334
  // would have been typed into the prompt's input line rather than
289
335
  // reaching the agent. Reported on its own so an unattended runner sees
@@ -304,13 +350,13 @@ function createSendCommand() {
304
350
  }
305
351
  // Issue #1000: register the ad-hoc instance into the roster after the
306
352
  // session has started, so a follow-up `commandmate instances` lists it.
307
- if (options.register && options.instance) {
308
- await registerInstance(client, worktreeId, options.instance, options.agent ?? options.instance);
353
+ if (options.register && instanceId) {
354
+ await registerInstance(client, worktreeId, instanceId, options.agent ?? instanceId);
309
355
  }
310
356
  // Issue #576: Enable auto-yes AFTER send when --model is specified
311
357
  // This avoids auto-yes interfering with the /model command interaction
312
358
  if (options.autoYes && options.model) {
313
- await enableAutoYes(client, worktreeId, options, autoYesDurationMs, agent);
359
+ await enableAutoYes(client, worktreeId, options, autoYesDurationMs, agent, instanceId);
314
360
  }
315
361
  }
316
362
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/task.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,wBAAgB,iBAAiB,IAAI,OAAO,CA4H3C"}
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/task.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DpC,wBAAgB,iBAAiB,IAAI,OAAO,CAuI3C"}
@@ -19,6 +19,28 @@ const TASK_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-
19
19
  function formatTimestamp(value) {
20
20
  return value ?? '-';
21
21
  }
22
+ /**
23
+ * The relay counts for the session this task ran in, or null (Issue #2377).
24
+ *
25
+ * Scoped to the task's own worktree AND instance, because that is the session a
26
+ * relay would have been opened by or against — a worktree-wide count would put
27
+ * another agent's delegations on this task's page.
28
+ *
29
+ * Best effort: a daemon with no relay ledger is one that answers 404 here, which
30
+ * must not fail `task show`.
31
+ */
32
+ async function readTaskRelayCounts(client, task) {
33
+ const query = new URLSearchParams({ worktree: task.worktreeId });
34
+ if (task.instanceId)
35
+ query.set('instance', task.instanceId);
36
+ try {
37
+ const response = await client.get(`/api/relays?${query.toString()}`);
38
+ return response.counts ?? null;
39
+ }
40
+ catch {
41
+ return null;
42
+ }
43
+ }
22
44
  function printTaskLine(task) {
23
45
  const gates = task.contract.verify.gates;
24
46
  console.log([
@@ -115,6 +137,14 @@ function createTaskCommand() {
115
137
  console.log(`CREATED: ${task.createdAt}`);
116
138
  console.log(`STARTED: ${formatTimestamp(task.startedAt)}`);
117
139
  console.log(`FINISHED: ${formatTimestamp(task.finishedAt)}`);
140
+ // Issue #2377: what this session delegated, and what came back. Printed
141
+ // before the verification block because it is about the same session,
142
+ // whereas the run below is about one judgement of it.
143
+ const relays = await readTaskRelayCounts(client, task);
144
+ if (relays) {
145
+ console.log(`RELAYS: ${relays.delivered} delivered / ${relays.prompt} prompt / `
146
+ + `${relays.expired} expired (${relays.pending} open)`);
147
+ }
118
148
  if (!lastVerificationRun) {
119
149
  console.log('VERIFY: (no verification run yet)');
120
150
  return;
@@ -19,6 +19,9 @@
19
19
  * Infrastructure errors use ExitCode (1, 2, 99)
20
20
  */
21
21
  import { Command } from 'commander';
22
+ import type { WaitOptions } from '../types';
23
+ import type { WaitPromptOutput } from '../types/api-responses';
24
+ import { ApiClient } from '../utils/api-client';
22
25
  /**
23
26
  * Structured event types that mean "a turn is under way" (Issue #1839).
24
27
  *
@@ -45,5 +48,22 @@ import { Command } from 'commander';
45
48
  * `"paths": {}`), so the test is the only thing holding the two together.
46
49
  */
47
50
  export declare const TURN_OPENING_EVENT_TYPES: ReadonlySet<string>;
51
+ /**
52
+ * Poll a single worktree until completion, prompt, or timeout.
53
+ *
54
+ * Exported since Issue #2376 so `ask` can do the WAITING half of its round trip
55
+ * with this function rather than a second implementation of it. `ask` is
56
+ * `send` + `wait` + "read the reply", and a private copy of the turn-boundary
57
+ * rules here (#1839's `basis`, #1975's unanswered-prompt hold, #1708's
58
+ * unclassified dwell) is a copy that would drift into reporting a completion
59
+ * this one refuses.
60
+ *
61
+ * `options.instance` must already be a resolved instance ID — see
62
+ * {@link resolveWaitInstance}.
63
+ */
64
+ export declare function pollWorktree(client: ApiClient, worktreeId: string, options: WaitOptions): Promise<{
65
+ exitCode: number;
66
+ output?: WaitPromptOutput;
67
+ }>;
48
68
  export declare function createWaitCommand(): Command;
49
69
  //# sourceMappingURL=wait.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6DpC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAIvD,CAAC;AAk8BH,wBAAgB,iBAAiB,IAAI,OAAO,CAmJ3C"}
1
+ {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAMV,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAA+B,MAAM,qBAAqB,CAAC;AAwD7E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAIvD,CAAC;AA2bH;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA6X1D;AAwKD,wBAAgB,iBAAiB,IAAI,OAAO,CA2J3C"}
@@ -21,6 +21,7 @@
21
21
  */
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.TURN_OPENING_EVENT_TYPES = void 0;
24
+ exports.pollWorktree = pollWorktree;
24
25
  exports.createWaitCommand = createWaitCommand;
25
26
  const commander_1 = require("commander");
26
27
  const types_1 = require("../types");
@@ -28,6 +29,7 @@ const api_client_1 = require("../utils/api-client");
28
29
  const command_helpers_1 = require("../utils/command-helpers");
29
30
  const verify_runner_1 = require("../utils/verify-runner");
30
31
  const agent_target_options_1 = require("../config/agent-target-options");
32
+ const instances_1 = require("./instances");
31
33
  /** [IA3-02] Polling interval 5 seconds (matches tmux-capture-cache TTL=2s) */
32
34
  const POLL_INTERVAL_MS = 5000;
33
35
  /**
@@ -508,6 +510,16 @@ function outstandingPrompt(data, submittedAt) {
508
510
  }
509
511
  /**
510
512
  * Poll a single worktree until completion, prompt, or timeout.
513
+ *
514
+ * Exported since Issue #2376 so `ask` can do the WAITING half of its round trip
515
+ * with this function rather than a second implementation of it. `ask` is
516
+ * `send` + `wait` + "read the reply", and a private copy of the turn-boundary
517
+ * rules here (#1839's `basis`, #1975's unanswered-prompt hold, #1708's
518
+ * unclassified dwell) is a copy that would drift into reporting a completion
519
+ * this one refuses.
520
+ *
521
+ * `options.instance` must already be a resolved instance ID — see
522
+ * {@link resolveWaitInstance}.
511
523
  */
512
524
  async function pollWorktree(client, worktreeId, options) {
513
525
  const startTime = Date.now();
@@ -970,6 +982,38 @@ function mergeExitCode(current, candidate) {
970
982
  };
971
983
  return rank(candidate) < rank(current) ? candidate : current;
972
984
  }
985
+ /**
986
+ * `options` with `--instance` resolved from a selector to an instance ID
987
+ * (Issue #2376).
988
+ *
989
+ * `wait` polls `/current-output?instance=`, which matches instance IDs and
990
+ * nothing else, so an alias that reached it would filter to no session and the
991
+ * wait would report on the worktree default instead — the exact silent
992
+ * wrong-session failure Issue #1638 catalogued for `--agent`.
993
+ *
994
+ * @param client - API client
995
+ * @param worktreeId - Worktree the selector is resolved against
996
+ * @param options - The options as given
997
+ */
998
+ async function resolveWaitInstance(client, worktreeId, options) {
999
+ if (!options.instance)
1000
+ return options;
1001
+ try {
1002
+ const target = await (0, instances_1.resolveInstanceTarget)(client, worktreeId, options.instance, undefined);
1003
+ return { ...options, instance: target.instanceId ?? options.instance };
1004
+ }
1005
+ catch (error) {
1006
+ // Degrade to the pre-#2376 behaviour rather than failing the wait. An
1007
+ // instance ID needs no resolution to reach `/current-output?instance=` —
1008
+ // resolution exists here so that an ALIAS can — so a resolver that cannot
1009
+ // be reached costs alias support for this call and nothing else. Failing
1010
+ // instead would turn a reachable session into a non-zero exit for an
1011
+ // orchestrator that has been waiting on it correctly for two years.
1012
+ console.error(`Warning: could not resolve --instance '${options.instance}' `
1013
+ + `(${(0, types_1.getErrorMessage)(error)}); using it as an instance id.`);
1014
+ return options;
1015
+ }
1016
+ }
973
1017
  function createWaitCommand() {
974
1018
  const cmd = new commander_1.Command('wait');
975
1019
  cmd
@@ -978,7 +1022,7 @@ function createWaitCommand() {
978
1022
  .option('--timeout <seconds>', 'Maximum wait time in seconds', parseInt)
979
1023
  .option('--on-prompt <mode>', 'Prompt handling: agent (default) exits 10 with a prompt JSON payload on stdout (read it before re-capturing); human keeps waiting for a human reply')
980
1024
  .option('--stall-timeout <seconds>', 'Maximum time without output change', parseInt)
981
- .option('--instance <id>', agent_target_options_1.WAIT_INSTANCE_OPTION_DESCRIPTION)
1025
+ .option('--instance <id>', `${agent_target_options_1.WAIT_INSTANCE_OPTION_DESCRIPTION} ${instances_1.INSTANCE_ALIAS_HELP_SUFFIX}`)
982
1026
  .option('--verify', 'After completion, run every verification gate; exit 20 when a gate fails, 21 when there is nothing to verify')
983
1027
  .option('--require-work', 'After completion, run only the work-evidence gate; exit 21 when the worktree has no commits and no uncommitted changes')
984
1028
  .option('--fail-on-upstream-fault', 'Exit 11 instead of 0 when the agent returns to its composer with an upstream API failure (529/limit/API Error) on the frame')
@@ -1030,13 +1074,18 @@ A prompt the agent has not answered yet (Issue #1975):
1030
1074
  return;
1031
1075
  }
1032
1076
  }
1033
- // Issue #868: Validate instance ID if provided
1034
- if (options.instance && !(0, api_client_1.isValidInstanceId)(options.instance)) {
1035
- console.error('Error: Invalid --instance. Must be an alphanumeric/underscore/hyphen identifier (max 64 chars).');
1077
+ // Issue #868 / #2376: an instance id or a roster alias.
1078
+ if (options.instance && !(0, instances_1.isInstanceSelector)(options.instance)) {
1079
+ console.error(instances_1.INSTANCE_SELECTOR_ERROR);
1036
1080
  process.exit(types_1.ExitCode.CONFIG_ERROR);
1037
1081
  return;
1038
1082
  }
1039
1083
  const client = new api_client_1.ApiClient({ token: options.token });
1084
+ // Issue #2376: resolve the selector PER worktree. `wait a b --instance
1085
+ // "Codex 2"` is one alias against two rosters, and the id behind it can
1086
+ // legitimately differ — resolving once and reusing the answer would poll
1087
+ // the wrong session on the second worktree.
1088
+ const perWorktreeOptions = await Promise.all(worktreeIds.map(id => resolveWaitInstance(client, id, options)));
1040
1089
  // Issue #1620: resolved before any polling starts. Once the agent stops
1041
1090
  // there is no reliable way left to tell which contract this wait was
1042
1091
  // about — the agent's own verification may have closed it by then.
@@ -1045,7 +1094,7 @@ A prompt the agent has not answered yet (Issue #1975):
1045
1094
  : worktreeIds.map(() => undefined);
1046
1095
  if (worktreeIds.length === 1) {
1047
1096
  // Single worktree
1048
- const result = await pollWorktree(client, worktreeIds[0], options);
1097
+ const result = await pollWorktree(client, worktreeIds[0], perWorktreeOptions[0]);
1049
1098
  if (result.output) {
1050
1099
  // stdout for result (JSON output)
1051
1100
  console.log(JSON.stringify(result.output));
@@ -1059,7 +1108,7 @@ A prompt the agent has not answered yet (Issue #1975):
1059
1108
  return;
1060
1109
  }
1061
1110
  // [DR1-07] Multiple worktrees: Promise.allSettled for error isolation
1062
- const results = await Promise.allSettled(worktreeIds.map(id => pollWorktree(client, id, options)));
1111
+ const results = await Promise.allSettled(worktreeIds.map((id, index) => pollWorktree(client, id, perWorktreeOptions[index])));
1063
1112
  // Collect results
1064
1113
  const outputs = [];
1065
1114
  let finalExitCode = types_1.WaitExitCode.SUCCESS;
@@ -0,0 +1,109 @@
1
+ /**
2
+ * whoami Command - which session am I? (Issue #2376)
3
+ *
4
+ * commandmate whoami [--json]
5
+ *
6
+ * ## Why an agent cannot answer this for itself
7
+ *
8
+ * Every delegation command needs a worktree id and an instance id, and an agent
9
+ * running INSIDE one of those sessions had no way to produce either. `ls` lists
10
+ * every worktree on the machine without saying which row is the caller;
11
+ * `instances` needs the worktree id you are trying to find out. So the first
12
+ * step of "ask that other session something" was a human pasting two ids in.
13
+ *
14
+ * ## Where the answer comes from, in order
15
+ *
16
+ * 1. **The environment.** `CM_WORKTREE_ID` / `CM_INSTANCE_ID` / `CM_CLI_TOOL`
17
+ * first, then the `CM_AGENT_*` correlation variables CommandMate already
18
+ * puts on the launch line of every tool whose hooks ride there (codex,
19
+ * copilot, gemini, antigravity, opencode, command-code — see
20
+ * `AGENT_CORRELATION_ENV_VARS` in `lib/hooks/sources/launch-command.ts`).
21
+ * Authoritative when present: the server wrote them when it started the
22
+ * session.
23
+ * 2. **The tmux session name.** claude is configured through `--settings` and
24
+ * carries no launch-line environment at all, so for the most common agent
25
+ * of the lot the environment says nothing. `mcbd-<tool>-<worktree>[-<n>]` is
26
+ * the name CommandMate gave the session (`lib/cli-tools/session-name.ts`),
27
+ * and a shell inside the pane can read it back from tmux. Shelling out to
28
+ * `tmux` rather than importing anything: the CLI build sets `paths: {}` and
29
+ * an ESLint guard (Issue #1922) forbids `lib/tmux/**` outright — `attach`
30
+ * already talks to the binary the same way.
31
+ *
32
+ * Neither one answering means this is not a CommandMate-started session, and
33
+ * that is {@link NOT_IN_SESSION} rather than a guess.
34
+ */
35
+ import { Command } from 'commander';
36
+ import type { AgentInstance } from '../types/api-responses';
37
+ import { ApiClient } from '../utils/api-client';
38
+ /**
39
+ * Exit code for "this shell is not inside a CommandMate agent session".
40
+ *
41
+ * 3 by the Issue's contract. It is the numeric slot `ExitCode.START_FAILED`
42
+ * occupies for the server-lifecycle commands, and it is spelled here as its own
43
+ * constant rather than reused from that enum because the two mean nothing alike:
44
+ * a caller branching on `whoami` exiting 3 is asking "am I inside a session",
45
+ * not "did a server fail to start". `src/cli/types/index.ts` is where the shared
46
+ * enum lives; adding a name to it is a separate change from this one.
47
+ */
48
+ export declare const NOT_IN_SESSION = 3;
49
+ /** How this identity was established. Reported so a wrong answer is traceable. */
50
+ export type IdentitySource = 'env' | 'tmux-session';
51
+ /** Who the caller is, as far as anything can say. */
52
+ export interface SessionIdentity {
53
+ worktreeId: string;
54
+ /** Instance ID. The primary instance is `instanceId === cliToolId` (#868). */
55
+ instanceId: string;
56
+ cliToolId: string;
57
+ source: IdentitySource;
58
+ /** The tmux session, when the identity came from (or could be checked against) one. */
59
+ sessionName: string | null;
60
+ }
61
+ /**
62
+ * The tmux session this process is running inside, or null.
63
+ *
64
+ * `$TMUX` is checked first so a call from an ordinary shell costs no process
65
+ * spawn at all — `whoami` outside a session is the case that has to be cheap,
66
+ * because a script that probes for CommandMate runs it once per invocation.
67
+ *
68
+ * @param env - Environment to read
69
+ * @returns The session name, or null when there is no tmux to ask
70
+ */
71
+ export declare function readTmuxSessionName(env?: Readonly<Record<string, string | undefined>>): string | null;
72
+ /** A session name split into the parts {@link resolveSessionName} put there. */
73
+ interface ParsedSessionName {
74
+ cliToolId: string;
75
+ /** Everything after `mcbd-<tool>-`: a worktree id, possibly plus `-<n>`. */
76
+ remainder: string;
77
+ }
78
+ /**
79
+ * Split `mcbd-<tool>-<rest>` into its tool and the rest.
80
+ *
81
+ * Matched against the tool ids longest-first, because two of them contain a
82
+ * hyphen (`vibe-local`, `command-code`) and a shortest-first scan would read
83
+ * `mcbd-command-code-wt` as the tool `command` — which is not a tool, but the
84
+ * scan does not know that until it has already split in the wrong place.
85
+ *
86
+ * @param sessionName - A tmux session name
87
+ * @returns The parts, or null when this is not a CommandMate session name
88
+ */
89
+ export declare function parseSessionName(sessionName: string): ParsedSessionName | null;
90
+ /**
91
+ * Work out which session this process is running inside.
92
+ *
93
+ * @param client - API client, used only to disambiguate a session name
94
+ * @param env - Environment to read
95
+ * @returns The identity, or null when nothing establishes one
96
+ */
97
+ export declare function resolveSessionIdentity(client: ApiClient, env?: Readonly<Record<string, string | undefined>>): Promise<SessionIdentity | null>;
98
+ /**
99
+ * The roster row for this identity, or null.
100
+ *
101
+ * Best effort: the alias is a nicety (it is what the GUI calls this session),
102
+ * and a worktree whose roster cannot be read still has a usable identity.
103
+ */
104
+ export declare function readOwnRosterEntry(client: ApiClient, identity: SessionIdentity): Promise<AgentInstance | null>;
105
+ /** The sentence printed when nothing establishes an identity. */
106
+ export declare const NOT_IN_SESSION_MESSAGE: string;
107
+ export declare function createWhoamiCommand(): Command;
108
+ export {};
109
+ //# sourceMappingURL=whoami.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,aAAa,EAAsC,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAKhD;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,IAAI,CAAC;AAUhC,kFAAkF;AAClF,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,cAAc,CAAC;AAEpD,qDAAqD;AACrD,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,uFAAuF;IACvF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAcD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,GAC9D,MAAM,GAAG,IAAI,CASf;AAED,gFAAgF;AAChF,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAa9E;AAkDD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EACjB,GAAG,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAe,GAC9D,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAoCjC;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,eAAe,GACxB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAO/B;AAED,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,QAMmC,CAAC;AAEvE,wBAAgB,mBAAmB,IAAI,OAAO,CA0C7C"}