commandmate 0.26.0 → 0.27.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 (838) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +431 -403
  3. package/.next/app-path-routes-manifest.json +26 -22
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +9 -9
  6. package/.next/react-loadable-manifest.json +6 -6
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +24 -0
  9. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update-check/route.js +1 -1
  12. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  14. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  15. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  17. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  18. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/assistant/messages/route.js +1 -1
  20. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  21. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/assistant/session/route.js +1 -1
  23. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  24. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/assistant/start/route.js +1 -1
  26. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  27. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/assistant/terminal/route.js +2 -2
  29. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  30. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/assistant/tools/route.js +1 -1
  32. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  33. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/capabilities/route.js +1 -0
  38. package/.next/server/app/api/capabilities/route.js.nft.json +1 -0
  39. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -0
  40. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/fs/browse/route.js +2 -2
  46. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  47. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/fs/recent-paths/route.js +2 -2
  49. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  50. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  52. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  53. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/hooks/claude-done/route.js +19 -1
  55. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  56. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  58. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  59. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/push/escalation/route.js +1 -1
  63. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  64. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  66. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/push/vapid/route.js +1 -1
  68. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  69. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  72. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  74. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  76. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  77. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/clone/route.js +1 -1
  79. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/repositories/restore/route.js +1 -1
  83. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  84. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/repositories/route.js +1 -1
  86. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  87. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/repositories/scan/route.js +1 -1
  89. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  90. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/repositories/sync/route.js +1 -1
  92. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  93. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  95. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  96. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  106. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/todos/route.js +1 -1
  110. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  112. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/verification/runs/route.js +1 -1
  114. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  117. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  120. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -0
  122. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -0
  123. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -0
  124. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  128. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/current-output/route.js +2 -1
  130. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  131. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/env/route.js +2 -0
  133. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -0
  134. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -0
  135. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  141. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  175. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  178. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  192. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -0
  194. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -0
  195. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -0
  196. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  198. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  201. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -5
  203. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  204. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  207. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -6
  209. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  210. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  213. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/send/route.js +3 -1
  215. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  216. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  219. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  232. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  235. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  240. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/timers/route.js +3 -1
  244. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  252. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  254. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  255. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  258. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  261. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  263. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/api/worktrees/route.js +1 -1
  269. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  270. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  271. package/.next/server/app/chat/page.js +2 -2
  272. package/.next/server/app/chat/page.js.nft.json +1 -1
  273. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/login/page.js +2 -2
  275. package/.next/server/app/login/page.js.nft.json +1 -1
  276. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  277. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  278. package/.next/server/app/more/page.js +2 -2
  279. package/.next/server/app/more/page.js.nft.json +1 -1
  280. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  281. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  282. package/.next/server/app/page.js +1 -1
  283. package/.next/server/app/page.js.nft.json +1 -1
  284. package/.next/server/app/page_client-reference-manifest.js +1 -1
  285. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  286. package/.next/server/app/repositories/page.js +2 -2
  287. package/.next/server/app/repositories/page.js.nft.json +1 -1
  288. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  289. package/.next/server/app/review/page.js +1 -1
  290. package/.next/server/app/review/page.js.nft.json +1 -1
  291. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  292. package/.next/server/app/sessions/page.js +1 -1
  293. package/.next/server/app/sessions/page.js.nft.json +1 -1
  294. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  295. package/.next/server/app/skills/[skillId]/page.js +2 -2
  296. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  297. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  298. package/.next/server/app/skills/installed/page.js +2 -2
  299. package/.next/server/app/skills/installed/page.js.nft.json +1 -1
  300. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  301. package/.next/server/app/skills/page.js +2 -2
  302. package/.next/server/app/skills/page.js.nft.json +1 -1
  303. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  304. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  305. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  306. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  307. package/.next/server/app/worktrees/[id]/page.js +9 -7
  308. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  309. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  310. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  311. package/.next/server/app-paths-manifest.json +26 -22
  312. package/.next/server/chunks/1029.js +1 -1
  313. package/.next/server/chunks/1068.js +3 -1
  314. package/.next/server/chunks/1296.js +1 -1
  315. package/.next/server/chunks/1538.js +7 -0
  316. package/.next/server/chunks/1601.js +2 -2
  317. package/.next/server/chunks/2119.js +1 -1
  318. package/.next/server/chunks/2404.js +3 -2
  319. package/.next/server/chunks/2445.js +1 -1
  320. package/.next/server/chunks/2546.js +1 -1
  321. package/.next/server/chunks/2689.js +13 -0
  322. package/.next/server/chunks/2759.js +8 -0
  323. package/.next/server/chunks/2839.js +1 -0
  324. package/.next/server/chunks/3241.js +1 -1
  325. package/.next/server/chunks/3292.js +1 -0
  326. package/.next/server/chunks/3417.js +1 -1
  327. package/.next/server/chunks/3480.js +1 -17
  328. package/.next/server/chunks/4393.js +1 -1
  329. package/.next/server/chunks/4423.js +1 -0
  330. package/.next/server/chunks/4444.js +22 -8
  331. package/.next/server/chunks/4565.js +3 -0
  332. package/.next/server/chunks/467.js +1 -0
  333. package/.next/server/chunks/4905.js +5 -0
  334. package/.next/server/chunks/5017.js +1 -0
  335. package/.next/server/chunks/5089.js +1 -0
  336. package/.next/server/chunks/5164.js +1 -1
  337. package/.next/server/chunks/5220.js +1 -0
  338. package/.next/server/chunks/5354.js +1 -0
  339. package/.next/server/chunks/552.js +19 -0
  340. package/.next/server/chunks/5571.js +1 -1
  341. package/.next/server/chunks/5998.js +3 -3
  342. package/.next/server/chunks/6130.js +1 -1
  343. package/.next/server/chunks/6274.js +11 -11
  344. package/.next/server/chunks/6285.js +1 -1
  345. package/.next/server/chunks/6401.js +1 -1
  346. package/.next/server/chunks/6781.js +1 -1
  347. package/.next/server/chunks/7472.js +1 -0
  348. package/.next/server/chunks/7506.js +1 -0
  349. package/.next/server/chunks/848.js +1 -1
  350. package/.next/server/chunks/8536.js +1 -1
  351. package/.next/server/chunks/880.js +1 -1
  352. package/.next/server/chunks/8807.js +5 -5
  353. package/.next/server/chunks/9067.js +1 -1
  354. package/.next/server/chunks/9284.js +1 -0
  355. package/.next/server/chunks/9358.js +1 -1
  356. package/.next/server/chunks/9508.js +1 -0
  357. package/.next/server/chunks/9938.js +1 -0
  358. package/.next/server/middleware-build-manifest.js +1 -1
  359. package/.next/server/middleware-manifest.json +5 -5
  360. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  361. package/.next/server/pages/500.html +1 -1
  362. package/.next/server/server-reference-manifest.json +1 -1
  363. package/.next/static/chunks/{2053-dfac2d49227cc942.js → 2053-c0e931eb4391baa1.js} +1 -1
  364. package/.next/static/chunks/3361-5d6e93fba8a92bc1.js +1 -0
  365. package/.next/static/chunks/3922.0d2e64daf9f187da.js +1 -0
  366. package/.next/static/chunks/{5229-35f9acab97a553c5.js → 5229-1f5f19740a8d6c11.js} +1 -1
  367. package/.next/static/chunks/{6381-9303430933084b56.js → 6381-b7250e8ca7a44c6c.js} +1 -1
  368. package/.next/static/chunks/{8649-f551b0010dba4986.js → 8521-c43994fb58501d13.js} +1 -1
  369. package/.next/static/chunks/app/api/app/update/route-6add0d88e2828c23.js +1 -0
  370. package/.next/static/chunks/app/api/app/update-check/route-6add0d88e2828c23.js +1 -0
  371. package/.next/static/chunks/app/api/assistant/conversation/route-6add0d88e2828c23.js +1 -0
  372. package/.next/static/chunks/app/api/assistant/current-output/route-6add0d88e2828c23.js +1 -0
  373. package/.next/static/chunks/app/api/assistant/messages/route-6add0d88e2828c23.js +1 -0
  374. package/.next/static/chunks/app/api/assistant/session/route-6add0d88e2828c23.js +1 -0
  375. package/.next/static/chunks/app/api/assistant/start/route-6add0d88e2828c23.js +1 -0
  376. package/.next/static/chunks/app/api/assistant/terminal/route-6add0d88e2828c23.js +1 -0
  377. package/.next/static/chunks/app/api/assistant/tools/route-6add0d88e2828c23.js +1 -0
  378. package/.next/static/chunks/app/api/auth/login/route-6add0d88e2828c23.js +1 -0
  379. package/.next/static/chunks/app/api/auth/logout/route-6add0d88e2828c23.js +1 -0
  380. package/.next/static/chunks/app/api/auth/status/route-6add0d88e2828c23.js +1 -0
  381. package/.next/static/chunks/app/api/capabilities/route-6add0d88e2828c23.js +1 -0
  382. package/.next/static/chunks/app/api/daily-summary/route-6add0d88e2828c23.js +1 -0
  383. package/.next/static/chunks/app/api/daily-summary/status/route-6add0d88e2828c23.js +1 -0
  384. package/.next/static/chunks/app/api/external-apps/[id]/health/route-6add0d88e2828c23.js +1 -0
  385. package/.next/static/chunks/app/api/external-apps/[id]/route-6add0d88e2828c23.js +1 -0
  386. package/.next/static/chunks/app/api/external-apps/route-6add0d88e2828c23.js +1 -0
  387. package/.next/static/chunks/app/api/fs/browse/route-6add0d88e2828c23.js +1 -0
  388. package/.next/static/chunks/app/api/fs/recent-paths/route-6add0d88e2828c23.js +1 -0
  389. package/.next/static/chunks/app/api/hooks/agent-event/route-6add0d88e2828c23.js +1 -0
  390. package/.next/static/chunks/app/api/hooks/claude-done/route-6add0d88e2828c23.js +1 -0
  391. package/.next/static/chunks/app/api/hooks/permission-request/route-6add0d88e2828c23.js +1 -0
  392. package/.next/static/chunks/app/api/metrics/vibe/route-6add0d88e2828c23.js +1 -0
  393. package/.next/static/chunks/app/api/ollama/models/route-6add0d88e2828c23.js +1 -0
  394. package/.next/static/chunks/app/api/push/escalation/route-6add0d88e2828c23.js +1 -0
  395. package/.next/static/chunks/app/api/push/subscriptions/route-6add0d88e2828c23.js +1 -0
  396. package/.next/static/chunks/app/api/push/vapid/route-6add0d88e2828c23.js +1 -0
  397. package/.next/static/chunks/app/api/repositories/[id]/route-6add0d88e2828c23.js +1 -0
  398. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-6add0d88e2828c23.js +1 -0
  399. package/.next/static/chunks/app/api/repositories/[id]/todos/route-6add0d88e2828c23.js +1 -0
  400. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-6add0d88e2828c23.js +1 -0
  401. package/.next/static/chunks/app/api/repositories/clone/route-6add0d88e2828c23.js +1 -0
  402. package/.next/static/chunks/app/api/repositories/excluded/route-6add0d88e2828c23.js +1 -0
  403. package/.next/static/chunks/app/api/repositories/restore/route-6add0d88e2828c23.js +1 -0
  404. package/.next/static/chunks/app/api/repositories/route-6add0d88e2828c23.js +1 -0
  405. package/.next/static/chunks/app/api/repositories/scan/route-6add0d88e2828c23.js +1 -0
  406. package/.next/static/chunks/app/api/repositories/sync/route-6add0d88e2828c23.js +1 -0
  407. package/.next/static/chunks/app/api/repositories/validate-path/route-6add0d88e2828c23.js +1 -0
  408. package/.next/static/chunks/app/api/sidebar/group-order/route-6add0d88e2828c23.js +1 -0
  409. package/.next/static/chunks/app/api/skills/[id]/route-6add0d88e2828c23.js +1 -0
  410. package/.next/static/chunks/app/api/skills/installations/route-6add0d88e2828c23.js +1 -0
  411. package/.next/static/chunks/app/api/skills/operations/route-6add0d88e2828c23.js +1 -0
  412. package/.next/static/chunks/app/api/skills/reindex/route-6add0d88e2828c23.js +1 -0
  413. package/.next/static/chunks/app/api/skills/route-6add0d88e2828c23.js +1 -0
  414. package/.next/static/chunks/app/api/slash-commands/route-6add0d88e2828c23.js +1 -0
  415. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-6add0d88e2828c23.js +1 -0
  416. package/.next/static/chunks/app/api/tasks/[taskId]/route-6add0d88e2828c23.js +1 -0
  417. package/.next/static/chunks/app/api/templates/[id]/route-6add0d88e2828c23.js +1 -0
  418. package/.next/static/chunks/app/api/templates/route-6add0d88e2828c23.js +1 -0
  419. package/.next/static/chunks/app/api/todos/route-6add0d88e2828c23.js +1 -0
  420. package/.next/static/chunks/app/api/verification/runs/[runId]/route-6add0d88e2828c23.js +1 -0
  421. package/.next/static/chunks/app/api/verification/runs/route-6add0d88e2828c23.js +1 -0
  422. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-6add0d88e2828c23.js +1 -0
  423. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-6add0d88e2828c23.js +1 -0
  424. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-6add0d88e2828c23.js +1 -0
  425. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-6add0d88e2828c23.js +1 -0
  426. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-6add0d88e2828c23.js +1 -0
  427. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-6add0d88e2828c23.js +1 -0
  428. package/.next/static/chunks/app/api/worktrees/[id]/env/route-6add0d88e2828c23.js +1 -0
  429. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-6add0d88e2828c23.js +1 -0
  430. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-6add0d88e2828c23.js +1 -0
  431. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-6add0d88e2828c23.js +1 -0
  432. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-6add0d88e2828c23.js +1 -0
  433. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-6add0d88e2828c23.js +1 -0
  434. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-6add0d88e2828c23.js +1 -0
  435. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-6add0d88e2828c23.js +1 -0
  436. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-6add0d88e2828c23.js +1 -0
  437. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-6add0d88e2828c23.js +1 -0
  438. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-6add0d88e2828c23.js +1 -0
  439. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-6add0d88e2828c23.js +1 -0
  440. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-6add0d88e2828c23.js +1 -0
  441. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-6add0d88e2828c23.js +1 -0
  442. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-6add0d88e2828c23.js +1 -0
  443. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-6add0d88e2828c23.js +1 -0
  444. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-6add0d88e2828c23.js +1 -0
  445. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-6add0d88e2828c23.js +1 -0
  446. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-6add0d88e2828c23.js +1 -0
  447. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-6add0d88e2828c23.js +1 -0
  448. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-6add0d88e2828c23.js +1 -0
  449. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-6add0d88e2828c23.js +1 -0
  450. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-6add0d88e2828c23.js +1 -0
  451. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-6add0d88e2828c23.js +1 -0
  452. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-6add0d88e2828c23.js +1 -0
  453. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-6add0d88e2828c23.js +1 -0
  454. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-6add0d88e2828c23.js +1 -0
  455. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-6add0d88e2828c23.js +1 -0
  456. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-6add0d88e2828c23.js +1 -0
  457. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-6add0d88e2828c23.js +1 -0
  458. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-6add0d88e2828c23.js +1 -0
  459. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-6add0d88e2828c23.js +1 -0
  460. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-6add0d88e2828c23.js +1 -0
  461. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-6add0d88e2828c23.js +1 -0
  462. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-6add0d88e2828c23.js +1 -0
  463. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-6add0d88e2828c23.js +1 -0
  464. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-6add0d88e2828c23.js +1 -0
  465. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-6add0d88e2828c23.js +1 -0
  466. package/.next/static/chunks/app/api/worktrees/[id]/route-6add0d88e2828c23.js +1 -0
  467. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-6add0d88e2828c23.js +1 -0
  468. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-6add0d88e2828c23.js +1 -0
  469. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-6add0d88e2828c23.js +1 -0
  470. package/.next/static/chunks/app/api/worktrees/[id]/search/route-6add0d88e2828c23.js +1 -0
  471. package/.next/static/chunks/app/api/worktrees/[id]/send/route-6add0d88e2828c23.js +1 -0
  472. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-6add0d88e2828c23.js +1 -0
  473. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-6add0d88e2828c23.js +1 -0
  474. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-6add0d88e2828c23.js +1 -0
  475. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-6add0d88e2828c23.js +1 -0
  476. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-6add0d88e2828c23.js +1 -0
  477. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-6add0d88e2828c23.js +1 -0
  478. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-6add0d88e2828c23.js +1 -0
  479. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-6add0d88e2828c23.js +1 -0
  480. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-6add0d88e2828c23.js +1 -0
  481. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-6add0d88e2828c23.js +1 -0
  482. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-6add0d88e2828c23.js +1 -0
  483. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-6add0d88e2828c23.js +1 -0
  484. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-6add0d88e2828c23.js +1 -0
  485. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-6add0d88e2828c23.js +1 -0
  486. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-6add0d88e2828c23.js +1 -0
  487. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-6add0d88e2828c23.js +1 -0
  488. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-6add0d88e2828c23.js +1 -0
  489. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-6add0d88e2828c23.js +1 -0
  490. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-6add0d88e2828c23.js +1 -0
  491. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-6add0d88e2828c23.js +1 -0
  492. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-6add0d88e2828c23.js +1 -0
  493. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-6add0d88e2828c23.js +1 -0
  494. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-6add0d88e2828c23.js +1 -0
  495. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-6add0d88e2828c23.js +1 -0
  496. package/.next/static/chunks/app/api/worktrees/route-6add0d88e2828c23.js +1 -0
  497. package/.next/static/chunks/app/chat/{page-439b35c9cb90dbe0.js → page-231df45127e876c2.js} +1 -1
  498. package/.next/static/chunks/app/login/{page-eefd515d8c37e5ee.js → page-adc51f0f7cbb7ac6.js} +1 -1
  499. package/.next/static/chunks/app/manifest.webmanifest/route-6add0d88e2828c23.js +1 -0
  500. package/.next/static/chunks/app/more/{page-889b7546a8a553dc.js → page-3266dfa945972649.js} +1 -1
  501. package/.next/static/chunks/app/{page-a8d04ac0e3e4c9fc.js → page-0305431f43195431.js} +1 -1
  502. package/.next/static/chunks/app/proxy/[...path]/route-6add0d88e2828c23.js +1 -0
  503. package/.next/static/chunks/app/repositories/{page-f3c4d8839b1ca203.js → page-ae8fa55749976f79.js} +1 -1
  504. package/.next/static/chunks/app/review/{page-6dc88649fe88ac16.js → page-8f63aff862fee421.js} +1 -1
  505. package/.next/static/chunks/app/sessions/{page-2c9ed9e969097688.js → page-4d5382b257077c14.js} +1 -1
  506. package/.next/static/chunks/app/skills/[skillId]/{page-19beef6121c4c982.js → page-aaf0bcb1dfb558b9.js} +1 -1
  507. package/.next/static/chunks/app/skills/installed/{page-d5b9cef6d21fabda.js → page-dafc486410e839b7.js} +1 -1
  508. package/.next/static/chunks/app/skills/{page-06ef637e07dd9377.js → page-9e3c91da31514893.js} +1 -1
  509. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-5fed3984fafcd910.js → page-90f96977c741bbf8.js} +1 -1
  510. package/.next/static/chunks/app/worktrees/[id]/layout-6add0d88e2828c23.js +1 -0
  511. package/.next/static/chunks/app/worktrees/[id]/page-e4f28966b4fc0ce1.js +1 -0
  512. package/.next/static/chunks/{webpack-9d892a9ff07c289d.js → webpack-6a9668cf54a26eba.js} +1 -1
  513. package/.next/static/css/928e5a8830fbf997.css +1 -0
  514. package/.next/static/t0BoV4H46ZgKmTjSi7GIz/_buildManifest.js +1 -0
  515. package/.next/trace +13 -12
  516. package/.next/types/app/api/capabilities/route.ts +347 -0
  517. package/.next/types/app/api/worktrees/[id]/clear-composer/route.ts +347 -0
  518. package/.next/types/app/api/worktrees/[id]/env/route.ts +347 -0
  519. package/.next/types/app/api/worktrees/[id]/resolve-target/route.ts +347 -0
  520. package/.next/types/routes.d.ts +5 -1
  521. package/.next/types/validator.ts +36 -0
  522. package/dist/cli/commands/auto-yes.d.ts.map +1 -1
  523. package/dist/cli/commands/auto-yes.js +40 -2
  524. package/dist/cli/commands/capture.d.ts.map +1 -1
  525. package/dist/cli/commands/capture.js +28 -13
  526. package/dist/cli/commands/instances.d.ts +30 -18
  527. package/dist/cli/commands/instances.d.ts.map +1 -1
  528. package/dist/cli/commands/instances.js +32 -36
  529. package/dist/cli/commands/ls.d.ts.map +1 -1
  530. package/dist/cli/commands/ls.js +73 -1
  531. package/dist/cli/commands/respond.d.ts.map +1 -1
  532. package/dist/cli/commands/respond.js +18 -1
  533. package/dist/cli/commands/send.d.ts.map +1 -1
  534. package/dist/cli/commands/send.js +21 -15
  535. package/dist/cli/commands/status.d.ts.map +1 -1
  536. package/dist/cli/commands/status.js +38 -0
  537. package/dist/cli/commands/wait.d.ts +26 -0
  538. package/dist/cli/commands/wait.d.ts.map +1 -1
  539. package/dist/cli/commands/wait.js +390 -43
  540. package/dist/cli/config/cli-dependencies.d.ts.map +1 -1
  541. package/dist/cli/config/cli-dependencies.js +16 -0
  542. package/dist/cli/config/cli-tool-ids.d.ts +11 -0
  543. package/dist/cli/config/cli-tool-ids.d.ts.map +1 -1
  544. package/dist/cli/config/cli-tool-ids.js +12 -1
  545. package/dist/cli/types/api-responses.d.ts +443 -2
  546. package/dist/cli/types/api-responses.d.ts.map +1 -1
  547. package/dist/cli/utils/api-client.d.ts +18 -0
  548. package/dist/cli/utils/api-client.d.ts.map +1 -1
  549. package/dist/cli/utils/api-client.js +22 -0
  550. package/dist/cli/utils/server-capabilities.d.ts +56 -0
  551. package/dist/cli/utils/server-capabilities.d.ts.map +1 -0
  552. package/dist/cli/utils/server-capabilities.js +166 -0
  553. package/dist/cli/utils/session-target.d.ts +70 -0
  554. package/dist/cli/utils/session-target.d.ts.map +1 -0
  555. package/dist/cli/utils/session-target.js +118 -0
  556. package/dist/lib/cli-tools/copilot-executable.d.ts +79 -0
  557. package/dist/lib/cli-tools/copilot-executable.d.ts.map +1 -0
  558. package/dist/lib/cli-tools/copilot-executable.js +155 -0
  559. package/dist/lib/cli-tools/types.d.ts +61 -0
  560. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  561. package/dist/lib/cli-tools/types.js +41 -0
  562. package/dist/lib/detection/ansi.d.ts +2 -1
  563. package/dist/lib/detection/ansi.d.ts.map +1 -1
  564. package/dist/lib/detection/ansi.js +3 -2
  565. package/dist/lib/detection/tools/verified-against.d.ts +84 -0
  566. package/dist/lib/detection/tools/verified-against.d.ts.map +1 -0
  567. package/dist/lib/detection/tools/verified-against.js +88 -0
  568. package/dist/lib/detection/version-probes.d.ts +207 -0
  569. package/dist/lib/detection/version-probes.d.ts.map +1 -0
  570. package/dist/lib/detection/version-probes.js +290 -0
  571. package/dist/lib/security/env-sanitizer.d.ts +198 -0
  572. package/dist/lib/security/env-sanitizer.d.ts.map +1 -0
  573. package/dist/lib/security/env-sanitizer.js +232 -0
  574. package/dist/server/locales/en/notifications.json +17 -6
  575. package/dist/server/locales/ja/notifications.json +17 -6
  576. package/dist/server/src/config/activity-bar-config.js +4 -0
  577. package/dist/server/src/config/cli-tool-timing-config.js +59 -2
  578. package/dist/server/src/config/copilot-constants.js +11 -1
  579. package/dist/server/src/config/detection-evidence-config.js +129 -0
  580. package/dist/server/src/config/schedule-config.js +56 -7
  581. package/dist/server/src/config/tmux-pane-config.js +18 -1
  582. package/dist/server/src/lib/auto-yes-poller.js +36 -0
  583. package/dist/server/src/lib/cli-tools/antigravity.js +4 -2
  584. package/dist/server/src/lib/cli-tools/base.js +131 -10
  585. package/dist/server/src/lib/cli-tools/capture-spec.js +56 -0
  586. package/dist/server/src/lib/cli-tools/claude.js +1 -1
  587. package/dist/server/src/lib/cli-tools/codex.js +6 -2
  588. package/dist/server/src/lib/cli-tools/composer-spec.js +96 -0
  589. package/dist/server/src/lib/cli-tools/copilot-executable.js +155 -0
  590. package/dist/server/src/lib/cli-tools/copilot.js +307 -81
  591. package/dist/server/src/lib/cli-tools/gemini.js +8 -6
  592. package/dist/server/src/lib/cli-tools/graceful-exit.js +181 -0
  593. package/dist/server/src/lib/cli-tools/index.js +11 -1
  594. package/dist/server/src/lib/cli-tools/manager.js +56 -4
  595. package/dist/server/src/lib/cli-tools/opencode-config.js +195 -24
  596. package/dist/server/src/lib/cli-tools/opencode.js +233 -30
  597. package/dist/server/src/lib/cli-tools/session-name.js +57 -0
  598. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +213 -30
  599. package/dist/server/src/lib/cli-tools/types.js +41 -0
  600. package/dist/server/src/lib/cli-tools/vibe-local.js +7 -3
  601. package/dist/server/src/lib/cmate-cli-tool-parser.js +29 -1
  602. package/dist/server/src/lib/cmate-parser.js +12 -4
  603. package/dist/server/src/lib/db/db.js +5 -1
  604. package/dist/server/src/lib/db/migrations/v41-push-subscriptions.js +11 -0
  605. package/dist/server/src/lib/db/push-subscriptions-db.js +60 -3
  606. package/dist/server/src/lib/detection/ansi.js +3 -2
  607. package/dist/server/src/lib/detection/cli-patterns.js +901 -67
  608. package/dist/server/src/lib/detection/composer-text.js +455 -0
  609. package/dist/server/src/lib/detection/idle-evidence-observation.js +51 -0
  610. package/dist/server/src/lib/detection/model-info-extractor.js +195 -4
  611. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +19 -0
  612. package/dist/server/src/lib/detection/status-detector.js +76 -675
  613. package/dist/server/src/lib/detection/status-reason.js +57 -0
  614. package/dist/server/src/lib/detection/tools/antigravity/detect.js +75 -0
  615. package/dist/server/src/lib/detection/tools/claude/detect.js +144 -0
  616. package/dist/server/src/lib/detection/tools/claude/patterns.js +98 -0
  617. package/dist/server/src/lib/detection/tools/claude/prompt.js +124 -0
  618. package/dist/server/src/lib/detection/tools/codex/detect.js +343 -0
  619. package/dist/server/src/lib/detection/tools/codex/prompt.js +104 -0
  620. package/dist/server/src/lib/detection/tools/copilot/detect.js +185 -0
  621. package/dist/server/src/lib/detection/tools/copilot/prompt.js +89 -0
  622. package/dist/server/src/lib/detection/tools/dialog-block.js +159 -0
  623. package/dist/server/src/lib/detection/tools/frame.js +47 -0
  624. package/dist/server/src/lib/detection/tools/opencode/detect.js +242 -0
  625. package/dist/server/src/lib/detection/tools/opencode/prompt.js +85 -0
  626. package/dist/server/src/lib/detection/tools/registry.js +58 -0
  627. package/dist/server/src/lib/detection/tools/run-detection.js +202 -0
  628. package/dist/server/src/lib/detection/tools/types.js +34 -0
  629. package/dist/server/src/lib/detection/tools/verified-against.js +88 -0
  630. package/dist/server/src/lib/hooks/agent-event-types.js +19 -1
  631. package/dist/server/src/lib/hooks/permission-adjudication.js +160 -0
  632. package/dist/server/src/lib/hooks/permission-decision-service.js +81 -14
  633. package/dist/server/src/lib/hooks/permission-decision-state.js +62 -0
  634. package/dist/server/src/lib/hooks/permission-request-payload.js +18 -1
  635. package/dist/server/src/lib/hooks/sources/antigravity/source.js +10 -0
  636. package/dist/server/src/lib/hooks/sources/claude/source.js +20 -0
  637. package/dist/server/src/lib/hooks/sources/codex/source.js +10 -0
  638. package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +403 -50
  639. package/dist/server/src/lib/hooks/sources/copilot/source.js +40 -4
  640. package/dist/server/src/lib/hooks/sources/define-source.js +23 -1
  641. package/dist/server/src/lib/hooks/sources/event-mapper.js +29 -1
  642. package/dist/server/src/lib/hooks/sources/gemini/source.js +10 -0
  643. package/dist/server/src/lib/hooks/sources/index.js +3 -1
  644. package/dist/server/src/lib/hooks/sources/launch-command.js +96 -1
  645. package/dist/server/src/lib/hooks/sources/legacy-relay.js +12 -0
  646. package/dist/server/src/lib/hooks/sources/opencode/client.js +295 -32
  647. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +120 -42
  648. package/dist/server/src/lib/hooks/sources/opencode/mappers.js +95 -3
  649. package/dist/server/src/lib/hooks/sources/opencode/ports.js +70 -9
  650. package/dist/server/src/lib/hooks/sources/opencode/runtime.js +62 -4
  651. package/dist/server/src/lib/hooks/sources/opencode/source.js +54 -3
  652. package/dist/server/src/lib/hooks/sources/opencode/subscription.js +254 -26
  653. package/dist/server/src/lib/hooks/sources/opencode/turn-gate.js +119 -4
  654. package/dist/server/src/lib/hooks/sources/pending-decisions.js +40 -2
  655. package/dist/server/src/lib/hooks/tool-input-normalization-state.js +67 -0
  656. package/dist/server/src/lib/hooks/tool-input-normalization.js +157 -0
  657. package/dist/server/src/lib/job-executor.js +16 -4
  658. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +184 -0
  659. package/dist/server/src/lib/polling/response-checker.js +243 -26
  660. package/dist/server/src/lib/push/failure-episode-state.js +127 -0
  661. package/dist/server/src/lib/push/failure-push-notifier.js +344 -0
  662. package/dist/server/src/lib/push/index.js +35 -1
  663. package/dist/server/src/lib/push/prompt-card-state.js +93 -0
  664. package/dist/server/src/lib/push/prompt-push-gate.js +130 -0
  665. package/dist/server/src/lib/push/push-sender.js +82 -7
  666. package/dist/server/src/lib/push/resolution-push-notifier.js +193 -0
  667. package/dist/server/src/lib/push/waiting-push-notifier.js +42 -0
  668. package/dist/server/src/lib/response-cleaner.js +93 -20
  669. package/dist/server/src/lib/response-extractor.js +98 -5
  670. package/dist/server/src/lib/security/env-sanitizer.js +179 -5
  671. package/dist/server/src/lib/session/agent-event-state.js +1038 -189
  672. package/dist/server/src/lib/session/agent-session-lifecycle.js +8 -0
  673. package/dist/server/src/lib/session/claude-executor.js +23 -3
  674. package/dist/server/src/lib/session/claude-session.js +11 -1
  675. package/dist/server/src/lib/session/composer-clear.js +95 -0
  676. package/dist/server/src/lib/session/current-output-builder.js +267 -25
  677. package/dist/server/src/lib/session/provisional-turn.js +310 -0
  678. package/dist/server/src/lib/session/resolve-session-target.js +156 -0
  679. package/dist/server/src/lib/session/send-user-message.js +14 -18
  680. package/dist/server/src/lib/session/session-start-error.js +53 -1
  681. package/dist/server/src/lib/session/status-evidence.js +217 -0
  682. package/dist/server/src/lib/session/structured-prompt.js +46 -4
  683. package/dist/server/src/lib/session/waiting-episode-state.js +24 -0
  684. package/dist/server/src/lib/tmux/key-sequence.js +120 -0
  685. package/dist/server/src/lib/tmux/tmux.js +91 -19
  686. package/dist/server/src/lib/tui-accumulator.js +68 -1
  687. package/dist/server/src/lib/verification/gate-runner.js +84 -1
  688. package/dist/server/src/lib/ws-server.js +8 -5
  689. package/dist/server/src/types/cli-tool-contracts.js +75 -0
  690. package/dist/server/src/types/terminal-keys.js +37 -0
  691. package/dist/types/cli-tool-contracts.d.ts +235 -0
  692. package/dist/types/cli-tool-contracts.d.ts.map +1 -0
  693. package/dist/types/cli-tool-contracts.js +75 -0
  694. package/package.json +3 -2
  695. package/public/sw.js +65 -2
  696. package/.next/server/chunks/1841.js +0 -1
  697. package/.next/server/chunks/233.js +0 -1
  698. package/.next/server/chunks/3022.js +0 -1
  699. package/.next/server/chunks/3270.js +0 -1
  700. package/.next/server/chunks/4455.js +0 -1
  701. package/.next/server/chunks/5959.js +0 -27
  702. package/.next/server/chunks/7458.js +0 -6
  703. package/.next/server/chunks/8730.js +0 -1
  704. package/.next/server/chunks/9058.js +0 -1
  705. package/.next/server/chunks/9687.js +0 -3
  706. package/.next/static/chunks/3898-ef488bfa804507d9.js +0 -1
  707. package/.next/static/chunks/9263.f2034ec525abcf72.js +0 -1
  708. package/.next/static/chunks/app/api/app/update/route-fae89f8d4cc3ff97.js +0 -1
  709. package/.next/static/chunks/app/api/app/update-check/route-fae89f8d4cc3ff97.js +0 -1
  710. package/.next/static/chunks/app/api/assistant/conversation/route-fae89f8d4cc3ff97.js +0 -1
  711. package/.next/static/chunks/app/api/assistant/current-output/route-fae89f8d4cc3ff97.js +0 -1
  712. package/.next/static/chunks/app/api/assistant/messages/route-fae89f8d4cc3ff97.js +0 -1
  713. package/.next/static/chunks/app/api/assistant/session/route-fae89f8d4cc3ff97.js +0 -1
  714. package/.next/static/chunks/app/api/assistant/start/route-fae89f8d4cc3ff97.js +0 -1
  715. package/.next/static/chunks/app/api/assistant/terminal/route-fae89f8d4cc3ff97.js +0 -1
  716. package/.next/static/chunks/app/api/assistant/tools/route-fae89f8d4cc3ff97.js +0 -1
  717. package/.next/static/chunks/app/api/auth/login/route-fae89f8d4cc3ff97.js +0 -1
  718. package/.next/static/chunks/app/api/auth/logout/route-fae89f8d4cc3ff97.js +0 -1
  719. package/.next/static/chunks/app/api/auth/status/route-fae89f8d4cc3ff97.js +0 -1
  720. package/.next/static/chunks/app/api/daily-summary/route-fae89f8d4cc3ff97.js +0 -1
  721. package/.next/static/chunks/app/api/daily-summary/status/route-fae89f8d4cc3ff97.js +0 -1
  722. package/.next/static/chunks/app/api/external-apps/[id]/health/route-fae89f8d4cc3ff97.js +0 -1
  723. package/.next/static/chunks/app/api/external-apps/[id]/route-fae89f8d4cc3ff97.js +0 -1
  724. package/.next/static/chunks/app/api/external-apps/route-fae89f8d4cc3ff97.js +0 -1
  725. package/.next/static/chunks/app/api/fs/browse/route-fae89f8d4cc3ff97.js +0 -1
  726. package/.next/static/chunks/app/api/fs/recent-paths/route-fae89f8d4cc3ff97.js +0 -1
  727. package/.next/static/chunks/app/api/hooks/agent-event/route-fae89f8d4cc3ff97.js +0 -1
  728. package/.next/static/chunks/app/api/hooks/claude-done/route-fae89f8d4cc3ff97.js +0 -1
  729. package/.next/static/chunks/app/api/hooks/permission-request/route-fae89f8d4cc3ff97.js +0 -1
  730. package/.next/static/chunks/app/api/metrics/vibe/route-fae89f8d4cc3ff97.js +0 -1
  731. package/.next/static/chunks/app/api/ollama/models/route-fae89f8d4cc3ff97.js +0 -1
  732. package/.next/static/chunks/app/api/push/escalation/route-fae89f8d4cc3ff97.js +0 -1
  733. package/.next/static/chunks/app/api/push/subscriptions/route-fae89f8d4cc3ff97.js +0 -1
  734. package/.next/static/chunks/app/api/push/vapid/route-fae89f8d4cc3ff97.js +0 -1
  735. package/.next/static/chunks/app/api/repositories/[id]/route-fae89f8d4cc3ff97.js +0 -1
  736. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-fae89f8d4cc3ff97.js +0 -1
  737. package/.next/static/chunks/app/api/repositories/[id]/todos/route-fae89f8d4cc3ff97.js +0 -1
  738. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-fae89f8d4cc3ff97.js +0 -1
  739. package/.next/static/chunks/app/api/repositories/clone/route-fae89f8d4cc3ff97.js +0 -1
  740. package/.next/static/chunks/app/api/repositories/excluded/route-fae89f8d4cc3ff97.js +0 -1
  741. package/.next/static/chunks/app/api/repositories/restore/route-fae89f8d4cc3ff97.js +0 -1
  742. package/.next/static/chunks/app/api/repositories/route-fae89f8d4cc3ff97.js +0 -1
  743. package/.next/static/chunks/app/api/repositories/scan/route-fae89f8d4cc3ff97.js +0 -1
  744. package/.next/static/chunks/app/api/repositories/sync/route-fae89f8d4cc3ff97.js +0 -1
  745. package/.next/static/chunks/app/api/repositories/validate-path/route-fae89f8d4cc3ff97.js +0 -1
  746. package/.next/static/chunks/app/api/sidebar/group-order/route-fae89f8d4cc3ff97.js +0 -1
  747. package/.next/static/chunks/app/api/skills/[id]/route-fae89f8d4cc3ff97.js +0 -1
  748. package/.next/static/chunks/app/api/skills/installations/route-fae89f8d4cc3ff97.js +0 -1
  749. package/.next/static/chunks/app/api/skills/operations/route-fae89f8d4cc3ff97.js +0 -1
  750. package/.next/static/chunks/app/api/skills/reindex/route-fae89f8d4cc3ff97.js +0 -1
  751. package/.next/static/chunks/app/api/skills/route-fae89f8d4cc3ff97.js +0 -1
  752. package/.next/static/chunks/app/api/slash-commands/route-fae89f8d4cc3ff97.js +0 -1
  753. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-fae89f8d4cc3ff97.js +0 -1
  754. package/.next/static/chunks/app/api/tasks/[taskId]/route-fae89f8d4cc3ff97.js +0 -1
  755. package/.next/static/chunks/app/api/templates/[id]/route-fae89f8d4cc3ff97.js +0 -1
  756. package/.next/static/chunks/app/api/templates/route-fae89f8d4cc3ff97.js +0 -1
  757. package/.next/static/chunks/app/api/todos/route-fae89f8d4cc3ff97.js +0 -1
  758. package/.next/static/chunks/app/api/verification/runs/[runId]/route-fae89f8d4cc3ff97.js +0 -1
  759. package/.next/static/chunks/app/api/verification/runs/route-fae89f8d4cc3ff97.js +0 -1
  760. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-fae89f8d4cc3ff97.js +0 -1
  761. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-fae89f8d4cc3ff97.js +0 -1
  762. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-fae89f8d4cc3ff97.js +0 -1
  763. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-fae89f8d4cc3ff97.js +0 -1
  764. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-fae89f8d4cc3ff97.js +0 -1
  765. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-fae89f8d4cc3ff97.js +0 -1
  766. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-fae89f8d4cc3ff97.js +0 -1
  767. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-fae89f8d4cc3ff97.js +0 -1
  768. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-fae89f8d4cc3ff97.js +0 -1
  769. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-fae89f8d4cc3ff97.js +0 -1
  770. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-fae89f8d4cc3ff97.js +0 -1
  771. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-fae89f8d4cc3ff97.js +0 -1
  772. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-fae89f8d4cc3ff97.js +0 -1
  773. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-fae89f8d4cc3ff97.js +0 -1
  774. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-fae89f8d4cc3ff97.js +0 -1
  775. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-fae89f8d4cc3ff97.js +0 -1
  776. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-fae89f8d4cc3ff97.js +0 -1
  777. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-fae89f8d4cc3ff97.js +0 -1
  778. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-fae89f8d4cc3ff97.js +0 -1
  779. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-fae89f8d4cc3ff97.js +0 -1
  780. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-fae89f8d4cc3ff97.js +0 -1
  781. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-fae89f8d4cc3ff97.js +0 -1
  782. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-fae89f8d4cc3ff97.js +0 -1
  783. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-fae89f8d4cc3ff97.js +0 -1
  784. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-fae89f8d4cc3ff97.js +0 -1
  785. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-fae89f8d4cc3ff97.js +0 -1
  786. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-fae89f8d4cc3ff97.js +0 -1
  787. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-fae89f8d4cc3ff97.js +0 -1
  788. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-fae89f8d4cc3ff97.js +0 -1
  789. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-fae89f8d4cc3ff97.js +0 -1
  790. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-fae89f8d4cc3ff97.js +0 -1
  791. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-fae89f8d4cc3ff97.js +0 -1
  792. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-fae89f8d4cc3ff97.js +0 -1
  793. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-fae89f8d4cc3ff97.js +0 -1
  794. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-fae89f8d4cc3ff97.js +0 -1
  795. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-fae89f8d4cc3ff97.js +0 -1
  796. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-fae89f8d4cc3ff97.js +0 -1
  797. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-fae89f8d4cc3ff97.js +0 -1
  798. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-fae89f8d4cc3ff97.js +0 -1
  799. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-fae89f8d4cc3ff97.js +0 -1
  800. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-fae89f8d4cc3ff97.js +0 -1
  801. package/.next/static/chunks/app/api/worktrees/[id]/route-fae89f8d4cc3ff97.js +0 -1
  802. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-fae89f8d4cc3ff97.js +0 -1
  803. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-fae89f8d4cc3ff97.js +0 -1
  804. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-fae89f8d4cc3ff97.js +0 -1
  805. package/.next/static/chunks/app/api/worktrees/[id]/search/route-fae89f8d4cc3ff97.js +0 -1
  806. package/.next/static/chunks/app/api/worktrees/[id]/send/route-fae89f8d4cc3ff97.js +0 -1
  807. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-fae89f8d4cc3ff97.js +0 -1
  808. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-fae89f8d4cc3ff97.js +0 -1
  809. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-fae89f8d4cc3ff97.js +0 -1
  810. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-fae89f8d4cc3ff97.js +0 -1
  811. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-fae89f8d4cc3ff97.js +0 -1
  812. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-fae89f8d4cc3ff97.js +0 -1
  813. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-fae89f8d4cc3ff97.js +0 -1
  814. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-fae89f8d4cc3ff97.js +0 -1
  815. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-fae89f8d4cc3ff97.js +0 -1
  816. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-fae89f8d4cc3ff97.js +0 -1
  817. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-fae89f8d4cc3ff97.js +0 -1
  818. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-fae89f8d4cc3ff97.js +0 -1
  819. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-fae89f8d4cc3ff97.js +0 -1
  820. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-fae89f8d4cc3ff97.js +0 -1
  821. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-fae89f8d4cc3ff97.js +0 -1
  822. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-fae89f8d4cc3ff97.js +0 -1
  823. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-fae89f8d4cc3ff97.js +0 -1
  824. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-fae89f8d4cc3ff97.js +0 -1
  825. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-fae89f8d4cc3ff97.js +0 -1
  826. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-fae89f8d4cc3ff97.js +0 -1
  827. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-fae89f8d4cc3ff97.js +0 -1
  828. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-fae89f8d4cc3ff97.js +0 -1
  829. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-fae89f8d4cc3ff97.js +0 -1
  830. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-fae89f8d4cc3ff97.js +0 -1
  831. package/.next/static/chunks/app/api/worktrees/route-fae89f8d4cc3ff97.js +0 -1
  832. package/.next/static/chunks/app/manifest.webmanifest/route-fae89f8d4cc3ff97.js +0 -1
  833. package/.next/static/chunks/app/proxy/[...path]/route-fae89f8d4cc3ff97.js +0 -1
  834. package/.next/static/chunks/app/worktrees/[id]/layout-fae89f8d4cc3ff97.js +0 -1
  835. package/.next/static/chunks/app/worktrees/[id]/page-fbdf4621a2911ac1.js +0 -1
  836. package/.next/static/css/e865c4979a41aa03.css +0 -1
  837. package/.next/static/hNdNiFes2xLls68SWhAU9/_buildManifest.js +0 -1
  838. /package/.next/static/{hNdNiFes2xLls68SWhAU9 → t0BoV4H46ZgKmTjSi7GIz}/_ssgManifest.js +0 -0
