commandmate 0.33.2 → 0.34.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 (370) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +160 -160
  3. package/.next/app-path-routes-manifest.json +28 -28
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/versions/route_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.js.nft.json +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  15. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  16. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  18. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  19. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/messages/route.js +1 -1
  21. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/session/route.js +1 -1
  24. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/start/route.js +2 -2
  27. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/terminal/route.js +3 -3
  30. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/assistant/tools/route.js +1 -1
  33. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  34. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/capabilities/route.js +1 -1
  39. package/.next/server/app/api/capabilities/route.js.nft.json +1 -1
  40. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  49. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  50. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  52. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  53. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  55. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  56. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/push/escalation/route.js +1 -1
  60. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/push/vapid/route.js +1 -1
  63. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  65. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  66. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/relays/route.js +1 -1
  68. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  69. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.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_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  75. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  76. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/clone/route.js +1 -1
  78. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  79. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/restore/route.js +1 -1
  82. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/route.js +1 -1
  85. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/scan/route.js +1 -1
  88. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/sync/route.js +1 -1
  91. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  95. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  96. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/skills/[id]/route.js +1 -1
  100. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  101. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/skills/installations/route.js +1 -1
  103. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  104. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/skills/route.js +1 -1
  108. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  109. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  120. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  123. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  126. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  132. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  163. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  166. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  169. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  181. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  198. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +2 -2
  200. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  201. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  205. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  216. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  218. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  219. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  221. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  222. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  226. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  244. package/.next/server/app/api/worktrees/route.js +1 -1
  245. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  246. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  247. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  248. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  249. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  251. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  252. package/.next/server/app/page.js +1 -1
  253. package/.next/server/app/page_client-reference-manifest.js +1 -1
  254. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  256. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  257. package/.next/server/app/sessions/page.js +1 -1
  258. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  259. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  260. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  261. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  262. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  263. package/.next/server/app/worktrees/[id]/page.js +10 -10
  264. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  265. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  266. package/.next/server/app-paths-manifest.json +28 -28
  267. package/.next/server/chunks/1049.js +1 -0
  268. package/.next/server/chunks/1501.js +6 -2
  269. package/.next/server/chunks/1886.js +3 -3
  270. package/.next/server/chunks/2119.js +1 -1
  271. package/.next/server/chunks/2404.js +1 -1
  272. package/.next/server/chunks/2445.js +1 -1
  273. package/.next/server/chunks/3123.js +1 -1
  274. package/.next/server/chunks/3241.js +1 -1
  275. package/.next/server/chunks/3323.js +1 -1
  276. package/.next/server/chunks/3480.js +2 -2
  277. package/.next/server/chunks/4443.js +1 -1
  278. package/.next/server/chunks/4802.js +1 -1
  279. package/.next/server/chunks/5164.js +1 -1
  280. package/.next/server/chunks/5571.js +1 -1
  281. package/.next/server/chunks/595.js +2 -2
  282. package/.next/server/chunks/6130.js +1 -0
  283. package/.next/server/chunks/6285.js +1 -1
  284. package/.next/server/chunks/6286.js +7 -7
  285. package/.next/server/chunks/6337.js +1 -1
  286. package/.next/server/chunks/650.js +1 -1
  287. package/.next/server/chunks/663.js +1 -1
  288. package/.next/server/chunks/6661.js +1 -1
  289. package/.next/server/chunks/6677.js +25 -0
  290. package/.next/server/chunks/6781.js +1 -1
  291. package/.next/server/chunks/7075.js +1 -0
  292. package/.next/server/chunks/7905.js +1 -1
  293. package/.next/server/chunks/8583.js +1 -0
  294. package/.next/server/chunks/8918.js +7 -5
  295. package/.next/server/chunks/9080.js +1 -0
  296. package/.next/server/chunks/9627.js +1 -1
  297. package/.next/server/chunks/964.js +1 -0
  298. package/.next/server/middleware-manifest.json +5 -5
  299. package/.next/server/pages/500.html +1 -1
  300. package/.next/server/server-reference-manifest.json +1 -1
  301. package/.next/static/chunks/2053-9ac860ab4e92ac89.js +1 -0
  302. package/.next/static/chunks/2652-18b8fea64413467e.js +1 -0
  303. package/.next/static/chunks/{4718-441a2af91f0374e9.js → 4718-2d9f0397a8f931c4.js} +1 -1
  304. package/.next/static/chunks/6022-7a7d1760fc9814c7.js +1 -0
  305. package/.next/static/chunks/{8361-9bb887203c456edb.js → 8361-0142beb59be2abf3.js} +1 -1
  306. package/.next/static/chunks/app/{page-022090bf6f932818.js → page-26a42881c8648cd3.js} +1 -1
  307. package/.next/static/chunks/app/sessions/page-a3ab6f122ec60d5a.js +1 -0
  308. package/.next/static/chunks/app/worktrees/[id]/page-a39ec2a0732d11a6.js +1 -0
  309. package/.next/static/css/b09bede85744e1cf.css +1 -0
  310. package/.next/trace +13 -13
  311. package/dist/cli/commands/ask.d.ts.map +1 -1
  312. package/dist/cli/commands/ask.js +11 -2
  313. package/dist/cli/commands/respond.d.ts.map +1 -1
  314. package/dist/cli/commands/respond.js +8 -4
  315. package/dist/cli/commands/send.d.ts.map +1 -1
  316. package/dist/cli/commands/send.js +18 -0
  317. package/dist/cli/commands/wait.d.ts +18 -3
  318. package/dist/cli/commands/wait.d.ts.map +1 -1
  319. package/dist/cli/commands/wait.js +137 -2
  320. package/dist/cli/docs/agent-operations.d.ts +2 -2
  321. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  322. package/dist/cli/docs/agent-operations.js +41 -1
  323. package/dist/cli/utils/session-target.d.ts +23 -6
  324. package/dist/cli/utils/session-target.d.ts.map +1 -1
  325. package/dist/cli/utils/session-target.js +33 -5
  326. package/dist/server/locales/en/worktree.json +30 -4
  327. package/dist/server/locales/ja/worktree.json +30 -4
  328. package/dist/server/src/config/schedule-config.js +45 -3
  329. package/dist/server/src/lib/cli-tools/antigravity.js +95 -10
  330. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +377 -16
  331. package/dist/server/src/lib/cli-tools/vibe-local.js +10 -0
  332. package/dist/server/src/lib/cmate-parser.js +8 -1
  333. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +140 -19
  334. package/dist/server/src/lib/detection/tools/claude/detect.js +13 -2
  335. package/dist/server/src/lib/detection/tools/claude/picker-chrome.js +239 -0
  336. package/dist/server/src/lib/detection/tools/claude/prompt.js +74 -6
  337. package/dist/server/src/lib/hooks/hook-settings-generator.js +61 -1
  338. package/dist/server/src/lib/hooks/sources/antigravity/history.js +302 -27
  339. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +103 -0
  340. package/dist/server/src/lib/hooks/sources/claude/history.js +391 -34
  341. package/dist/server/src/lib/hooks/sources/claude/transcript.js +91 -0
  342. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +114 -11
  343. package/dist/server/src/lib/polling/response-checker.js +82 -3
  344. package/dist/server/src/lib/polling/structured-history-gate.js +68 -4
  345. package/dist/server/src/lib/schedule-manager.js +178 -19
  346. package/dist/server/src/lib/session/agent-session-lifecycle.js +31 -1
  347. package/dist/server/src/lib/session/ask-user-question-prompt.js +4 -2
  348. package/dist/server/src/lib/session/claude-executor.js +33 -2
  349. package/dist/server/src/lib/session/resolve-session-target.js +37 -9
  350. package/dist/server/src/lib/session/session-generation-archive.js +194 -0
  351. package/dist/server/src/lib/tasks/contract-message.js +83 -9
  352. package/dist/server/src/lib/tasks/contract-parser.js +2 -0
  353. package/dist/server/src/lib/verification/env-clean-gate.js +81 -4
  354. package/dist/server/src/types/agent-transcript.js +143 -1
  355. package/package.json +1 -1
  356. package/.next/server/chunks/1068.js +0 -1
  357. package/.next/server/chunks/153.js +0 -1
  358. package/.next/server/chunks/4299.js +0 -1
  359. package/.next/server/chunks/6808.js +0 -1
  360. package/.next/server/chunks/6838.js +0 -1
  361. package/.next/server/chunks/7366.js +0 -5
  362. package/.next/server/chunks/7875.js +0 -25
  363. package/.next/static/chunks/2053-3f299a7a2c7d6767.js +0 -1
  364. package/.next/static/chunks/6022-2fa0b5a82d4ce7b6.js +0 -1
  365. package/.next/static/chunks/8772-9be53a530950d804.js +0 -1
  366. package/.next/static/chunks/app/sessions/page-584adf11ae51df10.js +0 -1
  367. package/.next/static/chunks/app/worktrees/[id]/page-38edcd53e51f53b0.js +0 -1
  368. package/.next/static/css/acd46e25427a2080.css +0 -1
  369. /package/.next/static/{0a4qrU8WdUwQrlO4mfLMu → gniPBCKoXtbIOQey8kNcx}/_buildManifest.js +0 -0
  370. /package/.next/static/{0a4qrU8WdUwQrlO4mfLMu → gniPBCKoXtbIOQey8kNcx}/_ssgManifest.js +0 -0
