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
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ /**
3
+ * peers Command - the other agent sessions this one can talk to (Issue #2376)
4
+ *
5
+ * commandmate peers [--json]
6
+ *
7
+ * ## Why `ls` + `instances` was not enough
8
+ *
9
+ * The two ids `ask` needs live in two different commands and neither one knows
10
+ * the caller. `ls` lists every worktree on the machine — including the dozen
11
+ * belonging to repositories this session has nothing to do with — and
12
+ * `instances` needs a worktree id per call. So working out "who can I ask?" was
13
+ * a fan-out plus a filter the agent had to invent, and inventing it is what
14
+ * produced the wrong `--instance` values this Issue exists to stop.
15
+ *
16
+ * This is that fan-out, done once, narrowed to the caller's own repository, with
17
+ * the caller's own row marked `(you)` and a ready-to-run `ask` line against
18
+ * every other row. The listing is the answer AND the example: the acceptance
19
+ * criterion for this command is that a line pasted out of it works.
20
+ *
21
+ * Scoped to the repository rather than to everything because that is the unit a
22
+ * delegation is about — sibling worktrees of one project, which is what
23
+ * `/worktree-setup` produces — and because a global listing is what `ls`
24
+ * already is.
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.buildPeerRows = buildPeerRows;
28
+ exports.createPeersCommand = createPeersCommand;
29
+ const commander_1 = require("commander");
30
+ const api_client_1 = require("../utils/api-client");
31
+ const command_helpers_1 = require("../utils/command-helpers");
32
+ const command_reference_1 = require("../../lib/cli/command-reference");
33
+ const whoami_1 = require("./whoami");
34
+ /**
35
+ * The four-word status vocabulary, derived exactly as `ls` derives it.
36
+ *
37
+ * Duplicated from `ls.ts` rather than shared: this is three lines of precedence
38
+ * over three booleans, and the alternative — exporting `deriveStatus` from a
39
+ * command module so another command module can import it — couples two
40
+ * commands to save nothing. The vocabulary itself is pinned by `ls`'s own tests.
41
+ */
42
+ function deriveStatus(wt) {
43
+ if (wt.isWaitingForResponse)
44
+ return 'waiting';
45
+ if (wt.isProcessing)
46
+ return 'running';
47
+ if (wt.isSessionRunning)
48
+ return 'ready';
49
+ return 'idle';
50
+ }
51
+ /**
52
+ * Whether `wt` belongs to the same repository as `self`.
53
+ *
54
+ * `repositoryPath` is the identity — two checkouts of the same upstream have the
55
+ * same `repositoryName` and are not the same repository — and the name is the
56
+ * fallback for a row that predates the field. A row with neither is excluded
57
+ * rather than assumed: a listing that quietly widened to the whole machine
58
+ * would put a `--instance` for somebody else's project in front of an agent.
59
+ *
60
+ * @param wt - Candidate worktree
61
+ * @param self - The caller's own worktree row
62
+ */
63
+ function sameRepository(wt, self) {
64
+ if (self.repositoryPath && wt.repositoryPath) {
65
+ return wt.repositoryPath === self.repositoryPath;
66
+ }
67
+ if (self.repositoryName && wt.repositoryName) {
68
+ return wt.repositoryName === self.repositoryName;
69
+ }
70
+ // Neither side declares one: the caller's own worktree is still a peer group
71
+ // of one, and nothing else can be shown to belong to it.
72
+ return wt.id === self.id;
73
+ }
74
+ /**
75
+ * The roster of a worktree as the list API sent it.
76
+ *
77
+ * A worktree with no roster still has its primary instance — that is what
78
+ * `--instance` resolves to with no roster row at all (#868) — so an empty
79
+ * roster is reported as the worktree's own CLI tool rather than as no sessions.
80
+ *
81
+ * A worktree that declares no CLI tool either contributes NO rows, rather than
82
+ * a row for the agent it is statistically most likely to be running. An `ask`
83
+ * line naming the wrong tool is a message typed into a session that was never
84
+ * started, and the whole point of this listing is that its lines run.
85
+ */
86
+ function rosterOf(wt) {
87
+ if (wt.agentInstances && wt.agentInstances.length > 0)
88
+ return wt.agentInstances;
89
+ if (!wt.cliToolId)
90
+ return [];
91
+ return [{ id: wt.cliToolId, cliTool: wt.cliToolId, alias: wt.cliToolId, order: 0 }];
92
+ }
93
+ /**
94
+ * Quote an argument for the `ask` example when it needs it.
95
+ *
96
+ * Instance ids never do (`isValidInstanceId` allows no shell metacharacter) but
97
+ * this command prints ids, not aliases, precisely so the line is paste-safe.
98
+ * The guard is here so a future id shape cannot silently produce a line that
99
+ * means something else in a shell.
100
+ */
101
+ function shellArg(value) {
102
+ return /^[A-Za-z0-9_.:@+-]+$/.test(value) ? value : JSON.stringify(value);
103
+ }
104
+ /**
105
+ * Build the listing.
106
+ *
107
+ * @param worktrees - Every worktree the server knows
108
+ * @param identity - Who is asking
109
+ * @param binary - The command name to spell the examples with
110
+ */
111
+ function buildPeerRows(worktrees, identity, binary) {
112
+ const self = worktrees.find((wt) => wt.id === identity.worktreeId);
113
+ const scoped = self ? worktrees.filter((wt) => sameRepository(wt, self)) : [];
114
+ const rows = [];
115
+ for (const wt of scoped) {
116
+ const status = deriveStatus(wt);
117
+ for (const inst of rosterOf(wt)) {
118
+ const isSelf = wt.id === identity.worktreeId && inst.id === identity.instanceId;
119
+ rows.push({
120
+ worktreeId: wt.id,
121
+ instanceId: inst.id,
122
+ cliTool: inst.cliTool,
123
+ alias: inst.alias,
124
+ status,
125
+ isSelf,
126
+ ask: isSelf
127
+ ? null
128
+ : `${binary} ask ${shellArg(wt.id)} --instance ${shellArg(inst.id)} "<request>"`,
129
+ });
130
+ }
131
+ }
132
+ return rows;
133
+ }
134
+ /** Render the listing for a terminal. */
135
+ function formatPeers(rows) {
136
+ if (rows.length === 0)
137
+ return 'No peer sessions found.';
138
+ return rows
139
+ .map((row) => {
140
+ const head = `${row.worktreeId} / ${row.instanceId}`;
141
+ const marker = row.isSelf ? ' (you)' : '';
142
+ const lines = [
143
+ `${head}${marker}`,
144
+ ` alias: ${row.alias} tool: ${row.cliTool} status: ${row.status}`,
145
+ ];
146
+ if (row.ask)
147
+ lines.push(` ${row.ask}`);
148
+ return lines.join('\n');
149
+ })
150
+ .join('\n');
151
+ }
152
+ function createPeersCommand() {
153
+ const cmd = new commander_1.Command('peers');
154
+ cmd
155
+ .description('List the other agent sessions in this repository, with a ready-to-run `ask` line each')
156
+ .option('--json', 'JSON output')
157
+ .option('--token <token>', command_helpers_1.TOKEN_WARNING)
158
+ .action(async (options) => {
159
+ try {
160
+ const client = new api_client_1.ApiClient({ token: options.token });
161
+ const identity = await (0, whoami_1.resolveSessionIdentity)(client);
162
+ if (!identity) {
163
+ console.error(whoami_1.NOT_IN_SESSION_MESSAGE);
164
+ process.exit(whoami_1.NOT_IN_SESSION);
165
+ return;
166
+ }
167
+ const response = await client.get('/api/worktrees');
168
+ const worktrees = (response.worktrees ?? []);
169
+ // The same rule the GUI's panel and brief use (Issue #2120), from the
170
+ // same function: `CM_LAUNCHED_BY` is stamped by `commandmate start` on
171
+ // the server it spawns, and an agent pane inherits it — so a session
172
+ // started by the installed CLI is told `commandmate` and one started
173
+ // from a checkout is told `commandmatedev`, which is the name that
174
+ // actually exists on that PATH. A literal here would be a second
175
+ // authority on the one string the caller pastes into a shell.
176
+ const binary = (0, command_reference_1.resolveCommandMateBinary)();
177
+ const rows = buildPeerRows(worktrees, identity, binary);
178
+ if (options.json) {
179
+ console.log(JSON.stringify({
180
+ self: {
181
+ worktreeId: identity.worktreeId,
182
+ instanceId: identity.instanceId,
183
+ cliToolId: identity.cliToolId,
184
+ },
185
+ peers: rows,
186
+ }, null, 2));
187
+ return;
188
+ }
189
+ console.log(formatPeers(rows));
190
+ }
191
+ catch (error) {
192
+ (0, command_helpers_1.handleCommandError)(error);
193
+ }
194
+ });
195
+ return cmd;
196
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * relays Command - the standing delegations this machine is holding (#2377)
3
+ *
4
+ * commandmate relays [--worktree <id>] [--instance <id|alias>] [--json]
5
+ * commandmate relays cancel <relay-id>
6
+ *
7
+ * ## Why a command and not a flag on `ls`
8
+ *
9
+ * A relay is the one piece of state in CommandMate that belongs to TWO sessions
10
+ * at once: session A is owed an answer, session B owes one, and neither
11
+ * worktree's own listing can show that without inventing a column for the other
12
+ * side. So the listing is its own thing, and it prints the pair — `from` and
13
+ * `to`, `→` between them — rather than a status word per row.
14
+ *
15
+ * With no `--worktree` it asks the session it is running inside (`whoami`'s
16
+ * resolution) and prints that session's two sides. That is the shape an agent
17
+ * uses: "what am I waiting for, and what do I owe?" is a question about the
18
+ * caller, and making the caller name itself is what #2376 exists to stop.
19
+ *
20
+ * ## What this module exports besides the command
21
+ *
22
+ * The `--reply-to` plumbing, because `send` and `ask` both take that flag and
23
+ * both have to turn one string into the two ids the ledger stores. Keeping
24
+ * {@link resolveRelayEndpoint} here rather than in `send.ts` is what stops the
25
+ * two commands from resolving `self` two different ways.
26
+ */
27
+ import { Command } from 'commander';
28
+ import { ApiClient } from '../utils/api-client';
29
+ /**
30
+ * The codes `POST /api/relays` refuses with.
31
+ *
32
+ * Mirrors `RelayRefusalCode` in `lib/relay/relay-policy` plus the route's own
33
+ * not-found; duplicated rather than imported so the CLI bundle does not pull the
34
+ * server's database graph in for four strings.
35
+ */
36
+ export declare const RELAY_REFUSAL_CODES: Set<string>;
37
+ /** One end of a relay, as the API wants it. */
38
+ export interface RelayEndpointArg {
39
+ worktreeId: string;
40
+ instanceId: string;
41
+ }
42
+ /** The text `--reply-to` is documented with, shared by `send` and `ask`. */
43
+ export declare const REPLY_TO_OPTION_DESCRIPTION: string;
44
+ /** The text `--allow-relay-chain` is documented with. */
45
+ export declare const ALLOW_RELAY_CHAIN_DESCRIPTION: string;
46
+ /**
47
+ * Turn one `--reply-to` value into the two ids the ledger stores.
48
+ *
49
+ * Exits 2 rather than throwing: every failure here is a bad option value or a
50
+ * shell that is not inside a CommandMate session, and both are things the
51
+ * operator fixes on the command line.
52
+ *
53
+ * @param client - API client
54
+ * @param spec - The raw `--reply-to` value
55
+ */
56
+ export declare function resolveRelayEndpoint(client: ApiClient, spec: string): Promise<RelayEndpointArg>;
57
+ /**
58
+ * The resolved endpoint for a worktree, with or without a named instance.
59
+ *
60
+ * Also what `send` / `ask` use for the relay's OTHER end — the session being
61
+ * asked — because the ledger stores a resolved id at both ends and the send's
62
+ * own `--instance` may have been omitted (meaning "the primary one", which only
63
+ * the server can name).
64
+ *
65
+ * @param client - API client
66
+ * @param worktreeId - Worktree ID
67
+ * @param selector - An instance id or roster alias, or undefined
68
+ * @param requestedAgent - The `--agent` value, if the caller gave one
69
+ */
70
+ export declare function resolveEndpointForWorktree(client: ApiClient, worktreeId: string, selector: string | undefined, requestedAgent?: string): Promise<RelayEndpointArg>;
71
+ /** What {@link registerRelay} needs. */
72
+ export interface RegisterRelayInput {
73
+ /** The session that will receive the reply. */
74
+ from: RelayEndpointArg;
75
+ /** The session being asked. */
76
+ to: RelayEndpointArg;
77
+ allowRelayChain?: boolean;
78
+ }
79
+ /**
80
+ * Open a relay, printing the server's own refusal and exiting 2 on one.
81
+ *
82
+ * Exit 2 and not a bespoke code: every refusal is a decision the operator can
83
+ * change (drop the flag, cancel the other relay, stop forwarding), which is what
84
+ * `CONFIG_ERROR` means everywhere else in this CLI.
85
+ *
86
+ * @returns The relay id
87
+ */
88
+ export declare function registerRelay(client: ApiClient, input: RegisterRelayInput): Promise<string>;
89
+ /** Withdraw a relay, best effort. Used when the send it accompanied failed. */
90
+ export declare function cancelRelayQuietly(client: ApiClient, relayId: string): Promise<void>;
91
+ export declare function createRelaysCommand(): Command;
92
+ //# sourceMappingURL=relays.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relays.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/relays.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,EAAE,SAAS,EAA+B,MAAM,qBAAqB,CAAC;AAgB7E;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,aAM9B,CAAC;AAEH,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,QAEiD,CAAC;AAE1F,yDAAyD;AACzD,eAAO,MAAM,6BAA6B,QAER,CAAC;AAEnC;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAyB3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA0B3B;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,IAAI,EAAE,gBAAgB,CAAC;IACvB,+BAA+B;IAC/B,EAAE,EAAE,gBAAgB,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,+EAA+E;AAC/E,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1F;AAyBD,wBAAgB,mBAAmB,IAAI,OAAO,CA8H7C"}
@@ -0,0 +1,293 @@
1
+ "use strict";
2
+ /**
3
+ * relays Command - the standing delegations this machine is holding (#2377)
4
+ *
5
+ * commandmate relays [--worktree <id>] [--instance <id|alias>] [--json]
6
+ * commandmate relays cancel <relay-id>
7
+ *
8
+ * ## Why a command and not a flag on `ls`
9
+ *
10
+ * A relay is the one piece of state in CommandMate that belongs to TWO sessions
11
+ * at once: session A is owed an answer, session B owes one, and neither
12
+ * worktree's own listing can show that without inventing a column for the other
13
+ * side. So the listing is its own thing, and it prints the pair — `from` and
14
+ * `to`, `→` between them — rather than a status word per row.
15
+ *
16
+ * With no `--worktree` it asks the session it is running inside (`whoami`'s
17
+ * resolution) and prints that session's two sides. That is the shape an agent
18
+ * uses: "what am I waiting for, and what do I owe?" is a question about the
19
+ * caller, and making the caller name itself is what #2376 exists to stop.
20
+ *
21
+ * ## What this module exports besides the command
22
+ *
23
+ * The `--reply-to` plumbing, because `send` and `ask` both take that flag and
24
+ * both have to turn one string into the two ids the ledger stores. Keeping
25
+ * {@link resolveRelayEndpoint} here rather than in `send.ts` is what stops the
26
+ * two commands from resolving `self` two different ways.
27
+ */
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ALLOW_RELAY_CHAIN_DESCRIPTION = exports.REPLY_TO_OPTION_DESCRIPTION = exports.RELAY_REFUSAL_CODES = void 0;
30
+ exports.resolveRelayEndpoint = resolveRelayEndpoint;
31
+ exports.resolveEndpointForWorktree = resolveEndpointForWorktree;
32
+ exports.registerRelay = registerRelay;
33
+ exports.cancelRelayQuietly = cancelRelayQuietly;
34
+ exports.createRelaysCommand = createRelaysCommand;
35
+ const commander_1 = require("commander");
36
+ const types_1 = require("../types");
37
+ const api_client_1 = require("../utils/api-client");
38
+ const command_helpers_1 = require("../utils/command-helpers");
39
+ const session_target_1 = require("../utils/session-target");
40
+ const instances_1 = require("./instances");
41
+ const whoami_1 = require("./whoami");
42
+ /** crypto.randomUUID() output; mirrors RELAY_ID_PATTERN in the API route. */
43
+ const RELAY_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
44
+ /** The `--reply-to` values that mean "the session running this command". */
45
+ const SELF_SELECTORS = new Set(['self', 'me']);
46
+ /**
47
+ * The codes `POST /api/relays` refuses with.
48
+ *
49
+ * Mirrors `RelayRefusalCode` in `lib/relay/relay-policy` plus the route's own
50
+ * not-found; duplicated rather than imported so the CLI bundle does not pull the
51
+ * server's database graph in for four strings.
52
+ */
53
+ exports.RELAY_REFUSAL_CODES = new Set([
54
+ 'RELAY_CHAIN_BLOCKED',
55
+ 'RELAY_HOPS_EXCEEDED',
56
+ 'RELAY_DUPLICATE_PENDING',
57
+ 'RELAY_SELF_TARGET',
58
+ 'RELAY_WORKTREE_NOT_FOUND',
59
+ ]);
60
+ /** The text `--reply-to` is documented with, shared by `send` and `ask`. */
61
+ exports.REPLY_TO_OPTION_DESCRIPTION = 'Deliver the target\'s reply to this session when it finishes: '
62
+ + '<worktree-id>[@<instance-id|alias>], or `self` for the session running this command';
63
+ /** The text `--allow-relay-chain` is documented with. */
64
+ exports.ALLOW_RELAY_CHAIN_DESCRIPTION = 'Permit a relay opened while answering a relayed message (refused by default; '
65
+ + 'chains still stop at 3 hops)';
66
+ /**
67
+ * Turn one `--reply-to` value into the two ids the ledger stores.
68
+ *
69
+ * Exits 2 rather than throwing: every failure here is a bad option value or a
70
+ * shell that is not inside a CommandMate session, and both are things the
71
+ * operator fixes on the command line.
72
+ *
73
+ * @param client - API client
74
+ * @param spec - The raw `--reply-to` value
75
+ */
76
+ async function resolveRelayEndpoint(client, spec) {
77
+ if (SELF_SELECTORS.has(spec.trim().toLowerCase())) {
78
+ const identity = await (0, whoami_1.resolveSessionIdentity)(client);
79
+ if (!identity) {
80
+ console.error(whoami_1.NOT_IN_SESSION_MESSAGE);
81
+ console.error(' --reply-to self needs an identity; name the session explicitly instead.');
82
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
83
+ }
84
+ return { worktreeId: identity.worktreeId, instanceId: identity.instanceId };
85
+ }
86
+ const at = spec.indexOf('@');
87
+ const worktreeId = at === -1 ? spec : spec.slice(0, at);
88
+ const selector = at === -1 ? undefined : spec.slice(at + 1);
89
+ if (!(0, api_client_1.isValidWorktreeId)(worktreeId)) {
90
+ console.error('Error: --reply-to must start with a valid worktree ID.');
91
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
92
+ }
93
+ if (selector !== undefined && !(0, instances_1.isInstanceSelector)(selector)) {
94
+ console.error(`Error: --reply-to instance part: ${instances_1.INSTANCE_SELECTOR_ERROR}`);
95
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
96
+ }
97
+ return resolveEndpointForWorktree(client, worktreeId, selector);
98
+ }
99
+ /**
100
+ * The resolved endpoint for a worktree, with or without a named instance.
101
+ *
102
+ * Also what `send` / `ask` use for the relay's OTHER end — the session being
103
+ * asked — because the ledger stores a resolved id at both ends and the send's
104
+ * own `--instance` may have been omitted (meaning "the primary one", which only
105
+ * the server can name).
106
+ *
107
+ * @param client - API client
108
+ * @param worktreeId - Worktree ID
109
+ * @param selector - An instance id or roster alias, or undefined
110
+ * @param requestedAgent - The `--agent` value, if the caller gave one
111
+ */
112
+ async function resolveEndpointForWorktree(client, worktreeId, selector, requestedAgent) {
113
+ if (selector !== undefined) {
114
+ const target = await (0, instances_1.resolveInstanceTarget)(client, worktreeId, selector, requestedAgent);
115
+ const instanceId = target.instanceId;
116
+ if (!instanceId) {
117
+ console.error(`Error: could not resolve instance '${selector}' in ${worktreeId}.`);
118
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
119
+ }
120
+ return { worktreeId, instanceId };
121
+ }
122
+ // No instance named: the server's own default for the worktree, which for a
123
+ // roster of one is that tool's primary instance. Asked rather than assumed —
124
+ // the CLI guessing `claude` is exactly the second authority #1925 removed.
125
+ const target = await (0, session_target_1.resolveSessionTarget)(client, worktreeId, {
126
+ requestedCliTool: requestedAgent,
127
+ });
128
+ const instanceId = target.instanceId ?? target.cliToolId;
129
+ if (!instanceId) {
130
+ console.error(`Error: ${worktreeId} declares no agent, so --reply-to cannot name one of its sessions. `
131
+ + 'Use <worktree-id>@<instance-id>.');
132
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
133
+ }
134
+ return { worktreeId, instanceId };
135
+ }
136
+ /**
137
+ * Open a relay, printing the server's own refusal and exiting 2 on one.
138
+ *
139
+ * Exit 2 and not a bespoke code: every refusal is a decision the operator can
140
+ * change (drop the flag, cancel the other relay, stop forwarding), which is what
141
+ * `CONFIG_ERROR` means everywhere else in this CLI.
142
+ *
143
+ * @returns The relay id
144
+ */
145
+ async function registerRelay(client, input) {
146
+ try {
147
+ const response = await client.post('/api/relays', {
148
+ from: input.from,
149
+ to: input.to,
150
+ allowRelayChain: input.allowRelayChain === true,
151
+ });
152
+ return response.relay.id;
153
+ }
154
+ catch (error) {
155
+ if (error instanceof api_client_1.ApiError && error.apiCode && exports.RELAY_REFUSAL_CODES.has(error.apiCode)) {
156
+ console.error(`Error: ${error.payload?.error ?? error.apiCode}`);
157
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
158
+ }
159
+ throw error;
160
+ }
161
+ }
162
+ /** Withdraw a relay, best effort. Used when the send it accompanied failed. */
163
+ async function cancelRelayQuietly(client, relayId) {
164
+ try {
165
+ await client.post(`/api/relays/${relayId}/cancel`);
166
+ }
167
+ catch {
168
+ console.error(`Warning: could not withdraw relay ${relayId}; it will expire on its own.`);
169
+ }
170
+ }
171
+ function endpointLabel(endpoint) {
172
+ return `${endpoint.worktreeId}/${endpoint.instanceId}`;
173
+ }
174
+ function printRelayLine(relay) {
175
+ console.log([
176
+ relay.id,
177
+ relay.state,
178
+ `${endpointLabel(relay.from)} <- ${endpointLabel(relay.to)}`,
179
+ `hops=${relay.hops}`,
180
+ `expires=${new Date(relay.expiresAt).toISOString()}`,
181
+ ].join('\t'));
182
+ }
183
+ function createRelaysCommand() {
184
+ const cmd = new commander_1.Command('relays');
185
+ cmd
186
+ .description('List the open relays this session is waiting on and owes')
187
+ .option('--worktree <id>', 'Worktree to list (defaults to the session running this command)')
188
+ .option('--instance <id>', 'Agent instance inside --worktree (id or roster alias)')
189
+ .option('--json', 'JSON output')
190
+ .option('--token <token>', command_helpers_1.TOKEN_WARNING)
191
+ .addHelpText('after', `
192
+ Columns: <relay-id> <state> <requester> <- <worker> hops=<n> expires=<iso>
193
+
194
+ States: pending (the worker has not finished), prompt (it stopped on a
195
+ confirmation and the requester was told), delivered / expired / cancelled.
196
+
197
+ Withdraw one with \`commandmate relays cancel <relay-id>\`.
198
+ `)
199
+ .action(async (options) => {
200
+ try {
201
+ if (options.worktree && !(0, api_client_1.isValidWorktreeId)(options.worktree)) {
202
+ console.error('Error: Invalid worktree ID format.');
203
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
204
+ }
205
+ if (options.instance && !(0, instances_1.isInstanceSelector)(options.instance)) {
206
+ console.error(instances_1.INSTANCE_SELECTOR_ERROR);
207
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
208
+ }
209
+ const client = new api_client_1.ApiClient({ token: options.token });
210
+ let endpoint = null;
211
+ if (options.worktree) {
212
+ endpoint = await resolveEndpointForWorktree(client, options.worktree, options.instance);
213
+ }
214
+ else {
215
+ const identity = await (0, whoami_1.resolveSessionIdentity)(client);
216
+ if (identity) {
217
+ endpoint = { worktreeId: identity.worktreeId, instanceId: identity.instanceId };
218
+ }
219
+ }
220
+ const query = new URLSearchParams();
221
+ if (endpoint) {
222
+ query.set('worktree', endpoint.worktreeId);
223
+ query.set('instance', endpoint.instanceId);
224
+ }
225
+ const qs = query.toString();
226
+ const response = await client.get(`/api/relays${qs ? `?${qs}` : ''}`);
227
+ if (options.json) {
228
+ console.log(JSON.stringify(response, null, 2));
229
+ return;
230
+ }
231
+ if (!endpoint) {
232
+ console.error('Not inside a CommandMate agent session and no --worktree given; '
233
+ + 'printing counts only.');
234
+ }
235
+ const { counts } = response;
236
+ console.error(`relays: pending=${counts.pending} prompt=${counts.prompt} `
237
+ + `delivered=${counts.delivered} expired=${counts.expired} cancelled=${counts.cancelled}`);
238
+ if (response.awaiting.length === 0 && response.owed.length === 0) {
239
+ console.error('No open relays.');
240
+ return;
241
+ }
242
+ if (response.awaiting.length > 0) {
243
+ console.error(`# waiting for (${response.awaiting.length})`);
244
+ response.awaiting.forEach(printRelayLine);
245
+ }
246
+ if (response.owed.length > 0) {
247
+ console.error(`# owed by me (${response.owed.length})`);
248
+ response.owed.forEach(printRelayLine);
249
+ }
250
+ }
251
+ catch (error) {
252
+ (0, command_helpers_1.handleCommandError)(error);
253
+ }
254
+ });
255
+ cmd
256
+ .command('cancel')
257
+ .description('Withdraw an open relay so its reply is never delivered')
258
+ .argument('<relay-id>', 'Relay ID')
259
+ .option('--json', 'JSON output')
260
+ .option('--token <token>', command_helpers_1.TOKEN_WARNING)
261
+ .action(async (relayId, options) => {
262
+ try {
263
+ if (!RELAY_ID_PATTERN.test(relayId)) {
264
+ console.error('Error: Invalid relay ID format.');
265
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
266
+ }
267
+ const client = new api_client_1.ApiClient({ token: options.token });
268
+ try {
269
+ const response = await client.post(`/api/relays/${relayId}/cancel`);
270
+ if (options.json) {
271
+ console.log(JSON.stringify(response, null, 2));
272
+ }
273
+ else {
274
+ console.error(`Relay ${relayId} cancelled.`);
275
+ }
276
+ }
277
+ catch (error) {
278
+ // A relay that already delivered is not a failure to report as one:
279
+ // saying "cancelled" would tell the caller they stopped a delivery
280
+ // that in fact happened.
281
+ if (error instanceof api_client_1.ApiError && error.apiCode === 'RELAY_ALREADY_CLOSED') {
282
+ console.error(`Error: ${error.payload?.error ?? 'Relay is already closed.'}`);
283
+ process.exit(types_1.ExitCode.CONFIG_ERROR);
284
+ }
285
+ throw error;
286
+ }
287
+ }
288
+ catch (error) {
289
+ (0, command_helpers_1.handleCommandError)(error);
290
+ }
291
+ });
292
+ return cmd;
293
+ }
@@ -4,5 +4,8 @@
4
4
  * Issue #1551: report metrics (Eval metrics)
5
5
  */
6
6
  import { Command } from 'commander';
7
+ import type { RelayCountsResponse } from '../types/api-responses';
8
+ /** The relay line, in the same shape as the four above it. */
9
+ export declare function formatRelayCounts(counts: RelayCountsResponse): string;
7
10
  export declare function createReportCommand(): Command;
8
11
  //# sourceMappingURL=report.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwFpC,wBAAgB,mBAAmB,IAAI,OAAO,CA6K7C"}
1
+ {"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,KAAK,EAGV,mBAAmB,EAKpB,MAAM,wBAAwB,CAAC;AA+EhC,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAKrE;AAmBD,wBAAgB,mBAAmB,IAAI,OAAO,CAiL7C"}
@@ -5,6 +5,7 @@
5
5
  * Issue #1551: report metrics (Eval metrics)
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.formatRelayCounts = formatRelayCounts;
8
9
  exports.createReportCommand = createReportCommand;
9
10
  const commander_1 = require("commander");
10
11
  const types_1 = require("../types");
@@ -59,6 +60,28 @@ const MAX_METRICS_DAYS = 90;
59
60
  function formatRate(value) {
60
61
  return value === null ? 'n/a' : `${(value * 100).toFixed(1)}%`;
61
62
  }
63
+ /**
64
+ * Relay counts over the same window, or null when the daemon has no ledger.
65
+ *
66
+ * Best effort and separate from the vibe metrics on purpose: `/api/metrics/vibe`
67
+ * is computed from tasks and verification runs, and a relay is neither. A daemon
68
+ * that predates Issue #2377 answers 404 here, which is a reason to print the
69
+ * metrics without the relay line, not a reason to fail the command.
70
+ */
71
+ async function readRelayCounts(client, days) {
72
+ try {
73
+ const response = await client.get(`/api/relays?days=${encodeURIComponent(String(days))}`);
74
+ return response.counts ?? null;
75
+ }
76
+ catch {
77
+ return null;
78
+ }
79
+ }
80
+ /** The relay line, in the same shape as the four above it. */
81
+ function formatRelayCounts(counts) {
82
+ return (`Relays: ${counts.delivered} delivered / ${counts.prompt} waiting on a prompt `
83
+ + `/ ${counts.expired} expired (${counts.pending} still open, ${counts.cancelled} cancelled)`);
84
+ }
62
85
  function formatVibeMetrics(m) {
63
86
  const { tasks, verification, intervention } = m;
64
87
  const topFails = verification.gateFailBreakdown
@@ -215,11 +238,16 @@ function createReportCommand() {
215
238
  }
216
239
  const client = new api_client_1.ApiClient({ token: options.token });
217
240
  const data = await client.get(`/api/metrics/vibe?days=${encodeURIComponent(String(days))}`);
241
+ // Issue #2377: delegation between sessions is work this harness did, and
242
+ // until now it was the only kind that left no mark on the metrics.
243
+ const relays = await readRelayCounts(client, days);
218
244
  if (options.json) {
219
- console.log(JSON.stringify(data.metrics, null, 2));
245
+ console.log(JSON.stringify({ ...data.metrics, relays }, null, 2));
220
246
  }
221
247
  else {
222
248
  console.log(formatVibeMetrics(data.metrics));
249
+ if (relays)
250
+ console.log(formatRelayCounts(relays));
223
251
  }
224
252
  }
225
253
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"respond.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/respond.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsJpC,wBAAgB,oBAAoB,IAAI,OAAO,CAqK9C"}
1
+ {"version":3,"file":"respond.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/respond.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2JpC,wBAAgB,oBAAoB,IAAI,OAAO,CAwK9C"}