commandmate 0.42.2 → 0.44.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 (624) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +176 -176
  3. package/.next/app-path-routes-manifest.json +34 -34
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +15 -15
  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.js.nft.json +1 -1
  9. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/agents/versions/route.js.nft.json +1 -1
  11. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/update/route.js +2 -2
  14. package/.next/server/app/api/app/update/route.js.nft.json +1 -1
  15. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/app/update-check/route.js +1 -1
  17. package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
  18. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/capabilities/route.js +1 -1
  23. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/daily-summary/route.js +1 -1
  25. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  26. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  28. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  29. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  31. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  33. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  35. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  37. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  39. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/hooks/agent-event/route.js +103 -1
  41. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  42. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  44. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  45. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  47. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  48. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  50. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/push/escalation/route.js +1 -1
  53. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  54. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  55. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  56. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/push/vapid/route.js +1 -1
  58. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  59. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  61. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  62. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/relays/route.js +1 -1
  64. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  65. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  68. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  70. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  71. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/repositories/clone/route.js +1 -1
  73. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  74. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  76. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/repositories/restore/route.js +1 -1
  78. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  79. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/repositories/route.js +1 -1
  81. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  82. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/repositories/scan/route.js +1 -1
  84. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  85. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/repositories/sync/route.js +1 -1
  87. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  88. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  90. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  92. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  93. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/settings/default-surface-mode/route.js.nft.json +1 -1
  95. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  97. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/skills/[id]/route.js +1 -1
  99. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  100. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/skills/installations/route.js +1 -1
  102. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  103. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/skills/operations/route.js +2 -2
  105. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  106. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/skills/reindex/route.js +1 -1
  108. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  109. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/skills/route.js +1 -1
  111. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  112. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/slash-commands/route.js +1 -1
  114. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  115. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  117. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  119. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  121. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  123. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  124. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  125. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  127. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  130. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  133. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  136. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js.nft.json +1 -1
  138. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  140. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +3 -1
  142. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  143. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  146. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  149. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  151. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  154. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +3 -1
  156. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  157. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  160. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  174. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  178. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  180. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  184. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js.nft.json +1 -1
  208. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  214. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  217. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  219. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +7 -7
  223. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  226. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  228. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
  232. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  235. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  238. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  241. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  243. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  245. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  246. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/route.js +1 -103
  248. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  249. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +3 -1
  251. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  252. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +3 -1
  254. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  255. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -1
  257. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  258. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  261. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -103
  263. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  264. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +103 -1
  266. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  267. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  269. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  270. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  272. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  273. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  275. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  276. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  278. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  279. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  281. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  282. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  284. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  285. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  286. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  287. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  288. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  290. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  291. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  293. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  294. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/terminal/route.js +103 -1
  298. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  301. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  302. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  304. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  305. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  306. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  310. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  311. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  312. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/verify/config/route.js.nft.json +1 -1
  316. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  317. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  319. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  320. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  322. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  323. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  324. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  328. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  329. package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -1
  330. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  331. package/.next/server/app/api/worktrees/route.js +1 -1
  332. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  333. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  334. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  335. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  337. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  338. package/.next/server/app/page_client-reference-manifest.js +1 -1
  339. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  340. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  341. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  342. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  343. package/.next/server/app/sessions/page.js +1 -1
  344. package/.next/server/app/sessions/page.js.nft.json +1 -1
  345. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  346. package/.next/server/app/skills/[skillId]/page.js +1 -1
  347. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  348. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  349. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  350. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  351. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  352. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  353. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  354. package/.next/server/app/worktrees/[id]/page.js +9 -9
  355. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  356. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  357. package/.next/server/app/worktrees/[id]/terminal/page.js +1 -1
  358. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  359. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  360. package/.next/server/app-paths-manifest.json +34 -34
  361. package/.next/server/chunks/1068.js +1 -1
  362. package/.next/server/chunks/1210.js +1 -1
  363. package/.next/server/chunks/1501.js +3 -3
  364. package/.next/server/chunks/2119.js +1 -1
  365. package/.next/server/chunks/22.js +1 -1
  366. package/.next/server/chunks/2283.js +15 -0
  367. package/.next/server/chunks/2328.js +1 -1
  368. package/.next/server/chunks/2404.js +4 -3
  369. package/.next/server/chunks/2445.js +1 -1
  370. package/.next/server/chunks/252.js +1 -1
  371. package/.next/server/chunks/2816.js +1 -1
  372. package/.next/server/chunks/3543.js +1 -1
  373. package/.next/server/chunks/3730.js +1 -1
  374. package/.next/server/chunks/3945.js +1 -1
  375. package/.next/server/chunks/4207.js +3 -3
  376. package/.next/server/chunks/4802.js +1 -1
  377. package/.next/server/chunks/488.js +1 -0
  378. package/.next/server/chunks/5064.js +1 -1
  379. package/.next/server/chunks/5326.js +1 -1
  380. package/.next/server/chunks/5456.js +1 -1
  381. package/.next/server/chunks/5571.js +1 -1
  382. package/.next/server/chunks/5775.js +1 -1
  383. package/.next/server/chunks/611.js +1 -1
  384. package/.next/server/chunks/6130.js +1 -1
  385. package/.next/server/chunks/6285.js +1 -1
  386. package/.next/server/chunks/6401.js +1 -1
  387. package/.next/server/chunks/6474.js +14 -0
  388. package/.next/server/chunks/650.js +1 -1
  389. package/.next/server/chunks/6661.js +1 -1
  390. package/.next/server/chunks/6781.js +1 -1
  391. package/.next/server/chunks/6793.js +1 -1
  392. package/.next/server/chunks/6927.js +1 -0
  393. package/.next/server/chunks/7491.js +3 -0
  394. package/.next/server/chunks/7506.js +1 -1
  395. package/.next/server/chunks/7685.js +1 -1
  396. package/.next/server/chunks/7905.js +1 -1
  397. package/.next/server/chunks/8543.js +1 -1
  398. package/.next/server/chunks/8581.js +2 -2
  399. package/.next/server/chunks/8728.js +2 -2
  400. package/.next/server/chunks/8782.js +1 -0
  401. package/.next/server/chunks/8791.js +1 -1
  402. package/.next/server/chunks/8800.js +4 -3
  403. package/.next/server/chunks/8918.js +108 -6
  404. package/.next/server/chunks/9130.js +3 -3
  405. package/.next/server/chunks/{8052.js → 9353.js} +4 -2
  406. package/.next/server/chunks/9390.js +3 -0
  407. package/.next/server/chunks/9627.js +3 -3
  408. package/.next/server/chunks/967.js +1 -0
  409. package/.next/server/chunks/9731.js +3 -3
  410. package/.next/server/chunks/9882.js +3 -3
  411. package/.next/server/middleware-manifest.json +5 -5
  412. package/.next/server/pages/500.html +1 -1
  413. package/.next/server/pages-manifest.json +1 -1
  414. package/.next/server/server-reference-manifest.json +1 -1
  415. package/.next/server/src/middleware.js +2 -2
  416. package/.next/server/src/middleware.js.map +1 -1
  417. package/.next/static/chunks/2053-85a974ddfe7498fe.js +1 -0
  418. package/.next/static/chunks/{2407-6b9e12c099fa598c.js → 2407-340774f1a24f2b45.js} +1 -1
  419. package/.next/static/chunks/5449-6cb80bab2bd06b79.js +1 -0
  420. package/.next/static/chunks/5521-c358c31f60e5e689.js +1 -0
  421. package/.next/static/chunks/591-0a45801e83f26f24.js +1 -0
  422. package/.next/static/chunks/8165-3853772f6ae1299b.js +1 -0
  423. package/.next/static/chunks/{8566-a6a7c70558927410.js → 8566-aeda747542072ace.js} +1 -1
  424. package/.next/static/chunks/8811-29eaa24237f48558.js +1 -0
  425. package/.next/static/chunks/{9619-22adf5367c4b7080.js → 9619-84aced0846cbe3ac.js} +1 -1
  426. package/.next/static/chunks/app/{layout-5b95e1236dcd9ef6.js → layout-0fc249fb7de75a27.js} +1 -1
  427. package/.next/static/chunks/app/review/page-ff9efae3f86eb840.js +1 -0
  428. package/.next/static/chunks/app/sessions/page-55297155e7bf01b9.js +1 -0
  429. package/.next/static/chunks/app/skills/[skillId]/page-9ee7a381636e60cb.js +1 -0
  430. package/.next/static/chunks/app/skills/page-182e16168b2fc098.js +1 -0
  431. package/.next/static/chunks/app/worktrees/[id]/page-d2103e0c25be83c8.js +1 -0
  432. package/.next/static/css/38070d879efa1371.css +1 -0
  433. package/.next/trace +13 -13
  434. package/README.md +58 -620
  435. package/dist/cli/commands/ask.d.ts.map +1 -1
  436. package/dist/cli/commands/ask.js +23 -149
  437. package/dist/cli/commands/capture.d.ts.map +1 -1
  438. package/dist/cli/commands/capture.js +11 -1
  439. package/dist/cli/commands/docs.d.ts.map +1 -1
  440. package/dist/cli/commands/docs.js +5 -0
  441. package/dist/cli/commands/remote.d.ts +24 -1
  442. package/dist/cli/commands/remote.d.ts.map +1 -1
  443. package/dist/cli/commands/remote.js +155 -6
  444. package/dist/cli/commands/reply.d.ts +40 -0
  445. package/dist/cli/commands/reply.d.ts.map +1 -0
  446. package/dist/cli/commands/reply.js +133 -0
  447. package/dist/cli/commands/respond.d.ts.map +1 -1
  448. package/dist/cli/commands/respond.js +255 -112
  449. package/dist/cli/commands/stop.d.ts.map +1 -1
  450. package/dist/cli/commands/stop.js +53 -1
  451. package/dist/cli/commands/sync.js +3 -3
  452. package/dist/cli/commands/wait.d.ts +5 -0
  453. package/dist/cli/commands/wait.d.ts.map +1 -1
  454. package/dist/cli/commands/wait.js +10 -1
  455. package/dist/cli/docs/agent-operations.d.ts +2 -2
  456. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  457. package/dist/cli/docs/agent-operations.js +13 -0
  458. package/dist/cli/docs/setup-guide.d.ts +14 -0
  459. package/dist/cli/docs/setup-guide.d.ts.map +1 -0
  460. package/dist/cli/docs/setup-guide.js +366 -0
  461. package/dist/cli/program.d.ts.map +1 -1
  462. package/dist/cli/program.js +4 -0
  463. package/dist/cli/types/api-responses.d.ts +11 -0
  464. package/dist/cli/types/api-responses.d.ts.map +1 -1
  465. package/dist/cli/types/index.d.ts +2 -0
  466. package/dist/cli/types/index.d.ts.map +1 -1
  467. package/dist/cli/utils/daemon.d.ts +42 -2
  468. package/dist/cli/utils/daemon.d.ts.map +1 -1
  469. package/dist/cli/utils/daemon.js +222 -40
  470. package/dist/cli/utils/docs-reader.d.ts +6 -0
  471. package/dist/cli/utils/docs-reader.d.ts.map +1 -1
  472. package/dist/cli/utils/docs-reader.js +14 -13
  473. package/dist/cli/utils/npm-runner.d.ts +12 -0
  474. package/dist/cli/utils/npm-runner.d.ts.map +1 -1
  475. package/dist/cli/utils/npm-runner.js +36 -0
  476. package/dist/cli/utils/process-inspect.d.ts +55 -0
  477. package/dist/cli/utils/process-inspect.d.ts.map +1 -0
  478. package/dist/cli/utils/process-inspect.js +214 -0
  479. package/dist/cli/utils/remote-pairing.d.ts +68 -0
  480. package/dist/cli/utils/remote-pairing.d.ts.map +1 -0
  481. package/dist/cli/utils/remote-pairing.js +117 -0
  482. package/dist/cli/utils/reply-ledger.d.ts +95 -0
  483. package/dist/cli/utils/reply-ledger.d.ts.map +1 -0
  484. package/dist/cli/utils/reply-ledger.js +187 -0
  485. package/dist/cli/utils/server-identity.d.ts +50 -0
  486. package/dist/cli/utils/server-identity.d.ts.map +1 -0
  487. package/dist/cli/utils/server-identity.js +118 -0
  488. package/dist/cli/utils/server-ready.d.ts +13 -0
  489. package/dist/cli/utils/server-ready.d.ts.map +1 -1
  490. package/dist/cli/utils/server-ready.js +16 -0
  491. package/dist/lib/cli-tools/copilot-executable.d.ts +9 -0
  492. package/dist/lib/cli-tools/copilot-executable.d.ts.map +1 -1
  493. package/dist/lib/cli-tools/copilot-executable.js +21 -5
  494. package/dist/lib/cli-tools/opencode-executable.d.ts +103 -0
  495. package/dist/lib/cli-tools/opencode-executable.d.ts.map +1 -0
  496. package/dist/lib/cli-tools/opencode-executable.js +179 -0
  497. package/dist/lib/cli-tools/types.d.ts +1 -1
  498. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  499. package/dist/lib/cli-tools/types.js +5 -1
  500. package/dist/lib/detection/tools/verified-against.d.ts +15 -0
  501. package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
  502. package/dist/lib/detection/tools/verified-against.js +17 -1
  503. package/dist/lib/detection/version-probes.d.ts.map +1 -1
  504. package/dist/lib/detection/version-probes.js +14 -1
  505. package/dist/lib/security/pairing-code.d.ts +2 -1
  506. package/dist/lib/security/pairing-code.d.ts.map +1 -1
  507. package/dist/lib/session/tmux-session-surface.d.ts.map +1 -1
  508. package/dist/lib/session/tmux-session-surface.js +1 -1
  509. package/dist/server/locales/en/worktree.json +72 -20
  510. package/dist/server/locales/ja/worktree.json +72 -20
  511. package/dist/server/server.js +23 -0
  512. package/dist/server/src/config/cli-tool-timing-config.js +19 -1
  513. package/dist/server/src/config/detection-evidence-config.js +3 -0
  514. package/dist/server/src/config/image-extensions.js +1 -0
  515. package/dist/server/src/config/schedule-config.js +55 -1
  516. package/dist/server/src/lib/auto-yes-poller.js +69 -4
  517. package/dist/server/src/lib/cli-tools/agent-mode-spec.js +54 -2
  518. package/dist/server/src/lib/cli-tools/base.js +6 -2
  519. package/dist/server/src/lib/cli-tools/command-code-plan-review.js +175 -0
  520. package/dist/server/src/lib/cli-tools/command-code.js +81 -2
  521. package/dist/server/src/lib/cli-tools/composer-spec.js +10 -0
  522. package/dist/server/src/lib/cli-tools/copilot-executable.js +21 -5
  523. package/dist/server/src/lib/cli-tools/graceful-exit.js +15 -1
  524. package/dist/server/src/lib/cli-tools/index.js +3 -1
  525. package/dist/server/src/lib/cli-tools/install-hints.js +9 -3
  526. package/dist/server/src/lib/cli-tools/liveness-spec.js +19 -0
  527. package/dist/server/src/lib/cli-tools/manager.js +2 -0
  528. package/dist/server/src/lib/cli-tools/opencode-executable.js +179 -0
  529. package/dist/server/src/lib/cli-tools/opencode-v2.js +369 -0
  530. package/dist/server/src/lib/cli-tools/opencode.js +29 -5
  531. package/dist/server/src/lib/cli-tools/types.js +5 -1
  532. package/dist/server/src/lib/cmate-cli-tool-parser.js +65 -7
  533. package/dist/server/src/lib/cmate-parser.js +12 -0
  534. package/dist/server/src/lib/cmate-validator.js +13 -1
  535. package/dist/server/src/lib/detection/cli-patterns.js +172 -3
  536. package/dist/server/src/lib/detection/model-info-extractor.js +79 -7
  537. package/dist/server/src/lib/detection/status-detector.js +10 -1
  538. package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +2 -1
  539. package/dist/server/src/lib/detection/tools/codex/detect.js +26 -0
  540. package/dist/server/src/lib/detection/tools/command-code/plan-review-state.js +75 -0
  541. package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +253 -0
  542. package/dist/server/src/lib/detection/tools/opencode-v2/dialog-title.js +48 -0
  543. package/dist/server/src/lib/detection/tools/registry.js +2 -0
  544. package/dist/server/src/lib/detection/tools/run-detection.js +9 -0
  545. package/dist/server/src/lib/detection/tools/verified-against.js +17 -1
  546. package/dist/server/src/lib/detection/upstream-faults.js +8 -0
  547. package/dist/server/src/lib/detection/version-probes.js +14 -1
  548. package/dist/server/src/lib/hooks/agent-session-telemetry.js +36 -1
  549. package/dist/server/src/lib/hooks/sources/claude/transcript.js +33 -1
  550. package/dist/server/src/lib/hooks/sources/opencode/log-diagnosis.js +105 -0
  551. package/dist/server/src/lib/hooks/sources/opencode/source.js +7 -1
  552. package/dist/server/src/lib/hooks/sources/opencode-v2/client.js +422 -0
  553. package/dist/server/src/lib/hooks/sources/opencode-v2/decision-labels.js +24 -0
  554. package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +421 -0
  555. package/dist/server/src/lib/hooks/sources/opencode-v2/ingest.js +271 -0
  556. package/dist/server/src/lib/hooks/sources/opencode-v2/mappers.js +165 -0
  557. package/dist/server/src/lib/hooks/sources/opencode-v2/payloads.js +351 -0
  558. package/dist/server/src/lib/hooks/sources/opencode-v2/ports.js +230 -0
  559. package/dist/server/src/lib/hooks/sources/opencode-v2/reattach.js +149 -0
  560. package/dist/server/src/lib/hooks/sources/opencode-v2/runtime.js +180 -0
  561. package/dist/server/src/lib/hooks/sources/opencode-v2/secrets.js +182 -0
  562. package/dist/server/src/lib/hooks/sources/opencode-v2/source.js +295 -0
  563. package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +455 -0
  564. package/dist/server/src/lib/hooks/sources/opencode-v2/tool-id.js +18 -0
  565. package/dist/server/src/lib/hooks/sources/opencode-v2/usage.js +214 -0
  566. package/dist/server/src/lib/hooks/sources/registry.js +2 -0
  567. package/dist/server/src/lib/hooks/structured-decision-response.js +14 -5
  568. package/dist/server/src/lib/job-executor.js +2 -1
  569. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +15 -1
  570. package/dist/server/src/lib/polling/structured-history-gate.js +19 -5
  571. package/dist/server/src/lib/relay/relay-delivery.js +4 -1
  572. package/dist/server/src/lib/session/agent-event-state.js +24 -0
  573. package/dist/server/src/lib/session/claude-executor.js +186 -12
  574. package/dist/server/src/lib/session/claude-session.js +131 -15
  575. package/dist/server/src/lib/session/current-output-builder.js +27 -3
  576. package/dist/server/src/lib/session/send-user-message.js +4 -0
  577. package/dist/server/src/lib/session/session-start-error.js +20 -0
  578. package/dist/server/src/lib/session/structured-prompt.js +54 -0
  579. package/dist/server/src/lib/session/tmux-session-surface.js +1 -1
  580. package/dist/server/src/lib/skills/agent-state-paths.js +39 -0
  581. package/dist/server/src/lib/skills/compatibility-matrix.js +65 -0
  582. package/dist/server/src/lib/skills/receipt-owned-paths.js +118 -0
  583. package/dist/server/src/lib/tmux/tmux.js +73 -2
  584. package/dist/server/src/lib/verification/env-clean-gate.js +281 -10
  585. package/dist/server/src/lib/verification/gate-runner.js +29 -2
  586. package/dist/server/src/lib/verification/scope-gate.js +58 -4
  587. package/dist/server/src/types/cli-tool-contracts.js +10 -2
  588. package/dist/types/cli-tool-contracts.d.ts +16 -5
  589. package/dist/types/cli-tool-contracts.d.ts.map +1 -1
  590. package/dist/types/cli-tool-contracts.js +10 -2
  591. package/docs/en/architecture.md +722 -0
  592. package/docs/en/user-guide/agents-guide.md +306 -0
  593. package/docs/en/user-guide/cli-setup-guide.md +676 -0
  594. package/docs/en/user-guide/cmate-schedules-guide.md +388 -0
  595. package/docs/en/user-guide/commands-guide.md +467 -0
  596. package/docs/en/user-guide/quick-start.md +231 -0
  597. package/docs/en/user-guide/webapp-guide.md +1020 -0
  598. package/docs/en/user-guide/workflow-examples.md +463 -0
  599. package/package.json +19 -7
  600. package/release-notes/0.43.0.json +130 -0
  601. package/release-notes/0.44.0.json +82 -0
  602. package/scripts/hooks/cmate-agent-event.sh +14 -0
  603. package/scripts/opencode-v2/launch.sh +226 -0
  604. package/.next/server/chunks/1990.js +0 -103
  605. package/.next/server/chunks/3707.js +0 -15
  606. package/.next/server/chunks/4443.js +0 -3
  607. package/.next/server/chunks/5164.js +0 -1
  608. package/.next/server/chunks/5742.js +0 -1
  609. package/.next/server/chunks/7004.js +0 -1
  610. package/.next/server/chunks/8673.js +0 -14
  611. package/.next/static/chunks/2039-117a361f795ddc4b.js +0 -1
  612. package/.next/static/chunks/2053-611dd27d42721b79.js +0 -1
  613. package/.next/static/chunks/3778-56f41fc2cecb8c43.js +0 -1
  614. package/.next/static/chunks/5449-550bd273dccc3ae4.js +0 -1
  615. package/.next/static/chunks/7705-2a2936551b0cf9a3.js +0 -1
  616. package/.next/static/chunks/8165-934ee7ff3b4ddfd4.js +0 -1
  617. package/.next/static/chunks/app/review/page-30616daa1dc595c2.js +0 -1
  618. package/.next/static/chunks/app/sessions/page-1a8ba152bbcb9efb.js +0 -1
  619. package/.next/static/chunks/app/skills/[skillId]/page-ab7e432b69fccb3b.js +0 -1
  620. package/.next/static/chunks/app/skills/page-56b4fa11223e0cbd.js +0 -1
  621. package/.next/static/chunks/app/worktrees/[id]/page-59f5337e031518c6.js +0 -1
  622. package/.next/static/css/b3f433d52b8ed5c8.css +0 -1
  623. /package/.next/static/{MXZXkcFAnpELZnxxHB4iJ → wu7SUiHTirFcrpo5teyZ3}/_buildManifest.js +0 -0
  624. /package/.next/static/{MXZXkcFAnpELZnxxHB4iJ → wu7SUiHTirFcrpo5teyZ3}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