@@ -1,25 +0,0 @@
1
- "use strict";exports.id=7875,exports.ids=[7875],exports.modules={60:(a,b,c)=>{c.d(b,{QM:()=>h,V0:()=>e,ZX:()=>f,bE:()=>g});var d=c(85164);function e(a){let b=(0,d.x7)(a),c=(0,d.M4)(a,b);return{chromeStart:b,echoEnd:c,start:c+1,end:b>=0?b:a.length,headTruncated:c<0}}function f(a){let b=a.split("\n"),c=e(b.map(d.aJ));return c.start>=c.end?"":b.slice(c.start,c.end).join("\n")}function g(a){let b=a.split("\n"),c=e(b),f=c.start>=c.end?"":b.slice(c.start,c.end).join("\n");return d.$t.test(f)&&!d.kD.test(a)&&!d.Ty.test(a)}function h(a,b,c,d,e,f=!1){if(a=Math.max(0,a),"opencode"===d||"copilot"===d||f){let a=e(b);return a>=0?a+1:0}if("antigravity"===d||"command-code"===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)}},1058:(a,b,c)=>{c.d(b,{$v:()=>R,emitChatTurnProgress:()=>Y});var d=c(56791),e=c(52660);let f=globalThis.__unclassifiedFrameRuns??(globalThis.__unclassifiedFrameRuns=new Map);var g=c(94154),h=c(63209),i=c(51297),j=c(76777),k=c(50524);let l=/^([^\S\n]*)╹(▀{4,})/,m=/^([^\S\n]*)[│┃]/;var n=c(54325),o=c(81254),p=c(72626),q=c(43234),r=c(15194),s=c(129),t=c(66101),u=c(53163),v=c(17287),w=c(15388),x=c(3161),y=c(49154),z=c(62171),A=c(97751),B=c(31990),C=c(95595),D=c(45017),E=c(52277),F=c(44321),G=c(34405),H=c(93997),I=c(48083),J=c(30008),K=c(24581),L=c(40043),M=c(9516),N=c(36051);let O=(0,p.h)("current-output-builder");function P(a,b){Promise.resolve().then(c.bind(c,49640)).then(({broadcastMessage:c})=>{c("message",{worktreeId:a,message:b})}).catch(b=>{O.warn("history-row-broadcast-failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})})}function Q(a,b,c){return!!a.thinking&&null!==b&&"ready"===b.status&&null!==c&&"stop"===c.closedBy&&null!==c.closedAt}async function R(a,b,c,d,e){let f=await S(a,b,c,d);return(f.isRunning&&"running"===f.sessionStatus&&await Z(a,b,c,d),e)?{...f,resolvedBy:e.resolvedBy,conflict:e.conflict??null}:f}async function S(a,b,c,n){let p=n??c,R=q.CLIToolManager.getInstance().getTool(c),S=(0,I.CE)(b,c,n),T=(0,I.getLastAgentEvent)(b,c,n),U=(0,s.VM)(c),V=Date.now(),W=(0,I.NW)(b,c,n,V),X=(0,I.BJ)(b,c,n,V),Y=(0,x.Jl)(b,c,n),Z={lastEventType:T?.event??null,lastEventAt:T?.at??null,lastEventDetail:T?.detail??null,...(0,I.fY)(b,c,n,V),pendingDecisions:W.map(a=>{let b=(0,y.Wk)(a.toolName);return{id:a.decisionId,at:a.at,source:a.source,toolName:a.toolName,confirmedAt:a.confirmedAt,scraperCorroborated:a.scraperCorroborated,deliveryExpired:(0,K.qX)(a,U.capabilities.decisionTimeoutSeconds,V),kind:b,questionOptions:"question"===b&&X?(0,A.dZ)(X.spec).map(a=>({number:a.number,label:a.label})):null}}),dedupDropped:(0,I.n5)(b,c,n),dialogPendingMaxMs:{...K.h_},promptWaitingSince:null,promptWaitingSource:null,toolInputNormalization:(0,w.SQ)(b,c,n),permissionDecision:(0,v.CD)(b,c,n),source:{cliToolId:U.cliToolId,capabilities:U.capabilities,...(0,t.Kf)(U,U.liveness({worktreeId:b,cliToolId:c,instanceId:p}),V),probedActivity:(0,u.hS)({worktreeId:b,cliToolId:c,instanceId:p})},session:Y,sessionContext:(0,x.sc)({worktreeId:b,cliToolId:c,instanceId:n},Y),sessionDiff:(0,z.rn)({worktreeId:b,cliToolId:c,instanceId:n})};if(!await R.isRunning(b,n))return(0,L.xG)((0,D.v7)(b,c,n)),{isRunning:!1,content:"",lineCount:0,cliToolId:c,sessionStatus:"idle",sessionStatusReason:"session_not_running",statusEvidence:"positive",lastKnownStatus:null,lastKnownStatusAt:null,lastStopEventAt:S,structuredEvents:Z,model:null,reasoningEffort:null,promptDedup:(0,F.XH)(b,c,n),upstreamFault:null,paneObstruction:null,composerText:null,composerState:"no_composer"};let $=(0,d.getSessionState)(a,b,p),_=$?.lastCapturedLine||0,aa=await (0,B.Wh)(b,c,G._,n),ab=aa.split("\n"),ac=ab.length,ad=(0,H.sl)(ac,Math.min(G._,H.xE)),ae=((0,r.qR)(c,ad)?ab.slice(Math.max(0,_)):ab).join("\n"),af=(0,D.v7)(b,c,n),ag=(0,D.xU)(af),ah=ag?new Date(ag):void 0,ai=(0,C.WC)(aa,c,ah),aj=(0,C.f8)(ai),ak=ai.hasActivePrompt,al="waiting"===ai.status&&C.ug.has(ai.reason),am=ai.reason===C.gv.CODEX_PAGER,an="waiting"===ai.status&&ai.reason===C.gv.COMMAND_CODE_DISMISSABLE_PANEL,ao=ai.evidence,ap=(0,L.Q4)(ai.status,ai.reason);(0,I._i)(b,c,n,"ready"===ai.status&&"positive"===ao);let aq=(0,I.R4)(b,c,n),ar=(0,J._G)({worktreeId:b,cliToolId:c,instanceId:n,scraper:{status:ai.status,reason:ai.reason,hasActivePrompt:ak}}),as=ar.structured;null!==as&&(Z.promptWaitingSince=as.at,Z.promptWaitingSource=as.source);let at={status:ai.status,reason:ai.reason,thinking:aj,evidence:ao,isUnclassifiedActive:ap},au=Q(at,aq,Z)?function(a,b,c,d){try{let f=(0,e.getLastUserMessageForInstance)(a,b,c,d);if(!f)return null;let g=f.timestamp instanceof Date?f.timestamp.getTime():NaN;return Number.isFinite(g)?g:null}catch(a){return O.debug("newest-prompt-read-failed",{worktreeId:b,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),null}}(a,b,c,p):null,av=function(a,b,c=null,d=null,e=null){if("waiting"===a.status)return{...a,structuredApplied:!1};if(null!==c)return{status:"waiting",reason:(0,J.rB)(c),thinking:!1,evidence:a.evidence,isUnclassifiedActive:a.isUnclassifiedActive,structuredApplied:!0};if(null===b||"waiting"===b.status||function(a,b,c,d){if(null===d||!Q(a,b,c))return!1;let e=c?.closedAt??null;return null!==e&&e<d}(a,b,d,e))return{...a,structuredApplied:!1};let f="running"===b.status,g="ready"===b.status&&function(a){if(null===a)return!1;let{closedBy:b,closedAt:c,openedAt:d}=a;return"stop"===b&&null!==c&&null!==d&&c>d}(d)?"positive":a.evidence;return{status:b.status,reason:b.reason,thinking:f,evidence:g,isUnclassifiedActive:a.isUnclassifiedActive,structuredApplied:!0}}(at,aq,as,Z,au),aw=ar.waiting,ax=ai.promptDetection.promptData,ay=ax&&X?(0,M.Hu)(ax,X.spec):null,az=null!==as&&"notification"===as.source&&"permission-id"===U.capabilities.eventIdentity&&(0,N.PP)(as.decisionId)?as.decisionId:null,aA=null!==as&&"question"===(0,y.Wk)(as.toolName),aB=null===az||aA?null:N.QB,aC=null===as?null:{...as,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}(X),decisionOptions:aB,decisionId:az,patterns:null!==aB?as.patterns:null},aD=ak?ay??ax??(aC?(0,N.Yo)(b,aC):null):aC?(0,N.Yo)(b,aC):null;null!==aq&&aq.status!==ai.status&&O.info("detection-divergence",{worktreeId:b,cliToolId:c,instanceId:p,scraperStatus:ai.status,scraperReason:ai.reason,structuredStatus:aq.status,structuredReason:aq.reason,structuredEvent:aq.event,structuredEventAt:aq.at,applied:av.structuredApplied});let aE=ab.slice(-100).join("\n"),aF="opencode"===c?function(a){let b=(0,i.aJ)(a).split("\n"),c=-1,d=-1,e=-1;for(let a=0;a<b.length;a++){let f=l.exec(b[a]);f&&(c=a,e=(d=f[1].length)+1+f[2].length)}if(-1===c)return null;let f=0,g="";for(let a=0;a<b.length;a++){let h=b[a];if(a!==c){let a=m.exec(h);if(!a||a[1].length!==d)continue}let i=h.slice((0,k.sh)(h,e)).trim();""!==i&&(f+=1,""===g&&(g=(0,j.D)(i,200,"…[truncated]")))}return f<2?null:{id:"opencode_sidebar",matchedText:g,boxRight:e,rows:f}}(aE):null,aG=function(a,b,c=Date.now()){for(let[a,b]of f)c-b.lastSeen>36e5&&f.delete(a);if(!b)return f.delete(a),{dwellMs:0,shouldRecord:!1};let d=f.get(a);if(!d)return f.set(a,{since:c,lastSeen:c,recorded:!1}),{dwellMs:0,shouldRecord:!1};d.lastSeen=c;let e=Math.max(0,c-d.since);return d.recorded||e<6e4?{dwellMs:e,shouldRecord:!1}:(d.recorded=!0,{dwellMs:e,shouldRecord:!0})}(af,av.isUnclassifiedActive);if(aG.shouldRecord&&function(a,b){var c;let e=Math.round(b.dwellMs/1e3),f=`${b.sessionStatus}/${b.sessionStatusReason}`,g=`Unclassified interactive frame (${f}) held for ${e}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\`.`+((c=b.obstruction)?` Cause: opencode's sidebar is sharing rows with the transcript (paneObstruction=${c.id}, second column reads ${JSON.stringify(c.matchedText)}), which covers the marker that ends a turn. Press \`ctrl+x b\` in the pane to close it.`:""),h={type:o.LT,status:"unclassified",question:g,options:[],dwellSeconds:e,sessionStatusReason:f};try{let c=(0,d.createMessage)(a,{worktreeId:b.worktreeId,role:"assistant",content:g,messageType:"prompt",promptData:h,timestamp:new Date,cliToolId:b.cliToolId,instanceId:b.instanceId});O.info("unclassified-frame-recorded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,dwellSeconds:e,statusReason:f}),P(b.worktreeId,c)}catch(a){O.warn("unclassified-frame-record-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)})}}(a,{worktreeId:b,cliToolId:c,instanceId:p,dwellMs:aG.dwellMs,sessionStatus:av.status,sessionStatusReason:av.reason,obstruction:aF}),null!==as&&null!==aC&&!ak&&!as.recorded){(0,I.HR)(b,c,n);var aH=b,aI=c,aJ=p,aK=as,aL=aC;let e=(0,N.fO)(aH,aL);try{let b=(0,d.createMessage)(a,{worktreeId:aH,role:"assistant",content:e.question,summary:`structured prompt \xb7 source=${aK.source}${aK.toolName?` \xb7 tool=${aK.toolName}`:""}`,messageType:"prompt",promptData:e,timestamp:new Date,cliToolId:aI,instanceId:aJ});O.info("structured-prompt-recorded",{worktreeId:aH,cliToolId:aI,instanceId:aJ,source:aK.source,toolName:aK.toolName}),P(aH,b)}catch(a){O.warn("structured-prompt-record-failed",{worktreeId:aH,error:a instanceof Error?a.message:String(a)})}}let aM=(0,g.ji)(aa,c),aN=(0,h.bT)(aE),aO=(0,D.aq)(b,c,n),{model:aP,effort:aQ}=(0,I.jl)(b,c,n);(0,L.ox)(af,{status:av.status,reason:av.reason,evidence:av.evidence});let aR=(0,L.AD)(af);return{isRunning:!0,cliToolId:c,sessionStatus:av.status,sessionStatusReason:av.reason,content:ae,fullOutput:aa,realtimeSnippet:aE,lineCount:ac,lastCapturedLine:_,isComplete:aw,isGenerating:av.thinking,thinking:av.thinking,thinkingMessage:av.thinking?"Claude is thinking...":null,isPromptWaiting:aw,promptData:aD,autoYes:{enabled:aO?.enabled??!1,expiresAt:aO?.enabled?aO.expiresAt:null,stopReason:aO?.stopReason,lastSuppression:(0,E.gb)(b,c,n),stopMatchedText:aO?.stopMatchedText},isSelectionListActive:al,isPagerActive:am,isDismissablePanelActive:an,isUnclassifiedActive:av.isUnclassifiedActive,statusEvidence:av.evidence,lastKnownStatus:aR?.status??null,lastKnownStatusAt:aR?.at??null,lastServerResponseTimestamp:ag,serverPollerActive:(0,D.bZ)(af),lastStopEventAt:S,structuredEvents:Z,model:aP,reasoningEffort:aQ,promptDedup:(0,F.XH)(b,c,n),upstreamFault:aN?{id:aN.fault.id,matchedText:aN.matchedText,at:Date.now()}:null,paneObstruction:aF?{id:aF.id,matchedText:aF.matchedText,at:Date.now()}:null,composerText:"content"===aM.state?aM.text:null,composerState:aM.state}}function T(){return{version:0,askedAt:-1/0,turnKey:null,body:null,loggedOutcome:null,loggedTurnKey:null}}let U=globalThis.__chatTurnProgressState??=new Map;function V(a){return`${a.worktreeId}:${a.cliToolId}:${a.instanceId??a.cliToolId}`}function W(a,b,c,d={}){let e=V(a),f=U.get(e)??T();U.set(e,f),(f.loggedOutcome!==b||f.loggedTurnKey!==c)&&(f.loggedOutcome=b,f.loggedTurnKey=c,O.info("published"===b?"chat-turn-progress-published":"no-subscribers"===b?"chat-turn-progress-no-subscribers":"chat-turn-progress-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,turnKey:c,...d}))}async function X(a,b,c=Date.now()){let d,e=V(a),f=U.get(e)??T();if(c-f.askedAt<n.r9)return null;f.askedAt=c,U.set(e,f);try{d=await b()}catch{return null}if(!d||0===d.body.length)return null;let g=(0,n.rx)(d.body);return d.turnKey===f.turnKey&&g.body===f.body?null:(f.turnKey=d.turnKey,f.body=g.body,f.version+=1,{type:n.rz,worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,turnKey:d.turnKey,body:g.body,partial:g.truncated||!0===d.partial,version:f.version,done:!1})}async function Y(a,b,d=Date.now()){try{let{broadcast:e,hasRoomSubscribers:f}=await Promise.resolve().then(c.bind(c,49640));if(!f(a.worktreeId))return W(a,"no-subscribers",null),!1;let g=await X(a,b,d);if(!g)return!1;return e(a.worktreeId,g),W(a,"published",g.turnKey,{version:g.version,bodyLength:g.body.length,partial:g.partial}),!0}catch(b){return W(a,"failed",null,{error:b instanceof Error?b.message:String(b)}),!1}}async function Z(a,b,d,e){if("claude"!==d)return;let f={worktreeId:b,cliToolId:d,instanceId:e};try{let{getWorktreeById:g}=await Promise.resolve().then(c.bind(c,73753)),h=g(a,b)?.path;if(!h)return;let{hasRoomSubscribers:i}=await Promise.resolve().then(c.bind(c,49640));if(!i(b))return void W(f,"no-subscribers",null);Y(f,async()=>{let{readClaudeTurnProgress:a}=await Promise.resolve().then(c.bind(c,79696));return a({worktreeId:b,cliToolId:d,instanceId:e??d},{worktreePath:h})})}catch(a){W(f,"failed",null,{error:a instanceof Error?a.message:String(a)})}}},3523:(a,b,c)=>{c.d(b,{$M:()=>P,Tq:()=>V,z$:()=>R,zX:()=>X});var d=c(31990),e=c(88807),f=c(56791),g=c(49640),h=c(26895),i=c(28861),j=c(18778),k=c(15194),l=c(8988),m=c(85164),n=c(72626),o=c(46423),p=c(93997),q=c(60),r=c(82450),s=c(56263),t=c(13033),u=c(72457),v=c(44321),w=c(71080),x=c(28918),y=c(31517),z=c(43925),A=c(40964),B=c(83598),C=c(31442),D=c(45146),E=c(91601),F=c(92010),G=c(81099),H=c(63209),I=c(73478),J=c(57836),K=c(52767);let L=(0,n.h)("response-poller");function M(a){return b=>{try{(0,g.broadcastMessage)("message_updated",{worktreeId:a,message:b})}catch(b){L.warn("prompt-sweep-broadcast-failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})}}}function N(a){return{response:"",isComplete:!1,lineCount:a}}function O(a,b,c,d,e,f,g,h=!1){let i=(0,q.QM)(b,c,d,e,f,h),j=a.slice(i);return{response:(0,m.aJ)(j.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d,captureWindowSaturated:h}}function P(a,b,c){if("antigravity"===b){let b=(0,i.g)(a);if(null!==b)return b}let d=(0,m.KO)(b);return(0,h.gF)(a,c?{...d,precomputedLines:c}:d)}function Q(a,b){return P((0,m._A)((0,m.aJ)(a)),b)}function R(a,b,c,d=p.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,p.sl)(e.length,d),j="opencode"===c?g.map(m.aJ):null,k="claude"===c?(0,m.GT)(g):"copilot"===c?(0,m.wv)(g):"command-code"===c?(0,m.I$)(g):"codex"===c?(0,m.Zu)(g):j?(0,m.x7)(j):-1,l=k>=0?k:h,n=h>0&&b>25&&h+25<b,r=h>0&&b>50&&h<50,s=n||r;if(!s&&h<b-5)return null;let t=Math.max(0,h-20),u=g.slice(t),v=j?j.join("\n"):u.join("\n"),{promptPattern:w,separatorPattern:x,thinkingPattern:y,skipPatterns:z}=(0,m._X)(c),A=(a=60)=>{let b;if("codex"===c)return(0,m.Nc)(g,l,a,k>=0);if(j)return(0,q.V0)(j).echoEnd;if("copilot"===c){for(let b=l-1;b>=Math.max(0,l-a);b--){if(!m.y.test((0,m.aJ)(g[b])))continue;let a=b;for(;a+1<l&&m.Fg.test((0,m.aJ)(g[a+1]));)a++;return a}return -1}b=/^[>❯]\s+\S/;for(let c=l-1;c>=Math.max(0,l-a);c--){let a=(0,m.aJ)(g[c]);if(b.test(a))return c}return -1};if("claude"===c||"codex"===c||"copilot"===c||"command-code"===c){let a=Q(g.join("\n"),c);if(a.isPrompt)return O(g,b,h,s,c,A,a,i)}let B=(0,m.aJ)(v),C=w.test(B),E=x.test(B),F="codex"===c?(0,m.DR)(g,20):y.test(B),G="copilot"===c?(0,m.Wn)(g.slice(Math.max(0,h-8)).map(m.aJ)):null,H="copilot"===c?"idle"===G:("codex"===c||"gemini"===c||"vibe-local"===c||"antigravity"===c)&&C&&!F,I="claude"===c&&C&&E&&!F,J="command-code"===c&&C&&E&&!F,K="opencode"===c&&(0,q.bE)(B);if(H||I||J||K){let a=[],d=(0,q.QM)(b,h,s,c,A,i),e="codex"===c?l:h;for(let b=d;b<l;b++){let d=g[b],f=(0,m.aJ)(d);if("codex"===c&&/^›\s+/.test(f)||"gemini"===c&&/^(%|\$|.*@.*[%$#])\s*$/.test(f)||"antigravity"===c&&/^>\s*$/.test(f)||"opencode"===c&&k<0&&(m.sy.test(f)||m.uA.test(f))){e=b;break}z.some(a=>a.test(f))||a.push(d)}let f=a.join("\n").trim(),n=f.split("\n").slice(-o.$).join("\n");if("copilot"!==c&&y.test(n))return N(h);if("claude"===c){let a=(0,m.aJ)(f),b=/[╭╮╰╯]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),c=/Claude Code v\d+\.\d+|claude\//.test(a),d=/Tip:|for shortcuts|\?\s*for help/.test(a),e=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,g=A(h)>=0,i=a.match(/^[>❯]\s+(\S.*)$/m);if(i){let b=a.indexOf(i[0]);if(0===a.substring(b+i[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!z.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return N(h)}else if(!g&&(b||c||d||e)&&f.length<2e3)return L.info("Claude startup banner suppressed, response not saved",{responseLength:f.length,hasBannerArt:b,hasVersionInfo:c,hasStartupTips:d,hasProjectInit:e}),N(h)}if("copilot"===c){let a=(0,m.aJ)(f);if(!a.split("\n").some(a=>m.y.test(a))&&m.E0.some(b=>b.test(a)))return N(h)}if("command-code"===c&&0>A(h))return L.info("Command Code launch screen suppressed, response not saved",{responseLength:f.length}),N(h);if("gemini"===c&&((f.match(/[░███]/g)||[]).length>.3*f.length||D.SI.some(a=>f.includes(a))||!f.includes("✦")&&f.length<10))return N(h);if("opencode"===c){let a=(0,m.aJ)(f);if((a.length<50||!m.Md.test(B))&&0===a.split("\n").filter(a=>{let b=a.trim();return b&&!m.sx.some(a=>a.test(b))}).length)return N(h)}return{response:f,isComplete:!0,lineCount:e,bufferReset:s,captureWindowSaturated:i,turnHeadTruncated:j?(0,q.V0)(j).headTruncated:void 0}}if("opencode"!==c){let a=Q(g.join("\n"),c);if(a.isPrompt)return O(g,b,h,s,c,A,a,i)}let M=[],P=s||i||b>=h-5,S=P?A(80):-1,T=P?S>=0?S+1:Math.max(0,h-80):Math.max(0,b);for(let a=T;a<Math.min(h,l);a++){let b=g[a],c=(0,m.aJ)(b);z.some(a=>a.test(c))||M.push(b)}let U=M.join("\n").trim();return U?{response:U,isComplete:!1,lineCount:h}:N(h)}(0,I.I7)();let S=y.sD.reduce((a,b)=>a+b,0),T=globalThis.__pendingScrapedResponses??=new Map;function U(a){T.delete(a)}function V(a,b){let c=T.get(a);if(!c)return!1;T.delete(a);try{let a=(0,e.getDbInstance)(),d=(0,f.createMessage)(a,{worktreeId:c.worktreeId,role:"assistant",content:c.content,messageType:"normal",timestamp:c.timestamp,cliToolId:c.cliToolId,instanceId:c.instanceId,summary:c.summary,logFileName:c.logFileName,requestId:c.requestId});return(0,g.broadcastMessage)("message",{worktreeId:c.worktreeId,message:d}),L.info("pending-scrape-flushed",{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:c.instanceId,reason:b,scrapedLength:c.content.length,heldForMs:Date.now()-c.timestamp.getTime()}),(0,j.T)(a,c.worktreeId,c.content,c.cliToolId).catch(()=>{}),!0}catch(a){return L.warn("pending-scrape-flush-failed",{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:c.instanceId,reason:b,error:a instanceof Error?a.message:String(a)}),!1}}async function W(a){let b=T.get(a);if(!(!b||Date.now()<b.expiresAt)){if(await (0,x.captureStructuredHistoryTurn)(b.worktreeId,b.cliToolId,b.instanceId,{worktreePath:b.worktreePath,transcriptPathHint:b.transcriptPathHint})){U(a),(0,w.oE)(a),L.info("pending-scrape-superseded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId,heldForMs:Date.now()-b.timestamp.getTime()});return}V(a,"hold-expired")}}async function X(a,b,c){let h=(0,e.getDbInstance)(),i=c??b;try{let e=(0,f.getWorktreeById)(h,a);if(!e)return L.error("worktree-worktreeid-not"),(0,D.Et)(a,b,c),!1;if(!await (0,d.K1)(a,b,c))return L.info("session-not-running"),(0,D.Et)(a,b,c),!1;let n=(0,D.MN)(a,b,c);await W(n);let y=(0,A.m)(b,a,c),I=(0,C.n9)(y)?await (0,B.zQ)(y):{delegated:!1,released:!1};I.released&&((0,f.updateSessionState)(h,a,b,0,i),L.info("geometry-delegation-released",{worktreeId:a,cliToolId:b,instanceId:i}));let N=(0,f.getSessionState)(h,a,i),O=N?.lastCapturedLine||0,P=await (0,d.Wh)(a,b,p.xE,c),V=P.split("\n").slice(-100).join("\n"),X=(0,H.bT)(V);if((0,G.notifyUpstreamFaultPush)({worktreeId:a,cliToolId:b,instanceId:c,faultId:X?.fault.id??null,matchedText:X?.matchedText}).catch(()=>{}),"opencode"===b||"copilot"===b){let a="opencode"===b?(0,q.ZX)(P):P;(0,t.IZ)(n,a,b)}let Y=R(P,O,b,p.xE);if(!Y||!Y.isComplete){let{thinkingPattern:c}=(0,m._X)(b),d=(0,m.aJ)(P).split("\n").slice(-o.$).join("\n");return c.test(d)&&(0,f.markPendingPromptsAsAnswered)(h,a,b,i,M(a))>0&&L.info("marked-answeredcount-pending"),!1}let Z="opencode"===b||"copilot"===b,$=!(0,k.VA)(b)&&!Y.captureWindowSaturated;if($&&!Y.bufferReset&&Y.lineCount===O&&!N?.inProgressMessageId)return!1;if($&&!Y.bufferReset&&Y.lineCount<=O)return L.info("already-saved-up-to-line-lastcapturedlin"),!1;let _=Y.promptDetection??Q(Y.response,b);if(_.isPrompt){let d=_.rawContent||_.cleanContent,j=(0,u.zm)(d,b);if((0,u.gv)(n,j))return(0,v.LN)(a,b,c),L.info("duplicate-prompt-skipped",{worktreeId:a,cliToolId:b}),!1;let k=d;"copilot"===b&&(k=(0,r.LH)(d),k=(0,r.Sj)(k,s.Rf,s.ky)),(0,f.clearInProgressMessageId)(h,a,b,i);let l=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:k,messageType:"prompt",promptData:_.promptData,timestamp:new Date,cliToolId:b,instanceId:i});(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,g.broadcastMessage)("message",{worktreeId:a,message:l}),(0,K.r)(h,a,b,i,"prompt_detected",{promptType:_.promptData?.type});let m=Date.now(),o=(0,J.Jp)(a,b,c)?.since??m;return(0,F.R)({worktreeId:a,cliToolId:b,instanceId:c,waitingSince:o})||(0,E.J$)({worktreeId:a,worktreeName:e.name,kind:"prompt",agentName:i,instanceId:i,waitingKind:"prompt",waitingSince:o,excerpt:_.promptData?.question??k}).catch(()=>{}),(0,J.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,kind:"prompt",now:m}),Z||(0,D.Et)(a,b,c),!0}if(!Y.response||""===Y.response.trim())return(0,f.updateSessionState)(h,a,b,Y.lineCount,i),!1;let aa="claude"===b?(0,l.R)(Y.response):void 0,ab=Y.response;if("gemini"===b)ab=(0,r.IS)(Y.response);else if("claude"===b)ab=(0,r.NN)(Y.response);else if("copilot"===b){let a=(0,t.Uz)(n)||Y.response;ab=(0,r.LH)(a),ab=(0,r.Sj)(ab,s.Rf,s.ky),(0,t.q1)(n)}else if("opencode"===b){let a=(0,t.Uz)(n),b=Y.turnHeadTruncated&&a?a:Y.response;ab=(0,r.aW)(b),(0,t.q1)(n)}if(!ab||""===ab.trim()||"[No content]"===ab)return(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,f.clearInProgressMessageId)(h,a,b,i),!1;if(!$&&(0,w.j7)(n,ab)){if(L.info("duplicate-response-skipped",{worktreeId:a,cliToolId:b,instanceId:i}),(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,w.pN)(n)&&await (0,x.captureStructuredHistoryTurn)(a,b,c,{worktreePath:e.path,transcriptPathHint:aa?.logFilePath??null}))return(0,w.oE)(n),U(n),L.info("structured-history-recheck-captured",{worktreeId:a,cliToolId:b,instanceId:i}),!0;return!1}let ac={},ad=(0,x.isStructuredHistoryWriterLive)(a,b,c)||await (0,x.captureStructuredHistoryTurn)(a,b,c,{worktreePath:e.path,transcriptPathHint:aa?.logFilePath??null},ac);ad?(0,w.oE)(n):(0,w.Pe)(n);let ae=ad||I.delegated,af=!ae&&"not_yet_closed"===ac.outcome;!ab||ae||af||await (0,j.T)(h,a,ab,b),(0,f.markPendingPromptsAsAnswered)(h,a,b,i,M(a))>0&&L.info("marked-answeredcount-pending");let ag=(0,f.getSessionState)(h,a,i);if($&&ag&&Y.lineCount<=ag.lastCapturedLine)return L.info("race-condition-detected-skipping-save-re"),!1;if(af)!function(a,b){let c=T.get(a);if(c){c.content=b.content;return}T.set(a,b)}(n,{worktreeId:a,cliToolId:b,instanceId:i,content:ab,timestamp:new Date,summary:aa?.summary,logFileName:aa?.logFileName,requestId:aa?.requestId,worktreePath:e.path,transcriptPathHint:aa?.logFilePath??null,expiresAt:Date.now()+S}),L.info("structured-history-scrape-held",{worktreeId:a,cliToolId:b,instanceId:i,scrapedLength:ab.length,holdMs:S}),(0,z.vQ)(a,b,i,!1);else if(ae)ad&&U(n),L.info("structured-history-scrape-suppressed",{worktreeId:a,cliToolId:b,instanceId:i,scrapedLength:ab.length,reason:ad?"structured-history":"geometry-delegated"});else{let c=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:ab,messageType:"normal",timestamp:new Date,cliToolId:b,instanceId:i,summary:aa?.summary,logFileName:aa?.logFileName,requestId:aa?.requestId});(0,g.broadcastMessage)("message",{worktreeId:a,message:c}),(0,z.vQ)(a,b,i,!1)}return(0,J.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1}),(0,E.J$)({worktreeId:a,worktreeName:e.name,kind:"completion",agentName:i,excerpt:ab}).catch(()=>{}),(0,f.updateSessionState)(h,a,b,Y.lineCount,i),Z&&(0,D.Et)(a,b,c),!0}catch(a){return L.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}},8988:(a,b,c)=>{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],b.logFilePath=c[1]);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)=>{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)."}}},15388:(a,b,c)=>{c.d(b,{RJ:()=>f,SQ:()=>g});var d=c(24455);let e=globalThis.__toolInputNormalizations??(globalThis.__toolInputNormalizations=new Map);function f(a,b,c,g,h,i=Date.now()){e.set((0,d.v7)(a,b,c),{...g,toolName:h,at:i})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},18778:(a,b,c)=>{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)})}}},21684:(a,b,c)=>{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")}},40043:(a,b,c)=>{c.d(b,{AD:()=>k,Q4:()=>g,ox:()=>j,xG:()=>l});var d=c(37717),e=c(48083);let f=new Set([d.g.NO_RECENT_OUTPUT,d.g.UNKNOWN_FRAME,d.g.DEFAULT]);function g(a,b){return"running"===a&&f.has(b)}let h=e.sA,i=globalThis.__lastKnownStatusByKey??(globalThis.__lastKnownStatusByKey=new Map);function j(a,b,c=Date.now()){for(let[a,b]of i)c-b.at>=h&&i.delete(a);for(;i.size>512;){let a=i.keys().next();if(a.done)break;i.delete(a.value)}"positive"===b.evidence&&(i.delete(a),i.set(a,{status:b.status,reason:b.reason,at:c}))}function k(a,b=Date.now()){let c=i.get(a);return void 0===c?null:b-c.at>=h?(i.delete(a),null):c}function l(a){i.delete(a)}},41364:(a,b,c)=>{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}
2
-
3
- Created: ${i}
4
-
5
- ---
6
-
7
- `}j+=`## Conversation at ${i}
8
-
9
- `,j+=`### User
10
-
11
- `,j+=`${b}
12
-
13
- `;let o=(0,k.hR)(d)?k.ef[d]:d;return j+=`### ${o}
14
-
15
- `,j+=`${c}
16
-
17
- `,j+=`---
18
-
19
- `,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")},44321:(a,b,c)=>{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)}},45017:(a,b,c)=>{c.d(b,{v7:()=>d.v7,LP:()=>d.LP,pL:()=>d.pL,GE:()=>d.GE,aq:()=>d.aq,kC:()=>d.kC,xU:()=>B,bZ:()=>C,W8:()=>d.W8,W5:()=>I,_i:()=>J,_C:()=>K});var d=c(24455),e=c(31990),f=c(3523),g=c(75498),h=c(91318),i=c(52277),j=c(74258),k=c(65038);let l=["enforce","legacy"],m={claude:"enforce",codex:"enforce",copilot:"enforce",opencode:"enforce",gemini:"legacy",antigravity:"legacy","vibe-local":"legacy","command-code":"legacy"};var n=c(52767),o=c(88807),p=c(52660),q=c(63869),r=c(43234),s=c(85164),t=c(77093),u=c(93997),v=c(68901),w=c(72626),x=c(66007);let y=(0,w.h)("auto-yes-poller"),z=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function A(a){return z.get(a)}function B(a){let b=A(a);return b?.lastServerResponseTimestamp??null}function C(a){return z.has(a)}function D(a){let b=A(a);if(b&&(b.consecutiveErrors++,b.currentInterval=(0,d.G)(b.consecutiveErrors),b.consecutiveErrors>=v.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),J(a)}}async function E(a,b,c,d){let f=c??v.FW,g=await (0,e.Wh)(a,b,f,d);return(0,s._A)((0,s.aJ)(g))}async function F(a,b,e,v,w,x){let z=(0,d.v7)(a,e,x);try{let D=(0,f.$M)(v,e,w);if(!D.isPrompt||!D.promptData)return b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,"no_prompt";let E=(B=D.promptData,`${B.type}:${B.question}`);if(b.lastAnsweredPromptKey===E&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<d.UL)return"duplicate";let F="codex"===e?(0,s.E6)(v):null;if(F)return(0,i.ZS)(a,e,x,{reason:"agent-launch-dialog",mode:null,promptType:D.promptData.type}),y.warn("poller:auto-yes-skipped-launch-dialog",{worktreeId:a,cliToolId:e,instanceId:x,dialog:F,promptType:D.promptData.type}),"no_answer";let G=function(a,b,c,d=process.env){let e=(0,k.bN)(a),f=function(a,b=process.env){let c=b.CM_AUTOYES_DIALOG_GATE,d=null,e=null;if("string"==typeof c&&""!==c.trim())for(let b of c.split(",")){let[c,f]=b.split("=");if(void 0===f)continue;let g=c.trim(),h=f.trim();l.includes(h)&&("*"===g?d=h:g===a&&(e=h))}return e??d??m[a]??"legacy"}(a,d);if("multiple_choice"!==b||!e.hasDialogRules||"legacy"===f)return{allowed:!0,dialog:null,mode:f,gated:!1};let g=e.detectDialog((0,j.z)(c));return{allowed:null!==g&&"numbered"===g.answerMode,dialog:g,mode:f,gated:!0}}(e,D.promptData.type,v);if(!G.allowed)return(0,i.ZS)(a,e,x,{reason:"unclassified-frame",mode:null,promptType:D.promptData.type}),y.warn("poller:auto-yes-skipped-unclassified-frame",{worktreeId:a,cliToolId:e,instanceId:x,promptType:D.promptData.type,dialogKind:G.dialog?.kind??null,answerMode:G.dialog?.answerMode??null,gateMode:G.mode}),"no_answer";let H=(0,h.n)(a,e,x),I=(0,g.sD)(D.promptData,H);I.suppressedBy&&((0,i.ZS)(a,e,x,{reason:I.suppressedBy,mode:H?.mode??null,promptType:D.promptData.type,pattern:I.pattern}),y.warn("poller:auto-yes-suppressed-by-policy",{worktreeId:a,cliToolId:e,instanceId:x,reason:I.suppressedBy,mode:H?.mode??null,pattern:I.pattern,promptType:D.promptData.type}));let J=I.answer;if(null===J)return"no_answer";let K=r.CLIToolManager.getInstance().getTool(e).getSessionName(a,x);try{await (0,q.tV)({sessionName:K,answer:J,cliToolId:e,promptData:D.promptData})}finally{(0,u.gm)(K)}var B,C=Date.now();let L=A(z);L&&(L.lastServerResponseTimestamp=C);let M=A(z);M&&(M.consecutiveErrors=0,M.currentInterval=d.ps),b.lastAnsweredPromptKey=E,b.lastAnsweredAt=Date.now(),y.info("poller:response-sent",{worktreeId:a,cliToolId:e,instanceId:x}),(0,n.r)((0,o.getDbInstance)(),a,e,x??e,"prompt_answered_auto",{promptType:D.promptData.type});let N=null;try{N=(0,p.recordAnsweredPrompt)((0,o.getDbInstance)(),{worktreeId:a,cliToolId:e,instanceId:x??e,promptData:D.promptData,answer:J,answeredBy:"auto",content:D.rawContent||D.cleanContent})}catch(b){y.warn("poller:prompt-audit-record-failed",{worktreeId:a,cliToolId:e,instanceId:x,error:(0,t.u1)(b)})}if(N){let b=N;Promise.resolve().then(c.bind(c,49640)).then(({broadcastMessage:c})=>{c(b.created?"message":"message_updated",{worktreeId:a,message:b.message})}).catch(()=>{})}let[{startPolling:O},{broadcastTerminalSnapshotAfterInteraction:P}]=await Promise.all([c.e(2839).then(c.bind(c,95220)),Promise.resolve().then(c.bind(c,99508))]);return O(a,e,x),P(a,e,x),"responded"}catch{return D(z),y.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:e,instanceId:x}),"error"}}async function G(a,b,c){let e=(0,d.v7)(a,b,c),f=A(e);if("valid"===function(a,b){if(!b)return"stopped";let c=(0,d.Ue)(a),e=(0,d.pL)(a);if(!e)return J(a),"expired";let f=(0,d.GE)(a)??void 0,g=(0,d.aq)(c,e,f);return g?.enabled?"valid":(J(a),"expired")}(e,f)){try{let g=(0,d.aq)(a,b,c),h=g?.stopPattern?v.FW:v.Ke,i=await E(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,J)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(e,f,i))return;let k=await F(a,f,b,i,j,c);if("responded"===k)return void H(a,b,c,d.ZO);if("no_prompt"===k){let e=j.slice(-d.Re).join("\n");if((0,s.ut)(b,e))return void H(a,b,c,v.QN)}}catch(d){D(e),y.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,t.u1)(d)})}H(a,b,c)}}function H(a,b,c,e){let f=A((0,d.v7)(a,b,c));if(!f)return;let g=Math.max(e??f.currentInterval,d.ps);f.timerId=setTimeout(()=>{G(a,b,c)},g)}function I(a,b,c){if(!(0,x.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=A(g);if(!i&&z.size>=d.fC)return{started:!1,reason:"max concurrent pollers reached"};if(i&&i.cliToolId===b)return{started:!0,reason:"already_running"};i&&J(g);let j={timerId:null,cliToolId:b,instanceId:e,consecutiveErrors:0,currentInterval:d.ps,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1};return z.set(g,j),(0,h.ie)(g),j.timerId=setTimeout(()=>{G(a,b,e)},d.ps),y.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:e}),{started:!0}}function J(a){let b=A(a);b&&(b.timerId&&clearTimeout(b.timerId),z.delete(a),(0,h.ie)(a),y.info("poller:stopped",{compositeKey:a}))}function K(a){(0,d._9)(Array.from(z.keys()),a).forEach(a=>J(a))}},45146:(a,b,c)=>{c.d(b,{Et:()=>y,KQ:()=>A,MN:()=>q,SI:()=>m,fq:()=>z,g8:()=>s,sR:()=>C});var d=c(84297),e=c(72626),f=c(13033),g=c(72457),h=c(71080),i=c(44321),j=c(3523),k=c(99508);let l=(0,e.h)("response-poller"),m=["Waiting for auth","⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],n=globalThis.__responsePollerCoordinator??(globalThis.__responsePollerCoordinator={activePollers:new Map,pollingStartTimes:new Map,owners:new Map,running:new Map,pendingRestart:new Map,ownerStorage:new d.AsyncLocalStorage,generationCounter:0,pausedOnPrompt:new Set});n.pausedOnPrompt??=new Set;let o=n.activePollers,p=n.pollingStartTimes;function q(a,b,c){return`${a}:${c??b}`}function r(a){return"opencode"===a||"copilot"===a}function s(a,b,c){let d=q(a,b,c),e={worktreeId:a,cliToolId:b,instanceId:c},f=n.running.get(d);if(f){if(f.owner.superseded=!0,Date.now()-f.since<6e4)return void n.pendingRestart.set(d,e);l.warn("poller:restart-past-stalled-tick",{pollerKey:d,generation:f.owner.generation,runningForMs:Date.now()-f.since}),n.running.delete(d)}t(d,e)}function t(a,b){let c=n.pausedOnPrompt.has(a);x(a,{resume:c}),c&&l.info("poller:resumed-after-prompt",{pollerKey:a}),function(a){let b=q(a.worktreeId,a.cliToolId,a.instanceId);n.pollingStartTimes.set(b,Date.now()),r(a.cliToolId)&&(0,f.tb)(b),u(a.worktreeId,a.cliToolId,a.instanceId)}(b)}function u(a,b,c){let d=q(a,b,c);v({worktreeId:a,cliToolId:b,instanceId:c},function(a){let b=n.owners.get(a);b&&(b.superseded=!0);let c={pollerKey:a,generation:++n.generationCounter,superseded:!1,stopped:!1,selfStopped:!1};return n.owners.set(a,c),c}(d))}function v(a,b){let c=setTimeout(()=>{w(a,b)},2e3);n.activePollers.set(b.pollerKey,c)}async function w(a,b){let c=b.pollerKey;if(!b.superseded&&!b.stopped){n.running.set(c,{owner:b,since:Date.now()});try{let d=n.pollingStartTimes.get(c);if(d&&Date.now()-d>18e5)return void x(c);let e=!1;try{e=await n.ownerStorage.run(b,()=>(0,j.zX)(a.worktreeId,a.cliToolId,a.instanceId))}catch(a){l.error("error:",{error:a instanceof Error?a.message:String(a)})}b.selfStopped&&function(a,b,c){if(c&&!r(b.cliToolId)){n.pausedOnPrompt.add(a.pollerKey),l.info("poller:paused-on-prompt",{pollerKey:a.pollerKey,generation:a.generation});return}(0,h.L1)(a.pollerKey)}(b,a,e),b.superseded||(0,k.broadcastTerminalSnapshot)(a.worktreeId,a.cliToolId,a.instanceId),b.superseded||b.stopped||v(a,b)}finally{n.running.get(c)?.owner===b&&n.running.delete(c);let a=n.pendingRestart.get(c);a&&(n.pendingRestart.delete(c),t(c,a))}}}function x(a,b={}){let c=n.ownerStorage.getStore();if(c&&c.pollerKey===a&&(c.superseded||c.stopped))return void l.info("poller:stale-stop-ignored",{pollerKey:a,generation:c.generation});b.resume||(0,j.Tq)(a,"poller-stopped");let d=n.owners.get(a),e=void 0!==d&&c===d;d&&(d.stopped=!0,d.selfStopped=e,n.owners.delete(a)),n.pendingRestart.delete(a),n.pausedOnPrompt.delete(a);let i=n.activePollers.get(a);i&&(clearTimeout(i),n.activePollers.delete(a),n.pollingStartTimes.delete(a)),(0,f.q1)(a),(0,g.iX)(a),e||b.resume||(0,h.L1)(a)}function y(a,b,c){x(q(a,b,c))}function z(){for(let a of new Set([...Array.from(n.activePollers.keys()),...Array.from(n.owners.keys()),...Array.from(n.pausedOnPrompt)]))x(a);n.pendingRestart.clear(),n.pausedOnPrompt.clear()}function A(){return Array.from(n.activePollers.keys())}function B(a){let b=a.indexOf(":");return b<=0||b===a.length-1?null:{worktreeId:a.slice(0,b),instanceId:a.slice(b+1)}}function C(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=[],e=[];for(let a of Array.from(o.keys())){let f=B(a);if(!f)continue;let g=c.get(f.worktreeId);if(!g)continue;let h=b(f.worktreeId,f.instanceId);if(!h){e.push(a);continue}d.push({oldKey:a,newKey:q(g,h,f.instanceId),newWorktreeId:g,cliToolId:h,instanceId:f.instanceId})}let j=new Map;for(let a of d){let b=o.get(a.oldKey);b&&clearTimeout(b),o.delete(a.oldKey);let c=n.owners.get(a.oldKey);c&&(c.superseded=!0,c.stopped=!0,n.owners.delete(a.oldKey)),n.pendingRestart.delete(a.oldKey),j.set(a.newKey,{startedAt:p.get(a.oldKey)}),p.delete(a.oldKey),(0,g.i2)(a.oldKey,a.newKey),(0,h.Re)(a.oldKey,a.newKey);let d=B(a.oldKey);d&&(0,i.fL)(d.worktreeId,a.newWorktreeId,a.cliToolId,a.instanceId),(0,f.q1)(a.oldKey)}for(let a of e)x(a),l.warn("poller:migrate-abandoned",{pollerKey:a});for(let a of d){let b=j.get(a.newKey)?.startedAt;p.set(a.newKey,b??Date.now()),r(a.cliToolId)&&(0,f.tb)(a.newKey),u(a.newWorktreeId,a.cliToolId,a.instanceId)}let k=[];for(let a of Array.from(n.pausedOnPrompt)){let b=B(a);if(!b)continue;let d=c.get(b.worktreeId);d&&k.push({oldKey:a,newKey:`${d}:${b.instanceId}`})}for(let a of k)n.pausedOnPrompt.delete(a.oldKey);for(let a of k)(0,h.Re)(a.oldKey,a.newKey),n.pausedOnPrompt.add(a.newKey);return d}},50779:(a,b,c)=>{c.d(b,{GT:()=>m});var d=c(88807),e=c(43167),f=c(73753),g=c(72626),h=c(57836),i=c(4806),j=c(61191),k=c(27519);let l=(0,g.h)("push/resolution");async function m(a){let{worktreeId:b,agentName:c,at:g=Date.now()}=a,m=function(a,b=Date.now()){let c;if(!(0,k.lU)())return{send:!1,reason:"push-unconfigured"};if(!(0,i.r0)(a,b))return{send:!1,reason:"no-card"};if((0,h.Te)(a))return{send:!1,reason:"still-waiting"};try{c=(0,e.rC)((0,d.getDbInstance)(),"prompt")}catch{return{send:!1,reason:"single-device",deviceCount:0}}return c<2?{send:!1,reason:"single-device",deviceCount:c}:{send:!0,reason:"cross-device-clear",deviceCount:c}}(b,g),n={worktreeId:b,instanceId:c,reason:m.reason,...void 0!==m.deviceCount?{deviceCount:m.deviceCount}:{}};if("still-waiting"!==m.reason&&(0,i._P)(b),!m.send)return void("single-device"===m.reason?l.info("resolution-push-skipped",n):l.debug("resolution-push-skipped",n));try{await (0,j.notifyPushSubscribers)({worktreeId:b,worktreeName:function(a){try{return(0,f.getWorktreeById)((0,d.getDbInstance)(),a)?.name??a}catch{return a}}(b),kind:"prompt",agentName:c,resolved:!0},g),l.info("resolution-push-sent",n)}catch(a){l.warn("resolution-push-failed",{...n,error:a instanceof Error?a.message:String(a)})}}},52277:(a,b,c)=>{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}},63209:(a,b,c)=>{c.d(b,{bT:()=>g});var d=c(51297),e=c(76777);let f=[{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}];function g(a){let b=(0,d.aJ)(a);for(let a of f){var c;let d=a.pattern.exec(b);if(!d)continue;let f=b.lastIndexOf("\n",d.index)+1,g=b.indexOf("\n",d.index);return{fault:a,matchedText:(c=b.slice(f,-1===g?void 0:g).trim()||d[0],(0,e.D)(c,200,"…[truncated]"))}}return null}},63869:(a,b,c)=>{c.d(b,{Pw:()=>l,tV:()=>p});var d=c(79892),e=c(74258),f=c(65038),g=c(81254),h=c(93997),i=c(20610);let j=/^\[[ x]\] /,k="answer_mode_keys";class l extends Error{constructor(a,b,c){super(`Refused to send "${b}" to ${a}: its ${c.kind} dialog takes '${c.answerMode}' input, not a typed number (${k}). The digit would be swallowed and the Enter after it would confirm whatever is highlighted. Nothing was sent.`),this.name="PromptAnswerRejectedError",this.reason=k,this.dialogKind=c.kind,this.answerMode=c.answerMode}}async function m(a){if(void 0!==a.frame)return a.frame;try{return await (0,d.Xg)(a.sessionName,200)}catch{return null}}async function n(a){if(!/^\d+$/.test(a.answer))return;let b=(0,f.bN)(a.cliToolId);if(!b.hasDialogRules)return;let c=await m(a);if(null===c)return;let d=b.detectDialog((0,e.z)(c));if(null!==d&&"numbered"!==d.answerMode)throw new l(a.cliToolId,a.answer,d)}function o(a){if(0===a)return[];let b=a>0?"Down":"Up";return Array.from({length:Math.abs(a)},()=>b)}async function p(a){let{sessionName:b,answer:c,cliToolId:e,promptData:f,fallbackPromptType:k,fallbackDefaultOptionNumber:l}=a;if(await n(a),("claude"===e||"antigravity"===e)&&(f?.type==="multiple_choice"||"multiple_choice"===k)&&/^\d+$/.test(c)){let a,e=parseInt(c,10),g=null;if(f?.type==="multiple_choice"){let b=(g=f.options).find(a=>a.isDefault);a=b?.number??1}else a=l??1;let h=e-a;if(null!==g&&g.some(a=>j.test(a.label))&&null!==g){let a=g.filter(a=>j.test(a.label)).length,c=[...o(h),"Space"];c.push(...o(a-e+1)),c.push("Enter"),await (0,d.KB)(b,c)}else{let a=o(h),c=f?.type==="multiple_choice"&&!0===f.isAskUserQuestion&&0===h?["Down","Up","Enter"]:[...a,"Enter"];await (0,d.KB)(b,c)}}else{await (0,d.V1)(b,c,!1);let e=function(a){let b=(a.promptData?.type==="multiple_choice"?a.promptData.submitMode:void 0)??a.fallbackSubmitMode??"answer_then_enter";return(0,g.MI)(b)?b:"answer_then_enter"}(a);"answer_only"===e&&(a.promptData?.type==="multiple_choice"||"multiple_choice"===a.fallbackPromptType)&&/^\d+$/.test(a.answer)||(await new Promise(a=>setTimeout(a,i.pL)),await (0,d.V1)(b,"",!0))}(0,h.gm)(b)}},71080:(a,b,c)=>{c.d(b,{L1:()=>k,Pe:()=>h,Re:()=>l,j7:()=>g,oE:()=>i,pN:()=>j});var d=c(55511);let e=globalThis.__responseHashCache??(globalThis.__responseHashCache=new Map),f=globalThis.__structuredHistoryRecheckCache??(globalThis.__structuredHistoryRecheckCache=new Map);function g(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function h(a){f.has(a)||f.set(a,0)}function i(a){f.delete(a)}function j(a){let b=f.get(a);return void 0!==b&&(b>0?(f.set(a,b-1),!1):(f.set(a,2),!0))}function k(a){e.delete(a),f.delete(a)}function l(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c);let d=f.get(a);f.delete(a),void 0!==d&&f.set(b,d)}},72457:(a,b,c)=>{c.d(b,{gv:()=>f,i2:()=>h,iX:()=>g,zm:()=>i});var d=c(55511);let e=globalThis.__promptHashCache??(globalThis.__promptHashCache=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," ")}},73478:(a,b,c)=>{c.d(b,{I7:()=>u});var d=c(24455),e=c(88807),f=c(73753),g=c(72626),h=c(57836),i=c(80544),j=c(92010),k=c(61191),l=c(50779),m=c(27519);let n=(0,g.h)("push/waiting-notifier"),o=globalThis.__waitingPushPending??(globalThis.__waitingPushPending=new Map),p=globalThis.__waitingPushGraceTimers??(globalThis.__waitingPushGraceTimers=new Map);async function q(a,b,c){let d=a.instanceId??a.cliToolId;try{await (0,k.notifyPushSubscribers)({worktreeId:a.worktreeId,worktreeName:function(a){try{return(0,f.getWorktreeById)((0,e.getDbInstance)(),a)?.name??a}catch{return a}}(a.worktreeId),kind:"prompt",agentName:d,instanceId:d,waitingKind:a.kind,waitingSince:a.since,escalated:b},c)}catch(c){n.warn("waiting-push-failed",{worktreeId:a.worktreeId,instanceId:d,escalated:b,error:c instanceof Error?c.message:String(c)})}}function r(a){let b=p.get(a);void 0!==b&&(clearTimeout(b),p.delete(a))}function s(a,b){(0,j.R)({worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,waitingSince:a.since})||q(a,!1,b)}function t(){if(o.size>0)return;let a=globalThis.__waitingPushEscalationTimer;void 0!==a&&(clearInterval(a),globalThis.__waitingPushEscalationTimer=void 0)}function u(){let a=globalThis.__waitingPushUnsubscribe;for(let b of(a&&(a(),globalThis.__waitingPushUnsubscribe=void 0),p.values()))clearTimeout(b);p.clear(),o.clear(),t();let b=(0,h.wN)(a=>{!function(a){var b;if(!(0,m.lU)())return;let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(!a.waiting||null===a.since){r(c),o.delete(c),t(),(0,l.GT)({worktreeId:a.worktreeId,agentName:a.instanceId??a.cliToolId,at:a.at});return}let e={worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,since:a.since,kind:a.kind};if(o.set(c,e),!function(){if(void 0!==globalThis.__waitingPushEscalationTimer)return;let a=setInterval(()=>{!function(a=Date.now()){if(0===o.size)return t();let b=(0,i.rS)(),c=6e4*b.thresholdMinutes;for(let[d,e]of Array.from(o)){let f=(0,h.Jp)(e.worktreeId,e.cliToolId,e.instanceId);if(null===f||f.since!==e.since){o.delete(d);continue}b.enabled&&!(a-e.since<c)&&((0,j.R)({worktreeId:e.worktreeId,cliToolId:e.cliToolId,instanceId:e.instanceId,waitingSince:e.since,escalated:!0})||(o.delete(d),q({...e,kind:f.kind??e.kind},!0,a)))}t()}()},6e4);a.unref?.(),globalThis.__waitingPushEscalationTimer=a}(),null==(b=e.kind)||"unclassified"===b){r(c);let a=setTimeout(()=>{!function(a){p.delete(a);let b=o.get(a);if(void 0===b)return;let c=(0,h.Jp)(b.worktreeId,b.cliToolId,b.instanceId);if(null===c||c.since!==b.since){o.delete(a),t();return}let d={...b,kind:c.kind};o.set(a,d),s(d,Date.now())}(c)},8e3);a.unref?.(),p.set(c,a);return}s(e,a.at)}(a)});return globalThis.__waitingPushUnsubscribe=b,b}},75498:(a,b,c)=>{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}}},80544:(a,b,c)=>{c.d(b,{Di:()=>h,O$:()=>g,d7:()=>k,rS:()=>j});var d=c(88807);let e=(0,c(72626).h)("push/escalation-settings"),f="push_escalation",g={enabled:!0,thresholdMinutes:10},h=[5,10,30,60];function i(a){if("object"!=typeof a||null===a)return{...g};let b="boolean"==typeof a.enabled?a.enabled:g.enabled,c=a.thresholdMinutes;return{enabled:b,thresholdMinutes:"number"==typeof c&&Number.isFinite(c)&&c>=1&&c<=1440?Math.round(c):g.thresholdMinutes}}function j(){try{let a=(0,d.getDbInstance)().prepare("SELECT value FROM app_settings WHERE key = ?").get(f);if(!a)return{...g};return i(JSON.parse(a.value))}catch(a){return e.warn("escalation-settings-read-failed",{error:a instanceof Error?a.message:String(a)}),{...g}}}function k(a){let b=i(a),c=Date.now();return(0,d.getDbInstance)().prepare(`
20
- INSERT INTO app_settings (key, value, created_at, updated_at)
21
- VALUES (?, ?, ?, ?)
22
- ON CONFLICT(key) DO UPDATE SET
23
- value = excluded.value,
24
- updated_at = excluded.updated_at
25
- `).run(f,JSON.stringify(b),c,c),b}},91318:(a,b,c)=>{c.d(b,{ie:()=>j,n:()=>i});var d=c(56791),e=c(88807),f=c(24455);let g=(0,c(72626).h)("auto-yes-policy"),h=new Map;function i(a,b,c){let i=c??b,j=(0,f.v7)(a,b,i),k=Date.now(),l=h.get(j);if(l&&l.expiresAt>k)return l.policy;let m=function(a,b,c){try{let f=(0,d.getActiveTaskForInstance)((0,e.getDbInstance)(),a,b,c);if(!f)return null;return f.contract.autoYes}catch(d){return g.warn("policy-lookup-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}(a,b,i);return h.size>=200&&function(a){for(let[b,c]of h.entries())c.expiresAt<=a&&h.delete(b)}(k),h.set(j,{policy:m,expiresAt:k+5e3}),m}function j(a){h.delete(a)}},91601:(a,b,c)=>{c.d(b,{Di:()=>f.Di,HR:()=>d.HR,J$:()=>e.notifyPushSubscribers,O$:()=>f.O$,d7:()=>f.d7,rS:()=>f.rS});var d=c(27519);c(8532);var e=c(61191);c(3915),c(92010),c(81099),c(77703),c(73478);var f=c(80544);c(50779),c(4806),c(55233)},92010:(a,b,c)=>{c.d(b,{R:()=>h});var d=c(24455),e=c(72626),f=c(52277);let g=(0,e.h)("push/prompt-gate");function h(a){let b=function(a){let{worktreeId:b,cliToolId:c,instanceId:e,waitingSince:g}=a,h=(0,d.aq)(b,c,e);if(null===h||!h.enabled)return{suppress:!1,reason:"auto-yes-inactive",stopReason:h?.stopReason};let i=(0,f.gb)(b,c,e);return null!==i&&i.at>=g?{suppress:!1,reason:"policy-withheld",suppressedBy:i.reason}:!0===a.escalated?{suppress:!1,reason:"escalation-reminder"}:{suppress:!0,reason:"auto-yes-answering"}}(a),c={worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,waitingSince:a.waitingSince,escalated:!0===a.escalated,reason:b.reason,...void 0!==b.stopReason?{stopReason:b.stopReason}:{},...void 0!==b.suppressedBy?{suppressedBy:b.suppressedBy}:{}};return b.suppress?g.info("prompt-push-suppressed",c):g.debug("prompt-push-allowed",c),b.suppress}},97751:(a,b,c)=>{c.d(b,{M4:()=>p,W7:()=>r,aK:()=>q,dV:()=>l,dZ:()=>m,yQ:()=>j});var d=c(72626),e=c(36051),f=c(25071),g=c(129),h=c(62887);let i=(0,d.h)("lib/hooks/structured-decision-response"),j="Rejected by the operator via `commandmate respond`.",k={1:["once","allow once","allow","yes","y"],2:["always","allow always","allow-always"],3:["reject","deny","no","n"]};function l(a){let b=a.trim().toLowerCase();if(""===b)return null;for(let a of e.QB)if(b===String(a.number)||b===a.label.toLowerCase()||b===a.reply||(k[a.number]??[]).includes(b))return a;return null}function m(a){let b=a.questions[0];return b?b.choices.map((a,b)=>({number:b+1,label:a.label,reply:a.label})):[]}let n=/^\d+(?:\s*[,\s]\s*\d+)*$/;function o(a){return a.map(a=>`${a.number} = ${a.label}`).join(", ")}function p(a,b){let c=b.trim();if(""===c)return{ok:!1,reason:"unresolvable_answer",message:"An empty answer names no choice."};if(1!==a.questions.length)return{ok:!1,reason:"multi_question_unsupported",message:`This call asks ${a.questions.length} questions and \`answers\` carries one array per question; a single answer cannot say what the others are. Answer it in the terminal.`};let d=a.questions[0],e=m(a);if(n.test(c)){let a=[];for(let b of c.split(/[,\s]+/)){let d=e.find(a=>a.number===Number(b));if(!d)return{ok:!1,reason:"answer_out_of_range",message:`'${c}' names no choice this question offers. ${o(e)}.`};a.some(a=>a.number===d.number)||a.push(d)}return a.length>1&&!d.multiSelect?{ok:!1,reason:"multi_select_not_offered",message:`This question accepts one choice. Send a single number: ${o(e)}.`}:{ok:!0,resolved:{answers:[a.map(a=>a.reply)],selected:a,freeText:!1}}}let f=e.find(a=>a.label.toLowerCase()===c.toLowerCase());return f?{ok:!0,resolved:{answers:[[f.reply]],selected:[f],freeText:!1}}:c.length>1e3?{ok:!1,reason:"unresolvable_answer",message:"A free-text answer is limited to 1000 characters; this one is longer and is refused rather than cut short."}:{ok:!0,resolved:{answers:[[c]],selected:[],freeText:!0}}}function q(a){return{kind:"answer",answers:a.answers}}async function r({worktreeId:a,cliToolId:b,instanceId:d,answer:k,useDefault:m=!1}){let n,o=(0,g.VM)(b);if(null===o.capabilities.eventIdentity)return{kind:"not-applicable",reason:"no-decision-identity"};let p={worktreeId:a,cliToolId:b,instanceId:d};try{n=await o.listPending(p)}catch(c){return i.warn("structured-decision-unreachable",{worktreeId:a,cliToolId:b,instanceId:d??b,error:c instanceof Error?c.message:String(c)}),{kind:"not-applicable",reason:"source-unreachable"}}let q=n.filter(a=>"permission"===a.kind);if(0===q.length)return{kind:"not-applicable",reason:"no-pending-decision"};let r=q[0];if(q.length>1&&i.info("structured-decision-multiple-pending",{worktreeId:a,cliToolId:b,instanceId:d??b,pending:q.length,answering:r.id}),m)return{kind:"refused",reason:"unresolvable_answer",message:`--default cannot answer a structured approval: the agent publishes no default verdict. Send a number instead — ${e.QB.map(a=>`${a.number} = ${a.label}`).join(", ")}.`};let s=void 0===k?null:l(k);if(!s)return{kind:"refused",reason:"answer_out_of_range",message:`'${k??""}' is not one of the verdicts this approval accepts. `+e.QB.map(a=>`${a.number} = ${a.label} (${a.reply})`).join(", ")+"."};let t=function(a){switch(a){case 1:return{kind:"allowOnce"};case 2:return{kind:"allowAlways"};case 3:return{kind:"deny",message:j};default:return null}}(s.number);if(!t)return{kind:"refused",reason:"unresolvable_answer",message:`Option ${s.number} has no verdict on this server.`};let{delivery:u}=await (0,f.GW)(o,p,r,t),v=u?.delivered===!0;if(v&&o.capabilities.permissionReplyReleasesPrompt){let{recordAgentEvent:e}=await Promise.resolve().then(c.bind(c,48083));e(a,b,d,{event:"notification",at:Date.now(),detail:h.KC,sessionId:r.conversationId,decisionId:r.id,promptSettled:!0})}return i.info("structured-decision-answered",{worktreeId:a,cliToolId:b,instanceId:d??b,decisionId:r.id,optionNumber:s.number,reply:s.reply,delivered:v}),{kind:"answered",decisionId:r.id,option:s,delivered:v}}},99508:(a,b,c)=>{c.r(b),c.d(b,{INTERACTION_SNAPSHOT_RETRY_DELAYS_MS:()=>l,__resetTerminalBroadcastState:()=>s,broadcastSessionStatus:()=>r,broadcastTerminalSnapshot:()=>m,broadcastTerminalSnapshotAfterInteraction:()=>q});var d=c(49640),e=c(88807),f=c(1058),g=c(72626),h=c(43234),i=c(93997);let j=(0,g.h)("terminal-broadcast"),k=globalThis.__terminalSnapshotVersions??(globalThis.__terminalSnapshotVersions=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.$v)(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.sessionStatus,a.thinking??!1,a.isPromptWaiting??!1,a.isSelectionListActive??!1,a.isPagerActive??!1,a.isDismissablePanelActive??!1,a.isUnclassifiedActive??!1])}async function o(a,b,c){let d=h.CLIToolManager.getInstance().getTool(b);return(0,i.gm)(d.getSessionName(a,c)),(0,f.$v)((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,sessionStatus:c.sessionStatus,thinking:c.thinking??!1,isPromptWaiting:c.isPromptWaiting??!1,promptData:c.promptData??null,isSelectionListActive:c.isSelectionListActive??!1,isPagerActive:c.isPagerActive??!1,isDismissablePanelActive:c.isDismissablePanelActive??!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 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2053],{24027:(e,t,s)=>{s.d(t,{Uc:()=>A,G8:()=>v,OJ:()=>C,RF:()=>R});var l=s(95155),a=s(12115),n=s(18955),r=s(51238),i=s(22133),d=s(89451),o=s(10934),c=s(92254),u=s(5225);s(1226);var x=s(89715),m=s(57828),p=s(52056),g=s(65229),h=s(67909),k=s(3005);let f=(0,h.default)(()=>Promise.all([s.e(221),s.e(7485),s.e(953)]).then(s.bind(s,90953)).then(e=>({default:e.MermaidDiagram})),{loadableGenerated:{webpack:()=>[90953]},ssr:!1,loading:function(){let e=(0,n.c)("worktree");return(0,l.jsxs)("div",{className:"mermaid-loading flex items-center gap-2 text-muted-foreground p-4",children:[(0,l.jsx)(k.y,{size:"sm"}),(0,l.jsx)("span",{children:e("mermaid.loading")})]})}});function j(e){let{className:t,children:s}=e;if(t&&t.split(" ").includes("language-mermaid")){let e=null==s?"":"string"==typeof s?s:Array.isArray(s)?s.map(e=>"string"==typeof e?e:"").join(""):String(s);return(0,l.jsx)(f,{code:e})}return(0,l.jsx)("code",{className:t,children:s})}var b=s(50666),y=s(69352),N=s(76246);function w(e){let{apiUrl:t,alt:s,width:r,height:i}=e,d=(0,n.c)("worktree"),[o,c]=(0,a.useState)(null);return((0,a.useEffect)(()=>{let e=!1;return fetch(t).then(e=>e.ok?e.json():null).then(t=>{!e&&(null==t?void 0:t.content)&&c(t.content)}).catch(()=>{}),()=>{e=!0}},[t]),o)?(0,l.jsx)("img",{src:o,alt:s,width:r,height:i,style:{maxWidth:r||"100%"}}):(0,l.jsx)("span",{style:{color:"#999"},children:d("markdownPreview.loadingImage")})}let v=(0,a.memo)(function(e){let{content:t,onOpenFile:s,currentFilePath:n,worktreeId:x}=e,m=(0,a.useRef)(s);m.current=s;let p=(0,a.useRef)(n);p.current=n;let g=(0,a.useRef)(x);g.current=x;let h=(0,a.useCallback)((e,t)=>{let s=(0,y.d3)(t);if(s)switch((0,y.dj)(s)){case"anchor":break;case"external":e.preventDefault(),window.open(s,"_blank","noopener,noreferrer");break;case"relative":{e.preventDefault();let t=p.current,l=m.current;if(t&&l){let e=(0,y.WU)(t,s);e&&l(e)}}}},[]),k=(0,a.useMemo)(()=>({code:j,pre:e=>{let{children:t}=e;return!function(e){let t=a.Children.toArray(e)[0];if(!a.isValidElement(t))return!1;let s=t.props.className;return"string"==typeof s&&s.split(" ").includes("language-mermaid")}(t)?(0,l.jsx)(b.Ck,{children:(0,l.jsx)("pre",{className:"overflow-x-auto",children:t})}):(0,l.jsx)("pre",{children:t})},img:e=>{var t,s,a,n;let{src:r,alt:i,width:d,height:o,...c}=e,u=null!=d?d:null==(s=c.node)||null==(t=s.properties)?void 0:t.width,x=null!=o?o:null==(n=c.node)||null==(a=n.properties)?void 0:a.height;if("string"==typeof r&&!r.startsWith("http://")&&!r.startsWith("https://")&&!r.startsWith("data:")){let e=p.current,t=g.current;if(e&&t){let s=(0,y.WU)(e,r);if(s){let e="/api/worktrees/".concat(t,"/files/").concat((0,N.o)(s));return(0,l.jsx)(w,{apiUrl:e,alt:null!=i?i:"",width:u,height:x})}}}return(0,l.jsx)("img",{src:r,alt:null!=i?i:"",width:u,height:x,style:{maxWidth:u||"100%"}})},a:e=>{let{href:t,children:s,...a}=e;return t?(0,l.jsx)("a",{...a,href:t,onClick:e=>h(e,t),children:s}):(0,l.jsx)("a",{...a,children:s})}}),[h]),f=(0,a.useMemo)(()=>[i.A],[]),v=(0,a.useMemo)(()=>[d.A,[o.A,y.uO],c.A,u.A],[]);return(0,l.jsx)(r.oz,{remarkPlugins:f,rehypePlugins:v,components:k,children:t})}),R=(0,a.memo)(function(e){let{mobileTab:t,onTabChange:s}=e,a=(0,n.c)("worktree");return(0,l.jsxs)("div",{className:"flex border-b border-border",children:[(0,l.jsxs)("button",{"data-testid":"mobile-tab-editor",onClick:()=>s("editor"),className:"flex-1 py-2 text-sm font-medium ".concat("editor"===t?"text-accent-600 dark:text-accent-400 border-b-2 border-accent-600 dark:border-accent-400":"text-muted-foreground"),children:[(0,l.jsx)(x.A,{className:"h-4 w-4 inline-block mr-1"}),a("markdownPreview.editor")]}),(0,l.jsxs)("button",{"data-testid":"mobile-tab-preview",onClick:()=>s("preview"),className:"flex-1 py-2 text-sm font-medium ".concat("preview"===t?"text-accent-600 dark:text-accent-400 border-b-2 border-accent-600 dark:border-accent-400":"text-muted-foreground"),children:[(0,l.jsx)(m.A,{className:"h-4 w-4 inline-block mr-1"}),a("markdownPreview.preview")]})]})}),C=(0,a.memo)(function(e){let{isMobile:t}=e,s=(0,n.c)("worktree");return(0,l.jsxs)("div",{"data-testid":"maximize-hint",className:"flex items-center justify-center px-4 py-1 bg-muted text-muted-foreground text-xs",children:[s("markdownPreview.exitFullscreenHint")," ",t&&s("markdownPreview.exitFullscreenHintSwipe")]})}),A=(0,a.memo)(function(e){let{onDismiss:t}=e,s=(0,n.c)("worktree");return(0,l.jsxs)("div",{"data-testid":"large-file-warning",className:"flex items-center gap-2 px-4 py-2 bg-warning-subtle border-b border-warning-border text-warning-foreground text-sm",children:[(0,l.jsx)(p.A,{className:"h-4 w-4"}),s("markdownPreview.largeFileWarning"),(0,l.jsx)("button",{onClick:t,className:"ml-auto text-warning hover:text-warning",children:(0,l.jsx)(g.A,{className:"h-4 w-4"})})]})})},34380:(e,t,s)=>{s.d(t,{B:()=>E});var l=s(95155),a=s(12115),n=s(18955),r=s(28019),i=s(54014),d=s(74385),o=s(50825),c=s(37381);function u(e){var t,s,l,a,n;let r=e.agentInstances&&e.agentInstances.length>0?e.agentInstances.map(e=>e.alias||e.cliTool):null!=(s=e.selectedAgents)?s:e.cliToolId?[e.cliToolId]:[];return{id:e.id,name:e.name,repositoryName:null!=(l=e.repositoryDisplayName)?l:e.repositoryName,syncedBranch:null!=(a=e.branch)?a:null,liveBranch:null!=(n=null==(t=e.gitStatus)?void 0:t.currentBranch)?n:null,dirty:e.gitStatus?e.gitStatus.isDirty:null,agents:[...new Set(r)],sessionRunning:!0===e.isSessionRunning}}let x={status:"loading",options:[]};async function m(e){let t=await fetch("/api/worktrees",{signal:e,headers:{Accept:"application/json"}});if(!t.ok)throw Error("HTTP ".concat(t.status));let s=await t.json(),l=null==s?void 0:s.worktrees;if(!Array.isArray(l))throw Error("Malformed worktree list");return l.map(u)}function p(e){let{selectedWorktreeId:t,onSelect:s,disabled:i=!1}=e,d=(0,n.c)("skills"),[o,u]=(0,a.useState)(x),[p,h]=(0,a.useState)(0);(0,a.useEffect)(()=>{let e=new AbortController;return u(x),m(e.signal).then(t=>{e.signal.aborted||u({status:"loaded",options:t})}).catch(()=>{e.signal.aborted||u({status:"error",options:[]})}),()=>e.abort()},[p]);let k=(0,a.useCallback)(()=>h(e=>e+1),[]);return"loading"===o.status?(0,l.jsxs)("div",{className:"space-y-2","data-testid":"skill-target-loading",children:[(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:d("target.loading")}),(0,l.jsx)(r.EA,{className:"h-24 w-full rounded-lg"})]}):"error"===o.status?(0,l.jsxs)(r.Zp,{className:"space-y-3","data-testid":"skill-target-error",children:[(0,l.jsx)(c.u,{tone:"danger",children:d("target.errorNotice")}),(0,l.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:k,"data-testid":"skill-target-retry",children:d("target.retry")})]}):0===o.options.length?(0,l.jsx)(r.Zp,{"data-testid":"skill-target-empty",children:(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:d("target.empty")})}):(0,l.jsxs)("div",{className:"space-y-3","data-testid":"skill-target-selector",children:[(0,l.jsx)("div",{role:"radiogroup","aria-label":d("target.heading"),className:"space-y-2",children:o.options.map(e=>(0,l.jsx)(g,{option:e,selected:e.id===t,disabled:i,onSelect:s},e.id))}),(0,l.jsx)(c.u,{tone:"neutral","data-testid":"skill-target-branch-notice",children:d("target.branchFreshnessNotice")})]})}function g(e){var t;let{option:s,selected:a,disabled:i,onSelect:d}=e,o=(0,n.c)("skills"),c=null!=(t=s.liveBranch)?t:s.syncedBranch;return(0,l.jsxs)("button",{type:"button",role:"radio","aria-checked":a,disabled:i,onClick:()=>d(s.id),"data-testid":"skill-target-option-".concat(s.id),className:"w-full rounded-lg border px-3 py-2.5 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-60 ".concat(a?"border-accent-500 bg-accent-50 dark:bg-accent-950/40":"border-border bg-card hover:bg-muted"),children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)("span",{className:"text-sm font-semibold text-foreground break-all",children:s.name}),a&&(0,l.jsx)(r.Ex,{variant:"info",children:o("target.selected")})]}),(0,l.jsxs)("dl",{className:"mt-1.5 grid grid-cols-1 gap-x-4 gap-y-1 sm:grid-cols-2",children:[(0,l.jsx)(h,{label:o("target.repository"),children:s.repositoryName}),(0,l.jsx)(h,{label:o("target.branch"),children:null!=c?c:o("target.branchUnknown")}),(0,l.jsx)(h,{label:o("target.agents"),children:s.agents.length>0?s.agents.join(", "):o("target.agentsNone")}),(0,l.jsx)(h,{label:o("target.workingTree"),children:o(null===s.dirty?"target.workingTreeUnknown":s.dirty?"target.workingTreeDirty":"target.workingTreeClean")})]}),s.sessionRunning&&(0,l.jsx)("p",{className:"mt-1.5 text-xs text-muted-foreground","data-testid":"skill-target-session-".concat(s.id),children:o("target.sessionRunning")})]})}function h(e){let{label:t,children:s}=e;return(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:t}),(0,l.jsx)("dd",{className:"text-xs text-foreground break-words",children:s})]})}var k=s(95584);function f(e){let{label:t,children:s}=e;return(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:t}),(0,l.jsx)("dd",{className:"mt-0.5 break-words text-sm text-foreground",children:s})]})}function j(e){let{level:t,kind:s,label:a}=e,i=(0,n.c)("skills");return(0,l.jsxs)(r.Ex,{variant:k.eK[t],"data-testid":"skill-plan-risk-".concat(s,"-").concat(t),children:[a,": ",i(k.pP[t])]})}function b(e){let{entry:t}=e,s=(0,n.c)("skills"),a=k.KL[t.reason];return(0,l.jsxs)("li",{className:"space-y-1.5 rounded-md border border-border px-3 py-2","data-testid":"skill-plan-file-".concat(t.path),children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)(r.Ex,{variant:k.tC[t.change],children:s(k.AS[t.change])}),(0,l.jsx)("span",{className:"break-all font-mono text-xs text-foreground",children:t.path}),t.generated&&(0,l.jsx)(r.Ex,{variant:"gray",children:s("plan.fileGenerated")})]}),a&&(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:s(a)}),t.gitIgnored&&(0,l.jsx)("p",{className:"text-xs text-warning-foreground",children:s("plan.gitIgnored")}),t.binary?(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:s("plan.diffBinary")}):t.diff?(0,l.jsxs)("details",{children:[(0,l.jsx)("summary",{className:"cursor-pointer text-xs text-accent-600 dark:text-accent-400",children:s("plan.diffToggle",{additions:t.additions,deletions:t.deletions})}),(0,l.jsx)("pre",{className:"mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-[11px] leading-snug text-foreground",children:t.diff}),t.diffTruncated&&(0,l.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:s("plan.diffTruncated")})]}):null]})}function y(e){var t,s,a;let{plan:i}=e,d=(0,n.c)("skills"),{target:o,skill:u}=i,x=u.compatibility.commandmate;return(0,l.jsxs)(r.Zp,{className:"space-y-4","data-testid":"skill-install-plan",children:[(0,l.jsxs)("div",{className:"space-y-1",children:[(0,l.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:d("plan.heading")}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:d("plan.expiresAt",{timestamp:i.expiresAt})})]}),(0,l.jsxs)("section",{className:"space-y-2",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.targetHeading")}),(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,l.jsx)(f,{label:d("target.repository"),children:o.repositoryName}),(0,l.jsx)(f,{label:d("target.heading"),children:o.worktreeName}),(0,l.jsx)(f,{label:d("target.branch"),children:null!=(t=o.branch)?t:d("target.branchUnknown")}),(0,l.jsx)(f,{label:d("plan.headStateLabel"),children:d(null!=(s=k.kF[o.headState])?s:"plan.headState.unknown")}),(0,l.jsx)(f,{label:d("target.workingTree"),children:o.workingTreeDirty?d("target.workingTreeDirty"):d("target.workingTreeClean")}),(0,l.jsx)(f,{label:d("plan.installRoot"),children:(0,l.jsx)("span",{className:"break-all font-mono text-xs",children:(o.installRoots&&o.installRoots.length>0?o.installRoots:[o.installRoot]).map(e=>(0,l.jsx)("span",{className:"block",children:e},e))})}),(0,l.jsx)(f,{label:d("plan.existingInstall"),children:o.existingInstall?d("plan.existingInstallVersion",{version:o.existingInstall.version}):d("plan.existingInstallNone")}),(0,l.jsx)(f,{label:d("detail.recommendedVersion"),children:(0,l.jsx)("span",{className:"font-mono text-xs",children:u.version})})]})]}),(0,l.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-risk-section",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.riskHeading")}),(0,l.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,l.jsx)(j,{level:u.declaredRisk,kind:"declared",label:d("plan.riskDeclared")}),(0,l.jsx)(j,{level:u.computedRisk,kind:"computed",label:d("plan.riskComputed")}),(0,l.jsx)(j,{level:u.effectiveRisk,kind:"effective",label:d("plan.riskEffective")})]}),(0,l.jsx)("p",{className:"break-words text-sm text-foreground",children:u.riskRationale}),(0,l.jsx)(c.u,{tone:"neutral",children:d("plan.riskNotice")})]}),(0,l.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-permissions",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("permissions.heading")}),u.declaredPermissions.length>0?(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5",children:u.declaredPermissions.map(e=>(0,l.jsx)(r.Ex,{variant:"warning",children:k.z2[e]?d(k.z2[e]):e},e))}):(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:d("plan.permissionsNone")}),(0,l.jsx)(c.u,{tone:"warning",children:d("permissions.declarationOnlyNotice")})]}),(0,l.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-requirements",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("requirements.heading")}),0===u.requirements.commands.length&&0===u.requirements.networkHosts.length?(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:d("plan.requirementsNone")}):(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[u.requirements.commands.length>0&&(0,l.jsx)(f,{label:d("plan.requirementsCommands"),children:u.requirements.commands.map(e=>{var t;return"".concat(e.name," ").concat(null!=(t=e.versionRange)?t:d("plan.commandAnyVersion"))}).join(", ")}),u.requirements.networkHosts.length>0&&(0,l.jsx)(f,{label:d("plan.requirementsHosts"),children:u.requirements.networkHosts.join(", ")})]})]}),(0,l.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-scripts",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.scriptsHeading")}),0===u.executablePaths.length&&0===u.scriptPaths.length?(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:d("plan.scriptsNone")}):(0,l.jsx)("ul",{className:"space-y-1",children:[...new Set([...u.scriptPaths,...u.executablePaths])].map(e=>(0,l.jsx)("li",{className:"break-all font-mono text-xs text-foreground",children:e},e))})]}),"compatible"!==x.status&&(0,l.jsx)(c.u,{tone:"warning","data-testid":"skill-plan-compatibility-notice",children:d((0,k.e5)(x.messageKey),{range:x.requiredRange,currentVersion:null!=(a=x.currentVersion)?a:""})}),i.warnings.length>0&&(0,l.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-warnings",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.warningsHeading")}),(0,l.jsx)("ul",{className:"space-y-1",children:i.warnings.map(e=>(0,l.jsx)("li",{className:"text-xs text-warning-foreground",children:k.RO[e]?d(k.RO[e]):e},e))})]}),(0,l.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-files",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.filesHeading")}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-plan-stats",children:d("plan.stats",{added:i.stats.added,modified:i.stats.modified,unchanged:i.stats.unchanged,conflicted:i.stats.conflicted,unmanaged:i.stats.unmanaged})}),0===i.files.length?(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:d("plan.filesEmpty")}):(0,l.jsx)("ul",{className:"space-y-2",children:i.files.map(e=>(0,l.jsx)(b,{entry:e},e.path))})]}),i.blockers.length>0&&(0,l.jsxs)("section",{className:"space-y-2","data-testid":"skill-install-blockers",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-danger-foreground",children:d("plan.blockersHeading")}),(0,l.jsx)("ul",{className:"space-y-1",children:i.blockers.map(e=>{var t,s;return(0,l.jsxs)("li",{className:"text-xs text-danger-foreground",children:[e.path&&(0,l.jsx)("span",{className:"mr-1 break-all font-mono",children:e.path}),e.code.startsWith("skills.")?d((0,k.e5)(e.code),{range:x.requiredRange,currentVersion:null!=(t=x.currentVersion)?t:""}):k.KL[e.code]?d(k.KL[e.code]):e.code]},"".concat(e.code,":").concat(null!=(s=e.path)?s:""))})}),(0,l.jsx)(c.u,{tone:"danger",children:d("plan.blockedNotice")})]})]})}function N(e){let{entry:t}=e,s=(0,n.c)("skills"),a=k.Mj[t.disposition],i=k.hJ[t.reason];return(0,l.jsxs)("li",{className:"flex flex-wrap items-center gap-2","data-testid":"skill-uninstall-file-".concat(t.path),children:[(0,l.jsx)(r.Ex,{variant:"remove"===t.disposition?"info":"warning",children:a?s(a):t.disposition}),(0,l.jsx)("span",{className:"break-all font-mono text-xs text-foreground",children:t.path}),i&&(0,l.jsx)("span",{className:"text-xs text-muted-foreground",children:s(i)})]})}function w(e){var t;let{plan:s}=e,a=(0,n.c)("skills"),{target:d,skill:o}=s;return(0,l.jsxs)(r.Zp,{className:"space-y-4","data-testid":"skill-uninstall-plan",children:[(0,l.jsxs)("div",{className:"space-y-1",children:[(0,l.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:a("uninstall.heading")}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:a("uninstall.expiresAt",{timestamp:s.expiresAt})})]}),(0,l.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,l.jsx)(f,{label:a("target.repository"),children:d.repositoryName}),(0,l.jsx)(f,{label:a("target.heading"),children:d.worktreeName}),(0,l.jsx)(f,{label:a("target.branch"),children:null!=(t=d.branch)?t:a("target.branchUnknown")}),(0,l.jsx)(f,{label:a("uninstall.installedVersion"),children:(0,l.jsx)("span",{className:"font-mono text-xs",children:o.version||a("uninstall.versionUnknown")})}),(0,l.jsx)(f,{label:a("plan.installRoot"),children:(0,l.jsx)("span",{className:"break-all font-mono text-xs",children:d.installRoot})}),(0,l.jsx)(f,{label:a("target.workingTree"),children:d.workingTreeDirty?a("target.workingTreeDirty"):a("target.workingTreeClean")})]}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-uninstall-stats",children:a("uninstall.stats",{removable:s.stats.removable,modified:s.stats.modified,missing:s.stats.missing,unknown:s.stats.unknown,irregular:s.stats.irregular})}),(0,l.jsxs)("section",{className:"space-y-2",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("uninstall.removalsHeading")}),0===s.removals.length?(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:a("uninstall.removalsEmpty")}):(0,l.jsx)("ul",{className:"space-y-1.5",children:s.removals.map(e=>(0,l.jsx)(N,{entry:e},e.path))})]}),(0,l.jsxs)("section",{className:"space-y-2",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:a("uninstall.retainedHeading")}),0===s.retained.length?(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:a("uninstall.retainedEmpty")}):(0,l.jsx)("ul",{className:"space-y-1.5",children:s.retained.map(e=>(0,l.jsx)(N,{entry:e},e.path))})]}),(0,l.jsxs)("div",{className:"space-y-2",children:[s.skill.agents.length>0&&(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5","data-testid":"skill-uninstall-agents",children:s.skill.agents.map(e=>(0,l.jsx)(r.Ex,{variant:"gray",children:(0,i.f_)(e.agent)},e.agent))}),(0,l.jsx)(c.u,{tone:"neutral",children:a((0,k.e5)(s.nextActionKey))})]}),s.blockers.length>0&&(0,l.jsxs)("section",{className:"space-y-2","data-testid":"skill-uninstall-blockers",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-danger-foreground",children:a("uninstall.blockersHeading")}),(0,l.jsx)("ul",{className:"space-y-1",children:s.blockers.map(e=>{var t;return(0,l.jsxs)("li",{className:"text-xs text-danger-foreground",children:[e.path&&(0,l.jsx)("span",{className:"mr-1 break-all font-mono",children:e.path}),a((0,k.e5)(e.messageKey))]},"".concat(e.code,":").concat(null!=(t=e.path)?t:""))})})]})]})}var v=s(80130);let R={worktreeId:null,busy:null,installPlan:null,uninstallPlan:null,installResult:null,uninstallResult:null,riskAcknowledged:!1,failure:null};function C(e){return{...e,installPlan:null,uninstallPlan:null,installResult:null,uninstallResult:null,riskAcknowledged:!1,failure:null}}function A(e,t){return"".concat(e,"-").concat(t)}function I(e){let{failure:t}=e,s=(0,n.c)("skills");return(0,l.jsxs)("div",{className:"space-y-2","data-testid":"skill-operation-error",children:[(0,l.jsxs)(c.u,{tone:"danger",children:[(0,l.jsx)("p",{className:"font-medium",children:s("operation.errorHeading")}),(0,l.jsx)("p",{className:"mt-1",children:s((0,k.FW)(t.code))}),(0,l.jsx)("p",{className:"mt-1 break-words",children:s("state.errorCode",{code:t.code})})]}),t.nextActionKey&&(0,l.jsx)(c.u,{tone:"warning",children:s((0,k.e5)(t.nextActionKey))}),t.blockers&&t.blockers.length>0&&(0,l.jsx)("ul",{className:"space-y-1","data-testid":"skill-operation-error-blockers",children:t.blockers.map(e=>{var t;return(0,l.jsxs)("li",{className:"text-xs text-danger-foreground",children:[e.path&&(0,l.jsx)("span",{className:"mr-1 break-all font-mono",children:e.path}),s((0,k.e5)(e.messageKey))]},"".concat(e.code,":").concat(null!=(t=e.path)?t:""))})})]})}function P(e){let{agents:t,skillId:s,version:a}=e,r=(0,n.c)("skills");return 0===t.length?null:(0,l.jsxs)("div",{className:"space-y-1","data-testid":"skill-operation-reload",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:r("operation.reloadHeading")}),(0,l.jsx)("ul",{className:"space-y-1",children:t.map(e=>(0,l.jsx)("li",{className:"text-xs text-muted-foreground",children:r((0,k.e5)(e.messageKey),{agent:(0,i.f_)(e.agent),skillId:s,version:a})},e.agent))})]})}function E(e){var t;let{skillId:s,version:i,blockedReason:u,worktreeId:x,agents:m=[]}=e,g=(0,n.c)("skills"),[h,f]=(0,a.useState)(()=>x?{...R,worktreeId:x}:R),j=(0,a.useCallback)(e=>{f(t=>t.worktreeId===e?t:C({...t,worktreeId:e,busy:null}))},[]);(0,a.useEffect)(()=>{x&&j(x)},[x,j]);let b=(0,a.useCallback)(async()=>{let e=h.worktreeId;if(!e)return;f(e=>({...C(e),busy:"install-plan"}));let t=await (0,v.Q6)(e,s,{version:null!=i?i:void 0});f(e=>({...e,busy:null,installPlan:t.ok?t.data.plan:null,failure:t.ok?null:t.failure}))},[s,h.worktreeId,i]),N=(0,a.useCallback)(async()=>{let e=h.worktreeId,t=h.installPlan;if(!e||!t||t.requiresRiskAcknowledgement&&!h.riskAcknowledged)return;f(e=>({...e,busy:"install-apply",failure:null}));let l=await (0,v.Xi)(e,s,{planToken:t.token,version:t.skill.version,acknowledgeRisk:!!t.requiresRiskAcknowledgement||void 0,idempotencyKey:A("skill-install",t.token)});l.ok&&(0,d.k)(e),f(e=>({...e,busy:null,installPlan:l.ok?null:e.installPlan,installResult:l.ok?l.data:null,failure:l.ok?null:l.failure}))},[s,h.installPlan,h.riskAcknowledged,h.worktreeId]),E=(0,a.useCallback)(async()=>{let e=h.worktreeId;if(!e)return;f(e=>({...C(e),busy:"uninstall-plan"}));let t=await (0,v.hN)(e,s);f(e=>({...e,busy:null,uninstallPlan:t.ok?t.data.plan:null,failure:t.ok?null:t.failure}))},[s,h.worktreeId]),K=(0,a.useCallback)(async()=>{let e=h.worktreeId,t=h.uninstallPlan;if(!e||!t)return;f(e=>({...e,busy:"uninstall-apply",failure:null}));let l=await (0,v.E)(e,s,{planToken:t.token,idempotencyKey:A("skill-uninstall",t.token)});f(e=>({...e,busy:null,uninstallPlan:l.ok?null:e.uninstallPlan,uninstallResult:l.ok?l.data:null,failure:l.ok?null:l.failure}))},[s,h.uninstallPlan,h.worktreeId]),T=(0,a.useCallback)(()=>{f(e=>C(e))},[]),H=null!==h.busy,S=h.installPlan,W=h.uninstallPlan,q=null!=u?u:g(h.worktreeId?"plan.ready":"plan.chooseTarget"),z=null!==S&&S.requiresRiskAcknowledgement&&!h.riskAcknowledged;return(0,l.jsxs)("div",{className:"space-y-3","data-testid":"skill-install-panel",children:[!x&&(0,l.jsx)(p,{selectedWorktreeId:h.worktreeId,onSelect:j,disabled:H}),(0,l.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,l.jsx)(r.$n,{variant:"primary",disabled:H||null!==u||!h.worktreeId,onClick:b,"data-testid":"skill-install-action","aria-describedby":"skill-install-reason",children:g("install-plan"===h.busy?"plan.building":"plan.build")}),(0,l.jsx)(r.$n,{variant:"secondary",disabled:H||!h.worktreeId,onClick:E,"data-testid":"skill-uninstall-action",children:g("uninstall-plan"===h.busy?"uninstall.building":"uninstall.build")})]}),(0,l.jsx)("p",{id:"skill-install-reason",className:"text-sm text-muted-foreground","data-testid":"skill-install-reason",children:q}),m.length>0&&(0,l.jsxs)("div",{className:"space-y-1","data-testid":"skill-install-reload-preview",children:[(0,l.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:g("operation.reloadHeading")}),(0,l.jsx)("ul",{className:"space-y-1",children:m.map(e=>(0,l.jsx)(o.m,{agent:e,variant:"reload"},e.agent))})]}),h.failure&&(0,l.jsx)(I,{failure:h.failure}),S&&(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsx)(y,{plan:S}),S.requiresRiskAcknowledgement&&(0,l.jsxs)(r.Zp,{className:"space-y-3","data-testid":"skill-install-risk-acknowledgement",children:[(0,l.jsx)(c.u,{tone:"danger",children:g((0,k.e5)(null!=(t=S.riskAcknowledgementMessageKey)?t:"skills.plan.highRiskAcknowledgement"))}),(0,l.jsxs)("label",{className:"flex items-start gap-2 text-sm text-foreground",children:[(0,l.jsx)(r.Sc,{checked:h.riskAcknowledged,onCheckedChange:e=>f(t=>({...t,riskAcknowledged:!0===e})),disabled:H,"data-testid":"skill-install-risk-checkbox",className:"mt-0.5"}),(0,l.jsx)("span",{children:g("plan.acknowledgeLabel")})]})]}),(0,l.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,l.jsx)(r.$n,{variant:S.requiresRiskAcknowledgement?"danger":"primary",disabled:H||!S.installable||z,onClick:N,"data-testid":"skill-install-confirm",children:g("install-apply"===h.busy?"plan.confirming":"plan.confirm")}),(0,l.jsx)(r.$n,{variant:"ghost",disabled:H,onClick:T,"data-testid":"skill-install-discard",children:g("plan.discard")})]})]}),W&&(0,l.jsxs)("div",{className:"space-y-3",children:[(0,l.jsx)(w,{plan:W}),(0,l.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,l.jsx)(r.$n,{variant:"danger",disabled:H||!W.removable,onClick:K,"data-testid":"skill-uninstall-confirm",children:g("uninstall-apply"===h.busy?"uninstall.confirming":"uninstall.confirm")}),(0,l.jsx)(r.$n,{variant:"ghost",disabled:H,onClick:T,"data-testid":"skill-uninstall-discard",children:g("plan.discard")})]})]}),h.installResult&&(0,l.jsxs)(r.Zp,{className:"space-y-3","data-testid":"skill-install-result",children:[(0,l.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:g("operation.installedHeading")}),(0,l.jsx)(c.u,{tone:"info",children:g((0,k.e5)(h.installResult.operation.nextActionKey))}),h.installResult.operation.replayed&&(0,l.jsx)(c.u,{tone:"neutral","data-testid":"skill-operation-replayed",children:g("operation.replayNotice")}),h.installResult.install&&"files"in h.installResult.install&&(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:g("operation.filesWritten",{count:h.installResult.install.files.length})}),"reload"in h.installResult&&(0,l.jsx)(P,{agents:h.installResult.reload.agents,skillId:h.installResult.reload.skillId,version:h.installResult.reload.version}),(0,l.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:T,"data-testid":"skill-operation-reset",children:g("operation.startOver")})]}),h.uninstallResult&&(0,l.jsxs)(r.Zp,{className:"space-y-3","data-testid":"skill-uninstall-result",children:[(0,l.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:g("operation.uninstalledHeading")}),(0,l.jsx)(c.u,{tone:"info",children:g((0,k.e5)(h.uninstallResult.operation.nextActionKey))}),h.uninstallResult.operation.replayed&&(0,l.jsx)(c.u,{tone:"neutral","data-testid":"skill-operation-replayed",children:g("operation.replayNotice")}),h.uninstallResult.uninstall&&"removedFiles"in h.uninstallResult.uninstall&&(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:g("operation.filesRemoved",{count:h.uninstallResult.uninstall.removedFiles.length})}),"reload"in h.uninstallResult&&(0,l.jsx)(P,{agents:h.uninstallResult.reload.agents,skillId:h.uninstallResult.reload.skillId,version:h.uninstallResult.reload.version}),(0,l.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:T,"data-testid":"skill-operation-reset",children:g("operation.startOver")})]})]})}},50666:(e,t,s)=>{s.d(t,{Ck:()=>r});var l=s(95155),a=s(12115),n=s(53482);function r(e){let{children:t,as:s="div",className:r=""}=e,i=function e(t){return null==t||"boolean"==typeof t?"":"string"==typeof t?t:"number"==typeof t?String(t):Array.isArray(t)?t.map(e).join(""):a.isValidElement(t)?e(t.props.children):""}(t);if(!i||0===i.trim().length)return(0,l.jsx)(s,{className:r||void 0,children:t});let d="relative group ".concat("span"===s?"block ":"").concat(r).trim();return(0,l.jsxs)(s,{className:d,"data-testid":"code-block-with-copy",children:[t,(0,l.jsx)(n.i,{text:i,className:"absolute right-2 top-2 z-10 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 focus:opacity-100"})]})}},50825:(e,t,s)=>{s.d(t,{m:()=>o});var l=s(95155);s(12115);var a=s(18955),n=s(54014),r=s(37381),i=s(95584);function d(e){let{axis:t,agentName:s}=e,n=(0,a.c)("skills");return(0,l.jsxs)("li",{className:"text-xs text-muted-foreground","data-testid":"skill-agent-axis-".concat(t.axis),children:[(0,l.jsx)("span",{className:"font-medium text-foreground",children:n((0,i.e5)(t.axisKey))}),": ",(0,l.jsx)("span",{"data-testid":"skill-agent-axis-".concat(t.axis,"-").concat(t.outcome),children:n((0,i.e5)(t.outcomeKey))})," — ",n((0,i.e5)(t.evidenceKindKey)),t.limitationKey&&(0,l.jsx)("span",{className:"mt-0.5 block","data-testid":"skill-agent-axis-".concat(t.axis,"-limitation"),children:n((0,i.e5)(t.limitationKey),{agent:s})})]})}function o(e){var t;let{agent:s,variant:o="full"}=e,c=(0,a.c)("skills"),u=(0,n.f_)(s.agent),x=s.measured;return"reload"===o?(0,l.jsx)("li",{className:"text-xs text-muted-foreground","data-testid":"skill-agent-reload-".concat(s.agent),children:c((0,i.e5)(s.reloadKey),{agent:u})}):(0,l.jsxs)("div",{className:"space-y-1","data-testid":"skill-agent-evidence-".concat(s.agent),children:[(0,l.jsx)("p",{className:"text-xs font-medium text-foreground",children:u}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground break-words",children:c("compatibility.declaredLabel",{support:c((0,i.e5)(s.declaredLabelKey))})}),(0,l.jsxs)("p",{className:"text-xs text-muted-foreground break-words",children:[c("compatibility.evidence"),": ",s.evidence]}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground break-words","data-testid":"skill-agent-verification-".concat(s.agent),children:c((0,i.e5)(s.verificationKey))}),x?(0,l.jsxs)("div",{className:"space-y-0.5 border-l-2 border-border pl-2",children:[(0,l.jsx)("p",{className:"text-xs font-medium text-foreground",children:c("compatibility.measuredHeading")}),(0,l.jsxs)("ul",{className:"space-y-0.5",children:[(0,l.jsx)(d,{axis:x.discovery,agentName:u}),(0,l.jsx)(d,{axis:x.invocation,agentName:u})]}),x.testedVersion&&(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:c("compatibility.testedVersion",{agent:u,version:x.testedVersion})}),x.testedDate&&(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:c("compatibility.testedDate",{date:x.testedDate})}),x.discoveryRoots.length>0&&(0,l.jsx)("p",{className:"text-xs text-muted-foreground break-all",children:c("compatibility.discoveryRoots",{roots:x.discoveryRoots.join(", ")})}),x.evidenceSource&&(0,l.jsxs)("p",{className:"text-xs text-muted-foreground break-all",children:[c("compatibility.evidenceSource"),": ",x.evidenceSource]}),x.stale&&(0,l.jsx)(r.u,{tone:"warning","data-testid":"skill-agent-evidence-stale-".concat(s.agent),children:c("compatibility.evidenceStale",{days:null!=(t=x.ageDays)?t:0})})]}):s.skipReasonKey&&(0,l.jsx)("p",{className:"text-xs text-muted-foreground break-words","data-testid":"skill-agent-skip-reason-".concat(s.agent),children:c((0,i.e5)(s.skipReasonKey))}),(0,l.jsxs)("p",{className:"text-xs text-muted-foreground break-words",children:[(0,l.jsx)("span",{className:"font-medium text-foreground",children:c("compatibility.reloadHeading",{agent:u})}),": ",c((0,i.e5)(s.reloadKey),{agent:u})]})]})}},53482:(e,t,s)=>{s.d(t,{i:()=>o});var l=s(95155),a=s(12115),n=s(60322),r=s(9900);function i(){return(0,l.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function d(){return(0,l.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,l.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function o(e){let{text:t,className:s="",label:o="Copy"}=e,[c,u]=(0,a.useState)(!1),x=(0,a.useRef)(null);(0,a.useEffect)(()=>()=>{x.current&&clearTimeout(x.current)},[]);let m=(0,a.useCallback)(async()=>{try{await (0,n.l)(t),u(!0),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>u(!1),r.s7)}catch(e){}},[t]);return(0,l.jsxs)("button",{type:"button",onClick:m,className:"inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ".concat(s),"aria-label":c?"Copied":o,title:c?"Copied!":o,children:[c?(0,l.jsx)(d,{}):(0,l.jsx)(i,{}),(0,l.jsx)("span",{children:c?"Copied":o})]})}},60322:(e,t,s)=>{s.d(t,{l:()=>a});let l=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function a(e){var t;if(!e||0===e.trim().length)return;let s=e.replace(l,"");if(null==(t=navigator.clipboard)?void 0:t.writeText)try{await navigator.clipboard.writeText(s);return}catch(e){}let a=document.createElement("textarea");a.value=s,a.style.position="fixed",a.style.left="-9999px",a.style.top="-9999px",a.style.opacity="0",document.body.appendChild(a),a.focus(),a.select();try{document.execCommand("copy")}finally{document.body.removeChild(a)}}},69352:(e,t,s)=>{s.d(t,{WU:()=>o,d3:()=>c,dj:()=>d,uO:()=>u});var l,a,n,r,i=s(9567);function d(e){return e.startsWith("#")?"anchor":e.startsWith("http://")||e.startsWith("https://")||e.startsWith("mailto:")||e.startsWith("tel:")?"external":"relative"}function o(e,t){if(!t)return null;let s=e.substring(0,e.lastIndexOf("/")+1);try{let e=new URL(s,"file:///"),l=new URL(t,e),a=decodeURIComponent(l.pathname);if(a.startsWith("/")){let e=a.substring(1);if(e.length>0)return e}}catch(e){}return null}function c(e){return!e||0===e.length||e.length>2048||/[\x00-\x1f\x7f]/.test(e)?null:e}let u={...i.j,attributes:{...i.j.attributes,a:[...(null!=(n=null==(l=i.j.attributes)?void 0:l.a)?n:[]).filter(e=>"href"!==e),["href",/^(?:#|mailto:|tel:|https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/]],img:[...(null!=(r=null==(a=i.j.attributes)?void 0:a.img)?r:[]).filter(e=>"src"!==e),["src",/^(?:https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/],"alt","width","height"]}}},74385:(e,t,s)=>{s.d(t,{I:()=>l,k:()=>a});let l="skill:installed";function a(e){window.dispatchEvent(new CustomEvent(l,{detail:{worktreeId:e}}))}},75333:(e,t,s)=>{s.d(t,{Xz:()=>o,qW:()=>c,uE:()=>u});var l=s(95155);s(12115);var a=s(18955),n=s(77801),r=s(28019),i=s(54014),d=s(95584);function o(e){let{status:t,className:s}=e,n=(0,a.c)("skills");return(0,l.jsx)(r.Ex,{variant:d.H$[t],className:s,"data-testid":"skill-compatibility-".concat(t),children:n(d.OV[t])})}function c(e){let{risk:t,className:s}=e,i=(0,a.c)("skills");return(0,l.jsxs)(r.Ex,{variant:d.eK[t],className:s,"data-testid":"skill-declared-risk-".concat(t),children:["high"===t&&(0,l.jsx)(n.A,{size:12,"aria-hidden":"true",className:"mr-1 shrink-0"}),i("risk.declaredLabel",{level:i(d.pP[t])})]})}function u(e){let{agent:t}=e,s=(0,a.c)("skills");return(0,l.jsxs)(r.Ex,{variant:d.Et[t.support],"data-testid":"skill-agent-".concat(t.agent,"-").concat(t.support),children:[(0,i.f_)(t.agent),": ",s((0,d.e5)(t.labelKey))]})}},76246:(e,t,s)=>{s.d(t,{o:()=>l});function l(e){return e?e.split("/").map(encodeURIComponent).join("/"):""}},99648:(e,t,s)=>{s.d(t,{Co:()=>l,Ms:()=>n,td:()=>a});let l=".agents/skills",a=".claude/skills",n="skills.permissions.declarationOnlyNotice"}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6022],{17683:(e,t,a)=>{a.d(t,{$2:()=>d,B1:()=>p,Dq:()=>u,If:()=>c,NP:()=>i,TR:()=>f,wp:()=>l});var s=a(75676);let n="commandmate.worktree.surfaceMode-",r="commandmate.settings.defaultSurfaceMode",l="/api/settings/default-surface-mode";function d(e,t){return"".concat(n).concat(e,"-split-").concat(t)}function i(e){return"".concat(n).concat(e,"-mobile")}function o(e){try{let t=window.localStorage.getItem(e);return(0,s.jg)(t)?t:null}catch(e){return null}}function u(e){var t;return j||(j=!0,b()),null!=(t=o(e))?t:x()}function c(e,t){try{window.localStorage.setItem(e,t)}catch(e){}}function f(e,t){let a=void 0===t?function(){try{var e=window.location.search;if(!e)return null;try{let t=new URLSearchParams(e).get("view");return(0,s.jg)(t)?t:null}catch(e){return null}}catch(e){return null}}():t;return a?(c(e,a),a):u(e)}let g=s.wf,m=new Set;function x(){var e;return null!=(e=o(r))?e:g}function p(e){if(!(0,s.jg)(e))return!1;let t=x()!==e;if(g=e,c(r,e),t)for(let e of m)e();return t}let h=null,v=!1,j=!1;async function b(){return v?x():h||("function"!=typeof fetch?x():h=(async()=>{try{let e=await fetch(l);if(e.ok){let t=await e.json();p(null==t?void 0:t.defaultSurfaceMode),v=!0}}catch(e){}finally{h=null}return x()})())}},46022:(e,t,a)=>{a.d(t,{uN:()=>S,he:()=>x,$8:()=>j});var s=a(95155),n=a(12115),r=a(18955),l=a(5917),d=a(20562),i=a(8803),o=a(65229),u=a(6191),c=a(28019),f=a(54014),g=a(55449);function m(e){return!!e&&"object"==typeof e&&Array.isArray(e.defaultSelectedAgents)&&e.defaultSelectedAgents.length>0&&Array.isArray(e.available)&&e.available.length>0&&"number"==typeof e.minAgents&&"number"==typeof e.maxAgents}function x(){var e;let t=(0,r.c)("common"),[a,x]=(0,n.useState)(null),[p,h]=(0,n.useState)([]),[v,j]=(0,n.useState)(!0),[b,y]=(0,n.useState)("idle"),[N,w]=(0,n.useState)(null),S=(0,n.useCallback)(async()=>{try{let e=await fetch("".concat(g.zk,"?include=installed"));if(!e.ok)throw Error(String(e.status));let t=await e.json();if(!m(t))throw Error("unexpected body");x(t),h(t.defaultSelectedAgents),(0,g.IK)(t.defaultSelectedAgents)}catch(e){w(t("settings.defaultAgents.loadError"))}finally{j(!1)}},[t]);(0,n.useEffect)(()=>{S()},[S]);let A=(0,n.useCallback)(e=>{h(e),y("idle"),w(null)},[]),k=(0,n.useCallback)((e,t)=>{let a=e+t;if(a<0||a>=p.length)return;let s=[...p];[s[e],s[a]]=[s[a],s[e]],A(s)},[p,A]),C=(0,n.useCallback)(async e=>{y("saving"),w(null);try{let s=await fetch(g.zk,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:e})}),n=await s.json().catch(()=>null);if(!s.ok||!m(n)){var a;y("error"),w(null!=(a=null==n?void 0:n.error)?a:t("settings.defaultAgents.saveError"));return}x(e=>({...n,installed:null==e?void 0:e.installed})),h(n.defaultSelectedAgents),(0,g.IK)(n.defaultSelectedAgents),y("saved")}catch(e){y("error"),w(t("settings.defaultAgents.saveError"))}},[t]);if(v)return(0,s.jsx)(c.Zp,{children:(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,s.jsx)(c.y$,{size:"sm"}),t("loadingPage")]})});if(!a)return(0,s.jsx)(c.Zp,{children:(0,s.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"default-agents-load-error",children:null!=N?N:t("settings.defaultAgents.loadError")})});let E=null!=(e=a.installed)?e:[],M=a.available.filter(e=>!p.includes(e)),U=p.length<a.minAgents,T=p.length>a.maxAgents,P=!U&&!T&&"saving"!==b,I=e=>E.includes(e)?(0,s.jsxs)("span",{className:"inline-flex items-center gap-1 rounded bg-success-subtle px-1.5 py-0.5 text-xs text-success-foreground","data-testid":"default-agents-installed-".concat(e),children:[(0,s.jsx)(l.A,{className:"h-3 w-3","aria-hidden":"true"}),t("settings.defaultAgents.installed")]}):(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:t("settings.defaultAgents.notInstalled")});return(0,s.jsx)(c.Zp,{children:(0,s.jsxs)("div",{className:"space-y-4","data-testid":"default-agents-settings",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-sm font-medium text-foreground",children:t("settings.defaultAgents.title")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t("settings.defaultAgents.description")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t("settings.defaultAgents.appliesToNew")})]}),(0,s.jsx)("ul",{className:"space-y-2","data-testid":"default-agents-selected",children:p.map((e,n)=>(0,s.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-border bg-surface px-3 py-2","data-testid":"default-agents-row-".concat(e),children:[(0,s.jsx)("span",{className:"w-6 text-xs text-muted-foreground",children:n+1}),(0,s.jsx)("span",{className:"text-sm text-foreground",children:(0,f.oo)(e)}),0===n&&(0,s.jsx)("span",{className:"rounded bg-info-subtle px-1.5 py-0.5 text-xs text-info-foreground","data-testid":"default-agents-primary-badge",children:t("settings.defaultAgents.primary")}),(0,s.jsx)("span",{className:"ml-auto",children:I(e)}),(0,s.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>k(n,-1),disabled:0===n,"aria-label":t("settings.defaultAgents.moveUp"),"data-testid":"default-agents-up-".concat(e),children:(0,s.jsx)(d.A,{className:"h-4 w-4","aria-hidden":"true"})}),(0,s.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>k(n,1),disabled:n===p.length-1,"aria-label":t("settings.defaultAgents.moveDown"),"data-testid":"default-agents-down-".concat(e),children:(0,s.jsx)(i.A,{className:"h-4 w-4","aria-hidden":"true"})}),(0,s.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>A(p.filter(t=>t!==e)),disabled:p.length<=a.minAgents,"aria-label":t("settings.defaultAgents.remove"),"data-testid":"default-agents-remove-".concat(e),children:(0,s.jsx)(o.A,{className:"h-4 w-4","aria-hidden":"true"})})]},e))}),M.length>0&&(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"mb-2 text-xs text-muted-foreground",children:t("settings.defaultAgents.addLabel")}),(0,s.jsx)("ul",{className:"space-y-2","data-testid":"default-agents-available",children:M.map(e=>(0,s.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-border px-3 py-2",children:[(0,s.jsx)("span",{className:"text-sm text-foreground",children:(0,f.oo)(e)}),(0,s.jsx)("span",{className:"ml-auto",children:I(e)}),(0,s.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>A([...p,e]),disabled:p.length>=a.maxAgents,"aria-label":t("settings.defaultAgents.add"),"data-testid":"default-agents-add-".concat(e),children:(0,s.jsx)(u.A,{className:"h-4 w-4","aria-hidden":"true"})})]},e))})]}),(U||T)&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-agents-range-error",children:t("settings.defaultAgents.range",{min:a.minAgents,max:a.maxAgents})}),N&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-agents-error",children:N}),(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)(c.$n,{size:"sm",onClick:()=>void C(p),disabled:!P,"data-testid":"default-agents-save",children:"saving"===b?t("settings.defaultAgents.saving"):t("settings.defaultAgents.save")}),(0,s.jsx)(c.$n,{size:"sm",variant:"ghost",onClick:()=>void C(null),disabled:!a.configured||"saving"===b,"data-testid":"default-agents-reset",children:t("settings.defaultAgents.reset")}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"default-agents-state",children:"saved"===b?t("settings.defaultAgents.saved"):a.configured?t("settings.defaultAgents.configured"):t("settings.defaultAgents.usingBuiltIn")})]}),a.configured&&(0,s.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"default-agents-builtin",children:t("settings.defaultAgents.builtIn",{agents:a.constantDefault.map(f.oo).join(", ")})})]})})}var p=a(17683),h=a(75676);function v(e){return!!e&&"object"==typeof e&&(0,h.jg)(e.defaultSurfaceMode)&&(0,h.jg)(e.constantDefault)&&Array.isArray(e.available)&&e.available.length>0&&e.available.every(h.jg)}function j(){var e;let t=(0,r.c)("common"),[a,l]=(0,n.useState)(null),[d,i]=(0,n.useState)(!0),[o,u]=(0,n.useState)("idle"),[f,g]=(0,n.useState)(null),m=(0,n.useCallback)(async()=>{try{let e=await fetch(p.wp);if(!e.ok)throw Error(String(e.status));let t=await e.json();if(!v(t))throw Error("unexpected body");l(t),(0,p.B1)(t.defaultSurfaceMode)}catch(e){g({kind:"load"})}finally{i(!1)}},[]);(0,n.useEffect)(()=>{m()},[m]);let x=(0,n.useCallback)(async e=>{u("saving"),g(null),l(t=>t?{...t,defaultSurfaceMode:e}:t);try{let t=await fetch(p.wp,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:e})}),a=await t.json().catch(()=>null);if(!t.ok||!v(a)){u("error"),g({kind:"save",detail:null==a?void 0:a.error}),m();return}l(a),(0,p.B1)(a.defaultSurfaceMode),u("saved")}catch(e){u("error"),g({kind:"save"}),m()}},[m]),h=f?null!=(e=f.detail)?e:t("load"===f.kind?"settings.defaultSurfaceMode.loadError":"settings.defaultSurfaceMode.saveError"):null;return d?(0,s.jsx)(c.Zp,{children:(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,s.jsx)(c.y$,{size:"sm"}),t("loadingPage")]})}):a?(0,s.jsx)(c.Zp,{children:(0,s.jsxs)("div",{className:"space-y-4","data-testid":"default-surface-mode-settings",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-sm font-medium text-foreground",children:t("settings.defaultSurfaceMode.title")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t("settings.defaultSurfaceMode.description")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:t("settings.defaultSurfaceMode.appliesToNew")})]}),(0,s.jsx)("div",{role:"radiogroup","aria-label":t("settings.defaultSurfaceMode.title"),className:"space-y-2","data-selected":a.defaultSurfaceMode,children:a.available.map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 rounded-md border border-border bg-surface px-3 py-2","data-testid":"default-surface-mode-option-".concat(e),children:[(0,s.jsx)("input",{type:"radio",name:"default-surface-mode",value:e,className:"mt-0.5",checked:a.defaultSurfaceMode===e,disabled:"saving"===o,onChange:()=>void x(e),"data-testid":"default-surface-mode-radio-".concat(e)}),(0,s.jsxs)("span",{children:[(0,s.jsx)("span",{className:"block text-sm text-foreground",children:t("settings.defaultSurfaceMode.mode.".concat(e))}),(0,s.jsx)("span",{className:"block text-xs text-muted-foreground",children:t("settings.defaultSurfaceMode.hint.".concat(e))})]})]},e))}),h&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-surface-mode-error",children:h}),(0,s.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"default-surface-mode-state",children:"saving"===o?t("settings.defaultSurfaceMode.saving"):"saved"===o?t("settings.defaultSurfaceMode.saved"):a.configured?t("settings.defaultSurfaceMode.configured"):t("settings.defaultSurfaceMode.usingBuiltIn")})]})}):(0,s.jsx)(c.Zp,{children:(0,s.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"default-surface-mode-load-error",children:null!=h?h:t("settings.defaultSurfaceMode.loadError")})})}var b=a(68695),y=a(52056),N=a(48314);function w(e){let t=e.trim();if(!t)return null;try{let e=JSON.parse(t);if(!e||"object"!=typeof e)return null;let a=e.type;if("plan"!==a&&"output"!==a&&"done"!==a)return null;return e}catch(e){return null}}function S(e){var t,a,l;let{worktreeId:d,instances:i,variant:o="card"}=e,u=(0,r.c)("common"),{versions:g,isLoading:m,loadError:x,run:p,isUpdating:h,update:v}=function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[t,a]=(0,n.useState)(null),[s,r]=(0,n.useState)(!1),[l,d]=(0,n.useState)(e),[i,o]=(0,n.useState)(null),[u,c]=(0,n.useState)(!1),f=(0,n.useRef)(!0);(0,n.useEffect)(()=>(f.current=!0,()=>{f.current=!1}),[]);let g=(0,n.useCallback)(async function(){let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e){d(!0);try{let e=await fetch("/api/agents/versions".concat(t?"?refresh=1":""));if(!e.ok)throw Error(String(e.status));let s=await e.json();if(!(s&&"object"==typeof s&&Array.isArray(s.tools)&&Array.isArray(s.updatable)))throw Error("unexpected body");if(!f.current)return;a(s.tools),r(!1)}catch(e){if(!f.current)return;r(!0)}finally{f.current&&d(!1)}}},[e]);(0,n.useEffect)(()=>{g(!1)},[g]);let m=(0,n.useCallback)(async e=>{if(u)return;c(!0),o({tool:e,command:null,output:"",ok:null,previousVersion:null,installed:null,error:null});let t=e=>{f.current&&o(t=>t?{...t,ok:!1,error:e}:t)};try{var a,s;let n=await fetch("/api/agents/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:e})});if(!n.ok||!n.body){let e=await n.json().catch(()=>null);t(null!=(a=null==e?void 0:e.error)?a:"Request failed (".concat(n.status,")"));return}let r=n.body.getReader(),l=new TextDecoder,d="",i=e=>{f.current&&o(t=>{var a;return t?"plan"===e.type?{...t,command:e.command}:"output"===e.type?{...t,output:t.output+e.text}:{...t,ok:e.ok,previousVersion:e.previousVersion,installed:e.installed,error:null!=(a=e.error)?a:null}:t})};for(;;){let{done:e,value:t}=await r.read();if(e)break;let a=(d+=l.decode(t,{stream:!0})).split("\n");for(let e of(d=null!=(s=a.pop())?s:"",a)){let t=w(e);t&&i(t)}}let u=w(d);u&&i(u)}catch(e){t(e instanceof Error?e.message:String(e))}finally{f.current&&c(!1),await g(!0)}},[u,g]);return{versions:t,isLoading:l,loadError:s,run:i,isUpdating:u,reload:g,update:m}}(!0),[j,S]=(0,n.useState)(0),A=function(e,t,a){let[s,r]=(0,n.useState)({});return(0,n.useEffect)(()=>{if(!e||!t||0===t.length)return void r({});let a=!1;return(async()=>{try{let t=await fetch("/api/worktrees/".concat(e));if(!t.ok)return;let s=await t.json();if(a)return;let n=s.sessionStatusByInstance,l={};for(let[e,t]of Object.entries(null!=n?n:{}))(null==t?void 0:t.isRunning)&&(l[e]=!0);r(l)}catch(e){}})(),()=>{a=!0}},[e,t,a]),s}(d,i,j),[k,C]=(0,n.useState)({}),[E,M]=(0,n.useState)(null),U=(0,n.useRef)(null);(0,n.useEffect)(()=>{U.current&&(U.current.scrollTop=U.current.scrollHeight)},[null==p?void 0:p.output]);let T=(null==p?void 0:p.ok)===!0;(0,n.useEffect)(()=>{T&&S(e=>e+1)},[T]);let P=(0,n.useCallback)(e=>(null!=i?i:[]).filter(t=>t.cliTool===e&&A[t.id]),[i,A]),I=(0,n.useCallback)(async e=>{if(d){M(null);try{let t=new URLSearchParams({cliTool:e.cliTool,instance:e.id}),a=await fetch("/api/worktrees/".concat(d,"/kill-session?").concat(t.toString()),{method:"POST"});if(!a.ok&&404!==a.status)throw Error(String(a.status));C(t=>({...t,[e.id]:!0})),S(e=>e+1)}catch(e){M(u("agentUpdates.restartError"))}}},[d,u]),R=m&&!g?(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,s.jsx)(c.y$,{size:"sm"}),u("loadingPage")]}):x&&!g?(0,s.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"agent-updates-load-error",children:u("agentUpdates.loadError")}):(0,s.jsxs)("div",{className:"space-y-3","data-testid":"agent-updates",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{className:"text-sm font-medium text-foreground",children:u("agentUpdates.title")}),(0,s.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:u("agentUpdates.description")})]}),(0,s.jsx)("ul",{className:"space-y-2","data-testid":"agent-updates-rows",children:(null!=g?g:[]).map(e=>{var t,a;let n=P(e.tool),r=e.updatable&&null!==e.installed;return(0,s.jsxs)("li",{className:"rounded-md border border-border bg-surface px-3 py-2","data-testid":"agent-updates-row-".concat(e.tool),children:[(0,s.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm text-foreground",children:(a=e.tool,(0,f.oo)(a)||a)}),(0,s.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"agent-updates-installed-".concat(e.tool),children:e.installed?u("agentUpdates.installed",{version:e.installed}):u("agentUpdates.notInstalled")}),e.updateAvailable&&(0,s.jsx)("span",{className:"rounded bg-info-subtle px-1.5 py-0.5 text-xs text-info-foreground","data-testid":"agent-updates-available-".concat(e.tool),children:u("agentUpdates.available",{version:null!=(t=e.latestVersion)?t:""})}),e.dismissedInCodex&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"agent-updates-dismissed-".concat(e.tool),children:u("agentUpdates.dismissed")}),r&&(0,s.jsxs)(c.$n,{size:"sm",className:"ml-auto",disabled:h,onClick:()=>void v(e.tool),"data-testid":"agent-updates-update-".concat(e.tool),children:[(0,s.jsx)(b.A,{className:"h-4 w-4","aria-hidden":"true"}),h&&(null==p?void 0:p.tool)===e.tool?u("agentUpdates.updating"):u("agentUpdates.update")]})]}),r&&n.length>0&&(0,s.jsxs)("div",{className:"mt-2 flex items-start gap-1 text-xs text-warning-foreground","data-testid":"agent-updates-restart-warning-".concat(e.tool),children:[(0,s.jsx)(y.A,{className:"mt-0.5 h-3 w-3 shrink-0","aria-hidden":"true"}),(0,s.jsx)("span",{children:u("agentUpdates.restartWarning",{sessions:n.map(e=>e.alias).join(", ")})})]}),r&&0===n.length&&void 0===d&&(0,s.jsx)("p",{className:"mt-2 text-xs text-muted-foreground","data-testid":"agent-updates-restart-notice-".concat(e.tool),children:u("agentUpdates.restartNotice")}),T&&(null==p?void 0:p.tool)===e.tool&&n.map(e=>(0,s.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,s.jsxs)(c.$n,{size:"sm",variant:"ghost",disabled:k[e.id],onClick:()=>void I(e),"data-testid":"agent-updates-restart-".concat(e.id),children:[(0,s.jsx)(N.A,{className:"h-4 w-4","aria-hidden":"true"}),u("agentUpdates.restart",{alias:e.alias})]}),k[e.id]&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:u("agentUpdates.restarted")})]},e.id))]},e.tool)})}),p&&(0,s.jsxs)("div",{className:"space-y-2","data-testid":"agent-updates-run",children:[p.command&&(0,s.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"agent-updates-command",children:u("agentUpdates.running",{command:p.command})}),p.output&&(0,s.jsx)("pre",{ref:U,"data-testid":"agent-updates-output",className:"max-h-48 overflow-auto whitespace-pre-wrap rounded-md bg-terminal-surface p-2 text-xs text-terminal-foreground",children:p.output}),!0===p.ok&&(0,s.jsx)("div",{className:"text-xs text-success-foreground","data-testid":"agent-updates-success",children:u("agentUpdates.succeeded",{from:null!=(t=p.previousVersion)?t:"?",to:null!=(a=p.installed)?a:"?"})}),!1===p.ok&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"agent-updates-failure",children:u("agentUpdates.failed",{error:null!=(l=p.error)?l:""})})]}),E&&(0,s.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"agent-updates-restart-error",children:E})]});return"plain"===o?R:(0,s.jsx)(c.Zp,{children:R})}},75676:(e,t,a)=>{a.d(t,{jg:()=>r,kQ:()=>l,mR:()=>o,mS:()=>i,wf:()=>s});let s="terminal",n=new Set(["terminal","chat"]);function r(e){return"string"==typeof e&&n.has(e)}let l={data:null,messageId:null,visible:!1,answering:!1},d={mode:"split",mobileActivePane:"terminal",leftPaneTab:"history",splitRatio:.5,leftPaneCollapsed:!1,activityBar:{active:"files"},historyPane:{visible:!0,width:25,collapsed:!1}},i={type:null,message:null,retryable:!1,retryCount:0};function o(){return{phase:"idle",prompt:{...l},layout:{...d},error:{...i},messages:[],wsConnected:!1}}}}]);