@@ -1,27 +0,0 @@
1
- exports.id=5959,exports.ids=[5959],exports.modules={60:(a,b,c)=>{"use strict";c.d(b,{Q:()=>f,b:()=>e});var d=c(85164);function e(a){return d.Md.test(a)&&!d.kD.test(a)}function f(a,b,c,d,e,g=!1){if(a=Math.max(0,a),"opencode"===d||"copilot"===d||g){let a=e(b);return a>=0?a+1:0}if("antigravity"===d){let c=e(b);return c>=0?c+1:Math.max(0,a)}if(a>=b||c){let a=e(40);return a>=0?a+1:0}if("codex"===d)return Math.max(0,a);if(a>=b-5){let a=e(50);return a>=0?a+1:Math.max(0,b-40)}return Math.max(0,a)}},2669:(a,b,c)=>{"use strict";c.d(b,{M7:()=>d,Sr:()=>g,mR:()=>h,su:()=>j,wQ:()=>i});let d="SESSION_STARTING",e="SESSION_START_FAILED",f=[d,e];class g extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}class h extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}function i(a){return k(a)===d}function j(a){let b=k(a);return void 0!==b&&f.includes(b)}function k(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},3523:(a,b,c)=>{"use strict";c.d(b,{z$:()=>F,zX:()=>G});var d=c(31766),e=c(88807),f=c(56791),g=c(95620),h=c(25129),i=c(18778),j=c(15194),k=c(8988),l=c(85164),m=c(72626),n=c(46423),o=c(93997),p=c(60),q=c(82450),r=c(56263),s=c(13033),t=c(72457),u=c(44321),v=c(71080),w=c(45146),x=c(91601),y=c(73478),z=c(57836),A=c(52767);let B=(0,m.h)("response-poller");function C(a){return{response:"",isComplete:!1,lineCount:a}}function D(a,b,c,d,e,f,g,h=!1){let i=(0,p.Q)(b,c,d,e,f,h),j=a.slice(i);return{response:(0,l.aJ)(j.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d,captureWindowSaturated:h}}function E(a,b){let c=(0,l.KO)(b);return(0,h.gF)((0,l._A)((0,l.aJ)(a)),c)}function F(a,b,c,d=o.xE){let e=a.split("\n"),f=e.length;for(;f>0&&""===e[f-1].trim();)f--;let g=e.slice(0,f),h=g.length,i=(0,o.sl)(e.length,d),j="claude"===c?(0,l.GT)(g):-1,k=j>=0?j:h,m=h>0&&b>25&&h+25<b,q=h>0&&b>50&&h<50,r=m||q;if(!r&&h<b-5)return null;let s=Math.max(0,h-20),t=g.slice(s),u="opencode"===c?(0,l.aJ)(g.join("\n")):t.join("\n"),{promptPattern:v,separatorPattern:x,thinkingPattern:y,skipPatterns:z}=(0,l._X)(c),A=(a=60)=>{let b;if("codex"===c)b=/^›\s+(?!Implement|Find and fix|Type|Summarize)/;else if("opencode"===c){let b=0;for(let c=h-1;c>=Math.max(0,h-a);c--){let a=(0,l.aJ)(g[c]);if(l.Md.test(a)&&2==++b)return c}return -1}else b=/^[>❯]\s+\S/;for(let c=k-1;c>=Math.max(0,k-a);c--){let a=(0,l.aJ)(g[c]);if(b.test(a))return c}return -1};if("claude"===c||"codex"===c||"copilot"===c){let a=E(g.join("\n"),c);if(a.isPrompt)return D(g,b,h,r,c,A,a,i)}let B=(0,l.aJ)(u),G=v.test(B),H=x.test(B),I="codex"===c?(0,l.DR)(g,20):y.test(B),J=("codex"===c||"gemini"===c||"vibe-local"===c||"copilot"===c||"antigravity"===c)&&G&&!I,K="claude"===c&&G&&H&&!I,L="opencode"===c&&(0,p.b)(B);if(J||K||L){let a=[],d=(0,p.Q)(b,h,r,c,A,i),e=h;for(let b=d;b<k;b++){let d=g[b],f=(0,l.aJ)(d);if("codex"===c&&/^›\s+/.test(f)||"gemini"===c&&/^(%|\$|.*@.*[%$#])\s*$/.test(f)||"antigravity"===c&&/^>\s*$/.test(f)||"opencode"===c&&(l.sy.test(f)||l.uA.test(f))){e=b;break}z.some(a=>a.test(f))||a.push(d)}let f=a.join("\n").trim(),j=f.split("\n").slice(-n.$).join("\n");if(y.test(j))return C(h);if("claude"===c){let a=(0,l.aJ)(f),b=/[╭╮╰╯│]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),c=/Claude Code|claude\/|v\d+\.\d+/.test(a),d=/Tip:|for shortcuts|\?\s*for help/.test(a),e=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,g=a.match(/^[>❯]\s+(\S.*)$/m);if(g){let b=a.indexOf(g[0]);if(0===a.substring(b+g[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!z.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return C(h)}else if((b||c||d||e)&&f.length<2e3)return C(h)}if("gemini"===c&&((f.match(/[░███]/g)||[]).length>.3*f.length||w.SI.some(a=>f.includes(a))||!f.includes("✦")&&f.length<10))return C(h);if("opencode"===c){let a=(0,l.aJ)(f);if((a.length<50||!l.Md.test(B))&&0===a.split("\n").filter(a=>{let b=a.trim();return b&&!l.sx.some(a=>a.test(b))}).length)return C(h)}return{response:f,isComplete:!0,lineCount:e,bufferReset:r,captureWindowSaturated:i}}if("opencode"!==c){let a=E(g.join("\n"),c);if(a.isPrompt)return D(g,b,h,r,c,A,a,i)}let M=[],N=r||i||b>=h-5,O=N?A(80):-1,P=N?O>=0?O+1:Math.max(0,h-80):Math.max(0,b);for(let a=P;a<Math.min(h,k);a++){let b=g[a],c=(0,l.aJ)(b);z.some(a=>a.test(c))||M.push(b)}let Q=M.join("\n").trim();return Q?{response:Q,isComplete:!1,lineCount:h}:C(h)}async function G(a,b,c){let h=(0,e.getDbInstance)(),m=c??b;try{let e=(0,f.getWorktreeById)(h,a);if(!e)return B.error("worktree-worktreeid-not"),(0,w.Et)(a,b,c),!1;if(!await (0,d.K1)(a,b,c))return B.info("session-not-running"),(0,w.Et)(a,b,c),!1;let p=(0,f.getSessionState)(h,a,m),y=p?.lastCapturedLine||0,C=await (0,d.Wh)(a,b,o.xE,c);if("opencode"===b||"copilot"===b){let d=(0,w.MN)(a,b,c);(0,s.IZ)(d,C,b)}let D=F(C,y,b,o.xE);if(!D||!D.isComplete){let{thinkingPattern:c}=(0,l._X)(b),d=(0,l.aJ)(C).split("\n").slice(-n.$).join("\n");return c.test(d)&&(0,f.markPendingPromptsAsAnswered)(h,a,b,m)>0&&B.info("marked-answeredcount-pending"),!1}let G="opencode"===b||"copilot"===b,H=!(0,j.VA)(b)&&!D.captureWindowSaturated;if(H&&!D.bufferReset&&D.lineCount===y&&!p?.inProgressMessageId)return!1;if(H&&!D.bufferReset&&D.lineCount<=y)return B.info("already-saved-up-to-line-lastcapturedlin"),!1;let I=D.promptDetection??E(D.response,b);if(I.isPrompt){let d=I.rawContent||I.cleanContent,i=(0,w.MN)(a,b,c),j=(0,t.zm)(d,b);if((0,t.gv)(i,j))return(0,u.LN)(a,b,c),B.info("duplicate-prompt-skipped",{worktreeId:a,cliToolId:b}),!1;let k=d;"copilot"===b&&(k=(0,q.LH)(d),k=(0,q.Sj)(k,r.Rf,r.ky)),(0,f.clearInProgressMessageId)(h,a,b,m);let l=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:k,messageType:"prompt",promptData:I.promptData,timestamp:new Date,cliToolId:b,instanceId:m});(0,f.updateSessionState)(h,a,b,D.lineCount,m),(0,g.broadcastMessage)("message",{worktreeId:a,message:l}),(0,A.r)(h,a,b,m,"prompt_detected",{promptType:I.promptData?.type});let n=Date.now(),o=(0,z.Jp)(a,b,c)?.since??n;return(0,x.J$)({worktreeId:a,worktreeName:e.name,kind:"prompt",agentName:m,instanceId:m,waitingKind:"prompt",waitingSince:o,excerpt:I.promptData?.question??k}).catch(()=>{}),(0,z.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,kind:"prompt",now:n}),G||(0,w.Et)(a,b,c),!0}if(!D.response||""===D.response.trim())return(0,f.updateSessionState)(h,a,b,D.lineCount,m),!1;let J="claude"===b?(0,k.R)(D.response):void 0,K=D.response;if("gemini"===b)K=(0,q.IS)(D.response);else if("claude"===b)K=(0,q.NN)(D.response);else if("copilot"===b){let d=(0,w.MN)(a,b,c),e=(0,s.Uz)(d)||D.response;K=(0,q.LH)(e),K=(0,q.Sj)(K,r.Rf,r.ky),(0,s.q1)(d)}else if("opencode"===b){K=(0,q.aW)(D.response);let d=(0,w.MN)(a,b,c);(0,s.q1)(d)}if(!K||""===K.trim()||"[No content]"===K)return(0,f.updateSessionState)(h,a,b,D.lineCount,m),(0,f.clearInProgressMessageId)(h,a,b,m),!1;if(!H){let d=(0,w.MN)(a,b,c);if((0,v.j7)(d,K))return B.info("duplicate-response-skipped",{worktreeId:a,cliToolId:b,instanceId:m}),(0,f.updateSessionState)(h,a,b,D.lineCount,m),!1}K&&await (0,i.T)(h,a,K,b),(0,f.markPendingPromptsAsAnswered)(h,a,b,m)>0&&B.info("marked-answeredcount-pending");let L=(0,f.getSessionState)(h,a,m);if(H&&L&&D.lineCount<=L.lastCapturedLine)return B.info("race-condition-detected-skipping-save-re"),!1;let M=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:K,messageType:"normal",timestamp:new Date,cliToolId:b,instanceId:m,summary:J?.summary,logFileName:J?.logFileName,requestId:J?.requestId});return(0,g.broadcastMessage)("message",{worktreeId:a,message:M}),(0,z.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1}),(0,x.J$)({worktreeId:a,worktreeName:e.name,kind:"completion",agentName:m,excerpt:K}).catch(()=>{}),(0,f.updateSessionState)(h,a,b,D.lineCount,m),G&&(0,w.Et)(a,b,c),!0}catch(a){return B.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}(0,y.I7)()},4970:(a,b,c)=>{"use strict";c.d(b,{Fq:()=>g,wK:()=>h});var d=c(22354),e=c(48083);let f=(0,c(72626).h)("lib/session/agent-session-lifecycle");function g(a,b=Date.now()){(0,e.dj)(a.worktreeId,a.cliToolId,a.instanceId,b);let c=(0,d.VM)(a.cliToolId);f.info("agent-session-generation-begun",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,transport:c.transport})}function h(a){return(0,d.K9)((0,d.VM)(a.target.cliToolId).prepareLaunch(a))}},5363:(a,b,c)=>{"use strict";c.d(b,{v7:()=>d.v7,LP:()=>d.LP,pL:()=>d.pL,GE:()=>d.GE,aq:()=>d.aq,kC:()=>d.kC,xU:()=>x,bZ:()=>y,W8:()=>d.W8,W5:()=>E,_i:()=>F,_C:()=>G});var d=c(24455),e=c(31766),f=c(25129),g=c(75498),h=c(91318),i=c(52277),j=c(52767),k=c(88807),l=c(52660),m=c(63869),n=c(31268),o=c(85164),p=c(77093),q=c(93997),r=c(68901),s=c(72626),t=c(66007);let u=(0,s.h)("auto-yes-poller"),v=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function w(a){return v.get(a)}function x(a){let b=w(a);return b?.lastServerResponseTimestamp??null}function y(a){return v.has(a)}function z(a){let b=w(a);if(b&&(b.consecutiveErrors++,b.currentInterval=(0,d.G)(b.consecutiveErrors),b.consecutiveErrors>=r.ul)){let b=(0,d.Ue)(a),c=(0,d.pL)(a);c&&(0,d.XK)(b,c,"consecutive_errors",(0,d.GE)(a)??void 0),F(a)}}async function A(a,b,c,d){let f=c??r.FW,g=await (0,e.Wh)(a,b,f,d);return(0,o._A)((0,o.aJ)(g))}async function B(a,b,e,r,s,t){let v=(0,d.v7)(a,e,t);try{let z=(0,o.KO)(e),A=(0,f.gF)(r,{...z,...s&&{precomputedLines:s}});if(!A.isPrompt||!A.promptData)return b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,"no_prompt";let B=(x=A.promptData,`${x.type}:${x.question}`);if(b.lastAnsweredPromptKey===B&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<d.UL)return"duplicate";let C="codex"===e?(0,o.E6)(r):null;if(C)return(0,i.ZS)(a,e,t,{reason:"agent-launch-dialog",mode:null,promptType:A.promptData.type}),u.warn("poller:auto-yes-skipped-launch-dialog",{worktreeId:a,cliToolId:e,instanceId:t,dialog:C,promptType:A.promptData.type}),"no_answer";let D=(0,h.n)(a,e,t),E=(0,g.sD)(A.promptData,D);E.suppressedBy&&((0,i.ZS)(a,e,t,{reason:E.suppressedBy,mode:D?.mode??null,promptType:A.promptData.type,pattern:E.pattern}),u.warn("poller:auto-yes-suppressed-by-policy",{worktreeId:a,cliToolId:e,instanceId:t,reason:E.suppressedBy,mode:D?.mode??null,pattern:E.pattern,promptType:A.promptData.type}));let F=E.answer;if(null===F)return"no_answer";let G=n.s.getInstance().getTool(e).getSessionName(a,t);try{await (0,m.t)({sessionName:G,answer:F,cliToolId:e,promptData:A.promptData})}finally{(0,q.gm)(G)}var x,y=Date.now();let H=w(v);H&&(H.lastServerResponseTimestamp=y);let I=w(v);I&&(I.consecutiveErrors=0,I.currentInterval=d.ps),b.lastAnsweredPromptKey=B,b.lastAnsweredAt=Date.now(),u.info("poller:response-sent",{worktreeId:a,cliToolId:e,instanceId:t}),(0,j.r)((0,k.getDbInstance)(),a,e,t??e,"prompt_answered_auto",{promptType:A.promptData.type});let J=null;try{J=(0,l.pG)((0,k.getDbInstance)(),{worktreeId:a,cliToolId:e,instanceId:t??e,promptData:A.promptData,answer:F,answeredBy:"auto",content:A.rawContent||A.cleanContent})}catch(b){u.warn("poller:prompt-audit-record-failed",{worktreeId:a,cliToolId:e,instanceId:t,error:(0,p.u1)(b)})}if(J){let b=J;Promise.resolve().then(c.bind(c,95620)).then(({broadcastMessage:c})=>{c(b.created?"message":"message_updated",{worktreeId:a,message:b.message})}).catch(()=>{})}let[{startPolling:K},{broadcastTerminalSnapshotAfterInteraction:L}]=await Promise.all([Promise.resolve().then(c.bind(c,95220)),Promise.resolve().then(c.bind(c,99508))]);return K(a,e,t),L(a,e,t),"responded"}catch{return z(v),u.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:e,instanceId:t}),"error"}}async function C(a,b,c){let e=(0,d.v7)(a,b,c),f=w(e);if("valid"===function(a,b){if(!b)return"stopped";let c=(0,d.Ue)(a),e=(0,d.pL)(a);if(!e)return F(a),"expired";let f=(0,d.GE)(a)??void 0,g=(0,d.aq)(c,e,f);return g?.enabled?"valid":(F(a),"expired")}(e,f)){try{let g=(0,d.aq)(a,b,c),h=g?.stopPattern?r.FW:r.Ke,i=await A(a,b,h,c),j=i.split("\n");if(function(a,b,c){if(b.stopCheckBaselineLength<0)return b.stopCheckBaselineLength=c.length,!1;let e=b.stopCheckBaselineLength;if(c.length>e){let f=c.substring(e);return b.stopCheckBaselineLength=c.length,(0,d.Cs)(a,f,F)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(e,f,i))return;let k=await B(a,f,b,i,j,c);if("responded"===k)return void D(a,b,c,d.ZO);if("no_prompt"===k){let e=j.slice(-d.Re).join("\n");if((0,o.ut)(b,e))return void D(a,b,c,r.QN)}}catch(d){z(e),u.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,p.u1)(d)})}D(a,b,c)}}function D(a,b,c,e){let f=w((0,d.v7)(a,b,c));if(!f)return;let g=Math.max(e??f.currentInterval,d.ps);f.timerId=setTimeout(()=>{C(a,b,c)},g)}function E(a,b,c){if(!(0,t.h6)(a))return{started:!1,reason:"invalid worktree ID"};let e=c??b,f=(0,d.aq)(a,b,e);if(!f?.enabled)return{started:!1,reason:"auto-yes not enabled"};let g=(0,d.v7)(a,b,e),i=w(g);if(!i&&v.size>=d.fC)return{started:!1,reason:"max concurrent pollers reached"};if(i&&i.cliToolId===b)return{started:!0,reason:"already_running"};i&&F(g);let j={timerId:null,cliToolId:b,instanceId:e,consecutiveErrors:0,currentInterval:d.ps,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1};return v.set(g,j),(0,h.ie)(g),j.timerId=setTimeout(()=>{C(a,b,e)},d.ps),u.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:e}),{started:!0}}function F(a){let b=w(a);b&&(b.timerId&&clearTimeout(b.timerId),v.delete(a),(0,h.ie)(a),u.info("poller:stopped",{compositeKey:a}))}function G(a){(0,d._9)(Array.from(v.keys()),a).forEach(a=>F(a))}},7015:(a,b,c)=>{"use strict";c.d(b,{Ds:()=>g});var d=c(81719);class e{constructor(a,b=3e4){this.cache=new Map,this.allAppsCache=null,this.lastRefresh=0,this.db=a,this.ttl=b}getTTL(){return this.ttl}isStale(){return Date.now()-this.lastRefresh>this.ttl}async refresh(){let a=(0,d.$i)(this.db);for(let b of(this.cache.clear(),a))this.cache.set(b.pathPrefix,b);this.allAppsCache=a,this.lastRefresh=Date.now()}async getByPathPrefix(a){return this.isStale()&&await this.refresh(),this.cache.get(a)??null}async getAll(){return this.isStale()&&await this.refresh(),this.allAppsCache??[]}invalidate(){this.cache.clear(),this.allAppsCache=null,this.lastRefresh=0}invalidateByIssueNo(a){this.invalidate()}}let f=null;function g(a){if(!f){if(!a)throw Error("Database instance required to initialize cache");f=new e(a)}return f}},8988:(a,b,c)=>{"use strict";c.d(b,{R:()=>g});let d=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,e=/Request ID: ([^\s\n]+)/,f=/Summary: (.+?)(?:\n─|$)/s;function g(a){let b={content:a},c=d.exec(a);c&&(b.logFileName=c[2]);let g=e.exec(a);g&&(b.requestId=g[1]);let h=f.exec(a);return h&&(b.summary=h[1].trim()),b}},9516:(a,b,c)=>{"use strict";c.d(b,{Hu:()=>i,Ll:()=>j});let d=["type something","chat about this"],e=/^\s*\[[ xX]\]\s*/,f=/(?:…|\.\.\.)\s*$/,g=new Set(["yes","y","no","n"]);function h(a){return a.replace(e,"").replace(f,"").replace(/\s+/g," ").trim().toLowerCase()}function i(a,b){if("multiple_choice"!==a.type)return null;let c=function(a,b){let c=h(b);if(""===c)return null;let d=a.questions.map((a,b)=>({entry:a,index:b})).filter(({entry:a})=>(function(a,b){let[c,d]=a.length<=b.length?[a,b]:[b,a];return c.length<8?c===d:d.includes(c)})(h(a.question),c));return 1===d.length?d[0]:null}(b,a.question);if(null===c)return null;let{entry:f,index:g}=c,i=new Map(a.options.map(a=>[a.number,a])),j=[];for(let[a,b]of f.choices.entries()){var k;let c=a+1,d=i.get(c);if(!d||!function(a,b){if(""===a||""===b)return!1;if(a===b)return!0;let[c,d]=a.length<=b.length?[a,b]:[b,a];return!(c.length<8)&&d.startsWith(c)}(h(d.label),h(b.label)))return null;j.push({...d,label:`${(k=d.label,e.exec(k)?.[0]??"")}${b.label}`,...b.description?{description:b.description}:{}})}let l=[];for(let b of a.options)!(b.number<=f.choices.length)&&function(a){let b=h(a);return d.some(a=>b===a||b.startsWith(a))}(b.label)&&(j.push(b),l.push(b.number));return j.sort((a,b)=>a.number-b.number),{...a,question:f.question,options:j,isAskUserQuestion:!0,askUserQuestion:{...f.header?{header:f.header}:{},multiSelect:f.multiSelect,questionIndex:g,questionCount:b.questions.length,metaOptionNumbers:l}}}function j(a,b){let c=b.trim();if(/^\d+$/.test(c)){let b=Number.parseInt(c,10);return a.options.some(a=>a.number===b)?{ok:!0,input:String(b)}:{ok:!1,reason:"answer_out_of_range",message:"The option number is outside the range this prompt offers. Use `commandmate capture <worktree-id> --json` to list the current options."}}let d=function(a,b){let c=h(b);if(""===c)return[];let d=a.filter(a=>h(a.label)===c);return d.length>0?d:c.length<2?[]:a.filter(a=>h(a.label).startsWith(c))}(a.options,c);if(1===d.length){let[a]=d;return{ok:!0,input:String(a.number),resolved:{via:"semantic",optionNumber:a.number,optionLabel:a.label}}}return d.length>1?{ok:!1,reason:"unresolvable_answer",message:"The answer matches more than one option label. Answer with an option number."}:a.options.some(a=>!0===a.requiresTextInput)&&!g.has(c.toLowerCase())?{ok:!0,input:b}:{ok:!1,reason:"unresolvable_answer",message:"No option label matches the answer. Answer with an option number (yes/no is not resolved on a numbered picker — Issue #1681)."}}},11508:(a,b,c)=>{"use strict";c.d(b,{H:()=>o,m:()=>p});var d=c(44265),e=c(11665),f=c(40236),g=c(93997),h=c(85164),i=c(22354),j=c(4970),k=c(72626),l=c(20610);let m=(0,k.h)("cli-tools/gemini");function n(a){return a instanceof Error?a.message:String(a)}let o=200;class p extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,e.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("Gemini CLI is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,e.N)(d)){await this.reconcileExistingSession(d),m.info("gemini-session-sessionname");return}(0,j.Fq)({worktreeId:a,cliToolId:i.o,instanceId:c});try{await (0,e.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,l.Uc));let f=(0,j.wK)({target:{worktreeId:a,cliToolId:i.o,instanceId:c},executablePath:this.command,worktreePath:b});await (0,e.V1)(d,f,!0),await new Promise(a=>setTimeout(a,6e3)),await this.waitForReady(d),m.info("started-gemini-session:sessionname")}catch(b){let a=n(b);throw Error(`Failed to start Gemini session: ${a}`)}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,e.Xg)(a,o),d=(0,h.aJ)(c);if(h.wN.test(d))return void m.info("gemini-prompt-detected");!b&&d.includes("Do you trust this folder?")&&(await (0,e.ds)(a,"Enter"),b=!0,m.info("auto-trusted-folder-for"))}catch{}await new Promise(a=>setTimeout(a,1e3))}m.info("gemini-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,e.Xg)(a,o),c=(0,h.aJ)(b);if(h.wN.test(c))return}catch{}await new Promise(a=>setTimeout(a,500))}m.info("gemini-prompt-not")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,e.N)(d))throw Error(`Gemini session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,f.FW)({sessionName:d,message:b,cliToolId:"gemini"}),(0,g.gm)(d),m.info("sent-message-to-gemini-session:sessionna")}catch(b){let a=n(b);throw Error(`Failed to send message to Gemini: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,e.N)(c)&&(await (0,e.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,l.Is)),await (0,e.V1)(c,"/quit",!0),await new Promise(a=>setTimeout(a,l.Zf))),await (0,e.fY)(c)&&m.info("stopped-gemini-session:sessionname")}catch(a){throw m.error("session:stop-failed",{error:n(a)}),a}}constructor(...a){super(...a),this.id="gemini",this.name="Gemini CLI",this.command="gemini"}}},11665:(a,b,c)=>{"use strict";c.d(b,{Ce:()=>w,GW:()=>n,KB:()=>r,N:()=>m,N6:()=>y,Sb:()=>z,V1:()=>p,Xg:()=>s,ds:()=>v,fY:()=>t,jw:()=>o,lA:()=>k,zT:()=>l});var d=c(79646),e=c(28354),f=c(93997),g=c(16983),h=c(72626);let i=(0,e.promisify)(d.execFile),j=(0,h.h)("tmux");function k(a){return`=${a}:`}async function l(a,b={}){let c,d,e,f=b.windowWidth??g.Jn,h=b.windowHeight??g.sO,m=k(a);try{c=(await i("tmux",["show-window-options","-v","-t",m,"window-size"],{timeout:5e3})).stdout.trim();let[a,b]=(await i("tmux",["display-message","-p","-t",m,"#{window_width}|#{window_height}"],{timeout:5e3})).stdout.trim().split("|").map(Number);Number.isFinite(a)&&(d=a),Number.isFinite(b)&&(e=b)}catch{}let n="manual"===c,o=d===f&&e===h;if(n&&o)return!1;try{return n||await i("tmux",["set-window-option","-t",m,"window-size","manual"],{timeout:5e3}),o||await i("tmux",["resize-window","-t",m,"-x",String(f),"-y",String(h)],{timeout:5e3}),!0}catch(b){return j.warn("session-geometry:reconcile-failed",{sessionName:a,error:b instanceof Error?b.message:String(b)}),!1}}async function m(a){try{return await i("tmux",["has-session","-t",k(a)],{timeout:5e3}),!0}catch{return!1}}async function n(){try{let{stdout:a}=await i("tmux",["list-sessions","-F","#{session_name}|#{session_windows}|#{session_attached}"],{timeout:5e3});if(!a||""===a.trim())return[];return a.trim().split("\n").map(a=>{let[b,c,d]=a.split("|");return{name:b,windows:parseInt(c,10)||0,attached:"1"===d}})}catch{return[]}}async function o(a,b){let c,d,e,f,h;"string"==typeof a?(c=a,d=b,e=g.eu,f=g.Jn,h=g.sO):(c=a.sessionName,d=a.workingDirectory,e=a.historyLimit||g.eu,f=a.windowWidth||g.Jn,h=a.windowHeight||g.sO);try{await i("tmux",["new-session","-d","-s",c,"-c",d,"-x",String(f),"-y",String(h)],{timeout:5e3}),await i("tmux",["set-option","-t",k(c),"history-limit",String(e)],{timeout:5e3});try{await i("tmux",["new-window","-k","-t",`${k(c)}0`,"-c",d],{timeout:5e3})}catch(a){j.warn("session-history-limit:window-rebuild-failed",{sessionName:c,historyLimit:e,error:a instanceof Error?a.message:String(a)})}await l(c,{windowWidth:f,windowHeight:h})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to create tmux session: ${a}`)}}async function p(a,b,c=!0){let d=c?["send-keys","-t",k(a),b,"C-m"]:["send-keys","-t",k(a),b];try{await i("tmux",d,{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send keys to tmux session: ${a}`)}}let q=new Set(["Up","Down","Left","Right","Enter","Space","Tab","Escape","BSpace","DC","PageUp","PageDown","Home","End","q"]);async function r(a,b){if(0!==b.length){for(let a of b)if(!q.has(a))throw Error(`Invalid special key: ${a}`);try{for(let c=0;c<b.length;c++)await i("tmux",["send-keys","-t",k(a),b[c]],{timeout:5e3}),c<b.length-1&&await new Promise(a=>setTimeout(a,100))}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send special keys to tmux session: ${a}`)}}}async function s(a,b){let c,d;"number"==typeof b?(c=-b,d="-"):b?(c=b.startLine??-1e4,d=b.endLine??"-"):(c=-1e3,d="-");try{let{stdout:b}=await i("tmux",["capture-pane","-t",k(a),"-p","-e","-S",String(c),"-E",String(d)],{timeout:5e3,maxBuffer:0xa00000});return b}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to capture pane: ${a}`)}}async function t(a){try{return await i("tmux",["kill-session","-t",k(a)],{timeout:5e3}),!0}catch(b){let a=b instanceof Error?b.message:String(b);if(a?.includes("no server running")||a?.includes("can't find session"))return!1;throw Error(`Failed to kill tmux session: ${a}`)}}let u=new Set(["Escape","C-c","C-d","C-m","Enter"]);async function v(a,b){if(!u.has(b))throw Error(`Invalid special key: ${b}`);try{await i("tmux",["send-keys","-t",k(a),b],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to send special key: ${a}`)}}async function w(a){try{await i("tmux",["send-keys","-t",k(a),"C-u"],{timeout:5e3})}catch(b){let a=b instanceof Error?b.message:String(b);throw Error(`Failed to clear tmux input line: ${a}`)}}let x=["Up","Down","Left","Right","Enter","Escape","Tab","BTab","PageUp","PageDown","Home","End","q"];function y(a){return x.includes(a)}async function z(a,b){await r(a,b),(0,f.gm)(a)}},13033:(a,b,c)=>{"use strict";c.d(b,{IW:()=>h,IZ:()=>l,K0:()=>g,Uz:()=>m,l1:()=>f,o0:()=>i,q1:()=>n,tb:()=>k,vQ:()=>j});var d=c(85164);let e=new Map;function f(a){return(0,d._A)((0,d.aJ)(a)).replace(/^\u2503\s?/,"").replace(/\s*\u2503$/,"").trim()}function g(a){let b=a.split("\n"),c=[];for(let a of b){let b=f(a);!(!b||d.sx.some(a=>a.test(b)))&&(d.Md.test(b)||c.push(b))}return c}function h(a){return a.replace(/[\u2500-\u257F]/g,"").replace(/\s{2,}/g," ").trim()}function i(a){let b=(0,d.aJ)(a).split("\n"),c=[];for(let a of b){let b=h(a);b&&(d.J7.some(a=>a.test(b))||c.push(b))}return c}function j(a,b){if(0===a.length||0===b.length)return 0;let c=Math.min(a.length,b.length);for(let d=c;d>=1;d--){let c=a.slice(-d),e=b.slice(0,d),f=!0;for(let a=0;a<d;a++)if(c[a]!==e[a]){f=!1;break}if(f)return d}return 0}function k(a){e.set(a,{lines:[],lastFingerprint:[],pollCount:0})}function l(a,b,c="opencode"){let d=e.get(a);if(!d)return;let f="copilot"===c?i(b):g(b);if(0!==f.length){if(d.pollCount++,0===d.lines.length)d.lines=[...f];else{let a=j(d.lastFingerprint,f);if(a>0){let b=f.slice(a);d.lines.push(...b)}else d.lines.push(...f)}d.lastFingerprint=f.slice(-10)}}function m(a){let b=e.get(a);return b&&0!==b.lines.length?b.lines.join("\n"):""}function n(a){e.delete(a)}},18778:(a,b,c)=>{"use strict";c.d(b,{T:()=>g});var d=c(56791),e=c(41364);let f=(0,c(72626).h)("conversation-logger");async function g(a,b,c,h="claude"){let i=(0,d.getLastUserMessage)(a,b);if(i)try{await (0,e.hM)(b,i.content,c,h)}catch(a){f.error("conversation:log-failed",{error:a instanceof Error?a.message:String(a)})}}},20610:(a,b,c)=>{"use strict";c.d(b,{CV:()=>i,Em:()=>l,Is:()=>g,KI:()=>j,PY:()=>k,Uc:()=>d,Zf:()=>h,pL:()=>e,x9:()=>f});let d=100,e=100,f=200,g=300,h=500,i=500,j=2e3,k=200,l=100},21684:(a,b,c)=>{"use strict";c.d(b,{U:()=>h});var d=c(33873),e=c.n(d),f=c(87447),g=c(8004);function h(){let a=e().join(process.cwd(),"data","logs");return(0,g.T)((0,f._p)("CM_LOG_DIR"),a,"CM_LOG_DIR")}},25129:(a,b,c)=>{"use strict";c.d(b,{gF:()=>H,xn:()=>A});var d=c(72626),e=c(68652),f=c(85164);let g=/^\s*[\u276F\u25CF\u203A][^\d]*(\d+)(?:\.(?!\d)|\s{2,})\s*(.+)$/,h=/^\s*[^\d]{0,3}(\d+)(?:\.(?!\d)|\s+)\s*(.+)$/,i=/^\s*\d{1,3}\s+tasks?\s+\(\d+\s+done\b/i,j=/^\s*[◼◻]\s/,k=/^[-─]+$/,l=/^\s*\[[^\]]*\d+\s+lines?\]/i,m=/^\s*[…]?\s*[+\-↑↓⏵⏷]?\s*\d+\s+(?:pending|more|completed)\b/i,n=/Esc\s+to\s+cancel\s*[·•]\s*Tab\s+to\s+amend/i,o=/Enter\s+to\s+select\b.*\bnavigate\b/i,p=/press\s+(?:enter|number)\s+to\s+confirm/i,q=/press\s+number\s+to\s+confirm/i,r=/(?:select|choose|pick|which|what|how|where|enter|type|specify|confirm|approve|accept|reject|decide|preference|option)/i,s=[/type\s+here/i,/tell\s+(me|claude)/i,/enter\s+/i,/custom/i,/differently/i];function t(a,b){if(0===b.length)return!0;let c=b[0].number;return a<c&&a>=c-2}function u(a){return{isPrompt:!1,cleanContent:a.trim()}}function v(a){return 0!==a.length&&!!(a.includes("?")||a.includes("?")||r.test(a))}function w(a,b){let c=b.endsWith("?")||b.endsWith("?");return!!(!c&&/^\s{2,}[^\d]/.test(a)&&!/^\s*\d+\./.test(a)||!c&&/^\s{4,}/.test(a)&&!/^\s*\d+\.\s/.test(a)||b.length<5&&!c||/^[\/~]/.test(b)||b.length>=2&&/^[a-zA-Z0-9_-]+$/.test(b))}let x=/^[⏺⎿●○•✔✓✖✗✘›»❯└├>]/;function y(a,b){let c=Math.max(0,b-12);for(let d=b-1;d>=c;d--)if(function(a){if(void 0===a)return!1;let b=a.trim();return""!==b&&(x.test(b)||k.test(b))}(a[d]))return d+1;return c}function z(a,b,c){let d=a.slice(b,c).map(a=>a.trimEnd()).join("\n").trim();return d.length>0?d:void 0}function A(a,b="yes_no"){let c=a.toLowerCase().trim();if("multiple_choice"===b){if(/^\d+$/.test(c))return c;throw Error("Invalid answer for multiple choice prompt. Expected a number.")}if("yes"===c||"y"===c)return"y";if("no"===c||"n"===c)return"n";throw Error("Invalid answer for yes/no prompt. Expected 'yes', 'no', 'y', or 'n'.")}let B=(0,d.h)("prompt-detector"),C=null;function D(a){let b=a.split("\n"),c=(b.length>200?b.slice(-200):b).join("\n");return c.length>5e3&&(c=c.slice(-5e3)),c}let E=[{regex:/^(.+)\s+\(y\/n\)\s*$/m},{regex:/^(.+)\s+\[y\/N\]\s*$/m,defaultOption:"no"},{regex:/^(.+)\s+\[Y\/n\]\s*$/m,defaultOption:"yes"},{regex:/^(.+)\s+\(yes\/no\)\s*$/m}];function F(a,b,c,d){let{startLine:e,endLine:f}=function(a,b,c){let d=c.index??0,e=a=>a.split("\n").length-1,f=b+e(a.slice(0,d));return{startLine:f,endLine:f+e(c[0])}}(b,c,d);return z(a,y(a,e),f+1)}function G(a,b,c,d,e){return{isPrompt:!0,promptData:{type:"yes_no",question:a,options:["yes","no"],status:"pending",...void 0!==e&&{defaultOption:e},instructionText:c,...void 0!==d&&{approvalTarget:d}},cleanContent:b,rawContent:c}}function H(a,b){let c=(0,e.N)(a),d=c===a&&b?.precomputedLines?b.precomputedLines:c.split("\n"),r=d.slice(-50).join("\n"),x=r===C;x||B.debug("detectPrompt:start",{outputLength:c.length}),C=r;let A=d.slice(-20).join("\n"),H=Math.max(0,d.length-20),I=function(a,b,c){a=(0,e.N)(a);let d=b?.requireDefaultIndicator??!0,r=a.split("\n"),x=r.length;for(;x>0&&""===r[x-1].trim();)x--;let A=Math.max(0,x-50),B=!1;for(let a=x-1;a>=A;a--){let b=o.test(r[a]);if(n.test(r[a])||b){x=a,B=b;break}}let C=r.slice(A,x);for(let b of C)if(f.l8.test(b))return u(a);let D=!1,E=!1;for(let a of C){let b=a.trim();if(!D&&p.test(b)){D=!0,q.test(b)&&(E=!0);break}}if(d){let b=!1;for(let a of C){let c=a.trim();if(g.test(c)){b=!0;break}}if(!b&&!D)return u(a)}let F=[],G=-1,H=0,I=function(a,b,c){let d=new Set;for(let e=Math.max(0,b);e<Math.min(c,a.length);e++)if(i.test(a[e])){d.add(e);for(let b=e+1;b<Math.min(c,a.length);b++){let c=a[b];if(!j.test(c)&&!m.test(c))break;d.add(b)}}return d}(r,A,x);for(let b=x-1;b>=A;b--){let c=r[b].trim();if(I.has(b)||l.test(c)||m.test(c)){H++;continue}let d=c.match(g);if(d){let a=parseInt(d[1],10);if(a<=20&&t(a,F)){let b=d[2].trim();F.unshift({number:a,label:b,isDefault:!0}),H=0;continue}}let e=c.match(h);if(e){let a=parseInt(e[1],10);if(a>20);else if(t(a,F)){let b=e[2].trim();F.unshift({number:a,label:b,isDefault:!1}),H=0;continue}}if(0===F.length&&(c.startsWith("❯")||c.startsWith("●")||c.startsWith("›")))return u(a);if(F.length>0&&c&&!k.test(c)){let a=r[b];if(/^\s{4,}/.test(a)&&w(a,c)){if(++H>25){G=b;break}continue}if(v(c)){G=b;break}if(w(a,c)){if(++H>(/^\s{4,}/.test(a)?25:5)){G=b;break}continue}G=b;break}}if(!function(a){if(0===a.length||1!==a[0])return!1;let b=0;for(let c=1;c<a.length;c++){let d=a[c]-a[c-1];if(d<1||d>2||(2===d&&b++,b>1))return!1}return!0}(F.map(a=>a.number)))return u(a);let J=F.some(a=>a.isDefault),K=d&&D;if(F.length<2||d&&!J&&!K||!d&&!J&&(-1===G||!v(r[G]?.trim()??"")&&!function(a,b,c,d){let e=Math.max(d,b-3);for(let c=b-1;c>=e;c--){let b=a[c]?.trim()??"";if(!(!b||k.test(b))&&v(b))return!0}return!1}(r,G,0,A)))return u(a);let L=function(a,b){if(b<0)return"Please select an option:";let c=[];for(let d=Math.max(0,b-5);d<=b;d++){let b=a[d].trim();b&&!k.test(b)&&c.push(b)}return c.join(" ")}(r,G),M=function(a,b,c){if(b<0)return;let d=Math.max(0,b-19),e=a.slice(d,c).map(a=>a.trimEnd()).join("\n").trim();return e.length>0?e:void 0}(r,G,x),N=function(a,b,c){if(!(b<0))return z(a,y(a,b),c)}(r,G,x);var O=a,P=D?E?"answer_only":"answer_then_enter":void 0,Q=B;let{instructionText:R,approvalTarget:S}={instructionText:M,approvalTarget:N}??{};return{isPrompt:!0,promptData:{type:"multiple_choice",question:L.trim(),options:F.map(a=>{let b=s.some(b=>b.test(a.label));return{number:a.number,label:a.label,isDefault:a.isDefault,requiresTextInput:b}}),status:"pending",instructionText:R,...void 0!==S?{approvalTarget:S}:{},...P?{submitMode:P}:{},...Q?{isAskUserQuestion:!0}:{}},cleanContent:L.trim(),rawContent:c(O.trim())}}(c,b,D);if(I.isPrompt)return x||B.info("detectPrompt:multipleChoice",{isPrompt:!0,question:I.promptData?.question,optionsCount:I.promptData?.options?.length}),I;let J=A.trim();for(let a of E){let b=A.match(a.regex);if(b){let c=b[1].trim();return G(c,c,J,F(d,A,H,b),a.defaultOption)}}let K=A.match(/^(.*?)Approve\?\s*$/m);if(K){let a=K[1].trim();return G(a?`${a} Approve?`:"Approve?",a||"Approve?",J,F(d,A,H,K))}return x||B.debug("detectPrompt:complete",{isPrompt:!1}),{isPrompt:!1,cleanContent:c.trim()}}},26838:(a,b,c)=>{"use strict";c.d(b,{Mj:()=>k,Sw:()=>j,lX:()=>l});var d=c(29021),e=c(33873),f=c(90164);let g=/^v?\d+\.\d+\.\d+$/,h=/^[a-zA-Z0-9.\-\s_v]+$/,i=globalThis.__versionCheckCache??(globalThis.__versionCheckCache={result:null,fetchedAt:0,rateLimitResetAt:null});function j(){return function(){try{let a=(0,d.readFileSync)((0,e.join)(process.cwd(),"package.json"),"utf-8"),b=JSON.parse(a);if("commandmate"===b.name&&"string"==typeof b.version&&b.version.length>0)return b.version;return null}catch{return null}}()??"0.26.0"}function k(){return j()}async function l(){try{var a,b,c;if(null!==i.result&&Date.now()-i.fetchedAt<36e5||i.rateLimitResetAt&&(!(Date.now()>=i.rateLimitResetAt)||(i.rateLimitResetAt=null,0)))return i.result;let d=await fetch("https://api.github.com/repos/Kewton/CommandMate/releases/latest",{headers:{Accept:"application/vnd.github+json","User-Agent":`CommandMate/${k()}`},cache:"no-store",signal:AbortSignal.timeout(5e3)});if(403===d.status)return function(a){let b=a.headers.get("X-RateLimit-Reset");b?i.rateLimitResetAt=1e3*parseInt(b,10):i.rateLimitResetAt=Date.now()+36e5}(d),i.result;if(!d.ok)return i.result;let e=await d.json(),j=k(),l=e.tag_name.replace(/^v/,""),m={hasUpdate:function(a,b){if(!g.test(a)||!g.test(b))return!1;let c=a=>a.replace(/^v/,"").split(".").map(Number),[d,e,f]=c(a),[h,i,j]=c(b);return h!==d?h>d:i!==e?i>e:j>f}(j,e.tag_name),currentVersion:j,latestVersion:l,releaseUrl:(a=e.html_url).startsWith(f.Dk)?a:null,releaseName:(b=e.name,c=e.tag_name,h.test(b)&&b.length<=128?b:c),publishedAt:e.published_at};return i.result=m,i.fetchedAt=Date.now(),m}catch{return i.result}}},30008:(a,b,c)=>{"use strict";c.d(b,{F1:()=>g,_G:()=>i,j0:()=>f,rB:()=>h,xF:()=>j});var d=c(48083),e=c(67882);let f=3e5,g="CM_STRUCTURED_SEND_GUARD";function h(a){return"notification"===a.source?e.Oh.PERMISSION_PROMPT:e.Oh.PERMISSION_REQUEST}function i({worktreeId:a,cliToolId:b,instanceId:c,scraper:e,ignoreStructured:i=!1,now:j=Date.now()}){var k,l,m;let n=(0,d.P5)(a,b,c,j);null!==n&&("waiting"===e.status?(0,d.zA)(a,b,c,j):n.scraperCorroborated&&((0,d.m5)(a,b,c),n=null));let o=e.hasActivePrompt||null!==n;if(e.hasActivePrompt)return{waiting:o,scraperWaiting:!0,structured:n,blocksSend:!0,blockedBy:"scraper",blockReason:e.reason,structuredSendBlockSuppressed:null};if(null===n)return{waiting:o,scraperWaiting:!1,structured:null,blocksSend:!1,blockedBy:null,blockReason:null,structuredSendBlockSuppressed:null};let p=(k=n,l=i,m=j,l?"caller_opt_out":!function(){let a=process.env[g]?.trim().toLowerCase();return"off"===a||"0"===a||"false"===a}()?m-k.at>=f?"expired":null:"disabled");return{waiting:o,scraperWaiting:!1,structured:n,blocksSend:null===p,blockedBy:null===p?"structured":null,blockReason:null===p?h(n):null,structuredSendBlockSuppressed:p}}function j({worktreeId:a,cliToolId:b,instanceId:c,scraper:e,now:f=Date.now()}){let g=(0,d.P5)(a,b,c,f);return{waiting:e.hasActivePrompt||null!==g,scraperWaiting:e.hasActivePrompt,structured:g}}},31268:(a,b,c)=>{"use strict";c.d(b,{s:()=>O});var d=c(44265),e=c(57905);class f extends d.M{async isInstalled(){return await (0,e.zw)()}async isRunning(a,b){return await (0,e.Yq)(a,b)}async startSession(a,b,c){await (0,e.R7)({worktreeId:a,worktreePath:b,instanceId:c})}async sendMessage(a,b,c){await (0,e.pU)(a,b,c)}supportsImage(){return!0}async sendMessageWithImage(a,b,c,d){let e=`
2
- ![](${c})`,f=b?`${b}${e}`:e;await this.sendMessage(a,f,d)}async killSession(a,b){await (0,e.VU)(a,b)}constructor(...a){super(...a),this.id="claude",this.name="Claude Code",this.command="claude"}}var g=c(11665),h=c(40236),i=c(93997),j=c(85164),k=c(72626),l=c(22354),m=c(4970),n=c(20610);let o=(0,k.h)("cli-tools/codex");function p(a){return a instanceof Error?a.message:String(a)}class q extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("Codex CLI is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),o.info("codex-session-sessionname");return}(0,m.Fq)({worktreeId:a,cliToolId:l.c1,instanceId:c});try{await (0,g.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let e=(0,m.wK)({target:{worktreeId:a,cliToolId:l.c1,instanceId:c},executablePath:this.command,worktreePath:b});await (0,g.V1)(d,e,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(d),o.info("started-codex-session:sessionname")}catch(b){let a=p(b);throw Error(`Failed to start Codex session: ${a}`)}}async waitForReady(a){let b=!1,c=!1,d=!1,e=0;for(let f=0;f<30;f++){try{let f=await (0,g.Xg)(a,50),h=(0,j.aJ)(f);if((0,j.zZ)(h))return void o.info("codex-prompt-detected");if(!d&&function(a){return j.XV.every(b=>a.includes(b))}(h)){await (0,g.V1)(a,"3",!1),d=!0,o.info("codex-hooks-review-declined"),await new Promise(a=>setTimeout(a,n.CV));continue}let i=(0,j.E6)(h);if(("hooks-list"===i||"hooks-detail"===i)&&e<4){await (0,g.ds)(a,"Escape"),e++,o.info("codex-hooks-screen-escaped"),await new Promise(a=>setTimeout(a,n.CV));continue}let k=(0,j.Qh)(h);if("update"===k&&!b){await (0,g.V1)(a,"2",!1),b=!0,o.info("skipped-codex-update"),await new Promise(a=>setTimeout(a,n.CV));continue}if("press-enter"===k){await (0,g.ds)(a,"Enter"),o.info("dismissed-codex-notification"),await new Promise(a=>setTimeout(a,n.CV));continue}if("trust"===k&&!c){await (0,g.V1)(a,"1",!1),c=!0,o.info("auto-trusted-folder-for"),await new Promise(a=>setTimeout(a,n.CV));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}o.info("codex-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if((0,j.zZ)(c))return}catch{}await new Promise(a=>setTimeout(a,500))}throw o.info("codex-prompt-not"),Error("Codex prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Codex session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,h.FW)({sessionName:d,message:b,cliToolId:"codex"}),(0,i.gm)(d),o.info("sent-message-to-codex-session:sessionnam")}catch(b){let a=p(b);throw Error(`Failed to send message to Codex: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,n.Zf))),await (0,g.fY)(c)&&o.info("stopped-codex-session:sessionname")}catch(a){throw o.error("session:stop-failed",{error:p(a)}),a}}constructor(...a){super(...a),this.id="codex",this.name="Codex CLI",this.command="codex"}}var r=c(11508),s=c(15194),t=c(88807),u=c(56791);let v=(0,k.h)("cli-tools/vibe-local");function w(a){return a instanceof Error?a.message:String(a)}class x extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("vibe-local is not installed or not in PATH");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),v.info("vibe-local-session");return}try{await (0,g.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let c="vibe-local -y";try{let b=(0,t.getDbInstance)(),d=(0,u.getWorktreeById)(b,a);d?.vibeLocalModel&&s.QP.test(d.vibeLocalModel)&&(c+=` -m ${d.vibeLocalModel}`);let e=d?.vibeLocalContextWindow;(0,s.FV)(e)&&(c+=` --context-window ${Number(e)}`)}catch{}await (0,g.V1)(d,c,!0),await new Promise(a=>setTimeout(a,5e3)),v.info("started-vibe-local-session:sessionname")}catch(b){let a=w(b);throw Error(`Failed to start Vibe Local session: ${a}`)}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Vibe Local session ${d} does not exist. Start the session first.`);try{await (0,h.FW)({sessionName:d,message:b,cliToolId:"vibe-local",submitEnterCount:2,interEnterWaitMs:n.PY}),(0,i.gm)(d),v.info("sent-message-to-vibe-local-session:sessi")}catch(b){let a=w(b);throw Error(`Failed to send message to Vibe Local: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,n.Is)),await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,n.Zf))),await (0,g.fY)(c)&&v.info("stopped-vibe-local-session:sessionname")}catch(a){throw v.error("session:stop-failed",{error:w(a)}),a}}constructor(...a){super(...a),this.id="vibe-local",this.name="Vibe Local",this.command="vibe-local"}}var y=c(41466),z=c(79646),A=c(56263),B=c(21758),C=c(54633),D=c(77093);let E=(0,k.h)("cli-tools/copilot"),F=new Set(["model","agent","theme"]);class G extends d.M{async isInstalled(){try{return await new Promise((a,b)=>{(0,z.execFile)("gh",["--version"],{timeout:5e3},c=>{c?b(c):a()})}),await new Promise((a,b)=>{(0,z.execFile)("gh",["copilot","--help"],{timeout:5e3},c=>{c?b(c):a()})}),!0}catch{return!1}}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("GitHub Copilot CLI is not installed. Install with: gh extension install github/gh-copilot");let d=this.getSessionName(a,c);if(await (0,g.N)(d)){await this.reconcileExistingSession(d),E.info("copilot-session-exists");return}(0,m.Fq)({worktreeId:a,cliToolId:C.V,instanceId:c});try{await (0,g.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let e=(0,m.wK)({target:{worktreeId:a,cliToolId:C.V,instanceId:c},executablePath:B.nL,worktreePath:b});await (0,g.V1)(d,e,!0),await new Promise(a=>setTimeout(a,4e3)),await this.waitForReady(d),E.info("started-copilot-session")}catch(b){let a=(0,D.u1)(b);throw Error(`Failed to start Copilot session: ${a}`)}}async waitForReady(a){for(let b=0;b<30;b++){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(j.Du.test(c))return void E.info("copilot-prompt-detected")}catch{}await new Promise(a=>setTimeout(a,1e3))}E.info("copilot-prompt-detection-timeout")}async waitForPrompt(a,b=15e3){let c=Date.now();for(;Date.now()-c<b;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(j.Du.test(c))return}catch{}await new Promise(a=>setTimeout(a,500))}E.info("copilot-prompt-not-detected")}extractSlashCommand(a){let b=a.trim();if(!b.startsWith("/"))return null;let c=b.match(/^\/(\S+)/);return c?c[1]:null}async waitForSelectionList(a){let b=Date.now();for(;Date.now()-b<5e3;){await new Promise(a=>setTimeout(a,300));try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(j.Mi.test(c))return E.info("copilot-selection-list-detected"),!0}catch{}}return E.info("copilot-selection-list-not-detected-timeout"),!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d);let a=this.extractSlashCommand(b);if(a&&F.has(a)){await (0,g.V1)(d,b,!0),await this.waitForSelectionList(d),(0,i.gm)(d),E.info("sent-selection-list-command-to-copilot",{command:a});return}await (0,h.FW)({sessionName:d,message:b,cliToolId:"copilot",textInputWaitMs:A.L1,verifyDelayMs:A.wp}),(0,i.gm)(d),E.info("sent-message-to-copilot-session")}catch(b){let a=(0,D.u1)(b);throw Error(`Failed to send message to Copilot: ${a}`)}}async sendModelCommand(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);try{await (0,g.V1)(d,`/model ${b}`,!0),await this.waitForSelectionList(d)&&await (0,g.ds)(d,"C-m"),await this.waitForPrompt(d,A.pL),(0,i.gm)(d),E.info("copilot-model-switched",{model:b})}catch(c){let a=(0,D.u1)(c);throw Error(`Failed to switch Copilot model to ${b}: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,n.Is)),await (0,g.V1)(c,"exit",!0),await new Promise(a=>setTimeout(a,n.Zf))),await (0,g.fY)(c)&&E.info("stopped-copilot-session")}catch(a){throw E.error("session:stop-failed",{error:(0,D.u1)(a)}),a}}constructor(...a){super(...a),this.id="copilot",this.name="Copilot",this.command="gh"}}let H=(0,k.h)("cli-tools/antigravity");function I(a){return a instanceof Error?a.message:String(a)}let J=/\?\s+for\s+shortcuts/,K=/Do you trust the contents of this project\?/;function L(a){return J.test(a)&&!K.test(a)}class M extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,c,d){if(!await this.isInstalled())throw Error("Antigravity CLI (agy) is not installed or not in PATH");let e=this.getSessionName(a,c);if(await (0,g.N)(e)){await this.reconcileExistingSession(e),H.info("antigravity-session-exists");return}(0,m.Fq)({worktreeId:a,cliToolId:l.F0,instanceId:c});try{await (0,g.jw)({sessionName:e,workingDirectory:b}),await new Promise(a=>setTimeout(a,n.Uc));let f=(0,m.wK)({target:{worktreeId:a,cliToolId:l.F0,instanceId:c},executablePath:this.command,worktreePath:b}),h=d?`${f} --model '${d.replace(/'/g,"'\\''")}'`:f;await (0,g.V1)(e,h,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(e),H.info("started-antigravity-session")}catch(b){let a=I(b);throw Error(`Failed to start Antigravity session: ${a}`)}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,g.Xg)(a,50),d=(0,j.aJ)(c);if(L(d))return void H.info("antigravity-prompt-detected");if(!b&&K.test(d)){await (0,g.ds)(a,"Enter"),b=!0,H.info("auto-trusted-folder-for-antigravity"),await new Promise(a=>setTimeout(a,500));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}H.info("antigravity-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,g.Xg)(a,50),c=(0,j.aJ)(b);if(L(c))return}catch{}await new Promise(a=>setTimeout(a,500))}throw H.info("antigravity-prompt-not-ready"),Error("Antigravity prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,g.N)(d))throw Error(`Antigravity session ${d} does not exist. Start the session first.`);try{await this.waitForPrompt(d),await (0,h.FW)({sessionName:d,message:b,cliToolId:"antigravity"}),(0,i.gm)(d),H.info("sent-message-to-antigravity-session")}catch(b){let a=I(b);throw Error(`Failed to send message to Antigravity: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,g.N)(c)&&(await (0,g.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,n.Zf)));let a=await (0,g.fY)(c);(0,i.gm)(c),a&&H.info("stopped-antigravity-session")}catch(a){throw H.error("session:stop-failed",{error:I(a)}),a}}constructor(...a){super(...a),this.id="antigravity",this.name="Antigravity CLI",this.command="agy"}}var N=c(95220);class O{constructor(){this.tools=new Map,this.tools.set("claude",new f),this.tools.set("codex",new q),this.tools.set("gemini",new r.m),this.tools.set("vibe-local",new x),this.tools.set("opencode",new y.Ui),this.tools.set("copilot",new G),this.tools.set("antigravity",new M)}static getInstance(){return O.instance||(O.instance=new O),O.instance}getTool(a){let b=this.tools.get(a);if(!b)throw Error(`CLI tool '${a}' not found`);return b}getAllTools(){return Array.from(this.tools.values())}async getToolInfo(a){let b=this.getTool(a),c=await b.isInstalled();return{id:b.id,name:b.name,command:b.command,installed:c}}async getAllToolsInfo(){return Promise.all(this.getAllTools().map(async a=>{let b=await a.isInstalled();return{id:a.id,name:a.name,command:a.command,installed:b}}))}async getInstalledTools(){return(await this.getAllToolsInfo()).filter(a=>a.installed)}stopPollers(a,b,c){(0,N.stopPolling)(a,b,c)}}},31766:(a,b,c)=>{"use strict";c.d(b,{Wh:()=>p,WD:()=>q,K1:()=>o});var d=c(31268),e=c(72626),f=c(11665);let g={streamingOutput:!1,explicitResize:!1,snapshotFallback:!0};class h{async unsubscribe(){}}class i{async ensureSession(a,b){await (0,f.N)(a)||await (0,f.jw)(a,b)}async sessionExists(a){return(0,f.N)(a)}async sendInput(a,b){await (0,f.V1)(a,b)}async sendSpecialKey(a,b){if("Escape"!==b&&"C-c"!==b&&"C-d"!==b&&"C-m"!==b&&"Enter"!==b)throw Error(`Unsupported special key for PollingTmuxTransport: ${b}`);await (0,f.ds)(a,b)}async resize(){throw Error("PollingTmuxTransport does not support explicit resize")}async captureSnapshot(a,b){return(0,f.Xg)(a,b)}async subscribe(){return new h}getCapabilities(){return g}async killSession(a){return(0,f.fY)(a)}}let j=null;var k=c(93997);let l=(0,e.h)("cli-session");function m(){return j||(j=new i),j}function n(a,b,c){let e=d.s.getInstance().getTool(b),f=e.getSessionName(a,c);return{cliTool:e,sessionName:f}}async function o(a,b,c){let{sessionName:d}=n(a,b,c);return m().sessionExists(d)}async function p(a,b,c=1e3,d){let e=l.withContext({worktreeId:a,cliToolId:b});e.debug("captureSessionOutput:start",{requestedLines:c});let{cliTool:f,sessionName:g}=n(a,b,d),h=m();try{let a=await (0,k.aq)(g,c,async()=>{if(!await h.sessionExists(g))throw Error(`${f.name} session ${g} does not exist`);return await h.captureSnapshot(g,{startLine:-k.xE})});return e.debug("captureSessionOutput:success",{actualLines:a.split("\n").length,lastFewLines:a.split("\n").slice(-3).join(" | ")}),a}catch(b){let a=b instanceof Error?b.message:String(b);if(a.includes("does not exist"))throw e.debug("captureSessionOutput:sessionNotFound",{sessionName:g}),b;throw e.error("captureSessionOutput:failed",{error:a}),Error(`Failed to capture ${f.name} output: ${a}`)}}async function q(a,b,c=5e3,d){let e=l.withContext({worktreeId:a,cliToolId:b});e.debug("captureSessionOutputFresh:start",{requestedLines:c});let{cliTool:f,sessionName:g}=n(a,b,d),h=m();try{let a=await h.captureSnapshot(g,{startLine:-c});return a.length>0?(0,k.vF)(g,a,c):(0,k.gm)(g),(0,k.wd)(a,c)}catch(b){(0,k.gm)(g);let a=b instanceof Error?b.message:String(b);throw e.error("captureSessionOutputFresh:failed",{error:a}),Error(`Failed to capture ${f.name} output: ${a}`)}}},34405:(a,b,c)=>{"use strict";c.d(b,{G:()=>e,_:()=>d});let d=1e4,e=1e3},39727:()=>{},40236:(a,b,c)=>{"use strict";c.d(b,{FW:()=>l});var d=c(11665),e=c(93997),f=c(85164),g=c(20610);let h=(0,c(72626).h)("cli-tools/submit-verified-sender"),i=/\[Pasted text[\s#]/,j=/^\/[A-Za-z]/,k=/^\s*(?:ctx:\d+%\s*)?[>❯›]/;async function l(a){let{sessionName:b,message:c,cliToolId:l,textInputWaitMs:m=g.pL,submitEnterCount:n=1,interEnterWaitMs:o=g.pL,verifyAttempts:p=4,verifyDelayMs:q=g.x9}=a;await (0,d.V1)(b,c,!1),await new Promise(a=>setTimeout(a,m));for(let a=0;a<Math.max(1,n);a++)await (0,d.KB)(b,["Enter"]),a<n-1&&await new Promise(a=>setTimeout(a,o));let r=Math.max(1,p);for(let a=0;a<r;a++){await new Promise(a=>setTimeout(a,q));let g=function(a,b,c){let d=(0,f.aJ)(a).split("\n").slice(-12),e=d.join("\n");if((0,f.ut)(b,e))return"submitted";let g=function(a){for(let b=a.length-1;b>=0;b--)if(k.test(a[b]))return a[b];return null}(d);if(!g)return"submitted";let h=g.replace(k,"").trim();return 0===h.length?"submitted":i.test(g)||function(a,b){let c=b.split("\n").map(a=>a.trim()).find(a=>a.length>0)??"";return 0!==c.length&&c.startsWith(a)}(h,c)?"pending":j.test(h)?"replaced":"submitted"}(await (0,d.Xg)(b,{startLine:-12}),l,c);if("submitted"===g)return void(0,e.gm)(b);if("replaced"===g){try{await (0,d.Ce)(b)}catch(a){h.error("submit-clear-input-failed",{sessionName:b,cliToolId:l,error:a instanceof Error?a.message:String(a)})}throw(0,e.gm)(b),h.error("submit-replaced-by-tui-completion",{sessionName:b,cliToolId:l,attempt:a}),Error(`Message was replaced by a TUI autocompletion for session ${b}; the input no longer matches the sent text. Cleared the input line without submitting to avoid executing a different command.`)}h.warn("submit-not-confirmed:resending-enter",{sessionName:b,cliToolId:l,attempt:a}),await (0,d.KB)(b,["Enter"])}throw(0,e.gm)(b),h.error("submit-verification-failed",{sessionName:b,cliToolId:l,attempts:r}),Error(`Message submit could not be confirmed for session ${b} after ${r} attempts (typed but unsent)`)}},41364:(a,b,c)=>{"use strict";c.d(b,{Gv:()=>o,hM:()=>n});var d=c(79748),e=c.n(d),f=c(33873),g=c.n(f),h=c(1634),i=c(21684),j=c(72626),k=c(15194);function l(a="claude"){return g().join((0,i.U)(),a)}async function m(a="claude"){let b=l(a);try{await e().access(b)}catch{await e().mkdir(b,{recursive:!0})}}async function n(a,b,c,d="claude"){await m(d);let f=function(a,b="claude"){let c=(0,h.GP)(new Date,"yyyy-MM-dd"),d=`${a}-${c}.md`,e=l(b);return g().join(e,d)}(a,d),i=(0,h.GP)(new Date,"yyyy-MM-dd HH:mm:ss"),j="";try{j=await e().readFile(f,"utf-8")}catch{let b=(0,k.hR)(d)?k.ef[d]:d;j=`# ${b} Conversation Log: ${a}
3
-
4
- Created: ${i}
5
-
6
- ---
7
-
8
- `}j+=`## Conversation at ${i}
9
-
10
- `,j+=`### User
11
-
12
- `,j+=`${b}
13
-
14
- `;let o=(0,k.hR)(d)?k.ef[d]:d;return j+=`### ${o}
15
-
16
- `,j+=`${c}
17
-
18
- `,j+=`---
19
-
20
- `,await e().writeFile(f,j,"utf-8"),f}async function o(a,b="all"){let c="all"===b?[...k.XH]:[b],d=[];for(let b of c){await m(b);let c=l(b);try{let b=(await e().readdir(c)).filter(b=>b.startsWith(`${a}-`)&&b.endsWith(".md")).map(a=>g().join(c,a));d.push(...b)}catch{}}return d.sort().reverse()}(0,j.h)("log-manager")},41466:(a,b,c)=>{"use strict";c.d(b,{xT:()=>V,Ui:()=>W});var d=c(44265),e=c(11665),f=c(40236),g=c(93997),h=c(29021),i=c(33873),j=c(72626);let k=(0,j.h)("cli-tools/opencode-config"),l=/^[a-zA-Z0-9._:/-]{1,100}$/,m=/^[a-zA-Z0-9._:/@-]{1,200}$/;async function n(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:11434/api/tags",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return k.warn("ollama-api-returned"),{};let e=await d.text();if(e.length>1048576)return k.warn("ollama-api-response"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.models))return k.warn("invalid-ollama-api"),{};for(let b of f.models.slice(0,100))"string"==typeof b?.name&&l.test(b.name)&&(a[b.name]={name:function(a){let b=String(a.name),c=a.details;if(!c)return b;let d=[b];return"string"==typeof c.parameter_size&&/^[\d.]+[BKMGT]?B?$/i.test(c.parameter_size)&&d.push(c.parameter_size),"string"==typeof c.quantization_level&&/^[A-Z0-9_]{1,20}$/i.test(c.quantization_level)&&d.push(c.quantization_level),d.length>1?`${b} (${d.slice(1).join(", ")})`:b}(b)})}catch(a){a instanceof Error&&"AbortError"===a.name?k.warn("ollama-api-timeout"):k.warn("failed-to-fetch")}return a}async function o(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:1234/v1/models",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return k.warn("lm-studio-api"),{};let e=await d.text();if(e.length>1048576)return k.warn("lm-studio-api"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.data))return k.warn("invalid-lm-studio"),{};for(let b of f.data.slice(0,100))"string"==typeof b?.id&&m.test(b.id)&&(a[b.id]={name:b.id})}catch(a){a instanceof Error&&"AbortError"===a.name?k.warn("lm-studio-api"):k.warn("failed-to-fetch")}return a}async function p(a){let b=function(a){let b=i.resolve(a);try{if(!h.lstatSync(b).isDirectory())throw Error(`Path is not a directory: ${b}`)}catch(a){if("ENOENT"===a.code)throw Error(`Path does not exist: ${b}`);throw a}return h.realpathSync(b)}(a),c=i.join(b,"opencode.json");if(h.existsSync(c))return;let[d,e]=await Promise.all([n(),o()]),f={};if(Object.keys(d).length>0&&(f.ollama={npm:"@ai-sdk/openai-compatible",name:"Ollama (local)",options:{baseURL:"http://localhost:11434/v1"},models:d}),Object.keys(e).length>0&&(f.lmstudio={npm:"@ai-sdk/openai-compatible",name:"LM Studio (local)",options:{baseURL:"http://localhost:1234/v1"},models:e}),0!==Object.keys(f).length)try{h.writeFileSync(c,JSON.stringify({$schema:"https://opencode.ai/config.json",provider:f},null,2),{encoding:"utf-8",flag:"wx"})}catch(a){if("EEXIST"===a.code)return;k.warn("failed-to-write-opencodejson:error-insta")}}var q=c(79646),r=c(28354),s=c(4970),t=c(49791),u=c(62887),v=c(48083),w=c(36051),x=c(50474),y=c(57510),z=c(25071),A=c(97709),B=c(75356),C=c(98211),D=c(85322);let E=(0,j.h)("lib/hooks/sources/opencode/ingest");async function F(a,b,d){let e=(0,A.VM)(D.k),f=(0,C.Lu)(b.raw,b.receivedAt);if(!f)return void E.info("opencode-permission-unparsed",{worktreeId:a.worktreeId,instanceId:d});let{resolvePermissionRequest:g}=await c.e(3241).then(c.bind(c,43241)),h=e.parsePermissionRequest(b.raw),i=g({worktreeId:a.worktreeId,cliToolId:D.k,instanceId:d},h),j="allow"===i.behavior?{kind:"allowOnce"}:{kind:"abstain"};if("abstain"===j.kind){let b=(0,x.y_)(e);b.safe||E.warn("permission-request-abstain-blocks-agent",{worktreeId:a.worktreeId,cliToolId:D.k,instanceId:d,toolName:h?.toolName??null,decisionId:f.id,reason:i.reason,consequence:b.summary,blocksForMs:b.blocksForMs})}await (0,z._0)(e,{worktreeId:a.worktreeId,cliToolId:D.k,instanceId:d},f,j),E.info("opencode-permission-decided",{worktreeId:a.worktreeId,instanceId:d,decisionId:f.id,toolName:h?.toolName??null,behavior:i.behavior,reason:i.reason,suppressedBy:i.suppressedBy})}async function G(a,b){let[{getDbInstance:d},{getWorktreeById:e},{applyAgentStopEvent:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(4689),c.e(6065),c.e(9373),c.e(6274),c.e(6781)]).then(c.bind(c,16781))]),g=d(),h=e(g,a.worktreeId)??null;if(!h)return void E.info("opencode-stop-unresolved-target",{worktreeId:a.worktreeId});let i=await f(g,h,D.k,b);E.info("opencode-stop-applied",{worktreeId:a.worktreeId,instanceId:b,taskId:i.taskId,taskEventApplied:i.taskEventApplied,verificationRunId:i.verificationRunId})}async function H(a,b){let c=a.instanceId??D.k;try{if((0,v.Fw)(a.worktreeId,D.k,c,b.event,b.conversationId,b.receivedAt,b.detail))return void E.info("opencode-event-duplicate-dropped",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail});if((0,v.n4)(a.worktreeId,D.k,c,{event:b.event,at:b.receivedAt,detail:b.detail?.slice(0,u.h9)??null,sessionId:b.conversationId,message:(function(a){let b=(0,y.Qd)(a.raw.properties)?a.raw.properties:{};if(a.detail===B.aF)return(0,y.NZ)(b,["metadata","command"])??(0,y.O2)(b,"permission");if(a.detail===B.Tm){let a=b.questions;return Array.isArray(a)&&(0,y.Qd)(a[0])?(0,y.O2)(a[0],"question"):null}return a.detail===B.vE?(0,y.NZ)(b,["error","data","message"])??(0,y.NZ)(b,["error","name"]):null})(b)?.slice(0,w.lY)??null,model:b.model}),"notification"===b.event&&b.detail===B.aF)return void await F(a,b,c);if("notification"===b.event&&b.detail===B.Tm)return void function(a,b,c){let d=(0,A.VM)(D.k).parseQuestion(b.raw);d&&((0,v._N)(a.worktreeId,D.k,c,d,b.receivedAt),(0,v.ik)(a.worktreeId,D.k,c,"question",b.receivedAt),E.info("opencode-question-recorded",{worktreeId:a.worktreeId,instanceId:c,questionCount:d.questions.length,optionCounts:d.questions.map(a=>a.choices.length)}))}(a,b,c);if("stop"===b.event)return void await G(a,c);E.info("opencode-event-received",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail})}catch(d){E.error("opencode-event-ingest-failed",{worktreeId:a.worktreeId,instanceId:c,event:b.event,error:d instanceof Error?d.message:String(d)})}}var I=c(84574),J=c(85965),K=c(42545);let L=(0,j.h)("lib/hooks/sources/opencode/runtime");function M(a,b){return{worktreeId:a,cliToolId:"opencode",instanceId:b}}async function N(a,b){try{return await (0,I.CU)(a,b)}catch(b){return L.warn("opencode-port-reserve-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),null}}async function O(a){try{let b=(0,I.hC)(a);if(null===b)return!1;if((0,K.wb)(a))return!0;let c=await (0,t.Ok)(b);if(!c)return L.info("opencode-server-not-reachable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b}),!1;return await J.cC.subscribe(a,b=>{H(a,b)}),L.info("opencode-event-stream-attached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,version:c.version}),!0}catch(b){return L.warn("opencode-event-stream-attach-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function P(a,b){try{if((0,K.wb)(a))return!0;let c=await (0,I.jp)(a,b);if(null===c)return!1;return await O(a)}catch(b){return L.warn("opencode-event-stream-resume-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function Q(a){try{await (0,K.FN)(a),(0,I.kE)(a)}catch(b){L.warn("opencode-event-stream-release-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)})}}var R=c(20610);let S=(0,j.h)("cli-tools/opencode"),T=(0,r.promisify)(q.execFile);function U(a){return a instanceof Error?a.message:String(a)}let V=200;class W extends d.M{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,e.N)(c)}async startSession(a,b,c){if(!await this.isInstalled())throw Error("OpenCode is not installed or not in PATH");let d=this.getSessionName(a,c),f=M(a,c);if(await (0,e.N)(d)){await this.reconcileExistingSession(d,{windowWidth:80,windowHeight:V}),await P(f,b),S.info("opencode-session-sessionname");return}(0,s.Fq)(f);try{await p(b),await (0,e.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,R.Uc));try{await T("tmux",["resize-window","-t",(0,e.lA)(d),"-x","80","-y",String(V)])}catch{}await N(f,b);let a=(0,s.wK)({target:f,executablePath:this.command,worktreePath:b});await (0,e.V1)(d,a,!0),await new Promise(a=>setTimeout(a,15e3)),await O(f),S.info("started-opencode-session:sessionname")}catch(b){let a=U(b);throw Error(`Failed to start OpenCode session: ${a}`)}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,e.N)(d))throw Error(`OpenCode session ${d} does not exist. Start the session first.`);try{await (0,f.FW)({sessionName:d,message:b,cliToolId:"opencode"}),(0,g.gm)(d),S.info("sent-message-to-opencode-session:session")}catch(b){let a=U(b);throw Error(`Failed to send message to OpenCode: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);await Q(M(a,b));try{await (0,e.N)(c)?(await (0,e.V1)(c,"/exit",!0),await new Promise(a=>setTimeout(a,R.KI)),await (0,e.N)(c)&&await (0,e.fY)(c)):await (0,e.fY)(c),(0,g.gm)(c),S.info("stopped-opencode-session:sessionname")}catch(a){throw S.error("session:stop-failed",{error:U(a)}),a}}constructor(...a){super(...a),this.id="opencode",this.name="OpenCode",this.command="opencode"}}},44265:(a,b,c)=>{"use strict";c.d(b,{M:()=>k});var d=c(79646),e=c(28354),f=c(15194);let g=/^[a-zA-Z0-9_-]+$/;function h(a){if(!g.test(a))throw Error(`Invalid session name format: ${a}`)}var i=c(11665);let j=(0,e.promisify)(d.exec);class k{async isInstalled(){try{return await j(`which ${this.command}`,{timeout:5e3}),!0}catch{return!1}}getSessionName(a,b){let c=`mcbd-${this.id}-${a}`;if(!b||b===this.id)return h(c),c;let d=(0,f.pL)(b,this.id),e=d?`${c}-${d}`:c;return h(e),e}async reconcileExistingSession(a,b){await (0,i.zT)(a,b)}async interrupt(a,b){let c=this.getSessionName(a,b);await (0,i.ds)(c,"Escape")}}},44321:(a,b,c)=>{"use strict";c.d(b,{LN:()=>f,XH:()=>g,fL:()=>h});var d=c(24455);let e=globalThis.__promptDedupSkips??(globalThis.__promptDedupSkips=new Map);function f(a,b,c,g=Date.now()){let h=(0,d.v7)(a,b,c),i=e.get(h);e.set(h,{skippedCount:(i?.skippedCount??0)+1,lastSkippedAt:g})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??{skippedCount:0,lastSkippedAt:null}}function h(a,b,c,f){if(a===b)return;let g=(0,d.v7)(a,c,f),h=e.get(g);e.delete(g),void 0!==h&&e.set((0,d.v7)(b,c,f),h)}},45146:(a,b,c)=>{"use strict";c.d(b,{Et:()=>s,KQ:()=>u,MN:()=>o,SI:()=>l,fq:()=>t,g8:()=>p,sR:()=>w});var d=c(72626),e=c(13033),f=c(72457),g=c(71080),h=c(44321),i=c(3523),j=c(99508);let k=(0,d.h)("response-poller"),l=["Waiting for auth","⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],m=new Map,n=new Map;function o(a,b,c){return`${a}:${c??b}`}function p(a,b,c){let d=o(a,b,c);s(a,b,c),n.set(d,Date.now()),("opencode"===b||"copilot"===b)&&(0,e.tb)(d),q(a,b,c)}function q(a,b,c){let d=o(a,b,c),e=setTimeout(async()=>{let e=n.get(d);if(e&&Date.now()-e>18e5)return void s(a,b,c);try{await (0,i.zX)(a,b,c)}catch(a){k.error("error:",{error:a instanceof Error?a.message:String(a)})}(0,j.broadcastTerminalSnapshot)(a,b,c),m.has(d)&&q(a,b,c)},2e3);m.set(d,e)}function r(a){let b=m.get(a);b&&(clearTimeout(b),m.delete(a),n.delete(a)),(0,e.q1)(a),(0,f.iX)(a),(0,g.L1)(a)}function s(a,b,c){r(o(a,b,c))}function t(){for(let a of Array.from(m.keys()))r(a)}function u(){return Array.from(m.keys())}function v(a){let b=a.indexOf(":");return b<=0||b===a.length-1?null:{worktreeId:a.slice(0,b),instanceId:a.slice(b+1)}}function w(a,b){let c=new Map;for(let{oldId:b,newId:d}of a)b&&d&&b!==d&&c.set(b,d);if(0===c.size)return[];let d=[],i=[];for(let a of Array.from(m.keys())){let e=v(a);if(!e)continue;let f=c.get(e.worktreeId);if(!f)continue;let g=b(e.worktreeId,e.instanceId);if(!g){i.push(a);continue}d.push({oldKey:a,newKey:o(f,g,e.instanceId),newWorktreeId:f,cliToolId:g,instanceId:e.instanceId})}let j=new Map;for(let a of d){let b=m.get(a.oldKey);b&&clearTimeout(b),m.delete(a.oldKey),j.set(a.newKey,{startedAt:n.get(a.oldKey)}),n.delete(a.oldKey),(0,f.i2)(a.oldKey,a.newKey),(0,g.Re)(a.oldKey,a.newKey);let c=v(a.oldKey);c&&(0,h.fL)(c.worktreeId,a.newWorktreeId,a.cliToolId,a.instanceId),(0,e.q1)(a.oldKey)}for(let a of i)r(a),k.warn("poller:migrate-abandoned",{pollerKey:a});for(let a of d){let b=j.get(a.newKey)?.startedAt;n.set(a.newKey,b??Date.now()),("opencode"===a.cliToolId||"copilot"===a.cliToolId)&&(0,e.tb)(a.newKey),q(a.newWorktreeId,a.cliToolId,a.instanceId)}return d}},47990:()=>{},52277:(a,b,c)=>{"use strict";c.d(b,{ZS:()=>f,gb:()=>g});var d=c(24455);let e=globalThis.__autoYesPolicySuppressions??(globalThis.__autoYesPolicySuppressions=new Map);function f(a,b,c,g,h=Date.now()){e.set((0,d.v7)(a,b,c),{...g,at:h})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},56263:(a,b,c)=>{"use strict";c.d(b,{L1:()=>e,MJ:()=>j,Rf:()=>f,ky:()=>g,lM:()=>i,pL:()=>h,wp:()=>d});let d=200,e=100,f=1e5,g="[... truncated ...]",h=3e4,i=/^[a-zA-Z0-9][a-zA-Z0-9\-._/:]*$/,j=128},57905:(a,b,c)=>{"use strict";c.d(b,{c0:()=>N,zw:()=>J,Yq:()=>K,oV:()=>G,pU:()=>M,R7:()=>L,VU:()=>O});var d=c(11665),e=c(85164),f=c(40236),g=c(93997),h=c(77093),i=c(20610),j=c(79646),k=c(28354),l=c(72626);let m=(0,l.h)("session-key-sender"),n=(0,k.promisify)(j.exec);async function o(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function p(a){await n("tmux set-environment -g -u CLAUDECODE 2>/dev/null || true"),await (0,d.V1)(a,"unset CLAUDECODE",!0),await new Promise(a=>setTimeout(a,i.Em))}async function q(a,b){let c=Date.now();for(;Date.now()-c<b;){let b=await o(a);if(e.hx.test(b))return;await new Promise(a=>setTimeout(a,200))}throw Error(`Prompt detection timeout (${b}ms)`)}async function r(a,b,c,h){if(!await (0,d.N)(a))throw Error(`Claude session ${a} does not exist. Start the session first.`);let i=await o(a);e.hx.test(i)||await q(a,h),await new Promise(a=>setTimeout(a,c)),await (0,f.FW)({sessionName:a,message:b,cliToolId:"claude"}),(0,g.gm)(a),m.info("sent-message-to-session",{sessionName:a})}async function s(a){try{await (0,d.N)(a)&&(await (0,d.V1)(a,"",!1),await (0,d.ds)(a,"C-d"),(0,g.gm)(a),await new Promise(a=>setTimeout(a,i.Zf)));let b=await (0,d.fY)(a);return b&&m.info("stopped-session",{sessionName:a}),b}catch(a){return m.error("session:stop-failed",{error:(0,h.u1)(a)}),!1}}var t=c(79748),u=c(15194),v=c(22354),w=c(4970),x=c(48083),y=c(2669);let z=(0,l.h)("claude-session"),A=(0,k.promisify)(j.exec),B=["$","%","#"],C=null;async function D(){if(C)return C;let a=process.env.CLAUDE_PATH;if(a&&(/^[/a-zA-Z0-9._-]+$/.test(a)?!a.includes("..")||(z.info("claudepath-contains-path"),!1):(z.info("claudepath-contains-invalid-characters-i"),!1)))try{return await (0,t.access)(a,t.constants.X_OK),C=a}catch{z.info("claudepath-is-not-executable:envclaudepa")}try{let{stdout:a}=await A("which claude",{timeout:5e3});return C=a.trim()}catch{for(let a of["/opt/homebrew/bin/claude","/usr/local/bin/claude","/usr/bin/claude"])try{return await A(`test -x "${a}"`,{timeout:1e3}),C=a}catch{}throw Error("Claude CLI not found. Set CLAUDE_PATH environment variable or install Claude CLI.")}}async function E(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}function F(a){let b=a.trim().split("\n").filter(a=>""!==a.trim()).slice(-10).join("\n");for(let a of e.F0)if(b.includes(a))return a;for(let a of e.Fw)if(a.test(b))return a.source;return null}async function G(a){try{let b=(await E(a)).trim();if(""===b)return{healthy:!1,reason:"empty output"};if(e.hx.test(b))return{healthy:!0};let c=b.split("\n").filter(a=>""!==a.trim()),d=F(b);if(null!==d)return{healthy:!1,reason:`error pattern: ${d}`};let f=c[c.length-1]?.trim()??"";if(f.length>=40)return{healthy:!0};if(B.some(a=>!(!f.endsWith(a)||"%"===a&&/\d+%$/.test(f))))return{healthy:!1,reason:`shell prompt ending detected: ${f}`};return{healthy:!0}}catch{return{healthy:!1,reason:"capture error"}}}async function H(a){return!!(await G(a)).healthy||(z.warn("session-sessionname-unhealthy:resultreas"),await (0,d.fY)(a),!1)}function I(a,b){let c=`mcbd-claude-${a}`;if(!b||"claude"===b)return c;let d=(0,u.pL)(b,"claude");return d?`${c}-${d}`:c}async function J(){try{return await A("which claude",{timeout:5e3}),!0}catch{return!1}}async function K(a,b){let c=I(a,b);return!!await (0,d.N)(c)&&(!!(await G(c)).healthy||(z.warn("session-sessionname-unhealthy:resultreas"),!1))}async function L(a){let{worktreeId:b,worktreePath:c,instanceId:f}=a;if(!await J())throw Error("Claude CLI is not installed or not in PATH");let g=I(b,f);if(await (0,d.N)(g)&&await H(g)){await (0,d.zT)(g),z.info("claude-session-sessionname");return}(0,w.Fq)({worktreeId:b,cliToolId:v.vm,instanceId:f});try{await (0,d.jw)({sessionName:g,workingDirectory:c}),await p(g);let a=await D(),h=(0,w.wK)({target:{worktreeId:b,cliToolId:v.vm,instanceId:f},executablePath:a,worktreePath:c});await (0,d.V1)(g,h,!0);let i=Date.now(),j=!1,k=!1;for(;Date.now()-i<6e4;){await new Promise(a=>setTimeout(a,300));let a=null;try{a=await E(g)}catch{}if(null===a)continue;if(e.hx.test(a)){await new Promise(a=>setTimeout(a,500)),z.info("claude-initialized-in"),j=!0;break}if(!k&&e.CX.test(a))try{await (0,d.V1)(g,"",!0),k=!0,z.info("trust-dialog-detected")}catch{}let b=F(a);if(null!==b)throw new y.mR("Claude Code",g,b)}if(!j)throw new y.Sr("Claude Code",g,6e4);z.info("started-claude-session:sessionname")}catch(a){if(C=null,z.error("session:start-failed",{error:a instanceof Error?a.message:String(a)}),(0,y.su)(a))throw a;throw Error("Failed to start Claude session")}}async function M(a,b,c){let d=I(a,c);await r(d,b,500,1e4)}async function N(a,b=1e3,c){let e=I(a,c);if(!await (0,d.N)(e))throw Error(`Claude session ${e} does not exist`);try{return await (0,d.Xg)(e,{startLine:-b})}catch(a){throw Error(`Failed to capture Claude output: ${a instanceof Error?a.message:String(a)}`)}}async function O(a,b){let c=I(a,b),d=await s(c);return(0,x.je)(a,"claude",b),d}},63869:(a,b,c)=>{"use strict";c.d(b,{t:()=>j});var d=c(11665),e=c(81254),f=c(93997),g=c(20610);let h=/^\[[ x]\] /;function i(a){if(0===a)return[];let b=a>0?"Down":"Up";return Array.from({length:Math.abs(a)},()=>b)}async function j(a){let{sessionName:b,answer:c,cliToolId:j,promptData:k,fallbackPromptType:l,fallbackDefaultOptionNumber:m}=a;if(("claude"===j||"antigravity"===j)&&(k?.type==="multiple_choice"||"multiple_choice"===l)&&/^\d+$/.test(c)){let a,e=parseInt(c,10),f=null;if(k?.type==="multiple_choice"){let b=(f=k.options).find(a=>a.isDefault);a=b?.number??1}else a=m??1;let g=e-a;if(null!==f&&f.some(a=>h.test(a.label))&&null!==f){let a=f.filter(a=>h.test(a.label)).length,c=[...i(g),"Space"];c.push(...i(a-e+1)),c.push("Enter"),await (0,d.KB)(b,c)}else{let a=i(g),c=k?.type==="multiple_choice"&&!0===k.isAskUserQuestion&&0===g?["Down","Up","Enter"]:[...a,"Enter"];await (0,d.KB)(b,c)}}else{await (0,d.V1)(b,c,!1);let f=function(a){let b=(a.promptData?.type==="multiple_choice"?a.promptData.submitMode:void 0)??a.fallbackSubmitMode??"answer_then_enter";return(0,e.MI)(b)?b:"answer_then_enter"}(a);"answer_only"===f&&(a.promptData?.type==="multiple_choice"||"multiple_choice"===a.fallbackPromptType)&&/^\d+$/.test(a.answer)||(await new Promise(a=>setTimeout(a,g.pL)),await (0,d.V1)(b,"",!0))}(0,f.gm)(b)}},68652:(a,b,c)=>{"use strict";c.d(b,{N:()=>g});let d=/Esc\s+to\s+cancel\s*[·•]\s*Tab\s+to\s+amend/i,e=/Enter\s+to\s+select\b.*\bnavigate\b/i,f=/^\s*[>❯]\s*(?:\d{1,2}[.)])?|esc\s+to\s+interrupt|[✻✽✶✢✳⦿◉●⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]\s+.+…/i;function g(a){if(""===a)return"";let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a--){var g;if(g=b[a],d.test(g)||e.test(g)){c=a;break}}let h=b;return c>=0&&(h=b.slice(c+1).some(a=>f.test(a))?b.slice(c+1):b.slice(0,c+1)),(function(a){let b=[],c=!1;for(let d of a){let a=""===d.trim();a&&c||(b.push(d),c=a)}for(;b.length>0&&""===b[b.length-1].trim();)b.pop();return b})(h).join("\n")}},71080:(a,b,c)=>{"use strict";c.d(b,{L1:()=>g,Re:()=>h,j7:()=>f});var d=c(55511);let e=new Map;function f(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function g(a){e.delete(a)}function h(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c)}},72457:(a,b,c)=>{"use strict";c.d(b,{gv:()=>f,i2:()=>h,iX:()=>g,zm:()=>i});var d=c(55511);let e=new Map;function f(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function g(a){e.delete(a)}function h(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c)}function i(a,b){return"copilot"!==b?a:a.replace(/^[❯>]\s/gm," ")}},75498:(a,b,c)=>{"use strict";c.d(b,{Lj:()=>f,Tb:()=>e,sD:()=>g});var d=c(68901);let e=2e4;function f(a,b,c){if(!c)return null;if("off"===c.mode)return{reason:"mode-off"};let f=function(a,b){if(0===b.length)return{outcome:"no-match"};let c=a.map(a=>a.length>e?a.slice(0,e):a);for(let a of b){if(a.length>200||!(0,d.P0)(a).valid)return{outcome:"unusable",pattern:a};let b=new RegExp(a);for(let e of c){let c=(0,d.eJ)(b,e);if(null===c)return{outcome:"unusable",pattern:a};if(c)return{outcome:"match",pattern:a}}}return{outcome:"no-match"}}(b,c.denyPatterns);return"match"===f.outcome?{reason:"deny-pattern",pattern:f.pattern}:"unusable"===f.outcome?{reason:"deny-pattern-unusable",pattern:f.pattern}:"safe"===c.mode?"yes_no"===a?null:{reason:"type-not-allowed"}:"allow-listed"===c.mode?c.allowPromptTypes.includes(a)?null:{reason:"type-not-allowed"}:null}function g(a,b){let c=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(a);if(null===c)return{answer:null,suppressedBy:null};let d=f(a.type,function(a){let b=[a.question];if(a.approvalTarget&&b.push(a.approvalTarget),"multiple_choice"===a.type)for(let c of a.options)b.push(c.label);else b.push(...a.options);return b}(a),b);return d?{answer:null,suppressedBy:d.reason,pattern:d.pattern}:{answer:c,suppressedBy:null}}},77093:(a,b,c)=>{"use strict";function d(a){return a instanceof Error?a.message:String(a)}c.d(b,{u1:()=>d})},82450:(a,b,c)=>{"use strict";c.d(b,{IS:()=>h,LH:()=>m,NN:()=>g,Sj:()=>o,aW:()=>n});var d=c(85164),e=c(13033),f=c(56263);function g(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.GT)(b),e=c>=0?b.slice(0,c):b,f=-1;for(let a=e.length-1;a>=0;a--)if(/^❯\s+\S/.test(e[a])){f=a;break}let g=f>=0?f+1:0,h=e.slice(g),i=[/CLAUDE_HOOKS_/,/\/bin\/claude/,/^claude\s*$/,/@.*\s+%\s*$/,/^[^⏺]*curl.*POST/,/^[^⏺]*Content-Type/,/^[^⏺]*export\s+CLAUDE_/,/^\s*$/,/^[╭╮╰╯│─\s]+$/,/^[│╭╮╰╯].*[│╭╮╰╯]$/,/Claude Code v[\d.]+/,/^Tips for getting started/,/^Welcome back/,/Run \/init to create/,/^Recent activity/,/^No recent activity/,/▐▛███▜▌|▝▜█████▛▘|▘▘ ▝▝/,/^\s*Opus \d+\.\d+\s*·\s*Claude Max/,/\.com's Organization/,/\?\s*for shortcuts\s*$/,/^─{10,}$/,/^❯\s*$/,d.fW],j=[];for(let a of h)!i.some(b=>b.test(a))&&a.trim()&&j.push(a);return j.join("\n").trim()}function h(a){let b=(0,d.aJ)(a).split("\n"),c=[],e=[/^maenokota@.*%/,/^zsh:/,/^feature-issue-\d+/,/^\s*$/],f=!1,g=[];for(let a of b){if(a.includes("✦")){f=!0;let b=a.indexOf("✦"),c=a.substring(b+1).trim();c&&g.push(c);continue}if(f){if(e.some(b=>b.test(a)))continue;g.push(a)}}if(g.length>0)return g.join("\n").trim();for(let a of b)e.some(b=>b.test(a))||c.push(a);return c.join("\n").trim()}let i=/^●\s+(?:Get |Read |Run |Search |Write |Delete |Edit |List |Create |Check |Fetch |Map |Explore |Execute |Find |Install |Update |Open |Close |Copy |Move |Rename |Set |Test |Build |Deploy |Start |Stop |Restart |Kill |Call |Send |Upload |Download |Compile |Analyze |Scan |Apply |Revert |Reset |Push |Pull |Clone |Merge |Commit |Checkout |Branch |Tag |Diff |Log |Show |Status |Init |Config |Add |Remove |Index |Query |Connect |Disconnect |Ping |Trace |Debug |Validate |Verify |Inspect |Monitor |Watch |Clean |Purge |Flush |Load |Save |Export |Import |Format |Lint |Parse |Generate |Transform |Convert |Migrate |Upgrade |Patch |Enable |Disable |Grant |Revoke |Approve |Deny |Lock |Unlock |Mount |Unmount |Attach |Detach |Register |Unregister |Subscribe |Unsubscribe |Publish |Unpublish |Encrypt |Decrypt |Sign |Hash |Encode |Decode |Compress |Decompress |Archive |Extract |Backup |Restore |Dump |Model changed to:)/,j=/^\d+\s+lines\.\.\.$/,k=/^[◐◑◒◓]/,l=/^(?:git\s+--no-pager|git\s+(?:log|diff|show|status|branch|remote|fetch|pull|push|merge|rebase|checkout|reset|stash|tag|config|clone|init|add|commit|rm|mv|bisect|grep|ls-files|rev-parse|describe|shortlog|blame|reflog|cherry-pick|revert|submodule|worktree)\b|npm\s+|npx\s+|node\s+|yarn\s+|pnpm\s+|cargo\s+|pip\s+|python\s+|ruby\s+|go\s+|rustc\s+|make\s+|cmake\s+|docker\s+|kubectl\s+|aws\s+|gcloud\s+|az\s+|terraform\s+|ansible\s+|curl\s+|wget\s+|ssh\s+|scp\s+|rsync\s+|find\s+|grep\s+|sed\s+|awk\s+|cat\s+|ls\s+|cd\s+|mkdir\s+|rm\s+|cp\s+|mv\s+|chmod\s+|chown\s+|echo\s+)/;function m(a){let b=(0,d.aJ)(a).split("\n"),c=-1;for(let a=b.length-1;a>=0;a--){let d=(0,e.IW)(b[a]);if(d&&/^❯\s+\S/.test(d)){c=a;break}}let f=c>=0?c+1:0,g=b.slice(f),h=[],m=!1,n=!1;for(let a of g){let b=(0,e.IW)(a);if(!(!b||d.J7.some(a=>a.test(b)))){if(i.test(b)){n=!0,m=!1;continue}if(k.test(b)){m=!0,n=!1;continue}if(!(j.test(b)||l.test(b)||/^❯\s*/.test(b)||/^[│└]/.test(b))){if(/^●/.test(b)){m=!1,n=!1,h.push(b.replace(/^●\s*/,""));continue}m||n||h.push(b)}}}return h.join("\n").trim()}function n(a){let b=a.split("\n"),c=[];for(let a=0;a<b.length;a++){let f=(0,e.l1)(b[a]);f&&d.Md.test(f)&&c.push(a)}let f=0;c.length>=2&&(f=c[c.length-2]+1);let g=[];for(let a=f;a<b.length;a++){let c=(0,e.l1)(b[a]);!(!c||d.sx.some(a=>a.test(c)))&&(d.Md.test(c)||g.push(c))}return g.join("\n").trim()}function o(a,b=f.Rf,c=f.ky){if(!a||a.length<=b)return a;let d=c+"\n",e=b-d.length;if(e<=0)return c.slice(0,b);let g=a.length-e;if(g>0&&g<a.length){let b=a.charCodeAt(g);b>=56320&&b<=57343&&(g+=1)}return d+a.slice(g)}},85479:(a,b,c)=>{"use strict";c.d(b,{$:()=>x});var d=c(56791);let e=globalThis.__unclassifiedFrameRuns??(globalThis.__unclassifiedFrameRuns=new Map);var f=c(51297);let g=[{id:"overloaded",pattern:/\b5\d{2}\s+Overloaded\b/i,selfRetrying:!0},{id:"retrying",pattern:/Retrying in \d+s\s*[·•]\s*attempt \d+\/\d+/i,selfRetrying:!0},{id:"limit-reached",pattern:/\blimit reached\b/i,selfRetrying:!1},{id:"api-error",pattern:/\bAPI Error(?::|\s+\d{3})/i,selfRetrying:!1}],h="…[truncated]";var i=c(81254),j=c(72626),k=c(31268),l=c(31766),m=c(95595),n=c(5363),o=c(52277),p=c(44321),q=c(34405),r=c(93997),s=c(48083),t=c(30008),u=c(9516),v=c(36051);let w=(0,j.h)("current-output-builder");async function x(a,b,c,j){let x=j??c,y=k.s.getInstance().getTool(c),z=(0,s.CE)(b,c,j),A=(0,s.ak)(b,c,j),B={lastEventType:A?.event??null,lastEventAt:A?.at??null,lastEventDetail:A?.detail??null,promptWaitingSince:null,promptWaitingSource:null};if(!await y.isRunning(b,j))return{isRunning:!1,content:"",lineCount:0,cliToolId:c,sessionStatus:"idle",sessionStatusReason:"session_not_running",lastStopEventAt:z,structuredEvents:B,model:null,reasoningEffort:null,promptDedup:(0,p.XH)(b,c,j),upstreamFault:null};let C=(0,d.getSessionState)(a,b,x),D=C?.lastCapturedLine||0,E=await (0,l.Wh)(b,c,q._,j),F=E.split("\n"),G=F.length,H=((0,r.sl)(G,Math.min(q._,r.xE))?F:F.slice(Math.max(0,D))).join("\n"),I=(0,n.v7)(b,c,j),J=(0,n.xU)(I),K=J?new Date(J):void 0,L=(0,m.WC)(E,c,K),M="running"===L.status&&L.reason===m.gv.THINKING_INDICATOR,N=L.hasActivePrompt,O="waiting"===L.status&&m.ug.has(L.reason),P=L.reason===m.gv.CODEX_PAGER,Q="running"===L.status&&L.reason===m.gv.DEFAULT||"ready"===L.status&&L.reason===m.gv.NO_RECENT_OUTPUT,R=(0,s.R4)(b,c,j),S=(0,t._G)({worktreeId:b,cliToolId:c,instanceId:j,scraper:{status:L.status,reason:L.reason,hasActivePrompt:N}}),T=S.structured;null!==T&&(B.promptWaitingSince=T.at,B.promptWaitingSource=T.source);let U=function(a,b,c=null){if("waiting"===a.status)return{...a,structuredApplied:!1};if(null!==c)return{status:"waiting",reason:(0,t.rB)(c),thinking:!1,isUnclassifiedActive:a.isUnclassifiedActive,structuredApplied:!0};if(null===b||"waiting"===b.status)return{...a,structuredApplied:!1};let d="running"===b.status;return{status:b.status,reason:b.reason,thinking:d,isUnclassifiedActive:("ready"!==b.status||"running"!==a.status)&&a.isUnclassifiedActive,structuredApplied:!0}}({status:L.status,reason:L.reason,thinking:M,isUnclassifiedActive:Q},R,T),V=S.waiting,W=(0,s.BJ)(b,c,j),X=L.promptDetection.promptData,Y=X&&W?(0,u.Hu)(X,W.spec):null,Z=null===T?null:{...T,askUserQuestion:function(a){let b=a?.spec.questions[0];return b?{question:b.question,labels:b.choices.map(a=>a.label),questionCount:a.spec.questions.length}:null}(W)},$=N?Y??X??(Z?(0,v.Yo)(b,Z):null):Z?(0,v.Yo)(b,Z):null;null!==R&&R.status!==L.status&&w.info("detection-divergence",{worktreeId:b,cliToolId:c,instanceId:x,scraperStatus:L.status,scraperReason:L.reason,structuredStatus:R.status,structuredReason:R.reason,structuredEvent:R.event,structuredEventAt:R.at,applied:U.structuredApplied});let _=function(a,b,c=Date.now()){for(let[a,b]of e)c-b.lastSeen>36e5&&e.delete(a);if(!b)return e.delete(a),{dwellMs:0,shouldRecord:!1};let d=e.get(a);if(!d)return e.set(a,{since:c,lastSeen:c,recorded:!1}),{dwellMs:0,shouldRecord:!1};d.lastSeen=c;let f=Math.max(0,c-d.since);return d.recorded||f<6e4?{dwellMs:f,shouldRecord:!1}:(d.recorded=!0,{dwellMs:f,shouldRecord:!0})}(I,U.isUnclassifiedActive);if(_.shouldRecord&&function(a,b){let c=Math.round(b.dwellMs/1e3),e=`${b.sessionStatus}/${b.sessionStatusReason}`,f=`Unclassified interactive frame (${e}) held for ${c}s. The detection layer could not parse it, so no prompt was published and nothing could answer it. Inspect the raw pane with \`commandmate capture ${b.worktreeId} --pane\`.`,g={type:i.LT,status:"unclassified",question:f,options:[],dwellSeconds:c,sessionStatusReason:e};try{(0,d.createMessage)(a,{worktreeId:b.worktreeId,role:"assistant",content:f,messageType:"prompt",promptData:g,timestamp:new Date,cliToolId:b.cliToolId,instanceId:b.instanceId}),w.info("unclassified-frame-recorded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,dwellSeconds:c,statusReason:e})}catch(a){w.warn("unclassified-frame-record-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)})}}(a,{worktreeId:b,cliToolId:c,instanceId:x,dwellMs:_.dwellMs,sessionStatus:U.status,sessionStatusReason:U.reason}),null!==T&&null!==Z&&!N&&!T.recorded){(0,s.HR)(b,c,j);var aa=b,ab=c,ac=x,ad=T,ae=Z;let e=(0,v.fO)(aa,ae);try{(0,d.createMessage)(a,{worktreeId:aa,role:"assistant",content:e.question,summary:`structured prompt \xb7 source=${ad.source}${ad.toolName?` \xb7 tool=${ad.toolName}`:""}`,messageType:"prompt",promptData:e,timestamp:new Date,cliToolId:ab,instanceId:ac}),w.info("structured-prompt-recorded",{worktreeId:aa,cliToolId:ab,instanceId:ac,source:ad.source,toolName:ad.toolName})}catch(a){w.warn("structured-prompt-record-failed",{worktreeId:aa,error:a instanceof Error?a.message:String(a)})}}let af=F.slice(-100).join("\n"),ag=function(a){let b=(0,f.aJ)(a);for(let a of g){let c=a.pattern.exec(b);if(!c)continue;let d=b.lastIndexOf("\n",c.index)+1,e=b.indexOf("\n",c.index);return{fault:a,matchedText:function(a){let b=new TextEncoder;if(b.encode(a).length<=200)return a;let c=200-b.encode(h).length,d=0,e="";for(let f of a){let a=b.encode(f).length;if(d+a>c)break;d+=a,e+=f}return`${e}${h}`}(b.slice(d,-1===e?void 0:e).trim()||c[0])}}return null}(af),ah=(0,n.aq)(b,c,j),{model:ai,effort:aj}=(0,s.jl)(b,c,j);return{isRunning:!0,cliToolId:c,sessionStatus:U.status,sessionStatusReason:U.reason,content:H,fullOutput:E,realtimeSnippet:af,lineCount:G,lastCapturedLine:D,isComplete:V,isGenerating:U.thinking,thinking:U.thinking,thinkingMessage:U.thinking?"Claude is thinking...":null,isPromptWaiting:V,promptData:$,autoYes:{enabled:ah?.enabled??!1,expiresAt:ah?.enabled?ah.expiresAt:null,stopReason:ah?.stopReason,lastSuppression:(0,o.gb)(b,c,j),stopMatchedText:ah?.stopMatchedText},isSelectionListActive:O,isPagerActive:P,isUnclassifiedActive:U.isUnclassifiedActive,lastServerResponseTimestamp:J,serverPollerActive:(0,n.bZ)(I),lastStopEventAt:z,structuredEvents:B,model:ai,reasoningEffort:aj,promptDedup:(0,p.XH)(b,c,j),upstreamFault:ag?{id:ag.fault.id,matchedText:ag.matchedText,at:Date.now()}:null}}},90164:(a,b,c)=>{"use strict";c.d(b,{Dk:()=>e,kD:()=>f});let d="https://github.com/Kewton/CommandMate",e=`${d}/releases/`,f=`${d}/blob/main/docs/security-guide.md`},91318:(a,b,c)=>{"use strict";c.d(b,{ie:()=>j,n:()=>i});var d=c(56791),e=c(88807),f=c(24455);let g=(0,c(72626).h)("auto-yes-policy"),h=new Map;function i(a,b,c){let i=c??b,j=(0,f.v7)(a,b,i),k=Date.now(),l=h.get(j);if(l&&l.expiresAt>k)return l.policy;let m=function(a,b,c){try{let f=(0,d.getActiveTaskForInstance)((0,e.getDbInstance)(),a,b,c);if(!f)return null;return f.contract.autoYes}catch(d){return g.warn("policy-lookup-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}(a,b,i);return h.size>=200&&function(a){for(let[b,c]of h.entries())c.expiresAt<=a&&h.delete(b)}(k),h.set(j,{policy:m,expiresAt:k+5e3}),m}function j(a){h.delete(a)}},93997:(a,b,c)=>{"use strict";c.d(b,{aq:()=>m,gm:()=>k,pc:()=>l,sl:()=>f,vF:()=>j,wd:()=>i,xE:()=>e});let d=(0,c(72626).h)("tmux-capture-cache"),e=1e4;function f(a,b=e){return b>0&&a>=b}function g(){return globalThis.__tmuxCaptureCache??=new Map}function h(){return globalThis.__tmuxCaptureCacheInflight??=new Map}function i(a,b){if(""===a)return"";let c=a.split("\n");return b>=c.length?a:c.slice(-b).join("\n")}function j(a,b,c){let d=g(),e=Date.now();for(let[a,b]of d)e-b.timestamp>5e3&&d.delete(a);if(d.size>=100&&!d.has(a)){let a=null,b=1/0;for(let[c,e]of d)e.timestamp<b&&(b=e.timestamp,a=c);a&&d.delete(a)}d.set(a,{output:b,capturedLines:c,timestamp:e})}function k(a){g().delete(a),d.debug("cache:invalidate",{sessionName:a})}function l(){g().clear(),h().clear()}async function m(a,b,c){let d=function(a,b){let c=g(),d=c.get(a);return d?Date.now()-d.timestamp>5e3?(c.delete(a),null):b>d.capturedLines?null:i(d.output,b):null}(a,b);if(null!==d)return d;let f=h(),k=f.get(a);if(k)return i(await k,b);let l=c();f.set(a,l);try{let c=await l;return c.length>0&&j(a,c,e),i(c,b)}finally{f.delete(a)}}},95220:(a,b,c)=>{"use strict";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.b,migrateResponsePollerWorktreeIds:()=>d.sR,normalizeCopilotLine:()=>g.IW,normalizePromptForDedup:()=>h.zm,renamePromptHashCacheKey:()=>h.i2,resolveExtractionStartIndex:()=>e.Q,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)},95595:(a,b,c)=>{"use strict";c.d(b,{WC:()=>m,gv:()=>h,ug:()=>i});var d=c(85164),e=c(25129),f=c(68652),g=c(46423);let h={PROMPT_DETECTED:"prompt_detected",THINKING_INDICATOR:"thinking_indicator",OPENCODE_PROCESSING_INDICATOR:"opencode_processing_indicator",OPENCODE_SELECTION_LIST:"opencode_selection_list",CLAUDE_SELECTION_LIST:"claude_selection_list",COPILOT_SELECTION_LIST:"copilot_selection_list",CODEX_SELECTION_LIST:"codex_selection_list",CODEX_PAGER:"codex_pager",CODEX_HOOKS_REVIEW:"codex_hooks_review",ANTIGRAVITY_SELECTION_LIST:"antigravity_selection_list",OPENCODE_RESPONSE_COMPLETE:"opencode_response_complete",INPUT_PROMPT:"input_prompt",NO_RECENT_OUTPUT:"no_recent_output",DEFAULT:"default"},i=new Set([h.OPENCODE_SELECTION_LIST,h.CLAUDE_SELECTION_LIST,h.COPILOT_SELECTION_LIST,h.CODEX_SELECTION_LIST,h.CODEX_PAGER,h.CODEX_HOOKS_REVIEW,h.ANTIGRAVITY_SELECTION_LIST]),j=/press\s+(?:number|enter)\s+to\s+confirm/i,k=/^\s*[❯›●]?\s*\d{1,2}[.)]\s/;function l(a){let b=-1;for(let c=a.length-1;c>=Math.max(0,a.length-10);c--)if(d.aW.test(a[c])){b=c;break}let c=b>=0?b:a.length,e=-1,f=-1;for(let b=0;b<c;b++){let c=a[b],g=c.trim();""!==g&&((j.test(g)||k.test(g))&&(e=b),(0,d.ut)("codex",c)&&(f=b))}return e>=0&&f>e}function m(a,b,c){let i=(0,f.N)((0,d.aJ)(a)),j=i.split("\n"),k=j.length-1;for(;k>=0&&""===j[k].trim();)k--;let m=j.slice(0,k+1),n=m.slice(-15).join("\n"),o=m.slice(-g.$).join("\n"),p=m.slice(-30).join("\n");if("copilot"===b&&d.Mi.test(p)){let a=(0,d.KO)(b),c=(0,e.gF)((0,d._A)(i),a);return c.isPrompt&&(c.promptData?.options?.length??0)<=3?{status:"waiting",confidence:"high",reason:"prompt_detected",hasActivePrompt:!0,promptDetection:c}:{status:"waiting",confidence:"high",reason:h.COPILOT_SELECTION_LIST,hasActivePrompt:!1,promptDetection:c}}let q=m.slice(-15).join("\n");if("copilot"===b&&(0,d.ut)(b,q)){let a=(0,d.KO)(b);return{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1,promptDetection:(0,e.gF)((0,d._A)(i),a)}}if("codex"===b&&d.pn.test(n)){let a=(0,d.KO)(b),c=(0,e.gF)((0,d._A)(i),a);return{status:"waiting",confidence:"high",reason:h.CODEX_PAGER,hasActivePrompt:!1,promptDetection:c}}if("codex"===b){let a=(0,d.E6)(i);if("hooks-list"===a||"hooks-detail"===a)return{status:"waiting",confidence:"high",reason:h.CODEX_HOOKS_REVIEW,hasActivePrompt:!1,promptDetection:(0,e.gF)((0,d._A)(i),(0,d.KO)(b))}}if("codex"===b){let a=-1;for(let b=m.length-1;b>=Math.max(0,m.length-10);b--)if(d.aW.test(m[b])){a=b;break}let c=a>=0?a-1:m.length-1;for(;c>=0&&""===m[c].trim();)c--;if(c>=0){let a=m.slice(Math.max(0,c-15+1),c+1).join("\n");if(d.Jn.test(a)){let c=(0,d.KO)(b),f=(0,e.gF)((0,d._A)(i),c);return f.isPrompt&&((f.promptData?.question?.trim()??"").endsWith("?")||d.Dd.test(a))&&!l(m)?{status:"waiting",confidence:"high",reason:h.PROMPT_DETECTED,hasActivePrompt:!0,promptDetection:f}:{status:"waiting",confidence:"high",reason:h.CODEX_SELECTION_LIST,hasActivePrompt:!1,promptDetection:f}}}}if("antigravity"===b&&d.kT.test(n)){let a=(0,d.KO)(b),c=(0,e.gF)((0,d._A)(i),a);return{status:"waiting",confidence:"high",reason:h.ANTIGRAVITY_SELECTION_LIST,hasActivePrompt:!1,promptDetection:c}}let r=(0,d.KO)(b),s="opencode"===b||"codex"===b||"claude"===b||"copilot"===b?(0,d._A)(i):(0,d._A)(n),t=(0,e.gF)(s,r);if(t.isPrompt)if(!("codex"===b&&l(m)))return{status:"waiting",confidence:"high",reason:"prompt_detected",hasActivePrompt:!0,promptDetection:t};else t={...t,isPrompt:!1,promptData:void 0};if("claude"===b&&d.XY.test(n))return{status:"waiting",confidence:"high",reason:h.CLAUDE_SELECTION_LIST,hasActivePrompt:!1,promptDetection:t};if((0,d.ut)(b,o))return{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1,promptDetection:t};if("claude"===b&&d.aU.test(n))return{status:"running",confidence:"high",reason:h.THINKING_INDICATOR,hasActivePrompt:!1,promptDetection:t};if("opencode"===b){if(d.kD.test(n))return{status:"running",confidence:"high",reason:"opencode_processing_indicator",hasActivePrompt:!1,promptDetection:t};let a=(0,d._A)(i).split("\n"),b=Math.max(0,a.length-7);for(let c=a.length-1;c>=Math.max(0,a.length-10);c--)if(/ctrl\+[tp]/.test(a[c])){b=Math.max(0,c-2);break}let c=a.slice(0,b),e=c.length-1;for(;e>=0&&""===c[e].trim();)e--;if(e>=0){let a=c.slice(Math.max(0,e-g.$+1),e+1).join("\n");if((0,d.ut)("opencode",a))return{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1,promptDetection:t};let b=c.slice(Math.max(0,e-15+1),e+1).join("\n"),f=c.join("\n");if(d.LO.test(f))return{status:"waiting",confidence:"high",reason:h.OPENCODE_SELECTION_LIST,hasActivePrompt:!1,promptDetection:t};if(d.Md.test(b))return{status:"ready",confidence:"high",reason:h.OPENCODE_RESPONSE_COMPLETE,hasActivePrompt:!1,promptDetection:t};let{promptPattern:i}=(0,d._X)("opencode");if(i.test(b))return{status:"ready",confidence:"high",reason:h.PROMPT_DETECTED,hasActivePrompt:!0,promptDetection:t}}}if("codex"===b){let a=-1;for(let b=m.length-1;b>=Math.max(0,m.length-10);b--)if(d.aW.test(m[b])){a=b;break}if(a>=0){let b=a-1;for(;b>=0&&""===m[b].trim();)b--;if(b>=0){let a=m.slice(Math.max(0,b-g.$+1),b+1).join("\n");if((0,d.ut)("codex",a))return{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1,promptDetection:t};let c=m[b].trim();return d.gm.test(c)?{status:"ready",confidence:"high",reason:"input_prompt",hasActivePrompt:!1,promptDetection:t}:{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1,promptDetection:t}}}else{let a=m.length-1;for(;a>=0&&""===m[a].trim();)a--;if(!(a>=0&&d.gm.test(m[a].trim()))&&(0,d.ut)("codex",n))return{status:"running",confidence:"high",reason:"thinking_indicator",hasActivePrompt:!1,promptDetection:t}}}if("antigravity"===b){if((0,d.ut)("antigravity",n))return{status:"running",confidence:"high",reason:h.THINKING_INDICATOR,hasActivePrompt:!1,promptDetection:t};let{promptPattern:a}=(0,d._X)("antigravity");if(a.test(n))return{status:"ready",confidence:"high",reason:h.INPUT_PROMPT,hasActivePrompt:!1,promptDetection:t}}let{promptPattern:u}=(0,d._X)(b);return u.test(n)?{status:"ready",confidence:"high",reason:"input_prompt",hasActivePrompt:!1,promptDetection:t}:c&&Date.now()-c.getTime()>5e3?{status:"ready",confidence:"low",reason:"no_recent_output",hasActivePrompt:!1,promptDetection:t}:{status:"running",confidence:"low",reason:"default",hasActivePrompt:!1,promptDetection:t}}},95620:(a,b,c)=>{"use strict";c.r(b),c.d(b,{WORKTREE_RENAMED_EVENT_TYPE:()=>X,__internal:()=>_,broadcast:()=>U,broadcastMessage:()=>W,cleanupRooms:()=>Z,closeWebSocket:()=>$,handleProxyUpgrade:()=>J,hasRoomSubscribers:()=>V,migrateWorktreeRooms:()=>Y,setupWebSocket:()=>K});var d=c(81503),e=c(91645),f=c(93390),g=c(3453),h=c(15194),i=c(31268),j=c(88807),k=c(56791);let l={capturePaneCalls:0,activeControlSessions:0,subscriberCount:0,cleanupCount:0,firstOutputLatencyCount:0,firstOutputLatencyTotalMs:0,firstOutputLatencyLastMs:null,firstOutputLatencyMinMs:null,firstOutputLatencyMaxMs:null};var m=c(11665),n=c(72626),o=c(79646);class p{push(a){if(0===a.length)return[];let b=(this.remainder+a).split("\n");this.remainder=b.pop()??"";let c=[];for(let a of b){let b=a.endsWith("\r")?a.slice(0,-1):a,d=this.parseLine(b);d&&c.push(d)}return c}flush(){if(0===this.remainder.length)return[];let a=this.parseLine(this.remainder);return this.remainder="",a?[a]:[]}parseLine(a){return 0===a.length?{type:"output",data:"\n"}:a.startsWith("%output ")?{type:"output",data:`${a.slice(8)}
21
- `}:"%exit"===a||a.startsWith("%exit ")?{type:"exit",exitCode:null}:a.startsWith("%error ")?{type:"error",error:Error(a.slice(7))}:a.startsWith("%")?null:{type:"output",data:`${a}
22
- `}}constructor(){this.remainder=""}}let q=(0,n.h)("tmux-control-client");class r{constructor(a={}){this.parser=new p,this.handlers=new Set,this.child=null,this.sessionName=null,this.idleTimer=null,this.started=!1,this.spawnProcess=a.spawnProcess??((a,b,c)=>(0,o.spawn)(a,b,c)),this.tmuxBinary=a.tmuxBinary??"tmux",this.idleTimeoutMs=a.idleTimeoutMs??3e4}start(a){this.started||(this.sessionName=a,this.child=this.spawnProcess(this.tmuxBinary,["-C","attach-session","-t",(0,m.lA)(a)],{stdio:"pipe"}),this.started=!0,this.child.stdout.setEncoding("utf8"),this.child.stdout.on("data",a=>{this.touch();let b="string"==typeof a?a:a.toString("utf8");for(let a of this.parser.push(b))this.emit(a)}),this.child.stderr.setEncoding("utf8"),this.child.stderr.on("data",a=>{let b="string"==typeof a?a:a.toString("utf8");this.emit({type:"error",error:Error(b.trim()||"tmux control stderr")})}),this.child.on("close",a=>{for(let a of this.parser.flush())this.emit(a);this.emit({type:"exit",exitCode:a}),this.stop()}),this.child.on("error",a=>{this.emit({type:"error",error:a}),this.stop()}),this.resetIdleTimer(),q.debug("start",{sessionName:a}))}onEvent(a){return this.handlers.add(a),()=>{this.handlers.delete(a)}}sendInput(a){if(!this.child?.stdin.writable)throw Error("Tmux control client is not writable");this.touch(),this.child.stdin.write(a)}resize(a,b){if(!this.child?.stdin.writable)throw Error("Tmux control client is not writable");this.touch(),this.child.stdin.write(`refresh-client -C ${a}x${b}
23
- `)}stop(){this.idleTimer&&(clearTimeout(this.idleTimer),this.idleTimer=null),this.child&&(this.child.removeAllListeners(),this.child.stdout.removeAllListeners(),this.child.stderr.removeAllListeners(),this.child.kill(),this.child=null),this.started=!1}isStarted(){return this.started}setSessionName(a){this.sessionName=a}emit(a){for(let b of this.handlers)b(a)}touch(){this.resetIdleTimer()}resetIdleTimer(){this.idleTimeoutMs<=0||(this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{q.debug("idle-timeout",{sessionName:this.sessionName}),this.stop()},this.idleTimeoutMs))}}let s=(0,n.h)("tmux-control-registry");class t{constructor(a={}){this.entries=new Map,this.handlers=new Map,this.idleTimeoutMs=a.idleTimeoutMs??15e3,this.createClient=a.createClient??(()=>new r(a))}subscribe(a,b,c){let d=this.ensureEntry(a);d.subscribers.add(b),this.cancelIdleCleanup(d),this.updateMetrics();let e=this.handlers.get(a);return e||(e=new Set,this.handlers.set(a,e)),e.add(c),()=>{e?.delete(c),this.unsubscribe(a,b)}}sendInput(a,b){let c=this.entries.get(a);if(!c)throw Error(`No control client registered for ${a}`);c.client.sendInput(b)}resize(a,b,c){let d=this.entries.get(a);if(!d)throw Error(`No control client registered for ${a}`);d.client.resize(b,c)}hasSession(a){return this.entries.has(a)}getSubscriberCount(a){return this.entries.get(a)?.subscribers.size??0}getTotalSubscriberCount(){let a=0;for(let b of this.entries.values())a+=b.subscribers.size;return a}getSessionCount(){return this.entries.size}shutdown(){for(let[a,b]of this.entries)this.teardownEntry(a,b);this.entries.clear(),this.handlers.clear(),this.updateMetrics()}renameSession(a,b){if(a===b)return!1;let c=this.entries.get(a);if(!c)return!1;if(this.entries.has(b))return s.warn("rename:destination-occupied",{oldName:a,newName:b}),!1;this.entries.delete(a),c.sessionName=b,this.entries.set(b,c),c.client.setSessionName(b);let d=this.handlers.get(a);return d&&(this.handlers.delete(a),this.handlers.set(b,d)),s.debug("rename",{oldName:a,newName:b}),!0}ensureEntry(a){let b=this.entries.get(a);if(b)return b;let c=this.createClient(a);c.start(a);let d={client:c,subscribers:new Set,unsubscribeClientEvent:()=>{},idleTimer:null,sessionName:a};return d.unsubscribeClientEvent=c.onEvent(a=>{let b=this.handlers.get(d.sessionName);if(b)for(let c of b)c(a);("exit"===a.type||"error"===a.type)&&this.deleteEntry(d.sessionName)}),this.entries.set(a,d),this.updateMetrics(),d}unsubscribe(a,b){let c=this.entries.get(a);c&&(c.subscribers.delete(b),this.updateMetrics(),0===c.subscribers.size&&this.scheduleIdleCleanup(a,c))}scheduleIdleCleanup(a,b){if(this.idleTimeoutMs<=0)return void this.deleteEntry(a);this.cancelIdleCleanup(b),b.idleTimer=setTimeout(()=>{s.debug("idle-cleanup",{sessionName:b.sessionName}),this.deleteEntry(b.sessionName)},this.idleTimeoutMs)}cancelIdleCleanup(a){a.idleTimer&&(clearTimeout(a.idleTimer),a.idleTimer=null)}deleteEntry(a){let b=this.entries.get(a);b&&(this.teardownEntry(a,b),this.entries.delete(a),this.handlers.delete(a),this.updateMetrics())}teardownEntry(a,b){this.cancelIdleCleanup(b),b.unsubscribeClientEvent(),b.client.stop(),l.cleanupCount+=1}updateMetrics(){l.activeControlSessions=Math.max(0,this.getSessionCount()),l.subscriberCount=Math.max(0,this.getTotalSubscriberCount())}}let u=null,v={streamingOutput:!0,explicitResize:!0,snapshotFallback:!0};class w{constructor(a={}){this.registry=a.registry??(u||(u=new t),u)}async ensureSession(a,b){await (0,m.N)(a)||await (0,m.jw)(a,b)}async sessionExists(a){return(0,m.N)(a)}async sendInput(a,b){if(this.registry.hasSession(a))return void this.registry.sendInput(a,b);await (0,m.V1)(a,b)}async sendSpecialKey(a,b){if("Escape"!==b&&"C-c"!==b&&"C-d"!==b&&"C-m"!==b&&"Enter"!==b)throw Error(`Unsupported special key for ControlModeTmuxTransport: ${b}`);await (0,m.ds)(a,b)}async resize(a,b,c){this.registry.resize(a,b,c)}async captureSnapshot(a,b){return l.capturePaneCalls+=1,(0,m.Xg)(a,b)}async subscribe(a,b){let c=`sub-${Date.now()}-${Math.random().toString(36).slice(2,10)}`,d=this.registry.subscribe(a,c,a=>{"output"===a.type?b.onOutput(a.data):"exit"===a.type?b.onExit?.({exitCode:a.exitCode}):b.onError(a.error)});return{async unsubscribe(){d()}}}getCapabilities(){return v}getSubscriberCount(a){return this.registry.getSubscriberCount(a)}renameSession(a,b){return this.registry.renameSession(a,b)}async killSession(a){return(0,m.fY)(a)}}let x=null;function y(){return x||(x=new w),x}var z=c(7015),A=c(26838),B=c(57836);function C(){let a=globalThis.__waitingStatusBroadcastUnsubscribe;a&&(a(),globalThis.__waitingStatusBroadcastUnsubscribe=void 0)}let D=(0,n.h)("ws-server"),E=null,F=new Map,G=new Map,H=new Set(["localhost","127.0.0.1"]);function I(a,b){try{a.write(`HTTP/1.1 ${b}\r
24
- Content-Length: 0\r
25
- Connection: close\r
26
- \r
27
- `)}catch{}a.destroy()}async function J(a,b,c,d){let e,f=(a.url||"/").split("?")[0].split("/")[2]||"";if(!f)return void I(b,"400 Bad Request");try{let a=d.getDb(),b=d.getCache(a);e=await b.getByPathPrefix(f)}catch(a){D.error("ws-proxy:cache-error",{pathPrefix:f,error:a instanceof Error?a.message:String(a)}),!b.destroyed&&b.writable&&I(b,"502 Bad Gateway");return}if(b.destroyed||!b.writable)return;if(!e)return void I(b,"404 Not Found");if(!e.enabled)return void I(b,"503 Service Unavailable");if(!e.websocketEnabled)return void I(b,"403 Forbidden");if(!H.has(e.targetHost)){D.warn("ws-proxy:ssrf-blocked",{pathPrefix:f}),I(b,"403 Forbidden");return}let g=d.netConnect({host:e.targetHost,port:e.targetPort}),h=!1,i=!1,j=()=>{if(!i){i=!0;try{g.destroy()}catch{}try{b.destroy()}catch{}}};g.on("connect",()=>{h=!0;try{let b=function(a){let b=a.method||"GET",c=a.url||"/",d=a.httpVersion||"1.1",e=[`${b} ${c} HTTP/${d}`];for(let[b,c]of Object.entries(a.headers))if(void 0!==c)if(Array.isArray(c))for(let a of c)e.push(`${b}: ${a}`);else e.push(`${b}: ${c}`);return e.join("\r\n")+"\r\n\r\n"}(a);g.write(b)}catch(a){D.error("ws-proxy:upstream-write-error",{pathPrefix:f,error:a instanceof Error?a.message:String(a)}),j();return}b.pipe(g),g.pipe(b)}),g.on("error",a=>{D.error("ws-proxy:upstream-error",{pathPrefix:f,error:a.message}),h||b.destroyed||!b.writable?j():I(b,"502 Bad Gateway")}),g.on("close",()=>{j()}),b.on("error",a=>{D.error("ws-proxy:client-error",{pathPrefix:f,error:a.message}),j()}),b.on("close",()=>{j()})}function K(a){E=new d.zu({noServer:!0}),function(a){C();let b=(0,B.wN)(b=>{a(b.worktreeId,{type:"session_status_changed",worktreeId:b.worktreeId,cliTool:b.cliToolId,instance:b.instanceId??b.cliToolId,isWaitingForResponse:b.waiting,waitingKind:b.kind??null,waitingSince:b.since})});globalThis.__waitingStatusBroadcastUnsubscribe=b}(N),a.on("upgrade",(a,b,c)=>{let d=a.url||"/";if(d.startsWith("/_next/")){b.write("HTTP/1.1 426 Upgrade Required\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"),b.destroy();return}if((0,g.Rh)()){let c=(0,g.Z2)(a.socket.remoteAddress||"");if(!(0,g.c$)(c,(0,g.nu)())){let a=c.substring(0,45);D.warn("websocket:denied",{ip:a}),b.write("HTTP/1.1 403 Forbidden\r\n\r\n"),b.destroy();return}}if((0,f.y2)()){let c=a.headers.cookie||"",d=(0,f.JT)(c)[f.aq];if(!d||!(0,f.nr)(d)){b.write("HTTP/1.1 401 Unauthorized\r\nContent-Length: 0\r\nConnection: close\r\n\r\n"),b.destroy();return}}if(d.startsWith("/proxy/"))return void(async()=>{try{await J(a,b,c,{getDb:()=>(0,j.getDbInstance)(),getCache:a=>(0,z.Ds)(a),netConnect:a=>(0,e.connect)(a)})}catch(a){if(D.error("ws-proxy:unhandled-error",{error:a instanceof Error?a.message:String(a)}),!b.destroyed&&b.writable){try{b.write("HTTP/1.1 500 Internal Server Error\r\nContent-Length: 0\r\nConnection: close\r\n\r\n")}catch{}b.destroy()}}})();E.handleUpgrade(a,b,c,b=>{E.emit("connection",b,a)})}),E.on("error",a=>{D.error("server:error",{error:a.message})}),E.on("connection",a=>{let b={ws:a,worktreeIds:new Set,terminalSubscription:null};F.set(a,b),a.on("message",b=>{try{let c=JSON.parse(b.toString());L(a,c)}catch(a){D.error("message:parse-failed",{error:a instanceof Error?a.message:String(a)})}}),a.on("close",()=>{O(a)}),a.on("error",b=>{"WS_ERR_INVALID_CLOSE_CODE"===b.code||b.message?.includes("Invalid WebSocket frame")||b.message?.includes("write after end")||b.message?.includes("ECONNRESET")||b.message?.includes("EPIPE")||D.error("websocket:error",{error:b.message});try{a.terminate()}catch{}O(a)})})}function L(a,b){switch(b.type){case"subscribe":if(!b.worktreeId)return;var c=a,d=b.worktreeId;let e=F.get(c);e&&(e.worktreeIds.add(d),G.has(d)||G.set(d,new Set),G.get(d).add(c));break;case"unsubscribe":if(!b.worktreeId)return;!function(a,b){let c=F.get(a);if(!c)return;c.worktreeIds.delete(b);let d=G.get(b);d&&(d.delete(a),0===d.size&&G.delete(b))}(a,b.worktreeId);break;case"broadcast":if(!b.worktreeId)return;N(b.worktreeId,b.data);break;case"client_version":M(a,b);break;case"terminal_subscribe":Q(a,b);break;case"terminal_input":R(a,b);break;case"terminal_resize":S(a,b);break;case"terminal_unsubscribe":T(a);break;default:D.warn("message:unknown-type")}}function M(a,b){let c="string"==typeof b.version?b.version:"";if(!c)return;let e=(0,A.Sw)();if(e&&c&&"0.0.0"!==e&&"0.0.0"!==c&&e!==c&&a.readyState===d.kb.OPEN)try{a.send(JSON.stringify({type:"version_mismatch",serverVersion:e,clientVersion:c}))}catch(a){D.error("version:notify-failed",{error:a instanceof Error?a.message:String(a)})}}function N(a,b){let c=G.get(a);if(c&&0!==c.size)try{let e=JSON.stringify({type:"broadcast",worktreeId:a,data:b});c.forEach(a=>{if(a.readyState===d.kb.OPEN)try{a.send(e)}catch(a){D.error("broadcast:send-failed",{error:a instanceof Error?a.message:String(a)})}})}catch(b){D.error("broadcast:failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)});try{let b=JSON.stringify({type:"broadcast",worktreeId:a,data:{error:"Message encoding error"}});c.forEach(a=>{if(a.readyState===d.kb.OPEN)try{a.send(b)}catch{}})}catch(a){D.error("fallback:send-failed",{error:a instanceof Error?a.message:String(a)})}}}function O(a){let b=F.get(a);b&&(b.worktreeIds.forEach(b=>{let c=G.get(b);c&&(c.delete(a),0===c.size&&G.delete(b))}),b.terminalSubscription&&(b.terminalSubscription.unsubscribe(),b.terminalSubscription=null),F.delete(a))}function P(a,b){a.readyState===d.kb.OPEN&&a.send(JSON.stringify(b))}async function Q(a,b){let c=F.get(a);if(!c)return void P(a,{type:"terminal_error",error:"Unauthorized WebSocket client"});if("true"!==process.env.TMUX_CONTROL_MODE_ENABLED)return void P(a,{type:"terminal_error",error:"Tmux control mode is disabled"});let{worktreeId:d,cliToolId:e}=b;if(!d||!e||!(0,h.hR)(e))return void P(a,{type:"terminal_error",error:"Invalid terminal subscription parameters"});let f=(0,j.getDbInstance)();if(!(0,k.getWorktreeById)(f,d))return void P(a,{type:"terminal_error",error:"Worktree not found"});c.terminalSubscription&&(await c.terminalSubscription.unsubscribe(),c.terminalSubscription=null);let g=i.s.getInstance().getTool(e).getSessionName(d),m=y();if(m.getSubscriberCount(g)>=4)return void P(a,{type:"terminal_error",error:"Terminal subscriber limit reached"});let n=!1,o=Date.now(),p=await m.subscribe(g,{onOutput:b=>{if(!n){n=!0;let a=Math.max(0,Math.round(Date.now()-o));l.firstOutputLatencyCount+=1,l.firstOutputLatencyTotalMs+=a,l.firstOutputLatencyLastMs=a,l.firstOutputLatencyMinMs=null===l.firstOutputLatencyMinMs?a:Math.min(l.firstOutputLatencyMinMs,a),l.firstOutputLatencyMaxMs=null===l.firstOutputLatencyMaxMs?a:Math.max(l.firstOutputLatencyMaxMs,a)}P(a,{type:"terminal_output",data:b})},onExit:({exitCode:b})=>{P(a,{type:"terminal_exit",exitCode:b})},onError:b=>{(async()=>{try{let b=await m.captureSnapshot(g,{startLine:-200});b.length>0&&P(a,{type:"terminal_output",data:b,fallback:!0})}catch{}P(a,{type:"terminal_error",error:b.message,fallback:!0})})()}});c.terminalSubscription={worktreeId:d,cliToolId:e,sessionName:g,startedAt:o,unsubscribe:p.unsubscribe},P(a,{type:"terminal_status",connected:!0,worktreeId:d,cliToolId:e})}async function R(a,b){let c=F.get(a),d=c?.terminalSubscription;if(!d)return void P(a,{type:"terminal_error",error:"No active terminal subscription"});let e="string"==typeof b.data?b.data:"";if(0===e.length||e.length>4096)return void P(a,{type:"terminal_error",error:"Invalid terminal input"});try{await y().sendInput(d.sessionName,e)}catch(b){P(a,{type:"terminal_error",error:b instanceof Error?b.message:"Failed to send terminal input"})}}async function S(a,b){let c=F.get(a),d=c?.terminalSubscription;if(d){if("number"!=typeof b.cols||!Number.isInteger(b.cols)||b.cols<20||b.cols>500||"number"!=typeof b.rows||!Number.isInteger(b.rows)||b.rows<5||b.rows>200)return void P(a,{type:"terminal_error",error:"Invalid terminal resize payload"});try{await y().resize(d.sessionName,b.cols,b.rows)}catch(b){P(a,{type:"terminal_error",error:b instanceof Error?b.message:"Failed to resize terminal"})}}}async function T(a){let b=F.get(a);if(b?.terminalSubscription){try{await b.terminalSubscription.unsubscribe()}catch{}b.terminalSubscription=null,P(a,{type:"terminal_status",connected:!1})}}function U(a,b){N(a,b)}function V(a){let b=G.get(a);return!!b&&b.size>0}function W(a,b){b.worktreeId?N(b.worktreeId,{type:a,...b}):D.warn("broadcast:missing-worktree-id")}let X="worktree_renamed";function Y(a){let b=new Map;for(let{oldId:c,newId:d}of a)c&&d&&c!==d&&b.set(c,d);if(0===b.size)return[];let c=[];for(let[a,d]of b){let b=G.get(a);b&&0!==b.size&&(G.delete(a),c.push({oldId:a,newId:d,sockets:b}))}let d=[];for(let{oldId:a,newId:b,sockets:e}of c){let c=G.get(b)??new Set;for(let d of e){c.add(d);let e=F.get(d);e&&(e.worktreeIds.delete(a),e.worktreeIds.add(b)),P(d,{type:X,worktreeId:b,previousWorktreeId:a})}G.set(b,c),d.push({oldId:a,newId:b,subscribers:e.size})}for(let a of F.values()){let c=a.terminalSubscription;if(!c)continue;let d=b.get(c.worktreeId);if(d)try{if(!(0,h.hR)(c.cliToolId))continue;let a=i.s.getInstance().getTool(c.cliToolId);c.sessionName=a.getSessionName(d),c.worktreeId=d}catch(a){D.warn("terminal:rename-failed",{worktreeId:c.worktreeId,newId:d,error:a instanceof Error?a.message:String(a)})}}return d.length>0&&D.info("rooms:migrated",{count:d.length}),d}function Z(a){for(let b of a){let a=G.get(b);a&&(a.forEach(a=>{let c=F.get(a);c&&c.worktreeIds.delete(b)}),G.delete(b))}}function $(){C(),E&&(F.forEach(a=>{a.ws.close()}),F.clear(),G.clear(),E.close(),E=null)}let _={handleMessage:L,handleClientVersion:M,handleProxyUpgrade:J,handleTerminalSubscribe:Q,handleTerminalInput:R,handleTerminalResize:S,handleTerminalUnsubscribe:T,handleDisconnect:O,registerClientForTest(a){F.set(a,{ws:a,worktreeIds:new Set,terminalSubscription:null})},getClientInfoForTest:a=>F.get(a),resetStateForTest(){F.clear(),G.clear()}}},99508:(a,b,c)=>{"use strict";c.r(b),c.d(b,{INTERACTION_SNAPSHOT_RETRY_DELAYS_MS:()=>l,__resetTerminalBroadcastState:()=>s,broadcastSessionStatus:()=>r,broadcastTerminalSnapshot:()=>m,broadcastTerminalSnapshotAfterInteraction:()=>q});var d=c(95620),e=c(88807),f=c(85479),g=c(72626),h=c(31268),i=c(93997);let j=(0,g.h)("terminal-broadcast"),k=new Map,l=[100,250,500,750];async function m(a,b,c){if((0,d.hasRoomSubscribers)(a))try{let d=(0,e.getDbInstance)(),g=await (0,f.$)(d,a,b,c);p(a,b,g,c)}catch(b){j.error("terminal-snapshot:failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})}}function n(a){return JSON.stringify([a.fullOutput??"",a.isRunning,a.thinking??!1,a.isPromptWaiting??!1,a.isSelectionListActive??!1,a.isPagerActive??!1,a.isUnclassifiedActive??!1])}async function o(a,b,c){let d=h.s.getInstance().getTool(b);return(0,i.gm)(d.getSessionName(a,c)),(0,f.$)((0,e.getDbInstance)(),a,b,c)}function p(a,b,c,e){let f=e??b,g=`${a}:${b}:${f}`;(0,d.broadcast)(a,{type:"terminal_snapshot",worktreeId:a,cliToolId:b,instanceId:f,output:c.fullOutput??"",isRunning:c.isRunning,thinking:c.thinking??!1,isPromptWaiting:c.isPromptWaiting??!1,promptData:c.promptData??null,isSelectionListActive:c.isSelectionListActive??!1,isPagerActive:c.isPagerActive??!1,isUnclassifiedActive:c.isUnclassifiedActive??!1,version:function(a){let b=(k.get(a)??0)+1;return k.set(a,b),b}(g)})}async function q(a,b,c,e=l){if((0,d.hasRoomSubscribers)(a))try{let d=await o(a,b,c),f=n(d);for(let g of(p(a,b,d,c),e)){await new Promise(a=>setTimeout(a,g));let d=await o(a,b,c);if(n(d)!==f)return void p(a,b,d,c)}}catch(d){j.error("terminal-snapshot:interaction-refresh-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)})}}function r(a,b,c){(0,d.broadcast)(a,{type:"session_status_changed",worktreeId:a,isRunning:b,cliTool:c?.cliTool??null,instance:c?.instance??null})}function s(){k.clear()}}};
@@ -1,6 +0,0 @@
1
- "use strict";exports.id=7458,exports.ids=[7458],exports.modules={2466:(a,b,c)=>{c.d(b,{ek:()=>h,u_:()=>g});var d=c(13287);function e(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function f(a,b){if("string"!=typeof a)return null;let c=a.trim();return""===c?null:c.slice(0,b)}function g(a){if(!e(a)||!Array.isArray(a.questions)||0===a.questions.length||a.questions.length>20)return null;let b=[];for(let c of a.questions){let a=function(a){if(!e(a))return null;let b=f(a.question,1e3);if(null===b||!Array.isArray(a.options)||0===a.options.length||a.options.length>20)return null;let c=[];for(let b of a.options){let a=function(a){if(!e(a))return null;let b=f(a.label,200);return null===b?null:{label:b,description:f(a.description,500)}}(b);if(null===a)return null;c.push(a)}return{question:b,header:f(a.header,64),multiSelect:!0===a.multiSelect,choices:c}}(c);if(null===a)return null;b.push(a)}return b}function h(a){if(!e(a)||a.tool_name!==d.k$)return null;let b=g(a.tool_input);return null===b?null:{questions:b,promptId:f(a.prompt_id,256)}}},2734:(a,b,c)=>{c.d(b,{c:()=>d});let d="codex"},8004:(a,b,c)=>{c.d(b,{T:()=>h});var d=c(72626),e=c(7956);let f=(0,d.h)("safe-directory"),g=new Set;function h(a,b,c){if(!a)return b;if(!(0,e.Mb)(a))return a;let d=`${c}|${a}`;return g.has(d)||(g.add(d),f.warn("virtual-filesystem-path-rejected",{source:c,candidate:a,fallback:b,reason:"A recursive mkdir under /proc, /sys or /dev never returns on Linux; the built-in default is used instead (Issue #1774)."})),b}},13287:(a,b,c)=>{c.d(b,{I4:()=>k,k$:()=>e,l9:()=>d,ss:()=>i,vy:()=>f});let d="PermissionRequest",e="AskUserQuestion",f=128;function g(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function h(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function i(a){if(!h(a)||a.hook_event_name!==d)return null;let b=g(a,"tool_name");return b&&!(b.length>f)&&h(a.tool_input)?{toolName:b,toolInput:a.tool_input,promptId:g(a,"prompt_id"),sessionId:g(a,"session_id"),permissionMode:g(a,"permission_mode"),permissionSuggestions:Array.isArray(a.permission_suggestions)?a.permission_suggestions:null}:null}let j={Bash:["command","description"],BashOutput:["bash_id"],KillShell:["shell_id"],Read:["file_path"],Write:["file_path"],Edit:["file_path"],NotebookEdit:["notebook_path"],Glob:["pattern","path"],Grep:["pattern","path"],WebFetch:["url","prompt"],WebSearch:["query"],SlashCommand:["command"],Task:["description","subagent_type","prompt"]};function k(a,b){let c=j[a];if(c){let a=c.map(a=>b[a]).filter(a=>"string"==typeof a&&""!==a);if(a.length>0)return a}try{return[JSON.stringify(b)??""]}catch{return[Object.keys(b).join(" ")]}}},21758:(a,b,c)=>{c.d(b,{Rv:()=>E,TV:()=>q,cN:()=>u,nL:()=>o});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(15194),i=c(87447),j=c(43252),k=c(66007),l=c(72626),m=c(54633);let n=(0,l.h)("lib/hooks/sources/copilot/hook-settings"),o="gh copilot",p="cmate-copilot-agent-hooks",q=10,r="CM_AGENT_WORKTREE_ID",s="CM_AGENT_INSTANCE_ID",t="CM_AUTH_TOKEN",u="PreToolUse",v=[["SessionStart","session_start"],["UserPromptSubmit","user_prompt_submit"],["PostToolUse","post_tool_use"],["Stop","stop"],["SessionEnd","session_end"]];function w(a,b){return`http://127.0.0.1:${b.port??(0,i.D0)()}${a}`}function x(a=""){return`: ${p}; if [ -z "\${${r}:-}" ]; then cat >/dev/null; ${a}exit 0; fi; `}let y=`"\${${s}:-${m.V}}"`,z=`"$${r}"`;function A(){return`set -- -sS -m 4 -X POST -H 'Content-Type: application/json'; if [ -n "\${${t}:-}" ]; then set -- "$@" -H "Authorization: Bearer $${t}"; fi; `}function B(a){return`${(0,j.ZL)(`${a}?tool=${m.V}&worktreeId=`)}${z}'&instanceId='${y}`}function C(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function D(a){return C(a)&&"string"==typeof a.command&&a.command.includes(p)}function E(a,b,c={}){let i={command:a,settingsPath:null,env:{}};if("0"===process.env.CM_AGENT_HOOKS_INJECT)return i;let l=b.instanceId??m.V;if(!(0,h.n6)(l)||!(0,k.h6)(b.worktreeId))return n.warn("copilot-hook-invalid-correlation-key",{worktreeId:b.worktreeId}),i;try{var o;let h=function(a={}){let b=a.settingsPath??(0,f.join)(function(){let a=(0,f.join)((0,e.homedir)(),".copilot");return(0,g.T)(process.env.COPILOT_HOME,a,"COPILOT_HOME")}(),"settings.json"),c=function(a,b){let c=a.hooks;if(void 0!==c&&!C(c))throw Error('copilot settings.json has a non-object "hooks" key');let d={...c??{}};for(let[a,c]of Object.entries(b.hooks)){let b=d[a];if(void 0!==b&&!Array.isArray(b)){n.warn("copilot-hook-event-not-an-array",{event:a});continue}d[a]=[...function(a){let b=[];for(let c of a)if(!D(c)){if(C(c)&&Array.isArray(c.hooks)){let a=c.hooks.filter(a=>!D(a));if(0===a.length&&c.hooks.length>0)continue;b.push({...c,hooks:a});continue}b.push(c)}return b}(b??[]),...c]}return{...a,hooks:d}}(function(a){let b;try{b=(0,d.readFileSync)(a,"utf8")}catch(a){if("ENOENT"===a.code)return{};throw a}if(""===b.trim())return{};let c=JSON.parse(b);if(!C(c))throw Error("copilot settings.json is not a JSON object");return c}(b),function(a={}){let b={};for(let[c,d]of v)b[c]=[{hooks:[{type:"command",command:function(a,b={}){let c=w(j.jx,b),d=void 0===b.relayScriptPath?(0,j.Os)():b.relayScriptPath;return d?x()+[(0,j.ZL)(d),"--tool",(0,j.ZL)(m.V),"--event",(0,j.ZL)(a),"--worktree-id",z,"--instance-id",y,"--url",(0,j.ZL)(c),"--stdin-json"].join(" "):x()+A()+`curl "$@" --data-binary @- ${B(c)} >/dev/null 2>&1 || true`}(d,a)}]}];return b[u]=[{hooks:[{type:"command",command:function(a={}){let b=w(j.WZ,a);return x("printf '{}'; ")+A()+`out=$(curl "$@" --data-binary @- ${B(b)} 2>/dev/null); `+"[ -n \"$out\" ] || out='{}'; printf '%s' \"$out\""}(a)}]}],{hooks:b}}(a));return(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0,mode:448}),(0,d.writeFileSync)(b,`${JSON.stringify(c,null,2)}
2
- `,{mode:384}),b}(c);return{command:a,settingsPath:h,env:(o=b.worktreeId,{[r]:o,[s]:l})}}catch(a){return n.warn("copilot-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),i}}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(97709);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},25071:(a,b,c)=>{c.d(b,{_0:()=>j,o4:()=>i,qK:()=>h});var d=c(24455);let e=(0,c(72626).h)("lib/hooks/sources/pending-decisions"),f=globalThis.__agentSourcePendingDecisions??=new Map;function g(a){return(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function h(a){return(f.get(g(a))??[]).map(a=>a.decision)}function i(a,b,c){let d=f.get(g(a));if(!d)return!1;let e=d.find(a=>a.decision.id===b);return!!e&&(e.body=c,!0)}async function j(a,b,c,d){let h=function(a,b){let c=g(a),d={key:c,ref:a,decision:b,body:null},e=f.get(c)??[];for(e.push(d);e.length>16;)e.shift();return f.set(c,e),d}(b,c);try{await a.decide(b,c,d)}catch(a){e.warn("agent-source-decide-failed",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId,decisionId:c.id,error:a instanceof Error?a.message:String(a)})}let i=f.get(h.key);if(i){let a=i.indexOf(h);a>=0&&i.splice(a,1),0===i.length&&f.delete(h.key)}return h.body??{}}},26547:(a,b,c)=>{c.d(b,{Yz:()=>w,jw:()=>u});var d=c(51297),e=c(85164);let f=["minimal","low","medium","high","xhigh"];function g(){return{model:null,effort:null}}let h=/^[A-Za-z0-9][A-Za-z0-9._:@/-]*$/,i=/^[A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*$/;function j(a){return a.length>0&&a.length<=64&&i.test(a)}function k(a,b={}){let c=a.trim().toLowerCase();if(""===c)return null;if(f.includes(c))return c;if(!b.allowTruncated||c.length<2)return null;let d=f.filter(a=>a.length===c.length+1&&a.startsWith(c));return 1===d.length?d[0]:null}let l=/^\s*([^\s·]+)(?:\s+(minimal|low|medium|high|xhigh)\b)?/i;function m(a){if(!e.aW.test(a))return null;let b=a.indexOf("\xb7");if(b<0)return null;let c=l.exec(a.slice(0,b));if(!c)return null;let d=c[1];if(!(d.length>0&&d.length<=64&&h.test(d)))return null;let f=c[2]?k(c[2]):null;return null!==f||/\d/.test(d)?{model:d,effort:f}:null}let n=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+with\s+(minimal|low|medium|high|xhigh)\s+effort\b/i;function o(a){let b=n.exec(a);if(!b)return null;let c=b[1].trim();return j(c)?{model:c,effort:k(b[2])}:null}let p=/^\s*(?:\?\s+for\s+shortcuts|esc\s+to\s+cancel)\b/i,q=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+\((minimal|low|medium|high|xhigh)\)\s*$/i;function r(a){if(!p.test(a))return null;let b=a.lastIndexOf("\xb7");if(b<0)return null;let c=k(a.slice(b+1),{allowTruncated:!0});if(!c)return null;let d=a.slice(0,b).trimEnd().split(/\s{2,}/),e=(d[d.length-1]??"").trim();return{model:j(e)?e:null,effort:c}}function s(a){let b=q.exec(a);if(!b)return null;let c=b[1].trim();return j(c)?{model:c,effort:k(b[2])}:null}function t(a,b){let c=a.split("\n");for(let a=c.length-1;a>=0;a--){let e=b((0,d.aJ)(c[a]));if(e)return e}return null}function u(a,b){if(!b)return g();switch(a){case"codex":return t(b,m)??g();case"claude":return t(b,o)??g();case"antigravity":return t(b,r)??t(b,s)??g();default:return g()}}let v=/-(low|medium|high)$/i;function w(a,b,c){let d=(b||null)??c?.model??null,e=c?.effort??null,f="antigravity"===a?function(a){if(!a)return null;let b=v.exec(a);return b?b[1].toLowerCase():null}(d)??e:e;return{model:d,effort:f}}},36051:(a,b,c)=>{c.d(b,{Yo:()=>h,fO:()=>i,lY:()=>e});var d=c(81254);let e=500,f={notification:"Notification(permission_prompt)","permission-request":"PermissionRequest (no decision)"};function g(a,b){let c=[`A dialog is open in ${a}: the agent reported it via ${f[b.source]}${b.toolName?` for ${b.toolName}`:""}, but the detection layer published no options for it.`,`Answer it in the terminal, or send the option NUMBER with \`commandmate respond ${a} <number>\` — yes/no is not resolved on a numbered dialog (Issue #1681).`];if(b.message&&c.push(`Agent message: "${b.message}"`),b.askUserQuestion){let{question:a,labels:d,questionCount:e}=b.askUserQuestion;c.push(`The agent asked${e>1?` ${e} questions, the first being`:""}: "${a}" — offering: ${d.join(" / ")}. The picker renumbers and adds its own entries, so read the option NUMBER off the terminal rather than counting this list.`)}return c.join(" ")}function h(a,b){return{type:d.LT,status:"pending",question:g(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}function i(a,b){return{type:d.LT,status:"unclassified",question:g(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}},38367:(a,b,c)=>{c.d(b,{Jp:()=>h,WK:()=>e,lb:()=>f,ue:()=>g});var d=c(57510);let e={Stop:"stop",SubagentStop:"stop",Notification:"notification",SessionStart:"session_start",SessionEnd:"session_end",UserPromptSubmit:"user_prompt_submit",PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use"},f=["session_id","conversationId"],g=["tool_use_id"];function h(a,b){let c="notification"===a?"notification_type":"session_end"===a?"reason":"session_start"===a?"source":"pre_tool_use"===a||"post_tool_use"===a?"tool_name":null;return null===c?null:(0,d.Wv)((0,d.O2)(b,c))}},42545:(a,b,c)=>{c.d(b,{FN:()=>u,lf:()=>r,wb:()=>q,bP:()=>s});var d=c(72626),e=c(24455),f=c(57510),g=c(49791),h=c(75356),i=c(98211),j=c(84574);function k(a){let b=(0,f.Qd)(a.properties)?a.properties:{};return(0,f.NZ)(b,["sessionID"])}function l(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}let m=(0,d.h)("lib/hooks/sources/opencode/subscription"),n=[1e3,2e3,4e3,8e3,15e3,3e4],o=globalThis.__opencodeSubscriptions??=new Map;function p(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function q(a){return o.has(p(a))}function r(a){return o.get(p(a))?.liveness??{state:"unknown"}}async function s(a,b,c,d){let e=p(a),g=o.get(e);if(g)return t(g);let h=d??(0,j.hC)(a);if(null===h)return m.info("opencode-subscription-skipped-no-port",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),{close:async()=>{},liveness:{state:"unknown"}};let i={key:e,target:a,port:h,onEvent:b,normalize:c,gate:function(a=64,b=512){let c=new Map,d=new Set,e=(b,d)=>{c.delete(b),c.set(b,d),l(c,a)};return{observe(a,g){if("message.updated"===a){let{role:a,id:c}=function(a){let b=(0,f.Qd)(a.properties)?a.properties:{};return{role:(0,f.NZ)(b,["info","role"]),id:(0,f.NZ)(b,["info","id"])}}(g);if("user"!==a||null===c)return{kind:"ignored"};let e=k(g)??"";return d.has(c)?{kind:"suppressed",sessionId:e,reason:"already-announced"}:(d.add(c),l(d,b),{kind:"announced",sessionId:e,messageId:c})}if("session.status"===a){if("busy"!==function(a){let b=(0,f.Qd)(a.properties)?a.properties:{};return(0,f.NZ)(b,["status","type"])}(g))return{kind:"ignored"};let a=k(g);return null===a?{kind:"ignored"}:(e(a,"busy"),{kind:"armed",sessionId:a})}if("session.error"===a){let a=k(g);return null===a?{kind:"ignored"}:{kind:"failed",sessionId:a,errorName:function(a){let b=(0,f.Qd)(a.properties)?a.properties:{};return(0,f.NZ)(b,["error","name"])}(g)}}if("session.idle"!==a)return{kind:"ignored"};let h=k(g);if(null===h)return{kind:"ignored"};let i=c.get(h);return void 0===i?{kind:"suppressed",sessionId:h,reason:"never-armed"}:"idle"===i?{kind:"suppressed",sessionId:h,reason:"already-completed"}:(e(h,"idle"),{kind:"completed",sessionId:h})},isArmed:a=>"busy"===c.get(a),reset(){c.clear()}}}(),seenDecisions:new Set,streamController:new AbortController,liveness:{state:"unknown"},closed:!1,watchdog:null};return o.set(e,i),m.info("opencode-subscription-opened",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:h}),x(i),t(i)}function t(a){return{close:async()=>{await u(a.target)},get liveness(){return a.liveness}}}async function u(a){let b=p(a),c=o.get(b);c&&(c.closed=!0,v(c),c.streamController.abort(),o.delete(b),m.info("opencode-subscription-closed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c.port}))}function v(a){null!==a.watchdog&&(clearTimeout(a.watchdog),a.watchdog=null)}function w(a){v(a);let b=setTimeout(()=>{a.closed||(m.warn("opencode-subscription-heartbeat-lost",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,afterMs:3e4}),a.streamController.abort())},3e4);b.unref?.(),a.watchdog=b}async function x(a){let b=0;for(;!a.closed;){a.streamController=new AbortController,a.gate.reset();let c="stream-ended";try{for await(let c of(await y(a),w(a),(0,g.Y5)(a.port,a.streamController.signal)))b=0,w(a),function(a,b){let c=(0,f.O2)(b,"type");("server.heartbeat"===c||"server.connected"===c)&&(a.liveness={state:"live",lastHeartbeatAt:Date.now()}),z(a,b,Date.now())}(a,c)}catch(a){c=a instanceof Error?a.message:String(a)}finally{v(a)}if(a.closed)break;a.liveness={state:"lost",since:Date.now(),reason:c},m.warn("opencode-subscription-disconnected",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,reason:c,attempt:b}),await function(a,b){return new Promise(c=>{let d=setTimeout(c,a);d.unref?.(),b.addEventListener("abort",()=>{clearTimeout(d),c()},{once:!0})})}(function(a){let b=Math.min(a,n.length-1);return n[b]}(b),a.streamController.signal),b+=1}}async function y(a){let b=Date.now(),[c,d]=await Promise.all([(0,g.Li)(a.port),(0,g.er)(a.port)]),e=(c,d)=>{for(let e of c){let c=(0,f.O2)(e,"id");!c||a.seenDecisions.has(c)||z(a,{id:`resync_${c}`,type:d,properties:e},b)}};e(c,"permission.asked"),e(d,"question.asked")}function z(a,b,c){var d,e;let g=(0,f.O2)(b,"type");if("message.part.updated"===g){let a=(0,h.Zu)(b),c=(0,h.Dp)(b);a&&c&&(0,i.XL)(a,c)}let j=a.gate.observe(g,b);"failed"===j.kind&&m.warn("opencode-session-error",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:j.sessionId,errorName:j.errorName});let k=null;try{k=a.normalize({payload:b,receivedAt:c})}catch(a){m.error("opencode-normalize-threw",{type:g,error:a instanceof Error?a.message:String(a)});return}if(!k)return;let l=(d=k.event,e=j,"stop"===d&&"completed"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-turn-end":"user_prompt_submit"===d&&"announced"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-new-prompt":null);if(null!==l)return void m.info("opencode-repeat-suppressed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:k.conversationId,event:k.event,reason:l});!function(a,b){let c=(0,f.O2)(b,"type");if("permission.asked"!==c&&"question.asked"!==c)return;let d=(0,f.Qd)(b.properties)?b.properties:{},e=(0,f.O2)(d,"id");if(e)for(a.seenDecisions.add(e);a.seenDecisions.size>256;){let b=a.seenDecisions.values().next();if(b.done)break;a.seenDecisions.delete(b.value)}}(a,b);try{a.onEvent(k)}catch(a){m.error("opencode-event-handler-failed",{type:g,error:a instanceof Error?a.message:String(a)})}}},43252:(a,b,c)=>{c.d(b,{D2:()=>G,O$:()=>B,Os:()=>D,W6:()=>p,WZ:()=>o,XE:()=>r,ZL:()=>E,g5:()=>y,iR:()=>z,jx:()=>n,q:()=>v,sI:()=>q,xM:()=>A,yc:()=>w});var d=c(55511),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(87447),j=c(15194),k=c(70997),l=c(13287);let m=(0,c(72626).h)("lib/hooks/hook-settings-generator"),n="/api/hooks/agent-event",o="/api/hooks/permission-request",p=5,q=5,r="CM_AUTH_TOKEN",s=l.k$,t=["Bash(pkill:*)","Bash(killall:*)","Bash(kill -9:*)"],u=(0,g.join)("scripts","hooks","cmate-agent-event.sh");function v(){return"0"!==process.env.CM_AGENT_HOOKS_INJECT}function w(){return!!(process.env[r]||process.env.CM_AUTH_TOKEN_HASH)}function x(a={}){let b=(0,g.join)((0,f.homedir)(),".commandmate","hooks");return a.directory?(0,h.T)(a.directory,b,"HookSettingsOptions.directory"):(0,h.T)(process.env.CM_AGENT_HOOKS_DIR,b,"CM_AGENT_HOOKS_DIR")}function y(a){let b=a.cliToolId??k.v;return a.instanceId??b}function z(a,b={}){let c=a.cliToolId??k.v,e=y(a),f=`${c}-${a.worktreeId}-${e}`.replace(/[^a-zA-Z0-9_-]/g,"_"),h=(0,d.createHash)("sha256").update(JSON.stringify([c,a.worktreeId,e])).digest("hex").slice(0,12);return(0,g.join)(x(b),`${f.slice(0,80)}-${h}.json`)}function A(a,b={}){return C(n,a,b)}function B(a,b={}){return C(o,a,b)}function C(a,b,c){let d=b.cliToolId??k.v,e=c.port??(0,i.D0)(),f=new URLSearchParams({tool:d,worktreeId:b.worktreeId,instanceId:y(b)});return`http://127.0.0.1:${e}${a}?${f.toString()}`}function D(){let a=(0,g.resolve)(process.cwd(),u);return(0,e.existsSync)(a)?a:null}function E(a){return`'${a.replace(/'/g,"'\\''")}'`}function F(a,b,c=p){let d={"Content-Type":"application/json"},e={type:"http",url:a,headers:d,timeout:c};return b&&(d.Authorization=`Bearer $${r}`,e.allowedEnvVars=[r]),e}function G(a,b,c={}){if(!v())return a;if(!(0,j.n6)(y(b)))return m.warn("hook-settings-invalid-instance-id",{worktreeId:b.worktreeId}),a;try{let d=function(a,b={}){let c=z(a,b);return(0,e.mkdirSync)(x(b),{recursive:!0,mode:448}),(0,e.writeFileSync)(c,`${JSON.stringify(function(a,b={}){let c=A(a,b),d=b.withAuthHeader??w(),e=()=>F(c,d);return{hooks:{SessionStart:[{hooks:[{type:"command",command:function(a,b={}){let c=A(a,b),d=b.withAuthHeader??w(),e=void 0===b.relayScriptPath?D():b.relayScriptPath;if(e)return[E(e),"--tool",E(a.cliToolId??k.v),"--event session_start --worktree-id",E(a.worktreeId),"--instance-id",E(y(a)),"--url",E(c),"--stdin-json"].join(" ");let f=d?` -H "Authorization: Bearer $${r}"`:"";return`curl -sS -m ${p} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${E(c)} >/dev/null 2>&1 || true`}(a,b),timeout:p}]}],UserPromptSubmit:[{hooks:[e()]}],Stop:[{hooks:[e()]}],Notification:[{matcher:"permission_prompt|idle_prompt",hooks:[e()]}],SessionEnd:[{hooks:[e()]}],PreToolUse:[{matcher:s,hooks:[e()]}],PostToolUse:[{matcher:s,hooks:[e()]}],PermissionRequest:[{hooks:[F(B(a,b),d,q)]}]},permissions:{deny:[...t]}}}(a,b),null,2)}
3
- `,{mode:384}),c}(b,c);return`${E(a)} --settings ${E(d)}`}catch(c){return m.warn("hook-settings-write-failed",{worktreeId:b.worktreeId,error:c instanceof Error?c.message:String(c)}),a}}},45567:(a,b,c)=>{c.d(b,{K:()=>f,Z:()=>e});var d=c(43252);let e="CM_HOOK_URL";function f(a){let b=Object.entries(a.env).map(([a,b])=>`${a}=${(0,d.ZL)(b)}`);return 0===b.length?a.command:`${b.join(" ")} ${a.command}`}},48083:(a,b,c)=>{c.d(b,{BJ:()=>J,CE:()=>t,Fw:()=>K,HR:()=>G,P5:()=>E,R4:()=>B,_N:()=>I,ak:()=>w,dj:()=>z,ik:()=>D,je:()=>A,jl:()=>y,m5:()=>H,n4:()=>u,pI:()=>v,vm:()=>x,zA:()=>F,zM:()=>s});var d=c(24455),e=c(62887),f=c(13287),g=c(26547),h=c(67882),i=c(36051);let j=globalThis.__agentEventLastStopAt??(globalThis.__agentEventLastStopAt=new Map),k=globalThis.__agentEventLast??(globalThis.__agentEventLast=new Map),l=globalThis.__agentEventGenerationStartedAt??(globalThis.__agentEventGenerationStartedAt=new Map),m=globalThis.__agentEventPromptWaiting??(globalThis.__agentEventPromptWaiting=new Map),n=globalThis.__agentEventAskUserQuestion??(globalThis.__agentEventAskUserQuestion=new Map),o=globalThis.__agentEventRecentKeys??(globalThis.__agentEventRecentKeys=new Map),p=globalThis.__agentEventAwaitingInstruction??(globalThis.__agentEventAwaitingInstruction=new Map),q=globalThis.__agentEventLastModel??(globalThis.__agentEventLastModel=new Map),r=globalThis.__agentCapturedModelInfo??(globalThis.__agentCapturedModelInfo=new Map);function s(a,b,c,e=Date.now()){j.set((0,d.v7)(a,b,c),e)}function t(a,b,c){return j.get((0,d.v7)(a,b,c))??null}function u(a,b,c,g){let h=(0,d.v7)(a,b,c);k.set(h,g),"string"==typeof g.model&&""!==g.model&&q.set(h,g.model.slice(0,e.h9)),function(a,b){switch(b.event){case"pre_tool_use":b.detail!==f.k$&&n.delete(a);return;case"notification":"idle_prompt"===b.detail&&n.delete(a);return;case"post_tool_use":case"stop":case"user_prompt_submit":case"session_start":case"session_end":n.delete(a);return;default:b.event;return}}(h,g),"session_start"===g.event&&l.set(h,g.at),function(a,b){switch(b.event){case"notification":"permission_prompt"===b.detail?C(a,{source:"notification",message:b.message??null,at:b.at}):"idle_prompt"===b.detail&&m.delete(a);return;case"stop":case"user_prompt_submit":case"session_start":case"session_end":case"post_tool_use":m.delete(a);return;case"pre_tool_use":return;default:b.event;return}}(h,g),function(a,b){switch(b.event){case"notification":"idle_prompt"===b.detail&&p.set(a,{at:b.at,message:b.message??null});return;case"user_prompt_submit":case"session_start":case"session_end":p.delete(a);return;case"stop":case"pre_tool_use":case"post_tool_use":return;default:b.event;return}}(h,g)}function v(a,b,c){return null!==function(a,b,c){let e=(0,d.v7)(a,b,c),f=p.get(e);if(!f)return null;let g=l.get(e);return void 0!==g&&f.at<g?null:f}(a,b,c)}function w(a,b,c){return k.get((0,d.v7)(a,b,c))??null}function x(a,b,c,f){if(!f.model&&!f.effort)return;let g=(0,d.v7)(a,b,c),h=r.get(g);r.set(g,{model:f.model?f.model.slice(0,e.h9):h?.model??null,effort:f.effort??h?.effort??null})}function y(a,b,c){return(0,g.Yz)(b,q.get((0,d.v7)(a,b,c))??null,function(a,b,c){let e=r.get((0,d.v7)(a,b,c));return{model:e?.model??null,effort:e?.effort??null}}(a,b,c))}function z(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c);l.set(f,e),m.delete(f),n.delete(f),p.delete(f),q.delete(f),r.delete(f)}function A(a,b,c){let e=(0,d.v7)(a,b,c);k.delete(e),l.delete(e),m.delete(e),n.delete(e),p.delete(e),q.delete(e),r.delete(e)}function B(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=k.get(f);if(!g)return null;let i=l.get(f);if(void 0!==i&&g.at<i||e-g.at>=18e5)return null;let j=(0,h.DA)(g.event,g.detail);return null===j?null:{...j,event:g.event,at:g.at,detail:g.detail}}function C(a,b){let c=m.get(a),d="notification"===b.source;if(c){c.message=b.message??c.message,c.toolName=b.toolName??c.toolName,d&&(c.source="notification",c.confirmedAt??=b.at);return}m.set(a,{at:b.at,source:b.source,message:b.message?b.message.slice(0,i.lY):null,toolName:b.toolName??null,confirmedAt:d?b.at:null,scraperCorroborated:!1,recorded:!1})}function D(a,b,c,e,f=Date.now()){C((0,d.v7)(a,b,c),{source:"permission-request",message:null,toolName:e,at:f})}function E(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=m.get(f);if(!g)return null;let h=l.get(f);return void 0!==h&&g.at<h||e-g.at>=18e5||null===g.confirmedAt&&e-g.at>=2e4?null:g}function F(a,b,c,e=Date.now()){let f=m.get((0,d.v7)(a,b,c));f&&(f.scraperCorroborated=!0,f.confirmedAt??=e)}function G(a,b,c){let e=m.get((0,d.v7)(a,b,c));e&&(e.recorded=!0)}function H(a,b,c){m.delete((0,d.v7)(a,b,c))}function I(a,b,c,e,f=Date.now()){n.set((0,d.v7)(a,b,c),{at:f,spec:e})}function J(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=n.get(f);if(!g)return null;let h=l.get(f);return void 0!==h&&g.at<h||e-g.at>=18e5?null:g}function K(a,b,c,e,f,g=Date.now(),h=null){if(!f)return!1;let i=[(0,d.v7)(a,b,c),e,h??"",f].join(" "),j=o.get(i);return void 0!==j&&g-j<3e3||(o.set(i,g),function(a){for(let[b,c]of o)a-c>=3e3&&o.delete(b);for(;o.size>512;){let a=o.keys().next();if(a.done)break;o.delete(a.value)}}(g),!1)}},49791:(a,b,c)=>{c.d(b,{Ei:()=>o,LV:()=>n,Li:()=>k,Ok:()=>i,Vc:()=>e,Y5:()=>p,er:()=>l,xR:()=>m});let d=(0,c(72626).h)("lib/hooks/sources/opencode/client"),e="127.0.0.1";function f(a){return`http://${e}:${a}`}function g(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function h(a,b){try{let c=await fetch(a,{...b,signal:AbortSignal.timeout(5e3)});if(!c.ok)return null;return await c.json()}catch(b){return d.debug("opencode-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),null}}async function i(a){let b=await h(`${f(a)}/global/health`);return g(b)&&!0===b.healthy?{healthy:!0,version:"string"==typeof b.version?b.version:null}:null}function j(a){return Array.isArray(a)?a.filter(g):[]}async function k(a){return j(await h(`${f(a)}/permission`))}async function l(a){return j(await h(`${f(a)}/question`))}async function m(a){let b=await h(`${f(a)}/session/status`);if(!g(b))return null;for(let a of Object.values(b))if(g(a)&&"busy"===a.type)return"busy";return"idle"}async function n(a,b,c,d){let e={reply:c};return d&&(e.message=d),null!==await h(`${f(a)}/permission/${encodeURIComponent(b)}/reply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function o(a,b,c){return null!==await h(`${f(a)}/question/${encodeURIComponent(b)}/reply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answers:c})})}async function*p(a,b){let c=await fetch(`${f(a)}/event`,{signal:b,headers:{Accept:"text/event-stream"}});if(!c.ok||!c.body)throw Error(`opencode /event responded ${c.status}`);let d=c.body.getReader(),e=new TextDecoder,g=function(){let a="",b=[],c=[],d=()=>{0!==b.length&&(c.push(b.join("\n")),b=[])},e=a=>{let c=a.endsWith("\r")?a.slice(0,-1):a;if(""===c)return void d();!c.startsWith(":")&&c.startsWith("data:")&&b.push(c.slice(5).replace(/^ /,""))};return{push(b){let d=(a+=b).indexOf("\n");for(;d>=0;)e(a.slice(0,d)),d=(a=a.slice(d+1)).indexOf("\n");return c.splice(0,c.length)},flush:()=>(""!==a&&(e(a),a=""),d(),c.splice(0,c.length))}}();try{for(;;){let{done:a,value:b}=await d.read();if(a)break;let c=e.decode(b,{stream:!0});for(let a of g.push(c)){let b=q(a);b&&(yield b)}}for(let a of g.flush()){let b=q(a);b&&(yield b)}}finally{await d.cancel().catch(()=>{})}}function q(a){try{let b=JSON.parse(a);return g(b)?b:null}catch{return null}}},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`}}}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}},54633:(a,b,c)=>{c.d(b,{V:()=>d});let d="copilot"},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,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,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,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,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,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,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,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,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,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,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,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,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,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:()=>p,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,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,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.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,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(90444),e=c(88807),f=c(18698),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},57510:(a,b,c)=>{c.d(b,{KR:()=>e,NZ:()=>n,O2:()=>j,Qd:()=>m,Uq:()=>o,Wv:()=>l,ex:()=>i,mJ:()=>f,oJ:()=>k,qU:()=>g});var d=c(62887);function e(a,b,c){return d=>d===a?{event:b,detail:c??null}:null}function f(a){return Object.entries(a).map(([a,b])=>e(a,b))}function g(a,b,c){for(let d of a){let a=d(b,c);if(a)return a}return null}let h=globalThis.__agentSourceUnknownEvents??=new Map;function i(a,b){let c=h.get(a)??{count:0,names:[]};c.count+=1;let d=b??"(unnamed)";!c.names.includes(d)&&c.names.length<32&&c.names.push(d),h.set(a,c)}function j(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function k(a,b){for(let c of b){let b=j(a,c);if(null!==b)return b}return null}function l(a){return null===a||""===a?null:a.slice(0,d.h9)}function m(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function n(a,b){let c=a;for(let a of b){if(!m(c))return null;c=c[a]}return"string"==typeof c&&""!==c?c:null}function o(a,b,c,e={}){var f;let g=void 0!==a.detail&&null!==a.detail?l(a.detail):l(e.detail?.(a.event,b)??null);return{event:a.event,detail:g,conversationId:a.conversationId??(e.conversationId?k(b,e.conversationId):null),toolCallId:a.toolCallId??(e.toolCallId?k(b,e.toolCallId):null),model:null===(f=e.extractModel?.(b)??(e.modelFields?k(b,e.modelFields):null))||""===f?null:f.slice(0,d.h9),raw:b,receivedAt:c}}},62887:(a,b,c)=>{c.d(b,{b0:()=>d,h9:()=>f,o0:()=>e});let d=["stop","notification","session_start","user_prompt_submit","session_end","pre_tool_use","post_tool_use"];function e(a){return"string"==typeof a&&d.includes(a)}let f=128},66101:(a,b,c)=>{c.d(b,{U:()=>h,k:()=>i});var d=c(62887),e=c(57510),f=c(25071);let g={close:async()=>{},liveness:{state:"unknown"}};function h(a){let b=a.nativeEventNameFields??["hook_event_name"];return{cliToolId:a.cliToolId,transport:"push",noDecision:a.noDecision,capabilities:a.capabilities,normalizeEvent(c){let f=c.receivedAt??Date.now(),g=b.length>0?(0,e.oJ)(c.payload,b):null;if(null!=c.event&&(0,d.o0)(c.event))return(0,e.Uq)({event:c.event},c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel});let h=(0,e.qU)(a.mappers,g,c.payload);return h?(0,e.Uq)(h,c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel}):((0,e.ex)(a.cliToolId,g),null)},parsePermissionRequest:a.parsePermissionRequest,parseQuestion:a.parseQuestion,encodeVerdict:b=>({kind:"responseBody",body:a.encodeVerdict(b)}),prepareLaunch:a.prepareLaunch,subscribe:async()=>g,async decide(b,c,d){(0,f.o4)(b,c.id,a.encodeVerdict(d))},listPending:async a=>(0,f.qK)(a),probeActivity:async()=>null,liveness:()=>({state:"unknown"})}}function i(a){let b=a.nativeEventNameFields??["type"];return{cliToolId:a.cliToolId,transport:"pull",noDecision:a.noDecision,capabilities:a.capabilities,normalizeEvent(c){let f=c.receivedAt??Date.now(),g=b.length>0?(0,e.oJ)(c.payload,b):null;if(null!=c.event&&(0,d.o0)(c.event))return(0,e.Uq)({event:c.event},c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel});let h=(0,e.qU)(a.mappers,g,c.payload);return h?(0,e.Uq)(h,c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel}):((0,e.ex)(a.cliToolId,g),null)},parsePermissionRequest:a.parsePermissionRequest,parseQuestion:a.parseQuestion,encodeVerdict:()=>({kind:"outOfBand"}),prepareLaunch:a.prepareLaunch??(a=>({command:a.executablePath,settingsPath:null,env:{}})),subscribe:a.subscribe,decide:a.decide,listPending:a.listPending,probeActivity:a.probeActivity,liveness:a.liveness}}},67882:(a,b,c)=>{c.d(b,{DA:()=>e,O_:()=>f,Oh:()=>d,_K:()=>g});let d={PROMPT_SUBMIT:"hook_prompt_submit",STOP:"hook_stop",PERMISSION_PROMPT:"hook_permission_prompt",PERMISSION_REQUEST:"hook_permission_request",IDLE_PROMPT:"hook_idle_prompt",PRE_TOOL_USE:"hook_pre_tool_use",POST_TOOL_USE:"hook_post_tool_use"};function e(a,b){switch(a){case"user_prompt_submit":return{status:"running",reason:d.PROMPT_SUBMIT};case"pre_tool_use":return{status:"running",reason:d.PRE_TOOL_USE};case"post_tool_use":return{status:"running",reason:d.POST_TOOL_USE};case"stop":return{status:"ready",reason:d.STOP};case"notification":if("permission_prompt"===b)return{status:"waiting",reason:d.PERMISSION_PROMPT};if("idle_prompt"===b)return{status:"ready",reason:d.IDLE_PROMPT};return null;default:return null}}function f(a){switch(a){case"waiting":return{isWaitingForResponse:!0,isProcessing:!1};case"running":return{isWaitingForResponse:!1,isProcessing:!0};default:return{isWaitingForResponse:!1,isProcessing:!1}}}function g(a){return a.isSessionRunning?a.isWaitingForResponse?"waiting":a.isProcessing?"running":"ready":null}},70997:(a,b,c)=>{c.d(b,{v:()=>d});let d="claude"},75356:(a,b,c)=>{c.d(b,{Dp:()=>l,Tm:()=>f,Zu:()=>m,aF:()=>e,lu:()=>o,pV:()=>i,vE:()=>g});var d=c(57510);let e="permission_prompt",f="question_prompt",g="error";function h(a){return(0,d.Qd)(a.properties)?a.properties:{}}function i(a){let b=h(a).info;return(0,d.Qd)(b)?(0,d.NZ)(b,["model","modelID"])??(0,d.NZ)(b,["model","id"]):null}function j(a){return(0,d.NZ)(h(a),["part","state","status"])}function k(a){return"tool"===(0,d.NZ)(h(a),["part","type"])}function l(a){return(0,d.NZ)(h(a),["part","tool"])}function m(a){return(0,d.NZ)(h(a),["part","callID"])}let n=["completed","error"],o=[(0,d.KR)("session.idle","stop"),(0,d.KR)("session.created","session_start"),(0,d.KR)("session.deleted","session_end"),(a,b)=>"message.updated"===a&&"user"===(0,d.NZ)(h(b),["info","role"])?{event:"user_prompt_submit"}:null,(a,b)=>"message.part.updated"===a&&k(b)&&"running"===j(b)?{event:"pre_tool_use",detail:(0,d.Wv)(l(b)),toolCallId:m(b)}:null,(a,b)=>"message.part.updated"===a&&k(b)&&n.includes(j(b)??"")?{event:"post_tool_use",detail:(0,d.Wv)(l(b)),toolCallId:m(b)}:null,(0,d.KR)("permission.asked","notification",e),(0,d.KR)("question.asked","notification",f),(0,d.KR)("session.error","notification",g)].map(function(a){return(b,c)=>{let e=a(b,c);return e?{...e,conversationId:e.conversationId??(0,d.NZ)(h(c),["sessionID"])}:null}})},76835:(a,b,c)=>{c.d(b,{F:()=>d});let d="antigravity"},77904:(a,b,c)=>{c.d(b,{o:()=>d});let d="gemini"},81254:(a,b,c)=>{function d(a){return"answer_only"===a||"answer_then_enter"===a}c.d(b,{LT:()=>e,MI:()=>d,XF:()=>f});let e="unclassified";function f(a){return null!=a&&a.type!==e}},84574:(a,b,c)=>{c.d(b,{CU:()=>w,hC:()=>u,jp:()=>x,kE:()=>v});var d=c(91645),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(24455),j=c(43252),k=c(72626),l=c(49791);let m=(0,k.h)("lib/hooks/sources/opencode/ports"),n={min:4200,max:4299},o=n.max-n.min+1,p=globalThis.__opencodePortAssignments??=new Map;function q(a){return(0,i.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function r(){let a=(0,g.join)((0,f.homedir)(),".commandmate","opencode-ports.json");return(0,h.T)(process.env.CM_OPENCODE_PORT_FILE,a,"CM_OPENCODE_PORT_FILE")}function s(){try{let a=JSON.parse((0,e.readFileSync)(r(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&"number"==typeof d.port&&Number.isInteger(d.port)&&d.port>0&&d.port<65536&&"string"==typeof d.worktreePath&&(b[c]={port:d.port,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function t(a){let b=r();try{(0,e.mkdirSync)((0,g.dirname)(b),{recursive:!0}),(0,e.writeFileSync)(b,`${JSON.stringify(a,null,2)}
4
- `,{mode:384})}catch(a){m.warn("opencode-port-file-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function u(a){return p.get(q(a))?.port??null}function v(a){let b=q(a);p.delete(b);let c=s();b in c&&(delete c[b],t(c))}async function w(a,b){if(!(0,j.q)())return null;let c=u(a);if(null!==c)return c;let e=q(a),f=s()[e],g=f?.port,h=function(a){let b=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return n.min+b%o}(q(a)),c=[];for(let a=0;a<o;a+=1)c.push(n.min+(b-n.min+a)%o);return c}(a);for(let c of void 0!==g?[g,...h.filter(a=>a!==g)]:h)if(await function(a){return new Promise(b=>{let c=(0,d.createServer)();c.once("error",()=>b(!1)),c.listen(a,l.Vc,()=>{c.close(()=>b(!0))})})}(c))return!function(a,b,c,d=Date.now()){let e=q(a),f={port:b,worktreePath:c,updatedAt:d};p.set(e,f);let g=s();g[e]=f,t(g)}(a,c,b),m.info("opencode-port-allocated",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c}),c;return m.warn("opencode-port-exhausted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,range:`${n.min}-${n.max}`}),null}async function x(a,b){if(!(0,j.q)())return null;let c=u(a);if(null!==c)return c;let d=s()[q(a)];if(!d)return null;if(d.worktreePath!==b)return m.info("opencode-port-recovery-path-mismatch",{worktreeId:a.worktreeId,recorded:d.worktreePath}),null;let e=await (0,l.Ok)(d.port);return e?(p.set(q(a),d),m.info("opencode-port-recovered",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d.port,version:e.version}),d.port):(m.info("opencode-port-recovery-unhealthy",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d.port}),null)}},85322:(a,b,c)=>{c.d(b,{k:()=>d});let d="opencode"},85965:(a,b,c)=>{c.d(b,{cC:()=>s});var d=c(62887),e=c(43252),f=c(72626),g=c(66101),h=c(49791),i=c(75356),j=c(98211),k=c(84574),l=c(42545),m=c(85322);let n=(0,f.h)("lib/hooks/sources/opencode/source"),o=d.b0;async function p(a,b,c){let d=a.instanceId??a.cliToolId;if("abstain"===c.kind)return void n.warn("opencode-verdict-abstained",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,consequence:"the agent waits indefinitely; nothing else will unblock it"});let e=(0,k.hC)(a);if(null===e)return void n.warn("opencode-verdict-undeliverable-no-port",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id});if("question"===b.kind){if("answer"!==c.kind)return void n.info("opencode-question-not-answerable",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,verdict:c.kind});let f=await (0,h.Ei)(e,b.id,c.answers);return void n.info("opencode-question-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,delivered:f})}let f=function(a){switch(a.kind){case"allowOnce":return"once";case"allowAlways":return"always";case"deny":return"reject";case"answer":case"abstain":return null}}(c);if(null===f)return;let g=await (0,h.LV)(e,b.id,f,"deny"===c.kind?c.message:void 0);n.info("opencode-permission-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,reply:f,delivered:g})}async function q(a){let b=(0,k.hC)(a);if(null===b)return[];let c=Date.now(),[d,e]=await Promise.all([(0,h.Li)(b),(0,h.er)(b)]),f=[];for(let a of d){let b=(0,j.Lu)(a,c);b&&f.push(b)}for(let a of e){let b=(0,j.AB)(a,c);b&&f.push(b)}return f}async function r(a){let b=(0,k.hC)(a);return null===b?null:(0,h.xR)(b)}let s=(0,g.k)({cliToolId:m.k,noDecision:{kind:"blocks"},capabilities:{supportedEvents:o,configScope:"none",decisionTimeoutSeconds:null},mappers:i.lu,nativeEventNameFields:["type"],conversationIdFields:[],extractModel:i.pV,parsePermissionRequest:j.FZ,parseQuestion:j.v1,subscribe:(a,b)=>(0,l.bP)(a,b,a=>s.normalizeEvent(a)),decide:p,listPending:q,probeActivity:r,liveness:a=>(0,l.lf)(a),prepareLaunch:function({target:a,executablePath:b}){let c={command:b,settingsPath:null,env:{}};if(!(0,e.q)())return c;let d=(0,k.hC)(a);return null===d?c:{command:`${(0,e.ZL)(b)} --port ${d} --hostname ${h.Vc}`,settingsPath:null,env:{}}}})},97709:(a,b,c)=>{c.d(b,{VM:()=>al});var d=c(2466),e=c(13287),f=c(62887),g=c(43252),h=c(66101),i=c(57510),j=c(38367),k=c(70997);let l={};function m(a){return"allowOnce"!==a.kind?l:{hookSpecificOutput:{hookEventName:e.l9,decision:{behavior:"allow"}}}}let n=(0,h.U)({cliToolId:k.v,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:f.b0,configScope:"per-instance",decisionTimeoutSeconds:g.sI},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:m,prepareLaunch:({target:a,executablePath:b})=>{let c=(0,g.D2)(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:a.cliToolId}),d=(0,g.q)()&&c!==b?(0,g.iR)({worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:a.cliToolId}):null;return{command:c,settingsPath:d,env:{}}}});var o=c(21758),p=c(54633);let q={},r=(0,h.U)({cliToolId:p.V,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["stop","session_start","session_end","user_prompt_submit","post_tool_use"],configScope:"global-singleton",decisionTimeoutSeconds:o.TV},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:function(a){if(!(0,i.Qd)(a)||a.hook_event_name!==o.cN)return null;let b=(0,i.O2)(a,"tool_name");return b&&!(b.length>e.vy)&&(0,i.Qd)(a.tool_input)?{toolName:b,toolInput:a.tool_input,promptId:null,sessionId:(0,i.O2)(a,"session_id"),permissionMode:null,permissionSuggestions:null}:null},parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{hookSpecificOutput:{hookEventName:o.cN,permissionDecision:"allow"}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:o.cN,permissionDecision:"deny",permissionDecisionReason:a.message??"denied by CommandMate"}}:q},prepareLaunch:({target:a,executablePath:b})=>(0,o.Rv)(b,a)});var s=c(15194);let t={ToolPermission:"permission_prompt"};var u=c(33873),v=c(72626),w=c(45567),x=c(29021),y=c(7956);function z(a){if(!(0,x.existsSync)(a))return null;try{let b=JSON.parse((0,x.readFileSync)(a,"utf8"));return(0,i.Qd)(b)?b:null}catch{return null}}function A(a,b){if((0,y.Mb)(a))throw Error(`Refusing to write inside a virtual filesystem: ${a} (a recursive mkdir under /proc, /sys or /dev never returns on Linux; Issue #1774)`);(0,x.mkdirSync)((0,u.dirname)(a),{recursive:!0,mode:448}),(0,x.writeFileSync)(a,`${JSON.stringify(b,null,2)}
5
- `,{mode:384})}var B=c(77904);let C=(0,v.h)("lib/hooks/sources/gemini/settings-generator"),D=1e3*g.W6,E=[["SessionStart","session_start"],["BeforeAgent","user_prompt_submit"],["AfterAgent","stop"],["Notification","notification"],["SessionEnd","session_end"]];function F(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${B.o}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let G=(0,h.U)({cliToolId:B.o,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","user_prompt_submit","stop","notification","session_end"],configScope:"per-worktree",decisionTimeoutSeconds:0},mappers:(0,i.mJ)({SessionStart:"session_start",SessionEnd:"session_end",BeforeAgent:"user_prompt_submit",AfterAgent:"stop",BeforeTool:"pre_tool_use",AfterTool:"post_tool_use",Notification:"notification"}),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:[],extractDetail:function(a,b){if("notification"!==a)return(0,j.Jp)(a,b);let c=(0,i.O2)(b,"notification_type");return null===c?null:(0,i.Wv)(t[c]??c)},parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:()=>({}),prepareLaunch:function({target:a,executablePath:b,worktreePath:c}){let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:B.o},e=(0,s.n6)(a.instanceId??B.o)?function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return C.warn("gemini-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,u.join)(a,".gemini","settings.json");try{let a=z(d),e=function(a,b){let c={};for(let[e,f]of E){var d;c[e]=[{hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",B.o,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:D}]}]}return c}(c,b);return A(d,function(a,b,c){let d=(0,i.Qd)(a?.hooks)?a.hooks:{},e={};for(let[a,b]of Object.entries(d)){if(!Array.isArray(b)){e[a]=b;continue}let d=b.filter(a=>!function(a,b){if(!(0,i.Qd)(a))return!1;let c=a.hooks;return Array.isArray(c)?c.length>0&&c.every(a=>(0,i.Qd)(a)&&"string"==typeof a.command&&F(a.command,b)):"string"==typeof a.command&&F(a.command,b)}(a,c));e[a]=d.length===b.length?b:d}for(let[a,c]of Object.entries(b)){let b=e[a];e[a]=Array.isArray(b)?[...b,...c]:[...c]}return{...a,hooks:e}}(a,e,b.worktreeId)),d}catch(a){return C.warn("gemini-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),null}}(c,d):null,{command:f,env:h}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,s.n6)((0,g.g5)(b)))return C.warn("gemini-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:B.o},c);return{command:(0,g.ZL)(a),env:{[w.Z]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}});var H=c(21820),I=c(76835);let J=(0,v.h)("lib/hooks/sources/antigravity/hooks-config"),K=[["SessionStart","session_start"],["PostToolUse","post_tool_use"],["Stop","stop"]],L="CM_PERMISSION_HOOK_URL",M=g.sI,N=new Set(["PreToolUse","PostToolUse"]),O={decision:"ask"},P=(0,h.U)({cliToolId:I.F,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","post_tool_use","stop"],configScope:"global-singleton",decisionTimeoutSeconds:M},mappers:[],nativeEventNameFields:[],conversationIdFields:["conversationId"],toolCallIdFields:[],modelFields:["modelName"],extractDetail:(a,b)=>"pre_tool_use"===a||"post_tool_use"===a?(0,i.Wv)((0,i.NZ)(b,["toolCall","name"])):null,parsePermissionRequest:function(a){if(!(0,i.Qd)(a))return null;let b=a.toolCall;if(!(0,i.Qd)(b))return null;let c=(0,i.O2)(b,"name");return c&&!(c.length>e.vy)&&(0,i.Qd)(b.args)?{toolName:c,toolInput:b.args,promptId:null,sessionId:(0,i.O2)(a,"conversationId"),permissionMode:null,permissionSuggestions:null}:null},parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{decision:"allow"}:"deny"===a.kind?{decision:"deny",reason:a.message??""}:{...O}},prepareLaunch:({target:a,executablePath:b})=>{let c=function(a={}){if(!(0,g.q)())return null;let b=(0,g.Os)();if(!b)return J.warn("antigravity-hook-relay-missing"),null;let c=function(a={}){return a.path??(0,u.join)((0,H.homedir)(),".gemini","config","hooks.json")}(a);try{var d;let a=z(c);return A(c,(d=function(a){let b={};for(let[c,d]of K){let e={type:"command",command:[(0,g.ZL)(a),"--tool",I.F,"--event",d,"--stdin-json"].join(" "),timeout:g.W6};b[c]=N.has(c)?[{matcher:"*",hooks:[e]}]:[e]}return b.PreToolUse=[{matcher:"*",hooks:[{type:"command",command:function(){let a=`"$${L}"`,b=`printf '%s' ${(0,g.ZL)('{"decision":"ask"}')}`;return`if [ -z "\${${L}:-}" ]; then cat >/dev/null; ${b}; exit 0; fi; set -- -sS -f -m 4 -X POST -H 'Content-Type: application/json'; if [ -n "\${${g.XE}:-}" ]; then set -- "$@" -H "Authorization: Bearer $${g.XE}"; fi; out=$(curl "$@" --data-binary @- ${a} 2>/dev/null); case "$out" in '{'*'"decision"'*) printf '%s' "$out" ;; *) ${b} ;; esac`}(),timeout:g.sI}]}],b}(b),{...a,commandmate:d})),c}catch(a){return J.warn("antigravity-hooks-config-write-failed",{error:a instanceof Error?a.message:String(a)}),null}}(),{command:d,env:e}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,s.n6)((0,g.g5)(b)))return J.warn("antigravity-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d={...b,cliToolId:I.F};return{command:(0,g.ZL)(a),env:{[w.Z]:(0,g.xM)(d,c),[L]:(0,g.O$)(d,c)}}}(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:I.F});return{command:d,settingsPath:c,env:e}}});var Q=c(8004),R=c(87447),S=c(66007),T=c(2734);let U=(0,v.h)("lib/hooks/sources/codex/hooks-config"),V="127.0.0.1",W="commandmate:agent-hooks",X="CODEX_HOME",Y="CM_AGENT_WORKTREE_ID",Z="CM_AGENT_INSTANCE_ID",$="CM_HOOK_URL",_="CM_PERMISSION_HOOK_URL",aa={SessionStart:"session_start",UserPromptSubmit:"user_prompt_submit",Stop:"stop",SessionEnd:"session_end"},ab="PermissionRequest",ac=Object.values(aa);function ad(a={}){let b=(0,u.join)((0,H.homedir)(),".codex");return a.codexHome?(0,Q.T)(a.codexHome,b,"CodexHookOptions.codexHome"):(0,Q.T)(process.env[X],b,X)}function ae(a,b){return`http://${V}:\${CM_PORT:-3000}${a}${b}`}let af={},ag=(0,h.U)({cliToolId:T.c,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:ac,configScope:"global-singleton",decisionTimeoutSeconds:5},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{hookSpecificOutput:{hookEventName:ab,decision:{behavior:"allow"}}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:ab,decision:{behavior:"deny",message:a.message??""}}}:af},prepareLaunch:({target:a,executablePath:b})=>(function(a,b,c={}){let d={command:a,settingsPath:null,env:{}};if(!(0,g.q)())return d;let e=b.instanceId??T.c;if(!(0,S.h6)(b.worktreeId)||!(0,s.n6)(e))return U.warn("codex-hooks-invalid-correlation-key",{worktreeId:b.worktreeId}),d;try{let f=function(a={}){let b=function(a={}){return(0,u.join)(ad(a),"hooks.json")}(a),c=null,d=null;if((0,x.existsSync)(b))try{d=(0,x.readFileSync)(b,"utf8"),c=JSON.parse(d)}catch(a){return U.warn("codex-hooks-config-unreadable",{settingsPath:b,error:a instanceof Error?a.message:String(a)}),null}let e=`${JSON.stringify(function(a,b){let c=(0,i.Qd)(a)?{...a}:{},d=(0,i.Qd)(c.hooks)?c.hooks:{},e={};for(let[a,b]of Object.entries(d))e[a]=Array.isArray(b)?b.map(a=>{if(!(0,i.Qd)(a)||!Array.isArray(a.hooks))return a;let b=a.hooks.filter(a=>!((0,i.Qd)(a)&&"string"==typeof a.command&&a.command.includes(W)));return b.length===a.hooks.length?a:{...a,hooks:b}}).filter(a=>!((0,i.Qd)(a)&&Array.isArray(a.hooks))||a.hooks.length>0):b;for(let[a,c]of Object.entries(b.hooks)){let b=e[a];(void 0===b||Array.isArray(b))&&(e[a]=[...b??[],...c])}return c.hooks=e,c}(c,function(a={}){let b=(b,c)=>({hooks:[{type:"command",command:function(a,b={}){let c=` # ${W}`,d=void 0===b.relayScriptPath?(0,g.Os)():b.relayScriptPath;if(d)return[(0,g.ZL)(d),"--tool",T.c,"--event",a,"--worktree-id",`"$${Y}"`,"--instance-id",`"$${Z}"`,"--stdin-json"].join(" ")+c;let e=b.withAuthHeader??(0,g.yc)()?` -H "Authorization: Bearer $${g.XE}"`:"",f=`"\${${$}:-${ae(g.jx,"")}}?tool=${T.c}\${${Y}:+&worktreeId=$${Y}}\${${Z}:+&instanceId=$${Z}}"`;return`curl -sS -f -m ${g.W6} -X POST -H 'Content-Type: application/json'${e} --data-binary @- ${f} >/dev/null 2>&1 || true${c}`}(b,a),timeout:c}]}),c={};for(let[a,d]of Object.entries(aa)){let e="SessionEnd"===a?3:g.W6;c[a]=[b(d,e)]}return c[ab]=[{hooks:[{type:"command",command:function(a={}){let b=a.withAuthHeader??(0,g.yc)()?` -H "Authorization: Bearer $${g.XE}"`:"",c=`"\${${_}:-${ae(g.WZ,`?tool=${T.c}`)}}"`;return`curl -sS -f -m ${g.sI} -X POST -H 'Content-Type: application/json'${b} --data-binary @- ${c} 2>/dev/null || true # ${W}`}(a),timeout:g.sI}]}],{hooks:c}}(a)),null,2)}
6
- `;return d===e||((0,x.mkdirSync)((0,u.dirname)(b),{recursive:!0,mode:448}),(0,x.writeFileSync)(b,e,{mode:384})),b}(c);if(!f)return d;let h=c.port??(0,R.D0)(),j=new URLSearchParams({tool:T.c,worktreeId:b.worktreeId,instanceId:e}),k={[X]:ad(c),CM_AGENT_TOOL:T.c,[Y]:b.worktreeId,[Z]:e,[$]:`http://${V}:${h}${g.jx}`,[_]:`http://${V}:${h}${g.WZ}?${j.toString()}`},l="bypass"===process.env.CM_CODEX_HOOK_TRUST?" --dangerously-bypass-hook-trust":"";return{command:`${(0,g.ZL)(a)}${l}`,settingsPath:f,env:k}}catch(a){return U.warn("codex-hooks-config-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),d}})(b,a)});var ah=c(85965);let ai=globalThis.__agentEventSources??=new Map,aj=globalThis.__agentEventLegacySources??=new Map;function ak(a){ai.set(a.cliToolId,a),aj.delete(a.cliToolId)}function al(a){let b=ai.get(a);if(b)return b;let c=aj.get(a);if(c)return c;let f=(0,h.U)({cliToolId:a,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:[],configScope:"none",decisionTimeoutSeconds:null},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:m,prepareLaunch:({executablePath:a})=>({command:a,settingsPath:null,env:{}})});return aj.set(a,f),f}ak(n),ak(r),ak(G),ak(P),ak(ag),ak(ah.cC)},98211:(a,b,c)=>{c.d(b,{AB:()=>l,FZ:()=>i,Lu:()=>k,XL:()=>g,v1:()=>j});var d=c(2466),e=c(57510);let f=globalThis.__opencodeToolCallNames??=new Map;function g(a,b){for(f.delete(a),f.set(a,b);f.size>256;){let a=f.keys().next();if(a.done)break;f.delete(a.value)}}function h(a){return"string"==typeof a.type&&(0,e.Qd)(a.properties)?a.properties:a}function i(a){var b;let c=h(a),d=(0,e.O2)(c,"id"),g=(0,e.O2)(c,"sessionID");if(!d||!g||Array.isArray(c.questions))return null;let i=(0,e.O2)(c,"permission"),j=(0,e.Qd)(c.metadata)?c.metadata:{};return{toolName:((b=(0,e.NZ)(c,["tool","callID"]))?f.get(b)??null:null)??i??"permission",toolInput:{permission:i,patterns:Array.isArray(c.patterns)?c.patterns:[],...j},promptId:d,sessionId:g,permissionMode:null,permissionSuggestions:Array.isArray(c.always)?c.always:null}}function j(a){let b=h(a),c=(0,e.O2)(b,"id");if(!c)return null;let f=(0,d.u_)({questions:b.questions});return null===f?null:{questions:f,promptId:c}}function k(a,b){let c=i(a);return c&&c.promptId?{kind:"permission",id:c.promptId,conversationId:c.sessionId,subject:{kind:"permission",toolName:c.toolName,toolInput:c.toolInput},raw:a,askedAt:b}:null}function l(a,b){let c=h(a),d=(0,e.O2)(c,"id"),f=j(a);return d&&f?{kind:"question",id:d,conversationId:(0,e.O2)(c,"sessionID"),subject:{kind:"question",spec:f},raw:a,askedAt:b}:null}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=8730,exports.ids=[8730],exports.modules={8730:(a,b,c)=>{c.d(b,{Ex:()=>o.E,$n:()=>d.$,Zp:()=>k,Wu:()=>n,aR:()=>l,ZB:()=>m,Sc:()=>B,TM:()=>r.TM,pd:()=>t,Jh:()=>q.a,z6:()=>E,CU:()=>F,l6:()=>Q,gC:()=>T,eb:()=>U,bq:()=>S,yv:()=>R,EA:()=>v.E,y$:()=>w.y,md:()=>p.m,dO:()=>x.d,tU:()=>I,av:()=>L,j7:()=>J,Xi:()=>K,k_:()=>u,j1:()=>s});var d=c(94260),e=c(21124),f=c(38301),g=c.n(f),h=c(26691),i=c(35595);let j=(0,h.F)("bg-surface text-surface-foreground rounded-lg border border-border shadow-sm",{variants:{variant:{default:"",elevated:"bg-gradient-to-b from-surface to-surface-2 shadow-md",interactive:"cursor-pointer transition-all duration-200 hover:border-accent-500 hover:shadow-md motion-safe:hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-accent-500 focus-visible:shadow-md motion-safe:focus-visible:-translate-y-0.5"},hover:{true:"transition-shadow duration-200 hover:shadow-md",false:""},interactive:{true:"cursor-pointer transition-all duration-200 hover:shadow-lg active:shadow-md motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",false:""},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",hover:!1,interactive:!1,padding:"md"}});function k({variant:a="default",hover:b=!1,interactive:c=!1,padding:d="md",className:f="",children:g,...h}){return(0,e.jsx)("div",{className:(0,i.cn)(j({variant:a,hover:b,interactive:c,padding:d}),f),...h,children:g})}function l({className:a="",children:b,...c}){return(0,e.jsx)("div",{className:(0,i.cn)("mb-3",a),...c,children:b})}function m({className:a="",children:b,...c}){return(0,e.jsx)("h3",{className:(0,i.cn)("text-lg font-semibold text-surface-foreground",a),...c,children:b})}function n({className:a="",children:b,...c}){return(0,e.jsx)("div",{className:(0,i.cn)(a),...c,children:b})}var o=c(80755),p=c(22317),q=c(98033),r=c(79782);let s=(0,h.F)("flex w-full rounded-md border border-input bg-surface dark:bg-surface-2 text-surface-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50",{variants:{inputSize:{sm:"h-8 px-2.5 py-1 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-2.5 text-base"}},defaultVariants:{inputSize:"md"}}),t=g().forwardRef(({className:a,inputSize:b,type:c="text",...d},f)=>(0,e.jsx)("input",{ref:f,type:c,className:(0,i.cn)(s({inputSize:b}),a),...d}));t.displayName="Input";let u=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)("textarea",{ref:c,className:(0,i.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50",a),...b}));u.displayName="Textarea";var v=c(79689),w=c(17793),x=c(74892),y=c(89339),z=c(51881),A=c(71613);let B=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(y.bL,{ref:c,className:(0,i.cn)("peer inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-input bg-surface text-surface-foreground shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600 data-[state=checked]:bg-accent-600 data-[state=checked]:text-white","data-[state=indeterminate]:border-accent-600 data-[state=indeterminate]:bg-accent-600 data-[state=indeterminate]:text-white",a),...b,children:(0,e.jsx)(y.C1,{className:"flex items-center justify-center text-current",children:"indeterminate"===b.checked?(0,e.jsx)(z.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"}):(0,e.jsx)(A.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"})})}));B.displayName="Checkbox";var C=c(64450),D=c(90133);let E=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(C.bL,{ref:c,className:(0,i.cn)("grid gap-2",a),...b}));E.displayName="RadioGroup";let F=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(C.q7,{ref:c,className:(0,i.cn)("aspect-square h-4 w-4 shrink-0 cursor-pointer rounded-full border border-input bg-surface text-accent-600 shadow-sm","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600",a),...b,children:(0,e.jsx)(C.C1,{className:"flex items-center justify-center",children:(0,e.jsx)(D.A,{className:"h-2 w-2 fill-accent-600 text-accent-600","aria-hidden":"true"})})}));F.displayName="RadioGroupItem";var G=c(89989);let H=g().createContext("underline"),I=g().forwardRef(({variant:a="underline",...b},c)=>(0,e.jsx)(H.Provider,{value:a,children:(0,e.jsx)(G.bL,{ref:c,...b})}));I.displayName="Tabs";let J=g().forwardRef(({className:a,...b},c)=>{let d=g().useContext(H);return(0,e.jsx)(G.B8,{ref:c,className:(0,i.cn)("inline-flex items-center","pill"===d?"gap-1 rounded-lg bg-muted p-1":"gap-4 border-b border-border",a),...b})});J.displayName="TabsList";let K=g().forwardRef(({className:a,...b},c)=>{let d=g().useContext(H);return(0,e.jsx)(G.l9,{ref:c,className:(0,i.cn)("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50","pill"===d?"rounded-md px-3 py-1.5 text-muted-foreground data-[state=active]:bg-surface data-[state=active]:text-surface-foreground data-[state=active]:shadow-sm":"-mb-px border-b-2 border-transparent px-1 py-2 text-muted-foreground hover:text-foreground data-[state=active]:border-accent-500 data-[state=active]:text-accent-600",a),...b})});K.displayName="TabsTrigger";let L=g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(G.UC,{ref:c,className:(0,i.cn)("mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",a),...b}));L.displayName="TabsContent";var M=c(39567),N=c(85351),O=c(82042),P=c(11010);let Q=M.bL;M.YJ;let R=M.WT,S=g().forwardRef(({className:a,children:b,...c},d)=>(0,e.jsxs)(M.l9,{ref:d,className:(0,i.cn)("flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50","[&>span]:line-clamp-1",a),...c,children:[b,(0,e.jsx)(M.In,{asChild:!0,children:(0,e.jsx)(N.A,{size:16,className:"opacity-60","aria-hidden":"true"})})]}));S.displayName="SelectTrigger";let T=g().forwardRef(({className:a,children:b,position:c="popper",...d},f)=>(0,e.jsx)(M.ZL,{children:(0,e.jsxs)(M.UC,{ref:f,position:c,style:{zIndex:P.M.POPOVER},className:(0,i.cn)("relative max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",a),...d,children:[(0,e.jsx)(M.PP,{className:"flex h-6 items-center justify-center",children:(0,e.jsx)(O.A,{size:16,"aria-hidden":"true"})}),(0,e.jsx)(M.LM,{className:(0,i.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:b}),(0,e.jsx)(M.wn,{className:"flex h-6 items-center justify-center",children:(0,e.jsx)(N.A,{size:16,"aria-hidden":"true"})})]})}));T.displayName="SelectContent",g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(M.JU,{ref:c,className:(0,i.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",a),...b})).displayName="SelectLabel";let U=g().forwardRef(({className:a,children:b,...c},d)=>(0,e.jsxs)(M.q7,{ref:d,className:(0,i.cn)("relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,e.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,e.jsx)(M.VF,{children:(0,e.jsx)(A.A,{size:16,"aria-hidden":"true"})})}),(0,e.jsx)(M.p4,{children:b})]}));U.displayName="SelectItem",g().forwardRef(({className:a,...b},c)=>(0,e.jsx)(M.wv,{ref:c,className:(0,i.cn)("-mx-1 my-1 h-px bg-border",a),...b})).displayName="SelectSeparator";var V=c(16992);V.Kq,V.bL,V.l9,g().forwardRef(({className:a,sideOffset:b=4,children:c,...d},f)=>(0,e.jsx)(V.ZL,{children:(0,e.jsxs)(V.UC,{ref:f,sideOffset:b,style:{zIndex:P.M.POPOVER},className:(0,i.cn)("overflow-hidden rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d,children:[c,(0,e.jsx)(V.i3,{className:"fill-foreground"})]})})).displayName="TooltipContent",c(10290),c(85647)},10290:(a,b,c)=>{c.d(b,{Hr:()=>q,Ht:()=>p,SQ:()=>n,_2:()=>o,mB:()=>r,rI:()=>l,ty:()=>m});var d=c(21124),e=c(38301),f=c.n(e),g=c(12927),h=c(71613),i=c(90133),j=c(11010),k=c(35595);let l=g.bL,m=g.l9;g.YJ;let n=f().forwardRef(({className:a,sideOffset:b=4,...c},e)=>(0,d.jsx)(g.ZL,{children:(0,d.jsx)(g.UC,{ref:e,sideOffset:b,style:{zIndex:j.M.POPOVER},className:(0,k.cn)("min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface p-1 text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...c})}));n.displayName="DropdownMenuContent";let o=f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.q7,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",b&&"pl-8",a),...c}));o.displayName="DropdownMenuItem",f().forwardRef(({className:a,children:b,checked:c,...e},f)=>(0,d.jsxs)(g.H_,{ref:f,checked:c,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...e,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(h.A,{size:16,"aria-hidden":"true"})})}),b]})).displayName="DropdownMenuCheckboxItem";let p=f().forwardRef(({className:a,children:b,...c},e)=>(0,d.jsxs)(g.hN,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(i.A,{size:8,className:"fill-current","aria-hidden":"true"})})}),b]}));p.displayName="DropdownMenuRadioItem";let q=g.z6;f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.JU,{ref:e,className:(0,k.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",b&&"pl-8",a),...c})).displayName="DropdownMenuLabel";let r=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.wv,{ref:c,className:(0,k.cn)("-mx-1 my-1 h-px bg-border",a),...b}));r.displayName="DropdownMenuSeparator"},22317:(a,b,c)=>{c.d(b,{m:()=>l});var d=c(21124);c(38301);var e=c(20481),f=c(35595);let g={idle:{colorClass:"bg-muted-foreground",labelKey:"status.idle"},ready:{colorClass:"bg-success",labelKey:"status.ready"},running:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.running"},generating:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.generating"},waiting:{colorClass:"bg-warning text-warning ring-4 ring-warning/50",animationClass:"animate-status-attention",labelKey:"status.waiting"},error:{colorClass:"bg-danger",labelKey:"status.error"}},h={colorClass:"bg-warning text-warning ring-2 ring-warning/40",animationClass:"animate-status-glow",labelKey:"status.waiting"},i=new Set(["menu","unclassified"]),j={colorClass:"bg-muted-foreground",labelKey:"status.unknown"},k={sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3"};function l({status:a,size:b="md",label:c,waitingKind:l,className:m,...n}){let o=(0,e.c)("common"),p=function(a,b){let c=g[a]??j;return"waiting"!==a?c:b&&i.has(b)?h:c}(a,l),q=c??o(p.labelKey);return(0,d.jsx)("span",{className:(0,f.cn)("inline-block flex-shrink-0 rounded-full",k[b],p.colorClass,p.animationClass,m),title:q,"aria-label":q,...n})}},74892:(a,b,c)=>{c.d(b,{d:()=>i});var d=c(21124),e=c(38301),f=c.n(e),g=c(75441),h=c(35595);let i=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.bL,{ref:c,className:(0,h.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:bg-accent-600 data-[state=unchecked]:bg-muted",a),...b,children:(0,d.jsx)(g.zi,{className:(0,h.cn)("pointer-events-none block h-4 w-4 rounded-full bg-surface shadow-lg ring-0 transition-transform","data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));i.displayName="Switch"},79689:(a,b,c)=>{c.d(b,{E:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("animate-pulse rounded-md bg-muted",a),"aria-hidden":"true",...b})}},80755:(a,b,c)=>{c.d(b,{E:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",{variants:{variant:{success:"bg-success-subtle text-success-foreground",warning:"bg-warning-subtle text-warning-foreground",error:"bg-danger-subtle text-danger-foreground",info:"bg-accent-100 dark:bg-accent-900 text-accent-800 dark:text-accent-300",gray:"bg-muted text-muted-foreground"}},defaultVariants:{variant:"gray"}}),h={success:"bg-success",warning:"bg-warning",error:"bg-danger",info:"bg-info",gray:"bg-muted-foreground"};function i({variant:a="gray",dot:b=!1,className:c="",children:e,...i}){return(0,d.jsxs)("span",{className:(0,f.cn)(g({variant:a}),c),...i,children:[b&&(0,d.jsx)("span",{className:(0,f.cn)("mr-1.5 inline-block h-2 w-2 rounded-full",h[a]),"aria-hidden":"true"}),e]})}},85647:(a,b,c)=>{c.d(b,{u:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,children:b,...c}){return(0,d.jsx)("kbd",{className:(0,e.cn)("inline-flex h-5 min-w-[1.25rem] items-center justify-center rounded-sm border border-border bg-surface px-1","font-mono text-[10px] font-medium leading-none text-muted-foreground",a),...c,children:b})}}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=9058,exports.ids=[9058],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()}}},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})}},39333:(a,b,c)=>{c.d(b,{$Y:()=>g,Bg:()=>i,HB:()=>f,df:()=>h,f9:()=>d});let d=[".png",".jpg",".jpeg",".gif",".webp",".svg"],e=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function f(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}function g(a){let b=f(a),c=e.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"}function h(a){if(!a)return!1;let b=f(a);return d.includes(b)}function i(a,b){if(b.length>0x1400000)return{valid:!1,error:"File size exceeds 20MB limit"};if(".svg"===f(a)){var c;return(c=b.toString("utf-8")).includes("<svg")||c.startsWith("<?xml")?/<script[\s>]/i.test(c)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(c)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(c)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(c)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(a,b){let c=f(a),d=e.find(a=>a.extension===c);if(!d?.magicBytes)return".svg"===c;let g=d.magicBytesOffset||0;return!(b.length<g+d.magicBytes.length)&&d.magicBytes.every((a,c)=>b[g+c]===a)}(a,b)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}d.filter(a=>".svg"!==a).map(a=>g(a)).filter(a=>"application/octet-stream"!==a).join(",")},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,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,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,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,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,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,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,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,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,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,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,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,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,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:()=>p,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,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,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.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,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(90444),e=c(88807),f=c(18698),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},95736:(a,b,c)=>{a.exports=c(44870)}};
@@ -1,3 +0,0 @@
1
- "use strict";exports.id=9687,exports.ids=[9687],exports.modules={12462:(a,b,c)=>{c.d(b,{T8:()=>j,o4:()=>k});var d=c(31766),e=c(56791),f=c(95620),g=c(82450),h=c(15194);let i=(0,c(72626).h)("assistant-response-saver");function j(a,b){switch(b){case"claude":return(0,g.NN)(a);case"gemini":return(0,g.IS)(a);case"opencode":return(0,g.aW)(a);case"copilot":return(0,g.LH)(a);default:return a.trim()}}async function k(a,b,c,g,k){let l=k??c;try{let m;if((0,h.VA)(c))return null;let n=(0,e.getSessionState)(a,b,l),o=n?.lastCapturedLine||0;try{m=await (0,d.Wh)(b,c,1e4,k)}catch{return i.info("failed-to-capture"),null}if(!m)return null;let p=m.split("\n"),q=p.length;for(;q>0&&""===p[q-1].trim();)q--;let r=q,{bufferReset:s,reason:t}=r>0&&o>25&&r+25<o?{bufferReset:!0,reason:"shrink"}:r>0&&o>50&&r<50?{bufferReset:!0,reason:"restart"}:{bufferReset:!1,reason:null};s&&i.info("buffer:reset-detected",{reason:t,currentLineCount:r,lastCapturedLine:o});let u=s?0:o;if(!s&&r<=o)return r<o&&((0,e.updateSessionState)(a,b,c,r,k),i.info("position:corrected-stale",{from:o,to:r})),null;let v=p.slice(u).join("\n"),w=j(v,c);if(!w||""===w.trim())return(0,e.updateSessionState)(a,b,c,r,k),i.debug("response:empty-after-clean",{currentLineCount:r}),null;let x=new Date(g.getTime()-1),y=(0,e.createMessage)(a,{worktreeId:b,role:"assistant",content:w,messageType:"normal",timestamp:x,cliToolId:c,instanceId:l});return(0,e.updateSessionState)(a,b,c,r,k),(0,f.broadcastMessage)("message",{worktreeId:b,message:y}),i.info("response:saved",{fromLine:o,toLine:r}),y}catch(a){return i.error("error:",{error:a instanceof Error?a.message:String(a)}),null}}},39687:(a,b,c)=>{c.d(b,{d:()=>p});var d=c(56791),e=c(31268),f=c(15194),g=c(95220),h=c(12462),i=c(11665),j=c(93997),k=c(72626),l=c(58707),m=c(56263);let n=(0,k.h)("session/send-user-message");function o(a){return a instanceof Error?a.message:String(a)}async function p(a,b){let{worktreeId:c,content:k,cliToolId:p,instanceId:q,absoluteImagePath:r,copilotModel:s}=b,t=b.messageType??"normal",u=e.s.getInstance().getTool(p),v=await (0,l.a3)(c,p,q,{ignoreStructured:b.ignoreStructuredPromptGuard});if(v.waiting)return n.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:p,reason:v.reason,blockedBy:v.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,l.br)(c,v.blockedBy)};let w=new Date;try{await (0,h.o4)(a,c,p,w,q)}catch(a){n.error("failed-to-save-pending-assistant-response:",{error:o(a)})}let x=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:p,instanceId:q});b.length>0&&"user"===b[0].role&&b[0].content===k&&(x=b[0].id)}catch(a){n.error("failed-to-detect-orphaned-messages:",{error:o(a)})}if(s&&"copilot"===p)try{await u.sendModelCommand(c,s,q),n.info("copilot-model-command-sent",{model:s})}catch(a){return n.error("failed-to-send-model-command:",{error:o(a)}),{ok:!1,stage:"model",error:o(a)}}try{if(r)if((0,f._J)(u))await u.sendMessageWithImage(c,k,r,q);else{let a=k?`${k}
2
-
3
- [添付画像: ${r}]`:`[添付画像: ${r}]`;await u.sendMessage(c,a,q)}else if("copilot"===p){let a=u.getSessionName(c,q),b=k.replace(/\n+/g," ").trim();await (0,i.V1)(a,b,!1),await new Promise(a=>setTimeout(a,m.wp)),await (0,i.KB)(a,["Enter"]),(0,j.gm)(a)}else await u.sendMessage(c,k,q)}catch(a){return n.error("failed-to-send-message-to:",{error:o(a)}),{ok:!1,stage:"send",error:o(a)}}let y=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:t,timestamp:w,cliToolId:p,instanceId:q});if(x)try{(0,d.deleteMessageById)(a,x)&&n.info("cleaned-up-orphaned-user")}catch(a){n.error("failed-to-clean-up-orphaned-message:",{error:o(a)})}return(0,d.updateLastUserMessage)(a,c,k,w),(0,d.clearInProgressMessageId)(a,c,p,q),n.info("cleared-in-progress-message-for"),(0,g.startPolling)(c,p,q),{ok:!0,message:y}}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(31268),e=c(31766),f=c(95595),g=c(34405),h=c(72626),i=c(30008);let j=(0,h.h)("prompt-waiting-guard"),k="PROMPT_WAITING";async function l(a,b,c,h){try{let k=d.s.getInstance().getTool(b);if(!await k.isRunning(a,c))return{waiting:!1};let l=await (0,e.Wh)(a,b,g._,c),m=(0,f.WC)(l,b),n=(0,i._G)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:m.status,reason:m.reason,hasActivePrompt:m.hasActivePrompt},ignoreStructured:h?.ignoreStructured});if(!n.blocksSend)return null!==n.structuredSendBlockSuppressed&&j.info("structured-send-guard-not-applied",{worktreeId:a,cliToolId:b,instanceId:c,suppressed:n.structuredSendBlockSuppressed,promptWaitingSince:n.structured?.at??null}),{waiting:!1};return{waiting:!0,reason:n.blockReason??void 0,blockedBy:n.blockedBy??void 0}}catch(c){return j.warn("prompt-waiting-check-failed",{worktreeId:a,cliToolId:b,error:c instanceof Error?c.message:String(c)}),{waiting:!1}}}function m(a,b){let c=`${a} is waiting on a prompt. Sending now would type into the prompt's input line instead of reaching the agent, and would leave that text in place for the next answer. Answer the prompt first: \`commandmate respond ${a} <answer>\`.`;if("structured"!==b)return c;let d=Math.round(i.j0/6e4);return`${c} This dialog was reported by the agent's own hooks and is not visible to the terminal scraper, so if the pane looks idle the record has outlived its dialog: it stops blocking sends ${d} minutes after it was reported, or immediately with \`commandmate send ${a} <message> --ignore-structured-prompt\` (server-wide: ${i.F1}=off).`}}};