- "use strict";exports.id=9130,exports.ids=[9130],exports.modules={129:(a,b,c)=>{c.d(b,{VM:()=>ag});var d=c(2466),e=c(13287),f=c(62887),g=c(43252),h=c(66101),i=c(57510),j=c(38367),k=c(34257),l=c(70997);let m={};function n(a){return"allowOnce"!==a.kind?m:{hookSpecificOutput:{hookEventName:e.l9,decision:{behavior:"allow"}}}}let o=(0,h.UB)({cliToolId:l.v,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:f.b0,configScope:"per-instance",decisionTimeoutSeconds:g.sI,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},mappers:[...(0,i.mJ)(j.WK),k.Bo],nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractModel:k._P,extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:n,prepareLaunch:({target:a,executablePath:b})=>{let c=(0,g.D2)(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:a.cliToolId}),d=(0,g.q)()&&c!==b?(0,g.iR)({worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:a.cliToolId}):null;return{command:c,settingsPath:d,env:{}}}});var p=c(92196),q=c(21758),r=c(54633);let s={},t=(0,h.UB)({cliToolId:r.V,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["stop","session_start","session_end","user_prompt_submit","post_tool_use"],configScope:"global-singleton",decisionTimeoutSeconds:q.TV,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!0,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:null,stopReportsSelfResume:!1},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:function(a){if(!(0,i.Qd)(a)||a.hook_event_name!==q.cN)return null;let b=(0,i.O2)(a,"tool_name");if(!b||b.length>e.vy)return null;let c=(0,p.mw)(a.tool_input);return c?{toolName:b,toolInput:c.toolInput,toolInputNormalization:c.normalization,promptId:null,sessionId:(0,i.O2)(a,"session_id"),permissionMode:null,permissionSuggestions:null}:null},parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{hookSpecificOutput:{hookEventName:q.cN,permissionDecision:"allow"}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:q.cN,permissionDecision:"deny",permissionDecisionReason:a.message??"denied by CommandMate"}}:s},prepareLaunch:({target:a,executablePath:b})=>(0,q.Rv)(b,a)});var u=c(15194);let v={ToolPermission:"permission_prompt"};var w=c(33873),x=c(72626),y=c(45567),z=c(29021),A=c(7956);function B(a){if(!(0,z.existsSync)(a))return null;try{let b=JSON.parse((0,z.readFileSync)(a,"utf8"));return(0,i.Qd)(b)?b:null}catch{return null}}function C(a,b){if((0,A.Mb)(a))throw Error(`Refusing to write inside a virtual filesystem: ${a} (a recursive mkdir under /proc, /sys or /dev never returns on Linux; Issue #1774)`);(0,z.mkdirSync)((0,w.dirname)(a),{recursive:!0,mode:448}),(0,z.writeFileSync)(a,`${JSON.stringify(b,null,2)}
2
- `,{mode:384})}var D=c(77904);let E=(0,x.h)("lib/hooks/sources/gemini/settings-generator"),F=1e3*g.W6,G=[["SessionStart","session_start"],["BeforeAgent","user_prompt_submit"],["AfterAgent","stop"],["Notification","notification"],["SessionEnd","session_end"]];function H(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${D.o}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let I=(0,h.UB)({cliToolId:D.o,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","user_prompt_submit","stop","notification","session_end"],configScope:"per-worktree",decisionTimeoutSeconds:0,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:null,stopReportsSelfResume:!1},mappers:(0,i.mJ)({SessionStart:"session_start",SessionEnd:"session_end",BeforeAgent:"user_prompt_submit",AfterAgent:"stop",BeforeTool:"pre_tool_use",AfterTool:"post_tool_use",Notification:"notification"}),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:[],extractDetail:function(a,b){if("notification"!==a)return(0,j.Jp)(a,b);let c=(0,i.O2)(b,"notification_type");return null===c?null:(0,i.Wv)(v[c]??c)},parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:()=>({}),prepareLaunch:function({target:a,executablePath:b,worktreePath:c}){let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:D.o},e=(0,u.n6)(a.instanceId??D.o)?function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return E.warn("gemini-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,w.join)(a,".gemini","settings.json");try{let a=B(d),e=function(a,b){let c={};for(let[e,f]of G){var d;c[e]=[{hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",D.o,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:F}]}]}return c}(c,b);return C(d,function(a,b,c){let d=(0,i.Qd)(a?.hooks)?a.hooks:{},e={};for(let[a,b]of Object.entries(d)){if(!Array.isArray(b)){e[a]=b;continue}let d=b.filter(a=>!function(a,b){if(!(0,i.Qd)(a))return!1;let c=a.hooks;return Array.isArray(c)?c.length>0&&c.every(a=>(0,i.Qd)(a)&&"string"==typeof a.command&&H(a.command,b)):"string"==typeof a.command&&H(a.command,b)}(a,c));e[a]=d.length===b.length?b:d}for(let[a,c]of Object.entries(b)){let b=e[a];e[a]=Array.isArray(b)?[...b,...c]:[...c]}return{...a,hooks:e}}(a,e,b.worktreeId)),d}catch(a){return E.warn("gemini-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),null}}(c,d):null,{command:f,env:h}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,u.n6)((0,g.g5)(b)))return E.warn("gemini-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:D.o},c);return{command:(0,g.ZL)(a),env:{[y.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}});var J=c(21820),K=c(76835);let L=(0,x.h)("lib/hooks/sources/antigravity/hooks-config"),M=[["SessionStart","session_start"],["PostToolUse","post_tool_use"],["Stop","stop"]],N="CM_PERMISSION_HOOK_URL",O=g.sI,P=new Set(["PreToolUse","PostToolUse"]);function Q(a,b){return[(0,g.ZL)(a),"--tool",K.F,"--event",b,"--stdin-json"].join(" ")}let R="fullyIdle",S={decision:"ask"},T=(0,h.UB)({cliToolId:K.F,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","post_tool_use","stop"],configScope:"global-singleton",decisionTimeoutSeconds:O,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!0},mappers:[],nativeEventNameFields:[],conversationIdFields:["conversationId"],toolCallIdFields:[],modelFields:["modelName"],extractDetail:function(a,b){return"pre_tool_use"===a||"post_tool_use"===a?(0,i.Wv)((0,i.NZ)(b,["toolCall","name"])):"stop"===a&&!1===b[R]?f.HV:null},parsePermissionRequest:function(a){if(!(0,i.Qd)(a))return null;let b=a.toolCall;if(!(0,i.Qd)(b))return null;let c=(0,i.O2)(b,"name");return c&&!(c.length>e.vy)&&(0,i.Qd)(b.args)?{toolName:c,toolInput:b.args,promptId:null,sessionId:(0,i.O2)(a,"conversationId"),permissionMode:null,permissionSuggestions:null}:null},parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{decision:"allow"}:"deny"===a.kind?{decision:"deny",reason:a.message??""}:{...S}},prepareLaunch:({target:a,executablePath:b})=>{let c=function(a={}){if(!(0,g.q)())return null;let b=(0,g.Os)();if(!b)return L.warn("antigravity-hook-relay-missing"),null;let c=function(a={}){return a.path??(0,w.join)((0,J.homedir)(),".gemini","config","hooks.json")}(a);try{var d;let a=B(c);return C(c,(d=function(a){let b={};for(let[c,d]of M){let e={type:"command",command:"stop"===d?function(a){let b=`'"${R}":false'`;return`p=$(cat); set --; case "$(printf '%s' "$p" | tr -d ' \\t\\r\\n')" in *${b}*) set -- --detail ${f.HV} ;; esac; printf '%s' "$p" | ${Q(a,"stop")} "$@"`}(a):Q(a,d),timeout:g.W6};b[c]=P.has(c)?[{matcher:"*",hooks:[e]}]:[e]}return b.PreToolUse=[{matcher:"*",hooks:[{type:"command",command:function(){let a=`"$${N}"`,b=`printf '%s' ${(0,g.ZL)('{"decision":"ask"}')}`;return`if [ -z "\${${N}:-}" ]; then cat >/dev/null; ${b}; exit 0; fi; set -- -sS -f -m 4 -X POST -H 'Content-Type: application/json'; if [ -n "\${${g.XE}:-}" ]; then set -- "$@" -H "Authorization: Bearer $${g.XE}"; fi; out=$(curl "$@" --data-binary @- ${a} 2>/dev/null); case "$out" in '{'*'"decision"'*) printf '%s' "$out" ;; *) ${b} ;; esac`}(),timeout:g.sI}]}],b}(b),{...a,commandmate:d})),c}catch(a){return L.warn("antigravity-hooks-config-write-failed",{error:a instanceof Error?a.message:String(a)}),null}}(),{command:d,env:e}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,u.n6)((0,g.g5)(b)))return L.warn("antigravity-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d={...b,cliToolId:K.F};return{command:(0,g.ZL)(a),env:{[y.ZM]:(0,g.xM)(d,c),[N]:(0,g.O$)(d,c)}}}(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:K.F});return{command:d,settingsPath:c,env:e}}});var U=c(99432),V=c(2734);let W={},X=(0,h.UB)({cliToolId:V.c,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:U.JD,configScope:"global-singleton",decisionTimeoutSeconds:5,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{hookSpecificOutput:{hookEventName:U.l1,decision:{behavior:"allow"}}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:U.l1,decision:{behavior:"deny",message:a.message??""}}}:W},prepareLaunch:({target:a,executablePath:b})=>(0,U.S9)(b,a)});var Y=c(85965),Z=c(28862);let $=(0,x.h)("lib/hooks/sources/command-code/hooks-config"),_=[["SessionStart","session_start"],["PreToolUse","pre_tool_use"],["PostToolUse","post_tool_use"],["Stop","stop"]],aa=g.W6;function ab(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${Z.k}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let ac=(0,h.UB)({cliToolId:Z.k,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","pre_tool_use","post_tool_use","stop"],configScope:"per-worktree",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},mappers:(0,i.mJ)({SessionStart:"session_start",PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Stop:"stop"}),nativeEventNameFields:["hook_event_name"],conversationIdFields:["session_id"],toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:function(a){return{}},prepareLaunch:({target:a,executablePath:b,worktreePath:c})=>{let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:Z.k},e=function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return $.warn("command-code-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,w.join)(a,".commandcode","settings.local.json");try{let a=B(d),e=function(a,b){let c={};for(let[e,f]of _){var d;c[e]=[{matcher:"",hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",Z.k,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:aa}]}]}return c}(c,b);return C(d,function(a,b,c){let d=(0,i.Qd)(a?.hooks)?a.hooks:{},e={};for(let[a,b]of Object.entries(d)){if(!Array.isArray(b)){e[a]=b;continue}let d=b.filter(a=>!function(a,b){if(!(0,i.Qd)(a))return!1;let c=a.hooks;return Array.isArray(c)?c.length>0&&c.every(a=>(0,i.Qd)(a)&&"string"==typeof a.command&&ab(a.command,b)):"string"==typeof a.command&&ab(a.command,b)}(a,c));e[a]=d.length===b.length?b:d}for(let[a,c]of Object.entries(b)){let b=e[a];e[a]=Array.isArray(b)?[...b,...c]:[...c]}return{...a,hooks:e}}(a,e,b.worktreeId)),d}catch(a){return $.warn("command-code-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),null}}(c,d),{command:f,env:h}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,u.n6)((0,g.g5)(b)))return $.warn("command-code-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:Z.k},c);return{command:(0,g.ZL)(a),env:{[y.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}}),ad=globalThis.__agentEventSources??=new Map,ae=globalThis.__agentEventLegacySources??=new Map;function af(a){ad.set(a.cliToolId,a),ae.delete(a.cliToolId)}function ag(a){let b=ad.get(a);if(b)return b;let c=ae.get(a);if(c)return c;let f=(0,h.UB)({cliToolId:a,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:[],configScope:"none",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:null,stopReportsSelfResume:!1},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:n,prepareLaunch:({executablePath:a})=>({command:a,settingsPath:null,env:{}})});return ae.set(a,f),f}af(o),af(t),af(I),af(T),af(X),af(Y.cC),af(ac)},2669:(a,b,c)=>{c.d(b,{JI:()=>m,M7:()=>d,Sr:()=>h,Zf:()=>f,c7:()=>e,lU:()=>j,mR:()=>i,su:()=>l,wQ:()=>k});let d="SESSION_STARTING",e="SESSION_START_FAILED",f="SESSION_START_UNAVAILABLE",g=[d,e];class h extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}class i extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}class j extends Error{constructor(a,b=`${a} is not installed. Please install it first.`){super(b),this.toolName=a,this.code=f,this.name="SessionStartUnavailableError"}}function k(a){return n(a)===d}function l(a){let b=n(a);return void 0!==b&&g.includes(b)}function m(a){return n(a)===f}function n(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},2734:(a,b,c)=>{c.d(b,{c:()=>d});let d="codex"},21758:(a,b,c)=>{c.d(b,{Rv:()=>J,TV:()=>r,cN:()=>w,nL:()=>p});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(15194),i=c(87447),j=c(43252),k=c(66007),l=c(72626),m=c(45567),n=c(54633);let o=(0,l.h)("lib/hooks/sources/copilot/hook-settings"),p="gh copilot",q="cmate-copilot-agent-hooks",r=10,s="CM_AGENT_WORKTREE_ID",t="CM_AGENT_INSTANCE_ID",u="CM_AUTH_TOKEN",v=m.wS,w="PreToolUse",x=[["SessionStart","session_start"],["UserPromptSubmit","user_prompt_submit"],["PostToolUse","post_tool_use"],["Stop","stop"],["SessionEnd","session_end"]];function y(a=""){return`: ${q}; if [ -z "\${${s}:-}" ]; then cat >/dev/null; ${a}exit 0; fi; case "$${v}" in ''|*[!0-9]*) cat >/dev/null; ${a}exit 0;; esac; `}let z=`"\${${t}:-${n.V}}"`,A=`"$${s}"`;function B(){return`set -- -fsS -m 4 -X POST -H 'Content-Type: application/json'; if [ -n "\${${u}:-}" ]; then set -- "$@" -H "Authorization: Bearer $${u}"; fi; `}function C(a){return`${(0,j.ZL)("http://127.0.0.1:")}"$${v}"${(0,j.ZL)(a)}`}function D(a){return`${C(`${a}?tool=${n.V}&worktreeId=`)}${A}'&instanceId='${z}`}function E(a){return`rc=$?; printf '%s\\n' "${q}: ${a} rc=$rc" >&2`}function F(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function G(a){return F(a)&&"string"==typeof a.command&&a.command.includes(q)}function H(a){try{return(0,d.readFileSync)(a,"utf8")}catch(a){if("ENOENT"===a.code)return"";throw a}}class I extends Error{constructor(a){super(`copilot config.json still has a "hooks" key (${a}); copilot migrates it over settings.json at startup, so CommandMate is not writing hooks this launch`),this.configPath=a,this.name="CopilotConfigHooksShadowError"}}function J(a,b,c={}){let l={command:a,settingsPath:null,env:{}};if("0"===process.env.CM_AGENT_HOOKS_INJECT)return l;let m=b.instanceId??n.V;if(!(0,h.n6)(m)||!(0,k.h6)(b.worktreeId))return o.warn("copilot-hook-invalid-correlation-key",{worktreeId:b.worktreeId}),l;try{let h=function(a={}){let b=a.settingsPath??(0,f.join)(function(){let a=(0,f.join)((0,e.homedir)(),".copilot");return(0,g.T)(process.env.COPILOT_HOME,a,"COPILOT_HOME")}(),"settings.json"),c=a.configPath??(0,f.join)((0,f.dirname)(b),"config.json"),h=function(a){let b,c=H(a);if(""===c.trim())return"absent";try{b=JSON.parse(function(a){let b="",c=!1,d=!1;for(let e=0;e<a.length;e+=1){let f=a[e];if(c){b+=f,d?d=!1:"\\"===f?d=!0:'"'===f&&(c=!1);continue}if('"'===f){c=!0,b+=f;continue}if("/"===f&&"/"===a[e+1]){for(;e<a.length&&"\n"!==a[e];)e+=1;b+="\n";continue}if("/"===f&&"*"===a[e+1]){for(e+=2;e<a.length&&("*"!==a[e]||"/"!==a[e+1]);)e+=1;e+=1;continue}b+=f}return b}(c))}catch{return"unreadable"}if(!F(b))return"unreadable";let d=b.hooks;return null==d||F(d)&&0===Object.keys(d).length||Array.isArray(d)&&0===d.length?"absent":"present"}(c);if("present"===h)throw new I(c);return"unreadable"===h&&o.warn("copilot-config-json-unreadable",{configPath:c}),(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0,mode:448}),function(a,b){let c,e=(0,f.join)(a,".cmate.lock");try{c=(0,d.openSync)(e,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;let a=Date.now()-(0,d.statSync)(e).mtimeMs;if(a<1e4)throw Error(`copilot settings.json is locked by another CommandMate server (${e})`);o.warn("copilot-hook-settings-lock-stale",{lockPath:e,heldForMs:a}),(0,d.unlinkSync)(e),c=(0,d.openSync)(e,"wx",384)}try{(0,d.writeSync)(c,`${process.pid}
1
+ "use strict";exports.id=9130,exports.ids=[9130],exports.modules={129:(a,b,c)=>{c.d(b,{VM:()=>ah});var d=c(2466),e=c(13287),f=c(62887),g=c(43252),h=c(66101),i=c(57510),j=c(38367),k=c(34257),l=c(70997);let m={};function n(a){return"allowOnce"!==a.kind?m:{hookSpecificOutput:{hookEventName:e.l9,decision:{behavior:"allow"}}}}let o=(0,h.UB)({cliToolId:l.v,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:f.b0,configScope:"per-instance",decisionTimeoutSeconds:g.sI,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},mappers:[...(0,i.mJ)(j.WK),k.Bo],nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractModel:k._P,extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:n,prepareLaunch:({target:a,executablePath:b})=>{let c=(0,g.D2)(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:a.cliToolId}),d=(0,g.q)()&&c!==b?(0,g.iR)({worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:a.cliToolId}):null;return{command:c,settingsPath:d,env:{}}}});var p=c(92196),q=c(21758),r=c(54633);let s={},t=(0,h.UB)({cliToolId:r.V,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["stop","session_start","session_end","user_prompt_submit","post_tool_use"],configScope:"global-singleton",decisionTimeoutSeconds:q.TV,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!0,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:null,stopReportsSelfResume:!1},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:function(a){if(!(0,i.Qd)(a)||a.hook_event_name!==q.cN)return null;let b=(0,i.O2)(a,"tool_name");if(!b||b.length>e.vy)return null;let c=(0,p.mw)(a.tool_input);return c?{toolName:b,toolInput:c.toolInput,toolInputNormalization:c.normalization,promptId:null,sessionId:(0,i.O2)(a,"session_id"),permissionMode:null,permissionSuggestions:null}:null},parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{hookSpecificOutput:{hookEventName:q.cN,permissionDecision:"allow"}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:q.cN,permissionDecision:"deny",permissionDecisionReason:a.message??"denied by CommandMate"}}:s},prepareLaunch:({target:a,executablePath:b})=>(0,q.Rv)(b,a)});var u=c(15194);let v={ToolPermission:"permission_prompt"};var w=c(33873),x=c(72626),y=c(45567),z=c(29021),A=c(7956);function B(a){if(!(0,z.existsSync)(a))return null;try{let b=JSON.parse((0,z.readFileSync)(a,"utf8"));return(0,i.Qd)(b)?b:null}catch{return null}}function C(a,b){if((0,A.Mb)(a))throw Error(`Refusing to write inside a virtual filesystem: ${a} (a recursive mkdir under /proc, /sys or /dev never returns on Linux; Issue #1774)`);(0,z.mkdirSync)((0,w.dirname)(a),{recursive:!0,mode:448}),(0,z.writeFileSync)(a,`${JSON.stringify(b,null,2)}
2
+ `,{mode:384})}var D=c(77904);let E=(0,x.h)("lib/hooks/sources/gemini/settings-generator"),F=1e3*g.W6,G=[["SessionStart","session_start"],["BeforeAgent","user_prompt_submit"],["AfterAgent","stop"],["Notification","notification"],["SessionEnd","session_end"]];function H(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${D.o}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let I=(0,h.UB)({cliToolId:D.o,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","user_prompt_submit","stop","notification","session_end"],configScope:"per-worktree",decisionTimeoutSeconds:0,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:null,stopReportsSelfResume:!1},mappers:(0,i.mJ)({SessionStart:"session_start",SessionEnd:"session_end",BeforeAgent:"user_prompt_submit",AfterAgent:"stop",BeforeTool:"pre_tool_use",AfterTool:"post_tool_use",Notification:"notification"}),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:[],extractDetail:function(a,b){if("notification"!==a)return(0,j.Jp)(a,b);let c=(0,i.O2)(b,"notification_type");return null===c?null:(0,i.Wv)(v[c]??c)},parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:()=>({}),prepareLaunch:function({target:a,executablePath:b,worktreePath:c}){let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:D.o},e=(0,u.n6)(a.instanceId??D.o)?function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return E.warn("gemini-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,w.join)(a,".gemini","settings.json");try{let a=B(d),e=function(a,b){let c={};for(let[e,f]of G){var d;c[e]=[{hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",D.o,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:F}]}]}return c}(c,b);return C(d,function(a,b,c){let d=(0,i.Qd)(a?.hooks)?a.hooks:{},e={};for(let[a,b]of Object.entries(d)){if(!Array.isArray(b)){e[a]=b;continue}let d=b.filter(a=>!function(a,b){if(!(0,i.Qd)(a))return!1;let c=a.hooks;return Array.isArray(c)?c.length>0&&c.every(a=>(0,i.Qd)(a)&&"string"==typeof a.command&&H(a.command,b)):"string"==typeof a.command&&H(a.command,b)}(a,c));e[a]=d.length===b.length?b:d}for(let[a,c]of Object.entries(b)){let b=e[a];e[a]=Array.isArray(b)?[...b,...c]:[...c]}return{...a,hooks:e}}(a,e,b.worktreeId)),d}catch(a){return E.warn("gemini-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),null}}(c,d):null,{command:f,env:h}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,u.n6)((0,g.g5)(b)))return E.warn("gemini-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:D.o},c);return{command:(0,g.ZL)(a),env:{[y.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}});var J=c(21820),K=c(76835);let L=(0,x.h)("lib/hooks/sources/antigravity/hooks-config"),M=[["SessionStart","session_start"],["PostToolUse","post_tool_use"],["Stop","stop"]],N="CM_PERMISSION_HOOK_URL",O=g.sI,P=new Set(["PreToolUse","PostToolUse"]);function Q(a,b){return[(0,g.ZL)(a),"--tool",K.F,"--event",b,"--stdin-json"].join(" ")}let R="fullyIdle",S={decision:"ask"},T=(0,h.UB)({cliToolId:K.F,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","post_tool_use","stop"],configScope:"global-singleton",decisionTimeoutSeconds:O,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!0},mappers:[],nativeEventNameFields:[],conversationIdFields:["conversationId"],toolCallIdFields:[],modelFields:["modelName"],extractDetail:function(a,b){return"pre_tool_use"===a||"post_tool_use"===a?(0,i.Wv)((0,i.NZ)(b,["toolCall","name"])):"stop"===a&&!1===b[R]?f.HV:null},parsePermissionRequest:function(a){if(!(0,i.Qd)(a))return null;let b=a.toolCall;if(!(0,i.Qd)(b))return null;let c=(0,i.O2)(b,"name");return c&&!(c.length>e.vy)&&(0,i.Qd)(b.args)?{toolName:c,toolInput:b.args,promptId:null,sessionId:(0,i.O2)(a,"conversationId"),permissionMode:null,permissionSuggestions:null}:null},parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{decision:"allow"}:"deny"===a.kind?{decision:"deny",reason:a.message??""}:{...S}},prepareLaunch:({target:a,executablePath:b})=>{let c=function(a={}){if(!(0,g.q)())return null;let b=(0,g.Os)();if(!b)return L.warn("antigravity-hook-relay-missing"),null;let c=function(a={}){return a.path??(0,w.join)((0,J.homedir)(),".gemini","config","hooks.json")}(a);try{var d;let a=B(c);return C(c,(d=function(a){let b={};for(let[c,d]of M){let e={type:"command",command:"stop"===d?function(a){let b=`'"${R}":false'`;return`p=$(cat); set --; case "$(printf '%s' "$p" | tr -d ' \\t\\r\\n')" in *${b}*) set -- --detail ${f.HV} ;; esac; printf '%s' "$p" | ${Q(a,"stop")} "$@"`}(a):Q(a,d),timeout:g.W6};b[c]=P.has(c)?[{matcher:"*",hooks:[e]}]:[e]}return b.PreToolUse=[{matcher:"*",hooks:[{type:"command",command:function(){let a=`"$${N}"`,b=`printf '%s' ${(0,g.ZL)('{"decision":"ask"}')}`;return`if [ -z "\${${N}:-}" ]; then cat >/dev/null; ${b}; exit 0; fi; set -- -sS -f -m 4 -X POST -H 'Content-Type: application/json'; if [ -n "\${${g.XE}:-}" ]; then set -- "$@" -H "Authorization: Bearer $${g.XE}"; fi; out=$(curl "$@" --data-binary @- ${a} 2>/dev/null); case "$out" in '{'*'"decision"'*) printf '%s' "$out" ;; *) ${b} ;; esac`}(),timeout:g.sI}]}],b}(b),{...a,commandmate:d})),c}catch(a){return L.warn("antigravity-hooks-config-write-failed",{error:a instanceof Error?a.message:String(a)}),null}}(),{command:d,env:e}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,u.n6)((0,g.g5)(b)))return L.warn("antigravity-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d={...b,cliToolId:K.F};return{command:(0,g.ZL)(a),env:{[y.ZM]:(0,g.xM)(d,c),[N]:(0,g.O$)(d,c)}}}(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:K.F});return{command:d,settingsPath:c,env:e}}});var U=c(99432),V=c(2734);let W={},X=(0,h.UB)({cliToolId:V.c,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:U.JD,configScope:"global-singleton",decisionTimeoutSeconds:5,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{hookSpecificOutput:{hookEventName:U.l1,decision:{behavior:"allow"}}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:U.l1,decision:{behavior:"deny",message:a.message??""}}}:W},prepareLaunch:({target:a,executablePath:b})=>(0,U.S9)(b,a)});var Y=c(85965),Z=c(28862);let $=(0,x.h)("lib/hooks/sources/command-code/hooks-config"),_=[["SessionStart","session_start"],["PreToolUse","pre_tool_use"],["PostToolUse","post_tool_use"],["Stop","stop"]],aa=g.W6;function ab(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${Z.k}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let ac=(0,h.UB)({cliToolId:Z.k,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","pre_tool_use","post_tool_use","stop"],configScope:"per-worktree",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},mappers:(0,i.mJ)({SessionStart:"session_start",PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Stop:"stop"}),nativeEventNameFields:["hook_event_name"],conversationIdFields:["session_id"],toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:function(a){return{}},prepareLaunch:({target:a,executablePath:b,worktreePath:c})=>{let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:Z.k},e=function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return $.warn("command-code-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,w.join)(a,".commandcode","settings.local.json");try{let a=B(d),e=function(a,b){let c={};for(let[e,f]of _){var d;c[e]=[{matcher:"",hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",Z.k,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:aa}]}]}return c}(c,b);return C(d,function(a,b,c){let d=(0,i.Qd)(a?.hooks)?a.hooks:{},e={};for(let[a,b]of Object.entries(d)){if(!Array.isArray(b)){e[a]=b;continue}let d=b.filter(a=>!function(a,b){if(!(0,i.Qd)(a))return!1;let c=a.hooks;return Array.isArray(c)?c.length>0&&c.every(a=>(0,i.Qd)(a)&&"string"==typeof a.command&&ab(a.command,b)):"string"==typeof a.command&&ab(a.command,b)}(a,c));e[a]=d.length===b.length?b:d}for(let[a,c]of Object.entries(b)){let b=e[a];e[a]=Array.isArray(b)?[...b,...c]:[...c]}return{...a,hooks:e}}(a,e,b.worktreeId)),d}catch(a){return $.warn("command-code-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),null}}(c,d),{command:f,env:h}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,u.n6)((0,g.g5)(b)))return $.warn("command-code-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:Z.k},c);return{command:(0,g.ZL)(a),env:{[y.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}});var ad=c(16100);let ae=globalThis.__agentEventSources??=new Map,af=globalThis.__agentEventLegacySources??=new Map;function ag(a){ae.set(a.cliToolId,a),af.delete(a.cliToolId)}function ah(a){let b=ae.get(a);if(b)return b;let c=af.get(a);if(c)return c;let f=(0,h.UB)({cliToolId:a,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:[],configScope:"none",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:null,stopReportsSelfResume:!1},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:n,prepareLaunch:({executablePath:a})=>({command:a,settingsPath:null,env:{}})});return af.set(a,f),f}ag(o),ag(t),ag(I),ag(T),ag(X),ag(Y.cC),ag(ac),ag(ad.Wp)},2669:(a,b,c)=>{c.d(b,{JI:()=>n,M7:()=>d,Sr:()=>h,Zf:()=>f,c7:()=>e,lU:()=>k,mR:()=>j,qO:()=>i,su:()=>m,wQ:()=>l});let d="SESSION_STARTING",e="SESSION_START_FAILED",f="SESSION_START_UNAVAILABLE",g=[d,e];class h extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}function i(a,b){return`${a} exited before reaching its input prompt: the tmux session '${b}' is back at a shell, so this is not a slow start and waiting will not help. The message was not delivered. Run \`commandmate capture <worktree-id>\` to see why it exited (for example a startup dialog answered with exit, or a missing login), fix that, then send again.`}class j extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}class k extends Error{constructor(a,b=`${a} is not installed. Please install it first.`){super(b),this.toolName=a,this.code=f,this.name="SessionStartUnavailableError"}}function l(a){return o(a)===d}function m(a){let b=o(a);return void 0!==b&&g.includes(b)}function n(a){return o(a)===f}function o(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},2734:(a,b,c)=>{c.d(b,{c:()=>d});let d="codex"},16100:(a,b,c)=>{c.d(b,{Wp:()=>w});var d=c(29021),e=c(33873),f=c(43252),g=c(72626),h=c(66101),i=c(57510),j=c(25071),k=c(34114),l=c(51719),m=c(83738),n=c(26945),o=c(38892),p=c(32301),q=c(71193);let r=(0,g.h)("lib/hooks/sources/opencode-v2/source"),s=["scripts","opencode-v2","launch.sh"];function t(a){let b=(0,n.bH)(a);if(null===b)return{reason:"no-port"};let c=(0,o.X3)(a);return null===c?{reason:"no-password"}:{port:b,password:c}}async function u(a,b,c){let d=a.instanceId??a.cliToolId,e=e=>{r.info("opencode-v2-verdict-undelivered",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,verdict:c.kind,reason:e}),(0,j.oy)(a,b.id,{delivered:!1,reason:e})};if("abstain"===c.kind)return e("abstained");let f=b.conversationId;if(!f)return e("no-session");let g=t(a);if("reason"in g)return e(g.reason);if("question"===b.kind){if("answer"!==c.kind)return e("question-needs-answer-verdict");let h=(0,m.oC)(b.raw,c.answers);if(null===h)return e("form-answer-does-not-fit");let i=await (0,k.yk)(g.port,g.password,f,b.id,h);return r.info("opencode-v2-form-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,delivered:i}),void(0,j.oy)(a,b.id,{delivered:i,reason:i?"form-reply":"form-reply-failed"})}let h=function(a){switch(a.kind){case"allowOnce":return"once";case"allowAlways":return"always";case"deny":return"reject";case"answer":case"abstain":return null}}(c);if(null===h)return e("no-wire-value");let i=await (0,k.Pf)(g.port,g.password,f,b.id,h,"deny"===c.kind?c.message:void 0);r.info("opencode-v2-permission-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,reply:h,delivered:i}),(0,j.oy)(a,b.id,{delivered:i,reason:i?`permission-reply:${h}`:"permission-reply-failed"})}async function v(a){let b=t(a);if("reason"in b)return[];let c=Date.now(),[d,e]=await Promise.all([(0,k.LO)(b.port,b.password),(0,k.CI)(b.port,b.password)]),f=[];for(let a of d??[]){if(!(0,i.Qd)(a))continue;let b=(0,m.hl)(a,c);b&&f.push(b)}for(let a of e??[]){if(!(0,i.Qd)(a))continue;let b=(0,m.gx)(a,c);b&&f.push(b)}return f}let w=(0,h.kS)({cliToolId:q.B,noDecision:{kind:"blocks"},capabilities:{supportedEvents:["user_prompt_submit","stop","notification"],configScope:"none",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!0,eventIdentity:"permission-id",resync:"pending-list",transcriptHistory:"push",stopReportsSelfResume:!1},mappers:l.y8,nativeEventNameFields:["type"],conversationIdFields:[],extractModel:()=>null,extractEventIdentity:l.IQ,extractDetail:()=>null,parsePermissionRequest:m.RN,parseQuestion:m.rk,subscribe:async(a,b)=>{let c=(0,n.bH)(a);return null===c?{close:async()=>{},liveness:{state:"unknown"}}:(0,p.tc)(a,c,b,a=>w.normalizeEvent(a))},decide:u,listPending:v,probeActivity:async()=>null,liveness:a=>(0,p.RH)(a),prepareLaunch:function({target:a,executablePath:b,worktreePath:c}){let g={command:`${(0,f.ZL)(b)} --standalone ${(0,f.ZL)(c)}`,settingsPath:null,env:{}},h=(0,n.bH)(a);if(null===h)return g;let i=(0,o.ar)(a),j=function(){let a=(0,e.resolve)(process.cwd(),...s);return(0,d.existsSync)(a)?a:null}(),k=null===j?"launch-script-missing":(0,d.existsSync)(i)?null:"password-file-missing";return null===j||null!==k?(r.warn("opencode-v2-launch-degraded-to-standalone",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,reason:k}),g):{command:["bash",(0,f.ZL)(j),"--port",String(h),"--password-file",(0,f.ZL)(i),"--directory",(0,f.ZL)(c),...b===q.V?[]:["--executable",(0,f.ZL)(b)]].join(" "),settingsPath:null,env:{}}}})},21758:(a,b,c)=>{c.d(b,{Rv:()=>J,TV:()=>r,cN:()=>w,nL:()=>p});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(15194),i=c(87447),j=c(43252),k=c(66007),l=c(72626),m=c(45567),n=c(54633);let o=(0,l.h)("lib/hooks/sources/copilot/hook-settings"),p="gh copilot",q="cmate-copilot-agent-hooks",r=10,s="CM_AGENT_WORKTREE_ID",t="CM_AGENT_INSTANCE_ID",u="CM_AUTH_TOKEN",v=m.wS,w="PreToolUse",x=[["SessionStart","session_start"],["UserPromptSubmit","user_prompt_submit"],["PostToolUse","post_tool_use"],["Stop","stop"],["SessionEnd","session_end"]];function y(a=""){return`: ${q}; if [ -z "\${${s}:-}" ]; then cat >/dev/null; ${a}exit 0; fi; case "$${v}" in ''|*[!0-9]*) cat >/dev/null; ${a}exit 0;; esac; `}let z=`"\${${t}:-${n.V}}"`,A=`"$${s}"`;function B(){return`set -- -fsS -m 4 -X POST -H 'Content-Type: application/json'; if [ -n "\${${u}:-}" ]; then set -- "$@" -H "Authorization: Bearer $${u}"; fi; `}function C(a){return`${(0,j.ZL)("http://127.0.0.1:")}"$${v}"${(0,j.ZL)(a)}`}function D(a){return`${C(`${a}?tool=${n.V}&worktreeId=`)}${A}'&instanceId='${z}`}function E(a){return`rc=$?; printf '%s\\n' "${q}: ${a} rc=$rc" >&2`}function F(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function G(a){return F(a)&&"string"==typeof a.command&&a.command.includes(q)}function H(a){try{return(0,d.readFileSync)(a,"utf8")}catch(a){if("ENOENT"===a.code)return"";throw a}}class I extends Error{constructor(a){super(`copilot config.json still has a "hooks" key (${a}); copilot migrates it over settings.json at startup, so CommandMate is not writing hooks this launch`),this.configPath=a,this.name="CopilotConfigHooksShadowError"}}function J(a,b,c={}){let l={command:a,settingsPath:null,env:{}};if("0"===process.env.CM_AGENT_HOOKS_INJECT)return l;let m=b.instanceId??n.V;if(!(0,h.n6)(m)||!(0,k.h6)(b.worktreeId))return o.warn("copilot-hook-invalid-correlation-key",{worktreeId:b.worktreeId}),l;try{let h=function(a={}){let b=a.settingsPath??(0,f.join)(function(){let a=(0,f.join)((0,e.homedir)(),".copilot");return(0,g.T)(process.env.COPILOT_HOME,a,"COPILOT_HOME")}(),"settings.json"),c=a.configPath??(0,f.join)((0,f.dirname)(b),"config.json"),h=function(a){let b,c=H(a);if(""===c.trim())return"absent";try{b=JSON.parse(function(a){let b="",c=!1,d=!1;for(let e=0;e<a.length;e+=1){let f=a[e];if(c){b+=f,d?d=!1:"\\"===f?d=!0:'"'===f&&(c=!1);continue}if('"'===f){c=!0,b+=f;continue}if("/"===f&&"/"===a[e+1]){for(;e<a.length&&"\n"!==a[e];)e+=1;b+="\n";continue}if("/"===f&&"*"===a[e+1]){for(e+=2;e<a.length&&("*"!==a[e]||"/"!==a[e+1]);)e+=1;e+=1;continue}b+=f}return b}(c))}catch{return"unreadable"}if(!F(b))return"unreadable";let d=b.hooks;return null==d||F(d)&&0===Object.keys(d).length||Array.isArray(d)&&0===d.length?"absent":"present"}(c);if("present"===h)throw new I(c);return"unreadable"===h&&o.warn("copilot-config-json-unreadable",{configPath:c}),(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0,mode:448}),function(a,b){let c,e=(0,f.join)(a,".cmate.lock");try{c=(0,d.openSync)(e,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;let a=Date.now()-(0,d.statSync)(e).mtimeMs;if(a<1e4)throw Error(`copilot settings.json is locked by another CommandMate server (${e})`);o.warn("copilot-hook-settings-lock-stale",{lockPath:e,heldForMs:a}),(0,d.unlinkSync)(e),c=(0,d.openSync)(e,"wx",384)}try{(0,d.writeSync)(c,`${process.pid}
3
3
  `)}finally{(0,d.closeSync)(c)}try{return b()}finally{try{(0,d.unlinkSync)(e)}catch{}}}((0,f.dirname)(b),()=>{let c=H(b),e=function(a,b){let c=a.hooks;if(void 0!==c&&!F(c))throw Error('copilot settings.json has a non-object "hooks" key');let d={...c??{}};for(let[a,c]of Object.entries(b.hooks)){let b=d[a];if(void 0!==b&&!Array.isArray(b)){o.warn("copilot-hook-event-not-an-array",{event:a});continue}d[a]=[...function(a){let b=[];for(let c of a)if(!G(c)){if(F(c)&&Array.isArray(c.hooks)){let a=c.hooks.filter(a=>!G(a));if(0===a.length&&c.hooks.length>0)continue;b.push({...c,hooks:a});continue}b.push(c)}return b}(b??[]),...c]}return{...a,hooks:d}}(function(a){if(""===a.trim())return{};let b=JSON.parse(a);if(!F(b))throw Error("copilot settings.json is not a JSON object");return b}(c),function(a={}){let b={};for(let[c,d]of x)b[c]=[{hooks:[{type:"command",command:function(a,b={}){let c=void 0===b.relayScriptPath?(0,j.Os)():b.relayScriptPath,d=B()+`curl "$@" --data-binary @- ${D(j.jx)} >/dev/null 2>&1 || `+`{ ${E("agent_event_post_failed")}; }`;return c?y()+`if [ -x ${(0,j.ZL)(c)} ]; then `+[(0,j.ZL)(c),"--tool",(0,j.ZL)(n.V),"--event",(0,j.ZL)(a),"--worktree-id",A,"--instance-id",z,"--url",C(j.jx),"--stdin-json"].join(" ")+"; exit 0; fi; "+d:y()+d}(d,a)}]}];return b[w]=[{hooks:[{type:"command",command:function(a={}){return y("printf '{}'; ")+B()+`out=$(curl "$@" --data-binary @- ${D(j.WZ)} `+`2>/dev/null) || { ${E("permission_request_failed")}; out=''; }; `+"[ -n \"$out\" ] || out='{}'; printf '%s' \"$out\""}(a)}]}],{hooks:b}}(a)),f=`${JSON.stringify(e,null,2)}
4
- `;if(c===f)return b;""!==c&&(0,d.copyFileSync)(b,`${b}.cmate-backup`);let g=`${b}.${process.pid}.tmp`;try{(0,d.writeFileSync)(g,f,{mode:384}),(0,d.renameSync)(g,b)}catch(a){try{(0,d.unlinkSync)(g)}catch{}throw a}return b})}(c);return{command:a,settingsPath:h,env:function(a,b,c={}){return{[s]:a,[t]:b,[v]:String(c.port??(0,i.D0)())}}(b.worktreeId,m,c)}}catch(a){if(a instanceof I)return o.warn("copilot-hook-config-json-shadows-settings",{worktreeId:b.worktreeId,configPath:a.configPath}),l;return o.warn("copilot-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),l}}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K9,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(129);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},25071:(a,b,c)=>{c.d(b,{GW:()=>l,_0:()=>k,o4:()=>j,oy:()=>i,qK:()=>h});var d=c(24455);let e=(0,c(72626).h)("lib/hooks/sources/pending-decisions"),f=globalThis.__agentSourcePendingDecisions??=new Map;function g(a){return(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function h(a){return(f.get(g(a))??[]).map(a=>a.decision)}function i(a,b,c){let d=f.get(g(a));if(!d)return!1;let e=d.find(a=>a.decision.id===b);return!!e&&(e.delivery=c,!0)}function j(a,b,c){let d=f.get(g(a));if(!d)return!1;let e=d.find(a=>a.decision.id===b);return!!e&&(e.body=c,!0)}async function k(a,b,c,d){return(await l(a,b,c,d)).body}async function l(a,b,c,d){let h=function(a,b){let c=g(a),d={key:c,ref:a,decision:b,body:null,delivery:null},e=f.get(c)??[];for(e.push(d);e.length>16;)e.shift();return f.set(c,e),d}(b,c);try{await a.decide(b,c,d)}catch(a){e.warn("agent-source-decide-failed",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId,decisionId:c.id,error:a instanceof Error?a.message:String(a)}),h.delivery={delivered:!1,reason:a instanceof Error?`decide-threw:${a.message}`:"decide-threw"}}let i=h.delivery;return{body:function(a){let b=f.get(a.key);if(b){let c=b.indexOf(a);c>=0&&b.splice(c,1),0===b.length&&f.delete(a.key)}return a.body??{}}(h),delivery:i}}},28862:(a,b,c)=>{c.d(b,{k:()=>d});let d="command-code"},38367:(a,b,c)=>{c.d(b,{Jp:()=>h,WK:()=>e,lb:()=>f,ue:()=>g});var d=c(57510);let e={Stop:"stop",SubagentStop:"stop",Notification:"notification",SessionStart:"session_start",SessionEnd:"session_end",UserPromptSubmit:"user_prompt_submit",PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use"},f=["session_id","conversationId"],g=["tool_use_id"];function h(a,b){let c="notification"===a?"notification_type":"session_end"===a?"reason":"session_start"===a?"source":"pre_tool_use"===a||"post_tool_use"===a?"tool_name":null;return null===c?null:(0,d.Wv)((0,d.O2)(b,c))}},45567:(a,b,c)=>{c.d(b,{K9:()=>i,ZM:()=>f,wS:()=>g});var d=c(87447),e=c(43252);let f="CM_HOOK_URL",g="CM_HOOK_PORT",h="CM_PORT";function i(a){let b=Object.entries(h in a.env?a.env:{...a.env,[h]:String((0,d.D0)())}).map(([a,b])=>`${a}=${(0,e.ZL)(b)}`);return 0===b.length?a.command:`${b.join(" ")} ${a.command}`}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},54633:(a,b,c)=>{c.d(b,{V:()=>d});let d="copilot"},66101:(a,b,c)=>{c.d(b,{Kf:()=>j,UB:()=>h,kS:()=>i});var d=c(62887),e=c(57510),f=c(25071);let g={close:async()=>{},liveness:{state:"unknown"}};function h(a){let b=a.nativeEventNameFields??["hook_event_name"];return{cliToolId:a.cliToolId,transport:"push",noDecision:a.noDecision,capabilities:a.capabilities,normalizeEvent(c){let f=c.receivedAt??Date.now(),g=b.length>0?(0,e.oJ)(c.payload,b):null;if(null!=c.event&&(0,d.o0)(c.event))return(0,e.Uq)({event:c.event},c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel});let h=(0,e.qU)(a.mappers,g,c.payload);return h?(0,e.Uq)(h,c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel}):((0,e.ex)(a.cliToolId,g),null)},eventIdentityOf:b=>a.extractEventIdentity?.(b)??null,parsePermissionRequest:a.parsePermissionRequest,parseQuestion:a.parseQuestion,encodeVerdict:b=>({kind:"responseBody",body:a.encodeVerdict(b)}),prepareLaunch:a.prepareLaunch,subscribe:async()=>g,async decide(b,c,d){let e=(0,f.o4)(b,c.id,a.encodeVerdict(d));(0,f.oy)(b,c.id,{delivered:e,reason:e?"response-body":"slot-closed"})},listPending:async a=>(0,f.qK)(a),probeActivity:async()=>null,liveness:()=>({state:"unknown"})}}function i(a){let b=a.nativeEventNameFields??["type"];return{cliToolId:a.cliToolId,transport:"pull",noDecision:a.noDecision,capabilities:a.capabilities,normalizeEvent(c){let f=c.receivedAt??Date.now(),g=b.length>0?(0,e.oJ)(c.payload,b):null;if(null!=c.event&&(0,d.o0)(c.event))return(0,e.Uq)({event:c.event},c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel});let h=(0,e.qU)(a.mappers,g,c.payload);return h?(0,e.Uq)(h,c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel}):((0,e.ex)(a.cliToolId,g),null)},eventIdentityOf:b=>a.extractEventIdentity?.(b)??null,parsePermissionRequest:a.parsePermissionRequest,parseQuestion:a.parseQuestion,encodeVerdict:()=>({kind:"outOfBand"}),prepareLaunch:a.prepareLaunch??(a=>({command:a.executablePath,settingsPath:null,env:{}})),subscribe:a.subscribe,decide:a.decide,listPending:a.listPending,probeActivity:a.probeActivity,liveness:a.liveness}}function j(a,b,c){let d="pull"===a.transport?"sse":0===a.capabilities.supportedEvents.length?"scraper":"hooks";if("sse"!==d)return{kind:d};switch(b.state){case"live":return c-b.lastHeartbeatAt>=3e4?{kind:"sse",liveness:"stale",degradedReason:"heartbeat_stale"}:{kind:"sse",liveness:"live"};case"lost":return{kind:"scraper",liveness:"stale",degradedReason:b.reason};case"unknown":return{kind:"scraper",degradedReason:"not_subscribed"}}}},73434:(a,b,c)=>{c.d(b,{hh:()=>f});let d=["CLAUDECODE","CM_AUTH_TOKEN","CM_AUTH_TOKEN_HASH","CM_AUTH_EXPIRE","CM_HTTPS_KEY","CM_HTTPS_CERT","CM_ALLOWED_IPS","CM_TRUST_PROXY","CM_DB_PATH","GH_DEBUG"],e=["CM_AGENT_INSTANCE_ID","CM_AGENT_TOOL","CM_AGENT_WORKTREE_ID","CM_HOOK_PORT","CM_HOOK_URL","CM_PERMISSION_HOOK_URL"];function f(){let a={...process.env};for(let b of Object.keys(a))(d.includes(b)||e.includes(b)||b.startsWith("CM_HOOK_"))&&delete a[b];return a}},76835:(a,b,c)=>{c.d(b,{F:()=>d});let d="antigravity"},77904:(a,b,c)=>{c.d(b,{o:()=>d});let d="gemini"},85965:(a,b,c)=>{c.d(b,{cC:()=>u});var d=c(62887),e=c(43252),f=c(72626),g=c(66101),h=c(25071),i=c(49791),j=c(75356),k=c(98211),l=c(18529),m=c(84574),n=c(53163),o=c(85322);let p=(0,f.h)("lib/hooks/sources/opencode/source"),q=d.b0;async function r(a,b,c){let d=a.instanceId??a.cliToolId;if("abstain"===c.kind){p.warn("opencode-verdict-abstained",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,consequence:"the agent waits indefinitely; nothing else will unblock it"}),(0,h.oy)(a,b.id,{delivered:!1,reason:"abstained"});return}let e=(0,m.hC)(a);if(null===e){p.warn("opencode-verdict-undeliverable-no-port",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id}),(0,h.oy)(a,b.id,{delivered:!1,reason:"no-port"});return}if("question"===b.kind){if("answer"!==c.kind){p.info("opencode-question-not-answerable",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,verdict:c.kind}),(0,h.oy)(a,b.id,{delivered:!1,reason:"question-needs-answer-verdict"});return}let f=await (0,i.Ei)(e,b.id,c.answers);p.info("opencode-question-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,delivered:f}),(0,h.oy)(a,b.id,{delivered:f,reason:f?"question-reply":"question-reply-failed"});return}let f=function(a){switch(a.kind){case"allowOnce":return"once";case"allowAlways":return"always";case"deny":return"reject";case"answer":case"abstain":return null}}(c);if(null===f)return void(0,h.oy)(a,b.id,{delivered:!1,reason:"no-wire-value"});let g=await (0,i.LV)(e,b.id,f,"deny"===c.kind?c.message:void 0);p.info("opencode-permission-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,reply:f,delivered:g}),(0,h.oy)(a,b.id,{delivered:g,reason:g?`permission-reply:${f}`:"permission-reply-failed"})}async function s(a){let b=(0,m.hC)(a);if(null===b)return[];let c=Date.now(),[d,e]=await Promise.all([(0,i.Li)(b),(0,i.er)(b)]),f=[];for(let a of d){let b=(0,k.Lu)(a,c);b&&f.push(b)}for(let a of e){let b=(0,k.AB)(a,c);b&&f.push(b)}return f}async function t(a){let b=(0,m.hC)(a);return null===b?null:(0,i.xR)(b)}let u=(0,g.kS)({cliToolId:o.k,noDecision:{kind:"blocks"},capabilities:{supportedEvents:q,configScope:"none",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!0,eventIdentity:"permission-id",resync:"session-status-poll",transcriptHistory:"push",stopReportsSelfResume:!1},mappers:j.lu,nativeEventNameFields:["type"],conversationIdFields:[],extractModel:j.pV,extractEventIdentity:j.oG,parsePermissionRequest:k.FZ,parseQuestion:k.v1,subscribe:(a,b)=>(0,n.bP)(a,b,a=>u.normalizeEvent(a),{resync:u.capabilities.resync}),decide:r,listPending:s,probeActivity:t,liveness:a=>(0,n.lf)(a),prepareLaunch:function({target:a,executablePath:b}){let c={command:b,settingsPath:null,env:{}};if(!(0,e.q)())return c;let d=(0,m.hC)(a);if(null===d)return c;let f=(0,l.Lj)((0,l.Q1)(a));return{command:`${(0,e.ZL)(b)} --port ${d} --hostname ${i.Vc}`+f,settingsPath:null,env:{}}}})},99432:(a,b,c)=>{c.d(b,{l1:()=>E,JD:()=>F,S9:()=>K,dO:()=>H});var d=c(79646),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(15194),j=c(87447),k=c(43252),l=c(72626),m=c(73434),n=c(66007),o=c(57510);let p=(0,l.h)("lib/hooks/sources/codex/relay-install");function q(a){return(0,g.join)(a,"commandmate","cmate-agent-event.sh")}var r=c(2734);let s=(0,l.h)("lib/hooks/sources/codex/hooks-config"),t="127.0.0.1",u="commandmate:agent-hooks",v="CODEX_HOME",w="CM_AGENT_WORKTREE_ID",x="CM_AGENT_INSTANCE_ID",y="CM_HOOK_URL",z="CM_PERMISSION_HOOK_URL",A="--no-daemon",B=RegExp(`${A}(?![\\w-])`),C=new Map,D={SessionStart:"session_start",UserPromptSubmit:"user_prompt_submit",Stop:"stop",SessionEnd:"session_end"},E="PermissionRequest",F=Object.values(D);function G(){let a=process.env.CM_CODEX_HOOK_TRUST;return"bypass"===a||"never"===a||"auto"===a?a:"auto"}function H(a){if("never"===G())return!1;try{if((0,e.existsSync)((0,g.join)(a,".codex","hooks.json")))return s.info("codex-hooks-trust-withheld-repo-hooks",{worktreePath:a}),!1}catch{return!1}return!0}function I(a={}){let b=(0,g.join)((0,f.homedir)(),".codex");return a.codexHome?(0,h.T)(a.codexHome,b,"CodexHookOptions.codexHome"):(0,h.T)(process.env[v],b,v)}function J(a,b){return`http://${t}:\${CM_PORT:-3000}${a}${b}`}function K(a,b,c={}){let f={command:a,settingsPath:null,env:{}};if(!(0,k.q)())return f;let h=b.instanceId??r.c;if(!(0,n.h6)(b.worktreeId)||!(0,i.n6)(h))return s.warn("codex-hooks-invalid-correlation-key",{worktreeId:b.worktreeId}),f;try{let i=function(a={}){let b=function(a={}){return(0,g.join)(I(a),"hooks.json")}(a);void 0===a.relayScriptPath&&function(a,b){let c=q(a);if(b&&b!==c)try{let a=(0,e.readFileSync)(b,"utf8");if(((0,e.existsSync)(c)?(0,e.readFileSync)(c,"utf8"):null)!==a){(0,e.mkdirSync)((0,g.dirname)(c),{recursive:!0,mode:448});let b=`${c}.tmp`;try{(0,e.writeFileSync)(b,a,{mode:448}),(0,e.renameSync)(b,c)}catch(a){try{(0,e.unlinkSync)(b)}catch{}throw a}p.info("codex-relay-installed",{target:c})}}catch(a){p.warn("codex-relay-install-failed",{target:c,error:a instanceof Error?a.message:String(a)})}(0,e.existsSync)(c)}(I(a),(0,k.Os)());let c=null,d=null;if((0,e.existsSync)(b))try{d=(0,e.readFileSync)(b,"utf8"),c=JSON.parse(d)}catch(a){return s.warn("codex-hooks-config-unreadable",{settingsPath:b,error:a instanceof Error?a.message:String(a)}),null}let f=`${JSON.stringify(function(a,b){let c=(0,o.Qd)(a)?{...a}:{},d=(0,o.Qd)(c.hooks)?c.hooks:{},e={};for(let[a,b]of Object.entries(d))e[a]=Array.isArray(b)?b.map(a=>{if(!(0,o.Qd)(a)||!Array.isArray(a.hooks))return a;let b=a.hooks.filter(a=>!((0,o.Qd)(a)&&"string"==typeof a.command&&a.command.includes(u)));return b.length===a.hooks.length?a:{...a,hooks:b}}).filter(a=>!((0,o.Qd)(a)&&Array.isArray(a.hooks))||a.hooks.length>0):b;for(let[a,c]of Object.entries(b.hooks)){let b=e[a];(void 0===b||Array.isArray(b))&&(e[a]=[...b??[],...c])}return c.hooks=e,c}(c,function(a={}){let b=(b,c)=>({hooks:[{type:"command",command:function(a,b={}){let c=` # ${u}`,d=function(a={}){if(void 0!==a.relayScriptPath)return a.relayScriptPath;var b=I(a);let c=q(b);return(0,e.existsSync)(c)?c:null}(b);if(d)return[(0,k.ZL)(d),"--tool",r.c,"--event",a,"--worktree-id",`"$${w}"`,"--instance-id",`"$${x}"`,"--stdin-json"].join(" ")+c;let f=b.withAuthHeader??(0,k.yc)()?` -H "Authorization: Bearer $${k.XE}"`:"",g=`"\${${y}:-${J(k.jx,"")}}?tool=${r.c}\${${w}:+&worktreeId=$${w}}\${${x}:+&instanceId=$${x}}"`;return`curl -sS -f -m ${k.W6} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${g} >/dev/null 2>&1 || true${c}`}(b,a),timeout:c}]}),c={};for(let[a,d]of Object.entries(D)){let e="SessionEnd"===a?3:k.W6;c[a]=[b(d,e)]}return c[E]=[{hooks:[{type:"command",command:function(a={}){let b=a.withAuthHeader??(0,k.yc)()?` -H "Authorization: Bearer $${k.XE}"`:"",c=`"\${${z}:-${J(k.WZ,`?tool=${r.c}`)}}"`;return`curl -sS -f -m ${k.sI} -X POST -H 'Content-Type: application/json'${b} --data-binary @- ${c} 2>/dev/null || true # ${u}`}(a),timeout:k.sI}]}],{hooks:c}}(a)),null,2)}
4
+ `;if(c===f)return b;""!==c&&(0,d.copyFileSync)(b,`${b}.cmate-backup`);let g=`${b}.${process.pid}.tmp`;try{(0,d.writeFileSync)(g,f,{mode:384}),(0,d.renameSync)(g,b)}catch(a){try{(0,d.unlinkSync)(g)}catch{}throw a}return b})}(c);return{command:a,settingsPath:h,env:function(a,b,c={}){return{[s]:a,[t]:b,[v]:String(c.port??(0,i.D0)())}}(b.worktreeId,m,c)}}catch(a){if(a instanceof I)return o.warn("copilot-hook-config-json-shadows-settings",{worktreeId:b.worktreeId,configPath:a.configPath}),l;return o.warn("copilot-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),l}}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K9,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(129);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},25071:(a,b,c)=>{c.d(b,{GW:()=>l,_0:()=>k,o4:()=>j,oy:()=>i,qK:()=>h});var d=c(24455);let e=(0,c(72626).h)("lib/hooks/sources/pending-decisions"),f=globalThis.__agentSourcePendingDecisions??=new Map;function g(a){return(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function h(a){return(f.get(g(a))??[]).map(a=>a.decision)}function i(a,b,c){let d=f.get(g(a));if(!d)return!1;let e=d.find(a=>a.decision.id===b);return!!e&&(e.delivery=c,!0)}function j(a,b,c){let d=f.get(g(a));if(!d)return!1;let e=d.find(a=>a.decision.id===b);return!!e&&(e.body=c,!0)}async function k(a,b,c,d){return(await l(a,b,c,d)).body}async function l(a,b,c,d){let h=function(a,b){let c=g(a),d={key:c,ref:a,decision:b,body:null,delivery:null},e=f.get(c)??[];for(e.push(d);e.length>16;)e.shift();return f.set(c,e),d}(b,c);try{await a.decide(b,c,d)}catch(a){e.warn("agent-source-decide-failed",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId,decisionId:c.id,error:a instanceof Error?a.message:String(a)}),h.delivery={delivered:!1,reason:a instanceof Error?`decide-threw:${a.message}`:"decide-threw"}}let i=h.delivery;return{body:function(a){let b=f.get(a.key);if(b){let c=b.indexOf(a);c>=0&&b.splice(c,1),0===b.length&&f.delete(a.key)}return a.body??{}}(h),delivery:i}}},28862:(a,b,c)=>{c.d(b,{k:()=>d});let d="command-code"},32301:(a,b,c)=>{c.d(b,{VV:()=>I,RH:()=>E,rE:()=>F,yw:()=>D,tc:()=>H});var d=c(3161),e=c(72626),f=c(57510),g=c(34114),h=c(48083),i=c(86594),j=c(98322),k=c(38892),l=c(71193);let m=(0,e.h)("lib/hooks/sources/opencode-v2/history"),n=["session.execution.succeeded","session.execution.failed","session.execution.interrupted"];function o(a){return null!==a&&n.includes(a)}function p(a){return"number"==typeof a&&Number.isFinite(a)?a:null}function q(a){let b=(0,f.Qd)(a.time)?a.time:null;return p(b?.created)??0}let r=globalThis.__opencodeV2HistoryQueue??=new Map;async function s(a,b,c){let d=[],e=null;for(let h=0;h<5;h+=1){let i=await (0,g.VW)(a,b,c,e);if(null===i)return 0===h?null:d;if(d.push(...i.data),i.data.some(a=>(0,f.Qd)(a)&&"user"===(0,f.O2)(a,"type"))||null===i.next||0===i.data.length)break;e=i.next}return d}async function t(a,b,d){let e=a.instanceId??a.cliToolId;if(0===b.body.length)return m.info("opencode-v2-history-turn-empty",{worktreeId:a.worktreeId,instanceId:e,sessionId:b.sessionId}),!1;b.unknownPartTypes.length>0&&m.info("opencode-v2-history-unknown-parts",{worktreeId:a.worktreeId,instanceId:e,sessionId:b.sessionId,partTypes:b.unknownPartTypes});let f=(0,i.jT)(b.userMessageId),[{getDbInstance:g},{createMessage:h,findMessageByRequestId:j},{broadcastMessage:k}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(8728)]).then(c.bind(c,43015))]),l=g();if(j(l,a.worktreeId,f))return!1;let n=h(l,{worktreeId:a.worktreeId,role:"assistant",content:b.body,messageType:"normal",timestamp:new Date(d>0?d:Date.now()),cliToolId:a.cliToolId,instanceId:e,requestId:f});return k("message",{worktreeId:a.worktreeId,message:n}),m.info("opencode-v2-history-turn-saved",{worktreeId:a.worktreeId,instanceId:e,sessionId:b.sessionId,requestId:f,bodyLength:b.body.length,textParts:b.textParts,toolParts:b.toolParts}),!0}var u=c(51719);let v=(0,e.h)("lib/hooks/sources/opencode-v2/usage");function w(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)&&c>0?c:0}async function x(a,b,c,e=()=>!0){try{let h=(0,k.X3)(a);if(null===h)return null;let i=await (0,g.u7)(b,h,c),j=(0,d.Yv)(i,Date.now());if(!j||!j.id)return null;let l=j.provider,m=j.model,[n,o]=await Promise.all([(0,g.nR)(b,h,j.id),l&&m?(0,g.am)(b,h):Promise.resolve(null)]),p=n?function(a){let b=null;for(let c of a){if(!(0,f.Qd)(c)||"assistant"!==(0,f.O2)(c,"type"))continue;let a=(0,f.Qd)(c.tokens)?c.tokens:null;if(!a)continue;let d=w(a,"output");if(d<=0)continue;let e=(0,f.Qd)(a.cache)?a.cache:{},g=w(a,"input")+d+w(a,"reasoning")+w(e,"read")+w(e,"write"),h=function(a){let b=(0,f.Qd)(a.time)?a.time:null,c=b?.created;return"number"==typeof c&&Number.isFinite(c)?c:0}(c),i=(0,f.O2)(c,"id")??"";(null===b||h>b.at||h===b.at&&i>b.id)&&(b={at:h,id:i,total:g})}return b?.total??null}(n):null,q=o&&l&&m?function(a,b,c){for(let d of a){if(!(0,f.Qd)(d)||d.providerID!==b||d.id!==c)continue;let a=(0,f.Qd)(d.limit)?d.limit:null,e=a?.context;if("number"!=typeof e||!Number.isFinite(e)||e<=0)break;return e}return null}(o,l,m):null;if(!e())return null;return(0,d.G1)(a,j),(0,d.T9)(a,{tokens:p,limit:q,percent:(0,d.sI)(p,q),sessionAt:j.at,at:Date.now()}),j}catch(c){return v.warn("opencode-v2-usage-refresh-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,error:c instanceof Error?c.message:String(c)}),null}}let y=globalThis.__opencodeV2UsageRefreshes??=new Map,z=(0,e.h)("lib/hooks/sources/opencode-v2/subscription"),A=[500,1e3,2e3,4e3,8e3,15e3,3e4],B=globalThis.__opencodeV2Subscriptions??=new Map,C=globalThis.__opencodeV2EndedLiveness??=new Map;function D(a){return B.has((0,k.Y_)(a))}function E(a){let b=(0,k.Y_)(a);return B.get(b)?.liveness??C.get(b)??{state:"unknown"}}function F(a){return"live"===E(a).state}function G(a){return{close:async()=>{await I(a.target)},get liveness(){return a.liveness}}}function H(a,b,c,d){let e=(0,k.Y_)(a),f=B.get(e);if(f)return G(f);C.delete(e);let g={key:e,target:a,port:b,onEvent:c,normalize:d,streamController:new AbortController,lifetimeController:new AbortController,liveness:{state:"unknown"},closed:!1,watchdog:null};return B.set(e,g),z.info("opencode-v2-subscription-opened",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b}),N(g),G(g)}async function I(a){let b=(0,k.Y_)(a);C.delete(b);let c=B.get(b);c&&(J(c),B.delete(b),(0,d.cI)(a),z.info("opencode-v2-subscription-closed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c.port}))}function J(a){a.closed=!0,L(a),a.streamController.abort(),a.lifetimeController.abort()}function K(a,b){J(a),a.liveness={state:"lost",since:Date.now(),reason:b},B.get(a.key)===a&&B.delete(a.key),C.set(a.key,a.liveness),(0,d.cI)(a.target),z.warn("opencode-v2-subscription-ended",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,reason:b})}function L(a){null!==a.watchdog&&(clearTimeout(a.watchdog),a.watchdog=null)}function M(a){a.liveness={state:"live",lastHeartbeatAt:Date.now()},L(a);let b=setTimeout(()=>{a.closed||(z.warn("opencode-v2-subscription-heartbeat-lost",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,afterMs:6e4}),a.streamController.abort())},6e4);b.unref?.(),a.watchdog=b}async function N(a){let b=0,c=0;for(;!a.closed;){a.streamController=new AbortController;let d="stream-ended";try{let e=(0,k.X3)(a.target);if(null===e)return void K(a,"password-file-missing");let f=await (0,g.tJ)(a.port,e);if(a.closed)return;if("rejected"===f.kind){if(c+=1,d=`server-rejected-${f.status}`,c>=3)return void K(a,"port-identity-changed")}else if("unreachable"===f.kind)d="server-unreachable";else{c=0;let d=await (0,g.MT)(a.port,e,a.streamController.signal);for await(let c of(M(a),b=0,await O(a.target,a.port,e,b=>P(a,b)),d)){if(a.closed)break;M(a),"frame"===c.kind&&P(a,c.frame)}}}catch(a){d=a instanceof Error?a.message:String(a)}finally{L(a)}if(a.closed)return;a.liveness={state:"lost",since:Date.now(),reason:d},z.info("opencode-v2-subscription-disconnected",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,reason:d,attempt:b}),await function(a,b){return new Promise(c=>{if(b.aborted)return void c();let d=()=>{clearTimeout(e),c()};b.addEventListener("abort",d,{once:!0});let e=setTimeout(()=>{b.removeEventListener("abort",d),c()},a);e.unref?.()})}(A[Math.min(b,A.length-1)],a.lifetimeController.signal),b+=1}}async function O(a,b,c,d){let e=0;try{let[h,i]=await Promise.all([(0,g.LO)(b,c),(0,g.CI)(b,c)]),j=(b,c,g)=>{let h=(b??[]).filter(f.Qd),i=h.slice(0,50);for(let b of(h.length>i.length&&z.warn("opencode-v2-resync-truncated",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,type:c,examined:i.length,skipped:h.length-i.length,limit:50}),i)){let a="string"==typeof b.id&&""!==b.id?b.id:null;null!==a&&(d({id:`resync_${a}`,type:c,data:g(b)}),e+=1)}};j(h,"permission.asked",a=>a),j(i,"form.created",a=>({form:a}))}catch(b){z.warn("opencode-v2-resync-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return e>0&&z.info("opencode-v2-resync",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,replayed:e}),e}function P(a,b){try{!function(a,b,c,d=Date.now()){if(!(0,u.cT)((0,u.Cr)(a)))return;let e=b({payload:a,receivedAt:d});e&&c(e)}(b,a.normalize,a.onEvent)}catch(c){z.warn("opencode-v2-frame-delivery-failed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,type:(0,u.Cr)(b),error:c instanceof Error?c.message:String(c)})}(function(a,b,c){try{if(!o((0,u.Cr)(c)))return null;let d=(0,u.lx)(c);if(null===d)return null;(function(a,b){let c=(r.get(a)??Promise.resolve()).then(b,b).then(()=>void 0,()=>void 0);r.set(a,c),c.then(()=>{r.get(a)===c&&r.delete(a)})})((0,k.Y_)(a),async()=>{let c=a.instanceId??a.cliToolId;try{let e=(0,k.X3)(a);if(null===e)return m.info("opencode-v2-history-unavailable",{worktreeId:a.worktreeId,instanceId:c,reason:"password-file-missing"}),0;let g=await s(b,e,d);if(null===g)return m.warn("opencode-v2-history-unavailable",{worktreeId:a.worktreeId,instanceId:c,port:b,sessionId:d,reason:"messages-unreadable"}),0;(0,h.recordAgentReportedModel)(a.worktreeId,l.B,a.instanceId??l.B,function(a){let b=null;for(let c of a){if(!(0,f.Qd)(c)||"assistant"!==(0,f.O2)(c,"type"))continue;let a=(0,f.NZ)(c,["model","id"]);if(null===a)continue;let d=q(c),e=(0,f.O2)(c,"id")??"";(null===b||d>b.at||d===b.at&&e>b.id)&&(b={at:d,id:e,model:a})}return b?.model??null}(g));let i=(function(a,b){let c=a.filter(f.Qd).filter(a=>null!==(0,f.O2)(a,"id")).map((a,b)=>({message:a,index:b})).sort((a,b)=>{let c=q(a.message)-q(b.message);if(0!==c)return c;let d=(0,f.O2)(a.message,"id")??"",e=(0,f.O2)(b.message,"id")??"";return d<e?-1:d>e?1:a.index-b.index}).map(({message:a})=>a),d=[],e=null,g=a=>{e&&d.push({...e,closed:a}),e=null};for(let a of c){let c=(0,f.O2)(a,"id"),d=(0,f.O2)(a,"type");if("user"===d){g(!0),e={accumulator:(0,j.lp)(b,c,q(a)),completedAt:null};continue}if(!e)continue;let h=e;if("idle"===d){g(!0);continue}if("assistant"!==d)continue;h.accumulator.assistantMessageIds.add(c),(Array.isArray(a.content)?a.content:[]).forEach((a,b)=>{let d=function(a,b,c){if(!(0,f.Qd)(c))return null;let d=(0,f.O2)(c,"type");if(!d)return null;let e=(0,f.Qd)(c.state)?c.state:null;return{id:`${a}#${b}`,messageId:a,type:d,text:"string"==typeof c.text?c.text:null,tool:"tool"===d?(0,f.O2)(c,"name"):null,status:e?(0,f.O2)(e,"status"):null,title:e?(0,f.O2)(e,"title"):null,error:e?(0,f.O2)(e,"error")??(0,f.NZ)(e,["error","message"]):null}}(c,b,a);d&&(0,j.yG)(h.accumulator,d)});let i=(0,f.Qd)(a.time)?a.time:null,k=p(i?.completed)??p(i?.created);null!==k&&k>(h.completedAt??0)&&(h.completedAt=k)}return g(!1),d})(g,d).filter(a=>a.closed).slice(-50),n=0;for(let b of i){let c=(0,j.JZ)(b.accumulator),d=Math.max(b.accumulator.startedAt,b.completedAt??0);await t(a,c,d)&&(n+=1)}return n}catch(e){return m.error("opencode-v2-history-sync-failed",{worktreeId:a.worktreeId,instanceId:c,port:b,sessionId:d,error:e instanceof Error?e.message:String(e)}),0}})}catch(b){return z.warn("opencode-v2-history-trigger-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)}),null}})(a.target,a.port,b),function(a,b,c,d=()=>!0){try{var e;if(!("session.usage.updated"===(e=(0,u.Cr)(c))||o(e)))return null;let f=(0,u.lx)(c);if(null===f)return null;!function(a,b,c,d=()=>!0){let e=(0,k.Y_)(a),f=y.get(e);if(f)return f.queued={port:b,sessionId:c,isCurrent:d},f.running;let g={running:Promise.resolve(),queued:null};g.running=(async()=>{let f={port:b,sessionId:c,isCurrent:d};for(;null!==f;){let b=f;g.queued=null,await x(a,b.port,b.sessionId,b.isCurrent),f=g.queued}y.get(e)===g&&y.delete(e)})(),y.set(e,g),g.running}(a,b,f,d)}catch(b){return z.warn("opencode-v2-usage-trigger-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)}),null}}(a.target,a.port,b,()=>{var b;return!(b=a).closed&&B.get(b.key)===b})}},38367:(a,b,c)=>{c.d(b,{Jp:()=>h,WK:()=>e,lb:()=>f,ue:()=>g});var d=c(57510);let e={Stop:"stop",SubagentStop:"stop",Notification:"notification",SessionStart:"session_start",SessionEnd:"session_end",UserPromptSubmit:"user_prompt_submit",PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use"},f=["session_id","conversationId"],g=["tool_use_id"];function h(a,b){let c="notification"===a?"notification_type":"session_end"===a?"reason":"session_start"===a?"source":"pre_tool_use"===a||"post_tool_use"===a?"tool_name":null;return null===c?null:(0,d.Wv)((0,d.O2)(b,c))}},45567:(a,b,c)=>{c.d(b,{K9:()=>i,ZM:()=>f,wS:()=>g});var d=c(87447),e=c(43252);let f="CM_HOOK_URL",g="CM_HOOK_PORT",h="CM_PORT";function i(a){let b=Object.entries(h in a.env?a.env:{...a.env,[h]:String((0,d.D0)())}).map(([a,b])=>`${a}=${(0,e.ZL)(b)}`);return 0===b.length?a.command:`${b.join(" ")} ${a.command}`}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},51719:(a,b,c)=>{c.d(b,{Ai:()=>g,Cr:()=>l,DH:()=>o,Dg:()=>q,IQ:()=>p,ZL:()=>r,cT:()=>k,dA:()=>i,er:()=>h,lx:()=>n,xz:()=>f,y8:()=>s});var d=c(62887),e=c(57510);let f="permission_prompt",g="question_prompt",h=d.KC,i="error",j=["session.execution.started","session.execution.succeeded","session.execution.failed","session.execution.interrupted","permission.asked","permission.replied","form.created","form.replied","form.cancelled"];function k(a){return null!==a&&j.includes(a)}function l(a){return(0,e.NZ)(a,["type"])}function m(a){return(0,e.Qd)(a.data)?a.data:{}}function n(a){return(0,e.NZ)(m(a),["sessionID"])??(0,e.NZ)(m(a),["form","sessionID"])??(0,e.NZ)(a,["durable","aggregateID"])}function o(a){let b=m(a);switch(l(a)){case"permission.asked":return(0,e.NZ)(b,["id"]);case"form.created":return(0,e.NZ)(b,["form","id"])??(0,e.NZ)(b,["id"]);case"permission.replied":return(0,e.NZ)(b,["requestID"])??(0,e.NZ)(b,["id"]);case"form.replied":case"form.cancelled":return(0,e.NZ)(b,["formID"])??(0,e.NZ)(b,["id"])??(0,e.NZ)(b,["requestID"]);default:return null}}function p(a){return(0,e.hY)(o(a))}function q(a){return(0,e.NZ)(m(a),["action"])}function r(a){let b=m(a);return(0,e.NZ)(b,["error","message"])??(0,e.NZ)(b,["error","data","message"])??(0,e.NZ)(b,["error","name"])??(0,e.NZ)(b,["message"])}let s=[(0,e.KR)("session.execution.started","user_prompt_submit"),(0,e.KR)("session.execution.succeeded","stop"),(0,e.KR)("session.execution.interrupted","stop"),(0,e.KR)("session.execution.failed","stop",i),(0,e.KR)("permission.asked","notification",f),(0,e.KR)("permission.replied","notification",h),(0,e.KR)("form.created","notification",g),(0,e.KR)("form.replied","notification",h),(0,e.KR)("form.cancelled","notification",h)].map(a=>(b,c)=>{let d=a(b,c);return d?{...d,conversationId:d.conversationId??n(c)}:null})},54633:(a,b,c)=>{c.d(b,{V:()=>d});let d="copilot"},66101:(a,b,c)=>{c.d(b,{Kf:()=>j,UB:()=>h,kS:()=>i});var d=c(62887),e=c(57510),f=c(25071);let g={close:async()=>{},liveness:{state:"unknown"}};function h(a){let b=a.nativeEventNameFields??["hook_event_name"];return{cliToolId:a.cliToolId,transport:"push",noDecision:a.noDecision,capabilities:a.capabilities,normalizeEvent(c){let f=c.receivedAt??Date.now(),g=b.length>0?(0,e.oJ)(c.payload,b):null;if(null!=c.event&&(0,d.o0)(c.event))return(0,e.Uq)({event:c.event},c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel});let h=(0,e.qU)(a.mappers,g,c.payload);return h?(0,e.Uq)(h,c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel}):((0,e.ex)(a.cliToolId,g),null)},eventIdentityOf:b=>a.extractEventIdentity?.(b)??null,parsePermissionRequest:a.parsePermissionRequest,parseQuestion:a.parseQuestion,encodeVerdict:b=>({kind:"responseBody",body:a.encodeVerdict(b)}),prepareLaunch:a.prepareLaunch,subscribe:async()=>g,async decide(b,c,d){let e=(0,f.o4)(b,c.id,a.encodeVerdict(d));(0,f.oy)(b,c.id,{delivered:e,reason:e?"response-body":"slot-closed"})},listPending:async a=>(0,f.qK)(a),probeActivity:async()=>null,liveness:()=>({state:"unknown"})}}function i(a){let b=a.nativeEventNameFields??["type"];return{cliToolId:a.cliToolId,transport:"pull",noDecision:a.noDecision,capabilities:a.capabilities,normalizeEvent(c){let f=c.receivedAt??Date.now(),g=b.length>0?(0,e.oJ)(c.payload,b):null;if(null!=c.event&&(0,d.o0)(c.event))return(0,e.Uq)({event:c.event},c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel});let h=(0,e.qU)(a.mappers,g,c.payload);return h?(0,e.Uq)(h,c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel}):((0,e.ex)(a.cliToolId,g),null)},eventIdentityOf:b=>a.extractEventIdentity?.(b)??null,parsePermissionRequest:a.parsePermissionRequest,parseQuestion:a.parseQuestion,encodeVerdict:()=>({kind:"outOfBand"}),prepareLaunch:a.prepareLaunch??(a=>({command:a.executablePath,settingsPath:null,env:{}})),subscribe:a.subscribe,decide:a.decide,listPending:a.listPending,probeActivity:a.probeActivity,liveness:a.liveness}}function j(a,b,c){let d="pull"===a.transport?"sse":0===a.capabilities.supportedEvents.length?"scraper":"hooks";if("sse"!==d)return{kind:d};switch(b.state){case"live":return c-b.lastHeartbeatAt>=3e4?{kind:"sse",liveness:"stale",degradedReason:"heartbeat_stale"}:{kind:"sse",liveness:"live"};case"lost":return{kind:"scraper",liveness:"stale",degradedReason:b.reason};case"unknown":return{kind:"scraper",degradedReason:"not_subscribed"}}}},76835:(a,b,c)=>{c.d(b,{F:()=>d});let d="antigravity"},77904:(a,b,c)=>{c.d(b,{o:()=>d});let d="gemini"},83738:(a,b,c)=>{c.d(b,{RN:()=>h,gx:()=>q,hl:()=>i,oC:()=>r,rk:()=>p,s8:()=>l,vF:()=>j});var d=c(2466),e=c(57510);function f(a){return"string"==typeof a.type&&(0,e.Qd)(a.data)?(0,e.Qd)(a.data.form)?a.data.form:a.data:a}function g(a){return Array.isArray(a)?a.filter(a=>"string"==typeof a):[]}function h(a){let b=f(a),c=(0,e.O2)(b,"id"),d=(0,e.O2)(b,"sessionID");if(!c||!d||Array.isArray(b.fields))return null;let h=(0,e.O2)(b,"action"),i=(0,e.Qd)(b.metadata)?b.metadata:{};return{toolName:h??"permission",toolInput:{action:h,resources:g(b.resources),...i},promptId:c,sessionId:d,permissionMode:null,permissionSuggestions:Array.isArray(b.save)?b.save:null}}function i(a,b){let c=h(a);return c&&c.promptId?{kind:"permission",id:c.promptId,conversationId:c.sessionId,subject:{kind:"permission",toolName:c.toolName,toolInput:c.toolInput},raw:a,askedAt:b}:null}function j(a){let b=h(a);return b?{toolName:b.toolName,patterns:g(b.permissionSuggestions)}:null}let k=/^(Index: |={3,}$|--- |\+\+\+ )/;function l(a){let b=h(a);if(!b)return null;let c=b.toolInput,d="string"==typeof c.command&&""!==c.command?c.command:g(c.resources).join(", "),f=[""===d?b.toolName:`${b.toolName} ${d}`],i=Array.isArray(c.files)?c.files.filter(e.Qd):[];for(let a of i){let b="string"==typeof a.patch?a.patch.split("\n").filter(a=>!k.test(a)).join("\n").replace(/\n+$/,""):"";""!==b&&(i.length>1&&"string"==typeof a.file&&f.push(a.file),f.push(b))}return f.join("\n")}let m=[{label:"Yes",description:null,value:!0},{label:"No",description:null,value:!1}];function n(a){return a.trim().slice(0,d.Gb)}function o(a){if(!Array.isArray(a.fields))return null;let b=(0,e.O2)(a,"title"),c=[];for(let d of a.fields){if(!(0,e.Qd)(d))return null;if(!0===d.hidden)continue;let a=(0,e.O2)(d,"key");if(null===a)return null;let f=(0,e.O2)(d,"type"),g="boolean"===f?[...m]:"string"===f||"multiselect"===f?function(a){if(!Array.isArray(a)||0===a.length)return null;let b=[];for(let c of a){if(!(0,e.Qd)(c))return null;let a=(0,e.O2)(c,"value"),d=(0,e.O2)(c,"label")??a;if(null===a||null===d)return null;b.push({label:d,description:(0,e.O2)(c,"description"),value:a})}return b}(d.options):null;if(null===g)return null;let h=(0,e.O2)(d,"description")??(0,e.O2)(d,"title")??b;if(null===h)return null;c.push({key:a,question:h,header:(0,e.O2)(d,"title")??b,multiSelect:"multiselect"===f,custom:!0===d.custom&&"boolean"!==f,choices:g})}return c.length>0?c:null}function p(a){let b=f(a),c=(0,e.O2)(b,"id");if(!c)return null;let g=o(b);if(null===g)return null;let h=(0,d.u_)({questions:g.map(a=>({question:a.question,header:a.header,multiSelect:a.multiSelect,options:a.choices.map(a=>({label:a.label,...a.description?{description:a.description}:{}}))}))});return null===h?null:{questions:h.map((a,b)=>g[b]?.custom?{...a,custom:!0}:a),promptId:c}}function q(a,b){let c=f(a),d=p(c);return d&&d.promptId?{kind:"question",id:d.promptId,conversationId:(0,e.O2)(c,"sessionID"),subject:{kind:"question",spec:d},raw:c,askedAt:b}:null}function r(a,b){let c=o(f(a));if(null===c||b.length!==c.length)return null;let d={};for(let[a,e]of c.entries()){let c=[];for(let d of b[a]){let a=n(d),b=e.choices.find(b=>n(b.label)===a)??e.choices.find(a=>a.value===d);if(b)c.push(b.value);else{if(!e.custom||""===d.trim())return null;c.push(d.trim())}}if(e.multiSelect)d[e.key]=c.map(String);else{if(1!==c.length)return null;d[e.key]=c[0]}}return d}},85965:(a,b,c)=>{c.d(b,{cC:()=>u});var d=c(62887),e=c(43252),f=c(72626),g=c(66101),h=c(25071),i=c(49791),j=c(75356),k=c(98211),l=c(18529),m=c(84574),n=c(33198),o=c(85322);let p=(0,f.h)("lib/hooks/sources/opencode/source"),q=d.b0;async function r(a,b,c){let d=a.instanceId??a.cliToolId;if("abstain"===c.kind){p.warn("opencode-verdict-abstained",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,consequence:"the agent waits indefinitely; nothing else will unblock it"}),(0,h.oy)(a,b.id,{delivered:!1,reason:"abstained"});return}let e=(0,m.hC)(a);if(null===e){p.warn("opencode-verdict-undeliverable-no-port",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id}),(0,h.oy)(a,b.id,{delivered:!1,reason:"no-port"});return}if("question"===b.kind){if("answer"!==c.kind){p.info("opencode-question-not-answerable",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,verdict:c.kind}),(0,h.oy)(a,b.id,{delivered:!1,reason:"question-needs-answer-verdict"});return}let f=await (0,i.Ei)(e,b.id,c.answers);p.info("opencode-question-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,delivered:f}),(0,h.oy)(a,b.id,{delivered:f,reason:f?"question-reply":"question-reply-failed"});return}let f=function(a){switch(a.kind){case"allowOnce":return"once";case"allowAlways":return"always";case"deny":return"reject";case"answer":case"abstain":return null}}(c);if(null===f)return void(0,h.oy)(a,b.id,{delivered:!1,reason:"no-wire-value"});let g=await (0,i.LV)(e,b.id,f,"deny"===c.kind?c.message:void 0);p.info("opencode-permission-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,reply:f,delivered:g}),(0,h.oy)(a,b.id,{delivered:g,reason:g?`permission-reply:${f}`:"permission-reply-failed"})}async function s(a){let b=(0,m.hC)(a);if(null===b)return[];let c=Date.now(),[d,e]=await Promise.all([(0,i.Li)(b),(0,i.er)(b)]),f=[];for(let a of d){let b=(0,k.Lu)(a,c);b&&f.push(b)}for(let a of e){let b=(0,k.AB)(a,c);b&&f.push(b)}return f}async function t(a){let b=(0,m.hC)(a);return null===b?null:(0,i.xR)(b)}let u=(0,g.kS)({cliToolId:o.k,noDecision:{kind:"blocks"},capabilities:{supportedEvents:q,configScope:"none",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!0,eventIdentity:"permission-id",resync:"session-status-poll",transcriptHistory:"push",stopReportsSelfResume:!1},mappers:j.lu,nativeEventNameFields:["type"],conversationIdFields:[],extractModel:j.pV,extractEventIdentity:j.oG,parsePermissionRequest:k.FZ,parseQuestion:k.v1,subscribe:(a,b)=>(0,n.bP)(a,b,a=>u.normalizeEvent(a),{resync:u.capabilities.resync}),decide:r,listPending:s,probeActivity:t,liveness:a=>(0,n.lf)(a),prepareLaunch:function({target:a,executablePath:b}){let c={command:/^[A-Za-z0-9_./-]+$/.test(b)?b:(0,e.ZL)(b),settingsPath:null,env:{}};if(!(0,e.q)())return c;let d=(0,m.hC)(a);if(null===d)return c;let f=(0,l.Lj)((0,l.Q1)(a));return{command:`${(0,e.ZL)(b)} --port ${d} --hostname ${i.Vc}`+f,settingsPath:null,env:{}}}})},99432:(a,b,c)=>{c.d(b,{l1:()=>E,JD:()=>F,S9:()=>K,dO:()=>H});var d=c(79646),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(15194),j=c(87447),k=c(43252),l=c(72626),m=c(73434),n=c(66007),o=c(57510);let p=(0,l.h)("lib/hooks/sources/codex/relay-install");function q(a){return(0,g.join)(a,"commandmate","cmate-agent-event.sh")}var r=c(2734);let s=(0,l.h)("lib/hooks/sources/codex/hooks-config"),t="127.0.0.1",u="commandmate:agent-hooks",v="CODEX_HOME",w="CM_AGENT_WORKTREE_ID",x="CM_AGENT_INSTANCE_ID",y="CM_HOOK_URL",z="CM_PERMISSION_HOOK_URL",A="--no-daemon",B=RegExp(`${A}(?![\\w-])`),C=new Map,D={SessionStart:"session_start",UserPromptSubmit:"user_prompt_submit",Stop:"stop",SessionEnd:"session_end"},E="PermissionRequest",F=Object.values(D);function G(){let a=process.env.CM_CODEX_HOOK_TRUST;return"bypass"===a||"never"===a||"auto"===a?a:"auto"}function H(a){if("never"===G())return!1;try{if((0,e.existsSync)((0,g.join)(a,".codex","hooks.json")))return s.info("codex-hooks-trust-withheld-repo-hooks",{worktreePath:a}),!1}catch{return!1}return!0}function I(a={}){let b=(0,g.join)((0,f.homedir)(),".codex");return a.codexHome?(0,h.T)(a.codexHome,b,"CodexHookOptions.codexHome"):(0,h.T)(process.env[v],b,v)}function J(a,b){return`http://${t}:\${CM_PORT:-3000}${a}${b}`}function K(a,b,c={}){let f={command:a,settingsPath:null,env:{}};if(!(0,k.q)())return f;let h=b.instanceId??r.c;if(!(0,n.h6)(b.worktreeId)||!(0,i.n6)(h))return s.warn("codex-hooks-invalid-correlation-key",{worktreeId:b.worktreeId}),f;try{let i=function(a={}){let b=function(a={}){return(0,g.join)(I(a),"hooks.json")}(a);void 0===a.relayScriptPath&&function(a,b){let c=q(a);if(b&&b!==c)try{let a=(0,e.readFileSync)(b,"utf8");if(((0,e.existsSync)(c)?(0,e.readFileSync)(c,"utf8"):null)!==a){(0,e.mkdirSync)((0,g.dirname)(c),{recursive:!0,mode:448});let b=`${c}.tmp`;try{(0,e.writeFileSync)(b,a,{mode:448}),(0,e.renameSync)(b,c)}catch(a){try{(0,e.unlinkSync)(b)}catch{}throw a}p.info("codex-relay-installed",{target:c})}}catch(a){p.warn("codex-relay-install-failed",{target:c,error:a instanceof Error?a.message:String(a)})}(0,e.existsSync)(c)}(I(a),(0,k.Os)());let c=null,d=null;if((0,e.existsSync)(b))try{d=(0,e.readFileSync)(b,"utf8"),c=JSON.parse(d)}catch(a){return s.warn("codex-hooks-config-unreadable",{settingsPath:b,error:a instanceof Error?a.message:String(a)}),null}let f=`${JSON.stringify(function(a,b){let c=(0,o.Qd)(a)?{...a}:{},d=(0,o.Qd)(c.hooks)?c.hooks:{},e={};for(let[a,b]of Object.entries(d))e[a]=Array.isArray(b)?b.map(a=>{if(!(0,o.Qd)(a)||!Array.isArray(a.hooks))return a;let b=a.hooks.filter(a=>!((0,o.Qd)(a)&&"string"==typeof a.command&&a.command.includes(u)));return b.length===a.hooks.length?a:{...a,hooks:b}}).filter(a=>!((0,o.Qd)(a)&&Array.isArray(a.hooks))||a.hooks.length>0):b;for(let[a,c]of Object.entries(b.hooks)){let b=e[a];(void 0===b||Array.isArray(b))&&(e[a]=[...b??[],...c])}return c.hooks=e,c}(c,function(a={}){let b=(b,c)=>({hooks:[{type:"command",command:function(a,b={}){let c=` # ${u}`,d=function(a={}){if(void 0!==a.relayScriptPath)return a.relayScriptPath;var b=I(a);let c=q(b);return(0,e.existsSync)(c)?c:null}(b);if(d)return[(0,k.ZL)(d),"--tool",r.c,"--event",a,"--worktree-id",`"$${w}"`,"--instance-id",`"$${x}"`,"--stdin-json"].join(" ")+c;let f=b.withAuthHeader??(0,k.yc)()?` -H "Authorization: Bearer $${k.XE}"`:"",g=`"\${${y}:-${J(k.jx,"")}}?tool=${r.c}\${${w}:+&worktreeId=$${w}}\${${x}:+&instanceId=$${x}}"`;return`curl -sS -f -m ${k.W6} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${g} >/dev/null 2>&1 || true${c}`}(b,a),timeout:c}]}),c={};for(let[a,d]of Object.entries(D)){let e="SessionEnd"===a?3:k.W6;c[a]=[b(d,e)]}return c[E]=[{hooks:[{type:"command",command:function(a={}){let b=a.withAuthHeader??(0,k.yc)()?` -H "Authorization: Bearer $${k.XE}"`:"",c=`"\${${z}:-${J(k.WZ,`?tool=${r.c}`)}}"`;return`curl -sS -f -m ${k.sI} -X POST -H 'Content-Type: application/json'${b} --data-binary @- ${c} 2>/dev/null || true # ${u}`}(a),timeout:k.sI}]}],{hooks:c}}(a)),null,2)}
5
5
  `;return d===f||((0,e.mkdirSync)((0,g.dirname)(b),{recursive:!0,mode:448}),(0,e.writeFileSync)(b,f,{mode:384})),b}(c);if(!i)return f;let l=c.port??(0,j.D0)(),n=new URLSearchParams({tool:r.c,worktreeId:b.worktreeId,instanceId:h}),F={[v]:I(c),CM_AGENT_TOOL:r.c,[w]:b.worktreeId,[x]:h,[y]:`http://${t}:${l}${k.jx}`,[z]:`http://${t}:${l}${k.WZ}?${n.toString()}`},H=c.supportsNoDaemon??function(a){let b=C.get(a);if(void 0!==b)return b;let c=!1;try{let b=(0,d.spawnSync)(a,["--help"],{encoding:"utf8",timeout:5e3,env:(0,m.hh)()});c=!b.error&&0===b.status&&B.test(String(b.stdout??""))}catch{c=!1}return C.set(a,c),c}(a)?` ${A}`:"",K="bypass"===G()?" --dangerously-bypass-hook-trust":"";return{command:`${(0,k.ZL)(a)} -c features.daemon_auto_start=false${H}${K}`,settingsPath:i,env:F}}catch(a){return s.warn("codex-hooks-config-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),f}}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=8052,exports.ids=[8052],exports.modules={21586:(a,b,c)=>{c.d(b,{$h:()=>h,Cy:()=>s,DE:()=>t,F5:()=>k,IH:()=>f,JK:()=>d,Nb:()=>i,R7:()=>e,RP:()=>n,VU:()=>r,W9:()=>o,Xb:()=>m,bO:()=>q,bm:()=>j,iU:()=>p,qw:()=>l,t7:()=>g});let d=3e5,e=6e4,f=["claude","codex","copilot","antigravity","opencode"],g=1e3,h=5,i=100,j=1e3,k=3e3,l=15e3,m=15e3,n=6e3,o=3e3,p=800,q=500,r=20,s=1e4,t=15e3},40663:(a,b,c)=>{c.d(b,{GI:()=>M,qw:()=>N,xF:()=>J,Hw:()=>O,T5:()=>S,sZ:()=>L,XT:()=>K});var d=c(79646),e=c(29021),f=c(33873),g=c(72626),h=c(34207),i=c(21586);let j=i.RP,k=["user_data","commit_log","issue_context","verification_metrics"];function l(a){let b=a.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"");for(let a of k){let c=RegExp(`</?${a}>`,"gi");b=b.replace(c,a=>a.replace(/</g,"&lt;").replace(/>/g,"&gt;"))}return b.slice(0,h.uv)}function m(a){return null===a?"n/a":`${(100*a).toFixed(1)}%`}var n=c(20137),o=c(52660),p=c(4868),q=c(73753),r=c(14552),s=c(93636),t=c(10406),u=c(79051),v=c(28354);let w=(0,g.h)("github-api"),x=(0,v.promisify)(d.execFile);async function y(){try{return await x("gh",["--version"],{timeout:5e3}),!0}catch{return!1}}async function z(a,b,c){try{if(!await y())return w.debug("gh-cli-unavailable",{issueNumber:a}),null;let{stdout:d}=await x("gh",["issue","view",String(a),"--json","number,title,body,labels,state"],{cwd:b,timeout:i.Cy}),e=JSON.parse(d),f=e.labels.map(a=>"string"==typeof a?a:a.name),g=(e.body??"").slice(0,i.bO);return{repositoryName:c,number:e.number,title:e.title,labels:f,state:e.state,bodySummary:g}}catch(b){return w.debug("get-issue-info-failed",{issueNumber:a,repositoryName:c,error:String(b)}),null}}async function A(a,b){let c=(0,u.Pt)(b).slice(0,i.VU);if(0===c.length||0===a.length)return[];let d=[];for(let b of a)for(let a of c)d.push(z(a,b.path,b.name));let e=await Promise.allSettled(d),f=[];for(let a of e)"fulfilled"===a.status&&null!==a.value&&f.push(a.value);return f}var B=c(58400),C=c(70673),D=c(85322);let E=["directory","title","cwd","root","text","snapshot","output","input","metadata"];function F(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:null}function G(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function H(a){return"object"!=typeof a||null===a||Array.isArray(a)?null:a}let I=(0,g.h)("daily-summary"),J=2*h.uv;function K(){let a=globalThis.__dailySummaryGenerating;return!!a?.active&&(!(Date.now()-a.startedAt>i.R7+1e4)||(I.warn("failsafe-reset",{startedAt:a.startedAt}),globalThis.__dailySummaryGenerating=void 0,!1))}function L(){return K()?globalThis.__dailySummaryGenerating??null:null}class M extends Error{constructor(){super("Summary generation is already in progress"),this.name="ConcurrentGenerationError"}}class N extends Error{constructor(){super("Summary generation timed out"),this.name="GenerationTimeoutError"}}class O extends Error{constructor(a){super(a),this.name="OutputValidationError"}}function P(a,b=0){return null===a?"-":b>0?a.toFixed(b):String(a)}async function Q(a,b){let c,e;try{c=await new Promise((c,e)=>{(0,d.execFile)("opencode",["export","--sanitize",a],{cwd:b,timeout:3e4,maxBuffer:4194304,encoding:"utf8"},(a,b)=>a?e(a):c(b))})}catch(b){return I.debug("opencode-export-failed",{sessionId:a,error:b instanceof Error?b.message:String(b)}),null}try{e=JSON.parse(c)}catch{return I.warn("opencode-export-unparsable",{sessionId:a,bytes:c.length}),null}let f=function(a){let b=[],c=new Set(E),d=(a,e)=>{if(Array.isArray(a))return void a.forEach((a,b)=>d(a,`${e}[${b}]`));if("object"==typeof a&&null!==a)for(let[f,g]of Object.entries(a)){let a=""===e?f:`${e}.${f}`;if(c.has(f)){if(null==g||""===g||"string"==typeof g&&g.startsWith("[redacted:")||function(a){if("object"!=typeof a||null===a||Array.isArray(a))return!1;let b=Object.keys(a);return 1===b.length&&"redacted"===b[0]}(g)||"number"==typeof g||"boolean"==typeof g)continue;b.push({path:a,kind:"string"==typeof g?"plaintext":"unredacted-object"});continue}d(g,a)}};return d(a,""),b}(e);return f.length>0?(I.warn("opencode-export-redaction-audit-failed",{sessionId:a,leaks:f.length,paths:f.slice(0,5).map(a=>a.path)}),null):function(a){let b=H(a);if(null===b)return null;let c=H(b.info);if(null===c)return null;let d=H(c.model),e=null===d?null:G(d,"providerID"),f=null===d?null:G(d,"id"),g=H(c.time),h=0,i=0,j=0,k=new Set;for(let a of Array.isArray(b.messages)?b.messages:[]){let b=H(a);if(null===b)continue;let c=H(b.info),d=null===c?null:G(c,"role");for(let a of("user"===d?h+=1:"assistant"===d&&(i+=1),Array.isArray(b.parts)?b.parts:[])){let b=H(a);if(null===b||"tool"!==G(b,"type"))continue;j+=1;let c=G(b,"tool");null!==c&&k.add(c)}}return{sessionId:G(c,"id"),agent:G(c,"agent"),model:null!==e&&null!==f?`${e}/${f}`:f,version:G(c,"version"),cost:F(c,"cost"),userMessages:h,assistantMessages:i,tools:[...k].sort(),toolCalls:j,createdAt:null===g?null:F(g,"created"),updatedAt:null===g?null:F(g,"updated")}}(e)}async function R(a,b){let c=(0,r.PY)(a,b).filter(a=>a.cliToolId===D.k),d=c.slice(0,20),e=c.length-d.length,f=[],g=Date.now()+9e4,h=0;for(let[a,c]of d.entries()){if(Date.now()>=g){h=d.length-a,I.warn("opencode-export-budget-exhausted",{date:b,abandoned:h});break}let e=await Q(c.sessionId);null!==e&&f.push({worktreeId:c.worktreeId,summary:e})}return{entries:f,skipped:e+h}}async function S(a,b){let{date:c,tool:d,model:g,userInstruction:k}=b;if(K())throw I.warn("concurrent-rejected",{date:c}),new M;globalThis.__dailySummaryGenerating={active:!0,startedAt:Date.now(),date:c,tool:d};try{I.info("generation-started",{date:c,tool:d});try{(0,s.Yc)(a)}catch(a){I.warn("cost-sample-failed",{error:a instanceof Error?a.message:String(a)})}let b=new Date(c+"T00:00:00"),v=new Date(c+"T23:59:59.999"),w=(0,o.getMessagesByDateRange)(a,{after:b,before:v});if(0===w.length)throw new O("No messages found for the specified date");let x=(0,q.vi)(a),y=new Map;for(let a of x)y.set(a.id,a.name);let z=(0,t.Yg)(a),D=z.filter(a=>!!a.enabled&&!!(0,e.existsSync)(a.path)&&!!(0,e.existsSync)((0,f.join)(a.path,".git")));D.length<z.length&&I.info("repositories-filtered",{total:z.length,valid:D.length,skipped:z.length-D.length});let E=b.toISOString(),F=v.toISOString(),G=await (0,C.wj)((0,u.z0)(D,E,F),i.qw,new Map),H=Array.from(G.values()).flatMap(({commits:a})=>a.map(a=>a.message)),K=await (0,C.wj)(A(D,H).catch(()=>[]),i.DE,[]),L=(0,B.hh)(a,{days:1,until:b.getTime()+B.ec}),M=function(a,b,c,d,e,f){let g=`You are a technical report generator. Summarize the following work logs into a concise daily report in Japanese Markdown format.
1
+ "use strict";exports.id=9353,exports.ids=[9353],exports.modules={21586:(a,b,c)=>{c.d(b,{$h:()=>h,Cy:()=>s,DE:()=>t,F5:()=>k,IH:()=>f,JK:()=>d,Nb:()=>i,R7:()=>e,RP:()=>n,VU:()=>r,W9:()=>o,Xb:()=>m,bO:()=>q,bm:()=>j,iU:()=>p,qw:()=>l,t7:()=>g});let d=3e5,e=6e4,f=["claude","codex","copilot","antigravity","opencode"],g=1e3,h=5,i=100,j=1e3,k=3e3,l=15e3,m=15e3,n=6e3,o=3e3,p=800,q=500,r=20,s=1e4,t=15e3},40663:(a,b,c)=>{c.d(b,{GI:()=>M,qw:()=>N,xF:()=>J,Hw:()=>O,T5:()=>S,sZ:()=>L,XT:()=>K});var d=c(79646),e=c(29021),f=c(33873),g=c(72626),h=c(34207),i=c(21586);let j=i.RP,k=["user_data","commit_log","issue_context","verification_metrics"];function l(a){let b=a.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"");for(let a of k){let c=RegExp(`</?${a}>`,"gi");b=b.replace(c,a=>a.replace(/</g,"&lt;").replace(/>/g,"&gt;"))}return b.slice(0,h.uv)}function m(a){return null===a?"n/a":`${(100*a).toFixed(1)}%`}var n=c(20137),o=c(52660),p=c(4868),q=c(73753),r=c(14552),s=c(93636),t=c(10406),u=c(79051),v=c(28354);let w=(0,g.h)("github-api"),x=(0,v.promisify)(d.execFile);async function y(){try{return await x("gh",["--version"],{timeout:5e3}),!0}catch{return!1}}async function z(a,b,c){try{if(!await y())return w.debug("gh-cli-unavailable",{issueNumber:a}),null;let{stdout:d}=await x("gh",["issue","view",String(a),"--json","number,title,body,labels,state"],{cwd:b,timeout:i.Cy}),e=JSON.parse(d),f=e.labels.map(a=>"string"==typeof a?a:a.name),g=(e.body??"").slice(0,i.bO);return{repositoryName:c,number:e.number,title:e.title,labels:f,state:e.state,bodySummary:g}}catch(b){return w.debug("get-issue-info-failed",{issueNumber:a,repositoryName:c,error:String(b)}),null}}async function A(a,b){let c=(0,u.Pt)(b).slice(0,i.VU);if(0===c.length||0===a.length)return[];let d=[];for(let b of a)for(let a of c)d.push(z(a,b.path,b.name));let e=await Promise.allSettled(d),f=[];for(let a of e)"fulfilled"===a.status&&null!==a.value&&f.push(a.value);return f}var B=c(58400),C=c(70673),D=c(85322);let E=["directory","title","cwd","root","text","snapshot","output","input","metadata"];function F(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:null}function G(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function H(a){return"object"!=typeof a||null===a||Array.isArray(a)?null:a}let I=(0,g.h)("daily-summary"),J=2*h.uv;function K(){let a=globalThis.__dailySummaryGenerating;return!!a?.active&&(!(Date.now()-a.startedAt>i.R7+1e4)||(I.warn("failsafe-reset",{startedAt:a.startedAt}),globalThis.__dailySummaryGenerating=void 0,!1))}function L(){return K()?globalThis.__dailySummaryGenerating??null:null}class M extends Error{constructor(){super("Summary generation is already in progress"),this.name="ConcurrentGenerationError"}}class N extends Error{constructor(){super("Summary generation timed out"),this.name="GenerationTimeoutError"}}class O extends Error{constructor(a){super(a),this.name="OutputValidationError"}}function P(a,b=0){return null===a?"-":b>0?a.toFixed(b):String(a)}async function Q(a,b){let c,e;try{c=await new Promise((c,e)=>{(0,d.execFile)("opencode",["export","--sanitize",a],{cwd:b,timeout:3e4,maxBuffer:4194304,encoding:"utf8"},(a,b)=>a?e(a):c(b))})}catch(b){return I.debug("opencode-export-failed",{sessionId:a,error:b instanceof Error?b.message:String(b)}),null}try{e=JSON.parse(c)}catch{return I.warn("opencode-export-unparsable",{sessionId:a,bytes:c.length}),null}let f=function(a){let b=[],c=new Set(E),d=(a,e)=>{if(Array.isArray(a))return void a.forEach((a,b)=>d(a,`${e}[${b}]`));if("object"==typeof a&&null!==a)for(let[f,g]of Object.entries(a)){let a=""===e?f:`${e}.${f}`;if(c.has(f)){if(null==g||""===g||"string"==typeof g&&g.startsWith("[redacted:")||function(a){if("object"!=typeof a||null===a||Array.isArray(a))return!1;let b=Object.keys(a);return 1===b.length&&"redacted"===b[0]}(g)||"number"==typeof g||"boolean"==typeof g)continue;b.push({path:a,kind:"string"==typeof g?"plaintext":"unredacted-object"});continue}d(g,a)}};return d(a,""),b}(e);return f.length>0?(I.warn("opencode-export-redaction-audit-failed",{sessionId:a,leaks:f.length,paths:f.slice(0,5).map(a=>a.path)}),null):function(a){let b=H(a);if(null===b)return null;let c=H(b.info);if(null===c)return null;let d=H(c.model),e=null===d?null:G(d,"providerID"),f=null===d?null:G(d,"id"),g=H(c.time),h=0,i=0,j=0,k=new Set;for(let a of Array.isArray(b.messages)?b.messages:[]){let b=H(a);if(null===b)continue;let c=H(b.info),d=null===c?null:G(c,"role");for(let a of("user"===d?h+=1:"assistant"===d&&(i+=1),Array.isArray(b.parts)?b.parts:[])){let b=H(a);if(null===b||"tool"!==G(b,"type"))continue;j+=1;let c=G(b,"tool");null!==c&&k.add(c)}}return{sessionId:G(c,"id"),agent:G(c,"agent"),model:null!==e&&null!==f?`${e}/${f}`:f,version:G(c,"version"),cost:F(c,"cost"),userMessages:h,assistantMessages:i,tools:[...k].sort(),toolCalls:j,createdAt:null===g?null:F(g,"created"),updatedAt:null===g?null:F(g,"updated")}}(e)}async function R(a,b){let c=(0,r.PY)(a,b).filter(a=>a.cliToolId===D.k),d=c.slice(0,20),e=c.length-d.length,f=[],g=Date.now()+9e4,h=0;for(let[a,c]of d.entries()){if(Date.now()>=g){h=d.length-a,I.warn("opencode-export-budget-exhausted",{date:b,abandoned:h});break}let e=await Q(c.sessionId);null!==e&&f.push({worktreeId:c.worktreeId,summary:e})}return{entries:f,skipped:e+h}}async function S(a,b){let{date:c,tool:d,model:g,userInstruction:k}=b;if(K())throw I.warn("concurrent-rejected",{date:c}),new M;globalThis.__dailySummaryGenerating={active:!0,startedAt:Date.now(),date:c,tool:d};try{I.info("generation-started",{date:c,tool:d});try{(0,s.Yc)(a)}catch(a){I.warn("cost-sample-failed",{error:a instanceof Error?a.message:String(a)})}let b=new Date(c+"T00:00:00"),v=new Date(c+"T23:59:59.999"),w=(0,o.getMessagesByDateRange)(a,{after:b,before:v});if(0===w.length)throw new O("No messages found for the specified date");let x=(0,q.vi)(a),y=new Map;for(let a of x)y.set(a.id,a.name);let z=(0,t.Yg)(a),D=z.filter(a=>!!a.enabled&&!!(0,e.existsSync)(a.path)&&!!(0,e.existsSync)((0,f.join)(a.path,".git")));D.length<z.length&&I.info("repositories-filtered",{total:z.length,valid:D.length,skipped:z.length-D.length});let E=b.toISOString(),F=v.toISOString(),G=await (0,C.wj)((0,u.z0)(D,E,F),i.qw,new Map),H=Array.from(G.values()).flatMap(({commits:a})=>a.map(a=>a.message)),K=await (0,C.wj)(A(D,H).catch(()=>[]),i.DE,[]),L=(0,B.hh)(a,{days:1,until:b.getTime()+B.ec}),M=function(a,b,c,d,e,f){let g=`You are a technical report generator. Summarize the following work logs into a concise daily report in Japanese Markdown format.
2
2
 
3
3
  Rules:
4
4
  - Summarize by worktree/branch
@@ -71,4 +71,6 @@ ${e}`)}catch(a){I.warn("opencode-export-section-failed",{date:c,error:a instance
71
71
  WHERE created_at >= ? AND created_at < ?
72
72
  AND event IN ('prompt_answered_human', 'prompt_answered_auto')
73
73
  GROUP BY event
74
- `).all(b,c));return{humanResponds:d.get("prompt_answered_human")??0,autoAnswered:d.get("prompt_answered_auto")??0}}(a,l,k):{humanResponds:0,autoAnswered:0},suppressedByPolicy:null}}}},70673:(a,b,c)=>{function d(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function e(a,b=30){return a.length<=b?a:`${a.substring(0,b-3)}...`}c.d(b,{Nt:()=>d,W5:()=>e,wj:()=>g});class f extends Error{constructor(a){super(a),this.name="TimeoutError"}}function g(a,b,c){return new Promise((d,e)=>{let g=setTimeout(()=>{void 0!==c?d(c):e(new f(`Operation timed out after ${b}ms`))},b);a.then(a=>{clearTimeout(g),d(a)},a=>{clearTimeout(g),e(a)})})}},73434:(a,b,c)=>{c.d(b,{hh:()=>f});let d=["CLAUDECODE","CM_AUTH_TOKEN","CM_AUTH_TOKEN_HASH","CM_AUTH_EXPIRE","CM_HTTPS_KEY","CM_HTTPS_CERT","CM_ALLOWED_IPS","CM_TRUST_PROXY","CM_DB_PATH","GH_DEBUG"],e=["CM_AGENT_INSTANCE_ID","CM_AGENT_TOOL","CM_AGENT_WORKTREE_ID","CM_HOOK_PORT","CM_HOOK_URL","CM_PERMISSION_HOOK_URL"];function f(){let a={...process.env};for(let b of Object.keys(a))(d.includes(b)||e.includes(b)||b.startsWith("CM_HOOK_"))&&delete a[b];return a}},85322:(a,b,c)=>{c.d(b,{k:()=>d});let d="opencode"}};
74
+ `).all(b,c));return{humanResponds:d.get("prompt_answered_human")??0,autoAnswered:d.get("prompt_answered_auto")??0}}(a,l,k):{humanResponds:0,autoAnswered:0},suppressedByPolicy:null}}}},70673:(a,b,c)=>{function d(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function e(a,b=30){return a.length<=b?a:`${a.substring(0,b-3)}...`}c.d(b,{Nt:()=>d,W5:()=>e,wj:()=>g});class f extends Error{constructor(a){super(a),this.name="TimeoutError"}}function g(a,b,c){return new Promise((d,e)=>{let g=setTimeout(()=>{void 0!==c?d(c):e(new f(`Operation timed out after ${b}ms`))},b);a.then(a=>{clearTimeout(g),d(a)},a=>{clearTimeout(g),e(a)})})}},73434:(a,b,c)=>{c.d(b,{hh:()=>f});let d=["CLAUDECODE","CM_AUTH_TOKEN","CM_AUTH_TOKEN_HASH","CM_AUTH_EXPIRE","CM_HTTPS_KEY","CM_HTTPS_CERT","CM_ALLOWED_IPS","CM_TRUST_PROXY","CM_DB_PATH","GH_DEBUG"],e=["CM_AGENT_INSTANCE_ID","CM_AGENT_TOOL","CM_AGENT_WORKTREE_ID","CM_HOOK_PORT","CM_HOOK_URL","CM_PERMISSION_HOOK_URL"];function f(){let a={...process.env};for(let b of Object.keys(a))(d.includes(b)||e.includes(b)||b.startsWith("CM_HOOK_"))&&delete a[b];return a}},81776:(a,b,c)=>{c.d(b,{B0:()=>o,En:()=>l,n$:()=>m});var d=c(79646),e=c(29021),f=c(21820),g=c(33873),h=c(73434);let i="copilot",j=/(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?)/;function k(a){try{if(!(0,e.statSync)(a).isFile())return!1;return(0,e.accessSync)(a,e.constants.X_OK),!0}catch{return!1}}function l(a){return m(a,1)[0]??null}function m(a,b=1/0){let c=process.env.PATH;if(!c||b<=0)return[];let d=[];for(let e of c.split(g.delimiter)){if(!e)continue;let c=(0,g.join)(e,a);if(!d.includes(c)&&k(c)&&(d.push(c),d.length>=b))break}return d}function n(a){return new Promise(b=>{(0,d.execFile)(a,["--version"],{timeout:5e3,maxBuffer:65536,env:(0,h.hh)()},(a,c,d)=>{if(a)return void b(null);let e=j.exec(`${c??""}
75
+ ${d??""}`);b(e?e[1]:null)})})}async function o(){let a=l(i);if(a){let b=await n(a);if(b)return{path:a,version:b,source:"path"}}if(!l("gh"))return null;for(let a of function(){let a=process.env.XDG_DATA_HOME||(0,g.join)((0,f.homedir)(),".local","share"),b=(0,g.join)(a,"gh",i);return[b,(0,g.join)(b,i)]}()){if(!k(a))continue;let b=await n(a);if(b)return{path:a,version:b,source:"gh-managed"}}return null}},85322:(a,b,c)=>{c.d(b,{k:()=>d});let d="opencode"},95759:(a,b,c)=>{c.d(b,{$s:()=>m,Qq:()=>n,b6:()=>h,mV:()=>o});var d=c(79646),e=c(81776),f=c(73434);let g="opencode",h="opencode2",i=/^opencode v(\d+)\.(\d+)\.(\d+)((?:[-+][0-9A-Za-z.-]+)?)$/,j=/^v?(\d+)\.(\d+)\.(\d+)((?:[-+][0-9A-Za-z.-]+)?)$/,k=new Map;async function l(a,b){let c=[];for(let g of a)for(let a of(0,e.n$)(g,4)){if(c.some(b=>b.path===a))continue;let e=await function(a){let b=Date.now(),c=k.get(a);if(c&&c.expiresAt>b)return c.info;let e=new Promise(b=>{try{(0,d.execFile)(a,["--version"],{timeout:5e3,maxBuffer:65536,env:(0,f.hh)()},(a,c,d)=>{if(a)return void b(null);b(function(a){for(let b of a.split(/\r?\n/)){let a=b.trim();if(!a)continue;let c=i.exec(a)??j.exec(a);if(!c)continue;let d=Number(c[1]),e=`${c[1]}.${c[2]}.${c[3]}${c[4]??""}`;if(1===d)return{generation:"v1",version:e};if(d>=2)return{generation:"v2",version:e};break}return null}(`${c??""}
76
+ ${d??""}`))})}catch{b(null)}});return k.set(a,{expiresAt:b+3e4,info:e}),e}(a);if(c.push({path:a,info:e}),e?.generation===b)return{executable:{path:a,version:e.version,generation:b},probed:c}}return{executable:null,probed:c}}function m(){return l([g],"v1")}function n(){return l([h,g],"v2")}function o(a){if(a.executable)return null;let b=a.probed.find(a=>a.info?.generation==="v2");if(b?.info)return`\`opencode\` at ${b.path} is OpenCode V2 ${b.info.version}, not OpenCode 1.x (npm \`@opencode/cli\` registers both \`opencode\` and \`opencode2\`). Use the OpenCode V2 agent, or put an OpenCode 1.x \`opencode\` on PATH.`;let c=a.probed[0];return c?`\`opencode\` at ${c.path} did not report an OpenCode 1.x version (\`opencode --version\`).`:null}}};
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=9390,exports.ids=[9390],exports.modules={2466:(a,b,c)=>{c.d(b,{Gb:()=>e,ek:()=>i,u_:()=>h});var d=c(13287);let e=200;function f(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function g(a,b){if("string"!=typeof a)return null;let c=a.trim();return""===c?null:c.slice(0,b)}function h(a){if(!f(a)||!Array.isArray(a.questions)||0===a.questions.length||a.questions.length>20)return null;let b=[];for(let c of a.questions){let a=function(a){if(!f(a))return null;let b=g(a.question,1e3);if(null===b||!Array.isArray(a.options)||0===a.options.length||a.options.length>20)return null;let c=[];for(let b of a.options){let a=function(a){if(!f(a))return null;let b=g(a.label,e);return null===b?null:{label:b,description:g(a.description,500)}}(b);if(null===a)return null;c.push(a)}return{question:b,header:g(a.header,64),multiSelect:!0===a.multiSelect,choices:c}}(c);if(null===a)return null;b.push(a)}return b}function i(a){if(!f(a)||a.tool_name!==d.k$)return null;let b=h(a.tool_input);return null===b?null:{questions:b,promptId:g(a.prompt_id,256)}}},18529:(a,b,c)=>{c.d(b,{$x:()=>s,Lj:()=>t,Q1:()=>r,QH:()=>u});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(24455),i=c(72626),j=c(43252),k=c(79827);let l=(0,i.h)("lib/hooks/sources/opencode/launch-settings"),m=globalThis.__opencodeLaunchSettings??=new Map;function n(a){return(0,h.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function o(){let a=(0,f.join)((0,e.homedir)(),".commandmate","opencode-launch-settings.json");return(0,g.T)(process.env.CM_OPENCODE_LAUNCH_SETTINGS_FILE,a,"CM_OPENCODE_LAUNCH_SETTINGS_FILE")}function p(){try{let a=JSON.parse((0,d.readFileSync)(o(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a)){let a=(0,k.ZH)(d);(0,k.Mj)(a)&&(b[c]=a)}return b}catch{return{}}}function q(a){let b=o();try{(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
2
+ `,{mode:384})}catch(a){l.warn("opencode-launch-settings-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function r(a){let b=n(a),c=m.get(b);if(c)return c;let d=p()[b];return d?(m.set(b,d),d):{...k.gF}}function s(a,b){let c=n(a),d=(0,k.ZH)(b??{}),e=p();return(0,k.Mj)(d)?(m.set(c,d),e[c]=d,q(e)):(m.delete(c),c in e&&(delete e[c],q(e))),d}function t(a){let b=(0,k.ZH)(a??{}),c=[];b.agent&&c.push(`--agent ${(0,j.ZL)(b.agent)}`);let d=(0,k.sw)(b);return d&&c.push(`--model ${(0,j.ZL)(d)}`),c.length>0?` ${c.join(" ")}`:""}function u(a){let b=(0,k.ZH)(a??{}),c={};return b.agent&&(c.agent=b.agent),b.providerId&&b.modelId&&(c.model={providerID:b.providerId,modelID:b.modelId}),b.variant&&(c.variant=b.variant),Object.keys(c).length>0?c:null}},27128:(a,b,c)=>{function d(a){return a.split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n")}function e(a){let b=[],c=[],e=[];for(let d of a)0!==d.text.length&&("tool"===d.kind?e.push(d.text):"reasoning"===d.kind?c.push(d.text):b.push(d.text));let f=b.join("\n\n"),g=0===c.length?"":[`> **Thinking (${c.length})**`,">",c.map(d).join("\n>\n")].join("\n"),h=0===e.length?"":[`> **Tool calls (${e.length})**`,">",...e.map(d)].join("\n");return{body:[f,g,h].filter(a=>a.length>0).join("\n\n"),prose:f,reasoningLog:g,reasoningBlocks:c.length,toolLog:h,toolCalls:e.length}}c.d(b,{t3:()=>e})},27939:(a,b,c)=>{c.d(b,{F_:()=>r,KA:()=>s,XO:()=>v,Y2:()=>l,jp:()=>k,lr:()=>t,pr:()=>u});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(24455);let i=(0,c(72626).h)("lib/session/opencode-session-store"),j=/^ses[A-Za-z0-9_-]{1,128}$/;function k(a){return"string"==typeof a&&j.test(a)}let l=200,m=globalThis.__opencodeSessionMemories??=new Map;function n(a){return(0,h.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function o(){let a=(0,f.join)((0,e.homedir)(),".commandmate","opencode-sessions.json");return(0,g.T)(process.env.CM_OPENCODE_SESSION_FILE,a,"CM_OPENCODE_SESSION_FILE")}function p(){try{let a=JSON.parse((0,d.readFileSync)(o(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&k(d.sessionId)&&"string"==typeof d.worktreePath&&d.worktreePath.length>0&&(b[c]={sessionId:d.sessionId,title:"string"==typeof d.title?d.title:null,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function q(a){let b=o();try{(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
3
+ `,{mode:384})}catch(a){i.warn("opencode-session-file-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function r(a,b,c=Date.now()){if(!k(b.sessionId))return i.warn("opencode-session-id-rejected",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),!1;if(0===b.worktreePath.length)return!1;let d={sessionId:b.sessionId,title:"string"==typeof b.title?b.title.slice(0,l):null,worktreePath:b.worktreePath,updatedAt:c},e=n(a);m.set(e,d);let f=p();return f[e]=d,q(f),!0}function s(a){let b=n(a),c=m.get(b);if(c)return c;let d=p()[b];return d?(m.set(b,d),d):null}function t(a){let b=n(a);m.delete(b);let c=p();b in c&&(delete c[b],q(c))}function u(a,b){let c=s(a);return c?c.worktreePath!==b?(i.info("opencode-session-recovery-path-mismatch",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,recorded:c.worktreePath}),null):k(c.sessionId)?c.sessionId:null:null}function v(a,b){return k(b)?`${a} -s ${b}`:a}},33198:(a,b,c)=>{c.d(b,{FN:()=>R,lf:()=>J,ym:()=>N,hS:()=>L,f4:()=>M,wb:()=>I,bP:()=>P,yn:()=>K,H1:()=>O});var d=c(72626),e=c(24455),f=c(3161),g=c(48083),h=c(27939),i=c(62171),j=c(57510),k=c(49791),l=c(86594),m=c(98322);let n=(0,d.h)("lib/hooks/sources/opencode/history"),o=globalThis.__opencodeTranscripts??=new Map;function p(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function q(a){let b=p(a),c=o.get(b);return c||(c=new Map,o.set(b,c)),c}async function r(a,b){try{let{emitChatTurnProgress:d}=await Promise.all([c.e(1356),c.e(1503),c.e(1634),c.e(1191),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(252),c.e(8800),c.e(7491),c.e(3480),c.e(9130),c.e(7905),c.e(9731),c.e(8728),c.e(8918),c.e(650),c.e(611),c.e(9882),c.e(964)]).then(c.bind(c,94676));await d({worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId},()=>{let a=(0,m.JZ)(b);return 0===a.body.length?null:{turnKey:(0,l.jT)(a.userMessageId),body:a.body,partial:!1}})}catch(b){n.debug("opencode-transcript-progress-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}function s(a){return"number"==typeof a&&Number.isFinite(a)?a:null}async function t(a,b,c=Date.now()){let d=o.get(p(a)),e=d?.get(b);return!!e&&!!d&&(d.delete(b),u(a,(0,m.JZ)(e),Math.max(e.startedAt,c),"stream"))}async function u(a,b,d,e){let f=a.instanceId??a.cliToolId;try{if(0===b.body.length)return n.info("opencode-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,origin:e}),!1;b.unknownPartTypes.length>0&&n.info("opencode-transcript-unknown-parts",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,partTypes:b.unknownPartTypes});let g=(0,l.jT)(b.userMessageId),[{getDbInstance:h},{createMessage:i,findMessageByRequestId:j},{broadcastMessage:k}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(8728),c.e(8583)]).then(c.bind(c,43015))]),m=h();if(j(m,a.worktreeId,g))return n.debug("opencode-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:f,requestId:g,origin:e}),!1;let o=i(m,{worktreeId:a.worktreeId,role:"assistant",content:b.body,messageType:"normal",timestamp:new Date(d>0?d:Date.now()),cliToolId:a.cliToolId,instanceId:f,requestId:g});return k("message",{worktreeId:a.worktreeId,message:o}),n.info("opencode-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,requestId:g,origin:e,bodyLength:b.body.length,textParts:b.textParts,toolParts:b.toolParts}),!0}catch(c){return n.error("opencode-transcript-write-failed",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,origin:e,error:c instanceof Error?c.message:String(c)}),!1}}async function v(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=await (0,k.EI)(b,c);if(null===e)return n.info("opencode-transcript-backfill-unavailable",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c}),0;let f=(0,m.ed)(e,c),g=[...f].sort((a,b)=>b.startedAt-a.startedAt),h=g.slice(0,50);g.length>h.length&&n.warn("opencode-transcript-backfill-truncated",{worktreeId:a.worktreeId,instanceId:d,sessionId:c,examined:h.length,skipped:g.length-h.length,limit:50});let i=function(a){let b=new Map;if(!Array.isArray(a))return b;for(let c of a){if(!(0,j.Qd)(c))continue;let a=(0,j.Qd)(c.info)?c.info:null;if(!a||"assistant"!==a.role)continue;let d=(0,j.O2)(a,m.Pv);if(!d)continue;let e=(0,j.Qd)(a.time)?a.time:null,f=s(e?.completed)??s(e?.created)??null;null!==f&&f>(b.get(d)??0)&&b.set(d,f)}return b}(e),l=0;for(let b of[...h].reverse())await u(a,(0,m.JZ)(b),Math.max(b.startedAt,i.get(b.userMessageId)??0),"backfill")&&(l+=1);return n.info("opencode-transcript-backfill-done",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c,turns:f.length,written:l}),l}catch(e){return n.error("opencode-transcript-backfill-failed",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c,error:e instanceof Error?e.message:String(e)}),0}}var w=c(75356),x=c(98211),y=c(90488),z=c(84574);function A(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["sessionID"])}function B(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}let C=(0,d.h)("lib/hooks/sources/opencode/subscription"),D=[1e3,2e3,4e3,8e3,15e3,3e4],E=globalThis.__opencodeSubscriptions??=new Map,F=globalThis.__opencodeDroppedLiveness??=new Map,G=globalThis.__opencodeProbedActivity??=new Map;function H(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function I(a){return E.has(H(a))}function J(a){let b=H(a);return E.get(b)?.liveness??F.get(b)??{state:"unknown"}}function K(a,b,c){G.set(H(a),{activity:b,at:c})}function L(a){return G.get(H(a))??null}function M(a){return"live"===J(a).state}function N(a){return E.get(H(a))?.gate.primarySession()??null}function O(a,b,c){let d=E.get(H(a));if(!d)return{seen:Promise.resolve(!1),cancel:()=>{}};let e=()=>{},f=new Promise(a=>{e=a}),g=d.idleWaiters.get(b)??new Set;d.idleWaiters.set(b,g);let h=null,i=a=>{g.delete(i)&&(0===g.size&&d.idleWaiters.delete(b),null!==h&&clearTimeout(h),e(a))};return g.add(i),h=setTimeout(()=>i(!1),c),h.unref?.(),{seen:f,cancel:()=>i(!1)}}async function P(a,b,c,d={}){let e=H(a),f=E.get(e);if(f)return Q(f);F.delete(e),G.delete(e);let g=d.port??(0,z.hC)(a);if(null===g)return C.info("opencode-subscription-skipped-no-port",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),{close:async()=>{},liveness:{state:"unknown"}};let h={key:e,target:a,port:g,onEvent:b,normalize:c,gate:function(a=64,b=512,c=64){let d=new Map,e=new Set,f=new Set,g=null,h=(b,c)=>{d.delete(b),d.set(b,c),B(d,a)},i=()=>null!==g&&"busy"===d.get(g),k=a=>{var b;h(a,"busy"),b=a,!f.has(b)&&g!==b&&(i()||(g=b))};return{observe(a,l){let m=function(a){let b=(0,j.Qd)(a.properties)?a.properties:{},c=(0,j.Qd)(b.info)?b.info:null;return null!==c&&(0,j.NZ)(c,["parentID"])?(0,j.NZ)(c,["id"])??(0,j.NZ)(b,["sessionID"]):null}(l);if(null!==m&&(f.add(m),B(f,c),g===m&&(g=null)),"message.updated"===a){let{role:a,id:c}=function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return{role:(0,j.NZ)(b,["info","role"]),id:(0,j.NZ)(b,["info","id"])}}(l);if("user"!==a||null===c)return{kind:"ignored"};let d=A(l)??"";return e.has(c)?{kind:"suppressed",sessionId:d,reason:"already-announced"}:(e.add(c),B(e,b),{kind:"announced",sessionId:d,messageId:c})}if("session.status"===a){if("busy"!==function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["status","type"])}(l))return{kind:"ignored"};let a=A(l);return null===a?{kind:"ignored"}:(k(a),{kind:"armed",sessionId:a})}if("session.error"===a){let a=A(l);return null===a?{kind:"ignored"}:{kind:"failed",sessionId:a,errorName:function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["error","name"])}(l)}}if("session.idle"!==a)return{kind:"ignored"};let n=A(l);if(null===n)return{kind:"ignored"};if(f.has(n)||null!==g&&n!==g&&i())return h(n,"idle"),{kind:"suppressed",sessionId:n,reason:"foreign-session"};let o=d.get(n);return void 0===o?{kind:"suppressed",sessionId:n,reason:"never-armed"}:"idle"===o?{kind:"suppressed",sessionId:n,reason:"already-completed"}:(h(n,"idle"),{kind:"completed",sessionId:n})},isArmed:a=>"busy"===d.get(a),arm(a){k(a)},armedSessions:()=>[...d.entries()].filter(([,a])=>"busy"===a).map(([a])=>a),primarySession:()=>g,reset(){d.clear(),g=null}}}(),resync:d.resync??"none",seenDecisions:new Set,idleWaiters:new Map,announcedUpdates:new Set,streamController:new AbortController,lifetimeController:new AbortController,serverVersion:null,liveness:{state:"unknown"},closed:!1,watchdog:null};return E.set(e,h),C.info("opencode-subscription-opened",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:g}),U(h),Q(h)}function Q(a){return{close:async()=>{await R(a.target)},get liveness(){return a.liveness}}}async function R(a){let b=H(a);F.delete(b),G.delete(b);let c=E.get(b);if(c){for(let a of(c.closed=!0,S(c),[...c.idleWaiters.values()]))for(let b of[...a])b(!1);c.idleWaiters.clear(),c.streamController.abort(),c.lifetimeController.abort(),E.delete(b),(0,f.cI)(a),o.delete(p(a)),(0,i.WC)(a),C.info("opencode-subscription-closed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c.port})}}function S(a){null!==a.watchdog&&(clearTimeout(a.watchdog),a.watchdog=null)}function T(a){S(a);let b=setTimeout(()=>{a.closed||(C.warn("opencode-subscription-heartbeat-lost",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,afterMs:3e4}),a.streamController.abort())},3e4);b.unref?.(),a.watchdog=b}async function U(a){let b=0;for(;!a.closed;){a.streamController=new AbortController;let c=a.gate.armedSessions();a.gate.reset();let d="stream-ended";try{let e=await V(a);if(a.closed)break;if("changed"===e)return;if("unreachable"===e)d="health-unreachable";else{let d=await (0,k.mi)(a.port,a.streamController.signal);for await(let e of(a.liveness={state:"live",lastHeartbeatAt:Date.now()},T(a),await W(a),await X(a,c),await Y(a),b=0,d))b=0,T(a),function(a,b){let c=(0,j.O2)(b,"type");("server.heartbeat"===c||"server.connected"===c)&&(a.liveness={state:"live",lastHeartbeatAt:Date.now()}),Z(a,b,Date.now())}(a,e)}}catch(a){d=a instanceof Error?a.message:String(a)}finally{S(a)}if(a.closed)break;a.liveness={state:"lost",since:Date.now(),reason:d},C.warn("opencode-subscription-disconnected",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,reason:d,attempt:b}),await function(a,b){return new Promise(c=>{if(b.aborted)return void c();let d=()=>{clearTimeout(e),c()};b.addEventListener("abort",d,{once:!0});let e=setTimeout(()=>{b.removeEventListener("abort",d),c()},a);e.unref?.()})}(function(a){let b=Math.min(a,D.length-1);return D[b]}(b),a.lifetimeController.signal),b+=1}}async function V(a){var b,c;let d=await (0,k.sc)(a.port);if("healthy"!==d.kind)return C.info("opencode-subscription-health-unavailable",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,outcome:d.kind,status:"rejected"===d.kind?d.status:void 0}),"unreachable";let e=d.health.version;return null===a.serverVersion||null===e?(a.serverVersion??=e,"same"):e===a.serverVersion?"same":(b=a,c=e,C.warn("opencode-subscription-port-identity-changed",{worktreeId:b.target.worktreeId,instanceId:b.target.instanceId??b.target.cliToolId,port:b.port,reason:"port_identity_changed",expectedVersion:b.serverVersion,observedVersion:c}),b.closed=!0,S(b),b.streamController.abort(),b.lifetimeController.abort(),b.liveness={state:"lost",since:Date.now(),reason:"port_identity_changed"},E.delete(b.key),F.set(b.key,b.liveness),"changed")}async function W(a){let b=Date.now(),[c,d]=await Promise.all([(0,k.Li)(a.port),(0,k.er)(a.port)]),e=(c,d)=>{let e=c.slice(0,50);for(let f of(c.length>e.length&&C.warn("opencode-resync-truncated",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,type:d,examined:e.length,skipped:c.length-e.length,limit:50}),e)){let c=(0,j.O2)(f,"id");!c||a.seenDecisions.has(c)||Z(a,{id:`resync_${c}`,type:d,properties:f},b)}};e(c,"permission.asked"),e(d,"question.asked")}async function X(a,b){if("session-status-poll"!==a.resync)return;let c=await (0,k.mY)(a.port);if(null===c)return void C.info("opencode-resync-status-unavailable",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port});let d=[];for(let[b,e]of Object.entries(c))"busy"===e&&(a.gate.arm(b),d.push(b));let e=[];for(let d of b)"idle"===c[d]&&(a.gate.arm(d),e.push(d),Z(a,{id:`resync_idle_${d}`,type:"session.idle",properties:{sessionID:d}},Date.now()));(d.length>0||e.length>0)&&C.info("opencode-turn-state-recovered",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,rearmed:d,synthesized:e,primarySession:a.gate.primarySession()})}async function Y(a){try{let b=(0,h.KA)(a.target)?.sessionId??null,c=a.gate.primarySession()??b;if(!c)return;await v(a.target,a.port,c)}catch(b){C.warn("opencode-history-recovery-failed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,error:b instanceof Error?b.message:String(b)})}}function Z(a,b,c){var d,e;let h=(0,j.O2)(b,"type");if("message.part.updated"===h){let a=(0,w.Zu)(b),c=(0,w.Dp)(b);a&&c&&(0,x.XL)(a,c)}if("session.updated"===h){let d=(0,f.Tv)(b,c);d&&(0,f.G1)(a.target,d)}if(("session.updated"===h||"message.updated"===h)&&(0,g.recordAgentReportedEffort)(a.target.worktreeId,a.target.cliToolId,a.target.instanceId,(0,w.Jd)(b)),("message.updated"===h||"message.part.updated"===h)&&function(a,b,c){try{let d=(0,j.O2)(b,"type"),e=(0,j.Qd)(b.properties)?b.properties:{},f=(0,j.O2)(e,"sessionID");if(!f)return;if("message.updated"===d){let b=(0,j.Qd)(e.info)?e.info:null;if(!b||"assistant"!==b.role)return;let d=(0,j.O2)(b,"parentID");if(!d)return;let g=q(a),h=g.get(f),i=h?.userMessageId===d?h:(0,m.lp)(f,d,c);if(i!==h)for(h&&n.info("opencode-transcript-turn-superseded",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,abandoned:h.userMessageId}),g.set(f,i);g.size>16;){let b=g.keys().next();if(b.done)break;g.delete(b.value),n.info("opencode-transcript-turn-evicted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:b.value,reason:"max-open-turns"})}let k=(0,j.O2)(b,"id");k&&(0,m.ZG)(i,k);return}if("message.part.updated"!==d)return;let g=(0,m.TB)(e.part);if(!g)return;let h=q(a).get(f);if(!h||!(0,m.QT)(h,g.messageId))return void n.debug("opencode-transcript-part-unattached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,partType:g.type,reason:h?"foreign-message":"no-open-turn"});(0,m.yG)(h,g)||n.warn("opencode-transcript-turn-overflow",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,partType:g.type}),r(a,h)}catch(b){n.error("opencode-transcript-record-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}(a.target,b,c),("session.diff"===h||"session.updated"===h||"message.updated"===h)&&(0,i.hf)(a.target,b,c),"installation.update-available"===h&&function(a,b,c){let d=(0,j.Qd)(b.properties)?b.properties:{},e=(0,j.O2)(d,"version");if(e){if(a.announcedUpdates.has(e))return C.info("opencode-update-available-repeat-dropped",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,version:e});a.announcedUpdates.add(e),C.info("opencode-update-available",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,version:e}),(0,y.BF)(a.target,a.target.instanceId??a.target.cliToolId,e,c)}}(a,b,c),"session.idle"===h){let c=(0,j.O2)((0,j.Qd)(b.properties)?b.properties:{},"sessionID");if(c){let b=a.idleWaiters.get(c);if(b)for(let a of[...b])a(!0);t(a.target,c)}}let k=a.gate.observe(h,b);"failed"===k.kind&&C.warn("opencode-session-error",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:k.sessionId,errorName:k.errorName});let l=null;try{l=a.normalize({payload:b,receivedAt:c})}catch(a){C.error("opencode-normalize-threw",{type:h,error:a instanceof Error?a.message:String(a)});return}if(!l)return;let o=(d=l.event,e=k,"stop"===d&&"completed"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-turn-end":"user_prompt_submit"===d&&"announced"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-new-prompt":null);if(null!==o)return void C.info("opencode-repeat-suppressed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:l.conversationId,event:l.event,reason:o});!function(a,b){let c=(0,j.O2)(b,"type");if("permission.asked"!==c&&"question.asked"!==c)return;let d=(0,j.Qd)(b.properties)?b.properties:{},e=(0,j.O2)(d,"id");if(e)for(a.seenDecisions.add(e);a.seenDecisions.size>256;){let b=a.seenDecisions.values().next();if(b.done)break;a.seenDecisions.delete(b.value)}}(a,b);try{a.onEvent(l)}catch(a){C.error("opencode-event-handler-failed",{type:h,error:a instanceof Error?a.message:String(a)})}}},62171:(a,b,c)=>{c.d(b,{HL:()=>q,WC:()=>r,hf:()=>p,ki:()=>u,pw:()=>v,rn:()=>s,t2:()=>t});var d=c(72626),e=c(24455),f=c(85322),g=c(84574),h=c(49791);let i=(0,d.h)("lib/hooks/sources/opencode/diff"),j=globalThis.__opencodeSessionDiff??(globalThis.__opencodeSessionDiff=new Map),k=globalThis.__opencodeSessionDiffRefreshes??(globalThis.__opencodeSessionDiffRefreshes=new Set);function l(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function m(a){return{sessionId:null,turnMessageId:null,files:[],filesAt:null,revertedFiles:[],revertedMessageId:null,at:a}}function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(a,b){let c=a[b];return"string"!=typeof c||0===c.length?null:c.slice(0,128)}function p(a,b,c){let d=l(a),e=j.get(d)??m(c),f=function(a){if("message.updated"!==a.type)return null;let b=n(a.properties)?a.properties:null,c=b&&n(b.info)?b.info:null;if(!c||"user"!==c.role)return null;let d=o(c,"id");return d?{sessionId:o(c,"sessionID"),messageId:d}:null}(b);if(f){if(f.messageId===e.turnMessageId)return;j.set(d,{...e,sessionId:f.sessionId??e.sessionId,turnMessageId:f.messageId,files:[],filesAt:null,at:c});return}let g=function(a){let b=a.type,c=n(a.properties)?a.properties:null;if(!c)return null;if("session.diff"===b)return{kind:"files",sessionId:o(c,"sessionID"),files:(0,h.M)(c.diff)};if("session.updated"===b){let a=n(c.info)?c.info:null;if(!a||"string"==typeof a.parentID&&a.parentID.length>0)return null;let b=n(a.revert)?a.revert:null;return{kind:"held",sessionId:o(a,"id"),messageId:b?o(b,"messageID"):null}}return null}(b);if(g){if("files"===g.kind)return void j.set(d,{...e,sessionId:g.sessionId??e.sessionId,revertedFiles:g.files,at:c});j.set(d,{...e,sessionId:g.sessionId??e.sessionId,revertedMessageId:g.messageId,revertedFiles:null===g.messageId?[]:e.revertedFiles,at:c})}}function q(a,b,c){return b!==f.k?null:j.get((0,e.v7)(a,b,c))??null}function r(a){let b=l(a);j.delete(b),k.delete(b)}function s(a){if(a.cliToolId!==f.k)return null;let b=l(a),c=j.get(b);if(!c)return null;if(null!==c.filesAt||null===c.sessionId||null===c.turnMessageId||k.has(b))return c;let d=(0,g.hC)(a);return null===d||(k.add(b),t(a,d,c.sessionId,c.turnMessageId).finally(()=>{k.delete(b)})),c}async function t(a,b,c,d){let e=await (0,h.iv)(b,c,d);if(null===e)return i.debug("opencode-turn-diff-unavailable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:c}),null;let f=l(a),g=j.get(f);return g&&g.turnMessageId===d&&j.set(f,{...g,files:e,filesAt:Date.now()}),e}function u(a,b,c){let d=l(a),e=Date.now(),f=j.get(d)??m(e);j.set(d,{...f,revertedMessageId:b,revertedFiles:c,at:e})}function v(a,b){let c=q(a,f.k,b);if(!c)return null;let d=new Set;for(let a of[...c.files,...c.revertedFiles])null!==a.file&&d.add(a.file);let e=[...c.files,...c.revertedFiles].filter(a=>null===a.file).length;return d.size+e}},75356:(a,b,c)=>{c.d(b,{C8:()=>h,Dp:()=>o,Jd:()=>l,Mn:()=>q,Tm:()=>g,Zu:()=>p,aF:()=>f,lu:()=>t,oG:()=>r,pV:()=>k,vE:()=>i});var d=c(62887),e=c(57510);let f="permission_prompt",g="question_prompt",h=d.KC,i="error";function j(a){return(0,e.Qd)(a.properties)?a.properties:{}}function k(a){let b=j(a).info;return(0,e.Qd)(b)?(0,e.NZ)(b,["model","modelID"])??(0,e.NZ)(b,["model","id"]):null}function l(a){let b=j(a).info;return(0,e.Qd)(b)?(0,e.NZ)(b,["model","variant"])??(0,e.NZ)(b,["variant"]):null}function m(a){return(0,e.NZ)(j(a),["part","state","status"])}function n(a){return"tool"===(0,e.NZ)(j(a),["part","type"])}function o(a){return(0,e.NZ)(j(a),["part","tool"])}function p(a){return(0,e.NZ)(j(a),["part","callID"])}function q(a){return(0,e.NZ)(j(a),["requestID"])}function r(a){let b=j(a);switch((0,e.NZ)(a,["type"])){case"permission.asked":case"question.asked":return(0,e.hY)((0,e.NZ)(b,["id"]));case"permission.replied":return(0,e.hY)(q(a));case"message.updated":return(0,e.hY)((0,e.NZ)(b,["info","id"]));case"message.part.updated":return(0,e.hY)(p(a));default:return null}}let s=["completed","error"],t=[(0,e.KR)("session.idle","stop"),(0,e.KR)("session.created","session_start"),(0,e.KR)("session.deleted","session_end"),(a,b)=>"message.updated"===a&&"user"===(0,e.NZ)(j(b),["info","role"])?{event:"user_prompt_submit"}:null,(a,b)=>"message.part.updated"===a&&n(b)&&"running"===m(b)?{event:"pre_tool_use",detail:(0,e.Wv)(o(b)),toolCallId:p(b)}:null,(a,b)=>"message.part.updated"===a&&n(b)&&s.includes(m(b)??"")?{event:"post_tool_use",detail:(0,e.Wv)(o(b)),toolCallId:p(b)}:null,(0,e.KR)("permission.asked","notification",f),(0,e.KR)("question.asked","notification",g),(0,e.KR)("session.error","notification",i),(0,e.KR)("permission.replied","notification",h)].map(function(a){return(b,c)=>{let d=a(b,c);return d?{...d,conversationId:d.conversationId??(0,e.NZ)(j(c),["sessionID"])}:null}})},85322:(a,b,c)=>{c.d(b,{k:()=>d});let d="opencode"},86594:(a,b,c)=>{function d(a){return`oc-turn:${a}`}function e(a){return`claude-turn:${a}`}function f(a){return`claude-prompt:${a}`}c.d(b,{Ac:()=>j,H_:()=>f,O1:()=>k,ST:()=>g,TW:()=>n,Wr:()=>h,ZS:()=>i,jN:()=>l,jT:()=>d,qe:()=>e,sT:()=>m});let g="partial:";function h(a,b){return`${g}${a}:${b}`}function i(a){return`codex-turn:${a}`}function j(a){return`codex-prompt:${a}`}function k(a,b){return`antigravity-turn:${a}#${b}`}function l(a,b){return`antigravity-prompt:${a}#${b}`}function m(a){return`command-code-turn:${a}`}function n(a){return`command-code-prompt:${a}`}},90488:(a,b,c)=>{c.d(b,{BF:()=>j,Vo:()=>h,dJ:()=>i});let d=(0,c(72626).h)("lib/hooks/sources/opencode/push");async function e(a){try{let[{getDbInstance:b},{getWorktreeById:d}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]);return d(b(),a)?.name??a}catch{return a}}async function f(){return Promise.all([c.e(1356),c.e(1191)]).then(c.bind(c,61191))}async function g(a,b){return{worktreeId:a.worktreeId,worktreeName:await e(a.worktreeId),instanceId:b}}async function h(a,b,c,e){try{let{notifyPushSubscribers:h,buildExcerpt:i}=await f(),j=await g(a,b);await h({...j,kind:"prompt",agentName:b,waitingKind:"prompt",waitingSince:e,excerpt:i(c??void 0,80)},e),d.info("opencode-question-push-sent",{worktreeId:a.worktreeId,instanceId:b,hasQuestion:null!==c})}catch(c){d.warn("opencode-question-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}async function i(a,b,c,e,h,i){if("MessageAbortedError"===c)return void d.info("opencode-error-push-skipped-interrupt",{worktreeId:a.worktreeId,instanceId:b,errorName:c});try{let{notifyPushSubscribers:j,buildExcerpt:k}=await f(),l=await g(a,b);await j({...l,kind:"failure",agentName:b,excerpt:k(e??void 0,80),failure:{reason:"agent-session-error",signature:`opencode:session-error:${h??"unknown"}:${c??"unknown"}`}},i),d.info("opencode-error-push-sent",{worktreeId:a.worktreeId,instanceId:b,errorName:c,sessionId:h})}catch(c){d.warn("opencode-error-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}async function j(a,b,c,e){try{let{notifyPushSubscribers:h}=await f(),i=await g(a,b);await h({...i,kind:"completion",agentName:b,excerpt:c,updateAvailable:{agent:b,version:c}},e),d.info("opencode-update-push-sent",{worktreeId:a.worktreeId,instanceId:b,version:c})}catch(c){d.warn("opencode-update-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}},98211:(a,b,c)=>{c.d(b,{AB:()=>m,FZ:()=>i,LF:()=>l,Lu:()=>k,XL:()=>g,v1:()=>j});var d=c(2466),e=c(57510);let f=globalThis.__opencodeToolCallNames??=new Map;function g(a,b){for(f.delete(a),f.set(a,b);f.size>256;){let a=f.keys().next();if(a.done)break;f.delete(a.value)}}function h(a){return"string"==typeof a.type&&(0,e.Qd)(a.properties)?a.properties:a}function i(a){var b;let c=h(a),d=(0,e.O2)(c,"id"),g=(0,e.O2)(c,"sessionID");if(!d||!g||Array.isArray(c.questions))return null;let i=(0,e.O2)(c,"permission"),j=(0,e.Qd)(c.metadata)?c.metadata:{};return{toolName:((b=(0,e.NZ)(c,["tool","callID"]))?f.get(b)??null:null)??i??"permission",toolInput:{permission:i,patterns:Array.isArray(c.patterns)?c.patterns:[],...j},promptId:d,sessionId:g,permissionMode:null,permissionSuggestions:Array.isArray(c.always)?c.always:null}}function j(a){let b=h(a),c=(0,e.O2)(b,"id");if(!c)return null;let f=(0,d.u_)({questions:b.questions});return null===f?null:{questions:f,promptId:c}}function k(a,b){let c=i(a);return c&&c.promptId?{kind:"permission",id:c.promptId,conversationId:c.sessionId,subject:{kind:"permission",toolName:c.toolName,toolInput:c.toolInput},raw:a,askedAt:b}:null}function l(a,b){let c=k(a,b);if(!c||"permission"!==c.subject.kind)return null;let d=c.subject.toolInput.patterns;return{toolName:c.subject.toolName,patterns:Array.isArray(d)?d:[]}}function m(a,b){let c=h(a),d=(0,e.O2)(c,"id"),f=j(a);return d&&f?{kind:"question",id:d,conversationId:(0,e.O2)(c,"sessionID"),subject:{kind:"question",spec:f},raw:a,askedAt:b}:null}},98322:(a,b,c)=>{c.d(b,{JZ:()=>o,Pv:()=>f,QT:()=>j,TB:()=>k,ZG:()=>i,ed:()=>p,lp:()=>h,yG:()=>l});var d=c(57510),e=c(27128);let f="parentID",g="\n\n_(truncated)_";function h(a,b,c){return{sessionId:a,userMessageId:b,parts:new Map,assistantMessageIds:new Set,startedAt:c,overflowed:!1}}function i(a,b){a.assistantMessageIds.add(b)}function j(a,b){return a.assistantMessageIds.has(b)}function k(a){if(!(0,d.Qd)(a))return null;let b=(0,d.O2)(a,"id"),c=(0,d.O2)(a,"messageID"),e=(0,d.O2)(a,"type");if(!b||!c||!e)return null;let f=(0,d.Qd)(a.state)?a.state:null;return{id:b,messageId:c,type:e,text:"string"==typeof a.text?a.text:null,tool:(0,d.O2)(a,"tool"),status:f?(0,d.O2)(f,"status"):null,title:f?(0,d.O2)(f,"title"):null,error:f?(0,d.O2)(f,"error")??(0,d.NZ)(f,["error","message"]):null}}function l(a,b){return!a.parts.has(b.id)&&a.parts.size>=512?(a.overflowed=!0,!1):(a.parts.set(b.id,b),!0)}let m=new Set(["step-start","step-finish","snapshot","patch"]);function n(a){return a.replace(/\s+/g," ").trim()}function o(a){let b=[],c=new Set,d=0,f=0;for(let e of a.parts.values()){if("text"===e.type){let a=e.text?.trim()??"";if(0===a.length)continue;b.push({kind:"prose",text:a}),d+=1;continue}if("reasoning"===e.type){let a=e.text?.trim()??"";if(0===a.length)continue;b.push({kind:"reasoning",text:a});continue}if("tool"===e.type){if("pending"===e.status)continue;b.push({kind:"tool",text:function(a){let b=a.tool??"tool",c=a.title??null,d="error"===a.status,e=`- \`${b}\`${c?` — ${n(c)}`:""}`;return d?a.error?`${e} _(error: ${n(a.error)})_`:`${e} _(error)_`:e}(e)}),f+=1;continue}m.has(e.type)||c.add(e.type)}let h=(0,e.t3)(b),i=h.body;return i.length>2e5&&(i=i.slice(0,2e5-g.length)+g),{sessionId:a.sessionId,userMessageId:a.userMessageId,body:i,textParts:d,toolParts:f,reasoningParts:h.reasoningBlocks,unknownPartTypes:[...c]}}function p(a,b){if(!Array.isArray(a))return[];let c=new Map;for(let e of a){if(!(0,d.Qd)(e))continue;let a=(0,d.Qd)(e.info)?e.info:null;if(!a||"assistant"!==a.role)continue;let g=(0,d.O2)(a,f);if(!g)continue;let m=function(a,b){let c=a;for(let a of b){if(!(0,d.Qd)(c))return null;c=c[a]}return"number"==typeof c&&Number.isFinite(c)?c:null}(a,["time","created"])??0,n=c.get(g);n||(n=h(b,g,m),c.set(g,n));let o=(0,d.O2)(a,"id");for(let a of(o&&i(n,o),Array.isArray(e.parts)?e.parts:[])){let b=k(a);b&&j(n,b.messageId)&&l(n,b)}}return[...c.values()]}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=9627,exports.ids=[9627],exports.modules={3161:(a,b,c)=>{c.d(b,{G1:()=>h,Jl:()=>i,Tv:()=>n,cI:()=>j,sc:()=>q});var d=c(24455),e=c(49791),f=c(84574);let g=globalThis.__agentSessionTelemetry??(globalThis.__agentSessionTelemetry=new Map);function h(a,b){g.set((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),b)}function i(a,b,c){return g.get((0,d.v7)(a,b,c))??null}function j(a){var b;g.delete((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId)),b=a,o.delete((0,d.v7)(b.worktreeId,b.cliToolId,b.instanceId))}function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a,b,c){let d=a[b];return"string"!=typeof d||0===d.length?null:d.slice(0,c)}function m(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:null}function n(a,b){let c=k(a.properties)?a.properties:null;if(!c)return null;let d=k(c.info)?c.info:null;if(!d||"string"==typeof d.parentID&&d.parentID.length>0)return null;let e=k(d.model)?d.model:{};return{id:l(d,"id",120),title:l(d,"title",200),agent:l(d,"agent",120),model:l(e,"id",120),provider:l(e,"providerID",120),cost:m(d,"cost"),tokens:function(a){let b=k(a.tokens)?a.tokens:null;if(!b)return{input:null,output:null,reasoning:null,cacheRead:null,cacheWrite:null,total:null};let c=k(b.cache)?b.cache:{};return{input:m(b,"input"),output:m(b,"output"),reasoning:m(b,"reasoning"),cacheRead:m(c,"read"),cacheWrite:m(c,"write"),total:m(b,"total")}}(d),at:b}}let o=globalThis.__agentSessionContextUsage??(globalThis.__agentSessionContextUsage=new Map),p=globalThis.__agentSessionContextRefreshes??(globalThis.__agentSessionContextRefreshes=new Set);function q(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=o.get(c)??null;return!b||!b.id||e&&e.sessionAt===b.at||p.has(c)||(p.add(c),r(a,b).finally(()=>{p.delete(c)})),e}async function r(a,b){let c=b.id;if(!c)return null;let g=(0,f.hC)(a);if(null===g)return null;let[h,i]=await Promise.all([(0,e.bg)(g,c),b.provider&&b.model?(0,e.Lf)(g,b.provider,b.model):Promise.resolve(null)]),j={tokens:h,limit:i,percent:null!==h&&null!==i&&Number.isFinite(h)&&Number.isFinite(i)&&!(i<=0)?Math.round(h/i*100):null,sessionAt:b.at,at:Date.now()};return o.set((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),j),j}},4868:(a,b,c)=>{function d(a,b){let c=a.prepare(`
1
+ "use strict";exports.id=9627,exports.ids=[9627],exports.modules={3161:(a,b,c)=>{c.d(b,{G1:()=>h,Jl:()=>i,T9:()=>s,Tv:()=>n,Yv:()=>o,cI:()=>j,sI:()=>r,sc:()=>t});var d=c(24455),e=c(49791),f=c(84574);let g=globalThis.__agentSessionTelemetry??(globalThis.__agentSessionTelemetry=new Map);function h(a,b){g.set((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),b)}function i(a,b,c){return g.get((0,d.v7)(a,b,c))??null}function j(a){var b;g.delete((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId)),b=a,p.delete((0,d.v7)(b.worktreeId,b.cliToolId,b.instanceId))}function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a,b,c){let d=a[b];return"string"!=typeof d||0===d.length?null:d.slice(0,c)}function m(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:null}function n(a,b){let c=k(a.properties)?a.properties:null;return c?o(c.info,b):null}function o(a,b){let c=k(a)?a:null;if(!c||"string"==typeof c.parentID&&c.parentID.length>0)return null;let d=k(c.model)?c.model:{};return{id:l(c,"id",120),title:l(c,"title",200),agent:l(c,"agent",120),model:l(d,"id",120),provider:l(d,"providerID",120),cost:m(c,"cost"),tokens:function(a){let b=k(a.tokens)?a.tokens:null;if(!b)return{input:null,output:null,reasoning:null,cacheRead:null,cacheWrite:null,total:null};let c=k(b.cache)?b.cache:{};return{input:m(b,"input"),output:m(b,"output"),reasoning:m(b,"reasoning"),cacheRead:m(c,"read"),cacheWrite:m(c,"write"),total:m(b,"total")}}(c),at:b}}let p=globalThis.__agentSessionContextUsage??(globalThis.__agentSessionContextUsage=new Map),q=globalThis.__agentSessionContextRefreshes??(globalThis.__agentSessionContextRefreshes=new Set);function r(a,b){return null!==a&&null!==b&&Number.isFinite(a)&&Number.isFinite(b)&&!(b<=0)?Math.round(a/b*100):null}function s(a,b){p.set((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),b)}function t(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=p.get(c)??null;return!b||!b.id||"opencode-v2"===a.cliToolId||e&&e.sessionAt===b.at||q.has(c)||(q.add(c),u(a,b).finally(()=>{q.delete(c)})),e}async function u(a,b){let c=b.id;if(!c)return null;let d=(0,f.hC)(a);if(null===d)return null;let[g,h]=await Promise.all([(0,e.bg)(d,c),b.provider&&b.model?(0,e.Lf)(d,b.provider,b.model):Promise.resolve(null)]),i={tokens:g,limit:h,percent:r(g,h),sessionAt:b.at,at:Date.now()};return s(a,i),i}},4868:(a,b,c)=>{function d(a,b){let c=a.prepare(`
2
2
  SELECT date, content, generated_by_tool, model, created_at, updated_at
3
3
  FROM daily_reports
4
4
  WHERE date = ?
@@ -46,7 +46,7 @@
46
46
  FROM agent_session_costs
47
47
  ${d}
48
48
  GROUP BY worktree_id
49
- ORDER BY cost IS NULL, cost DESC, worktree_id`).all(...c?[b,c]:[b]).map(a=>({worktreeId:a.worktree_id,sessions:a.sessions,cost:a.cost,tokensInput:a.tokens_input,tokensOutput:a.tokens_output,tokensReasoning:a.tokens_reasoning,tokensCacheRead:a.tokens_cache_read,tokensCacheWrite:a.tokens_cache_write}));return{date:b,worktrees:e,total:function(a){let b=b=>{let c=null;for(let d of a){let a=b(d);null!==a&&(c=(c??0)+a)}return c};return{sessions:a.reduce((a,b)=>a+b.sessions,0),cost:b(a=>a.cost),tokensInput:b(a=>a.tokensInput),tokensOutput:b(a=>a.tokensOutput),tokensReasoning:b(a=>a.tokensReasoning),tokensCacheRead:b(a=>a.tokensCacheRead),tokensCacheWrite:b(a=>a.tokensCacheWrite)}}(e)}}c.d(b,{PY:()=>f,UB:()=>g,c0:()=>e})},15194:(a,b,c)=>{c.d(b,{Ab:()=>h,FV:()=>t,NL:()=>s,QP:()=>u,Sj:()=>l,VA:()=>f,XH:()=>d,_J:()=>v,ef:()=>n,hR:()=>o,lu:()=>q,n6:()=>k,oo:()=>p,pL:()=>m,pQ:()=>i,qR:()=>g,vz:()=>r});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code"],e=new Set(["claude","opencode","copilot"]);function f(a){return e.has(a)}function g(a,b){return!f(a)&&!b}let h=10,i=50,j=/^[a-zA-Z0-9_-]+$/;function k(a){return"string"==typeof a&&a.length>0&&a.length<=64&&j.test(a)}function l(a,b){return!a||a===b}function m(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let n={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code"};function o(a){return d.includes(a)}function p(a){return n[a]??a}function q(a){return a.map((a,b)=>({id:a,cliTool:a,alias:p(a),order:b}))}let r=128,s=2097152;function t(a){return"number"==typeof a&&Number.isInteger(a)&&a>=r&&a<=s}let u=/^[a-zA-Z0-9][a-zA-Z0-9._:/-]*$/;function v(a){return"function"==typeof a.supportsImage&&!0===a.supportsImage()}},16983:(a,b,c)=>{c.d(b,{Jn:()=>e,Lg:()=>h,_u:()=>j,ao:()=>i,eu:()=>g,sO:()=>d,xT:()=>f});let d=1e3,e=200,f=200,g=2e4,h=121,i="CM_OPENCODE_PANE_WIDTH";function j(a="undefined"==typeof process?void 0:process.env){let b=a?.[i];if(void 0===b)return 80;let c=b.trim();if(!/^\d+$/.test(c))return 80;let d=Number.parseInt(c,10);return d<40||d>400?80:d}},24455:(a,b,c)=>{c.d(b,{CS:()=>g,Cs:()=>s,G:()=>x,GE:()=>k,LP:()=>v,Re:()=>E,SD:()=>w,UL:()=>A,Ue:()=>i,W8:()=>n,XK:()=>o,ZO:()=>z,_9:()=>t,aq:()=>m,fC:()=>D,kC:()=>u,pL:()=>j,ps:()=>y,v7:()=>h});var d=c(68901);c(66007);var e=c(15194);let f=(0,c(72626).h)("auto-yes-state"),g=":";function h(a,b,c){if(a.includes(g))throw Error(`worktreeId must not contain '${g}': ${a}`);if(!c||c===b)return`${a}${g}${b}`;if(c.includes(g))throw Error(`instanceId must not contain '${g}': ${c}`);return`${a}${g}${b}${g}${c}`}function i(a){let b=a.indexOf(g);return -1===b?a:a.substring(0,b)}function j(a){let b=a.split(g)[1];return void 0===b?null:(0,e.hR)(b)?b:null}function k(a){let b=a.split(g);return b[2]??b[1]??null}let l=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map);function m(a,b="claude",c){let d=h(a,b,c),e=l.get(d);return e?Date.now()>=e.expiresAt?o(a,b,"expired",c):e:null}function n(a,b,c,e,f,g){let i=h(a,b,g);if(!c)return o(a,b,void 0,g);{let a=Date.now(),b={enabled:!0,enabledAt:a,expiresAt:a+(e??d.t6),stopPattern:f};return l.set(i,b),b}}function o(a,b="claude",c,d,e){let f=h(a,b,d),g=l.get(f),i={enabled:!1,enabledAt:g?.enabledAt??0,expiresAt:g?.expiresAt??0,stopPattern:g?.stopPattern,stopReason:c,stopMatchedText:e};return l.set(f,i),i}let p="…[truncated]",q=new TextEncoder;function r(a){return q.encode(a).length}function s(a,b,c){let e=i(a),g=j(a);if(!g)return!1;let h=k(a)??void 0,l=m(e,g,h);if(!l?.stopPattern)return!1;if(!(0,d.P0)(l.stopPattern).valid)return f.warn("invalid-stop-pattern",{detail:String({compositeKey:a})}),o(e,g,void 0,h),!1;try{let i=new RegExp(l.stopPattern),j=(0,d.eJ)(i,b);if(null===j)return f.warn("stop-condition-check",{detail:String({compositeKey:a})}),o(e,g,void 0,h),!1;if(j){let d=function(a,b){let c;try{c=a.exec(b)}catch{return null}if(!c)return null;let d=c.index,e=d+c[0].length,f=b.split("\n"),g=b.slice(0,d).split("\n").length-1,h=b.slice(0,e).split("\n").length-1,i=Math.max(0,g-1),j=Math.min(f.length-1,h+1),k=f.slice(i,j+1).join("\n"),l=k.trim();return function(a,b=400){if(r(a)<=b)return a;let c=b-r(p);if(c<=0)return p;let d=0,e="";for(let b of a){let a=r(b);if(d+a>c)break;e+=b,d+=a}return e+p}(l.length>0?l:k)}(i,b)??void 0;return o(e,g,"stop_pattern_matched",h,d),c&&c(a),f.warn("stop-condition-matched",{detail:String({compositeKey:a})}),!0}}catch{f.warn("stop-condition-check",{detail:String({compositeKey:a})})}return!1}function t(a,b){return a.filter(a=>i(a)===b)}function u(a){return t(Array.from(l.keys()),a)}function v(a){let b=u(a);return b.forEach(a=>l.delete(a)),b.length}function w(){let a=new Map;for(let b of Array.from(l.keys())){let c=j(b);if(!c)continue;let d=i(b),e=k(b)??c,f=m(d,c,e);if(!f?.enabled)continue;let g=a.get(d)??{};g[e]={enabled:!0,expiresAt:f.expiresAt},a.set(d,g)}return a}function x(a){return a<C?y:Math.min(y*Math.pow(2,a-C+1),B)}let y=2e3,z=5e3,A=1e4,B=6e4,C=5,D=50,E=50},26923:(a,b,c)=>{c.d(b,{Ds:()=>p,L:()=>q,Q9:()=>l,Uo:()=>o,Wo:()=>m,e2:()=>t,iH:()=>n,iM:()=>s,yi:()=>r});var d=c(52201),e=c(38186);let f="sidebar_group_order",g="recent_browse_paths",h="default_selected_agents",i="default_surface_mode";function j(a,b){try{let c=a.prepare("SELECT value FROM app_settings WHERE key = ?").get(b);if(!c)return null;let d=JSON.parse(c.value);if(!Array.isArray(d)||!d.every(a=>"string"==typeof a))return null;return d}catch{return null}}function k(a,b,c){let d=Date.now();a.prepare(`
49
+ ORDER BY cost IS NULL, cost DESC, worktree_id`).all(...c?[b,c]:[b]).map(a=>({worktreeId:a.worktree_id,sessions:a.sessions,cost:a.cost,tokensInput:a.tokens_input,tokensOutput:a.tokens_output,tokensReasoning:a.tokens_reasoning,tokensCacheRead:a.tokens_cache_read,tokensCacheWrite:a.tokens_cache_write}));return{date:b,worktrees:e,total:function(a){let b=b=>{let c=null;for(let d of a){let a=b(d);null!==a&&(c=(c??0)+a)}return c};return{sessions:a.reduce((a,b)=>a+b.sessions,0),cost:b(a=>a.cost),tokensInput:b(a=>a.tokensInput),tokensOutput:b(a=>a.tokensOutput),tokensReasoning:b(a=>a.tokensReasoning),tokensCacheRead:b(a=>a.tokensCacheRead),tokensCacheWrite:b(a=>a.tokensCacheWrite)}}(e)}}c.d(b,{PY:()=>f,UB:()=>g,c0:()=>e})},15194:(a,b,c)=>{c.d(b,{Ab:()=>h,FV:()=>t,NL:()=>s,QP:()=>u,Sj:()=>l,VA:()=>f,XH:()=>d,_J:()=>v,ef:()=>n,hR:()=>o,lu:()=>q,n6:()=>k,oo:()=>p,pL:()=>m,pQ:()=>i,qR:()=>g,vz:()=>r});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code","opencode-v2"],e=new Set(["claude","opencode","copilot","opencode-v2"]);function f(a){return e.has(a)}function g(a,b){return!f(a)&&!b}let h=10,i=50,j=/^[a-zA-Z0-9_-]+$/;function k(a){return"string"==typeof a&&a.length>0&&a.length<=64&&j.test(a)}function l(a,b){return!a||a===b}function m(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let n={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code","opencode-v2":"OpenCode V2"};function o(a){return d.includes(a)}function p(a){return n[a]??a}function q(a){return a.map((a,b)=>({id:a,cliTool:a,alias:p(a),order:b}))}let r=128,s=2097152;function t(a){return"number"==typeof a&&Number.isInteger(a)&&a>=r&&a<=s}let u=/^[a-zA-Z0-9][a-zA-Z0-9._:/-]*$/;function v(a){return"function"==typeof a.supportsImage&&!0===a.supportsImage()}},16983:(a,b,c)=>{c.d(b,{Jn:()=>e,Lg:()=>h,_u:()=>j,ao:()=>i,eu:()=>g,sO:()=>d,xT:()=>f});let d=1e3,e=200,f=200,g=2e4,h=121,i="CM_OPENCODE_PANE_WIDTH";function j(a="undefined"==typeof process?void 0:process.env){let b=a?.[i];if(void 0===b)return 80;let c=b.trim();if(!/^\d+$/.test(c))return 80;let d=Number.parseInt(c,10);return d<40||d>400?80:d}},24455:(a,b,c)=>{c.d(b,{CS:()=>g,Cs:()=>s,G:()=>x,GE:()=>k,LP:()=>v,Re:()=>E,SD:()=>w,UL:()=>A,Ue:()=>i,W8:()=>n,XK:()=>o,ZO:()=>z,_9:()=>t,aq:()=>m,fC:()=>D,kC:()=>u,pL:()=>j,ps:()=>y,v7:()=>h});var d=c(68901);c(66007);var e=c(15194);let f=(0,c(72626).h)("auto-yes-state"),g=":";function h(a,b,c){if(a.includes(g))throw Error(`worktreeId must not contain '${g}': ${a}`);if(!c||c===b)return`${a}${g}${b}`;if(c.includes(g))throw Error(`instanceId must not contain '${g}': ${c}`);return`${a}${g}${b}${g}${c}`}function i(a){let b=a.indexOf(g);return -1===b?a:a.substring(0,b)}function j(a){let b=a.split(g)[1];return void 0===b?null:(0,e.hR)(b)?b:null}function k(a){let b=a.split(g);return b[2]??b[1]??null}let l=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map);function m(a,b="claude",c){let d=h(a,b,c),e=l.get(d);return e?Date.now()>=e.expiresAt?o(a,b,"expired",c):e:null}function n(a,b,c,e,f,g){let i=h(a,b,g);if(!c)return o(a,b,void 0,g);{let a=Date.now(),b={enabled:!0,enabledAt:a,expiresAt:a+(e??d.t6),stopPattern:f};return l.set(i,b),b}}function o(a,b="claude",c,d,e){let f=h(a,b,d),g=l.get(f),i={enabled:!1,enabledAt:g?.enabledAt??0,expiresAt:g?.expiresAt??0,stopPattern:g?.stopPattern,stopReason:c,stopMatchedText:e};return l.set(f,i),i}let p="…[truncated]",q=new TextEncoder;function r(a){return q.encode(a).length}function s(a,b,c){let e=i(a),g=j(a);if(!g)return!1;let h=k(a)??void 0,l=m(e,g,h);if(!l?.stopPattern)return!1;if(!(0,d.P0)(l.stopPattern).valid)return f.warn("invalid-stop-pattern",{detail:String({compositeKey:a})}),o(e,g,void 0,h),!1;try{let i=new RegExp(l.stopPattern),j=(0,d.eJ)(i,b);if(null===j)return f.warn("stop-condition-check",{detail:String({compositeKey:a})}),o(e,g,void 0,h),!1;if(j){let d=function(a,b){let c;try{c=a.exec(b)}catch{return null}if(!c)return null;let d=c.index,e=d+c[0].length,f=b.split("\n"),g=b.slice(0,d).split("\n").length-1,h=b.slice(0,e).split("\n").length-1,i=Math.max(0,g-1),j=Math.min(f.length-1,h+1),k=f.slice(i,j+1).join("\n"),l=k.trim();return function(a,b=400){if(r(a)<=b)return a;let c=b-r(p);if(c<=0)return p;let d=0,e="";for(let b of a){let a=r(b);if(d+a>c)break;e+=b,d+=a}return e+p}(l.length>0?l:k)}(i,b)??void 0;return o(e,g,"stop_pattern_matched",h,d),c&&c(a),f.warn("stop-condition-matched",{detail:String({compositeKey:a})}),!0}}catch{f.warn("stop-condition-check",{detail:String({compositeKey:a})})}return!1}function t(a,b){return a.filter(a=>i(a)===b)}function u(a){return t(Array.from(l.keys()),a)}function v(a){let b=u(a);return b.forEach(a=>l.delete(a)),b.length}function w(){let a=new Map;for(let b of Array.from(l.keys())){let c=j(b);if(!c)continue;let d=i(b),e=k(b)??c,f=m(d,c,e);if(!f?.enabled)continue;let g=a.get(d)??{};g[e]={enabled:!0,expiresAt:f.expiresAt},a.set(d,g)}return a}function x(a){return a<C?y:Math.min(y*Math.pow(2,a-C+1),B)}let y=2e3,z=5e3,A=1e4,B=6e4,C=5,D=50,E=50},26923:(a,b,c)=>{c.d(b,{Ds:()=>p,L:()=>q,Q9:()=>l,Uo:()=>o,Wo:()=>m,e2:()=>t,iH:()=>n,iM:()=>s,yi:()=>r});var d=c(52201),e=c(38186);let f="sidebar_group_order",g="recent_browse_paths",h="default_selected_agents",i="default_surface_mode";function j(a,b){try{let c=a.prepare("SELECT value FROM app_settings WHERE key = ?").get(b);if(!c)return null;let d=JSON.parse(c.value);if(!Array.isArray(d)||!d.every(a=>"string"==typeof a))return null;return d}catch{return null}}function k(a,b,c){let d=Date.now();a.prepare(`
50
50
  INSERT INTO app_settings (key, value, created_at, updated_at)
51
51
  VALUES (?, ?, ?, ?)
52
52
  ON CONFLICT(key) DO UPDATE SET
@@ -320,5 +320,5 @@
320
320
  SELECT id FROM worktrees WHERE repository_path = ?
321
321
  `).all(b).map(a=>a.id)}function D(a){return a.prepare("SELECT id FROM worktrees").all().map(a=>a.id)}function E(a){return a.prepare("SELECT id, path FROM worktrees").all()}function F(a,b){return a.prepare(`
322
322
  SELECT id, path FROM worktrees WHERE repository_path = ?
323
- `).all(b)}function G(a,b){return{deletedCount:a.transaction(()=>{let c=a.prepare("SELECT id FROM worktrees WHERE repository_path = ?").all(b).map(a=>a.id).filter(a=>null!==a);return(0,h.oo)(a,c),a.prepare("DELETE FROM worktrees WHERE repository_path = ?").run(b).changes})()}}function H(a,b){if(0===b.length)return{deletedCount:0};let c=b.map(()=>"?").join(",");return{deletedCount:a.transaction(()=>((0,h.oo)(a,b),a.prepare(`DELETE FROM worktrees WHERE id IN (${c})`).run(...b).changes))()}}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},84574:(a,b,c)=>{c.d(b,{CU:()=>A,U9:()=>v,VY:()=>s,hC:()=>u,jp:()=>B,kE:()=>w});var d=c(91645),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(24455),j=c(43252),k=c(72626),l=c(49791);let m=(0,k.h)("lib/hooks/sources/opencode/ports"),n={min:4200,max:4299},o=n.max-n.min+1,p=globalThis.__opencodePortAssignments??=new Map;function q(a){return(0,i.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function r(){let a=(0,g.join)((0,f.homedir)(),".commandmate","opencode-ports.json");return(0,h.T)(process.env.CM_OPENCODE_PORT_FILE,a,"CM_OPENCODE_PORT_FILE")}function s(){try{let a=JSON.parse((0,e.readFileSync)(r(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&"number"==typeof d.port&&Number.isInteger(d.port)&&d.port>0&&d.port<65536&&"string"==typeof d.worktreePath&&(b[c]={port:d.port,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function t(a){let b=r();try{(0,e.mkdirSync)((0,g.dirname)(b),{recursive:!0}),(0,e.writeFileSync)(b,`${JSON.stringify(a,null,2)}
323
+ `).all(b)}function G(a,b){return{deletedCount:a.transaction(()=>{let c=a.prepare("SELECT id FROM worktrees WHERE repository_path = ?").all(b).map(a=>a.id).filter(a=>null!==a);return(0,h.oo)(a,c),a.prepare("DELETE FROM worktrees WHERE repository_path = ?").run(b).changes})()}}function H(a,b){if(0===b.length)return{deletedCount:0};let c=b.map(()=>"?").join(",");return{deletedCount:a.transaction(()=>((0,h.oo)(a,b),a.prepare(`DELETE FROM worktrees WHERE id IN (${c})`).run(...b).changes))()}}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},84574:(a,b,c)=>{c.d(b,{CU:()=>A,Ci:()=>z,U9:()=>v,VY:()=>s,hC:()=>u,jp:()=>B,kE:()=>w});var d=c(91645),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(24455),j=c(43252),k=c(72626),l=c(49791);let m=(0,k.h)("lib/hooks/sources/opencode/ports"),n={min:4200,max:4299},o=n.max-n.min+1,p=globalThis.__opencodePortAssignments??=new Map;function q(a){return(0,i.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function r(){let a=(0,g.join)((0,f.homedir)(),".commandmate","opencode-ports.json");return(0,h.T)(process.env.CM_OPENCODE_PORT_FILE,a,"CM_OPENCODE_PORT_FILE")}function s(){try{let a=JSON.parse((0,e.readFileSync)(r(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&"number"==typeof d.port&&Number.isInteger(d.port)&&d.port>0&&d.port<65536&&"string"==typeof d.worktreePath&&(b[c]={port:d.port,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function t(a){let b=r();try{(0,e.mkdirSync)((0,g.dirname)(b),{recursive:!0}),(0,e.writeFileSync)(b,`${JSON.stringify(a,null,2)}
324
324
  `,{mode:384})}catch(a){m.warn("opencode-port-file-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function u(a){return p.get(q(a))?.port??null}function v(a){return p.get(q(a))?.worktreePath??null}function w(a){let b=q(a);p.delete(b);let c=s();b in c&&(delete c[b],t(c))}let x=[l.Vc,"0.0.0.0","::"],y=["EADDRINUSE","EACCES"];async function z(a){for(let[b,c]of x.entries()){let e=await function(a,b){return new Promise(c=>{let e=(0,d.createServer)();e.once("error",a=>{c(y.includes(a.code??"")?"in-use":"unavailable")}),e.listen(a,b,()=>{e.close(()=>c("free"))})})}(a,c);if("free"!==e&&(0===b||"in-use"===e))return m.debug("opencode-port-probe-occupied",{port:a,host:c,probe:e}),!1}return!0}async function A(a,b){if(!(0,j.q)())return null;let c=u(a);if(null!==c)return c;let d=q(a),e=s()[d],f=e?.port,g=function(a){let b=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return n.min+b%o}(q(a)),c=[];for(let a=0;a<o;a+=1)c.push(n.min+(b-n.min+a)%o);return c}(a);for(let c of void 0!==f?[f,...g.filter(a=>a!==f)]:g)if(await z(c))return!function(a,b,c,d=Date.now()){let e=q(a),f={port:b,worktreePath:c,updatedAt:d};p.set(e,f);let g=s();g[e]=f,t(g)}(a,c,b),m.info("opencode-port-allocated",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c}),c;return m.warn("opencode-port-exhausted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,range:`${n.min}-${n.max}`}),null}async function B(a,b){if(!(0,j.q)())return null;let c=u(a);if(null!==c)return c;let d=s()[q(a)];if(!d)return null;if(d.worktreePath!==b)return m.info("opencode-port-recovery-path-mismatch",{worktreeId:a.worktreeId,recorded:d.worktreePath}),null;let e=await (0,l.Ok)(d.port);return e?(p.set(q(a),d),m.info("opencode-port-recovered",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d.port,version:e.version}),d.port):(m.info("opencode-port-recovery-unhealthy",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d.port}),null)}},92196:(a,b,c)=>{c.d(b,{QQ:()=>f,mw:()=>g});let d="*** ",e=new Set(["Begin Patch","End Patch"]);function f(a){let b=[];for(let c of a.split("\n")){let f=c.endsWith("\r")?c.slice(0,-1):c;if(!f.startsWith(d))continue;let g=f.slice(d.length).trim();if(!(""===g||e.has(g))&&(b.push(`${d}${g}`),b.length>64))return[a]}return b.length>0?b:[a]}function g(a){if("object"==typeof a&&null!==a&&!Array.isArray(a))return{toolInput:a,normalization:null};if("string"==typeof a){if(""===a)return null;let b=a.slice(0,64).trimStart().startsWith("*** Begin Patch"),c=b?"patch":"text";return{toolInput:{[c]:a},normalization:{reason:b?"string-tool-input-as-patch":"string-tool-input-as-text",key:c,receivedType:"string"}}}return null}},93636:(a,b,c)=>{c.d(b,{Yc:()=>i,fe:()=>j,zZ:()=>k});var d=c(3161),e=c(15194),f=c(72626),g=c(14552);let h=(0,f.h)("agent-session-cost-sampler");function i(a,b=Date.now()){let c=0;for(let f of function(){let a=globalThis.__agentSessionTelemetry;if(!a)return[];let b=[];for(let c of a.keys()){let a=c.split(":");if(a.length<2||a.length>3)continue;let[d,f,g]=a;d&&(0,e.hR)(f)&&b.push({worktreeId:d,cliToolId:f,instanceId:g||void 0})}return b}()){let e=(0,d.Jl)(f.worktreeId,f.cliToolId,f.instanceId);if(e&&e.id)try{(0,g.c0)(a,{sessionId:e.id,worktreeId:f.worktreeId,cliToolId:f.cliToolId,instanceId:f.instanceId??null,date:function(a){let b=new Date(a),c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}(e.at||b),title:e.title,agent:e.agent,model:e.model,provider:e.provider,cost:e.cost,tokensInput:e.tokens.input,tokensOutput:e.tokens.output,tokensReasoning:e.tokens.reasoning,tokensCacheRead:e.tokens.cacheRead,tokensCacheWrite:e.tokens.cacheWrite,observedAt:b})&&c++}catch(a){h.warn("sample-failed",{worktreeId:f.worktreeId,cliToolId:f.cliToolId,error:a instanceof Error?a.message:String(a)})}}return c}function j(a){if(globalThis.__agentSessionCostSampler||process.env.VITEST)return!1;let b=setInterval(()=>{try{i(a)}catch(a){h.warn("sweep-failed",{error:a instanceof Error?a.message:String(a)})}},6e4);return b.unref?.(),globalThis.__agentSessionCostSampler=b,!0}function k(){globalThis.__agentSessionCostSampler&&(clearInterval(globalThis.__agentSessionCostSampler),globalThis.__agentSessionCostSampler=void 0)}},99499:(a,b,c)=>{c.d(b,{MX:()=>f,ac:()=>e,gn:()=>g});let d=["manual","auto","disabled"];function e(a){if("object"!=typeof a||null===a||Array.isArray(a))return null;let b=a.share;return"string"!=typeof b?null:d.includes(b)?b:null}function f(a){return"disabled"===a}function g(a){let b;if("object"!=typeof a||null===a||Array.isArray(a))return null;let c=a.share;if("object"!=typeof c||null===c||Array.isArray(c))return null;let d=c.url;if("string"!=typeof d||""===d)return null;try{b=new URL(d)}catch{return null}return"https:"===b.protocol?d:null}}};
@@ -0,0 +1 @@
1
+ "use strict";exports.id=967,exports.ids=[967],exports.modules={682:(a,b,c)=>{c.d(b,{c:()=>f});let d=/^[^\S\n]*[│┃]?[^\S\n]*([❯›●>])?[^\S\n]*(\d{1,2})[.)][^\S\n]+(\S.*?)[^\S\n]*[│┃]?$/;function e(a){let b=d.exec(a);if(!b)return null;let c=Number(b[2]);return!Number.isInteger(c)||c<1?null:{glyph:b[1],number:c,label:b[3].trim()}}function f(a,b,c=8){let d=Math.min(b,a.length)-1,g=0,h=[],i=null;for(;d>=0&&g<=c;){let b=a[d];if(""===b.trim()){d--;continue}if(g++,i=e(b))break;h.unshift(b.trim()),d--}if(!i)return null;let j=d,k=[i],l=i.number-1,m=d-1,n=1,o=[];for(;l>=1&&m>=0&&n<=60;){let b=a[m];if(n++,""===b.trim()){m--;continue}let c=e(b);if(c&&c.number===l){k.unshift({...c,label:[c.label,...o].join(" ").trim()}),o=[],l--,m--;continue}if(c)break;o.unshift(b.trim()),m--}if(0!==l||k.length<2)return null;let p=k.findIndex(a=>void 0!==a.glyph);return{options:k.map(a=>a.label),selectedIndex:p,selectedGlyph:p<0?null:k[p].glyph??null,firstRow:m+1,lastRow:j,footer:h.join("\n")}}},20967:(a,b,c)=>{c.d(b,{OM:()=>a3,Ly:()=>a1,lE:()=>aY,kT:()=>a_,kn:()=>a$,HR:()=>a4,d0:()=>a2,VF:()=>aZ,aU:()=>m,l8:()=>aq,hx:()=>q,XY:()=>ar,F0:()=>bg,Fw:()=>bh,Dd:()=>N,sB:()=>C,bh:()=>Q,$I:()=>O,pn:()=>R,ir:()=>P,gm:()=>A,Jn:()=>M,aW:()=>S,Mt:()=>n,UO:()=>T,jk:()=>bb,WK:()=>a8,k0:()=>ba,E0:()=>aN,JN:()=>aI,rX:()=>aQ,oD:()=>aS,Ub:()=>aC,Du:()=>az,V:()=>aO,A:()=>aE,J7:()=>aU,rb:()=>aA,Jr:()=>aK,Fg:()=>aM,y:()=>aJ,tJ:()=>aB,wN:()=>Z,s0:()=>$,Cc:()=>ak,vU:()=>aa,Ty:()=>af,kD:()=>ag,uA:()=>ab,sy:()=>_,Md:()=>ad,LO:()=>ap,sx:()=>at,a2:()=>ac,$t:()=>ae,c7:()=>av,wK:()=>au,xL:()=>aw,fW:()=>Y,Dj:()=>aV,b2:()=>aW,KO:()=>bi,ut:()=>be,GT:()=>s,Zu:()=>V,Nc:()=>X,I$:()=>bc,wv:()=>aH,x7:()=>al,mu:()=>an,M4:()=>am,dF:()=>j,_X:()=>function a(b){switch(b){case"claude":return{promptPattern:q,separatorPattern:r,thinkingPattern:l,skipPatterns:[/^─{10,}$/,/^[>❯]\s*$/,l,/^\s*[⎿⏋]\s+Tip:/,/^\s*Tip:/,/^\s*\?\s*for shortcuts/,/to interrupt\)/,Y]};case"codex":return{promptPattern:A,separatorPattern:L,thinkingPattern:n,skipPatterns:[/^─.*─+$/,/^›\s*$/,/^›\s+(Implement|Find and fix|Type)/,n,/^\s*\d+%\s+context left/,/^\s*for shortcuts$/,/╭─+╮/,/╰─+╯/,/•\s*Ran\s+/,/^\s*└/,/^\s*│/,/\(.*esc to interrupt\)/,Y]};case"gemini":return{promptPattern:Z,separatorPattern:/^[─━]{3,}$/m,thinkingPattern:$,skipPatterns:[Z,$,/^\s*$/,/Gemini\s+\d+\.\d+/,Y]};case"vibe-local":return{promptPattern:aV,separatorPattern:/^[·]{10,}$/m,thinkingPattern:aW,skipPatterns:[aV,aW,/^\s*$/,/vibe-local|vibe-coder/,/ctx:\s*\d+%/,/Model\s+\w/,/Engine\s+\w/,/Mode\s+/,/RAM\s+/,/CWD\s+/,/^[·]{10,}$/,/✦\s*Ready/,/ESC:\s*stop/,Y]};case"opencode":return{promptPattern:_,separatorPattern:as,thinkingPattern:ac,skipPatterns:[...at]};case"copilot":return{promptPattern:az,separatorPattern:aE,thinkingPattern:aA,skipPatterns:[...aU]};case"antigravity":return{promptPattern:aY,separatorPattern:a$,thinkingPattern:aZ,skipPatterns:[...a7]};case"command-code":return{promptPattern:a8,separatorPattern:a9,thinkingPattern:ba,skipPatterns:[...bd]};case"opencode-v2":return{promptPattern:au,separatorPattern:as,thinkingPattern:aw,skipPatterns:[...ay]};default:return a("claude")}},Qh:()=>G,E6:()=>K,bH:()=>a6,lX:()=>w,zZ:()=>E,DR:()=>p,Rx:()=>aT,gT:()=>aP,Ok:()=>ax,U1:()=>y,dx:()=>a5,Wn:()=>aD,lQ:()=>v,aJ:()=>e.aJ,_A:()=>bf,pV:()=>ao});var d=c(72626),e=c(51297),f=c(94154),g=c(65912),h=c(46423);let i=/^[^\S\n]*[^\s\u2502\u2503\u2579\u2580][^\n]*?[^\S\n]{8,}esc[^\S\n]*$/m;function j(a){let b=i.exec(a);return null===b?null:b[0].trim().replace(/\s+esc$/,"")}let k=(0,d.h)("cli-patterns"),l=RegExp(`[✻✽⏺\xb7∴✢✳✶⦿◉●○◌◎⊙⊚⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]\\s+.+…|esc to interrupt`,"m"),m=/esc to interrupt/,n=/•\s*(Planning|Searching|Exploring|Running|Thinking|Working|Reading|Writing|Analyzing|Ran|Deciding)/m,o=/esc to interrupt/;function p(a,b){let c=(0,e.aJ)(a.slice(Math.max(0,a.length-b)).join("\n"));if(o.test(c))return!0;let d=-1;for(let b=a.length-1;b>=Math.max(0,a.length-8);b--)if(A.test((0,e.aJ)(a[b]))){d=b;break}if(d<0)return n.test(c);let f=Math.max(0,d-h.$+1),g=(0,e.aJ)(a.slice(f,d+1).join("\n"));return n.test(g)}let q=/^[>❯](\s*$|\s+\S)/m,r=/^─{10,}$/m;function s(a){let b=(0,f.p4)(a);return null===b?-1:Math.max(0,b.openingSeparator-1)}let t=/Yes, I trust this folder/m,u=/^\s*[>❯]\s+\S/;function v(a){let b=a.split("\n"),c=z(b);if(-1===c)return null;for(let a=0;a<=3;a++)for(let d of 0===a?[0]:[-1,1]){let e=c+d*a;if(e<0||e>=b.length||!u.test(b[e]))continue;let f=d<0?"Down":"Up";return[...Array(a).fill(f),"Enter"]}return null}function w(a){return -1!==z(a.split("\n"))}let x=new Set(["sh","bash","zsh","fish","dash","ksh","tcsh","csh"]);function y(a){return x.has(a.trim().replace(/^-/,""))}function z(a){for(let b=a.length-1;b>=0;b--)if(t.test(a[b]))return a.slice(b+1).some(a=>r.test(a))?-1:b;return -1}let A=/^›\s*/m,B=/Do you trust|Trust this folder\?/,C=RegExp(`Skip until next version|${B.source}|Press enter to continue|^\\s*›\\s*\\d+\\.\\s`,"m"),D=/^\s*›(?!\s*\d+\.)/;function E(a){let b=a.split("\n"),c=-1,d=-1;for(let a=0;a<b.length;a++){let e=b[a];if(C.test(e)){c=a;continue}D.test(e)&&(d=a)}return d>=0&&d>c}function F(a){let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a--)if(D.test(b[a])){c=a;break}return b.slice(c+1)}function G(a){let b=F(a).join("\n");return""===b?null:b.includes("Skip until next version")||b.includes("Update")&&b.includes("Skip")?"update":B.test(b)?"trust":b.includes("Press enter to continue")?"press-enter":null}let H=/press\s+t\s+to\s+trust\s+all\s*;/i,I=/press\s+t\s+to\s+trust\s*;/i,J=[/skip until next version/i,/^\s*[›❯]?\s*\d+\.\s*Update now/im];function K(a){let b=F(a),c=[];for(let a=b.length-1;a>=0&&c.length<12;a--)""!==b[a].trim()&&c.unshift(b[a]);if(0===c.length)return null;let d=c.join("\n");for(let a=c.length-1;a>=0;a--){let b=c[a];if(H.test(b))return"hooks-list";if(I.test(b))return"hooks-detail";if(N.test(b))break;if(J.some(a=>a.test(b)))return"update";if(B.test(b))return"trust";if(b.includes("Continue without trusting")&&d.includes("Hooks need review"))return"hooks-review"}return null}let L=/^─.*Worked for.*─+$/m,M=/press\s+enter\s+to\s+(?:confirm|select)/i,N=/esc\s+to\s+cancel/i,O=/^enter\s+to\s+submit\s*\|\s*esc\s+to\s+cancel$/im,P=/^enter\s+select\s*·\s*esc\s+back$/im,Q=/^enter\s+default\s*·\s*s\s+session\s*·\s*esc\s+back$/im,R=/(?:↑\/↓|pgup\/pgdn|home\/end)\s+to\s+(?:scroll|page|jump)|to\s+edit\s+(?:prev|next|message)/i,S=/^\s*\S.*·\s*~?\/\S*\s*$/,T=/^\s*\S[^·]*·\s*~?\/\S*(?:\s*·[^\n]*|[^\S\n]{2,}\S[^\n]*)$/,U=/^›(\s|$)/;function V(a){let b=a.length-1;for(;b>=0&&""===(0,e.aJ)(a[b]).trim();)b--;if(b<0)return -1;let c=-1;for(let d=b;d>=Math.max(0,b-12);d--)if(U.test((0,e.aJ)(a[d]))){c=d;break}if(c<0)return -1;let d=(0,g.kT)(a[c]);if("composer"===d)return c;if(null!==d)return -1;for(let d=c+1;d<=b;d++)if(S.test((0,e.aJ)(a[d])))return c;return -1}let W=/^›\s+\S/;function X(a,b,c,d){let f=d;for(let d=Math.min(b,a.length)-1;d>=Math.max(0,b-c);d--){if(!W.test((0,e.aJ)(a[d])))continue;let b=(0,g.kT)(a[d]);if("option"!==b){if("transcript-echo"===b)return d;if(!f){f=!0;continue}return d}}return -1}let Y=/\[Pasted text #\d+/,Z=/^[>❯]\s*$|^\s*[>❯]\s+Type your message.*$/m,$=/[\u2800-\u28FF]|Thinking\.\.\./,_=/Ask anything(?:\.\.\.|\u2026)/,aa=/^[^\S\n]*[\u2502\u2503][^\S\n]*Ask anything(?:\.\.\.|\u2026)/m,ab=/tab agents\s+ctrl\+p commands/,ac=/Thinking:/,ad=/\u25A3\s+\w+\s+·\s+\S+(?:\s+·\s+(?:[\d]+h\s*)?(?:[\d]+m\s*)?[\d.]+s)?/,ae=/\u25A3\s+\w+\s+·\s+[^·\n]+·\s+(?:\d+h\s*)?(?:\d+m\s*)?[\d.]+s/,af=/^[^\S\n]*[\u2502\u2503][^\S\n]*Allow once[^\S\n]+Allow always[^\S\n]+Reject\b/m,ag=/esc (?:again to )?interrupt/,ah=/^[^\S\n]*╹▀{4,}/,ai=/^[^\S\n]*[│┃]/,aj=/^[^\S\n]*[│┃][^\S\n]*\S/,ak=/\d+(?:\.\d+)?[KMGT]?\s+\(\d+%\)\s+·\s+\$/;function al(a){let b=a.length-1;for(;b>=0&&""===a[b].trim();)b--;if(b<0)return -1;let c=b=>{let c=b;for(;c-1>=0&&ai.test(a[c-1]);)c--;return c};for(let d=b;d>=0;d--)if(ah.test(a[d]))return c(d);return ai.test(a[b])?c(b):-1}function am(a,b){let c=b>=0?b:a.length;for(let b=c-1;b>=0;b--){if(!aj.test(a[b]))continue;let d=b;for(;d+1<c&&ai.test(a[d+1]);)d++;return d}return -1}function an(a){let b=-1;for(let c=a.length-1;c>=0;c--)if(ah.test(a[c])){b=c;break}if(b<0)return null;let c=b;for(;c-1>=0&&ai.test(a[c-1]);)c--;let d=b-1;return d<c?null:a.slice(c,d)}function ao(a){return a.replace(ai,"").trim()}let ap=/^[^\S\n]*(?:Select[^\S\n]+(?:model|provider)|Connect[^\S\n]+a[^\S\n]+provider)[^\S\n]{2,}esc[^\S\n]*$/m,aq=/Enter\s+to\s+set\s+as\s+default\b/i,ar=/Enter\s+to\s+(?:select\s+.*to\s+navigate|confirm\s+·\s+(?:Esc|s\s+for\s+this\s+session\s+only)|set\s+as\s+default)/,as=/^[\u2503\u2579\u25A3\u2580\u2500\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C]+$/,at=[as,/\u2B1D{4,}/,/^Build\s+/,ab,ag,_,ak,Y],au=/^[^\S\n]*[\u2502\u2503][^\S\n]*Ask anything(?:\.\.\.|\u2026)/m,av=/ctrl\+p commands/,aw=/esc interrupt/;function ax(a){return au.test(a)||av.test(a)}let ay=[as,av,aw,/Ask anything(?:\.\.\.|\u2026)/,/^Build\s+·/,Y],az=/^[>❯]\s|^\?\s+/m,aA=/[\u2800-\u28FF]|\(Esc to cancel|Reasoning\s+[■▪▮]|\.\.\.\s+Thinking/,aB=/\besc\s+interrupt\b/,aC=/\/\s+commands\b|\?\s+(?:help\b|for\s+shortcuts\b)/;function aD(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if(""!==c.trim()){if(aB.test(c))return"working";if(aC.test(c))return"idle";break}}return null}let aE=/^─{10,}$/m,aF=/^(?:─{10,}|╻▄{10,}|╹▀{10,})$/,aG=/^ {0,2}[>❯┃]/;function aH(a){let b=a=>aF.test((0,e.aJ)(a).trim()),c=a.length-1;for(;c>=0&&""===(0,e.aJ)(a[c]).trim();)c--;if(c<0)return -1;let d=-1;for(let e=c;e>=Math.max(0,c-2);e--)if(b(a[e])){d=e;break}if(d<0)return -1;let f=-1;for(let c=d-1;c>=Math.max(0,d-40);c--)if(b(a[c])){f=c;break}return f<0||!aG.test((0,e.aJ)(a[f+1]??""))?-1:Math.max(0,f-1)}let aI=/^\s*[│└╰╭╮╯├┤┬┴┼]/,aJ=/^ {0,2}[>❯]\s+\S/,aK="Get|Read|Run|Search|Write|Edit|Delete|List|Create|Fetch|Explore|Execute|Install|Asked user|Asking user|Model changed to:",aL=RegExp(`^\\s*(?:\\/|\\{\\}|[A-Z][A-Z0-9+#]{1,3})\\s+(?:${aK})[\\s:]`),aM=/^ {2,}\S/,aN=[/No copilot-instructions\.md found/,/Copilot uses AI, so always check for mistakes\./,/Copilot v\d[\w.]*\s+uses AI/,/^\s*(?:●\s+)?GitHub Copilot\s+v\d/m,/^\s*(?:●\s+)?Tip:\s*\//m,/Describe a task to get started/,/Prefer a visual workspace\?/,/what would you like to work on\?/i],aO=/^(?=[^\n]*·)[^\n]*(?:↑\/?↓|\besc\s+(?:to\s+)?(?:cancel|close)\b)/m;function aP(a){if(null!==aD(a))return!1;let b=0;for(let c=a.length-1;c>=0;c--){let d=a[c],e=d.trim();if(""!==e){if(++b>3)break;if(!(e.startsWith("│")||e.endsWith("│"))&&aO.test(d))return!0}}return!1}let aQ=["Confirm folder trust","Do you trust the files in this folder?"],aR=/^[ \t]*(?:[>❯][ \t]*)?1\.[ \t]+Yes[ \t]*$/m,aS="1";function aT(a){return!!aQ.every(b=>a.includes(b))&&aR.test(bf(a))}let aU=[Y,aE,aA,aO,/^\s*⌄\s/,/^\s*[╻╹]?[▀▄]{10,}\s*$/,aL,aI,/^GitHub Copilot\s+v/,/[█▘▝▖▗▔▄▌▐]/,/[╭╮╰╯│]/,/\[⎇\s+\w[^\]]*\]/,/^shift\+tab\s/,/^\?\s+for\s+shortcuts/,/^ctrl\+[a-z]\s+\w/,/^[❯>]\s*(Type\s+@|$)/,/^\s*(?:●\s+)?Tip:\s*\//,/^\s*Current\s+Sessions\s+Issues\s+Pull requests\s+Gists\s*$/,/^Describe a task to get started/,/^Copilot uses AI, so always check for mistakes\.$/,/^● 💡/,/^● Environment loaded:/],aV=/ctx:\d+%\s*[>❯]/m,aW=/[\u2800-\u28FF]|Thinking|⠋|⠙|⠹|⠸|⠼|⠴|⠦|⠧|⠇|⠏|Running|Executing/,aX=">[^\\S\\n]+[A-Z][A-Za-z-]*[^\\S\\n]mode:[^\\n]*\\(shift\\+tab to cycle\\)[^\\S\\n]*";RegExp(`^${aX}$`,"m");let aY=RegExp(`^(?:>\\s*|${aX})$`,"m"),aZ=/[\u2800-\u28FF]|Generating|esc to cancel/,a$=/^─{3,}$/m,a_=/Switch Model|↑\/↓\s*Navigate/m,a0=/↑\/↓\s*Navigate/,a1=/^\s*>?\s*\d+\.\s+\S/m,a2=/^\s*Switch Model\s*$/,a3=/^\s*(?:─{3,}\s*$|[●⎿▸]|>(?!\s*\d+\.\s+\S))/,a4=/^\s*\[1\]\s*Good\s+\[2\]\s*Fine\s+\[3\]\s*Bad\s+\[0\]\s*Skip\s*$/m;function a5(a){let b=-1;for(let c=a.length-1;c>=0;c--)if(a0.test(a[c])){b=c;break}if(b<0)return null;for(let c=b+1;c<a.length;c++)if(aY.test(a[c]))return null;let c=Math.max(0,b-60),d=c;for(let e=b-1;e>=c;e--)if(a3.test(a[e])){d=e+1;break}return{start:d,footer:b}}function a6(a){let b=a.split("\n"),c=a5(b);if(null===c)return!1;let d=0;for(let a=c.start;a<c.footer;a++){let c=b[a];if(a2.test(c))return!1;a1.test(c)&&d++}return d>=2}let a7=[a$,/^>\s*$/,/^\?\s+for\s+shortcuts/,aZ,/[▄▀█▌▐]/,Y],a8=/^❯(\s*$|\s+\S)/m,a9=/^─{10,}$/m,ba=RegExp(`^[^\\S\\n]*[\xb7○◇☆✧⌘][^\\S\\n]+[A-Za-z]+…|^[^\\S\\n]*✻ Thinking…|${/esc to interrupt/.source}`,"m"),bb=/\?\s+for\s+shortcuts|»\s+accept edits on|»\s+permission bypass on|»\s+don't-ask on|^[^\S\n]*plan mode\s/m;function bc(a){let b=a=>/^─{10,}$/.test((0,e.aJ)(a??"").trimEnd()),c=a.length-1;for(;c>=0&&""===a[c].trim();)c--;if(c<0)return -1;let d=-1;for(let e=c;e>=Math.max(0,c-4);e--)if(b(a[e])){d=e;break}if(d<0)return -1;let f=-1;for(let c=d-1;c>=Math.max(0,d-40);c--)if(b(a[c])){f=c;break}return f<0||!/^❯/.test((0,e.aJ)(a[f+1]??""))?-1:f}let bd=[/^─{10,}$/,/^❯\s*$/,/^❯\s+Ask your question\.\.\./,bb,ba,/^[^\S\n]*✻\s+(?:Worked|Thought)\s+for\b/,/^[^\S\n]*◼\s+Ran\s+\d+\s+.*hooks?\b/,/^#\s+Command Code v\d/,/^#\s+models:\s/,/^#\s+[~/]/,/^[^\S\n]*[█▀▄▌▐]{3,}/,Y];function be(a,b){let c,d=k.withContext({cliToolId:a});switch(d.debug("detectThinking:check",{contentLength:b.length}),a){case"claude":default:c=l.test(b);break;case"codex":c=n.test(b);break;case"gemini":c=$.test(b);break;case"vibe-local":c=aW.test(b);break;case"opencode":c=ac.test(b);break;case"copilot":c=aA.test(b);break;case"antigravity":c=aZ.test(b);break;case"command-code":c=ba.test(b);break;case"opencode-v2":c=aw.test(b)}return d.debug("detectThinking:result",{isThinking:c}),c}function bf(a){return a.split("\n").map(a=>/^[\u2502\u2503\u256D\u256E\u256F\u2570\u2500\u2579\u2580\u2588\s]+$/.test(a)?"":a.replace(/^\s*[\u2502\u2503]\s?/,"").replace(/\s*[\u2502\u2503\u2588]$/,"")).join("\n")}let bg=["Claude Code cannot be launched inside another Claude Code session"],bh=[/^Error:.*Claude Code/];function bi(a){return"claude"===a?{requireDefaultIndicator:!1}:"opencode"===a?{requireDefaultIndicator:!1,hasNumberedDialogs:!1}:"copilot"===a||"antigravity"===a?{requireDefaultIndicator:!1}:void 0}},46423:(a,b,c)=>{c.d(b,{$:()=>d});let d=5},51297:(a,b,c)=>{c.d(b,{aJ:()=>f});let d="\\x1b\\][^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)";RegExp(d,"g");let e=RegExp(`\\x1b\\[[0-9;]*[a-zA-Z]|${d}|\\[[0-9;]*m`,"g");function f(a){return a.replace(e,"")}},65912:(a,b,c)=>{c.d(b,{AT:()=>p,Gs:()=>n,kT:()=>j,kp:()=>k,t:()=>l});var d=c(72626),e=c(682);let f=(0,d.h)("codex-dialog-rules"),g={version:"0.157.1"},h=/press\s+\S+\s+to\s+\S|esc\s+(?:to\s+)?(?:cancel|close|dismiss|quit|exit|back|go\s+back|skip)/i,i={bold:!1,dim:!1,fg:null};function j(a){if(!a.includes("\x1b"))return null;let b=function(a){let b=[],c=i,d=0;for(;d<a.length;){let e=a[d];if("\x1b"!==e){b.push({ch:e,attrs:c}),d++;continue}let f=a[d+1];if("["===f){let b=d+2;for(;b<a.length&&!/[A-Za-z]/.test(a[b]);)b++;if(b>=a.length)break;"m"===a[b]&&(c=function(a,b){let c=""===a?["0"]:a.split(";"),{bold:d,dim:e,fg:f}=b;for(let a=0;a<c.length;a++){let b=""===c[a]?0:Number(c[a]);if(!Number.isNaN(b)){if(38===b){let b=""===c[a+1]||void 0===c[a+1]?-1:Number(c[a+1]),d=5===b?2:2===b?4:1;f=c.slice(a+1,a+1+d).join(";"),a+=d;continue}if(48===b||58===b){let b=""===c[a+1]||void 0===c[a+1]?-1:Number(c[a+1]);5===b?a+=2:2===b?a+=4:a+=1;continue}0===b?(d=!1,e=!1,f=null):1===b?d=!0:2===b?e=!0:22===b?(d=!1,e=!1):39===b?f=null:(b>=30&&b<=37||b>=90&&b<=97)&&(f=String(b))}}return{bold:d,dim:e,fg:f}}(a.slice(d+2,b),c)),d=b+1;continue}if("]"===f){let b=d+2;for(;b<a.length;){if("\x07"===a[b]){b++;break}if("\x1b"===a[b]&&"\\"===a[b+1]){b+=2;break}b++}d=b;continue}d+=2}return b}(a),c=b.findIndex(a=>""!==a.ch.trim());if(c<0||"›"!==b[c].ch)return null;let d=b[c].attrs;if(d.dim)return"transcript-echo";let e=b.slice(c+1).find(a=>""!==a.ch.trim());return e?.attrs.bold?"option":e?.attrs.dim?"composer":null!==d.fg&&e?.attrs.fg===d.fg?"option":"composer"}function k(a){let b=a.split("\n");for(let a=b.length-1;a>=0;a--){let c=j(b[a]);if(null!==c)return{kind:c,row:a}}return null}function l(a,b,c){let d=k(a),f=(0,e.c)(b,c),g=null!==f&&"›"===f.selectedGlyph,i=d?.kind==="option"?"glyph":g&&d?.kind!=="composer"&&d?.kind!=="transcript-echo"?"numbered-block":null;if(null===i)return null;let j=null!==f?f.footer:function(a,b,c){let d=[];for(let e=b+1;e<c&&d.length<8;e++){let b=a[e].trim();""!==b&&d.push(b)}return d.join("\n")}(b,function(a,b){for(let c=Math.min(b,a.length)-1;c>=0;c--)if(a[c].trimStart().startsWith("›"))return c;return -1}(b,c),c);return{by:i,options:f?.options??[],footer:j,footerRecognised:h.test(j)}}let m=/^\s*›\s*\d{1,2}[.)]\s/;function n(a,b,c){let d=k(a);if(null!==d)return"composer"===d.kind;let e=Math.min(c,b.length)-1;for(;e>=0&&""===b[e].trim();)e--;if(e<0)return!1;let f=b[e];return f.trimStart().startsWith("›")&&!m.test(f)}let o=new Set;function p(a){let b=a.slice(0,200);!o.has(b)&&(o.size>=64||(o.add(b),f.warn("codexDialogFooterUnrecognised",{footer:b,verifiedAgainst:g.version,hint:"codex reworded a dialog footer; widen CODEX_DIALOG_FOOTER_PATTERN after re-capturing the frame"})))}},94154:(a,b,c)=>{c.d(b,{ji:()=>k,p4:()=>f});var d=c(51297);let e=/^[>❯]/;function f(a){let b=a=>/^─{10,}$/.test((0,d.aJ)(a).trimEnd()),c=a.length-1;for(;c>=0&&""===a[c].trim();)c--;if(c<0)return null;let f=-1;for(let d=c;d>=Math.max(0,c-4);d--)if(b(a[d])){f=d;break}if(f<0)return null;let g=-1;for(let c=f-1;c>=Math.max(0,f-40);c--)if(b(a[c])){g=c;break}return g<0||!e.test((0,d.aJ)(a[g+1]??""))?null:{openingSeparator:g,closingSeparator:f}}let g=/^\u203A/;function h(a){return void 0===a||""===(0,d.aJ)(a).trim()}function i(a){let b=[],c={dim:!1,bold:!1},d=0;for(;d<a.length;){let e=a[d];if("\x1b"!==e){b.push({ch:e,dim:c.dim,bold:c.bold}),d++;continue}let f=a[d+1];if("["===f){let b=d+2;for(;b<a.length&&!/[A-Za-z]/.test(a[b]);)b++;if(b>=a.length)break;"m"===a[b]&&(c=function(a,b){let c=""===a?["0"]:a.split(";"),{dim:d,bold:e}=b;for(let a=0;a<c.length;a++){let b=""===c[a]?0:Number(c[a]);if(!Number.isNaN(b)){if(38===b||48===b||58===b){let b=""===c[a+1]||void 0===c[a+1]?-1:Number(c[a+1]);5===b?a+=2:2===b?a+=4:a+=1;continue}0===b||22===b?(d=!1,e=!1):1===b?e=!0:2===b&&(d=!0)}}return{dim:d,bold:e}}(a.slice(d+2,b),c)),d=b+1;continue}if("]"===f){let b=d+2;for(;b<a.length;){if("\x07"===a[b]){b++;break}if("\x1b"===a[b]&&"\\"===a[b+1]){b+=2;break}b++}d=b;continue}d+=2}return b}let j=new Set(["claude","codex"]);function k(a,b){if(!j.has(b))return{text:"",state:"unsupported_tool"};let c=a.split("\n"),d=function(a,b){if("claude"===b){let b=f(a);return null===b?null:{firstRow:b.openingSeparator+1,lastRow:b.closingSeparator-1,glyph:e}}let c=function(a){let b=a.length-1;for(;b>=0&&h(a[b]);)b--;if(b<0)return null;for(let c=0;c<4&&b>=0;c++){let c=b,d=b;for(;d>0&&!h(a[d-1]);)d--;if(function(a){if(void 0===a)return!1;let b=i(a);if(0===b.length||"›"!==b[0].ch||b[0].dim||b.length>1&&" "!==b[1].ch)return!1;let c=b.slice(2).find(a=>" "!==a.ch);return void 0===c||!c.bold}(a[d]))return{firstRow:d,lastRow:Math.min(c,d+40-1)};for(b=d-1;b>=0&&h(a[b]);)b--}return null}(a);return null===c?null:{firstRow:c.firstRow,lastRow:c.lastRow,glyph:g}}(c,b);if(null===d)return{text:"",state:"no_composer"};let k=[],m=[];for(let a=d.firstRow;a<=d.lastRow;a++){let b=function(a,b,c){if(b){let b=a.findIndex(a=>c.test(a.ch));if(b<0)return a;let d=b+1;return d<a.length&&/\s/.test(a[d].ch)&&d++,a.slice(d)}let d=0;for(;d<2&&d<a.length&&" "===a[d].ch;)d++;return a.slice(d)}(i(c[a]??""),a===d.firstRow,d.glyph);k.push(b.filter(a=>!a.dim).map(a=>a.ch).join("").trimEnd()),m.push(b.map(a=>a.ch).join("").trimEnd())}let n=l(k).join("\n");return""!==n.trim()?{text:n.slice(0,2e3),state:"content"}:{text:"",state:""===l(m).join("\n").trim()?"empty":"ghost"}}function l(a){let b=a.length;for(;b>0&&""===a[b-1].trim();)b--;return a.slice(0,b)}}};