commandmate 0.49.2 → 0.50.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 (927) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +476 -423
  3. package/.next/app-path-routes-manifest.json +28 -21
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +9 -9
  6. package/.next/react-loadable-manifest.json +1 -1
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +40 -0
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/capabilities/route.js +1 -1
  19. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/daily-summary/route.js +1 -1
  21. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  22. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  24. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  25. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/hooks/agent-event/route.js +1 -103
  32. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  33. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  35. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  36. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  38. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  39. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/push/escalation/route.js +1 -1
  43. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  44. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  46. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/push/vapid/route.js +1 -1
  48. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  49. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/relays/[relayId]/cancel/route.js +4 -1
  51. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  52. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/relays/[relayId]/resolve/route.js +1 -0
  54. package/.next/server/app/api/relays/[relayId]/resolve/route.js.nft.json +1 -0
  55. package/.next/server/app/api/relays/[relayId]/resolve/route_client-reference-manifest.js +1 -0
  56. package/.next/server/app/api/relays/[relayId]/route.js +1 -1
  57. package/.next/server/app/api/relays/[relayId]/route.js.nft.json +1 -1
  58. package/.next/server/app/api/relays/[relayId]/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/relays/route.js +4 -1
  60. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  61. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/remote/pair/route.js +2 -2
  63. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/repositories/[id]/role-defaults/route.js +1 -0
  65. package/.next/server/app/api/repositories/[id]/role-defaults/route.js.nft.json +1 -0
  66. package/.next/server/app/api/repositories/[id]/role-defaults/route_client-reference-manifest.js +1 -0
  67. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  69. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  70. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/clone/route.js +1 -1
  72. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  73. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/restore/route.js +1 -1
  76. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  77. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/route.js +1 -1
  79. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/scan/route.js +1 -1
  82. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/sync/route.js +1 -1
  85. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  88. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/roles/[id]/route.js +1 -0
  90. package/.next/server/app/api/roles/[id]/route.js.nft.json +1 -0
  91. package/.next/server/app/api/roles/[id]/route_client-reference-manifest.js +1 -0
  92. package/.next/server/app/api/roles/route.js +1 -0
  93. package/.next/server/app/api/roles/route.js.nft.json +1 -0
  94. package/.next/server/app/api/roles/route_client-reference-manifest.js +1 -0
  95. package/.next/server/app/api/settings/agent-role-defaults/route.js +1 -0
  96. package/.next/server/app/api/settings/agent-role-defaults/route.js.nft.json +1 -0
  97. package/.next/server/app/api/settings/agent-role-defaults/route_client-reference-manifest.js +1 -0
  98. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  99. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  100. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/slash-commands/route.js +1 -1
  109. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  112. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  116. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/verification/runs/route.js +1 -1
  118. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  121. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  124. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  127. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +3 -3
  133. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  134. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  137. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  140. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  146. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  147. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  199. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/instances/roles/route.js +1 -0
  201. package/.next/server/app/api/worktrees/[id]/instances/roles/route.js.nft.json +1 -0
  202. package/.next/server/app/api/worktrees/[id]/instances/roles/route_client-reference-manifest.js +1 -0
  203. package/.next/server/app/api/worktrees/[id]/instances/roles/settle/route.js +1 -0
  204. package/.next/server/app/api/worktrees/[id]/instances/roles/settle/route.js.nft.json +1 -0
  205. package/.next/server/app/api/worktrees/[id]/instances/roles/settle/route_client-reference-manifest.js +1 -0
  206. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  208. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +2 -2
  210. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  225. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  228. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  231. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js.nft.json +1 -1
  234. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route_client-reference-manifest.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  244. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +2 -2
  247. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
  250. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -144
  254. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  255. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +3 -104
  257. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  258. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  261. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  263. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  264. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  266. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  267. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  269. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  270. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  272. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  273. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  275. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  276. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  278. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  286. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -103
  289. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  293. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  295. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  296. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  299. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  302. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  311. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  314. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  316. package/.next/server/app/api/worktrees/route.js +1 -1
  317. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  318. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  319. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  320. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/more/page.js +1 -1
  322. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  323. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  324. package/.next/server/app/page_client-reference-manifest.js +1 -1
  325. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  326. package/.next/server/app/repositories/page.js +2 -2
  327. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  328. package/.next/server/app/review/page.js +1 -1
  329. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  330. package/.next/server/app/sessions/page.js +1 -1
  331. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  332. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  333. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  334. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  335. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  336. package/.next/server/app/worktrees/[id]/page.js +10 -10
  337. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  338. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  339. package/.next/server/app-paths-manifest.json +28 -21
  340. package/.next/server/chunks/1184.js +5 -0
  341. package/.next/server/chunks/1501.js +5 -5
  342. package/.next/server/chunks/1656.js +2 -2
  343. package/.next/server/chunks/1957.js +2 -2
  344. package/.next/server/chunks/1990.js +103 -0
  345. package/.next/server/chunks/2119.js +1 -1
  346. package/.next/server/chunks/2404.js +1 -1
  347. package/.next/server/chunks/2445.js +1 -1
  348. package/.next/server/chunks/2819.js +1 -0
  349. package/.next/server/chunks/2897.js +1 -1
  350. package/.next/server/chunks/3042.js +2 -0
  351. package/.next/server/chunks/3241.js +1 -1
  352. package/.next/server/chunks/3294.js +3 -0
  353. package/.next/server/chunks/3417.js +1 -1
  354. package/.next/server/chunks/3480.js +1 -1
  355. package/.next/server/chunks/3505.js +2 -6
  356. package/.next/server/chunks/3543.js +1 -1
  357. package/.next/server/chunks/3801.js +7 -7
  358. package/.next/server/chunks/3945.js +1 -1
  359. package/.next/server/chunks/4207.js +1 -1
  360. package/.next/server/chunks/454.js +1 -0
  361. package/.next/server/chunks/4645.js +1 -0
  362. package/.next/server/chunks/4911.js +1 -1
  363. package/.next/server/chunks/5209.js +2 -2
  364. package/.next/server/chunks/5350.js +216 -0
  365. package/.next/server/chunks/5354.js +1 -1
  366. package/.next/server/chunks/5571.js +1 -1
  367. package/.next/server/chunks/6009.js +12 -0
  368. package/.next/server/chunks/6130.js +1 -1
  369. package/.next/server/chunks/6285.js +1 -1
  370. package/.next/server/chunks/6401.js +1 -1
  371. package/.next/server/chunks/6486.js +2 -2
  372. package/.next/server/chunks/6569.js +1 -0
  373. package/.next/server/chunks/6781.js +1 -1
  374. package/.next/server/chunks/6793.js +4 -4
  375. package/.next/server/chunks/696.js +3 -0
  376. package/.next/server/chunks/7023.js +3 -3
  377. package/.next/server/chunks/7083.js +1 -0
  378. package/.next/server/chunks/741.js +1 -0
  379. package/.next/server/chunks/7662.js +1 -0
  380. package/.next/server/chunks/7905.js +1 -1
  381. package/.next/server/chunks/8143.js +33 -0
  382. package/.next/server/chunks/8581.js +6 -6
  383. package/.next/server/chunks/8728.js +2 -2
  384. package/.next/server/chunks/8782.js +1 -1
  385. package/.next/server/chunks/8807.js +181 -93
  386. package/.next/server/chunks/8918.js +3 -105
  387. package/.next/server/chunks/8955.js +1 -0
  388. package/.next/server/chunks/9169.js +1 -0
  389. package/.next/server/chunks/923.js +1 -0
  390. package/.next/server/chunks/9390.js +2 -2
  391. package/.next/server/chunks/9627.js +9 -9
  392. package/.next/server/chunks/973.js +1 -0
  393. package/.next/server/chunks/9731.js +3 -3
  394. package/.next/server/middleware-build-manifest.js +1 -1
  395. package/.next/server/middleware-manifest.json +5 -5
  396. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  397. package/.next/server/pages/500.html +1 -1
  398. package/.next/server/server-reference-manifest.json +1 -1
  399. package/.next/static/chunks/2314-2c9d587a27e8f731.js +1 -0
  400. package/.next/static/chunks/2407-ee881c99e218975b.js +1 -0
  401. package/.next/static/chunks/3931-24d7e245a93feb25.js +1 -0
  402. package/.next/static/chunks/4548-9afa02fd18afa6c7.js +1 -0
  403. package/.next/static/chunks/{5794-7975b8e51e731b19.js → 5794-38b3b504b3d97e04.js} +1 -1
  404. package/.next/static/chunks/{6966-d8dc6032410ffaba.js → 6966-dbfa4a43397f8c6d.js} +1 -1
  405. package/.next/static/chunks/7090-28e83f5a0efdb3b4.js +1 -0
  406. package/.next/static/chunks/7229.016d007c467a3600.js +1 -0
  407. package/.next/static/chunks/{8407-35bbfc84793d7004.js → 8407-dd6a8062fc449899.js} +1 -1
  408. package/.next/static/chunks/app/api/agents/update/route-476063c3571b81dd.js +1 -0
  409. package/.next/static/chunks/app/api/agents/versions/route-476063c3571b81dd.js +1 -0
  410. package/.next/static/chunks/app/api/app/release-notes/route-476063c3571b81dd.js +1 -0
  411. package/.next/static/chunks/app/api/app/update/route-476063c3571b81dd.js +1 -0
  412. package/.next/static/chunks/app/api/app/update-check/route-476063c3571b81dd.js +1 -0
  413. package/.next/static/chunks/app/api/auth/login/route-476063c3571b81dd.js +1 -0
  414. package/.next/static/chunks/app/api/auth/logout/route-476063c3571b81dd.js +1 -0
  415. package/.next/static/chunks/app/api/auth/status/route-476063c3571b81dd.js +1 -0
  416. package/.next/static/chunks/app/api/capabilities/route-476063c3571b81dd.js +1 -0
  417. package/.next/static/chunks/app/api/daily-summary/route-476063c3571b81dd.js +1 -0
  418. package/.next/static/chunks/app/api/daily-summary/status/route-476063c3571b81dd.js +1 -0
  419. package/.next/static/chunks/app/api/external-apps/[id]/health/route-476063c3571b81dd.js +1 -0
  420. package/.next/static/chunks/app/api/external-apps/[id]/route-476063c3571b81dd.js +1 -0
  421. package/.next/static/chunks/app/api/external-apps/route-476063c3571b81dd.js +1 -0
  422. package/.next/static/chunks/app/api/fs/browse/route-476063c3571b81dd.js +1 -0
  423. package/.next/static/chunks/app/api/fs/recent-paths/route-476063c3571b81dd.js +1 -0
  424. package/.next/static/chunks/app/api/hooks/agent-event/route-476063c3571b81dd.js +1 -0
  425. package/.next/static/chunks/app/api/hooks/claude-done/route-476063c3571b81dd.js +1 -0
  426. package/.next/static/chunks/app/api/hooks/permission-request/route-476063c3571b81dd.js +1 -0
  427. package/.next/static/chunks/app/api/metrics/vibe/route-476063c3571b81dd.js +1 -0
  428. package/.next/static/chunks/app/api/ollama/models/route-476063c3571b81dd.js +1 -0
  429. package/.next/static/chunks/app/api/push/escalation/route-476063c3571b81dd.js +1 -0
  430. package/.next/static/chunks/app/api/push/subscriptions/route-476063c3571b81dd.js +1 -0
  431. package/.next/static/chunks/app/api/push/vapid/route-476063c3571b81dd.js +1 -0
  432. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-476063c3571b81dd.js +1 -0
  433. package/.next/static/chunks/app/api/relays/[relayId]/resolve/route-476063c3571b81dd.js +1 -0
  434. package/.next/static/chunks/app/api/relays/[relayId]/route-476063c3571b81dd.js +1 -0
  435. package/.next/static/chunks/app/api/relays/route-476063c3571b81dd.js +1 -0
  436. package/.next/static/chunks/app/api/remote/pair/route-476063c3571b81dd.js +1 -0
  437. package/.next/static/chunks/app/api/repositories/[id]/role-defaults/route-476063c3571b81dd.js +1 -0
  438. package/.next/static/chunks/app/api/repositories/[id]/route-476063c3571b81dd.js +1 -0
  439. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-476063c3571b81dd.js +1 -0
  440. package/.next/static/chunks/app/api/repositories/clone/route-476063c3571b81dd.js +1 -0
  441. package/.next/static/chunks/app/api/repositories/excluded/route-476063c3571b81dd.js +1 -0
  442. package/.next/static/chunks/app/api/repositories/restore/route-476063c3571b81dd.js +1 -0
  443. package/.next/static/chunks/app/api/repositories/route-476063c3571b81dd.js +1 -0
  444. package/.next/static/chunks/app/api/repositories/scan/route-476063c3571b81dd.js +1 -0
  445. package/.next/static/chunks/app/api/repositories/sync/route-476063c3571b81dd.js +1 -0
  446. package/.next/static/chunks/app/api/repositories/validate-path/route-476063c3571b81dd.js +1 -0
  447. package/.next/static/chunks/app/api/roles/[id]/route-476063c3571b81dd.js +1 -0
  448. package/.next/static/chunks/app/api/roles/route-476063c3571b81dd.js +1 -0
  449. package/.next/static/chunks/app/api/settings/agent-role-defaults/route-476063c3571b81dd.js +1 -0
  450. package/.next/static/chunks/app/api/settings/default-agents/route-476063c3571b81dd.js +1 -0
  451. package/.next/static/chunks/app/api/settings/default-surface-mode/route-476063c3571b81dd.js +1 -0
  452. package/.next/static/chunks/app/api/sidebar/group-order/route-476063c3571b81dd.js +1 -0
  453. package/.next/static/chunks/app/api/skills/[id]/route-476063c3571b81dd.js +1 -0
  454. package/.next/static/chunks/app/api/skills/installations/route-476063c3571b81dd.js +1 -0
  455. package/.next/static/chunks/app/api/skills/operations/route-476063c3571b81dd.js +1 -0
  456. package/.next/static/chunks/app/api/skills/reindex/route-476063c3571b81dd.js +1 -0
  457. package/.next/static/chunks/app/api/skills/route-476063c3571b81dd.js +1 -0
  458. package/.next/static/chunks/app/api/slash-commands/route-476063c3571b81dd.js +1 -0
  459. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-476063c3571b81dd.js +1 -0
  460. package/.next/static/chunks/app/api/tasks/[taskId]/route-476063c3571b81dd.js +1 -0
  461. package/.next/static/chunks/app/api/templates/[id]/route-476063c3571b81dd.js +1 -0
  462. package/.next/static/chunks/app/api/templates/route-476063c3571b81dd.js +1 -0
  463. package/.next/static/chunks/app/api/verification/runs/[runId]/route-476063c3571b81dd.js +1 -0
  464. package/.next/static/chunks/app/api/verification/runs/route-476063c3571b81dd.js +1 -0
  465. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-476063c3571b81dd.js +1 -0
  466. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-476063c3571b81dd.js +1 -0
  467. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-476063c3571b81dd.js +1 -0
  468. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-476063c3571b81dd.js +1 -0
  469. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-476063c3571b81dd.js +1 -0
  470. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-476063c3571b81dd.js +1 -0
  471. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-476063c3571b81dd.js +1 -0
  472. package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-476063c3571b81dd.js +1 -0
  473. package/.next/static/chunks/app/api/worktrees/[id]/env/route-476063c3571b81dd.js +1 -0
  474. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-476063c3571b81dd.js +1 -0
  475. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-476063c3571b81dd.js +1 -0
  476. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-476063c3571b81dd.js +1 -0
  477. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-476063c3571b81dd.js +1 -0
  478. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-476063c3571b81dd.js +1 -0
  479. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-476063c3571b81dd.js +1 -0
  480. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-476063c3571b81dd.js +1 -0
  481. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-476063c3571b81dd.js +1 -0
  482. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-476063c3571b81dd.js +1 -0
  483. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-476063c3571b81dd.js +1 -0
  484. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-476063c3571b81dd.js +1 -0
  485. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-476063c3571b81dd.js +1 -0
  486. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-476063c3571b81dd.js +1 -0
  487. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-476063c3571b81dd.js +1 -0
  488. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-476063c3571b81dd.js +1 -0
  489. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-476063c3571b81dd.js +1 -0
  490. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-476063c3571b81dd.js +1 -0
  491. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-476063c3571b81dd.js +1 -0
  492. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-476063c3571b81dd.js +1 -0
  493. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-476063c3571b81dd.js +1 -0
  494. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-476063c3571b81dd.js +1 -0
  495. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-476063c3571b81dd.js +1 -0
  496. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-476063c3571b81dd.js +1 -0
  497. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-476063c3571b81dd.js +1 -0
  498. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-476063c3571b81dd.js +1 -0
  499. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-476063c3571b81dd.js +1 -0
  500. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-476063c3571b81dd.js +1 -0
  501. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-476063c3571b81dd.js +1 -0
  502. package/.next/static/chunks/app/api/worktrees/[id]/instances/roles/route-476063c3571b81dd.js +1 -0
  503. package/.next/static/chunks/app/api/worktrees/[id]/instances/roles/settle/route-476063c3571b81dd.js +1 -0
  504. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-476063c3571b81dd.js +1 -0
  505. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-476063c3571b81dd.js +1 -0
  506. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-476063c3571b81dd.js +1 -0
  507. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-476063c3571b81dd.js +1 -0
  508. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-476063c3571b81dd.js +1 -0
  509. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-476063c3571b81dd.js +1 -0
  510. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-476063c3571b81dd.js +1 -0
  511. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-476063c3571b81dd.js +1 -0
  512. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-476063c3571b81dd.js +1 -0
  513. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-476063c3571b81dd.js +1 -0
  514. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-476063c3571b81dd.js +1 -0
  515. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-476063c3571b81dd.js +1 -0
  516. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-476063c3571b81dd.js +1 -0
  517. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-476063c3571b81dd.js +1 -0
  518. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-476063c3571b81dd.js +1 -0
  519. package/.next/static/chunks/app/api/worktrees/[id]/route-476063c3571b81dd.js +1 -0
  520. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-476063c3571b81dd.js +1 -0
  521. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-476063c3571b81dd.js +1 -0
  522. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-476063c3571b81dd.js +1 -0
  523. package/.next/static/chunks/app/api/worktrees/[id]/search/route-476063c3571b81dd.js +1 -0
  524. package/.next/static/chunks/app/api/worktrees/[id]/send/route-476063c3571b81dd.js +1 -0
  525. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-476063c3571b81dd.js +1 -0
  526. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-476063c3571b81dd.js +1 -0
  527. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-476063c3571b81dd.js +1 -0
  528. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-476063c3571b81dd.js +1 -0
  529. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-476063c3571b81dd.js +1 -0
  530. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-476063c3571b81dd.js +1 -0
  531. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-476063c3571b81dd.js +1 -0
  532. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-476063c3571b81dd.js +1 -0
  533. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-476063c3571b81dd.js +1 -0
  534. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-476063c3571b81dd.js +1 -0
  535. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-476063c3571b81dd.js +1 -0
  536. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-476063c3571b81dd.js +1 -0
  537. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-476063c3571b81dd.js +1 -0
  538. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-476063c3571b81dd.js +1 -0
  539. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-476063c3571b81dd.js +1 -0
  540. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-476063c3571b81dd.js +1 -0
  541. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-476063c3571b81dd.js +1 -0
  542. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-476063c3571b81dd.js +1 -0
  543. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-476063c3571b81dd.js +1 -0
  544. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-476063c3571b81dd.js +1 -0
  545. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-476063c3571b81dd.js +1 -0
  546. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-476063c3571b81dd.js +1 -0
  547. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-476063c3571b81dd.js +1 -0
  548. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-476063c3571b81dd.js +1 -0
  549. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-476063c3571b81dd.js +1 -0
  550. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-476063c3571b81dd.js +1 -0
  551. package/.next/static/chunks/app/api/worktrees/route-476063c3571b81dd.js +1 -0
  552. package/.next/static/chunks/app/layout-7bf800fcc5e025b1.js +1 -0
  553. package/.next/static/chunks/app/manifest.webmanifest/route-476063c3571b81dd.js +1 -0
  554. package/.next/static/chunks/app/more/{page-ff5af5ca48774c89.js → page-e8f5780f6e4fb657.js} +1 -1
  555. package/.next/static/chunks/app/{page-b4863bfe0452e09d.js → page-869f353a4ac4e15b.js} +1 -1
  556. package/.next/static/chunks/app/proxy/[...path]/route-476063c3571b81dd.js +1 -0
  557. package/.next/static/chunks/app/repositories/page-bedb505687010f18.js +1 -0
  558. package/.next/static/chunks/app/review/page-87c4a9b0de50fa80.js +1 -0
  559. package/.next/static/chunks/app/sessions/{page-c6eb7c02db2f4c80.js → page-82ca46793789fce4.js} +1 -1
  560. package/.next/static/chunks/app/worktrees/[id]/layout-476063c3571b81dd.js +1 -0
  561. package/.next/static/chunks/app/worktrees/[id]/page-570eb79fbbd1a934.js +1 -0
  562. package/.next/static/chunks/{webpack-838df0273b03af19.js → webpack-16b1a3143fa42ca0.js} +1 -1
  563. package/.next/static/css/d4f2c9522cf1b449.css +1 -0
  564. package/.next/static/z4d8-5MaLkoD-4EhueZwk/_buildManifest.js +1 -0
  565. package/.next/trace +14 -13
  566. package/.next/types/app/api/relays/[relayId]/resolve/route.ts +347 -0
  567. package/.next/types/app/api/repositories/[id]/role-defaults/route.ts +347 -0
  568. package/.next/types/app/api/roles/[id]/route.ts +347 -0
  569. package/.next/types/app/api/roles/route.ts +347 -0
  570. package/.next/types/app/api/settings/agent-role-defaults/route.ts +347 -0
  571. package/.next/types/app/api/worktrees/[id]/instances/roles/route.ts +347 -0
  572. package/.next/types/app/api/worktrees/[id]/instances/roles/settle/route.ts +347 -0
  573. package/.next/types/routes.d.ts +8 -1
  574. package/.next/types/validator.ts +63 -0
  575. package/dist/cli/commands/instances.d.ts +1 -0
  576. package/dist/cli/commands/instances.d.ts.map +1 -1
  577. package/dist/cli/commands/instances.js +290 -33
  578. package/dist/cli/commands/message-dispatch.d.ts +25 -3
  579. package/dist/cli/commands/message-dispatch.d.ts.map +1 -1
  580. package/dist/cli/commands/message-dispatch.js +26 -6
  581. package/dist/cli/commands/prompt.d.ts.map +1 -1
  582. package/dist/cli/commands/prompt.js +2 -1
  583. package/dist/cli/commands/relays.d.ts +7 -0
  584. package/dist/cli/commands/relays.d.ts.map +1 -1
  585. package/dist/cli/commands/relays.js +179 -6
  586. package/dist/cli/commands/report.d.ts +7 -2
  587. package/dist/cli/commands/report.d.ts.map +1 -1
  588. package/dist/cli/commands/report.js +19 -6
  589. package/dist/cli/commands/respond-strict.d.ts.map +1 -1
  590. package/dist/cli/commands/respond-strict.js +9 -2
  591. package/dist/cli/commands/roles.d.ts +11 -0
  592. package/dist/cli/commands/roles.d.ts.map +1 -0
  593. package/dist/cli/commands/roles.js +392 -0
  594. package/dist/cli/commands/send.d.ts.map +1 -1
  595. package/dist/cli/commands/send.js +526 -38
  596. package/dist/cli/commands/task.d.ts +22 -0
  597. package/dist/cli/commands/task.d.ts.map +1 -1
  598. package/dist/cli/commands/task.js +26 -18
  599. package/dist/cli/docs/agent-operations.d.ts +1 -1
  600. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  601. package/dist/cli/docs/agent-operations.js +91 -3
  602. package/dist/cli/index.d.ts +4 -0
  603. package/dist/cli/index.d.ts.map +1 -1
  604. package/dist/cli/index.js +6 -0
  605. package/dist/cli/types/api-responses.d.ts +106 -0
  606. package/dist/cli/types/api-responses.d.ts.map +1 -1
  607. package/dist/cli/types/index.d.ts +38 -0
  608. package/dist/cli/types/index.d.ts.map +1 -1
  609. package/dist/cli/types/index.js +15 -1
  610. package/dist/cli/utils/agent-instances.d.ts +29 -1
  611. package/dist/cli/utils/agent-instances.d.ts.map +1 -1
  612. package/dist/cli/utils/agent-instances.js +67 -7
  613. package/dist/cli/utils/agent-roles.d.ts +75 -0
  614. package/dist/cli/utils/agent-roles.d.ts.map +1 -0
  615. package/dist/cli/utils/agent-roles.js +238 -0
  616. package/dist/cli/utils/api-client-deadline.d.ts +28 -0
  617. package/dist/cli/utils/api-client-deadline.d.ts.map +1 -0
  618. package/dist/cli/utils/api-client-deadline.js +46 -0
  619. package/dist/cli/utils/api-client-errors.d.ts +140 -0
  620. package/dist/cli/utils/api-client-errors.d.ts.map +1 -0
  621. package/dist/cli/utils/api-client-errors.js +222 -0
  622. package/dist/cli/utils/api-client.d.ts +9 -131
  623. package/dist/cli/utils/api-client.d.ts.map +1 -1
  624. package/dist/cli/utils/api-client.js +43 -258
  625. package/dist/cli/utils/role-failure.d.ts +31 -0
  626. package/dist/cli/utils/role-failure.d.ts.map +1 -0
  627. package/dist/cli/utils/role-failure.js +90 -0
  628. package/dist/cli/utils/role-input.d.ts +16 -0
  629. package/dist/cli/utils/role-input.d.ts.map +1 -0
  630. package/dist/cli/utils/role-input.js +78 -0
  631. package/dist/cli/utils/security-logger.d.ts +17 -0
  632. package/dist/cli/utils/security-logger.d.ts.map +1 -1
  633. package/dist/cli/utils/security-logger.js +44 -5
  634. package/dist/lib/cli-tools/types.d.ts +6 -0
  635. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  636. package/dist/lib/detection/tools/verified-against.d.ts +16 -0
  637. package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
  638. package/dist/lib/detection/tools/verified-against.js +16 -0
  639. package/dist/lib/session/send-attempt-types.d.ts +4 -0
  640. package/dist/lib/session/send-attempt-types.d.ts.map +1 -1
  641. package/dist/lib/verification/verify-config.d.ts +22 -0
  642. package/dist/lib/verification/verify-config.d.ts.map +1 -1
  643. package/dist/lib/verification/verify-config.js +32 -2
  644. package/dist/server/locales/en/worktree.json +30 -4
  645. package/dist/server/locales/ja/worktree.json +30 -4
  646. package/dist/server/src/config/safe-directory.js +30 -0
  647. package/dist/server/src/lib/agent-roles/adapters.js +174 -0
  648. package/dist/server/src/lib/agent-roles/artifacts.js +638 -0
  649. package/dist/server/src/lib/agent-roles/composition.js +222 -0
  650. package/dist/server/src/lib/agent-roles/fingerprint.js +21 -0
  651. package/dist/server/src/lib/agent-roles/jsonc.js +85 -0
  652. package/dist/server/src/lib/agent-roles/launch-errors.js +58 -0
  653. package/dist/server/src/lib/agent-roles/pane-env.js +63 -0
  654. package/dist/server/src/lib/agent-roles/resolve.js +375 -0
  655. package/dist/server/src/lib/agent-roles/toml-basic.js +140 -0
  656. package/dist/server/src/lib/agent-roles/unicode.js +16 -0
  657. package/dist/server/src/lib/agent-roles/validation.js +61 -0
  658. package/dist/server/src/lib/cli-tools/antigravity.js +39 -6
  659. package/dist/server/src/lib/cli-tools/base.js +63 -5
  660. package/dist/server/src/lib/cli-tools/claude-auto-default-nudge.js +141 -0
  661. package/dist/server/src/lib/cli-tools/claude.js +15 -3
  662. package/dist/server/src/lib/cli-tools/codex.js +134 -21
  663. package/dist/server/src/lib/cli-tools/command-code.js +28 -13
  664. package/dist/server/src/lib/cli-tools/copilot.js +189 -31
  665. package/dist/server/src/lib/cli-tools/gemini.js +37 -3
  666. package/dist/server/src/lib/cli-tools/launch-answer-skips.js +76 -0
  667. package/dist/server/src/lib/cli-tools/opencode-v2.js +10 -0
  668. package/dist/server/src/lib/cli-tools/opencode.js +214 -12
  669. package/dist/server/src/lib/cli-tools/prompt-wait-dialog.js +115 -0
  670. package/dist/server/src/lib/cli-tools/submit-composer-read.js +65 -12
  671. package/dist/server/src/lib/cli-tools/submit-verified-sender-composer.js +78 -0
  672. package/dist/server/src/lib/cli-tools/submit-verified-sender-lock.js +116 -0
  673. package/dist/server/src/lib/cli-tools/submit-verified-sender-report.js +250 -0
  674. package/dist/server/src/lib/cli-tools/submit-verified-sender-shared.js +106 -0
  675. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +94 -295
  676. package/dist/server/src/lib/cli-tools/vibe-local.js +111 -0
  677. package/dist/server/src/lib/db/agent-instances-db.js +53 -0
  678. package/dist/server/src/lib/db/agent-roles-db.js +409 -0
  679. package/dist/server/src/lib/db/agent-session-cost-sampler.js +3 -2
  680. package/dist/server/src/lib/db/chat-db.js +14 -1
  681. package/dist/server/src/lib/db/db-instance.js +84 -2
  682. package/dist/server/src/lib/db/migrations/index.js +6 -0
  683. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  684. package/dist/server/src/lib/db/migrations/v63-session-relays-delivery-attempt.js +61 -0
  685. package/dist/server/src/lib/db/migrations/v64-agent-roles.js +123 -0
  686. package/dist/server/src/lib/db/migrations/v65-agent-instance-creation-keys.js +42 -0
  687. package/dist/server/src/lib/db/relay-bind-db-base.js +89 -0
  688. package/dist/server/src/lib/db/relay-bind-db-delivery.js +223 -0
  689. package/dist/server/src/lib/db/relay-bind-db-pending.js +183 -0
  690. package/dist/server/src/lib/db/relay-bind-db.js +88 -167
  691. package/dist/server/src/lib/db/relay-db-base.js +20 -0
  692. package/dist/server/src/lib/db/relay-db-count.js +49 -0
  693. package/dist/server/src/lib/db/relay-db-delivery.js +104 -0
  694. package/dist/server/src/lib/db/relay-db-hold.js +250 -0
  695. package/dist/server/src/lib/db/relay-db.js +68 -92
  696. package/dist/server/src/lib/detection/cli-patterns.js +13 -3
  697. package/dist/server/src/lib/detection/model-info-extractor.js +1 -1
  698. package/dist/server/src/lib/detection/tools/claude/patterns.js +76 -0
  699. package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +5 -0
  700. package/dist/server/src/lib/detection/tools/codex/detect.js +5 -1
  701. package/dist/server/src/lib/detection/tools/codex/patterns.js +52 -2
  702. package/dist/server/src/lib/detection/tools/codex/prompt.js +23 -3
  703. package/dist/server/src/lib/detection/tools/opencode/composer-own-text.js +119 -0
  704. package/dist/server/src/lib/detection/tools/opencode/detect.js +30 -15
  705. package/dist/server/src/lib/detection/tools/opencode/patterns.js +268 -7
  706. package/dist/server/src/lib/detection/tools/opencode/readiness.js +71 -0
  707. package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +51 -15
  708. package/dist/server/src/lib/detection/tools/opencode-v2/patterns.js +195 -11
  709. package/dist/server/src/lib/detection/tools/run-detection.js +5 -2
  710. package/dist/server/src/lib/detection/tools/verified-against.js +16 -0
  711. package/dist/server/src/lib/detection/tools/vibe-local/readiness.js +92 -0
  712. package/dist/server/src/lib/git/git-common-dir.js +192 -0
  713. package/dist/server/src/lib/hooks/hook-settings-generator.js +8 -2
  714. package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +31 -1
  715. package/dist/server/src/lib/hooks/sources/launch-command.js +31 -8
  716. package/dist/server/src/lib/hooks/sources/opencode/client.js +20 -0
  717. package/dist/server/src/lib/hooks/sources/opencode-v2/client.js +24 -0
  718. package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +208 -35
  719. package/dist/server/src/lib/hooks/sources/opencode-v2/secrets.js +7 -1
  720. package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +117 -2
  721. package/dist/server/src/lib/job-executor.js +18 -1
  722. package/dist/server/src/lib/polling/response-checker-extraction-steps.js +58 -4
  723. package/dist/server/src/lib/polling/response-checker.js +32 -7
  724. package/dist/server/src/lib/relay/relay-bound-reply.js +20 -9
  725. package/dist/server/src/lib/relay/relay-delivery-block.js +150 -0
  726. package/dist/server/src/lib/relay/relay-delivery.js +416 -79
  727. package/dist/server/src/lib/relay/relay-messages.js +13 -0
  728. package/dist/server/src/lib/relay/relay-system-line.js +28 -15
  729. package/dist/server/src/lib/relay/types.js +14 -2
  730. package/dist/server/src/lib/response-cleaner.js +13 -3
  731. package/dist/server/src/lib/response-extractor.js +38 -3
  732. package/dist/server/src/lib/session/agent-session-lifecycle.js +9 -1
  733. package/dist/server/src/lib/session/claude-executor.js +13 -1
  734. package/dist/server/src/lib/session/claude-session.js +113 -14
  735. package/dist/server/src/lib/session/current-output-builder.js +7 -5
  736. package/dist/server/src/lib/session/instance-input-lock.js +140 -6
  737. package/dist/server/src/lib/session/prompt-submit-receipt.js +87 -18
  738. package/dist/server/src/lib/session/prompt-waiting-guard.js +8 -2
  739. package/dist/server/src/lib/session/respond-target.js +82 -0
  740. package/dist/server/src/lib/session/role-launch.js +722 -0
  741. package/dist/server/src/lib/session/send-attempt-state.js +137 -3
  742. package/dist/server/src/lib/session/send-user-message.js +84 -7
  743. package/dist/server/src/lib/session/session-generation-archive.js +7 -8
  744. package/dist/server/src/lib/session/session-launch-flight.js +33 -1
  745. package/dist/server/src/lib/session/structured-prompt.js +12 -7
  746. package/dist/server/src/lib/session/worktree-session-reconcile.js +15 -0
  747. package/dist/server/src/lib/session-key-sender.js +6 -1
  748. package/dist/server/src/lib/test-run-detection.js +53 -0
  749. package/dist/server/src/lib/tmux/read-mode.js +4 -0
  750. package/dist/server/src/lib/tmux/session-hook-scripts.js +36 -4
  751. package/dist/server/src/lib/tui-accumulator.js +14 -5
  752. package/dist/server/src/lib/verification/env-clean-gate.js +117 -12
  753. package/dist/server/src/lib/verification/gate-runner.js +9 -8
  754. package/dist/server/src/lib/verification/verify-config.js +32 -2
  755. package/dist/server/src/types/agent-roles.js +56 -0
  756. package/dist/types/agent-roles.d.ts +351 -0
  757. package/dist/types/agent-roles.d.ts.map +1 -0
  758. package/dist/types/agent-roles.js +56 -0
  759. package/docs/en/user-guide/webapp-guide.md +16 -0
  760. package/package.json +2 -1
  761. package/release-notes/0.49.3.json +52 -0
  762. package/release-notes/0.50.0.json +113 -0
  763. package/.next/server/chunks/1062.js +0 -1
  764. package/.next/server/chunks/110.js +0 -1
  765. package/.next/server/chunks/2422.js +0 -1
  766. package/.next/server/chunks/3756.js +0 -1
  767. package/.next/server/chunks/4936.js +0 -1
  768. package/.next/server/chunks/5630.js +0 -1
  769. package/.next/server/chunks/610.js +0 -1
  770. package/.next/server/chunks/6119.js +0 -1
  771. package/.next/server/chunks/6808.js +0 -4
  772. package/.next/server/chunks/7491.js +0 -3
  773. package/.next/server/chunks/9198.js +0 -144
  774. package/.next/server/chunks/9360.js +0 -2
  775. package/.next/server/chunks/9584.js +0 -1
  776. package/.next/static/chunks/2407-07a237575e1ceb9e.js +0 -1
  777. package/.next/static/chunks/344-e1cefd00787060e4.js +0 -1
  778. package/.next/static/chunks/3931-61ad1a4fc0208d0e.js +0 -1
  779. package/.next/static/chunks/7229.7f0f5a7032b612b4.js +0 -1
  780. package/.next/static/chunks/8165-263172c17ae8e8c3.js +0 -1
  781. package/.next/static/chunks/app/api/agents/update/route-a4f129c451de7859.js +0 -1
  782. package/.next/static/chunks/app/api/agents/versions/route-a4f129c451de7859.js +0 -1
  783. package/.next/static/chunks/app/api/app/release-notes/route-a4f129c451de7859.js +0 -1
  784. package/.next/static/chunks/app/api/app/update/route-a4f129c451de7859.js +0 -1
  785. package/.next/static/chunks/app/api/app/update-check/route-a4f129c451de7859.js +0 -1
  786. package/.next/static/chunks/app/api/auth/login/route-a4f129c451de7859.js +0 -1
  787. package/.next/static/chunks/app/api/auth/logout/route-a4f129c451de7859.js +0 -1
  788. package/.next/static/chunks/app/api/auth/status/route-a4f129c451de7859.js +0 -1
  789. package/.next/static/chunks/app/api/capabilities/route-a4f129c451de7859.js +0 -1
  790. package/.next/static/chunks/app/api/daily-summary/route-a4f129c451de7859.js +0 -1
  791. package/.next/static/chunks/app/api/daily-summary/status/route-a4f129c451de7859.js +0 -1
  792. package/.next/static/chunks/app/api/external-apps/[id]/health/route-a4f129c451de7859.js +0 -1
  793. package/.next/static/chunks/app/api/external-apps/[id]/route-a4f129c451de7859.js +0 -1
  794. package/.next/static/chunks/app/api/external-apps/route-a4f129c451de7859.js +0 -1
  795. package/.next/static/chunks/app/api/fs/browse/route-a4f129c451de7859.js +0 -1
  796. package/.next/static/chunks/app/api/fs/recent-paths/route-a4f129c451de7859.js +0 -1
  797. package/.next/static/chunks/app/api/hooks/agent-event/route-a4f129c451de7859.js +0 -1
  798. package/.next/static/chunks/app/api/hooks/claude-done/route-a4f129c451de7859.js +0 -1
  799. package/.next/static/chunks/app/api/hooks/permission-request/route-a4f129c451de7859.js +0 -1
  800. package/.next/static/chunks/app/api/metrics/vibe/route-a4f129c451de7859.js +0 -1
  801. package/.next/static/chunks/app/api/ollama/models/route-a4f129c451de7859.js +0 -1
  802. package/.next/static/chunks/app/api/push/escalation/route-a4f129c451de7859.js +0 -1
  803. package/.next/static/chunks/app/api/push/subscriptions/route-a4f129c451de7859.js +0 -1
  804. package/.next/static/chunks/app/api/push/vapid/route-a4f129c451de7859.js +0 -1
  805. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-a4f129c451de7859.js +0 -1
  806. package/.next/static/chunks/app/api/relays/[relayId]/route-a4f129c451de7859.js +0 -1
  807. package/.next/static/chunks/app/api/relays/route-a4f129c451de7859.js +0 -1
  808. package/.next/static/chunks/app/api/remote/pair/route-a4f129c451de7859.js +0 -1
  809. package/.next/static/chunks/app/api/repositories/[id]/route-a4f129c451de7859.js +0 -1
  810. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-a4f129c451de7859.js +0 -1
  811. package/.next/static/chunks/app/api/repositories/clone/route-a4f129c451de7859.js +0 -1
  812. package/.next/static/chunks/app/api/repositories/excluded/route-a4f129c451de7859.js +0 -1
  813. package/.next/static/chunks/app/api/repositories/restore/route-a4f129c451de7859.js +0 -1
  814. package/.next/static/chunks/app/api/repositories/route-a4f129c451de7859.js +0 -1
  815. package/.next/static/chunks/app/api/repositories/scan/route-a4f129c451de7859.js +0 -1
  816. package/.next/static/chunks/app/api/repositories/sync/route-a4f129c451de7859.js +0 -1
  817. package/.next/static/chunks/app/api/repositories/validate-path/route-a4f129c451de7859.js +0 -1
  818. package/.next/static/chunks/app/api/settings/default-agents/route-a4f129c451de7859.js +0 -1
  819. package/.next/static/chunks/app/api/settings/default-surface-mode/route-a4f129c451de7859.js +0 -1
  820. package/.next/static/chunks/app/api/sidebar/group-order/route-a4f129c451de7859.js +0 -1
  821. package/.next/static/chunks/app/api/skills/[id]/route-a4f129c451de7859.js +0 -1
  822. package/.next/static/chunks/app/api/skills/installations/route-a4f129c451de7859.js +0 -1
  823. package/.next/static/chunks/app/api/skills/operations/route-a4f129c451de7859.js +0 -1
  824. package/.next/static/chunks/app/api/skills/reindex/route-a4f129c451de7859.js +0 -1
  825. package/.next/static/chunks/app/api/skills/route-a4f129c451de7859.js +0 -1
  826. package/.next/static/chunks/app/api/slash-commands/route-a4f129c451de7859.js +0 -1
  827. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-a4f129c451de7859.js +0 -1
  828. package/.next/static/chunks/app/api/tasks/[taskId]/route-a4f129c451de7859.js +0 -1
  829. package/.next/static/chunks/app/api/templates/[id]/route-a4f129c451de7859.js +0 -1
  830. package/.next/static/chunks/app/api/templates/route-a4f129c451de7859.js +0 -1
  831. package/.next/static/chunks/app/api/verification/runs/[runId]/route-a4f129c451de7859.js +0 -1
  832. package/.next/static/chunks/app/api/verification/runs/route-a4f129c451de7859.js +0 -1
  833. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-a4f129c451de7859.js +0 -1
  834. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-a4f129c451de7859.js +0 -1
  835. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-a4f129c451de7859.js +0 -1
  836. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-a4f129c451de7859.js +0 -1
  837. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-a4f129c451de7859.js +0 -1
  838. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-a4f129c451de7859.js +0 -1
  839. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-a4f129c451de7859.js +0 -1
  840. package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-a4f129c451de7859.js +0 -1
  841. package/.next/static/chunks/app/api/worktrees/[id]/env/route-a4f129c451de7859.js +0 -1
  842. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-a4f129c451de7859.js +0 -1
  843. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-a4f129c451de7859.js +0 -1
  844. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-a4f129c451de7859.js +0 -1
  845. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-a4f129c451de7859.js +0 -1
  846. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-a4f129c451de7859.js +0 -1
  847. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-a4f129c451de7859.js +0 -1
  848. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-a4f129c451de7859.js +0 -1
  849. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-a4f129c451de7859.js +0 -1
  850. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-a4f129c451de7859.js +0 -1
  851. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-a4f129c451de7859.js +0 -1
  852. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-a4f129c451de7859.js +0 -1
  853. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-a4f129c451de7859.js +0 -1
  854. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-a4f129c451de7859.js +0 -1
  855. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-a4f129c451de7859.js +0 -1
  856. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-a4f129c451de7859.js +0 -1
  857. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-a4f129c451de7859.js +0 -1
  858. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-a4f129c451de7859.js +0 -1
  859. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-a4f129c451de7859.js +0 -1
  860. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-a4f129c451de7859.js +0 -1
  861. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-a4f129c451de7859.js +0 -1
  862. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-a4f129c451de7859.js +0 -1
  863. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-a4f129c451de7859.js +0 -1
  864. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-a4f129c451de7859.js +0 -1
  865. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-a4f129c451de7859.js +0 -1
  866. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-a4f129c451de7859.js +0 -1
  867. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-a4f129c451de7859.js +0 -1
  868. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-a4f129c451de7859.js +0 -1
  869. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-a4f129c451de7859.js +0 -1
  870. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-a4f129c451de7859.js +0 -1
  871. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-a4f129c451de7859.js +0 -1
  872. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-a4f129c451de7859.js +0 -1
  873. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-a4f129c451de7859.js +0 -1
  874. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-a4f129c451de7859.js +0 -1
  875. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-a4f129c451de7859.js +0 -1
  876. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-a4f129c451de7859.js +0 -1
  877. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-a4f129c451de7859.js +0 -1
  878. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-a4f129c451de7859.js +0 -1
  879. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-a4f129c451de7859.js +0 -1
  880. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-a4f129c451de7859.js +0 -1
  881. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-a4f129c451de7859.js +0 -1
  882. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-a4f129c451de7859.js +0 -1
  883. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-a4f129c451de7859.js +0 -1
  884. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-a4f129c451de7859.js +0 -1
  885. package/.next/static/chunks/app/api/worktrees/[id]/route-a4f129c451de7859.js +0 -1
  886. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-a4f129c451de7859.js +0 -1
  887. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-a4f129c451de7859.js +0 -1
  888. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-a4f129c451de7859.js +0 -1
  889. package/.next/static/chunks/app/api/worktrees/[id]/search/route-a4f129c451de7859.js +0 -1
  890. package/.next/static/chunks/app/api/worktrees/[id]/send/route-a4f129c451de7859.js +0 -1
  891. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-a4f129c451de7859.js +0 -1
  892. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-a4f129c451de7859.js +0 -1
  893. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-a4f129c451de7859.js +0 -1
  894. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-a4f129c451de7859.js +0 -1
  895. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-a4f129c451de7859.js +0 -1
  896. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-a4f129c451de7859.js +0 -1
  897. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-a4f129c451de7859.js +0 -1
  898. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-a4f129c451de7859.js +0 -1
  899. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-a4f129c451de7859.js +0 -1
  900. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-a4f129c451de7859.js +0 -1
  901. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-a4f129c451de7859.js +0 -1
  902. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-a4f129c451de7859.js +0 -1
  903. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-a4f129c451de7859.js +0 -1
  904. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-a4f129c451de7859.js +0 -1
  905. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-a4f129c451de7859.js +0 -1
  906. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-a4f129c451de7859.js +0 -1
  907. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-a4f129c451de7859.js +0 -1
  908. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-a4f129c451de7859.js +0 -1
  909. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-a4f129c451de7859.js +0 -1
  910. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-a4f129c451de7859.js +0 -1
  911. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-a4f129c451de7859.js +0 -1
  912. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-a4f129c451de7859.js +0 -1
  913. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-a4f129c451de7859.js +0 -1
  914. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-a4f129c451de7859.js +0 -1
  915. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-a4f129c451de7859.js +0 -1
  916. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-a4f129c451de7859.js +0 -1
  917. package/.next/static/chunks/app/api/worktrees/route-a4f129c451de7859.js +0 -1
  918. package/.next/static/chunks/app/layout-4f64316957b0a8e5.js +0 -1
  919. package/.next/static/chunks/app/manifest.webmanifest/route-a4f129c451de7859.js +0 -1
  920. package/.next/static/chunks/app/proxy/[...path]/route-a4f129c451de7859.js +0 -1
  921. package/.next/static/chunks/app/repositories/page-71f5a5ac29b0370d.js +0 -1
  922. package/.next/static/chunks/app/review/page-ff3efb96fdf9bb4b.js +0 -1
  923. package/.next/static/chunks/app/worktrees/[id]/layout-a4f129c451de7859.js +0 -1
  924. package/.next/static/chunks/app/worktrees/[id]/page-33afc6aa96289fb0.js +0 -1
  925. package/.next/static/css/c1e307d05daf93b6.css +0 -1
  926. package/.next/static/yGatWDsS532awSs51kXyd/_buildManifest.js +0 -1
  927. /package/.next/static/{yGatWDsS532awSs51kXyd → z4d8-5MaLkoD-4EhueZwk}/_ssgManifest.js +0 -0
@@ -1,9 +1,9 @@
1
1
  "use strict";exports.id=3801,exports.ids=[3801],exports.modules={640:(a,b,c)=>{function d(a){return`[from ${a.alias} / ${a.worktreeId}]`}function e(a,b,c=null){let f=b.trim();return null!==c?`${d(a)}
2
2
  ${c}
3
3
  ${""===f?"(no reply body)":f}`:""===f?`${d(a)} (no reply body)`:`${d(a)} ${f}`}c.d(b,{Hr:()=>j,KA:()=>l,Nl:()=>n,Py:()=>g,z0:()=>e});let f={en:"Note: this reply may have been processed in the same turn as another request (overlap={overlap}).",ja:"注意: この返答は、別の依頼と同じターンで処理された可能性があります(overlap={overlap})。"};function g(a,b){return null===b||"none"===b?null:`[CommandMate relay] ${f[a].replace("{overlap}",b)}`}function h(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,b-1)}…`}let i={en:{waiting:"is waiting for a confirmation:",options:"Options:",more:"(+{n} more)"},ja:{waiting:"確認待ちです:",options:"選択肢:",more:"(他 {n} 件)"}};function j(a,b,c){let e=i[a],f=`${d(b)} ${e.waiting} ${h(c.question,200)}`;if(0===c.options.length)return f;let g=c.options.slice(0,9),j=c.options.length-g.length,k=g.map(a=>`${a.key}) ${h(a.label,60)}`).join(" "),l=j>0?` ${e.more.replace("{n}",String(j))}`:"";return`${f}
4
- ${e.options} ${k}${l}`}let k={en:"The reply you were waiting for did not arrive within {hours}h; the relay has expired.",ja:"待っていた返信が {hours} 時間以内に届かなかったため、委任は期限切れになりました。"};function l(a,b,c){let e=Math.max(1,Math.round(c/36e5));return`${d(b)} ${k[a].replace("{hours}",String(e))}`}let m={en:{requested:"Delegated to {alias}; waiting for the reply.",replied:"Reply from {alias}.",waiting:"{alias} is waiting for a confirmation.",expired:"The delegation to {alias} expired without a reply."},ja:{requested:"{alias} へ委任、返信待ち",replied:"{alias} から返信",waiting:"{alias} が確認待ち",expired:"{alias} への委任が返信のないまま期限切れ"}};function n(a,b,c,d={}){let e=m[a][b].replace("{alias}",c),f=[];return d.overlap&&f.push(`overlap=${d.overlap}`),d.holdReason&&f.push(`hold=${d.holdReason}`),0===f.length?e:`${e} (${f.join(", ")})`}},10168:(a,b,c)=>{c.d(b,{BR:()=>j,Vg:()=>i,YT:()=>h});var d=c(55511),e=c(24455),f=c(91631),g=c(36925);function h(){return(0,g.v)("__relayServerBootId",()=>(0,d.randomUUID)())}function i(a,b,c){let d=(0,f.Ev)((0,e.v7)(a,b,c));return`${h()}#${d??"-"}`}function j(a){if(null===a)return null;let b=a.lastIndexOf("#");return b<=0?null:a.slice(0,b)}},14887:(a,b,c)=>{c.d(b,{E6:()=>j,yk:()=>i});var d=c(55511),e=c(69198),f=c(10168);let g=(0,c(72626).h)("relay-bind"),h=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,i={sendUnknown:"send_unknown",dispatchUnknown:"dispatch_unknown",generationChanged:"generation_changed",noInputBoundary:"no_input_boundary",serverRestarted:"server_restarted",serverRestartedBeforeInput:"server_restarted_before_input"};function j(a,b,c=Date.now()){if(!h.test(b.relayId))return{ok:!1,refusal:{status:400,code:"RELAY_BIND_INVALID",message:"relayId must be a relay id"}};let i=(0,d.randomUUID)();try{if(!(0,e.ZR)(a,{relayId:b.relayId,attemptId:i,owner:(0,f.YT)(),worktreeId:b.worktreeId,instanceId:b.instanceId,now:c}))return{ok:!1,refusal:(0,e.C$)(a,b.relayId,b.worktreeId,b.instanceId,c)}}catch(a){return g.warn("relay-bind-reserve-failed",{relayId:b.relayId,error:a instanceof Error?a.message:String(a)}),{ok:!1,refusal:{status:500,code:"RELAY_BIND_FAILED",message:"Failed to reserve the relay"}}}return g.info("relay-bind-reserved",{relayId:b.relayId,attemptId:i}),{ok:!0,binding:new k(a,b,i)}}class k{constructor(a,b,c){this.db=a,this.target=b,this.attemptId=c,this.generationBefore=null,this.boundaryWritten=!1,this.observationInvalid=!1,this.refused=!1,this.dispatch="none",this.retryDispatchOpen=!1}get relayId(){return this.target.relayId}begin(a){this.generationBefore=a}hooks(){return{beforeInput:(a,b)=>this.beforeInput(a,b),onDispatchFailed:a=>this.onDispatchFailed(a)}}beforeInput(a,b){let c;if("unknown"===this.dispatch){"dispatch"===b&&(this.retryDispatchOpen=!0);return}let d=this.target.readTurn(),g=d.generation===this.generationBefore,h=g?this.target.hooksReportTurns?"valid":"turn_unknown":"invalid",i=this.target.hooksReportTurns&&g?d.open:null;try{c=(0,e.bT)(this.db,{relayId:this.target.relayId,attemptId:this.attemptId,at:a.getTime(),kind:b,turnOpenAtSend:i,obsState:h,obsSource:(0,f.Vg)(this.target.worktreeId,this.target.cliToolId,this.target.instanceId),replaceDispatch:"not_sent"===this.dispatch})}catch(a){throw this.refused=!0,a}if(!c)throw this.refused=!0,Error(`relay ${this.target.relayId} is no longer reserved for this send`);this.boundaryWritten=!0,this.observationInvalid="invalid"===h,"dispatch"===b&&(this.dispatch="pending")}onDispatchFailed(a){if("unknown"===this.dispatch){this.retryDispatchOpen=!1;return}if("not_sent"===a){this.dispatch="not_sent";return}this.dispatch="unknown",(0,e.ky)(this.db,{relayId:this.target.relayId,attemptId:this.attemptId,from:["input_started"],to:"unknown",holdReason:i.dispatchUnknown})}finish(a){try{return this.settle(a)}catch(b){return g.warn("relay-bind-settle-failed",{relayId:this.target.relayId,error:b instanceof Error?b.message:String(b)}),"sent"===a.kind?"sent":"unknown"}}settle(a){let b={relayId:this.target.relayId,attemptId:this.attemptId};if("unknown"===this.dispatch){if("sent"===a.kind&&this.retryDispatchOpen){let c=this.observationInvalid||a.generationAfter!==this.generationBefore;return(0,e.ky)(this.db,{...b,from:["unknown"],to:"sent",inputMessageId:a.messageId,...c?{holdReason:i.generationChanged,invalidateObservation:!0}:{clearHoldReason:!0}}),"sent"}return"unknown"}if("sent"===a.kind){if(!this.boundaryWritten)return(0,e.ky)(this.db,{...b,from:["awaiting"],to:"unknown",holdReason:i.noInputBoundary}),"unknown";let c=this.observationInvalid||a.generationAfter!==this.generationBefore;return(0,e.ky)(this.db,{...b,from:["input_started"],to:"sent",inputMessageId:a.messageId,holdReason:c?i.generationChanged:null,invalidateObservation:c}),"sent"}return"sent"===a.attempt?((0,e.ky)(this.db,{...b,from:["awaiting","input_started"],to:"unknown",holdReason:i.sendUnknown}),"unknown"):!this.boundaryWritten||this.refused||"not-sent"===a.attempt?((0,e.ky)(this.db,{...b,from:["awaiting","input_started"],to:"failed"}),"not_sent"):((0,e.ky)(this.db,{...b,from:["input_started"],to:"unknown",holdReason:i.sendUnknown}),"unknown")}}},49798:(a,b,c)=>{c.d(b,{S:()=>h,r:()=>i});var d=c(28274),e=c(73753),f=c(83530);let g=(0,c(72626).h)("relay-session-ref");function h(a,b){let c="claude",e=b.instanceId;try{c=(0,f.iK)(a,b.worktreeId,{instanceId:b.instanceId}).cliToolId;let g=(0,d.BN)(a,b.worktreeId,b.instanceId);g?.alias&&(e=g.alias)}catch(a){g.warn("relay-session-resolve-failed",{worktreeId:b.worktreeId,instanceId:b.instanceId,error:a instanceof Error?a.message:String(a)})}return{worktreeId:b.worktreeId,instanceId:b.instanceId,cliToolId:c,alias:e}}function i(a,b){try{return null!==(0,e.getWorktreeById)(a,b)}catch{return!1}}},53801:(a,b,c)=>{c.d(b,{xK:()=>W,notifyRelayPromptWaiting:()=>_,notifyRelayTurnCompleted:()=>$,runRelayMaintenanceTick:()=>ac});var d=c(88807),e=c(69198),f=c(52660),g=c(55233),h=c(39687),i=c(640),j=c(10168),k=c(55511),l=c(81254),m=c(14887),n=c(18201),o=c(36261),p=c(30008),q=c(70096),r=c(49798),s=c(85016),t=c(25539),u=c(72626);let v=(0,u.h)("relay-delivery"),w=/-turn:/,x=[f.RELAY_SYSTEM_REQUEST_ID_PREFIX,f.MODEL_CHANGE_REQUEST_ID_PREFIX],y={claude:!0,codex:!0,antigravity:!0,"command-code":!0,opencode:!0,copilot:!1,gemini:!1,"vibe-local":!1,"opencode-v2":!0};function z(a,b){let c=(0,r.S)(a,b.to);return{alias:c.alias,worktreeId:c.worktreeId}}function A(a){return!0===y[a]}function B(a,b,c){let d=(0,f.getMessages)(a,b.worktreeId,{limit:40,cliToolId:b.cliToolId,instanceId:b.instanceId,matchResolvedInstance:!0}),e=A(b.cliToolId);for(let a of d){var g;if(!("assistant"!==a.role||"prompt"===a.messageType||function(a){return"string"==typeof a&&x.some(b=>a.startsWith(b))}(a.requestId))){if((!e||"string"==typeof(g=a.requestId)&&w.test(g))&&""!==a.content.trim())return a.timestamp.getTime()<c?null:a}}return null}function C(a,b,c){let d=(0,e.ix)(a,{worktreeId:b.worktreeId,instanceId:b.instanceId});if(0===d.length)return 0;let f=0;for(let g of d){if("bound"===g.bindMode){(function(a,b,c,d){if("awaiting"===c.sendState||"input_started"===c.sendState){for(let f of F(a,b,c.inputBoundaryAt??c.createdAt))(0,e.EG)(a,c.id,{messageId:f.row.id,timestamp:f.orderAt,requestId:f.row.requestId??null},d);return!1}if("sent"!==c.sendState||null===c.inputBoundaryAt)return!1;let f=(0,e.TN)(a,c.id);if(!f||!E(a,b,f))return!1;let[g]=F(a,b,c.inputBoundaryAt);return!!g&&G(a,b,f,g.row,d)})(a,b,g,c)&&(f+=1);continue}let d=B(a,b,g.createdAt);if(!d)continue;let h=(0,i.z0)(z(a,g),d.content);D(a,g.id,{candidateId:d.id,body:h,overlap:null,basis:"legacy"},c)&&(f+=1)}return f}function D(a,b,c,d){let f={...c,payloadId:(0,k.randomUUID)()};if((0,e.be)(a,b,"reply",f.body,d,{payloadId:f.payloadId,overlap:f.overlap??void 0}))return!0;let g=(0,e.V9)(a,b);return!!g&&"prompt"===g.kind&&(!!(!(0,s.p5)(b)&&(0,e.Iq)(a,b,g.payloadId,f,d))||(0,e.nR)(a,b,f,d))}function E(a,b,c){if("invalid"===c.relay.obsState)return!1;let d=(0,j.Vg)(b.worktreeId,b.cliToolId,b.instanceId);if(c.obsSource===d)return!0;let f=(0,j.BR)(c.obsSource)!==(0,j.YT)();return(0,e.FO)(a,c.relay.id,f?m.yk.serverRestarted:m.yk.generationChanged,{invalidate:!0}),v.info("relay-observation-mismatch",{relayId:c.relay.id,restarted:f}),!1}function F(a,b,c){let d=A(b.cliToolId),e=x.map(()=>"request_id NOT LIKE ?").join(" AND "),g=a.prepare(`
4
+ ${e.options} ${k}${l}`}let k={en:"The reply you were waiting for did not arrive within {hours}h; the relay has expired.",ja:"待っていた返信が {hours} 時間以内に届かなかったため、委任は期限切れになりました。"};function l(a,b,c){let e=Math.max(1,Math.round(c/36e5));return`${d(b)} ${k[a].replace("{hours}",String(e))}`}let m={en:{requested:"Delegated to {alias}; waiting for the reply.",replied:"Reply from {alias}.",waiting:"{alias} is waiting for a confirmation.",expired:"The delegation to {alias} expired without a reply.",held:"Could not confirm that the relay from {alias} reached this session; it will not be resent automatically. Check this pane, then settle it with commandmate relays resolve.","reply-discarded":"The reply from {alias} that waited behind the settled confirmation notice was discarded: the delegation had already closed, so it is not delivered."},ja:{requested:"{alias} へ委任、返信待ち",replied:"{alias} から返信",waiting:"{alias} が確認待ち",expired:"{alias} への委任が返信のないまま期限切れ",held:"{alias} からの relay がこのセッションへ届いたか確認できません(自動では再送しません)。この画面を確かめてから commandmate relays resolve で片付けてください","reply-discarded":"片付けた確認の通知の後ろで待っていた {alias} の返信は、委任が既に閉じていたため破棄しました(配送しません)"}};function n(a,b,c,d={}){let e=m[a][b].replace("{alias}",c),f=[];return d.overlap&&f.push(`overlap=${d.overlap}`),d.holdReason&&f.push(`hold=${d.holdReason}`),d.relayId&&f.push(`relay=${d.relayId}`),d.payload&&f.push(`payload=${d.payload}`),d.attemptId&&f.push(`attempt=${d.attemptId}`),d.deliveryReason&&f.push(`reason=${d.deliveryReason}`),0===f.length?e:`${e} (${f.join(", ")})`}},10168:(a,b,c)=>{c.d(b,{BR:()=>j,Vg:()=>i,YT:()=>h});var d=c(55511),e=c(24455),f=c(91631),g=c(36925);function h(){return(0,g.v)("__relayServerBootId",()=>(0,d.randomUUID)())}function i(a,b,c){let d=(0,f.Ev)((0,e.v7)(a,b,c));return`${h()}#${d??"-"}`}function j(a){if(null===a)return null;let b=a.lastIndexOf("#");return b<=0?null:a.slice(0,b)}},11772:(a,b,c)=>{c.d(b,{LN:()=>m,eV:()=>k,fK:()=>i,qL:()=>j,x3:()=>l});var d=c(5350),e=c(72626),f=c(36925);let g=(0,e.h)("relay-delivery-block"),h=(0,f.v)("__relayLastDeliveryBlocks",()=>new Map);function i(a,b){try{null===b?h.delete(a):h.set(a,b)}catch(b){g.warn("relay-delivery-block-note-failed",{relayId:a,error:b instanceof Error?b.message:String(b)})}}function j(a){try{for(let b of[...h.keys()])a.has(b)||h.delete(b)}catch{}}function k(a,b){return{...b,lastDeliveryBlock:function(a,b){try{let c=h.get(b.id);if(!c)return null;let e=(0,d.V9)(a,b.id);if(!e||e.kind!==c.kind||e.payloadId!==c.payloadId||e.body!==c.body)return h.delete(b.id),null;if(null!==e.relay.deliveryHold)return null;return{reason:c.reason,kind:c.kind,payloadId:c.payloadId,observedAt:c.observedAt}}catch(a){return g.warn("relay-delivery-block-read-failed",{relayId:b.id,error:a instanceof Error?a.message:String(a)}),null}}(a,b)}}function l(a,b){return b.map(b=>k(a,b))}function m(a,b={}){try{return l(a,(0,d.OA)(a,b)).filter(a=>null!=a.lastDeliveryBlock)}catch(a){return g.warn("relay-closed-blocked-list-failed",{error:a instanceof Error?a.message:String(a)}),[]}}},14887:(a,b,c)=>{c.d(b,{E6:()=>j,yk:()=>i});var d=c(55511),e=c(5350),f=c(10168);let g=(0,c(72626).h)("relay-bind"),h=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,i={sendUnknown:"send_unknown",dispatchUnknown:"dispatch_unknown",generationChanged:"generation_changed",noInputBoundary:"no_input_boundary",serverRestarted:"server_restarted",serverRestartedBeforeInput:"server_restarted_before_input"};function j(a,b,c=Date.now()){if(!h.test(b.relayId))return{ok:!1,refusal:{status:400,code:"RELAY_BIND_INVALID",message:"relayId must be a relay id"}};let i=(0,d.randomUUID)();try{if(!(0,e.ZR)(a,{relayId:b.relayId,attemptId:i,owner:(0,f.YT)(),worktreeId:b.worktreeId,instanceId:b.instanceId,now:c}))return{ok:!1,refusal:(0,e.C$)(a,b.relayId,b.worktreeId,b.instanceId,c)}}catch(a){return g.warn("relay-bind-reserve-failed",{relayId:b.relayId,error:a instanceof Error?a.message:String(a)}),{ok:!1,refusal:{status:500,code:"RELAY_BIND_FAILED",message:"Failed to reserve the relay"}}}return g.info("relay-bind-reserved",{relayId:b.relayId,attemptId:i}),{ok:!0,binding:new k(a,b,i)}}class k{constructor(a,b,c){this.db=a,this.target=b,this.attemptId=c,this.generationBefore=null,this.boundaryWritten=!1,this.observationInvalid=!1,this.refused=!1,this.dispatch="none",this.retryDispatchOpen=!1}get relayId(){return this.target.relayId}begin(a){this.generationBefore=a}hooks(){return{beforeInput:(a,b)=>this.beforeInput(a,b),onDispatchFailed:a=>this.onDispatchFailed(a)}}beforeInput(a,b){let c;if("unknown"===this.dispatch){"dispatch"===b&&(this.retryDispatchOpen=!0);return}let d=this.target.readTurn(),g=d.generation===this.generationBefore,h=g?this.target.hooksReportTurns?"valid":"turn_unknown":"invalid",i=this.target.hooksReportTurns&&g?d.open:null;try{c=(0,e.bT)(this.db,{relayId:this.target.relayId,attemptId:this.attemptId,at:a.getTime(),kind:b,turnOpenAtSend:i,obsState:h,obsSource:(0,f.Vg)(this.target.worktreeId,this.target.cliToolId,this.target.instanceId),replaceDispatch:"not_sent"===this.dispatch})}catch(a){throw this.refused=!0,a}if(!c)throw this.refused=!0,Error(`relay ${this.target.relayId} is no longer reserved for this send`);this.boundaryWritten=!0,this.observationInvalid="invalid"===h,"dispatch"===b&&(this.dispatch="pending")}onDispatchFailed(a){if("unknown"===this.dispatch){this.retryDispatchOpen=!1;return}if("not_sent"===a){this.dispatch="not_sent";return}this.dispatch="unknown",(0,e.ky)(this.db,{relayId:this.target.relayId,attemptId:this.attemptId,from:["input_started"],to:"unknown",holdReason:i.dispatchUnknown})}finish(a){try{return this.settle(a)}catch(b){return g.warn("relay-bind-settle-failed",{relayId:this.target.relayId,error:b instanceof Error?b.message:String(b)}),"sent"===a.kind?"sent":"unknown"}}settle(a){let b={relayId:this.target.relayId,attemptId:this.attemptId};if("unknown"===this.dispatch){if("sent"===a.kind&&this.retryDispatchOpen){let c=this.observationInvalid||a.generationAfter!==this.generationBefore;return(0,e.ky)(this.db,{...b,from:["unknown"],to:"sent",inputMessageId:a.messageId,...c?{holdReason:i.generationChanged,invalidateObservation:!0}:{clearHoldReason:!0}}),"sent"}return"unknown"}if("sent"===a.kind){if(!this.boundaryWritten)return(0,e.ky)(this.db,{...b,from:["awaiting"],to:"unknown",holdReason:i.noInputBoundary}),"unknown";let c=this.observationInvalid||a.generationAfter!==this.generationBefore;return(0,e.ky)(this.db,{...b,from:["input_started"],to:"sent",inputMessageId:a.messageId,holdReason:c?i.generationChanged:null,invalidateObservation:c}),"sent"}return"sent"===a.attempt?((0,e.ky)(this.db,{...b,from:["awaiting","input_started"],to:"unknown",holdReason:i.sendUnknown}),"unknown"):!this.boundaryWritten||this.refused||"not-sent"===a.attempt?((0,e.ky)(this.db,{...b,from:["awaiting","input_started"],to:"failed"}),"not_sent"):((0,e.ky)(this.db,{...b,from:["input_started"],to:"unknown",holdReason:i.sendUnknown}),"unknown")}}},49798:(a,b,c)=>{c.d(b,{S:()=>h,r:()=>i});var d=c(28274),e=c(73753),f=c(83530);let g=(0,c(72626).h)("relay-session-ref");function h(a,b){let c="claude",e=b.instanceId;try{c=(0,f.iK)(a,b.worktreeId,{instanceId:b.instanceId}).cliToolId;let g=(0,d.BN)(a,b.worktreeId,b.instanceId);g?.alias&&(e=g.alias)}catch(a){g.warn("relay-session-resolve-failed",{worktreeId:b.worktreeId,instanceId:b.instanceId,error:a instanceof Error?a.message:String(a)})}return{worktreeId:b.worktreeId,instanceId:b.instanceId,cliToolId:c,alias:e}}function i(a,b){try{return null!==(0,e.getWorktreeById)(a,b)}catch{return!1}}},53801:(a,b,c)=>{c.d(b,{xK:()=>X,notifyRelayPromptWaiting:()=>aa,notifyRelayTurnCompleted:()=>_,Ph:()=>af,runRelayMaintenanceTick:()=>ag});var d=c(55511),e=c(88807),f=c(5350),g=c(52660),h=c(55233),i=c(39687),j=c(640),k=c(10168),l=c(81254),m=c(14887),n=c(18201),o=c(36261),p=c(30008),q=c(70096),r=c(49798),s=c(85016),t=c(25539),u=c(72626);let v=(0,u.h)("relay-delivery"),w=/-turn:/,x=[g.RELAY_SYSTEM_REQUEST_ID_PREFIX,g.MODEL_CHANGE_REQUEST_ID_PREFIX],y={claude:!0,codex:!0,antigravity:!0,"command-code":!0,opencode:!0,copilot:!1,gemini:!1,"vibe-local":!1,"opencode-v2":!0};function z(a,b){let c=(0,r.S)(a,b.to);return{alias:c.alias,worktreeId:c.worktreeId}}function A(a){return!0===y[a]}function B(a,b,c){let d=(0,g.getMessages)(a,b.worktreeId,{limit:40,cliToolId:b.cliToolId,instanceId:b.instanceId,matchResolvedInstance:!0}),e=A(b.cliToolId);for(let a of d){var f;if(!("assistant"!==a.role||"prompt"===a.messageType||function(a){return"string"==typeof a&&x.some(b=>a.startsWith(b))}(a.requestId))){if((!e||"string"==typeof(f=a.requestId)&&w.test(f))&&""!==a.content.trim())return a.timestamp.getTime()<c?null:a}}return null}function C(a,b,c){let d=(0,f.ix)(a,{worktreeId:b.worktreeId,instanceId:b.instanceId});if(0===d.length)return 0;let e=0;for(let g of d){if("bound"===g.bindMode){(function(a,b,c,d){if("awaiting"===c.sendState||"input_started"===c.sendState){for(let e of F(a,b,c.inputBoundaryAt??c.createdAt))(0,f.EG)(a,c.id,{messageId:e.row.id,timestamp:e.orderAt,requestId:e.row.requestId??null},d);return!1}if("sent"!==c.sendState||null===c.inputBoundaryAt)return!1;let e=(0,f.TN)(a,c.id);if(!e||!E(a,b,e))return!1;let[g]=F(a,b,c.inputBoundaryAt);return!!g&&G(a,b,e,g.row,d)})(a,b,g,c)&&(e+=1);continue}let d=B(a,b,g.createdAt);if(!d)continue;let h=(0,j.z0)(z(a,g),d.content);null!==D(a,g.id,{candidateId:d.id,body:h,overlap:null,basis:"legacy"},c)&&(e+=1)}return e}function D(a,b,c,e){let g={...c,payloadId:(0,d.randomUUID)()};if((0,f.be)(a,b,"reply",g.body,e,{payloadId:g.payloadId,overlap:g.overlap??void 0}))return"stashed";let h=(0,f.V9)(a,b);if(!h||"prompt"!==h.kind)return null;if(!(0,s.p5)(b)){let d=(0,f.Iq)(a,b,h.payloadId,g,e);if("reply"===d)return"stashed";if("waiting-reply"===d)return v.info("relay-earlier-reply-kept",{relayId:b,laterCandidateId:c.candidateId}),"earlier-reply"}return(0,f.nR)(a,b,g,e)?"stashed":null}function E(a,b,c){if("invalid"===c.relay.obsState)return!1;let d=(0,k.Vg)(b.worktreeId,b.cliToolId,b.instanceId);if(c.obsSource===d)return!0;let e=(0,k.BR)(c.obsSource)!==(0,k.YT)();return(0,f.FO)(a,c.relay.id,e?m.yk.serverRestarted:m.yk.generationChanged,{invalidate:!0}),v.info("relay-observation-mismatch",{relayId:c.relay.id,restarted:e}),!1}function F(a,b,c){let d=A(b.cliToolId),e=x.map(()=>"request_id NOT LIKE ?").join(" AND "),f=a.prepare(`
5
5
  SELECT id, request_id, timestamp FROM chat_messages
6
- WHERE worktree_id = ? ${f.ACTIVE_FILTER}
6
+ WHERE worktree_id = ? ${g.ACTIVE_FILTER}
7
7
  AND COALESCE(cli_tool_id, 'claude') = ?
8
8
  AND COALESCE(instance_id, cli_tool_id, 'claude') = ?
9
9
  AND role = 'assistant' AND COALESCE(message_type, 'normal') != 'prompt'
@@ -13,19 +13,19 @@ ${e.options} ${k}${l}`}let k={en:"The reply you were waiting for did not arrive
13
13
  AND timestamp >= ?
14
14
  ORDER BY timestamp ASC, rowid ASC
15
15
  LIMIT ?
16
- `).all(b.worktreeId,b.cliToolId,b.instanceId,...x.map(a=>`${a}%`),c,500),h=[],i=new Set;for(let c of g){if(null!==c.request_id){if(i.has(c.request_id))continue;i.add(c.request_id);let d=function(a,b,c){let d=a.prepare(`
16
+ `).all(b.worktreeId,b.cliToolId,b.instanceId,...x.map(a=>`${a}%`),c,500),h=[],i=new Set;for(let c of f){if(null!==c.request_id){if(i.has(c.request_id))continue;i.add(c.request_id);let d=function(a,b,c){let d=a.prepare(`
17
17
  SELECT id FROM chat_messages
18
- WHERE worktree_id = ? ${f.ACTIVE_FILTER}
18
+ WHERE worktree_id = ? ${g.ACTIVE_FILTER}
19
19
  AND COALESCE(cli_tool_id, 'claude') = ?
20
20
  AND COALESCE(instance_id, cli_tool_id, 'claude') = ?
21
21
  AND role = 'assistant' AND request_id = ?
22
22
  AND TRIM(content, ' ' || char(9, 10, 13)) != ''
23
23
  ORDER BY timestamp DESC, rowid DESC
24
24
  LIMIT 1
25
- `).get(b.worktreeId,b.cliToolId,b.instanceId,c);return d?(0,f.getMessageById)(a,d.id):null}(a,b,c.request_id);d&&h.push({row:d,orderAt:c.timestamp});continue}let d=(0,f.getMessageById)(a,c.id);d&&h.push({row:d,orderAt:c.timestamp})}return h}function G(a,b,c,d,e){let h=function(a,b,c,d){let{relay:e}=b,g=!0===e.turnOpenAtSend,h=!1===e.turnOpenAtSend&&"valid"===e.obsState,i=function(a,b,c,d){let e=b.relay.inputBoundaryAt;if(null===e)return"ambiguous";let g=a.prepare("SELECT rowid AS seq FROM chat_messages WHERE id = ?").get(d.id);if(!g)return"ambiguous";let h=a.prepare(`
25
+ `).get(b.worktreeId,b.cliToolId,b.instanceId,c);return d?(0,g.getMessageById)(a,d.id):null}(a,b,c.request_id);d&&h.push({row:d,orderAt:c.timestamp});continue}let d=(0,g.getMessageById)(a,c.id);d&&h.push({row:d,orderAt:c.timestamp})}return h}function G(a,b,c,d,e){let f=function(a,b,c,d){let{relay:e}=b,f=!0===e.turnOpenAtSend,h=!1===e.turnOpenAtSend&&"valid"===e.obsState,i=function(a,b,c,d){let e=b.relay.inputBoundaryAt;if(null===e)return"ambiguous";let f=a.prepare("SELECT rowid AS seq FROM chat_messages WHERE id = ?").get(d.id);if(!f)return"ambiguous";let h=a.prepare(`
26
26
  SELECT id, content, rowid AS seq FROM chat_messages
27
- WHERE worktree_id = ? AND role = 'user' ${f.ACTIVE_FILTER}
27
+ WHERE worktree_id = ? AND role = 'user' ${g.ACTIVE_FILTER}
28
28
  AND COALESCE(cli_tool_id, 'claude') = ?
29
29
  AND COALESCE(instance_id, cli_tool_id, 'claude') = ?
30
30
  AND timestamp >= ? AND timestamp < ?
31
- `).all(c.worktreeId,c.cliToolId,c.instanceId,e,d.timestamp.getTime()),i=b.inputMessageId?(0,f.getMessageById)(a,b.inputMessageId):null,j=i?(0,n.pk)(i.content):null,k=!1;for(let a of h)if(a.id!==b.inputMessageId){if(null===j||(0,n.pk)(a.content)===j||a.seq>g.seq){k=!0;continue}return"proven"}return k?"ambiguous":"none"}(a,b,c,d);return g&&"proven"===i?{overlap:"both",basis:"turn-open-at-send+foreign-input"}:g?{overlap:"later",basis:"turn-open-at-send"}:"proven"===i?{overlap:"earlier",basis:"foreign-input"}:h&&"none"===i?{overlap:"none",basis:"no-open-turn+no-other-input"}:{overlap:"unknown",basis:h?"other-input-unproven":"turn-state-unknown"}}(a,c,b,d),j=(0,i.Py)((0,g.dV)(a),h.overlap),k=(0,i.z0)(z(a,c.relay),d.content,j),l=D(a,c.relay.id,{candidateId:d.id,body:k,overlap:h.overlap,basis:h.basis},e);return l&&v.info("relay-reply-decided",{relayId:c.relay.id,candidateId:d.id,overlap:h.overlap,basis:h.basis}),l}function H(a,b,c,d){if(!function(a,b,c,d){if("bound"!==c.bindMode)return!0;if("sent"!==c.sendState||null===c.inputBoundaryAt||d.timestamp.getTime()<c.inputBoundaryAt)return!1;let f=(0,e.TN)(a,c.id);return null!==f&&E(a,b,f)}(a,b,c,d)||(0,e.GC)(a,c.id)===d.id)return!1;let f=(0,g.dV)(a),h=function(a){let b=a.promptData;return(0,l.XF)(b)?"yes_no"===b.type?b.options.map(a=>({key:a,label:a})):b.options.map(a=>({key:String(a.number),label:a.label})):[]}(d),j=(0,l.XF)(d.promptData)?d.promptData.question:d.promptData?.question??d.content,k=(0,i.Hr)(f,z(a,c),{question:j,options:h});return!!(0,e.be)(a,c.id,"prompt",k)&&((0,e.UC)(a,c.id,d.id),!0)}var I=c(23854),J=c(8360),K=c(40964),L=c(34331),M=c(31990),N=c(95595),O=c(64501),P=c(34405);let Q=(0,u.h)("relay-readiness");async function R(a,b,c,d){try{let e=(0,K.mf)(b,a,c),f=await (0,L.L)(a,e,d);if(null===f||"foreign"===f.verdict)return"foreign_session";if("absent"===f.verdict)return"session_stopped";let g=J.CLIToolManager.getInstance().getTool(b);if(!await g.isRunning(a,c))return"session_stopped";let h=await (0,M.Wh)(a,b,P._,c);if((0,O.NV)(a,b,c,h))return"generating";let i=(0,N.WC)(h,b);return"running"===i.status?"generating":null}catch(d){return Q.warn("relay-readiness-check-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}var S=c(67164),T=c(36925);let U=(0,u.h)("relay-delivery"),V=(0,T.v)("__relayDeliveryInFlight",()=>new Set);function W(a){try{let b=(0,d.getDbInstance)(),c=(0,e.TN)(b,a);if(!c)return;let{relay:g}=c;if("sent"!==g.sendState||!(0,t.Lo)(g.state)||null===g.inputBoundaryAt)return;let h=(0,r.S)(b,g.to),i={worktreeId:h.worktreeId,cliToolId:h.cliToolId,instanceId:h.instanceId},j=g.inputBoundaryAt,k=Date.now(),l=b.transaction(()=>{if((0,e.UA)(b,a),!E(b,i,c))return!1;let[d]=F(b,i,j);return!!d&&G(b,i,c,d.row,k)})(),m=!l&&function(a,b,c){let d=(0,o.Jp)(b.worktreeId,b.cliToolId,b.instanceId);if(!d||"prompt"!==d.kind||(0,p.yg)(b.worktreeId,b.cliToolId,b.instanceId,(0,q.VM)(b.cliToolId).capabilities.eventIdentity))return!1;let g=(0,f.getLatestOpenPromptMessage)(a,b.worktreeId,b.cliToolId,b.instanceId);if(!g)return!1;let h=(0,e.Ip)(a,c);return!!h&&!!(0,t.Lo)(h.state)&&H(a,b,h,g)}(b,i,a);(l||m)&&ab()}catch(b){U.warn("relay-after-send-failed",{relayId:a,error:b instanceof Error?b.message:String(b)})}}function X(a){let b=(0,j.YT)();if(globalThis.__relayRecoveredBootId!==b){globalThis.__relayRecoveredBootId=b;try{!function(a,b=Date.now()){let c=(0,j.YT)(),d=0;for(let f of(0,e.hA)(a)){let{relay:g}=f;if("awaiting"===g.sendState){if(null===f.bindAttemptId||f.bindOwner===c)continue;(0,e.Yt)(a,g.id,f.bindAttemptId,m.yk.serverRestartedBeforeInput,b)&&(d+=1);continue}if("input_started"===g.sendState){if(f.bindOwner===c||null===f.bindAttemptId)continue;(0,e.ky)(a,{relayId:g.id,attemptId:f.bindAttemptId,from:["input_started"],to:"unknown",holdReason:m.yk.serverRestarted,now:b})&&(d+=1);continue}if("sent"===g.sendState){if(null!==f.pendingKind)continue;if(null!==f.pendingReply){(0,e.jn)(a,g.id,b)&&(d+=1);continue}if((0,j.BR)(f.obsSource)===c||"invalid"===g.obsState)continue;(0,e.FO)(a,g.id,m.yk.serverRestarted,{invalidate:!0,now:b}),d+=1}}d>0&&v.info("relay-bound-recovered",{recovered:d})}(a)}catch(a){U.warn("relay-recovery-failed",{error:a instanceof Error?a.message:String(a)})}}}function Y(a){return new Promise(b=>{setTimeout(b,a)})}async function Z(a,b){let c=Date.now()+15e3;for(;;){if(C(a,b,Date.now())>0)return void ab();if(Date.now()>=c)break;await Y(1e3)}U.info("relay-scrape-row-not-transcript-backed",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId,graceMs:15e3})}async function $(a,b){try{let c=(0,d.getDbInstance)(),f=(0,e.ix)(c,{worktreeId:a.worktreeId,instanceId:a.instanceId});if(0===f.length)return;if(b.settled){C(c,a,Date.now())>0&&ab();return}if(A(a.cliToolId))return void await Z(c,a);let g=null;for(let b=0;b<3;b+=1){let b=B(c,a,0);g=b?.id??null,await Y(I.DZ);let d=B(c,a,0);if((d?.id??null)===g){C(c,a,Date.now())>0&&ab();return}}U.info("relay-scrape-never-settled",{worktreeId:a.worktreeId,instanceId:a.instanceId,attempts:3})}catch(b){U.warn("relay-turn-completed-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId,error:b instanceof Error?b.message:String(b)})}}function _(a){try{let b=(0,d.getDbInstance)(),c=(0,e.ix)(b,{worktreeId:a.worktreeId,instanceId:a.instanceId});if(0===c.length)return;let g=(0,f.getLatestOpenPromptMessage)(b,a.worktreeId,a.cliToolId,a.instanceId);if(!g)return;let h=0;for(let d of c)H(b,a,d,g)&&(h+=1);h>0&&ab()}catch(b){U.warn("relay-prompt-notify-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId,error:b instanceof Error?b.message:String(b)})}}async function aa(a,b,c,d){let g=(0,e.Ip)(a,b);if(!g)return"skipped";let i=(0,r.S)(a,g.from),j=await R(i.worktreeId,i.cliToolId,i.instanceId,a);if(j)return U.debug("relay-delivery-held",{relayId:b,kind:c,reason:j}),"held";let k=(0,e.V9)(a,b);if(!k||k.kind!==c||k.body!==d)return U.info("relay-delivery-superseded",{relayId:b,kind:c}),"skipped";if("expired"!==c&&!(0,t.Lo)(k.relay.state))return U.info("relay-delivery-closed",{relayId:b,kind:c,state:k.relay.state}),"skipped";let l=k.relay,m=(0,r.S)(a,l.from);(0,s.o5)(b);let n=!1;try{let g=await (0,h.d)(a,{worktreeId:m.worktreeId,content:d,cliToolId:m.cliToolId,instanceId:m.instanceId,messageType:"relay",requestId:"reply"===c?(0,f.relayRequestId)(l.id):void 0});if(!g.ok)return U.info("relay-delivery-refused",{relayId:b,kind:c,stage:g.stage}),"prompt_waiting"===g.stage?"held":"failed";let i=Date.now();return"reply"===c?((0,e.Bf)(a,l.id,(0,f.relayRequestId)(l.id),i)||U.info("relay-already-closed-on-deliver",{relayId:b}),(0,S._)(a,l.id,"replied",m,(0,r.S)(a,l.to),i,{overlap:l.overlap,holdReason:l.holdReason})):"prompt"===c&&(0,S._)(a,l.id,"waiting",m,(0,r.S)(a,l.to),i),(0,e.uJ)(a,l.id,i,k.payloadId),"prompt"===c&&(0,e.jn)(a,l.id,i)&&(globalThis.__relayPumpAgain=!0),U.info("relay-delivered",{relayId:b,kind:c,to:`${m.worktreeId}/${m.instanceId}`}),n=!0,"delivered"}finally{if(!n&&"prompt"===c)try{(0,e.T)(a,l.id,k.payloadId)&&(U.info("relay-prompt-superseded-after-failed-delivery",{relayId:b}),globalThis.__relayPumpAgain=!0)}catch(a){U.warn("relay-prompt-supersede-failed",{relayId:b,error:a instanceof Error?a.message:String(a)})}(0,s.dJ)(b)}}async function ab(){if(!globalThis.__relayPumpRunning){globalThis.__relayPumpRunning=!0;try{let a=(0,d.getDbInstance)();X(a);for(let b=0;b<3;b+=1){for(let b of(globalThis.__relayPumpAgain=!1,(0,e.uG)(a)))if(!V.has(b.relay.id)){V.add(b.relay.id);try{await aa(a,b.relay.id,b.kind,b.body)}catch(a){U.warn("relay-delivery-failed",{relayId:b.relay.id,error:a instanceof Error?a.message:String(a)})}finally{V.delete(b.relay.id)}}if(!globalThis.__relayPumpAgain)break}}catch(a){U.warn("relay-pump-failed",{error:a instanceof Error?a.message:String(a)})}finally{globalThis.__relayPumpRunning=!1}}}async function ac(){try{X((0,d.getDbInstance)()),function(a,b=Date.now()){for(let c of(0,e.s7)(a,b))if(!(0,s.p5)(c.id))try{let d=(0,g.dV)(a);(0,e.uJ)(a,c.id,b),(0,e.wE)(a,c.id,b);let f=(0,i.KA)(d,z(a,c),c.expiresAt-c.createdAt),h=(0,e.be)(a,c.id,"expired",f,b);if(!(0,e.Cz)(a,c.id,b)){h&&(0,e.uJ)(a,c.id,b);continue}(0,S._)(a,c.id,"expired",(0,r.S)(a,c.from),(0,r.S)(a,c.to),b)}catch(a){U.warn("relay-expire-failed",{relayId:c.id,error:a instanceof Error?a.message:String(a)})}}((0,d.getDbInstance)())}catch(a){U.warn("relay-sweep-failed",{error:a instanceof Error?a.message:String(a)})}await ab()}},67164:(a,b,c)=>{c.d(b,{_:()=>i});var d=c(52660),e=c(55233),f=c(43015),g=c(640);let h=(0,c(72626).h)("relay-system-line");function i(a,b,c,j,k,l=Date.now(),m={}){let n=`${d.RELAY_SYSTEM_REQUEST_ID_PREFIX}${b}:${c}`;try{if((0,d.findMessageByRequestId)(a,j.worktreeId,n))return!1;let i=(0,e.dV)(a),o=(0,d.createRelaySystemMessage)(a,{worktreeId:j.worktreeId,cliToolId:j.cliToolId,instanceId:j.instanceId,content:(0,g.Nl)(i,c,k.alias,m),relayId:b,kind:c,at:l});try{(0,f.broadcastMessage)("message",{worktreeId:j.worktreeId,message:{...o,cliToolId:j.cliToolId,instanceId:j.instanceId}})}catch(a){h.warn("relay-system-line-broadcast-failed",{relayId:b,kind:c,error:a instanceof Error?a.message:String(a)})}return!0}catch(a){return h.warn("relay-system-line-failed",{relayId:b,kind:c,error:a instanceof Error?a.message:String(a)}),!1}}},85016:(a,b,c)=>{c.d(b,{dJ:()=>f,o5:()=>e,p5:()=>g});let d=(0,c(36925).v)("__relayDeliveryClaims",()=>new Set);function e(a){d.add(a)}function f(a){d.delete(a)}function g(a){return d.has(a)}}};
31
+ `).all(c.worktreeId,c.cliToolId,c.instanceId,e,d.timestamp.getTime()),i=b.inputMessageId?(0,g.getMessageById)(a,b.inputMessageId):null,j=i?(0,n.pk)(i.content):null,k=!1;for(let a of h)if(a.id!==b.inputMessageId){if(null===j||(0,n.pk)(a.content)===j||a.seq>f.seq){k=!0;continue}return"proven"}return k?"ambiguous":"none"}(a,b,c,d);return f&&"proven"===i?{overlap:"both",basis:"turn-open-at-send+foreign-input"}:f?{overlap:"later",basis:"turn-open-at-send"}:"proven"===i?{overlap:"earlier",basis:"foreign-input"}:h&&"none"===i?{overlap:"none",basis:"no-open-turn+no-other-input"}:{overlap:"unknown",basis:h?"other-input-unproven":"turn-state-unknown"}}(a,c,b,d),i=(0,j.Py)((0,h.dV)(a),f.overlap),k=(0,j.z0)(z(a,c.relay),d.content,i),l=D(a,c.relay.id,{candidateId:d.id,body:k,overlap:f.overlap,basis:f.basis},e);return"stashed"===l&&v.info("relay-reply-decided",{relayId:c.relay.id,candidateId:d.id,overlap:f.overlap,basis:f.basis}),null!==l}function H(a,b,c,d){if(!function(a,b,c,d){if("bound"!==c.bindMode)return!0;if("sent"!==c.sendState||null===c.inputBoundaryAt||d.timestamp.getTime()<c.inputBoundaryAt)return!1;let e=(0,f.TN)(a,c.id);return null!==e&&E(a,b,e)}(a,b,c,d)||(0,f.GC)(a,c.id)===d.id)return!1;let e=(0,h.dV)(a),g=function(a){let b=a.promptData;return(0,l.XF)(b)?"yes_no"===b.type?b.options.map(a=>({key:a,label:a})):b.options.map(a=>({key:String(a.number),label:a.label})):[]}(d),i=(0,l.XF)(d.promptData)?d.promptData.question:d.promptData?.question??d.content,k=(0,j.Hr)(e,z(a,c),{question:i,options:g});return!!(0,f.be)(a,c.id,"prompt",k)&&((0,f.UC)(a,c.id,d.id),!0)}var I=c(23854),J=c(12693),K=c(40964),L=c(34331),M=c(31990),N=c(95595),O=c(64501),P=c(34405);let Q=(0,u.h)("relay-readiness");async function R(a,b,c,d){try{let e=(0,K.mf)(b,a,c),f=await (0,L.L)(a,e,d);if(null===f||"foreign"===f.verdict)return"foreign_session";if("absent"===f.verdict)return"session_stopped";let g=J.CLIToolManager.getInstance().getTool(b);if(!await g.isRunning(a,c))return"session_stopped";let h=await (0,M.Wh)(a,b,P._,c);if((0,O.NV)(a,b,c,h))return"generating";let i=(0,N.WC)(h,b);return"running"===i.status?"generating":null}catch(d){return Q.warn("relay-readiness-check-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}var S=c(11772),T=c(67164),U=c(36925);let V=(0,u.h)("relay-delivery"),W=(0,U.v)("__relayDeliveryInFlight",()=>new Set);function X(a){try{let b=(0,e.getDbInstance)(),c=(0,f.TN)(b,a);if(!c)return;let{relay:d}=c;if("sent"!==d.sendState||!(0,t.Lo)(d.state)||null===d.inputBoundaryAt)return;let h=(0,r.S)(b,d.to),i={worktreeId:h.worktreeId,cliToolId:h.cliToolId,instanceId:h.instanceId},j=d.inputBoundaryAt,k=Date.now(),l=b.transaction(()=>{if((0,f.UA)(b,a),!E(b,i,c))return!1;let[d]=F(b,i,j);return!!d&&G(b,i,c,d.row,k)})(),m=!l&&function(a,b,c){let d=(0,o.Jp)(b.worktreeId,b.cliToolId,b.instanceId);if(!d||"prompt"!==d.kind||(0,p.yg)(b.worktreeId,b.cliToolId,b.instanceId,(0,q.VM)(b.cliToolId).capabilities.eventIdentity))return!1;let e=(0,g.getLatestOpenPromptMessage)(a,b.worktreeId,b.cliToolId,b.instanceId);if(!e)return!1;let h=(0,f.Ip)(a,c);return!!h&&!!(0,t.Lo)(h.state)&&H(a,b,h,e)}(b,i,a);(l||m)&&ae()}catch(b){V.warn("relay-after-send-failed",{relayId:a,error:b instanceof Error?b.message:String(b)})}}function Y(a){let b=(0,k.YT)();if(globalThis.__relayAttemptsRecoveredBootId!==b)try{let c=(0,f.Yu)(a,b);for(let d of(globalThis.__relayAttemptsRecoveredBootId=b,c.length>0&&V.info("relay-interrupted-deliveries-held",{held:c.length}),c)){let b=(0,f.Ip)(a,d.relayId);b&&ad(a,b,(0,r.S)(a,b.from),d,b.deliveryHold?.kind??null,f.eH)}}catch(a){V.warn("relay-delivery-recovery-failed",{error:a instanceof Error?a.message:String(a)})}if(globalThis.__relayRecoveredBootId!==b){globalThis.__relayRecoveredBootId=b;try{!function(a,b=Date.now()){let c=(0,k.YT)(),d=0;for(let e of(0,f.hA)(a)){let{relay:g}=e;if("awaiting"===g.sendState){if(null===e.bindAttemptId||e.bindOwner===c)continue;(0,f.Yt)(a,g.id,e.bindAttemptId,m.yk.serverRestartedBeforeInput,b)&&(d+=1);continue}if("input_started"===g.sendState){if(e.bindOwner===c||null===e.bindAttemptId)continue;(0,f.ky)(a,{relayId:g.id,attemptId:e.bindAttemptId,from:["input_started"],to:"unknown",holdReason:m.yk.serverRestarted,now:b})&&(d+=1);continue}if("sent"===g.sendState){if(null!==e.pendingKind)continue;if(null!==e.pendingReply){(0,f.jn)(a,g.id,b)&&(d+=1);continue}if((0,k.BR)(e.obsSource)===c||"invalid"===g.obsState)continue;(0,f.FO)(a,g.id,m.yk.serverRestarted,{invalidate:!0,now:b}),d+=1}}d>0&&v.info("relay-bound-recovered",{recovered:d})}(a)}catch(a){V.warn("relay-recovery-failed",{error:a instanceof Error?a.message:String(a)})}}}function Z(a){return new Promise(b=>{setTimeout(b,a)})}async function $(a,b){let c=Date.now()+15e3;for(;;){if(C(a,b,Date.now())>0)return void ae();if(Date.now()>=c)break;await Z(1e3)}V.info("relay-scrape-row-not-transcript-backed",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId,graceMs:15e3})}async function _(a,b){try{let c=(0,e.getDbInstance)(),d=(0,f.ix)(c,{worktreeId:a.worktreeId,instanceId:a.instanceId});if(0===d.length)return;if(b.settled){C(c,a,Date.now())>0&&ae();return}if(A(a.cliToolId))return void await $(c,a);let g=null;for(let b=0;b<3;b+=1){let b=B(c,a,0);g=b?.id??null,await Z(I.DZ);let d=B(c,a,0);if((d?.id??null)===g){C(c,a,Date.now())>0&&ae();return}}V.info("relay-scrape-never-settled",{worktreeId:a.worktreeId,instanceId:a.instanceId,attempts:3})}catch(b){V.warn("relay-turn-completed-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId,error:b instanceof Error?b.message:String(b)})}}function aa(a){try{let b=(0,e.getDbInstance)(),c=(0,f.ix)(b,{worktreeId:a.worktreeId,instanceId:a.instanceId});if(0===c.length)return;let d=(0,g.getLatestOpenPromptMessage)(b,a.worktreeId,a.cliToolId,a.instanceId);if(!d)return;let h=0;for(let e of c)H(b,a,e,d)&&(h+=1);h>0&&ae()}catch(b){V.warn("relay-prompt-notify-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId,error:b instanceof Error?b.message:String(b)})}}async function ab(a,b,c,e,h,j){let l,m=(0,f.Ip)(a,b);if(!m)return"skipped";let n=(0,r.S)(a,m.from),o=await R(n.worktreeId,n.cliToolId,n.instanceId,a);if(o)return V.debug("relay-delivery-held",{relayId:b,kind:c,reason:o}),function(a,b,c,d,e){try{let g=(0,f.V9)(a,b);if(!g||g.kind!==c||g.body!==d||g.payloadId!==e||null!==g.relay.deliveryHold)return!1;return"expired"===c||(0,t.Lo)(g.relay.state)}catch{return!1}}(a,b,c,e,h)&&(j.block={reason:o,kind:c,payloadId:h,body:e,observedAt:Date.now()}),"held";let p=function(a,b,c,d,e){let g=(0,f.V9)(a,b);return g&&g.kind===c&&g.body===d&&g.payloadId===e?"expired"===c||(0,t.Lo)(g.relay.state)?g:(V.info("relay-delivery-closed",{relayId:b,kind:c,state:g.relay.state}),null):(V.info("relay-delivery-superseded",{relayId:b,kind:c}),null)}(a,b,c,e,h);if(!p)return"skipped";let q=p.relay,u=(0,r.S)(a,q.from),v=(0,d.randomUUID)();try{l=(0,f.ud)(a,{relayId:b,payloadId:p.payloadId,kind:c,body:e,attemptId:v,owner:(0,k.YT)(),mintPayloadId:(0,d.randomUUID)()})}catch(a){return V.warn("relay-delivery-claim-failed",{relayId:b,kind:c,error:a instanceof Error?a.message:String(a)}),"failed"}if(null===l)return V.info("relay-delivery-taken",{relayId:b,kind:c}),"skipped";let w={relayId:b,payloadId:l,attemptId:v};(0,s.o5)(b);let x=!1;try{let d,h=null;try{d=await (0,i.d)(a,{worktreeId:u.worktreeId,content:e,cliToolId:u.cliToolId,instanceId:u.instanceId,messageType:"relay",requestId:"reply"===c?(0,g.relayRequestId)(q.id):void 0,onAttempt:a=>{h=a}})}catch(e){var y;let d=(y=h,null===y?"send-threw":"sent"===y.state?"threw-after-sent":y.reason);return V.warn("relay-delivery-uncertain",{relayId:b,kind:c,reason:d,error:e instanceof Error?e.message:String(e)}),ac(a,w,d)&&ad(a,q,u,w,c,d),"uncertain"}if(!d.ok){let b=function(a,b,c,d,e,g,h){let i=b.relayId;return null!==h&&"not-sent"!==h.state?(V.info("relay-delivery-uncertain",{relayId:i,kind:e,stage:g,reason:h.reason}),ac(a,b,h.reason)&&ad(a,c,d,b,e,h.reason),{outcome:"uncertain",requeued:!1}):(V.info("relay-delivery-refused",{relayId:i,kind:e,stage:g}),{outcome:"prompt_waiting"===g?"held":"failed",requeued:function(a,b){try{return(0,f.ZJ)(a,b)}catch(a){return V.warn("relay-delivery-release-failed",{relayId:b.relayId,error:a instanceof Error?a.message:String(a)}),!1}}(a,b)})}(a,w,q,u,c,d.stage,h);return x=b.requeued,"held"===b.outcome&&b.requeued&&(j.block={reason:"prompt_waiting",kind:c,payloadId:w.payloadId,body:e,observedAt:Date.now()}),b.outcome}let k=Date.now(),{completed:l,promoted:m}=function(a,b,c,d,e){let h,i=!1;if("reply"===d){let d=(0,f.vp)(a,{...b,sentRequestId:(0,g.relayRequestId)(c.id),now:e});(h=d.completed)&&!d.closed&&V.info("relay-already-closed-on-deliver",{relayId:b.relayId})}else"prompt"===d?{completed:h,promoted:i}=(0,f.jl)(a,{...b,now:e}):h=(0,f.Tw)(a,{...b,now:e});return{completed:h,promoted:i}}(a,w,q,c,k);if(!l)return V.warn("relay-delivery-result-stale",{relayId:b,kind:c,attemptId:v}),"skipped";return m&&(globalThis.__relayPumpAgain=!0),function(a,b,c,d,e){let f=b.id;try{"reply"===d?(0,T._)(a,b.id,"replied",c,(0,r.S)(a,b.to),e,{overlap:b.overlap,holdReason:b.holdReason}):"prompt"===d&&(0,T._)(a,b.id,"waiting",c,(0,r.S)(a,b.to),e)}catch(a){V.warn("relay-delivery-record-failed",{relayId:f,kind:d,error:a instanceof Error?a.message:String(a)})}}(a,q,u,c,k),V.info("relay-delivered",{relayId:b,kind:c,to:`${u.worktreeId}/${u.instanceId}`}),"delivered"}finally{x&&"prompt"===c&&function(a,b,c){let d=b.id;try{(0,f.T)(a,b.id,c)&&(V.info("relay-prompt-superseded-after-failed-delivery",{relayId:d}),globalThis.__relayPumpAgain=!0)}catch(a){V.warn("relay-prompt-supersede-failed",{relayId:d,error:a instanceof Error?a.message:String(a)})}}(a,q,l),(0,s.dJ)(b)}}function ac(a,b,c){try{return(0,f.pk)(a,{...b,reason:c})}catch(a){return V.warn("relay-delivery-hold-failed",{relayId:b.relayId,error:a instanceof Error?a.message:String(a)}),!1}}function ad(a,b,c,d,e,f){try{(0,T._)(a,b.id,"held",c,(0,r.S)(a,b.to),d.now??Date.now(),{relayId:b.id,payload:`${e??"-"}:${d.payloadId}`,attemptId:d.attemptId,deliveryReason:f},`${d.payloadId}:${d.attemptId}`)}catch(a){V.warn("relay-held-line-failed",{relayId:d.relayId,error:a instanceof Error?a.message:String(a)})}}async function ae(){if(!globalThis.__relayPumpRunning){globalThis.__relayPumpRunning=!0;try{let a=(0,e.getDbInstance)();Y(a);for(let b=0;b<3;b+=1){globalThis.__relayPumpAgain=!1;let b=(0,f.sB)(a);for(let c of((0,S.qL)(new Set(b.map(a=>a.relay.id))),b))if(!W.has(c.relay.id)){W.add(c.relay.id);try{await function(a,b,c,d,e){let f={block:null},g=ab(a,b,c,d,e,f),h=()=>(0,S.fK)(b,f.block);return g.then(h,h),g}(a,c.relay.id,c.kind,c.body,c.payloadId)}catch(a){V.warn("relay-delivery-failed",{relayId:c.relay.id,error:a instanceof Error?a.message:String(a)})}finally{W.delete(c.relay.id)}}if(!globalThis.__relayPumpAgain)break}}catch(a){V.warn("relay-pump-failed",{error:a instanceof Error?a.message:String(a)})}finally{globalThis.__relayPumpRunning=!1}}}function af(){globalThis.__relayPumpAgain=!0,ae()}async function ag(){try{Y((0,e.getDbInstance)()),function(a,b=Date.now()){for(let c of(0,f.s7)(a,b))if(!(0,s.p5)(c.id))try{let d=(0,h.dV)(a);(0,f.uJ)(a,c.id,b),(0,f.zM)(a,c.id,b);let e=(0,j.KA)(d,z(a,c),c.expiresAt-c.createdAt),g=(0,f.be)(a,c.id,"expired",e,b);if(!(0,f.Cz)(a,c.id,b)){g&&(0,f.uJ)(a,c.id,b);continue}(0,T._)(a,c.id,"expired",(0,r.S)(a,c.from),(0,r.S)(a,c.to),b)}catch(a){V.warn("relay-expire-failed",{relayId:c.id,error:a instanceof Error?a.message:String(a)})}}((0,e.getDbInstance)())}catch(a){V.warn("relay-sweep-failed",{error:a instanceof Error?a.message:String(a)})}await ae()}},67164:(a,b,c)=>{c.d(b,{_:()=>i});var d=c(52660),e=c(55233),f=c(43015),g=c(640);let h=(0,c(72626).h)("relay-system-line");function i(a,b,c,j,k,l=Date.now(),m={},n=null){let o=(0,d.relaySystemRequestId)(b,c,n);try{let i=a.transaction(()=>{if((0,d.findMessageByRequestId)(a,j.worktreeId,o))return null;let f=(0,e.dV)(a);return(0,d.createRelaySystemMessage)(a,{worktreeId:j.worktreeId,cliToolId:j.cliToolId,instanceId:j.instanceId,content:(0,g.Nl)(f,c,k.alias,m),relayId:b,kind:c,scope:n,at:l})}).immediate();if(null===i)return!1;try{(0,f.broadcastMessage)("message",{worktreeId:j.worktreeId,message:{...i,cliToolId:j.cliToolId,instanceId:j.instanceId}})}catch(a){h.warn("relay-system-line-broadcast-failed",{relayId:b,kind:c,error:a instanceof Error?a.message:String(a)})}return!0}catch(a){return h.warn("relay-system-line-failed",{relayId:b,kind:c,error:a instanceof Error?a.message:String(a)}),!1}}},85016:(a,b,c)=>{c.d(b,{dJ:()=>f,o5:()=>e,p5:()=>g});let d=(0,c(36925).v)("__relayDeliveryClaims",()=>new Set);function e(a){d.add(a)}function f(a){d.delete(a)}function g(a){return d.has(a)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=3945,exports.ids=[3945],exports.modules={53945:a=>{a.exports=JSON.parse('{"sessions":{"idleAgents":"アイドル {count} 件","activeAgents":"稼働 {count} 件","title":"セッション","description":"全リポジトリの worktree セッション。","filterPlaceholder":"名前またはリポジトリで絞り込み...","filterAriaLabel":"名前またはリポジトリでセッションを絞り込む","sortByAriaLabel":"並び替え","sortAscending":"昇順に並び替え","sortDescending":"降順に並び替え","loadingAriaLabel":"セッションを読み込み中","refreshError":"セッションの更新に失敗しました: {message}","loadError":"セッションの読み込みに失敗しました: {message}","noMatching":"一致するセッションがありません。","empty":"セッションがまだありません。","viewMode":{"groupAriaLabel":"セッションの表示形式","list":"リスト表示","tile":"タイル表示"},"tileAriaLabel":"{branch} のセッションタイル","tileInstanceAriaLabel":"このタイルに表示するエージェントインスタンス"},"nav":{"sessions":"セッション","repositories":"リポジトリ","review":"レビュー","more":"設定","skills":"スキル"},"repositories":{"pageDescription":"リポジトリとワークツリーを管理します。","empty":"リポジトリが登録されていません。","add":"リポジトリを追加","syncAll":"すべて同期","syncing":"同期中...","addNewTitle":"リポジトリを新規追加","localPathTab":"ローカルパス","cloneUrlTab":"クローン URL","localPathDescription":"worktree を含む git リポジトリの絶対パスを入力してください。","localPathLabel":"リポジトリパス","localPathExample":"例: {example}","localPathAllowedRoots":"許可ルート: {roots}","browse":"参照…","pickerTitle":"リポジトリのフォルダを選択","pickerRootsLabel":"許可ルート","pickerRecentLabel":"最近使ったパス","pickerSelectHere":"このフォルダを選択","pickerUp":"1 階層上へ","pickerEmpty":"サブフォルダがありません。","pickerTruncated":"先頭 {limit} 件のみ表示しています。","pickerLoading":"読み込み中…","pickerWorktreeCount":"worktree {count} 件","validationGitRepo":"git リポジトリです(worktree {count} 件検出)","validationNotGitRepo":"このフォルダは git リポジトリではありません。","validationNotFound":"このフォルダは存在しません。","validationOutsideRoots":"許可ルート外です({roots})。","scan":"スキャンして追加","scanning":"スキャン中...","cloneUrlDescription":"リモートリポジトリをクローンする git の URL を入力してください。","cloneUrlLabel":"クローン URL","cloneUrlHelp":"HTTPS と SSH の URL に対応しています","clone":"クローン","forkAndClone":"Fork して追加","forkOptionLabel":"追加前に fork する(gh repo fork)","forkOptionHelp":"自分の GitHub アカウントに fork を作成し、それをクローンします(origin=自分の fork、upstream=元リポジトリ)。認証済みの GitHub CLI(gh)が必要です。","cloning":"クローン中...","cloneSuccess":"リポジトリをクローンしました","cloneFailed":"クローンに失敗しました","pathRequired":"リポジトリパスを入力してください","urlRequired":"クローン URL を入力してください","urlInvalid":"URL の形式が正しくありません","loading":"リポジトリを読み込み中","filterAll":"すべて ({count})","filterDisabled":"無効化中 ({count})","emptyDisabled":"走査対象から外したリポジトリはありません。","disableConfirmTitle":"走査対象から外しますか?","disableConfirmBody":"「{name}」は今後 worktree の走査対象から外れます。\\n\\n削除は行いません: {count} 件の worktree と、そのチャット履歴・タスク・検証実行はデータベースに残り、稼働中の tmux セッションもそのまま動き続けます。\\n\\nworktree はサイドバーにも残ります。非表示にする場合は Visibility トグルを使ってください。","disableConfirmAction":"走査対象から外す","disableSuccess":"「{name}」を走査対象から外しました。","enableSuccess":"「{name}」を走査対象に戻しました (worktree {count} 件)。","duplicateScanRootWarning":"既存の scan root と同じ git リポジトリです: {paths}。両方が走査され、共有している worktree はすべて二重に登録されます。","duplicateConfirmTitle":"同じリポジトリの scan root をもう 1 つ登録しますか?","duplicateConfirmBody":"「{path}」は次と同じ git リポジトリです:\\n{paths}\\n\\nどちらの root も同じ worktree を列挙するため、同期のたびに各 worktree が二重に登録され、「リポジトリパス」が実行ごとに入れ替わります。\\n\\nこの登録自体は可能です。これらの worktree を別々の root として管理したい場合はそのまま続行してください。そうでなければキャンセルするか、後から Repositories 一覧の Scan トグルで片方を走査対象から外してください。","duplicateConfirmAction":"このまま追加","duplicateRowBadge":"scan root 重複","duplicateRowDetail":"{paths} と同じ git リポジトリです。どちらかの行の Scan トグルで走査対象から外せます。"},"cancel":"キャンセル","sending":"送信中...","end":"終了する","ending":"終了中...","retry":"再試行","reload":"再読み込み","reconnect":"再接続","close":"閉じる","back":"戻る","menu":"メニュー","sidebar":{"railLabel":"アプリのナビゲーション","open":"サイドバーを開く","close":"サイドバーを閉じる","branchNavigation":"ブランチナビゲーション","branches":"ブランチ","searchBranches":"ブランチを検索...","noBranchesFound":"ブランチが見つかりません","noBranchesAvailable":"ブランチがありません","loadingBranches":"ブランチを読み込み中...","branchesLoadFailed":"ブランチを取得できませんでした","retryLoadBranches":"再試行","dragToReorderGroup":"ドラッグでグループを並べ替え","viewLabel":"表示","listOptionsLabel":"表示と並び({summary})","listOptionsSummary":"{view} \xb7 {sort} \xb7 {direction}","needsAttention":"要対応","openInReview":"Review で開く","attentionMoreInReview":"ほか {count} 件を Review で見る","hiddenRepository":"非表示のリポジトリ","otherBranches":"その他({count})","viewMode":{"grouped":"リポジトリ","flat":"ブランチ","sessions":"セッション"}},"confirmDelete":"「{name}」を削除しますか?","favorites":{"add":"お気に入りに追加","remove":"お気に入りを解除"},"syncSuccess":"{count}件のworktreeを同期しました","syncError":"同期に失敗しました","syncAuthError":"認証エラー","syncButtonLabel":"ブランチを同期","tooltips":{"sync":"worktree を同期"},"displaySize":{"ariaLabel":"表示サイズ","large":"大","medium":"中","small":"小","xsmall":"極小"},"repoTabBar":{"settingLabel":"リポジトリタブ帯","overflow":"ほかのリポジトリ","switchBranch":"{repository} のほかのブランチへ切り替える","mode":{"always":"常に表示","collapsed":"サイドバー折りたたみ時のみ","hidden":"非表示"}},"confirmDialog":{"title":"確認","confirm":"OK"},"language":"言語","loadingPage":"ページを読み込み中","closeNotification":"通知を閉じる","status":{"idle":"アイドル","ready":"準備完了","running":"実行中","generating":"生成中","waiting":"応答待ち","error":"エラー","unknown":"不明"},"sort":{"options":"並び替えオプション","updatedAt":"更新日時","repositoryName":"リポジトリ名","branchName":"ブランチ名","status":"ステータス","lastSent":"最終送信","label":"並び","sortBy":"並び順: {label}","ascending":"昇順に並び替え","descending":"降順に並び替え","ascShort":"昇順","descShort":"降順","directionLabel":"順序","direction":{"newestFirst":"新しい順","oldestFirst":"古い順","aToZ":"A→Z","zToA":"Z→A","attentionFirst":"要対応が先","attentionLast":"要対応が後"}},"branchItem":{"cliToolStatus":"CLI ツールのステータス","hasUnread":"未読メッセージあり","agentExited":"終了","actions":"{name} の操作","openInNewTab":"新しいタブで開く","copyBranchName":"ブランチ名をコピー","copyPath":"パスをコピー","copied":"コピーしました","copyFailed":"コピーできませんでした","status":"ステータス","statusChangeFailed":"ステータスを変更できませんでした"},"connection":{"reconnecting":"再接続中","offline":"オフライン","reconnectingTooltip":"ライブ接続を再確立しています(ポーリングで動作中)","offlineTooltip":"ライブ接続なし(ポーリングで動作中)"},"versionMismatch":{"title":"新しいバージョンが起動しています","description":"サーバーは {serverVersion} になりましたが、このタブは {clientVersion} のままです。最新の状態にするには再読み込みしてください。","reload":"再読み込み","dismiss":"閉じる"},"whatsNew":{"title":"新機能と改善(v{from} → v{to})","highlight":"ハイライト","added":"新機能","improved":"改善","fixed":"修正","empty":"この更新の詳細はリリースページをご覧ください。","releaseLink":"リリースページを開く","close":"閉じる"},"meta":{"description":"Claude CLI と tmux セッションによる Git worktree 管理"},"attention":{"label":"要対応","badgeLabel":"要対応のワークツリーが {count} 件あります"},"agentUpdates":{"title":"エージェント CLI のバージョン","description":"このマシンにインストールされているエージェント CLI のバージョンです。更新はエージェントの pane ではなく別プロセスで実行するため、開いているセッションは中断されません。","installed":"インストール済み {version}","notInstalled":"未インストール","available":"更新あり: {version}","dismissed":"codex 側で「見送り」扱いになっています","update":"更新する","updating":"更新中...","running":"実行中: {command}","succeeded":"{from} から {to} に更新しました。","failed":"更新に失敗しました: {error}","restartWarning":"次のセッションは再起動するまで現在のバージョンのままです: {sessions}","restartNotice":"すでに起動しているセッションは、再起動するまで現在のバージョンのままです。","restart":"{alias} を再起動","restarted":"終了しました。次のメッセージ送信で新しいバージョンが起動します。","restartError":"セッションを再起動できませんでした。","loadError":"エージェント CLI のバージョンを読み取れませんでした。"},"settings":{"title":"設定","pageDescription":"新しいブランチの既定、通知、外部アプリなどを設定します。","sections":{"quickLinks":"クイックリンク","general":"一般","notifications":"通知","externalApps":"External Apps","about":"About"},"categoriesLabel":"設定のカテゴリ","defaultSurfaceMode":{"title":"出力面の既定","description":"セッションの出力側を最初に何で開くかです。ターミナル(tmux の画面そのまま)か、チャット(会話の履歴)を選べます。開いたあとはセッションのヘッダーからいつでも切り替えられます。","appliesToNew":"まだ切り替えていない出力面にだけ効きます。すでに手で切り替えた split やスマホのタブは、そのときのモードのままです。","mode":{"terminal":"ターミナル","chat":"チャット"},"hint":{"terminal":"エージェントのターミナルを tmux の描画のまま表示します。","chat":"会話の履歴をメッセージ一覧として表示します。"},"saving":"保存中...","saved":"保存しました","configured":"設定済み","usingBuiltIn":"既定値を使用中","saveError":"保存に失敗しました。","loadError":"設定を読み込めませんでした。"},"defaultAgents":{"title":"新規ブランチの既定エージェント","description":"新しく見つかったブランチが最初に開くエージェントと、その並び順です。先頭が primary(最初に開くタブ / 送り先の既定)になります。","appliesToNew":"既存のブランチには適用されません。すでに開いているブランチのタブ構成はそのまま残ります。","primary":"primary","installed":"インストール済み","notInstalled":"未インストール","addLabel":"追加できるエージェント","add":"追加","remove":"削除","moveUp":"上へ","moveDown":"下へ","save":"保存","saving":"保存中...","saved":"保存しました","reset":"既定に戻す","builtIn":"既定値: {agents}","configured":"設定済み","usingBuiltIn":"既定値を使用中","range":"エージェントは {min} 〜 {max} 個で選択してください。","saveError":"保存に失敗しました。","loadError":"設定を読み込めませんでした。","opencodeSharedData":"OpenCode と OpenCode V2 が両方入っています。両者は ~/.local/share/opencode を共有しており、V2 が変えたデータベースを OpenCode(1.x)が読めずに起動に失敗することがあります。その場合は V2 だけを使うか、1.x のデータの置き場所を分けてください。"}},"newTask":{"title":"新しいタスク","loading":"ブランチを読み込んでいます…","loadError":"ブランチの一覧を読み込めませんでした。","noTargets":"送り先にできるエージェントのあるブランチがありません。","recentLabel":"最近の送り先","repositoryLabel":"リポジトリ","branchLabel":"ブランチ","agentLabel":"エージェント","agentStatus":{"running":"稼働中","starting":"起動中","stopped":"停止中"},"willStart":"{agent} を起動して送ります。","startingNotice":"{agent} は起動中です。送れなかったときは少し待ってから送り直してください。","messageLabel":"依頼","messagePlaceholder":"エージェントへの依頼を書く","modelLabel":"モデル","modelPlaceholder":"既定のまま","modelHintLaunch":"セッションを起動するときに使います。","modelHintSwitch":"稼働中のセッションをこのモデルに切り替えます。","modelUnavailable":{"unsupported":"{agent} は送信時のモデル指定に対応していません。","running":"{agent} は稼働中です。モデルは起動時にだけ指定できます(変えるにはセッションを止めてから)。"},"autoYesLabel":"Auto-Yes","autoYesActive":"このエージェントで有効(残り {remaining})。変更しません。","autoYesKeep":"変えない(無効のまま)","autoYesKeepUnknown":"変えない(状態は不明)","autoYesUnknown":"Auto-Yes の状態を確認できませんでした(有効になっている可能性があります)。","autoYesEnableFor":"{duration} 有効にする","autoYesScope":"この依頼だけでなく、期限まで このエージェントに効きます。","send":"送る","sending":"送信中…","sendHint":"で送る","sentToast":"{target} に送りました。クリックで戻ります。","errors":{"auto_yes_failed":"Auto-Yes を有効にできなかったため、送っていません。","prompt_waiting":"{agent} は確認待ちのため、送っていません。ブランチの画面で応答してから送り直してください。","conflict":"セッションが依頼を受け付けませんでした。","starting":"{agent} は起動中です。少し待ってから送り直してください。","start_failed":"{agent} を起動できませんでした。","model_rejected":"モデル指定が受け付けられませんでした。消すか変えてから送り直してください。","invalid":"依頼が受け付けられませんでした。","failed":"送信に失敗しました。接続を確かめて送り直してください。"}}}')}};
1
+ "use strict";exports.id=3945,exports.ids=[3945],exports.modules={53945:a=>{a.exports=JSON.parse('{"sessions":{"idleAgents":"アイドル {count} 件","activeAgents":"稼働 {count} 件","title":"セッション","description":"全リポジトリの worktree セッション。","filterPlaceholder":"名前またはリポジトリで絞り込み...","filterAriaLabel":"名前またはリポジトリでセッションを絞り込む","sortByAriaLabel":"並び替え","sortAscending":"昇順に並び替え","sortDescending":"降順に並び替え","loadingAriaLabel":"セッションを読み込み中","refreshError":"セッションの更新に失敗しました: {message}","loadError":"セッションの読み込みに失敗しました: {message}","noMatching":"一致するセッションがありません。","empty":"セッションがまだありません。","viewMode":{"groupAriaLabel":"セッションの表示形式","list":"リスト表示","tile":"タイル表示"},"tileAriaLabel":"{branch} のセッションタイル","tileInstanceAriaLabel":"このタイルに表示するエージェントインスタンス"},"nav":{"sessions":"セッション","repositories":"リポジトリ","review":"レビュー","more":"設定","skills":"スキル"},"repositories":{"pageDescription":"リポジトリとワークツリーを管理します。","empty":"リポジトリが登録されていません。","add":"リポジトリを追加","syncAll":"すべて同期","syncing":"同期中...","addNewTitle":"リポジトリを新規追加","localPathTab":"ローカルパス","cloneUrlTab":"クローン URL","localPathDescription":"worktree を含む git リポジトリの絶対パスを入力してください。","localPathLabel":"リポジトリパス","localPathExample":"例: {example}","localPathAllowedRoots":"許可ルート: {roots}","browse":"参照…","pickerTitle":"リポジトリのフォルダを選択","pickerRootsLabel":"許可ルート","pickerRecentLabel":"最近使ったパス","pickerSelectHere":"このフォルダを選択","pickerUp":"1 階層上へ","pickerEmpty":"サブフォルダがありません。","pickerTruncated":"先頭 {limit} 件のみ表示しています。","pickerLoading":"読み込み中…","pickerWorktreeCount":"worktree {count} 件","validationGitRepo":"git リポジトリです(worktree {count} 件検出)","validationNotGitRepo":"このフォルダは git リポジトリではありません。","validationNotFound":"このフォルダは存在しません。","validationOutsideRoots":"許可ルート外です({roots})。","scan":"スキャンして追加","scanning":"スキャン中...","cloneUrlDescription":"リモートリポジトリをクローンする git の URL を入力してください。","cloneUrlLabel":"クローン URL","cloneUrlHelp":"HTTPS と SSH の URL に対応しています","clone":"クローン","forkAndClone":"Fork して追加","forkOptionLabel":"追加前に fork する(gh repo fork)","forkOptionHelp":"自分の GitHub アカウントに fork を作成し、それをクローンします(origin=自分の fork、upstream=元リポジトリ)。認証済みの GitHub CLI(gh)が必要です。","cloning":"クローン中...","cloneSuccess":"リポジトリをクローンしました","cloneFailed":"クローンに失敗しました","pathRequired":"リポジトリパスを入力してください","urlRequired":"クローン URL を入力してください","urlInvalid":"URL の形式が正しくありません","loading":"リポジトリを読み込み中","filterAll":"すべて ({count})","filterDisabled":"無効化中 ({count})","emptyDisabled":"走査対象から外したリポジトリはありません。","disableConfirmTitle":"走査対象から外しますか?","disableConfirmBody":"「{name}」は今後 worktree の走査対象から外れます。\\n\\n削除は行いません: {count} 件の worktree と、そのチャット履歴・タスク・検証実行はデータベースに残り、稼働中の tmux セッションもそのまま動き続けます。\\n\\nworktree はサイドバーにも残ります。非表示にする場合は Visibility トグルを使ってください。\\n\\nこのリポジトリのロールの既定も残り、走査に戻すとそのまま使われます。","disableConfirmAction":"走査対象から外す","disableSuccess":"「{name}」を走査対象から外しました。","enableSuccess":"「{name}」を走査対象に戻しました (worktree {count} 件)。","duplicateScanRootWarning":"既存の scan root と同じ git リポジトリです: {paths}。両方が走査され、共有している worktree はすべて二重に登録されます。","duplicateConfirmTitle":"同じリポジトリの scan root をもう 1 つ登録しますか?","duplicateConfirmBody":"「{path}」は次と同じ git リポジトリです:\\n{paths}\\n\\nどちらの root も同じ worktree を列挙するため、同期のたびに各 worktree が二重に登録され、「リポジトリパス」が実行ごとに入れ替わります。\\n\\nこの登録自体は可能です。これらの worktree を別々の root として管理したい場合はそのまま続行してください。そうでなければキャンセルするか、後から Repositories 一覧の Scan トグルで片方を走査対象から外してください。","duplicateConfirmAction":"このまま追加","duplicateRowBadge":"scan root 重複","duplicateRowDetail":"{paths} と同じ git リポジトリです。どちらかの行の Scan トグルで走査対象から外せます。","rolesKeptNote":"走査から外しても、このリポジトリのロールの既定は残り、走査に戻すとそのまま使われます。"},"cancel":"キャンセル","sending":"送信中...","end":"終了する","ending":"終了中...","retry":"再試行","reload":"再読み込み","reconnect":"再接続","close":"閉じる","back":"戻る","menu":"メニュー","sidebar":{"railLabel":"アプリのナビゲーション","open":"サイドバーを開く","close":"サイドバーを閉じる","branchNavigation":"ブランチナビゲーション","branches":"ブランチ","searchBranches":"ブランチを検索...","noBranchesFound":"ブランチが見つかりません","noBranchesAvailable":"ブランチがありません","loadingBranches":"ブランチを読み込み中...","branchesLoadFailed":"ブランチを取得できませんでした","retryLoadBranches":"再試行","dragToReorderGroup":"ドラッグでグループを並べ替え","viewLabel":"表示","listOptionsLabel":"表示と並び({summary})","listOptionsSummary":"{view} \xb7 {sort} \xb7 {direction}","needsAttention":"要対応","openInReview":"Review で開く","attentionMoreInReview":"ほか {count} 件を Review で見る","hiddenRepository":"非表示のリポジトリ","otherBranches":"その他({count})","viewMode":{"grouped":"リポジトリ","flat":"ブランチ","sessions":"セッション"}},"confirmDelete":"「{name}」を削除しますか?","favorites":{"add":"お気に入りに追加","remove":"お気に入りを解除"},"syncSuccess":"{count}件のworktreeを同期しました","syncError":"同期に失敗しました","syncAuthError":"認証エラー","syncButtonLabel":"ブランチを同期","tooltips":{"sync":"worktree を同期"},"displaySize":{"ariaLabel":"表示サイズ","large":"大","medium":"中","small":"小","xsmall":"極小"},"repoTabBar":{"settingLabel":"リポジトリタブ帯","overflow":"ほかのリポジトリ","switchBranch":"{repository} のほかのブランチへ切り替える","mode":{"always":"常に表示","collapsed":"サイドバー折りたたみ時のみ","hidden":"非表示"}},"confirmDialog":{"title":"確認","confirm":"OK"},"language":"言語","loadingPage":"ページを読み込み中","closeNotification":"通知を閉じる","status":{"idle":"アイドル","ready":"準備完了","running":"実行中","generating":"生成中","waiting":"応答待ち","error":"エラー","unknown":"不明"},"sort":{"options":"並び替えオプション","updatedAt":"更新日時","repositoryName":"リポジトリ名","branchName":"ブランチ名","status":"ステータス","lastSent":"最終送信","label":"並び","sortBy":"並び順: {label}","ascending":"昇順に並び替え","descending":"降順に並び替え","ascShort":"昇順","descShort":"降順","directionLabel":"順序","direction":{"newestFirst":"新しい順","oldestFirst":"古い順","aToZ":"A→Z","zToA":"Z→A","attentionFirst":"要対応が先","attentionLast":"要対応が後"}},"branchItem":{"cliToolStatus":"CLI ツールのステータス","hasUnread":"未読メッセージあり","agentExited":"終了","actions":"{name} の操作","openInNewTab":"新しいタブで開く","copyBranchName":"ブランチ名をコピー","copyPath":"パスをコピー","copied":"コピーしました","copyFailed":"コピーできませんでした","status":"ステータス","statusChangeFailed":"ステータスを変更できませんでした"},"connection":{"reconnecting":"再接続中","offline":"オフライン","reconnectingTooltip":"ライブ接続を再確立しています(ポーリングで動作中)","offlineTooltip":"ライブ接続なし(ポーリングで動作中)"},"versionMismatch":{"title":"新しいバージョンが起動しています","description":"サーバーは {serverVersion} になりましたが、このタブは {clientVersion} のままです。最新の状態にするには再読み込みしてください。","reload":"再読み込み","dismiss":"閉じる"},"whatsNew":{"title":"新機能と改善(v{from} → v{to})","highlight":"ハイライト","added":"新機能","improved":"改善","fixed":"修正","empty":"この更新の詳細はリリースページをご覧ください。","releaseLink":"リリースページを開く","close":"閉じる"},"meta":{"description":"Claude CLI と tmux セッションによる Git worktree 管理"},"attention":{"label":"要対応","badgeLabel":"要対応のワークツリーが {count} 件あります"},"sessionKill":{"outcomeUnknown":"{label} のセッションが終了したか確かめられませんでした。稼働状態を確かめてください。","inProgress":"{label} のセッションはまだ動いています。終了の処理が続いているかもしれません。少し待ってから稼働状態を確かめてください。"},"agentUpdates":{"title":"エージェント CLI のバージョン","description":"このマシンにインストールされているエージェント CLI のバージョンです。更新はエージェントの pane ではなく別プロセスで実行するため、開いているセッションは中断されません。","installed":"インストール済み {version}","notInstalled":"未インストール","available":"更新あり: {version}","dismissed":"codex 側で「見送り」扱いになっています","update":"更新する","updating":"更新中...","running":"実行中: {command}","succeeded":"{from} から {to} に更新しました。","failed":"更新に失敗しました: {error}","restartWarning":"次のセッションは再起動するまで現在のバージョンのままです: {sessions}","restartNotice":"すでに起動しているセッションは、再起動するまで現在のバージョンのままです。","restart":"{alias} を再起動","restarted":"終了しました。次のメッセージ送信で新しいバージョンが起動します。","restartError":"セッションを再起動できませんでした。","restartUnknown":"セッションが終了したか確かめられませんでした。稼働状態を確かめてください。","restartInProgress":"セッションはまだ動いています。終了の処理が続いているかもしれません。少し待ってから稼働状態を確かめてください。","loadError":"エージェント CLI のバージョンを読み取れませんでした。"},"settings":{"title":"設定","pageDescription":"新しいブランチの既定、通知、外部アプリなどを設定します。","sections":{"quickLinks":"クイックリンク","general":"一般","notifications":"通知","externalApps":"External Apps","about":"About"},"categoriesLabel":"設定のカテゴリ","defaultSurfaceMode":{"title":"出力面の既定","description":"セッションの出力側を最初に何で開くかです。ターミナル(tmux の画面そのまま)か、チャット(会話の履歴)を選べます。開いたあとはセッションのヘッダーからいつでも切り替えられます。","appliesToNew":"まだ切り替えていない出力面にだけ効きます。すでに手で切り替えた split やスマホのタブは、そのときのモードのままです。","mode":{"terminal":"ターミナル","chat":"チャット"},"hint":{"terminal":"エージェントのターミナルを tmux の描画のまま表示します。","chat":"会話の履歴をメッセージ一覧として表示します。"},"saving":"保存中...","saved":"保存しました","configured":"設定済み","usingBuiltIn":"既定値を使用中","saveError":"保存に失敗しました。","loadError":"設定を読み込めませんでした。"},"defaultAgents":{"title":"新規ブランチの既定エージェント","description":"新しく見つかったブランチが最初に開くエージェントと、その並び順です。先頭が primary(最初に開くタブ / 送り先の既定)になります。","appliesToNew":"既存のブランチには適用されません。すでに開いているブランチのタブ構成はそのまま残ります。","primary":"primary","installed":"インストール済み","notInstalled":"未インストール","addLabel":"追加できるエージェント","add":"追加","remove":"削除","moveUp":"上へ","moveDown":"下へ","save":"保存","saving":"保存中...","saved":"保存しました","reset":"既定に戻す","builtIn":"既定値: {agents}","configured":"設定済み","usingBuiltIn":"既定値を使用中","range":"エージェントは {min} 〜 {max} 個で選択してください。","saveError":"保存に失敗しました。","loadError":"設定を読み込めませんでした。","opencodeSharedData":"OpenCode と OpenCode V2 が両方入っています。両者は ~/.local/share/opencode を共有しており、V2 が変えたデータベースを OpenCode(1.x)が読めずに起動に失敗することがあります。その場合は V2 だけを使うか、1.x のデータの置き場所を分けてください。"}},"newTask":{"title":"新しいタスク","loading":"ブランチを読み込んでいます…","loadError":"ブランチの一覧を読み込めませんでした。","noTargets":"送り先にできるエージェントのあるブランチがありません。","recentLabel":"最近の送り先","repositoryLabel":"リポジトリ","branchLabel":"ブランチ","agentLabel":"エージェント","agentStatus":{"running":"稼働中","starting":"起動中","stopped":"停止中"},"willStart":"{agent} を起動して送ります。","startingNotice":"{agent} は起動中です。送れなかったときは少し待ってから送り直してください。","messageLabel":"依頼","messagePlaceholder":"エージェントへの依頼を書く","modelLabel":"モデル","modelPlaceholder":"既定のまま","modelHintLaunch":"セッションを起動するときに使います。","modelHintSwitch":"稼働中のセッションをこのモデルに切り替えます。","modelUnavailable":{"unsupported":"{agent} は送信時のモデル指定に対応していません。","running":"{agent} は稼働中です。モデルは起動時にだけ指定できます(変えるにはセッションを止めてから)。"},"autoYesLabel":"Auto-Yes","autoYesActive":"このエージェントで有効(残り {remaining})。変更しません。","autoYesKeep":"変えない(無効のまま)","autoYesKeepUnknown":"変えない(状態は不明)","autoYesUnknown":"Auto-Yes の状態を確認できませんでした(有効になっている可能性があります)。","autoYesEnableFor":"{duration} 有効にする","autoYesScope":"この依頼だけでなく、期限まで このエージェントに効きます。","send":"送る","sending":"送信中…","sendHint":"で送る","sentToast":"{target} に送りました。クリックで戻ります。","errors":{"auto_yes_failed":"Auto-Yes を有効にできなかったため、送っていません。","prompt_waiting":"{agent} は確認待ちのため、送っていません。ブランチの画面で応答してから送り直してください。","conflict":"セッションが依頼を受け付けませんでした。","starting":"{agent} は起動中です。少し待ってから送り直してください。","start_failed":"{agent} を起動できませんでした。","model_rejected":"モデル指定が受け付けられませんでした。消すか変えてから送り直してください。","invalid":"依頼が受け付けられませんでした。","failed":"送信に失敗しました。接続を確かめて送り直してください。"}},"agentRoles":{"title":"ロール","loading":"読み込み中…","loadError":"ロールの情報を読み込めませんでした。","description":"ロールはセッションの起動時に渡す指示です。ロールごとに本文を書き、ツールごとの既定やセッションごとの指定で使います。解決の順はセッション → リポジトリ → システムです。設定を変えても、動いているセッションには次の起動まで届きません。","personaNote":"OpenCode のペルソナ(build / plan など)とロールは別のものです。ペルソナは OpenCode の画面で切り替えるエージェントで、ロールは CommandMate が起動時に渡す指示です。","replacesDefaultNote":"OpenCode V2 では、ロールがエージェントの既定の指示を置き換えます(足すのではありません)。","resumedAcrossRoleNote":"前の会話を続けて起動したため、別のロールでの返答が履歴に残っています。新しい会話は次の起動時に始められます。","adapterDisabledNote":"このツールへのロールの適用はまだ有効ではありません。ロールが解決されると起動は拒否されます。","unsupportedNote":"このツールはロールの対象外です。","choice":{"inherit":"既定を使う","inheritNamed":"既定({label})","none":"なし","useSystem":"システムの既定を使う","unset":"未設定"},"source":{"inherited":"継承中: {label}","assigned":"指定中: {label}"},"label":{"roleSystem":"{name}[システム]","roleRepository":"{name}[リポジトリ]","roleInstance":"{name}[このセッション]","noneRepository":"なし[リポジトリで明示]","noneInstance":"なし[このセッションで明示]","noneDefault":"なし[既定なし]","noneUnsupported":"なし[対象外のツール]"},"ambiguous":{"rootSettingsDiffer":"判定できません: このブランチが属する複数のリポジトリで設定が異なります({roots})。リポジトリの設定を揃えるか、セッションでロールを指定するまで、起動は拒否されます。","membershipUndetermined":"判定できません: git がリポジトリの所属を確かめられませんでした({roots})。解消するか、セッションでロールを指定するまで、起動は拒否されます。","rootInherits":"システムの既定"},"savedStale":"変更の後に最新の状態を読み直せませんでした。表示が古い可能性があります。ページを再読み込みしてください。","saveUnknown":"保存できたか確かめられませんでした。今の設定を確かめてください。","application":{"startup":"起動時: {name}","next":"次回: {name}","pending":"適用待ち","unknown":"不明","ambiguous":"判定できません","separator":"/","restart":"再起動","restartHint":"セッションを終了します。次にメッセージを送ると、今の設定で新しく起動します。"},"instances":{"title":"セッションのロール","description":"セッションごとにロールを選びます。変更は次の起動から使われます。","selectLabel":"{alias} のロール","saveError":"ロールを保存できませんでした。","restartConfirm":"{alias} のセッションを終了します。次にメッセージを送ると、今の設定で新しく起動します。","restartError":"セッションを終了できませんでした。","restartUnknown":"セッションが終了したか確かめられませんでした。稼働状態を確かめてください。","restartInProgress":"セッションはまだ動いています。終了の処理が続いているかもしれません。少し待ってから稼働状態を確かめてください。","runningUnknown":"稼働状態を読めませんでした。起動中か停止中かは表示していません。"},"repository":{"toggle":"ロール","toggleLabel":"{name} のロールの既定","description":"このリポジトリのブランチで、ツールごとに使う既定です。","selectLabel":"{tool} の既定","saveError":"既定を保存できませんでした。"},"system":{"title":"システムの既定","description":"リポジトリやセッションで指定がないときに使います。"},"manage":{"new":"ロールを作成","create":"作成","save":"保存","edit":"編集","delete":"削除","cancel":"キャンセル","name":"名前","body":"本文","bodyPlaceholder":"例: あなたはコードレビュー担当です。","bytes":"{bytes} / {max} バイト","empty":"ロールはまだありません。","nameConflict":"同じ名前のロールがあります。","versionConflict":"このロールは別の場所で編集されました。閉じて開き直してください。","saveError":"保存できませんでした。","deleteError":"削除できませんでした。","edited":"保存しました。このロールを直接使う設定 {count} 件は、次の起動から新しい本文を使います。","deleted":"「{name}」を削除しました。","deleteAsk":"「{name}」を削除しますか?","inUse":"このロールは次の場所で使われています。削除すると、これらの設定も外れます。起動の記録と生成済みのファイルは残ります。","forceDelete":"設定を外して削除","referenceInstance":"セッション: {worktree} / {instance}","referenceRepository":"リポジトリ: {path}({tool})","referenceSystem":"システムの既定: {tool}"}}}')}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=4207,exports.ids=[4207],exports.modules={20137:(a,b,c)=>{c.d(b,{Ar:()=>d,Cb:()=>v,En:()=>k,Fs:()=>q,Hf:()=>t,Tp:()=>j,Ww:()=>e,XI:()=>w,dq:()=>l,eb:()=>i,iI:()=>y,kd:()=>f,o1:()=>g,oN:()=>h,u7:()=>r});let d=100,e=1e4,f=["default","acceptEdits","plan","dontAsk","bypassPermissions"],g=["read-only","workspace-write","danger-full-access"],h=["allow-all-tools","yolo"],i=["--dangerously-skip-permissions"],j=["default","standard","plan","auto-accept","dont-ask"],k="yolo",l=[k,...j],m=[],n=[],o=[],p="default",q="auto",r=[p,q],s=[],t={claude:"acceptEdits",codex:"workspace-write",gemini:"","vibe-local":"",opencode:"",copilot:"allow-all-tools",antigravity:"--dangerously-skip-permissions","command-code":k,"opencode-v2":p},u=[];function v(a){return!u.includes(a)}function w(a){switch(a){case"claude":return f;case"codex":return g;case"copilot":return h;case"antigravity":return i;case"command-code":return l;case"gemini":return m;case"vibe-local":return n;case"opencode":return o;case"opencode-v2":return r;default:return s}}let x=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function y(a){return x.test(a)}},34207:(a,b,c)=>{c.d(b,{$2:()=>u,$g:()=>y,To:()=>t,V$:()=>B,iv:()=>m,uv:()=>l});var d=c(79646),e=c(67548),f=c(73434),g=c(42422),h=c(15194),i=c(20137),j=c(18140),k=c(36925);let l=1e4,m=new Set(h.XH);function n(a){return 102400>=Buffer.byteLength(a,"utf-8")?a:Buffer.from(a,"utf-8").subarray(0,102400).toString("utf-8")+"\n\n--- Output truncated (exceeded 100KB limit) ---"}function o(a){let b=[],c=null;for(let d of a.split("\n")){let a,e=d.trim();if(!e.startsWith("{"))continue;try{a=JSON.parse(e)}catch{continue}if("object"!=typeof a||null===a)continue;let f=a,g="object"==typeof f.part&&null!==f.part?f.part:null;if("text"===f.type&&g&&"string"==typeof g.text){b.push({messageId:"string"==typeof g.messageID?g.messageID:null,text:g.text});continue}"error"===f.type&&(c=p(f))}if(b.length>0){let a=b[b.length-1].messageId;return(null===a?[b[b.length-1]]:b.filter(b=>b.messageId===a)).map(a=>a.text).join("\n\n")}return c}function p(a){let b="object"==typeof a.error&&null!==a.error?a.error:{},c="string"==typeof b.name?b.name:"string"==typeof b.type?b.type:"error",d="object"==typeof b.data&&null!==b.data?b.data:{},e="string"==typeof d.message?d.message:"string"==typeof b.message?b.message:"";return e?`opencode error: ${c}: ${e}`:`opencode error: ${c}`}function q(a){let b=null;for(let c of a.split("\n")){let a=c.trim();if(a.startsWith("{"))try{let c=JSON.parse(a);"object"==typeof c&&null!==c&&(b=c)}catch{continue}}return b&&"error"===b.type?p(b):null}let r={1:"error",3:"authentication failed",4:"permission denied",5:"rate limited",6:"connection error",7:"server error",8:"max turns reached",9:"no response",10:"insufficient credits",130:"interrupted"};function s(a){let b=null,c=[],d=0;for(let e of a.split("\n")){let a,f=e.trim();if(!f.startsWith("{"))continue;try{a=JSON.parse(f)}catch{continue}if("object"!=typeof a||null===a)continue;let g=a;if("result"===g.type){if("string"!=typeof g.subtype)continue;b={subtype:g.subtype,finalText:"string"==typeof g.finalText?g.finalText:"",..."string"==typeof g.error?{error:g.error}:{}};continue}if("event"!==g.type||"object"!=typeof g.event||null===g.event)continue;let h=g.event;if("tool_running"===h.type){d+=1;continue}"tool_hook_blocked"===h.type&&c.push({toolCallId:"string"==typeof h.toolCallId?h.toolCallId:null,toolName:"string"==typeof h.toolName&&""!==h.toolName?h.toolName:"(unnamed tool)",hookOutput:"string"==typeof h.hookOutput?h.hookOutput:""})}return{result:b,blockedToolCalls:c,startedToolCalls:d}}let t="Warning: command-code blocked ",u=1024,v=/^Warning: command-code blocked \d+ tool call\(s\) \(tool_hook_blocked\): /;function w(a,b){let c=(0,g.aJ)(a).replace(/[\x00-\x1f\x7f\s]+/g," ").trim();return c.length>b?`${c.slice(0,b)}…`:c}function x(a){let{blockedToolCalls:b,startedToolCalls:c}=a;if(0===b.length)return null;let d=new Map,e=new Map;for(let a of b){let b=w(a.toolName,80);d.set(b,(d.get(b)??0)+1);let c=w(a.hookOutput,300)||"(no hook output)",f=JSON.stringify([b,c]);e.has(f)||e.set(f,`Blocked ${b}: ${c}`)}let f=[...d].slice(0,5).map(([a,b])=>`${a} (${b})`);d.size>5&&f.push(`+${d.size-5} more`);let g=`${t}${b.length} tool call(s) (tool_hook_blocked): ${f.join(", ")}; ${c} tool call(s) ran`,h=[...e.values()].slice(0,5);return e.size>5&&h.push(`Blocked: +${e.size-5} more distinct reason(s)`),[g,...h]}function y(a){if("string"!=typeof a)return null;let b=a.indexOf("\n"),c=-1===b?a:a.slice(0,b);return v.test(c)?c:null}function z(a,b){let c=null!==b&&"success"!==b.subtype;if((null===a||0===a)&&!c)return null;let d=[];if(null!==a&&0!==a){let b=r[a];d.push(b?`exit ${a} (${b})`:`exit ${a}`)}return b&&(d.push(`subtype=${b.subtype}`),b.error&&d.push(b.error)),`Reason: command-code ${d.join(" / ")}`}let A={codex:"$CODEX_HOME/hooks.json",antigravity:"~/.gemini/config/hooks.json"};async function B(a,b,c="claude",h,p){if(!m.has(c))return{output:"",exitCode:null,status:"failed",error:`Invalid CLI tool: ${c}`};let r=function(a){if(!(0,e.WM)())return null;let b=A[a];return b?new e.ci(`a headless ${a} run`,`it reads the shared ${b} and its hooks post to the relay's default port (the production server); see docs/user-guide/uat-isolation.md`,"Headless codex / antigravity runs (Schedules, daily summary) cannot be isolated; skip those scenarios in a UAT.").message:null}(c);if(r)return{output:r,exitCode:null,status:"failed",error:r};let t=function(a,b,c,d){switch(b){case"codex":return["exec",a,"--sandbox",c??"workspace-write"];case"gemini":return["-p",a];case"vibe-local":if(d?.model)return["--model",d.model,"-p",a,"-y"];return["-p",a,"-y"];case"opencode":{let b=["run","--format","json"];return d?.model&&b.push("-m",d.model),d?.agent&&b.push("--agent",d.agent),d?.variant&&b.push("--variant",d.variant),d?.continueSession&&b.push("-c"),d?.title&&b.push("--title",d.title),b.push(a),b}case"opencode-v2":{let b=["run","--standalone","--format","json"];return c===i.Fs&&b.push("--auto"),d?.model&&b.push("-m",d.variant?`${d.model}#${d.variant}`:d.model),d?.agent&&b.push("--agent",d.agent),d?.continueSession&&b.push("-c"),d?.title&&b.push("--title",d.title),b.push("--",a),b}case"command-code":{let b=["-p",a,"--output-format","json"];return c===i.En?b.push("--yolo"):i.Tp.includes(c)?b.push("--permission-mode",c):b.push("--yolo"),b.push("--no-auto-update"),b}case"antigravity":return["-p",a,"--dangerously-skip-permissions"];case"copilot":{let b=i.oN.includes(c)?c:"allow-all-tools",e=["copilot"];return d?.model&&e.push("--model",d.model),e.push("-p",a,`--${b}`),e}default:{let b=["-p",a,"--output-format","text","--permission-mode",c??"acceptEdits"];return(0,e.WM)()&&b.push("--setting-sources",e.mc),b}}}(a.length>l?a.substring(0,l):a,c,h,p),u=function(a){switch(a){case"copilot":return"gh";case"antigravity":return"agy";case"command-code":return"commandcode";case"opencode-v2":return j.b6;default:return a}}(c);if("opencode-v2"===c){let a=await (0,j.Qq)();if(!a.executable){let a="OpenCode V2 not found: no `opencode2` (or `opencode` reporting v2) on PATH";return{output:a,exitCode:null,status:"failed",error:a}}u=a.executable.path}let v="opencode-v2"===c?{...(0,f.hh)(),PWD:b}:(0,f.hh)();return new Promise(a=>{let e=(0,d.execFile)(u,t,{cwd:b,env:v,maxBuffer:0xa00000,timeout:p?.timeoutMs??18e5},(b,d,e)=>{if(b){let f=b.code,h="ERR_CHILD_PROCESS_STDIO_MAXBUFFER"===f,i=b.killed||"ETIMEDOUT"===f,j="command-code"===c?s(d||""):null,k=j?j.result:null,l=j?x(j):null,m="number"==typeof f?f:null,p="opencode-v2"===c,r=[...l??[],`Error: ${b.message}`,`Code: ${f??"unknown"}`,`Signal: ${b.signal??"none"}`,h?"Reason: stdout exceeded execFile maxBuffer (output_limit)":null,"command-code"===c?z(m,k):null,p?function(a,b){if(/permission requested: .*auto-rejecting/.test((0,g.aJ)(b)))return"Reason: opencode-v2 auto-rejected a permission request (an `ask` rule); set the schedule's Permission to `auto` to approve it unattended";let c=q(a);return c?`Reason: ${c}`:null}(d||"",e||""):null].filter(a=>null!==a).join("\n"),t=k?k.finalText:p?o(d||"")??(d||""):d||"";a({output:n((0,g.aJ)([r,t?`
1
+ "use strict";exports.id=4207,exports.ids=[4207],exports.modules={20137:(a,b,c)=>{c.d(b,{Ar:()=>d,Cb:()=>v,En:()=>k,Fs:()=>q,Hf:()=>t,Tp:()=>j,Ww:()=>e,XI:()=>w,dq:()=>l,eb:()=>i,iI:()=>y,kd:()=>f,o1:()=>g,oN:()=>h,u7:()=>r});let d=100,e=1e4,f=["default","acceptEdits","plan","dontAsk","bypassPermissions"],g=["read-only","workspace-write","danger-full-access"],h=["allow-all-tools","yolo"],i=["--dangerously-skip-permissions"],j=["default","standard","plan","auto-accept","dont-ask"],k="yolo",l=[k,...j],m=[],n=[],o=[],p="default",q="auto",r=[p,q],s=[],t={claude:"acceptEdits",codex:"workspace-write",gemini:"","vibe-local":"",opencode:"",copilot:"allow-all-tools",antigravity:"--dangerously-skip-permissions","command-code":k,"opencode-v2":p},u=[];function v(a){return!u.includes(a)}function w(a){switch(a){case"claude":return f;case"codex":return g;case"copilot":return h;case"antigravity":return i;case"command-code":return l;case"gemini":return m;case"vibe-local":return n;case"opencode":return o;case"opencode-v2":return r;default:return s}}let x=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function y(a){return x.test(a)}},34207:(a,b,c)=>{c.d(b,{$2:()=>u,$g:()=>y,To:()=>t,V$:()=>B,iv:()=>m,uv:()=>l});var d=c(79646),e=c(67548),f=c(73434),g=c(30741),h=c(15194),i=c(20137),j=c(18140),k=c(36925);let l=1e4,m=new Set(h.XH);function n(a){return 102400>=Buffer.byteLength(a,"utf-8")?a:Buffer.from(a,"utf-8").subarray(0,102400).toString("utf-8")+"\n\n--- Output truncated (exceeded 100KB limit) ---"}function o(a){let b=[],c=null;for(let d of a.split("\n")){let a,e=d.trim();if(!e.startsWith("{"))continue;try{a=JSON.parse(e)}catch{continue}if("object"!=typeof a||null===a)continue;let f=a,g="object"==typeof f.part&&null!==f.part?f.part:null;if("text"===f.type&&g&&"string"==typeof g.text){b.push({messageId:"string"==typeof g.messageID?g.messageID:null,text:g.text});continue}"error"===f.type&&(c=p(f))}if(b.length>0){let a=b[b.length-1].messageId;return(null===a?[b[b.length-1]]:b.filter(b=>b.messageId===a)).map(a=>a.text).join("\n\n")}return c}function p(a){let b="object"==typeof a.error&&null!==a.error?a.error:{},c="string"==typeof b.name?b.name:"string"==typeof b.type?b.type:"error",d="object"==typeof b.data&&null!==b.data?b.data:{},e="string"==typeof d.message?d.message:"string"==typeof b.message?b.message:"";return e?`opencode error: ${c}: ${e}`:`opencode error: ${c}`}function q(a){let b=null;for(let c of a.split("\n")){let a=c.trim();if(a.startsWith("{"))try{let c=JSON.parse(a);"object"==typeof c&&null!==c&&(b=c)}catch{continue}}return b&&"error"===b.type?p(b):null}let r={1:"error",3:"authentication failed",4:"permission denied",5:"rate limited",6:"connection error",7:"server error",8:"max turns reached",9:"no response",10:"insufficient credits",130:"interrupted"};function s(a){let b=null,c=[],d=0;for(let e of a.split("\n")){let a,f=e.trim();if(!f.startsWith("{"))continue;try{a=JSON.parse(f)}catch{continue}if("object"!=typeof a||null===a)continue;let g=a;if("result"===g.type){if("string"!=typeof g.subtype)continue;b={subtype:g.subtype,finalText:"string"==typeof g.finalText?g.finalText:"",..."string"==typeof g.error?{error:g.error}:{}};continue}if("event"!==g.type||"object"!=typeof g.event||null===g.event)continue;let h=g.event;if("tool_running"===h.type){d+=1;continue}"tool_hook_blocked"===h.type&&c.push({toolCallId:"string"==typeof h.toolCallId?h.toolCallId:null,toolName:"string"==typeof h.toolName&&""!==h.toolName?h.toolName:"(unnamed tool)",hookOutput:"string"==typeof h.hookOutput?h.hookOutput:""})}return{result:b,blockedToolCalls:c,startedToolCalls:d}}let t="Warning: command-code blocked ",u=1024,v=/^Warning: command-code blocked \d+ tool call\(s\) \(tool_hook_blocked\): /;function w(a,b){let c=(0,g.aJ)(a).replace(/[\x00-\x1f\x7f\s]+/g," ").trim();return c.length>b?`${c.slice(0,b)}…`:c}function x(a){let{blockedToolCalls:b,startedToolCalls:c}=a;if(0===b.length)return null;let d=new Map,e=new Map;for(let a of b){let b=w(a.toolName,80);d.set(b,(d.get(b)??0)+1);let c=w(a.hookOutput,300)||"(no hook output)",f=JSON.stringify([b,c]);e.has(f)||e.set(f,`Blocked ${b}: ${c}`)}let f=[...d].slice(0,5).map(([a,b])=>`${a} (${b})`);d.size>5&&f.push(`+${d.size-5} more`);let g=`${t}${b.length} tool call(s) (tool_hook_blocked): ${f.join(", ")}; ${c} tool call(s) ran`,h=[...e.values()].slice(0,5);return e.size>5&&h.push(`Blocked: +${e.size-5} more distinct reason(s)`),[g,...h]}function y(a){if("string"!=typeof a)return null;let b=a.indexOf("\n"),c=-1===b?a:a.slice(0,b);return v.test(c)?c:null}function z(a,b){let c=null!==b&&"success"!==b.subtype;if((null===a||0===a)&&!c)return null;let d=[];if(null!==a&&0!==a){let b=r[a];d.push(b?`exit ${a} (${b})`:`exit ${a}`)}return b&&(d.push(`subtype=${b.subtype}`),b.error&&d.push(b.error)),`Reason: command-code ${d.join(" / ")}`}let A={codex:"$CODEX_HOME/hooks.json",antigravity:"~/.gemini/config/hooks.json"};async function B(a,b,c="claude",h,p){if(!m.has(c))return{output:"",exitCode:null,status:"failed",error:`Invalid CLI tool: ${c}`};let r=function(a){if(!(0,e.WM)())return null;let b=A[a];return b?new e.ci(`a headless ${a} run`,`it reads the shared ${b} and its hooks post to the relay's default port (the production server); see docs/user-guide/uat-isolation.md`,"Headless codex / antigravity runs (Schedules, daily summary) cannot be isolated; skip those scenarios in a UAT.").message:null}(c);if(r)return{output:r,exitCode:null,status:"failed",error:r};let t=function(a,b,c,d){let f=function(a,b,c,d){switch(b){case"codex":return["exec",a,"--sandbox",c??"workspace-write"];case"gemini":return["-p",a];case"vibe-local":if(d?.model)return["--model",d.model,"-p",a,"-y"];return["-p",a,"-y"];case"opencode":{let b=["run","--format","json"];return d?.model&&b.push("-m",d.model),d?.agent&&b.push("--agent",d.agent),d?.variant&&b.push("--variant",d.variant),d?.continueSession&&b.push("-c"),d?.title&&b.push("--title",d.title),b.push(a),b}case"opencode-v2":{let b=["run","--standalone","--format","json"];return c===i.Fs&&b.push("--auto"),d?.model&&b.push("-m",d.variant?`${d.model}#${d.variant}`:d.model),d?.agent&&b.push("--agent",d.agent),d?.continueSession&&b.push("-c"),d?.title&&b.push("--title",d.title),b.push("--",a),b}case"command-code":{let b=["-p",a,"--output-format","json"];return c===i.En?b.push("--yolo"):i.Tp.includes(c)?b.push("--permission-mode",c):b.push("--yolo"),b.push("--no-auto-update"),b}case"antigravity":return["-p",a,"--dangerously-skip-permissions"];case"copilot":{let b=i.oN.includes(c)?c:"allow-all-tools",e=["copilot"];return d?.model&&e.push("--model",d.model),e.push("-p",a,`--${b}`),e}default:{let b=["-p",a,"--output-format","text","--permission-mode",c??"acceptEdits"];return(0,e.WM)()&&b.push("--setting-sources",e.mc),b}}}(a,b,c,d),g=d?.role;return g&&0!==g.args.length?"trailing"===g.headlessPosition?[...f,...g.args]:"copilot"===b?[f[0],...g.args,...f.slice(1)]:[...g.args,...f]:f}(a.length>l?a.substring(0,l):a,c,h,p),u=function(a){switch(a){case"copilot":return"gh";case"antigravity":return"agy";case"command-code":return"commandcode";case"opencode-v2":return j.b6;default:return a}}(c);if("opencode-v2"===c){let a=await (0,j.Qq)();if(!a.executable){let a="OpenCode V2 not found: no `opencode2` (or `opencode` reporting v2) on PATH";return{output:a,exitCode:null,status:"failed",error:a}}u=a.executable.path}let v="opencode-v2"===c?{...(0,f.hh)(),PWD:b}:(0,f.hh)(),w=p?.role?{...v,...p.role.env}:v;return new Promise(a=>{let e=(0,d.execFile)(u,t,{cwd:b,env:w,maxBuffer:0xa00000,timeout:p?.timeoutMs??18e5},(b,d,e)=>{if(b){let f=b.code,h="ERR_CHILD_PROCESS_STDIO_MAXBUFFER"===f,i=b.killed||"ETIMEDOUT"===f,j="command-code"===c?s(d||""):null,k=j?j.result:null,l=j?x(j):null,m="number"==typeof f?f:null,p="opencode-v2"===c,r=[...l??[],`Error: ${b.message}`,`Code: ${f??"unknown"}`,`Signal: ${b.signal??"none"}`,h?"Reason: stdout exceeded execFile maxBuffer (output_limit)":null,"command-code"===c?z(m,k):null,p?function(a,b){if(/permission requested: .*auto-rejecting/.test((0,g.aJ)(b)))return"Reason: opencode-v2 auto-rejected a permission request (an `ask` rule); set the schedule's Permission to `auto` to approve it unattended";let c=q(a);return c?`Reason: ${c}`:null}(d||"",e||""):null].filter(a=>null!==a).join("\n"),t=k?k.finalText:p?o(d||"")??(d||""):d||"";a({output:n((0,g.aJ)([r,t?`
2
2
  --- stdout ---
3
3
  ${t}`:"",e?`
4
4
  --- stderr ---
@@ -0,0 +1 @@
1
+ "use strict";exports.id=454,exports.ids=[454],exports.modules={5007:(a,b,c)=>{c.d(b,{Sw:()=>g,nE:()=>e,of:()=>f});var d=c(10641);async function e(a){try{return{ok:!0,body:await a.json()}}catch{return{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}}}async function f(a){let b=await e(a);if(!b.ok)return b;let c=b.body;return"object"!=typeof c||null===c||Array.isArray(c)?{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}:{ok:!0,body:c}}async function g(a){let b;try{b=await a.json()}catch{return{ok:!0,body:{}}}return"object"!=typeof b||null===b||Array.isArray(b)?{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}:{ok:!0,body:b}}},32002:(a,b,c)=>{c.d(b,{e:()=>h});var d=c(56791),e=c(26923),f=c(52201),g=c(15194);function h(a,b,c){let h=(0,d.getAgentInstances)(a,b);return h.length>0?h:(0,g.lu)((0,f.eG)({worktree:c,appSettings:(0,e.Ds)(a)}))}},48695:(a,b,c)=>{c.d(b,{u:()=>e});var d=c(15194);function e(a){if(!Array.isArray(a))return{valid:!1,error:"agentInstances must be an array"};if(a.length<1)return{valid:!1,error:"agentInstances must have at least 1 entry"};if(a.length>d.Ab)return{valid:!1,error:`agentInstances must have at most ${d.Ab} entries`};let b=new Set,c=[];for(let e=0;e<a.length;e++){let f=a[e];if("object"!=typeof f||null===f)return{valid:!1,error:`agentInstances[${e}] must be an object`};let g=f.id;if("string"!=typeof g||!(0,d.n6)(g))return{valid:!1,error:`agentInstances[${e}].id is invalid`};if(b.has(g))return{valid:!1,error:`agentInstances[${e}].id is duplicated: ${g}`};let h=f.cliTool;if("string"!=typeof h||!(0,d.hR)(h))return{valid:!1,error:`agentInstances[${e}].cliTool is invalid`};if((0,d.hR)(g)&&g!==h)return{valid:!1,error:`agentInstances[${e}].id "${g}" conflicts with cliTool "${h}"`};let i="";if(void 0!==f.alias&&null!==f.alias){if("string"!=typeof f.alias)return{valid:!1,error:`agentInstances[${e}].alias must be a string`};if(f.alias.length>d.pQ)return{valid:!1,error:`agentInstances[${e}].alias exceeds ${d.pQ} characters`};i=f.alias}b.add(g),c.push({id:g,cliTool:h,alias:i,order:e})}return{valid:!0,value:c}}},83530:(a,b,c)=>{c.d(b,{FH:()=>l,fV:()=>k,iK:()=>i,y4:()=>h});var d=c(73753),e=c(28274),f=c(15194);let g="claude",h="instance_tool_conflict";function i(a,b,c={}){let{instanceId:d,requestedCliTool:g}=c;if(!d)return g?{cliToolId:g,instanceId:g,resolvedBy:"explicit"}:j(a,b,void 0);let h=(0,e.BN)(a,b,d);if(h&&(0,f.hR)(h.cliTool)){let a={cliToolId:h.cliTool,instanceId:d,resolvedBy:"roster"};return g&&g!==h.cliTool&&(a.conflict={instanceId:d,rosterCliTool:h.cliTool,requestedCliTool:g}),a}return g?(0,f.hR)(d)&&g!==d?{cliToolId:d,instanceId:d,resolvedBy:"primary",conflict:{instanceId:d,rosterCliTool:d,requestedCliTool:g,primaryAnchor:!0}}:{cliToolId:g,instanceId:d,resolvedBy:"explicit"}:(0,f.hR)(d)?{cliToolId:d,instanceId:d,resolvedBy:"primary"}:j(a,b,d)}function j(a,b,c){let e=(0,d.getWorktreeById)(a,b),h=e?.cliToolId;return h&&(0,f.hR)(h)?{cliToolId:h,instanceId:c??h,resolvedBy:"worktree-default"}:{cliToolId:g,instanceId:c??g,resolvedBy:"fallback"}}function k(a,b,c={}){let d=i(a,b,c);return d.conflict?{ok:!1,error:h,conflict:d.conflict}:{ok:!0,target:d}}function l(a){return a.primaryAnchor?`Agent instance '${a.instanceId}' is the primary instance of ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or target a ${a.requestedCliTool} instance instead.`:`Agent instance '${a.instanceId}' is registered as ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or update the instance's roster entry.`}},84967:(a,b,c)=>{c.d(b,{Bb:()=>q,Bk:()=>r,Ql:()=>x,SL:()=>y,Vp:()=>w,ae:()=>p,bc:()=>n,d$:()=>t,qU:()=>v,vp:()=>A,wn:()=>z});var d=c(55511),e=c(48695),f=c(28274),g=c(44429),h=c(73753),i=c(15194),j=c(32002),k=c(88383),l=c(44816),m=c(28178);class n extends Error{constructor(a,b){super(b),this.code=a,this.name="InstanceRoleRequestError"}}function o(a,b){return(0,j.e)(a,b.id,b.selectedAgents)}function p(a){let b=a.map(({id:a,cliTool:b,alias:c,order:d})=>[a,b,c,d]);return(0,d.createHash)("sha256").update(JSON.stringify(b)).digest("hex")}function q(a,b){let c=(0,h.getWorktreeById)(a,b);return c?p(o(a,c)):null}async function r(a,b,c={}){let d=(a,b,c)=>JSON.stringify([a,b,c]),e=new Map;if(c.loadComposition){let f=(0,h.getWorktreeById)(a,b);if(f){let b=o(a,f).filter(a=>(0,k.cg)(a.cliTool));await Promise.all(b.map(async a=>{let b=await c.loadComposition?.(a.cliTool,a.id,f.path).catch(()=>null);e.set(d(a.cliTool,a.id,f.path),b??null)}))}}return(0,m.$S)(a,b,c,(b,h)=>{let i=o(a,b),j=i.map(f=>{var i;let j=(0,g.d4)(a,b.id,f.id),n=(0,g.zk)(a,b.id,f.id),o=(0,m.WD)(a,f.cliTool,h,j),p=(i=e.get(d(f.cliTool,f.id,b.path))??null,"none"===o.kind?{computed:!0,fingerprint:null}:"ambiguous"!==o.kind&&null!==i&&(0,k.cg)(o.cliToolId)?{computed:!0,fingerprint:(0,l.fY)(o.cliToolId,o.role,i).injectionFingerprint}:{computed:!1,fingerprint:null}),q=c.currentGeneration?.(f.cliTool,f.id)??null,r=null!==n.launched&&n.launched.sessionGeneration===q?n.launched:null,s={...(0,m.FK)(o),injectionFingerprint:p.fingerprint};return{instanceId:f.id,cliToolId:f.cliTool,alias:f.alias,supported:(0,k.cg)(f.cliTool),adapterEnabled:(0,k.cg)(f.cliTool)&&(0,k.Y)(f.cliTool),stored:j,application:{effectiveNext:s,requested:n.requested,launched:r,restartPending:p.computed&&null!==r?p.fingerprint===r.injectionFingerprint?"no":"yes":"unknown",...(0,k.V)(f.cliTool)?{replacesDefaultInstructions:!0}:{},...c.resumedAcrossRole?.(f.cliTool,f.id)?{resumedAcrossRole:!0}:{}}}}),n=k.UM.map(b=>({cliToolId:b,adapterEnabled:(0,k.Y)(b),effective:(0,m.FK)((0,m.WD)(a,b,h))}));return{success:!0,rosterRevision:p(i),rosterSaved:(0,f.m0)(a,b.id).length>0,instances:j,toolDefaults:n}})}function s(a,b){if(!(0,k.cg)(a)&&"inherit"!==b.state)throw new n("tool_not_supported",`Roles do not apply to ${a}`)}function t(a,b,c,d,e){a.transaction(()=>{let f=o(a,b);u(f,e);let h=f.find(a=>a.id===c);if(!h)throw new n("not_found",`Instance not in the roster: ${c}`);s(h.cliTool,d),(0,g.fV)(a,b.id,c,d)})()}function u(a,b){if(void 0!==b&&b!==p(a))throw new n("roster_changed","The roster changed since it was read")}function v(a,b,c,d){let e=(0,g.O2)(a,b,c);if(!e)return null;if(null===e.requestFingerprint)throw new n("creation_cancelled","This write was given up on, or its row has gone, and makes nothing now");if(e.requestFingerprint!==d)throw new n("idempotency_key_reused","This key was used for another request");return e}function w(a){return(0,d.createHash)("sha256").update(JSON.stringify(a)).digest("hex")}function x(a,b){let c=b.filter(b=>!a.some(a=>a.id===b.id&&a.cliTool===b.cliTool));return 1===c.length?c[0].id:null}function y(a,b,c){return a.transaction(()=>{let j=(0,h.getWorktreeById)(a,b);if(!j)throw new n("not_found",`Worktree not found: ${b}`);let k=function(a,b){let c=[a.id,a.cliTool,a.alias??null,b.state,"role"===b.state?b.roleId:null];return(0,d.createHash)("sha256").update(JSON.stringify(c)).digest("hex")}(c.instance,c.role);if(void 0!==c.idempotencyKey){let d=v(a,b,c.idempotencyKey,k);if(d)return{instanceId:d.instanceId,replayed:!0}}let l=o(a,j);if(u(l,c.expectedRosterRevision),l.some(a=>a.id===c.instance.id))throw new n("instance_exists",`Instance already exists: ${String(c.instance.id)}`);if(l.length>=i.Ab)throw new n("invalid_request",`A worktree holds at most ${i.Ab} instances`);let m=(0,e.u)([...l,c.instance]);if(!m.valid||!m.value)throw new n("invalid_request",m.error??"Invalid instance");let p=m.value,q=p[p.length-1];s(q.cliTool,c.role);try{(0,f.Cs)(a,b,p)}catch(a){if(a instanceof f.AC||a instanceof f.ug)throw new n("invalid_request",a.message);throw a}return(0,g.fV)(a,b,q.id,c.role),void 0!==c.idempotencyKey&&(0,g.JE)(a,b,c.idempotencyKey,q.id,k),{instanceId:q.id}})()}function z(a){let b=(0,g.kX)(a);return k.UM.map(a=>{let c=b[a];return{cliToolId:a,adapterEnabled:(0,k.Y)(a),stored:c?{state:"role",roleId:c.roleId,roleName:c.roleName}:{state:"unset"}}})}function A(a,b,c={}){return(0,m.W1)(a,b,c,(b,c)=>{let d=(0,g.Hp)(a,b.id),e=k.UM.map(e=>({cliToolId:e,adapterEnabled:(0,k.Y)(e),stored:d[e]??{state:"inherit"},effective:(0,m.FK)((0,m.Uq)((0,m.WD)(a,e,c),b.id))}));return{repository:b,defaults:e}})}},99099:(a,b,c)=>{c.d(b,{F:()=>j,U:()=>h});var d=c(10641),e=c(44429),f=c(84967),g=c(28178);function h(a,b,c){return d.NextResponse.json({success:!1,error:a,message:b},{status:c})}let i={not_found:404,tool_not_supported:400,invalid_request:400,instance_exists:409,roster_changed:409,idempotency_key_reused:409,creation_cancelled:409};function j(a,b,c){if(a instanceof e.vX)return h("invalid_request",a.message,400);if(a instanceof e.zd||a instanceof g.yD)return h("not_found",a.message,404);if(a instanceof e.jY)return h("name_conflict",a.message,409);if(a instanceof e.XG)return h("name_changed",a.message,409);if(a instanceof e.Mk){let b={success:!1,error:"version_conflict",message:a.message,currentBodyVersion:a.currentBodyVersion};return d.NextResponse.json(b,{status:409})}if(a instanceof e.aV){let b={success:!1,error:"role_in_use",message:a.message,references:a.references};return d.NextResponse.json(b,{status:409})}return a instanceof f.bc?h(a.code,a.message,i[a.code]):(b.error(c,{error:a instanceof Error?a.message:String(a)}),h("internal_error","Internal error",500))}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=4645,exports.ids=[2839,4645,5220,8955],exports.modules={22354:(a,b,c)=>{c.d(b,{F0:()=>i.F,VM:()=>d.VM,_0:()=>e._0,c1:()=>j.c,o:()=>h.o,vm:()=>g.v,y_:()=>f.y_});var d=c(70096);c(66101),c(45567),c(57510),c(38367);var e=c(25071),f=c(50474),g=c(70997),h=c(77904),i=c(76835),j=c(2734)},39687:(a,b,c)=>{c.d(b,{d:()=>B});var d=c(56791),e=c(12693),f=c(15194),g=c(95220),h=c(12462),i=c(43015),j=c(54325),k=c(72626),l=c(34331),m=c(40964),n=c(58707),o=c(2669),p=c(31990),q=c(20029),r=c(7321),s=c(92323),t=c(94154),u=c(34405),v=c(49973),w=c(90580);let x=(0,k.h)("session/send-user-message");function y(a){return a instanceof Error?a.message:String(a)}async function z(a,b){let c=`${a}:${b}`,d=Date.now()+5e3;for(;(0,g.getActivePollers)().includes(c);){if(Date.now()>=d)return!1;await new Promise(a=>setTimeout(a,100))}return!0}async function A(a,b,c,d){if(!t.wn.has(b))return!1;try{let e=await (0,p.WD)(a,b,u._,c),f=(0,t.ji)(e,b);return"content"===f.state&&(0,q.C7)(f.text,d)}catch(a){return x.warn("send-composer-residue-read-failed",{error:y(a)}),!1}}async function B(a,b){let c,{worktreeId:k,content:p,cliToolId:u,instanceId:B,absoluteImagePath:C,copilotModel:D,respondAgent:E}=b,F=b.observedInputGeneration??(0,v.RW)(),G=b.messageType??"normal",H=B??u,I=e.CLIToolManager.getInstance().getTool(u),J=C?(0,f._J)(I)?I.imageMessageBody?.(p,C)??p:(0,w.TZ)(p,C):p,K=!1,L=!1,M=(a,d)=>{let e=L||void 0===c&&K?{}:void 0!==c?{inputGeneration:c}:"not-sent"===a?{observedGeneration:F}:{};(0,q.zE)({worktreeId:k,cliToolId:u,instanceId:H},{state:a,reason:d,content:p,...J!==p?{typedContent:J}:{},...e}),b.onAttempt?.({state:a,reason:d})},N=(0,m.mf)(u,k,B),O=await (0,l.L)(k,N,a);if(null===O||"foreign"===O.verdict)return M("not-sent","foreign-session"),x.warn("send-refused-foreign-session",{worktreeId:k,cliToolId:u,instanceId:H,sessionName:N,sessionPath:O?.sessionPath??null,reason:O?"foreign":"worktree_not_found"}),{ok:!1,stage:"foreign_session",error:O?`tmux session "${N}" belongs to another CommandMate server`:`Worktree '${k}' not found; cannot confirm tmux session "${N}" is this server's`};let P=await (0,n.a3)(k,u,B,{ignoreStructured:b.ignoreStructuredPromptGuard});if(P.waiting)return M("not-sent","prompt-waiting"),x.info("send-refused-prompt-waiting",{worktreeId:k,cliToolId:u,reason:P.reason,blockedBy:P.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,n.br)(k,P.blockedBy,B,E)};if(D&&"copilot"===u){try{await I.sendModelCommand(k,D,B),x.info("copilot-model-command-sent",{model:D})}catch(b){x.error("failed-to-send-model-command:",{error:y(b)});let a=b?.code;if(a===r.a9)return M("not-sent","prompt-waiting"),{ok:!1,stage:"prompt_waiting",error:(0,n.br)(k,void 0,B,E)};return M("not-sent",a===r.$_?"recheck-failed":"model-switch-failed"),{ok:!1,stage:"model",error:y(b)}}await z(k,H)||x.warn("previous-turn-poller-still-running",{worktreeId:k,instanceId:H,waitedMs:5e3})}let Q=new Date;try{await (0,h.o4)(a,k,u,Q,B)}catch(a){x.error("failed-to-save-pending-assistant-response:",{error:y(a)})}let R=null;try{let b=(0,d.getMessages)(a,k,{limit:1,cliToolId:u,instanceId:H,matchResolvedInstance:!0});b.length>0&&"user"===b[0].role&&b[0].content===p&&(R=b[0].id)}catch(a){x.error("failed-to-detect-orphaned-messages:",{error:y(a)})}async function S(){try{let{inputStartedAt:a}=await (0,v.x1)(T,a=>{void 0===c&&(K=!0),b.onInputStart?.(a)},b.inputBoundary,{onTicket:a=>{c=void 0===c?a:Math.max(c,a)},onDispatch:()=>{L=!0}});return{sent:!0,inputStartedAt:a}}catch(b){if(x.error("failed-to-send-message-to:",{error:y(b)}),(0,s.D3)(b)||null!==(0,s.y$)(b))return{error:b,failure:(0,q.Nq)(b)};if((0,v.fi)(b))return{error:b,failure:{state:"not-sent",reason:"relay-reservation-lost"}};let a=(0,q.Nq)(b);return("submit-unconfirmed"===a.reason||"prompt-unreported"===a.reason)&&await A(k,u,B,p)&&(a={state:"indeterminate",reason:"composer-residue"}),{error:b,failure:a}}}async function T(){C?(0,f._J)(I)?await I.sendMessageWithImage(k,p,C,B):await I.sendMessage(k,(0,w.TZ)(p,C),B):await I.sendMessage(k,p,B)}let U=t.wn.has(u)?await (0,v.hC)(N,a=>(c=a.generation,S())).catch(a=>({error:a,failure:(0,q.Nq)(a)})):await S();if(!("sent"in U)){let{error:a,failure:b}=U;return(M(b.state,b.reason),"prompt-waiting"===b.reason)?{ok:!1,stage:"prompt_waiting",error:(0,n.br)(k,void 0,B,E)}:(0,o.wQ)(a)?{ok:!1,stage:"send",error:a.message,code:o.M7}:{ok:!1,stage:"send",error:y(a)}}M("sent","submitted");let V=U.inputStartedAt,W=null!==V&&V.getTime()>Q.getTime()?V:Q,X=(0,d.createMessage)(a,{worktreeId:k,role:"user",content:p,messageType:G,timestamp:W,cliToolId:u,instanceId:B,requestId:b.requestId});try{(0,i.broadcastMessage)("message",{worktreeId:k,message:{...X,cliToolId:u,instanceId:H}})}catch(a){x.warn("user-message-broadcast-failed",{error:y(a)})}if(R)try{if((0,d.deleteMessageById)(a,R)){x.info("cleaned-up-orphaned-user");try{(0,i.broadcastMessage)(j.dz,{worktreeId:k,cliToolId:u,instanceId:H,reason:"orphan_cleanup"})}catch(a){x.warn("orphan-cleanup-broadcast-failed",{error:y(a)})}}}catch(a){x.error("failed-to-clean-up-orphaned-message:",{error:y(a)})}return(0,d.updateLastUserMessage)(a,k,p,W),(0,d.clearInProgressMessageId)(a,k,u,B),x.info("cleared-in-progress-message"),(0,g.startPolling)(k,u,B),{ok:!0,message:X}}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},58707:(a,b,c)=>{c.d(b,{$n:()=>l,a3:()=>m,br:()=>n});var d=c(12693),e=c(99702),f=c(31990),g=c(95595),h=c(34405),i=c(72626),j=c(30008);let k=(0,i.h)("prompt-waiting-guard"),l="PROMPT_WAITING";async function m(a,b,c,e){try{let i=d.CLIToolManager.getInstance().getTool(b);if(!await i.isRunning(a,c))return{waiting:!1};let l=await (0,f.Wh)(a,b,h._,c),m=(0,g.WC)(l,b),n=(0,j._G)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:m.status,reason:m.reason,hasActivePrompt:m.hasActivePrompt},ignoreStructured:e?.ignoreStructured});if(!n.blocksSend)return null!==n.structuredSendBlockSuppressed&&k.info("structured-send-guard-not-applied",{worktreeId:a,cliToolId:b,instanceId:c,suppressed:n.structuredSendBlockSuppressed,promptWaitingSince:n.structured?.at??null}),{waiting:!1};return{waiting:!0,reason:n.blockReason??void 0,blockedBy:n.blockedBy??void 0}}catch(c){return k.warn("prompt-waiting-check-failed",{worktreeId:a,cliToolId:b,error:c instanceof Error?c.message:String(c)}),{waiting:!1}}}function n(a,b,c,d){let f=(0,e.Mo)(c,d),g=`${a} is waiting on a prompt. Sending now would type into the prompt's input line instead of reaching the agent, and would leave that text in place for the next answer. Answer the prompt first: \`commandmate respond ${a} <answer>${f}\`.`;if("structured"!==b)return g;let h=Math.round(j.j0/6e4);return`${g} This dialog was reported by the agent's own hooks and is not visible to the terminal scraper, so if the pane looks idle the record has outlived its dialog: it stops blocking sends ${h} minutes after it was reported, or immediately with \`commandmate send ${a} <message>${f} --ignore-structured-prompt\` (server-wide: ${j.F1}=off).`}},73495:(a,b,c)=>{c.d(b,{Me:()=>h});let d="don['’]t",e=["deny",/^No(?:,|$)/],f={claude:[["allow-once",/^Yes$/],["allow-persistent",/^Yes, and always allow\b/],["mode-change",/^Yes, allow all edits\b/],["mode-change",/^Yes, and switch to\b/],e],codex:[["allow-once",/^Yes$/],["allow-once",/^Yes, proceed\b/],["allow-once",/^Allow(?:\s{2,}|$)/],["allow-persistent",RegExp(`^Yes, and ${d} ask again\\b`)],["allow-persistent",/^Always allow\b/],["mode-change",/^Ask for approval\b/],["mode-change",/^Approve for me\b/],["mode-change",/^Full Access\b/],["deny",/^Cancel\b/],e],antigravity:[["allow-once",/^Yes$/],["allow-once",/^Yes, run command$/],["allow-once",/^Yes, allow creation$/],["allow-persistent",/^Yes, and always allow\b/],e],"command-code":[["allow-once",/^Yes$/],["allow-persistent",RegExp(`^Yes, ${d} ask again\\b`)],["mode-change",/^Yes, allow all edits\b/],e],copilot:[["allow-once",/^Yes$/],["allow-persistent",RegExp(`^Yes, and ${d} ask again\\b`)],["mode-change",/^Manual\b/],["mode-change",/^Allow all\b/],e]},g=Object.values(f).flat();function h(a,b){let c=void 0===b?g:f[b]??null;if(null===c)return{kind:"not-a-permission-dialog"};let d=a.map(a=>(function(a,b){let c=b.trim();for(let[b,d]of a)if(d.test(c))return b;return"unknown"})(c,a.label));if(!d.some(a=>"allow-once"===a||"allow-persistent"===a||"mode-change"===a))return{kind:"not-a-permission-dialog"};let e=a.filter((a,b)=>"allow-once"===d[b]);return 1===e.length?{kind:"allow-once",option:e[0]}:{kind:"unidentified",allowOnceCount:e.length}}Object.keys(f)},83530:(a,b,c)=>{c.d(b,{FH:()=>l,fV:()=>k,iK:()=>i,y4:()=>h});var d=c(73753),e=c(28274),f=c(15194);let g="claude",h="instance_tool_conflict";function i(a,b,c={}){let{instanceId:d,requestedCliTool:g}=c;if(!d)return g?{cliToolId:g,instanceId:g,resolvedBy:"explicit"}:j(a,b,void 0);let h=(0,e.BN)(a,b,d);if(h&&(0,f.hR)(h.cliTool)){let a={cliToolId:h.cliTool,instanceId:d,resolvedBy:"roster"};return g&&g!==h.cliTool&&(a.conflict={instanceId:d,rosterCliTool:h.cliTool,requestedCliTool:g}),a}return g?(0,f.hR)(d)&&g!==d?{cliToolId:d,instanceId:d,resolvedBy:"primary",conflict:{instanceId:d,rosterCliTool:d,requestedCliTool:g,primaryAnchor:!0}}:{cliToolId:g,instanceId:d,resolvedBy:"explicit"}:(0,f.hR)(d)?{cliToolId:d,instanceId:d,resolvedBy:"primary"}:j(a,b,d)}function j(a,b,c){let e=(0,d.getWorktreeById)(a,b),h=e?.cliToolId;return h&&(0,f.hR)(h)?{cliToolId:h,instanceId:c??h,resolvedBy:"worktree-default"}:{cliToolId:g,instanceId:c??g,resolvedBy:"fallback"}}function k(a,b,c={}){let d=i(a,b,c);return d.conflict?{ok:!1,error:h,conflict:d.conflict}:{ok:!0,target:d}}function l(a){return a.primaryAnchor?`Agent instance '${a.instanceId}' is the primary instance of ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or target a ${a.requestedCliTool} instance instead.`:`Agent instance '${a.instanceId}' is registered as ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or update the instance's roster entry.`}},95220:(a,b,c)=>{c.r(b),c.d(b,{accumulateTuiContent:()=>g.IZ,cleanClaudeResponse:()=>f.NN,cleanCopilotResponse:()=>f.LH,cleanGeminiResponse:()=>f.IS,cleanOpenCodeResponse:()=>f.aW,clearPromptHashCache:()=>h.iX,clearTuiAccumulator:()=>g.q1,extractCopilotContentLines:()=>g.o0,extractTuiContentLines:()=>g.K0,findOverlapIndex:()=>g.vQ,getAccumulatedContent:()=>g.Uz,getActivePollers:()=>d.KQ,initTuiAccumulator:()=>g.tb,isDuplicatePrompt:()=>h.gv,isOpenCodeComplete:()=>e.bE,migrateResponsePollerWorktreeIds:()=>d.sR,normalizeCopilotLine:()=>g.IW,normalizePromptForDedup:()=>h.zm,renamePromptHashCacheKey:()=>h.i2,resolveExtractionStartIndex:()=>e.QM,startPolling:()=>d.g8,stopAllPolling:()=>d.fq,stopPolling:()=>d.Et,truncateMessage:()=>f.Sj});var d=c(45146),e=c(60),f=c(82450),g=c(13033),h=c(72457)}};
@@ -1 +1 @@
1
- "use strict";exports.id=4911,exports.ids=[4911],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},5007:(a,b,c)=>{c.d(b,{Sw:()=>g,nE:()=>e,of:()=>f});var d=c(10641);async function e(a){try{return{ok:!0,body:await a.json()}}catch{return{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}}}async function f(a){let b=await e(a);if(!b.ok)return b;let c=b.body;return"object"!=typeof c||null===c||Array.isArray(c)?{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}:{ok:!0,body:c}}async function g(a){let b;try{b=await a.json()}catch{return{ok:!0,body:{}}}return"object"!=typeof b||null===b||Array.isArray(b)?{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}:{ok:!0,body:b}}},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>u,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>w,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>t,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(55741),g=c(20416),h=c(10406),i=c(87550),j=c.n(i),k=c(55511),l=c.n(k),m=c(29021),n=c.n(m),o=c(33873),p=c.n(o),q=c(21820),r=c(7956);let s=(0,c(72626).h)("db-migration-path");function t(a,b){try{if(!n().existsSync(a))return null;let c=n().realpathSync(a);if((0,r.fW)(c))return s.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return s.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function u(){let a=[];a.push(p().join(process.cwd(),"data","db.sqlite")),a.push(p().join(process.cwd(),"data","cm.db")),a.push(p().join((0,q.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=p().resolve(b);(0,r.fW)(c)?s.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{s.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function v(a,b){if(function(a){try{return n().statSync(`${a}-wal`).size>0}catch{return!1}}(a)){let c=`${b}.${l().randomBytes(4).toString("hex")}.partial`;try{n().closeSync(n().openSync(c,"wx",384));let d=new(j())(a,{readonly:!0,fileMustExist:!0});try{d.prepare("VACUUM INTO ?").run(c)}finally{d.close()}n().renameSync(c,b)}catch(a){throw n().rmSync(c,{force:!0}),a}}else n().copyFileSync(a,b)}function w(a){let b=p().resolve(a);if((0,r.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(n().existsSync(a)){let b=t(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of u()){let c=t(a,"legacy path");if(!c)continue;let d=`${c}.bak`;v(c,d),n().chmodSync(d,384);let e=p().dirname(b);return n().existsSync(e)||n().mkdirSync(e,{recursive:!0,mode:448}),v(c,b),s.info(`[Migration] Database migrated from ${c} to ${b}`),s.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},79498:(a,b,c)=>{c.d(b,{Ll:()=>e,Z:()=>d,bu:()=>f});let d=50,e=2e3,f=4e3},95736:(a,b,c)=>{a.exports=c(44870)}};
1
+ "use strict";exports.id=4911,exports.ids=[4911],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},5007:(a,b,c)=>{c.d(b,{Sw:()=>g,nE:()=>e,of:()=>f});var d=c(10641);async function e(a){try{return{ok:!0,body:await a.json()}}catch{return{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}}}async function f(a){let b=await e(a);if(!b.ok)return b;let c=b.body;return"object"!=typeof c||null===c||Array.isArray(c)?{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}:{ok:!0,body:c}}async function g(a){let b;try{b=await a.json()}catch{return{ok:!0,body:{}}}return"object"!=typeof b||null===b||Array.isArray(b)?{ok:!1,response:d.NextResponse.json({error:"Invalid request body"},{status:400})}:{ok:!0,body:b}}},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,TEST_DB_ROOT_ENV:()=>e.TEST_DB_ROOT_ENV,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,assertTestDatabasePathIsolated:()=>e.assertTestDatabasePathIsolated,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>u,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isInsideVitestWorker:()=>e.isInsideVitestWorker,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>w,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>t,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(33806),g=c(20416),h=c(10406),i=c(87550),j=c.n(i),k=c(55511),l=c.n(k),m=c(29021),n=c.n(m),o=c(33873),p=c.n(o),q=c(21820),r=c(7956);let s=(0,c(72626).h)("db-migration-path");function t(a,b){try{if(!n().existsSync(a))return null;let c=n().realpathSync(a);if((0,r.fW)(c))return s.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return s.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function u(){let a=[];a.push(p().join(process.cwd(),"data","db.sqlite")),a.push(p().join(process.cwd(),"data","cm.db")),a.push(p().join((0,q.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=p().resolve(b);(0,r.fW)(c)?s.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{s.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function v(a,b){if(function(a){try{return n().statSync(`${a}-wal`).size>0}catch{return!1}}(a)){let c=`${b}.${l().randomBytes(4).toString("hex")}.partial`;try{n().closeSync(n().openSync(c,"wx",384));let d=new(j())(a,{readonly:!0,fileMustExist:!0});try{d.prepare("VACUUM INTO ?").run(c)}finally{d.close()}n().renameSync(c,b)}catch(a){throw n().rmSync(c,{force:!0}),a}}else n().copyFileSync(a,b)}function w(a){let b=p().resolve(a);if((0,r.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(n().existsSync(a)){let b=t(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of u()){let c=t(a,"legacy path");if(!c)continue;let d=`${c}.bak`;v(c,d),n().chmodSync(d,384);let e=p().dirname(b);return n().existsSync(e)||n().mkdirSync(e,{recursive:!0,mode:448}),v(c,b),s.info(`[Migration] Database migrated from ${c} to ${b}`),s.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},79498:(a,b,c)=>{c.d(b,{Ll:()=>e,Z:()=>d,bu:()=>f});let d=50,e=2e3,f=4e3},95736:(a,b,c)=>{a.exports=c(44870)}};
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=5209,exports.ids=[5209],exports.modules={998:(a,b,c)=>{c.d(b,{BF:()=>h,EH:()=>k,_R:()=>j});var d=c(11456),e=c(35524);let f={"session-killed":{state:"disable",poller:"stop"},"instance-removed":{state:"delete",poller:"stop"},"worktree-deleted":{state:"delete",poller:"stop"},"orphan-swept":{state:"delete",poller:"stop"},"consecutive-errors":{state:"disable",stopReason:"consecutive_errors",poller:"stop"},"server-shutdown":{state:"none",poller:"stop"}},g={"session-killed":"session-killed","instance-removed":"instance-removed","worktree-deleted":"worktree-deleted","orphan-swept":"orphan-swept","consecutive-errors":"consecutive-errors","server-shutdown":"shutdown"};function h(a,b){"stop"===f[a].poller&&(0,d.z)(g[a],()=>(function(a){switch(a.scope){case"instance":(0,e._i)((0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId));return;case"worktree":(0,e._C)(a.worktreeId);return;case"key":(0,e._i)(a.compositeKey);return;case"all":(0,e.BS)();return}})(b))}function i(a,b){let c=(0,e.pL)(a);c&&(0,e.XK)((0,e.Ue)(a),c,b,(0,e.GE)(a)??void 0)}function j(a,b){let c=f[a];if("none"!==c.state)switch(b.scope){case"instance":"disable"===c.state?(0,e.XK)(b.worktreeId,b.cliToolId,c.stopReason,b.instanceId):(0,e.DR)((0,e.v7)(b.worktreeId,b.cliToolId,b.instanceId));return;case"worktree":"disable"===c.state?(0,e.kC)(b.worktreeId).forEach(a=>i(a,c.stopReason)):(0,e.LP)(b.worktreeId);return;case"key":"disable"===c.state?i(b.compositeKey,c.stopReason):(0,e.DR)(b.compositeKey);return;case"all":(0,e.hN)().forEach(a=>"disable"===c.state?i(a,c.stopReason):(0,e.DR)(a));return}}function k(a,b){h(a,b),j(a,b)}},23197:(a,b,c)=>{c.d(b,{H:()=>d});let d="__global__"},65209:(a,b,c)=>{c.d(b,{Nz:()=>v,l7:()=>z,vr:()=>x});var d=c(95220),e=c(998),f=c(56793),g=c(85775),h=c(93997),i=c(15194),j=c(23197),k=c(77093),l=c(72626),m=c(8360),n=c(79892),o=c(82325),p=c(73753),q=c(31347),r=c(72389);let s=(0,l.h)("session-cleanup");function t(a,b,c){let d=c;if(void 0===d)try{d=m.CLIToolManager.getInstance().getTool(b).getSessionName(a)}catch{d=void 0}(0,r.E8)({version:r.lf,at:Date.now(),api:"session-cleanup",origin:"server",worktreeId:a,instanceId:b,sessionNames:d?[d]:[],callerCwd:null,callerSession:null})}async function u(a,b){let c={worktreeId:a,sessionsKilled:[],sessionErrors:[],pollersStopped:[],pollerErrors:[]};for(let e of((0,h.pc)(),i.XH)){try{await b(a,e)&&(c.sessionsKilled.push(e),s.info("session:killed",{worktreeId:a,cliToolId:e}),t(a,e))}catch(d){let b=`${e}: ${(0,k.u1)(d)}`;c.sessionErrors.push(b),s.warn("session:kill-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}try{(0,d.stopPolling)(a,e),c.pollersStopped.push(`response-poller:${e}`)}catch(d){let b=`response-poller:${e}: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("response-poller:stop-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}}try{(0,e.BF)("worktree-deleted",{scope:"worktree",worktreeId:a}),c.pollersStopped.push("auto-yes-poller")}catch(d){let b=`auto-yes-poller: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("auto-yes-poller:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,e._R)("worktree-deleted",{scope:"worktree",worktreeId:a}),c.pollersStopped.push("auto-yes-state")}catch(d){let b=`auto-yes-state: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("auto-yes-state:delete-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,f.Yg)(a),c.pollersStopped.push("schedule-manager")}catch(d){let b=`schedule-manager: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("schedule-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,g.Tm)(a),c.pollersStopped.push("timer-manager")}catch(d){let b=`timer-manager: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("timer-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}return c}async function v(a,b){let c=await Promise.allSettled(a.map(a=>u(a,b))),d=[],e=[];for(let b=0;b<c.length;b++){let f=c[b],g=a[b];if("fulfilled"===f.status){let a=f.value;for(let b of(d.push(a),a.sessionErrors))e.push(`Session kill error (${g}): ${b}`);for(let b of a.pollerErrors)e.push(`Poller stop error (${g}): ${b}`)}else e.push(`Cleanup failed (${g}): ${(0,k.u1)(f.reason)}`)}return{results:d,warnings:e}}async function w(a,b,c){try{let e=m.CLIToolManager.getInstance().getTool(b);if(!await e.isRunning(a))return!1;let f=e.getSessionName(a),g=await (0,q.s_)(f,c);if("owned"!==g.verdict)return!1;let h=`${a}:${b}`;return(0,d.clearPromptHashCache)(h),(0,n.fY)(f)}catch{return!1}}function x(a){return async(b,c)=>{let d=a.get(b);return void 0!==d&&w(b,c,d)}}async function y(){let a=0,b=m.CLIToolManager.getInstance();for(let c of i.XH)try{let d=b.getTool(c).getSessionName(j.H);await (0,n.N)(d)&&await (0,n.fY)(d)&&(a++,s.info("global-session:killed",{cliToolId:c,sessionName:d}),t(j.H,c,d))}catch(a){s.warn("global-session:kill-failed",{cliToolId:c,error:(0,k.u1)(a)})}return a}async function z(a,b){let c=new Map((0,p.Sj)(a).map(a=>[a.id,a.path])),d=(0,o.L0)(a,b);try{await y()}catch(a){s.warn("sync:global-cleanup-failed",{error:(0,k.u1)(a)})}let e=[];if(d.deletedIds.length>0)try{let a=await v(d.deletedIds,x(c));a.warnings.length>0&&(s.warn("sync:cleanup-warnings",{warnings:a.warnings}),e=[`${a.warnings.length} session cleanup warning(s) occurred`])}catch(a){s.error("sync:cleanup-failed",{error:(0,k.u1)(a)}),e=["Session cleanup encountered an error"]}return{syncResult:d,cleanupWarnings:e}}},72389:(a,b,c)=>{c.d(b,{E8:()=>n,_L:()=>g,lf:()=>h,pz:()=>p});var d=c(29021),e=c(21820),f=c(33873);let g="session-kills",h=1,i=/^(\d{4}-\d{2}-\d{2})\.jsonl$/,j=["kill-session","session-cleanup"],k=["cli","browser","http","server"];function l(a=process.env){let b=a.CM_SESSION_KILL_LEDGER_ROOT;return b&&""!==b.trim()?b:(0,f.join)((0,e.homedir)(),".commandmate",g)}function m(a){return new Date(a).toISOString().slice(0,10)}function n(a,b=l()){try{return(0,d.mkdirSync)(b,{recursive:!0,mode:448}),(0,d.appendFileSync)((0,f.join)(b,`${m(a.at)}.jsonl`),`${JSON.stringify(a)}
2
- `,{encoding:"utf8",mode:384}),!function(a,b){let c,e=m(b-2592e6);try{c=(0,d.readdirSync)(a)}catch{return}for(let b of c){let c=i.exec(b)?.[1];if(void 0!==c&&!(c>=e))try{(0,d.rmSync)((0,f.join)(a,b),{force:!0})}catch{}}}(b,a.at),!0}catch{return!1}}function o(a){return null===a||"string"==typeof a}function p(a,b,c=l()){if(!(a<=b))return[];a=Math.max(a,b-2592e6-864e5);let e=[];for(let i=Date.parse(`${m(a)}T00:00:00.000Z`);i<=b;i+=864e5){let l;try{l=(0,d.readFileSync)((0,f.join)(c,`${m(i)}.jsonl`),"utf8")}catch{continue}for(let c of l.split("\n")){let d;if(""!==c.trim()){var g;try{d=JSON.parse(c)}catch{continue}"object"==typeof(g=d)&&null!==g&&g.version===h&&"number"==typeof g.at&&"string"==typeof g.api&&j.includes(g.api)&&"string"==typeof g.origin&&k.includes(g.origin)&&"string"==typeof g.worktreeId&&""!==g.worktreeId&&o(g.instanceId)&&Array.isArray(g.sessionNames)&&g.sessionNames.every(a=>"string"==typeof a)&&o(g.callerCwd)&&o(g.callerSession)&&d.at>=a&&d.at<=b&&e.push(d)}}}return e}},82325:(a,b,c)=>{c.d(b,{Hz:()=>o,L0:()=>r,Mg:()=>s,YM:()=>p,Yp:()=>q});var d=c(79646),e=c(28354),f=c(29021),g=c.n(f),h=c(33873),i=c.n(h),j=c(23718),k=c(56791),l=c(72626),m=c(64185);let n=(0,l.h)("worktrees");function o(){let a=process.env.WORKTREE_REPOS;return a&&a.trim()?a.split(",").map(a=>a.trim()).filter(a=>a.length>0):[]}async function p(a){let b=(0,e.promisify)(d.exec);if(function(a){if(!a)return!1;try{return g().lstatSync(a),!1}catch(b){let a=b.code;return"ENOENT"===a||"ENOTDIR"===a}}(a))return n.warn("repository:scan-skipped-missing-dir",{repoPath:a}),[];try{let{stdout:c}=await b("git worktree list",{cwd:a}),d=function(a){if(!a||""===a.trim())return[];let b=a.trim().split("\n"),c=[];for(let a of b){let b=a.trim();if(!b)continue;let d=b.match(/^(.+?)\s+([a-z0-9]+)\s+(?:\[(.+?)\]|\(detached HEAD\))/);if(d){let[,a,b,e]=d;c.push({path:a.trim(),branch:e||`detached-${b}`,commit:b})}}return c}(c),e=i().resolve(a),f=i().basename(e);return(0,m.oZ)(e),d.map(a=>{let b=i().resolve(a.path);return{id:(0,j.ko)(b),name:a.branch,branch:a.branch,path:b,repositoryPath:e,repositoryName:f}}).filter(a=>["/etc","/root","/sys","/proc","/dev","/boot","/bin","/sbin","/usr/bin","/usr/sbin"].some(b=>a.path.startsWith(b))?(n.warn("worktree:unsafe-path-skipped",{path:a.path}),!1):!(a.path.includes("\0")||a.path.includes(".."))||(n.warn("worktree:malicious-path-skipped",{path:a.path}),!1))}catch(c){let a=c instanceof Error?c.message:String(c),b=c.code;if(a?.includes("not a git repository")||128===b)return[];throw c}}async function q(a){let b=await Promise.allSettled(a.map(async a=>{n.info("repository:scan-start",{repoPath:a});let b=await p(a);return n.info("repository:scan-complete",{repoPath:a,worktreeCount:b.length}),b})),c=[];for(let d=0;d<b.length;d++){let e=b[d];"fulfilled"===e.status?c.push(...e.value):n.error("repository:scan-failed",{repoPath:a[d],error:e.reason instanceof Error?e.reason.message:String(e.reason)})}return c}function r(a,b){if(0===b.length)return{deletedIds:[],upsertedCount:0};let c=[],d=0,e=new Map;for(let a of b){let b=a.repositoryPath||"";e.has(b)||e.set(b,[]),e.get(b).push(a)}let f=new Set([...(0,k.getAllWorktreeIds)(a),...(0,k.getAliasedWorktreeIds)(a)]),g=new Map((0,k.getAllWorktreePathIds)(a).map(a=>[i().resolve(a.path),a.id])),h=new Map,l=new Map;for(let[a,b]of g)h.set(a,new Set([b])),l.set(b,a);for(let b of(0,k.getAllWorktreeAliases)(a)){let a=l.get(b.worktreeId);a&&h.get(a)?.add(b.oldId)}let m=new Set(b.map(a=>i().resolve(a.path)));for(let[b,o]of e){if(!b)continue;let e=(0,k.getWorktreesByRepository)(a,b).filter(a=>!m.has(i().resolve(a.path))).map(a=>a.id);if(e.length>0){let b=(0,k.deleteWorktreesByIds)(a,e);for(let a of(c.push(...e),e)){f.delete(a);let b=l.get(a);void 0!==b&&(g.delete(b),h.delete(b))}n.info("worktree:cleanup",{deletedCount:b.deletedCount})}for(let b of o){let c=i().resolve(b.path),e=g.get(c),m=b.id,n=e??(m&&!f.has(m)?m:function(a,b,c){if(!c||0===c.size)return(0,j.ko)(a,b);let d=new Set(b);for(let a of c)d.delete(a);return(0,j.ko)(a,d)}(c,f,h.get(c)));f.add(n),g.set(c,n),l.set(n,c),(0,k.upsertWorktree)(a,{...b,id:n,name:b.branch??b.name}),d++}}return{deletedIds:c,upsertedCount:d}}function s(a,b){let c=new Set(b.map(a=>a.repositoryPath).filter(a=>!!a)),d=[];for(let b of(0,k.getRepositories)(a)){let e=b.path;if(!e||c.has(e)||function(a){if(!a)return!1;try{return g().existsSync(a)&&g().existsSync(i().join(a,".git"))}catch{return!0}}(e))continue;let f=(0,k.getWorktreesByRepository)(a,e).map(a=>a.id);if(0===f.length)continue;let h=(0,k.deleteWorktreesByIds)(a,f);d.push(...f),n.info("worktree:stale-repo-pruned",{repoPath:e,deletedCount:h.deletedCount})}return d}},85775:(a,b,c)=>{c.d(b,{Tm:()=>p,x4:()=>n,xJ:()=>o});var d=c(34129),e=c(8360),f=c(88807),g=c(72626),h=c(87374),i=c(39687),j=c(36925);let k=(0,g.h)("timer-manager");function l(){return(0,j.v)("__timerManagerState",()=>({timers:new Map,timerWorktrees:new Map,initialized:!1}))}async function m(a){let b=l(),c=(0,f.getDbInstance)();try{let b=(0,d.kx)(c,a);if(!b||"pending"!==b.status)return;let f=e.CLIToolManager.getInstance().getTool(b.cliToolId),g=b.instanceId,j=await f.isRunning(b.worktreeId,g),l=(0,d.kx)(c,a);if(!l||"pending"!==l.status)return;if(!j){k.warn("timer:no-session",{timerId:a,worktreeId:b.worktreeId,instanceId:g}),(0,d.j2)(c,a,h.HR.NO_SESSION);return}(0,d.j2)(c,a,"sending");let m=await (0,i.d)(c,{worktreeId:b.worktreeId,content:b.message,cliToolId:b.cliToolId,instanceId:g});if(!m.ok){let b=`[${m.stage}] ${m.error}`;(0,d.j2)(c,a,"failed",void 0,b),k.error("timer:send-failed",{timerId:a,stage:m.stage,error:m.error});return}(0,d.j2)(c,a,"sent",Date.now()),k.info("timer:sent",{timerId:a,worktreeId:b.worktreeId})}catch(e){let b=e instanceof Error?e.message:String(e);try{(0,d.j2)(c,a,"failed",void 0,b)}catch{}k.error("timer:send-failed",{timerId:a,error:b})}finally{b.timers.delete(a),b.timerWorktrees.delete(a)}}function n(a,b,c){let d=l(),e=setTimeout(()=>{m(a)},c);d.timers.set(a,e),d.timerWorktrees.set(a,b)}function o(a){let b=l(),c=b.timers.get(a);c&&(clearTimeout(c),b.timers.delete(a),b.timerWorktrees.delete(a));let e=(0,f.getDbInstance)();(0,d.Ud)(e,a)}function p(a){let b=l(),c=(0,f.getDbInstance)();for(let[c,d]of b.timerWorktrees)if(d===a){let a=b.timers.get(c);a&&clearTimeout(a),b.timers.delete(c),b.timerWorktrees.delete(c)}(0,d.$$)(c,a)}}};
1
+ "use strict";exports.id=5209,exports.ids=[5209],exports.modules={998:(a,b,c)=>{c.d(b,{BF:()=>h,EH:()=>k,_R:()=>j});var d=c(11456),e=c(35524);let f={"session-killed":{state:"disable",poller:"stop"},"instance-removed":{state:"delete",poller:"stop"},"worktree-deleted":{state:"delete",poller:"stop"},"orphan-swept":{state:"delete",poller:"stop"},"consecutive-errors":{state:"disable",stopReason:"consecutive_errors",poller:"stop"},"server-shutdown":{state:"none",poller:"stop"}},g={"session-killed":"session-killed","instance-removed":"instance-removed","worktree-deleted":"worktree-deleted","orphan-swept":"orphan-swept","consecutive-errors":"consecutive-errors","server-shutdown":"shutdown"};function h(a,b){"stop"===f[a].poller&&(0,d.z)(g[a],()=>(function(a){switch(a.scope){case"instance":(0,e._i)((0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId));return;case"worktree":(0,e._C)(a.worktreeId);return;case"key":(0,e._i)(a.compositeKey);return;case"all":(0,e.BS)();return}})(b))}function i(a,b){let c=(0,e.pL)(a);c&&(0,e.XK)((0,e.Ue)(a),c,b,(0,e.GE)(a)??void 0)}function j(a,b){let c=f[a];if("none"!==c.state)switch(b.scope){case"instance":"disable"===c.state?(0,e.XK)(b.worktreeId,b.cliToolId,c.stopReason,b.instanceId):(0,e.DR)((0,e.v7)(b.worktreeId,b.cliToolId,b.instanceId));return;case"worktree":"disable"===c.state?(0,e.kC)(b.worktreeId).forEach(a=>i(a,c.stopReason)):(0,e.LP)(b.worktreeId);return;case"key":"disable"===c.state?i(b.compositeKey,c.stopReason):(0,e.DR)(b.compositeKey);return;case"all":(0,e.hN)().forEach(a=>"disable"===c.state?i(a,c.stopReason):(0,e.DR)(a));return}}function k(a,b){h(a,b),j(a,b)}},23197:(a,b,c)=>{c.d(b,{H:()=>d});let d="__global__"},65209:(a,b,c)=>{c.d(b,{Nz:()=>v,l7:()=>z,vr:()=>x});var d=c(95220),e=c(998),f=c(56793),g=c(85775),h=c(93997),i=c(15194),j=c(23197),k=c(77093),l=c(72626),m=c(12693),n=c(79892),o=c(82325),p=c(73753),q=c(31347),r=c(72389);let s=(0,l.h)("session-cleanup");function t(a,b,c){let d=c;if(void 0===d)try{d=m.CLIToolManager.getInstance().getTool(b).getSessionName(a)}catch{d=void 0}(0,r.E8)({version:r.lf,at:Date.now(),api:"session-cleanup",origin:"server",worktreeId:a,instanceId:b,sessionNames:d?[d]:[],callerCwd:null,callerSession:null})}async function u(a,b){let c={worktreeId:a,sessionsKilled:[],sessionErrors:[],pollersStopped:[],pollerErrors:[]};for(let e of((0,h.pc)(),i.XH)){try{await b(a,e)&&(c.sessionsKilled.push(e),s.info("session:killed",{worktreeId:a,cliToolId:e}),t(a,e))}catch(d){let b=`${e}: ${(0,k.u1)(d)}`;c.sessionErrors.push(b),s.warn("session:kill-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}try{(0,d.stopPolling)(a,e),c.pollersStopped.push(`response-poller:${e}`)}catch(d){let b=`response-poller:${e}: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("response-poller:stop-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}}try{(0,e.BF)("worktree-deleted",{scope:"worktree",worktreeId:a}),c.pollersStopped.push("auto-yes-poller")}catch(d){let b=`auto-yes-poller: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("auto-yes-poller:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,e._R)("worktree-deleted",{scope:"worktree",worktreeId:a}),c.pollersStopped.push("auto-yes-state")}catch(d){let b=`auto-yes-state: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("auto-yes-state:delete-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,f.Yg)(a),c.pollersStopped.push("schedule-manager")}catch(d){let b=`schedule-manager: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("schedule-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,g.Tm)(a),c.pollersStopped.push("timer-manager")}catch(d){let b=`timer-manager: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),s.warn("timer-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}return c}async function v(a,b){let c=await Promise.allSettled(a.map(a=>u(a,b))),d=[],e=[];for(let b=0;b<c.length;b++){let f=c[b],g=a[b];if("fulfilled"===f.status){let a=f.value;for(let b of(d.push(a),a.sessionErrors))e.push(`Session kill error (${g}): ${b}`);for(let b of a.pollerErrors)e.push(`Poller stop error (${g}): ${b}`)}else e.push(`Cleanup failed (${g}): ${(0,k.u1)(f.reason)}`)}return{results:d,warnings:e}}async function w(a,b,c){try{let e=m.CLIToolManager.getInstance().getTool(b);if(!await e.isRunning(a))return!1;let f=e.getSessionName(a),g=await (0,q.s_)(f,c);if("owned"!==g.verdict)return!1;let h=`${a}:${b}`;return(0,d.clearPromptHashCache)(h),(0,n.fY)(f)}catch{return!1}}function x(a){return async(b,c)=>{let d=a.get(b);return void 0!==d&&w(b,c,d)}}async function y(){let a=0,b=m.CLIToolManager.getInstance();for(let c of i.XH)try{let d=b.getTool(c).getSessionName(j.H);await (0,n.N)(d)&&await (0,n.fY)(d)&&(a++,s.info("global-session:killed",{cliToolId:c,sessionName:d}),t(j.H,c,d))}catch(a){s.warn("global-session:kill-failed",{cliToolId:c,error:(0,k.u1)(a)})}return a}async function z(a,b){let c=new Map((0,p.Sj)(a).map(a=>[a.id,a.path])),d=(0,o.L0)(a,b);try{await y()}catch(a){s.warn("sync:global-cleanup-failed",{error:(0,k.u1)(a)})}let e=[];if(d.deletedIds.length>0)try{let a=await v(d.deletedIds,x(c));a.warnings.length>0&&(s.warn("sync:cleanup-warnings",{warnings:a.warnings}),e=[`${a.warnings.length} session cleanup warning(s) occurred`])}catch(a){s.error("sync:cleanup-failed",{error:(0,k.u1)(a)}),e=["Session cleanup encountered an error"]}return{syncResult:d,cleanupWarnings:e}}},72389:(a,b,c)=>{c.d(b,{E8:()=>n,_L:()=>g,lf:()=>h,pz:()=>p});var d=c(29021),e=c(21820),f=c(33873);let g="session-kills",h=1,i=/^(\d{4}-\d{2}-\d{2})\.jsonl$/,j=["kill-session","session-cleanup"],k=["cli","browser","http","server"];function l(a=process.env){let b=a.CM_SESSION_KILL_LEDGER_ROOT;return b&&""!==b.trim()?b:(0,f.join)((0,e.homedir)(),".commandmate",g)}function m(a){return new Date(a).toISOString().slice(0,10)}function n(a,b=l()){try{return(0,d.mkdirSync)(b,{recursive:!0,mode:448}),(0,d.appendFileSync)((0,f.join)(b,`${m(a.at)}.jsonl`),`${JSON.stringify(a)}
2
+ `,{encoding:"utf8",mode:384}),!function(a,b){let c,e=m(b-2592e6);try{c=(0,d.readdirSync)(a)}catch{return}for(let b of c){let c=i.exec(b)?.[1];if(void 0!==c&&!(c>=e))try{(0,d.rmSync)((0,f.join)(a,b),{force:!0})}catch{}}}(b,a.at),!0}catch{return!1}}function o(a){return null===a||"string"==typeof a}function p(a,b,c=l()){if(!(a<=b))return[];a=Math.max(a,b-2592e6-864e5);let e=[];for(let i=Date.parse(`${m(a)}T00:00:00.000Z`);i<=b;i+=864e5){let l;try{l=(0,d.readFileSync)((0,f.join)(c,`${m(i)}.jsonl`),"utf8")}catch{continue}for(let c of l.split("\n")){let d;if(""!==c.trim()){var g;try{d=JSON.parse(c)}catch{continue}"object"==typeof(g=d)&&null!==g&&g.version===h&&"number"==typeof g.at&&"string"==typeof g.api&&j.includes(g.api)&&"string"==typeof g.origin&&k.includes(g.origin)&&"string"==typeof g.worktreeId&&""!==g.worktreeId&&o(g.instanceId)&&Array.isArray(g.sessionNames)&&g.sessionNames.every(a=>"string"==typeof a)&&o(g.callerCwd)&&o(g.callerSession)&&d.at>=a&&d.at<=b&&e.push(d)}}}return e}},82325:(a,b,c)=>{c.d(b,{Hz:()=>o,L0:()=>r,Mg:()=>s,YM:()=>p,Yp:()=>q});var d=c(79646),e=c(28354),f=c(29021),g=c.n(f),h=c(33873),i=c.n(h),j=c(23718),k=c(56791),l=c(72626),m=c(64185);let n=(0,l.h)("worktrees");function o(){let a=process.env.WORKTREE_REPOS;return a&&a.trim()?a.split(",").map(a=>a.trim()).filter(a=>a.length>0):[]}async function p(a){let b=(0,e.promisify)(d.exec);if(function(a){if(!a)return!1;try{return g().lstatSync(a),!1}catch(b){let a=b.code;return"ENOENT"===a||"ENOTDIR"===a}}(a))return n.warn("repository:scan-skipped-missing-dir",{repoPath:a}),[];try{let{stdout:c}=await b("git worktree list",{cwd:a}),d=function(a){if(!a||""===a.trim())return[];let b=a.trim().split("\n"),c=[];for(let a of b){let b=a.trim();if(!b)continue;let d=b.match(/^(.+?)\s+([a-z0-9]+)\s+(?:\[(.+?)\]|\(detached HEAD\))/);if(d){let[,a,b,e]=d;c.push({path:a.trim(),branch:e||`detached-${b}`,commit:b})}}return c}(c),e=i().resolve(a),f=i().basename(e);return(0,m.oZ)(e),d.map(a=>{let b=i().resolve(a.path);return{id:(0,j.ko)(b),name:a.branch,branch:a.branch,path:b,repositoryPath:e,repositoryName:f}}).filter(a=>["/etc","/root","/sys","/proc","/dev","/boot","/bin","/sbin","/usr/bin","/usr/sbin"].some(b=>a.path.startsWith(b))?(n.warn("worktree:unsafe-path-skipped",{path:a.path}),!1):!(a.path.includes("\0")||a.path.includes(".."))||(n.warn("worktree:malicious-path-skipped",{path:a.path}),!1))}catch(c){let a=c instanceof Error?c.message:String(c),b=c.code;if(a?.includes("not a git repository")||128===b)return[];throw c}}async function q(a){let b=await Promise.allSettled(a.map(async a=>{n.info("repository:scan-start",{repoPath:a});let b=await p(a);return n.info("repository:scan-complete",{repoPath:a,worktreeCount:b.length}),b})),c=[];for(let d=0;d<b.length;d++){let e=b[d];"fulfilled"===e.status?c.push(...e.value):n.error("repository:scan-failed",{repoPath:a[d],error:e.reason instanceof Error?e.reason.message:String(e.reason)})}return c}function r(a,b){if(0===b.length)return{deletedIds:[],upsertedCount:0};let c=[],d=0,e=new Map;for(let a of b){let b=a.repositoryPath||"";e.has(b)||e.set(b,[]),e.get(b).push(a)}let f=new Set([...(0,k.getAllWorktreeIds)(a),...(0,k.getAliasedWorktreeIds)(a)]),g=new Map((0,k.getAllWorktreePathIds)(a).map(a=>[i().resolve(a.path),a.id])),h=new Map,l=new Map;for(let[a,b]of g)h.set(a,new Set([b])),l.set(b,a);for(let b of(0,k.getAllWorktreeAliases)(a)){let a=l.get(b.worktreeId);a&&h.get(a)?.add(b.oldId)}let m=new Set(b.map(a=>i().resolve(a.path)));for(let[b,o]of e){if(!b)continue;let e=(0,k.getWorktreesByRepository)(a,b).filter(a=>!m.has(i().resolve(a.path))).map(a=>a.id);if(e.length>0){let b=(0,k.deleteWorktreesByIds)(a,e);for(let a of(c.push(...e),e)){f.delete(a);let b=l.get(a);void 0!==b&&(g.delete(b),h.delete(b))}n.info("worktree:cleanup",{deletedCount:b.deletedCount})}for(let b of o){let c=i().resolve(b.path),e=g.get(c),m=b.id,n=e??(m&&!f.has(m)?m:function(a,b,c){if(!c||0===c.size)return(0,j.ko)(a,b);let d=new Set(b);for(let a of c)d.delete(a);return(0,j.ko)(a,d)}(c,f,h.get(c)));f.add(n),g.set(c,n),l.set(n,c),(0,k.upsertWorktree)(a,{...b,id:n,name:b.branch??b.name}),d++}}return{deletedIds:c,upsertedCount:d}}function s(a,b){let c=new Set(b.map(a=>a.repositoryPath).filter(a=>!!a)),d=[];for(let b of(0,k.getRepositories)(a)){let e=b.path;if(!e||c.has(e)||function(a){if(!a)return!1;try{return g().existsSync(a)&&g().existsSync(i().join(a,".git"))}catch{return!0}}(e))continue;let f=(0,k.getWorktreesByRepository)(a,e).map(a=>a.id);if(0===f.length)continue;let h=(0,k.deleteWorktreesByIds)(a,f);d.push(...f),n.info("worktree:stale-repo-pruned",{repoPath:e,deletedCount:h.deletedCount})}return d}},85775:(a,b,c)=>{c.d(b,{Tm:()=>p,x4:()=>n,xJ:()=>o});var d=c(34129),e=c(12693),f=c(88807),g=c(72626),h=c(87374),i=c(39687),j=c(36925);let k=(0,g.h)("timer-manager");function l(){return(0,j.v)("__timerManagerState",()=>({timers:new Map,timerWorktrees:new Map,initialized:!1}))}async function m(a){let b=l(),c=(0,f.getDbInstance)();try{let b=(0,d.kx)(c,a);if(!b||"pending"!==b.status)return;let f=e.CLIToolManager.getInstance().getTool(b.cliToolId),g=b.instanceId,j=await f.isRunning(b.worktreeId,g),l=(0,d.kx)(c,a);if(!l||"pending"!==l.status)return;if(!j){k.warn("timer:no-session",{timerId:a,worktreeId:b.worktreeId,instanceId:g}),(0,d.j2)(c,a,h.HR.NO_SESSION);return}(0,d.j2)(c,a,"sending");let m=await (0,i.d)(c,{worktreeId:b.worktreeId,content:b.message,cliToolId:b.cliToolId,instanceId:g});if(!m.ok){let b=`[${m.stage}] ${m.error}`;(0,d.j2)(c,a,"failed",void 0,b),k.error("timer:send-failed",{timerId:a,stage:m.stage,error:m.error});return}(0,d.j2)(c,a,"sent",Date.now()),k.info("timer:sent",{timerId:a,worktreeId:b.worktreeId})}catch(e){let b=e instanceof Error?e.message:String(e);try{(0,d.j2)(c,a,"failed",void 0,b)}catch{}k.error("timer:send-failed",{timerId:a,error:b})}finally{b.timers.delete(a),b.timerWorktrees.delete(a)}}function n(a,b,c){let d=l(),e=setTimeout(()=>{m(a)},c);d.timers.set(a,e),d.timerWorktrees.set(a,b)}function o(a){let b=l(),c=b.timers.get(a);c&&(clearTimeout(c),b.timers.delete(a),b.timerWorktrees.delete(a));let e=(0,f.getDbInstance)();(0,d.Ud)(e,a)}function p(a){let b=l(),c=(0,f.getDbInstance)();for(let[c,d]of b.timerWorktrees)if(d===a){let a=b.timers.get(c);a&&clearTimeout(a),b.timers.delete(c),b.timerWorktrees.delete(c)}(0,d.$$)(c,a)}}};