commandmate 0.43.0 → 0.44.1

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 (531) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +357 -361
  3. package/.next/app-path-routes-manifest.json +33 -33
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +3 -3
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/update/route.js.nft.json +1 -1
  10. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/agents/versions/route.js.nft.json +1 -1
  12. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  13. package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/app/update/route.js +2 -2
  15. package/.next/server/app/api/app/update/route.js.nft.json +1 -1
  16. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/app/update-check/route.js +1 -1
  18. package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
  19. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/capabilities/route.js +1 -1
  24. package/.next/server/app/api/capabilities/route_client-reference-manifest.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.nft.json +1 -1
  28. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  30. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  32. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  34. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  36. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  38. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/hooks/agent-event/route.js +2 -2
  40. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  41. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  43. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  44. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  46. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  47. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  49. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/push/escalation/route.js +1 -1
  52. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  53. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  55. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/push/vapid/route.js +1 -1
  57. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  58. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  60. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  61. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/relays/route.js +1 -1
  63. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  64. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/remote/pair/route.js +2 -2
  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.nft.json +1 -1
  114. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  116. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  118. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  120. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  122. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  124. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  126. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  129. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  132. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  135. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js.nft.json +1 -1
  137. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  139. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  141. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  144. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  147. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
  149. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  151. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  153. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  156. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  174. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  178. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  180. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  184. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js.nft.json +1 -1
  204. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  207. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  210. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  213. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  217. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +7 -7
  219. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  220. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  222. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  226. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -1
  228. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  232. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  235. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  236. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
  237. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  240. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  243. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  247. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  249. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  252. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  254. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  255. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +3 -3
  257. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  258. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  261. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  263. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  264. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  266. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  267. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  269. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  270. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  272. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  273. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  275. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  276. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  278. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  279. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  286. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  287. package/.next/server/app/api/worktrees/[id]/terminal/route.js +103 -1
  288. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  289. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  290. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  291. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  293. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  294. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  298. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  299. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  300. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  304. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  305. package/.next/server/app/api/worktrees/[id]/verify/config/route.js.nft.json +1 -1
  306. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  308. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  309. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  311. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +1 -1
  312. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  316. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  317. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  318. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  319. package/.next/server/app/api/worktrees/apply-default-agents/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/route.js +1 -1
  322. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  325. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  326. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  327. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  328. package/.next/server/app/page_client-reference-manifest.js +1 -1
  329. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  330. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  331. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  332. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  333. package/.next/server/app/sessions/page.js +1 -1
  334. package/.next/server/app/sessions/page.js.nft.json +1 -1
  335. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  336. package/.next/server/app/skills/[skillId]/page.js +1 -1
  337. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  338. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  339. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  340. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  341. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  342. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  343. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  344. package/.next/server/app/worktrees/[id]/page.js +9 -9
  345. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  346. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  347. package/.next/server/app/worktrees/[id]/terminal/page.js +1 -1
  348. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  349. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  350. package/.next/server/app-paths-manifest.json +33 -33
  351. package/.next/server/chunks/1068.js +1 -1
  352. package/.next/server/chunks/1501.js +3 -3
  353. package/.next/server/chunks/2119.js +1 -1
  354. package/.next/server/chunks/2283.js +15 -0
  355. package/.next/server/chunks/2328.js +1 -1
  356. package/.next/server/chunks/2404.js +1 -1
  357. package/.next/server/chunks/2445.js +1 -1
  358. package/.next/server/chunks/2816.js +1 -1
  359. package/.next/server/chunks/4207.js +1 -1
  360. package/.next/server/chunks/4802.js +1 -1
  361. package/.next/server/chunks/488.js +1 -0
  362. package/.next/server/chunks/5326.js +1 -1
  363. package/.next/server/chunks/5456.js +1 -1
  364. package/.next/server/chunks/611.js +1 -1
  365. package/.next/server/chunks/6130.js +1 -1
  366. package/.next/server/chunks/6401.js +1 -1
  367. package/.next/server/chunks/6474.js +14 -0
  368. package/.next/server/chunks/650.js +1 -0
  369. package/.next/server/chunks/6781.js +1 -1
  370. package/.next/server/chunks/{5742.js → 6927.js} +1 -1
  371. package/.next/server/chunks/7506.js +1 -1
  372. package/.next/server/chunks/7685.js +1 -1
  373. package/.next/server/chunks/7905.js +1 -1
  374. package/.next/server/chunks/8543.js +1 -1
  375. package/.next/server/chunks/8581.js +2 -2
  376. package/.next/server/chunks/8728.js +2 -2
  377. package/.next/server/chunks/8782.js +1 -0
  378. package/.next/server/chunks/8791.js +1 -1
  379. package/.next/server/chunks/8918.js +105 -3
  380. package/.next/server/chunks/9130.js +1 -1
  381. package/.next/server/chunks/9390.js +1 -1
  382. package/.next/server/chunks/967.js +1 -1
  383. package/.next/server/chunks/9731.js +3 -3
  384. package/.next/server/chunks/9882.js +3 -3
  385. package/.next/server/middleware-build-manifest.js +1 -1
  386. package/.next/server/middleware-manifest.json +5 -5
  387. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  388. package/.next/server/pages/500.html +1 -1
  389. package/.next/server/server-reference-manifest.json +1 -1
  390. package/.next/server/src/middleware.js +2 -2
  391. package/.next/server/src/middleware.js.map +1 -1
  392. package/.next/static/chunks/{1642-767aed8e7c61ef7f.js → 1642-fb2e176aaadbd137.js} +1 -1
  393. package/.next/static/chunks/2053-85a974ddfe7498fe.js +1 -0
  394. package/.next/static/chunks/{2407-940df9b11fadafc6.js → 2407-f1f258d4a1d92620.js} +1 -1
  395. package/.next/static/chunks/{2619-a305ad4810f1393a.js → 2619-04bc32f026a0d946.js} +1 -1
  396. package/.next/static/chunks/344-e1cefd00787060e4.js +1 -0
  397. package/.next/static/chunks/3922.f45dcfc1e7da552a.js +1 -0
  398. package/.next/static/chunks/5521-c358c31f60e5e689.js +1 -0
  399. package/.next/static/chunks/591-308072f285c34787.js +1 -0
  400. package/.next/static/chunks/6654-ac431270fac1a283.js +1 -0
  401. package/.next/static/chunks/{8165-3525fb42f1b4976e.js → 8165-3853772f6ae1299b.js} +1 -1
  402. package/.next/static/chunks/{8566-a6a7c70558927410.js → 8566-aeda747542072ace.js} +1 -1
  403. package/.next/static/chunks/8811-29eaa24237f48558.js +1 -0
  404. package/.next/static/chunks/{9619-22adf5367c4b7080.js → 9619-6c17a271f7f98fbb.js} +1 -1
  405. package/.next/static/chunks/998-2eb5883186abd0bd.js +1 -0
  406. package/.next/static/chunks/app/layout-da66300cc20244ed.js +1 -0
  407. package/.next/static/chunks/app/more/{page-30057cf1e0762ad2.js → page-87c84987b2765213.js} +1 -1
  408. package/.next/static/chunks/app/{page-8483ba400af011f5.js → page-1b820c421db48c2c.js} +1 -1
  409. package/.next/static/chunks/app/review/page-95f749caae382f46.js +1 -0
  410. package/.next/static/chunks/app/sessions/page-049e06335187aa91.js +1 -0
  411. package/.next/static/chunks/app/skills/[skillId]/{page-74aac15286504ef4.js → page-9ee7a381636e60cb.js} +1 -1
  412. package/.next/static/chunks/app/worktrees/[id]/page-040c5f0f585e6812.js +1 -0
  413. package/.next/static/chunks/app/worktrees/[id]/terminal/{page-c601f3b3ece6557e.js → page-373ea37b16d930c7.js} +1 -1
  414. package/.next/static/chunks/{webpack-49ade0526854dd4e.js → webpack-021f0741f22dd16a.js} +1 -1
  415. package/.next/static/css/38070d879efa1371.css +1 -0
  416. package/.next/trace +13 -13
  417. package/README.md +90 -605
  418. package/dist/cli/commands/capture.d.ts.map +1 -1
  419. package/dist/cli/commands/capture.js +11 -1
  420. package/dist/cli/commands/docs.d.ts.map +1 -1
  421. package/dist/cli/commands/docs.js +5 -0
  422. package/dist/cli/commands/remote.d.ts +34 -1
  423. package/dist/cli/commands/remote.d.ts.map +1 -1
  424. package/dist/cli/commands/remote.js +171 -6
  425. package/dist/cli/commands/respond.d.ts.map +1 -1
  426. package/dist/cli/commands/respond.js +255 -112
  427. package/dist/cli/commands/stop.d.ts.map +1 -1
  428. package/dist/cli/commands/stop.js +53 -1
  429. package/dist/cli/commands/sync.js +3 -3
  430. package/dist/cli/commands/wait.d.ts.map +1 -1
  431. package/dist/cli/commands/wait.js +11 -0
  432. package/dist/cli/docs/setup-guide.d.ts +14 -0
  433. package/dist/cli/docs/setup-guide.d.ts.map +1 -0
  434. package/dist/cli/docs/setup-guide.js +368 -0
  435. package/dist/cli/types/api-responses.d.ts +21 -0
  436. package/dist/cli/types/api-responses.d.ts.map +1 -1
  437. package/dist/cli/types/index.d.ts +2 -0
  438. package/dist/cli/types/index.d.ts.map +1 -1
  439. package/dist/cli/utils/daemon.d.ts +42 -2
  440. package/dist/cli/utils/daemon.d.ts.map +1 -1
  441. package/dist/cli/utils/daemon.js +222 -40
  442. package/dist/cli/utils/docs-reader.d.ts +6 -0
  443. package/dist/cli/utils/docs-reader.d.ts.map +1 -1
  444. package/dist/cli/utils/docs-reader.js +14 -13
  445. package/dist/cli/utils/npm-runner.d.ts +12 -0
  446. package/dist/cli/utils/npm-runner.d.ts.map +1 -1
  447. package/dist/cli/utils/npm-runner.js +36 -0
  448. package/dist/cli/utils/process-inspect.d.ts +55 -0
  449. package/dist/cli/utils/process-inspect.d.ts.map +1 -0
  450. package/dist/cli/utils/process-inspect.js +214 -0
  451. package/dist/cli/utils/remote-pairing.d.ts +68 -0
  452. package/dist/cli/utils/remote-pairing.d.ts.map +1 -0
  453. package/dist/cli/utils/remote-pairing.js +117 -0
  454. package/dist/cli/utils/server-identity.d.ts +50 -0
  455. package/dist/cli/utils/server-identity.d.ts.map +1 -0
  456. package/dist/cli/utils/server-identity.js +118 -0
  457. package/dist/cli/utils/server-ready.d.ts +13 -0
  458. package/dist/cli/utils/server-ready.d.ts.map +1 -1
  459. package/dist/cli/utils/server-ready.js +16 -0
  460. package/dist/lib/detection/status-reason.d.ts +17 -0
  461. package/dist/lib/detection/status-reason.d.ts.map +1 -1
  462. package/dist/lib/detection/status-reason.js +17 -0
  463. package/dist/lib/security/pairing-code.d.ts +2 -1
  464. package/dist/lib/security/pairing-code.d.ts.map +1 -1
  465. package/dist/server/locales/en/worktree.json +41 -7
  466. package/dist/server/locales/ja/worktree.json +41 -7
  467. package/dist/server/src/config/image-extensions.js +1 -0
  468. package/dist/server/src/config/session-starting-config.js +75 -0
  469. package/dist/server/src/lib/auto-yes-poller.js +22 -0
  470. package/dist/server/src/lib/cli-tools/antigravity.js +2 -1
  471. package/dist/server/src/lib/cli-tools/base.js +15 -1
  472. package/dist/server/src/lib/cli-tools/codex.js +3 -2
  473. package/dist/server/src/lib/cli-tools/command-code-plan-review.js +175 -0
  474. package/dist/server/src/lib/cli-tools/command-code.js +30 -4
  475. package/dist/server/src/lib/cli-tools/copilot.js +2 -1
  476. package/dist/server/src/lib/cli-tools/gemini.js +2 -1
  477. package/dist/server/src/lib/cli-tools/liveness-spec.js +27 -9
  478. package/dist/server/src/lib/cli-tools/opencode-v2.js +2 -1
  479. package/dist/server/src/lib/cli-tools/opencode.js +2 -1
  480. package/dist/server/src/lib/cli-tools/vibe-local.js +2 -1
  481. package/dist/server/src/lib/detection/cli-patterns.js +94 -1
  482. package/dist/server/src/lib/detection/status-reason.js +17 -0
  483. package/dist/server/src/lib/detection/tool-liveness.js +3 -1
  484. package/dist/server/src/lib/detection/tools/codex/detect.js +26 -0
  485. package/dist/server/src/lib/detection/tools/command-code/plan-review-state.js +75 -0
  486. package/dist/server/src/lib/hooks/sources/claude/transcript.js +33 -1
  487. package/dist/server/src/lib/realtime/terminal-broadcast.js +5 -0
  488. package/dist/server/src/lib/session/agent-session-lifecycle.js +11 -0
  489. package/dist/server/src/lib/session/claude-executor.js +2 -2
  490. package/dist/server/src/lib/session/claude-session.js +138 -16
  491. package/dist/server/src/lib/session/current-output-builder.js +49 -21
  492. package/dist/server/src/lib/session/launch-screen.js +57 -0
  493. package/dist/server/src/lib/session/session-start-error.js +20 -0
  494. package/dist/server/src/lib/session/session-starting-state.js +236 -0
  495. package/dist/server/src/lib/skills/agent-state-paths.js +39 -0
  496. package/dist/server/src/lib/skills/receipt-owned-paths.js +118 -0
  497. package/dist/server/src/lib/tmux/tmux.js +25 -0
  498. package/dist/server/src/lib/verification/env-clean-gate.js +195 -6
  499. package/dist/server/src/lib/verification/gate-runner.js +29 -2
  500. package/dist/server/src/lib/verification/scope-gate.js +58 -4
  501. package/docs/en/architecture.md +722 -0
  502. package/docs/en/user-guide/agents-guide.md +306 -0
  503. package/docs/en/user-guide/cli-setup-guide.md +676 -0
  504. package/docs/en/user-guide/cmate-schedules-guide.md +388 -0
  505. package/docs/en/user-guide/commands-guide.md +467 -0
  506. package/docs/en/user-guide/quick-start.md +231 -0
  507. package/docs/en/user-guide/webapp-guide.md +1020 -0
  508. package/docs/en/user-guide/workflow-examples.md +463 -0
  509. package/package.json +18 -7
  510. package/release-notes/0.44.0.json +82 -0
  511. package/release-notes/0.44.1.json +54 -0
  512. package/.next/server/chunks/1990.js +0 -103
  513. package/.next/server/chunks/3707.js +0 -15
  514. package/.next/server/chunks/6491.js +0 -103
  515. package/.next/server/chunks/7004.js +0 -1
  516. package/.next/server/chunks/8673.js +0 -14
  517. package/.next/static/chunks/2039-117a361f795ddc4b.js +0 -1
  518. package/.next/static/chunks/2053-611dd27d42721b79.js +0 -1
  519. package/.next/static/chunks/344-6f9fc1f38f01a839.js +0 -1
  520. package/.next/static/chunks/3778-56f41fc2cecb8c43.js +0 -1
  521. package/.next/static/chunks/3922.8e79fc89f593280b.js +0 -1
  522. package/.next/static/chunks/5449-6cb80bab2bd06b79.js +0 -1
  523. package/.next/static/chunks/6966-bb854d1145783a64.js +0 -1
  524. package/.next/static/chunks/7705-1f58d4c03d991fcf.js +0 -1
  525. package/.next/static/chunks/app/layout-057c850cd0df978e.js +0 -1
  526. package/.next/static/chunks/app/review/page-ff9efae3f86eb840.js +0 -1
  527. package/.next/static/chunks/app/sessions/page-1a8ba152bbcb9efb.js +0 -1
  528. package/.next/static/chunks/app/worktrees/[id]/page-eab0bf7564d3f9e2.js +0 -1
  529. package/.next/static/css/b3f433d52b8ed5c8.css +0 -1
  530. /package/.next/static/{BVkBYdceLRvMROqQIqeBx → 57lOiz8zSEHdw97XIm0af}/_buildManifest.js +0 -0
  531. /package/.next/static/{BVkBYdceLRvMROqQIqeBx → 57lOiz8zSEHdw97XIm0af}/_ssgManifest.js +0 -0
@@ -4,8 +4,110 @@ ${b}`}(a)});continue}if(g.type in y){b.push({kind:"tool",text:function(a){let b=
4
4
  >
5
5
  ${b}`}(a)});let c=f.content?.trim()??"";for(let a of(c.length>0&&(b.push({kind:"prose",text:c}),d+=1),f.toolCalls))b.push({kind:"tool",text:a.detail?`- \`${a.name}\` — ${a.detail}`:`- \`${a.name}\``}),e+=1;continue}if(f.source===S){U.has(f.type)||c.add(f.type);continue}V.has(f.type)||c.add(f.type)}let f=(0,r.t3)(b).body;return f.length>2e5&&(f=f.slice(0,2e5-R.length)+R),{conversationId:a.conversationId,stepIndex:a.stepIndex,body:f,textBlocks:d,toolBlocks:e,unknownRecordTypes:[...c]}}function Y(a){let b=0;for(let c of a.records)null!==c.timestampMs&&c.timestampMs>b&&(b=c.timestampMs);return b}function Z(a,b){let c=Y(a),d={confirmed:!1,lastRecordAt:c,stopAt:b};return W(a)?c<=0?{...d,reason:"no-timestamped-record"}:null===b?{...d,reason:"no-stop-event"}:b<Math.max(c,a.startedAt)?{...d,reason:"stop-before-last-record"}:{confirmed:!0,reason:"stop-after-last-record",lastRecordAt:c,stopAt:b}:{...d,reason:"turn-open"}}let $=(0,d.h)("lib/hooks/sources/antigravity/history"),_=[".gemini","antigravity-cli"],aa=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,ab=globalThis.__antigravityTranscriptConversations??=new Map,ac=globalThis.__antigravityUnsettledTurns??=new Map;function ad(a){return(0,k.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function ae(a,b,c,d){let e=ac.get(a);if(e&&e.conversationId!==b&&ac.delete(a),d){let b=ac.get(a);return b&&(b.steps=b.steps.filter(a=>a!==c),0===b.steps.length&&ac.delete(a)),null}let f=ac.get(a)??{conversationId:b,steps:[]};return(ac.set(a,f),f.steps.includes(c)||(f.steps.push(c),f.steps.length<=16))?null:f.steps.shift()??null}async function af(a){try{let b=(await Promise.resolve().then(c.bind(c,48083))).getLastStopEventAt;if("function"!=typeof b)return null;return b(a.worktreeId,a.cliToolId,a.instanceId)??null}catch(b){return $.debug("antigravity-transcript-stop-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)}),null}}async function ag(a){let b=ad(a);try{let{getLastAgentEvent:d}=await Promise.resolve().then(c.bind(c,48083)),e=d(a.worktreeId,a.cliToolId,a.instanceId)?.sessionId;if("string"==typeof e&&e.length>0)return ab.set(b,e),e}catch(b){$.debug("antigravity-transcript-conversation-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return ab.get(b)??null}function ah(a=(0,i.homedir)()){return(0,j.join)(a,..._)}function ai(a){return(0,j.join)(a,"brain")}async function aj(a,b={},c){let d=a.instanceId??a.cliToolId;try{let e=b.antigravityHome??ah(),f=await ag(a);if(!f)return $.debug("antigravity-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,reason:"no-conversation-pointer"}),!1;let g=await am(e,f);if(!g)return $.debug("antigravity-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,conversationId:f,reason:"no-file"}),!1;let h=await m(g);if(null===h)return!1;let i=function(a){let b=[],c=0;for(let d of a.split("\n")){let a;if(0===d.trim().length)continue;try{a=JSON.parse(d)}catch{c+=1;continue}let e=function(a){if(!(0,q.Qd)(a))return null;let b=a.step_index;if("number"!=typeof b||!Number.isInteger(b)||b<0)return null;let c=(0,q.O2)(a,"source"),d=(0,q.O2)(a,"type");if(!c||!d)return null;let e=(0,q.O2)(a,"created_at"),f=e?Date.parse(e):NaN,g=[];if(Array.isArray(a.tool_calls))for(let b of a.tool_calls){let a=function(a){var b;if(!(0,q.Qd)(a))return null;let c=(0,q.O2)(a,"name");if(!c)return null;let d=(0,q.Qd)(a.args)?a.args:null,e=d?(0,q.O2)(d,"toolAction")??(0,q.O2)(d,"toolSummary"):null;return{name:c,detail:e?(b=e.replace(/\s+/g," ").trim()).length<=200?b:`${b.slice(0,199)}…`:null}}(b);a&&g.push(a)}return{stepIndex:b,source:c,type:d,status:(0,q.O2)(a,"status"),timestampMs:Number.isFinite(f)?f:null,content:(0,q.O2)(a,"content"),thinking:(0,q.O2)(a,"thinking"),toolCalls:g}}(a);e?b.push(e):c+=1}return{records:b,malformedLines:c}}(h),j=function(a,b){let c=[],d=0;for(let g of a){var e,f;if(e=g,"USER_EXPLICIT"===e.source&&"USER_INPUT"===e.type){let a=g.content?function(a){let b=a.indexOf("<USER_REQUEST>");if(-1===b)return null;let c=b+14,d=a.indexOf("</USER_REQUEST>",c);if(-1===d)return null;let e=a.slice(c,d).trim();return e.length>0?e:null}(g.content):null,d=g.timestampMs??0;c.push({conversationId:b,stepIndex:g.stepIndex,startedAt:d,prompt:a?{stepIndex:g.stepIndex,text:a,timestampMs:g.timestampMs??d}:null,records:[],closed:!1,superseded:!1,overflowed:!1});continue}let a=c.at(-1);if(!a){d+=1;continue}if(g.source===S&&(a.closed=(f=g).source===S&&f.type===T&&!(f.toolCalls.length>0)&&(f.content??"").trim().length>0),a.records.length>=2048){a.overflowed=!0;continue}a.records.push(g)}for(let a=0;a<c.length-1;a+=1)c[a].superseded=!0;return{turns:c,preludeRecords:d}}(i.records,f);if(0===j.turns.length)return $.info("antigravity-transcript-no-turn",{worktreeId:a.worktreeId,instanceId:d,path:g,records:i.records.length,malformedLines:i.malformedLines,preludeRecords:j.preludeRecords}),!1;i.malformedLines>0&&$.info("antigravity-transcript-partial-read",{worktreeId:a.worktreeId,instanceId:d,path:g,malformedLines:i.malformedLines,preludeRecords:j.preludeRecords});let k=ad(a),l=await af(a),n=new Map;for(let a of j.turns)n.set(a.stepIndex,Z(a,l));let p=j.turns[j.turns.length-1],r=n.get(p.stepIndex)??Z(p,l),s=function(a,b,c){let d=ac.get(a);if(!d||d.conversationId!==b)return[];let e=d.steps.filter(a=>!c.has(a));return 0===e.length?[]:(d.steps=d.steps.filter(a=>c.has(a)),0===d.steps.length&&ac.delete(a),e)}(k,f,new Set(j.turns.map(a=>a.stepIndex)));s.length>0&&$.info("antigravity-transcript-unsettled-out-of-window",{worktreeId:a.worktreeId,instanceId:d,conversationId:f,steps:s,turnsInWindow:j.turns.length});let t=await al(a,j.turns),u=j.turns.slice(0,j.turns.length-t.turns.length);if(await aq(a,function(a,b){let c=a.slice(-3);if(0===b.length)return c;let d=new Set(c.map(a=>a.stepIndex)),e=new Set(b),f=a.filter(a=>e.has(a.stepIndex)&&!d.has(a.stepIndex));return 0===f.length?c:[...f,...c]}(u,function(a,b){let c=ac.get(a);return c?c.conversationId!==b?(ac.delete(a),[]):c.steps:[]}(k,f)),g,{instanceKey:k,conversationId:f,completions:n}),0===t.turns.length)return $.debug("antigravity-transcript-turns-already-saved",{worktreeId:a.worktreeId,instanceId:d,turnsInWindow:j.turns.length}),await (0,o.fT)(a),as(c,p,r),!0;t.turns.length>1&&$.info("antigravity-transcript-backfilling-turns",{worktreeId:a.worktreeId,instanceId:d,path:g,pendingTurns:t.turns.length,turnsInWindow:j.turns.length,anchored:t.anchored});let v=[];for(let b=0;b<t.turns.length;b+=1){let c=0===b?t.previousStartedAt:t.turns[b-1].startedAt;v.push(await ao(a,t.turns[b],c))}let w=!1;for(let b=0;b<t.turns.length;b+=1){let d=t.turns[b];(w=await at(a,d,X(d),function(a,b,c=0,d=null){let e=null===b.timestampMs?a.startedAt:Math.max(a.startedAt,b.timestampMs+1);return Math.max(e,Math.min(c,null===d?1/0:d-1))}(d,v[b],Y(d),function(a,b,c){let d=a[c+1];return d?b[c+1]?.timestampMs??d.startedAt:null}(t.turns,v,b)),g,c))&&ar(a,k,d,n.get(d.stepIndex)??Z(d,l))}return w&&(await (0,o.fT)(a),as(c,p,r)),w}catch(b){return $.error("antigravity-transcript-capture-failed",{worktreeId:a.worktreeId,instanceId:d,error:b instanceof Error?b.message:String(b)}),!1}}async function ak(a,b={}){try{let c=await ag(a);if(!c)return null;return await am(b.antigravityHome??ah(),c)}catch{return null}}async function al(a,b){let[{getDbInstance:d},{findMessageByRequestId:e}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),f=d();for(let c=b.length-1;c>=0;c-=1){let d=b[c],g=(0,p.O1)(d.conversationId,d.stepIndex);if(e(f,a.worktreeId,g))return{turns:b.slice(c+1),previousStartedAt:d.startedAt,anchored:!0}}return{turns:b.slice(-1),previousStartedAt:b.length>1?b[b.length-2].startedAt:0,anchored:!1}}async function am(a,b){let c=aa.test(b)?(0,j.join)(ai(a),b,...Q):null;if(!c)return null;let d=function(a,b){if(!b.endsWith(".jsonl")||b.includes("\0"))return null;let c=(0,j.resolve)(ai(a)),d=(0,j.resolve)(b);return d===c||d.startsWith(c+j.sep)?d:null}(a,c);return d&&await an(d)?d:null}async function an(a){try{return(await (0,h.stat)(a)).isFile()}catch{return!1}}async function ao(a,b,c=0){let d={outcome:"skipped",messageId:null,timestampMs:null},e=b.prompt;if(!e)return d;let f=await (0,n.Ce)(a,(0,p.jN)(b.conversationId,e.stepIndex),e.text,e.timestampMs,c>0?{adoptionFromMs:c}:{});return"failed"===f.outcome?($.warn("antigravity-transcript-user-turn-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,conversationId:b.conversationId,stepIndex:e.stepIndex}),d):f}async function ap(a,b,d,e){let f=a.instanceId??a.cliToolId,g=b.content;if("string"!=typeof g)return!1;let h=g.length;if(d.body.length<=h)return!1;let[{getDbInstance:i},{updateMessageContent:j},{broadcastMessage:k}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]);return j(i(),b.id,d.body),k("message_updated",{worktreeId:a.worktreeId,message:{...b,content:d.body}}),$.info("antigravity-transcript-turn-updated",{worktreeId:a.worktreeId,instanceId:f,conversationId:d.conversationId,stepIndex:d.stepIndex,requestId:b.requestId,path:e,previousLength:h,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}async function aq(a,b,d,e){if(0===b.length)return 0;let[{getDbInstance:f},{findMessageByRequestId:g}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),h=f(),i=0;for(let c of b){let b=g(h,a.worktreeId,(0,p.O1)(c.conversationId,c.stepIndex));if(!b){ae(e.instanceKey,e.conversationId,c.stepIndex,!0);continue}ar(a,e.instanceKey,c,e.completions.get(c.stepIndex)??Z(c,null)),W(c)&&await ap(a,b,X(c),d)&&(i+=1)}return i}function ar(a,b,c,d){let e=ae(b,c.conversationId,c.stepIndex,d.confirmed);null!==e&&$.info("antigravity-transcript-unsettled-evicted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,conversationId:c.conversationId,step:e,limit:16})}function as(a,b,c){a&&(a.completion=c.confirmed?"settled":"provisional",a.completionKey=c.confirmed?`${(0,p.O1)(b.conversationId,b.stepIndex)}@${c.lastRecordAt}`:void 0,a.completionReason=c.reason)}async function at(a,b,d,e,f,g){let h=a.instanceId??a.cliToolId;if(g&&(g.outcome=void 0),!W(b))return g&&(g.outcome="not_yet_closed"),$.info("antigravity-transcript-turn-open",{worktreeId:a.worktreeId,instanceId:h,conversationId:d.conversationId,stepIndex:d.stepIndex,records:b.records.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!1;if(0===d.body.length)return $.info("antigravity-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:h,conversationId:d.conversationId,stepIndex:d.stepIndex,records:b.records.length}),!1;d.unknownRecordTypes.length>0&&$.info("antigravity-transcript-unknown-records",{worktreeId:a.worktreeId,instanceId:h,conversationId:d.conversationId,stepIndex:d.stepIndex,recordTypes:d.unknownRecordTypes}),b.overflowed&&$.info("antigravity-transcript-turn-overflowed",{worktreeId:a.worktreeId,instanceId:h,conversationId:d.conversationId,stepIndex:d.stepIndex});let i=(0,p.O1)(d.conversationId,d.stepIndex),[{getDbInstance:j},{createMessage:k,findMessageByRequestId:l},{broadcastMessage:m}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]),n=j(),o=l(n,a.worktreeId,i);if(o)return $.debug("antigravity-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:h,requestId:i}),await ap(a,o,d,f),!0;let q=k(n,{worktreeId:a.worktreeId,role:"assistant",content:d.body,messageType:"normal",timestamp:new Date(e>0?e:Date.now()),cliToolId:a.cliToolId,instanceId:h,requestId:i});return m("message",{worktreeId:a.worktreeId,message:q}),$.info("antigravity-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:h,conversationId:d.conversationId,requestId:i,path:f,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}let au=[".commandcode","projects"],av=".jsonl",aw="message",ax="\n\n_(truncated)_",ay=["command","file_path","path","pattern","query","url","description"];function az(a){return!(a.type!==aw||"user"!==a.role||a.isMeta||!a.id||a.blocks.some(a=>"tool_result"===a.type))&&a.text.trim().length>0}function aA(a){return a.closed||a.superseded}let aB=new Set(["tool_result"]);function aC(a){let b=[],c=new Set,d=0,e=0;for(let f of a.blocks){if("text"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push({kind:"prose",text:a}),d+=1;continue}if("thinking"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push({kind:"aside",text:function(a){let b=a.trim().split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n");return`> **Thinking**
6
6
  >
7
- ${b}`}(a)});continue}if("tool_use"===f.type){b.push({kind:"tool",text:function(a){let b=a.toolName??"tool";return a.toolDetail?`- \`${b}\` — ${a.toolDetail}`:`- \`${b}\``}(f)}),e+=1;continue}aB.has(f.type)||c.add(f.type)}let f=(0,r.t3)(b).body;return f.length>2e5&&(f=f.slice(0,2e5-ax.length)+ax),{sessionId:a.sessionId,promptId:a.promptId,body:f,textBlocks:d,toolBlocks:e,unknownBlockTypes:[...c]}}let aD=(0,d.h)("lib/hooks/sources/command-code/history"),aE=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,aF=globalThis.__commandCodeTranscriptSessions??=new Map,aG=globalThis.__commandCodeTranscriptPaths??=new Map;async function aH(a){let b=(0,k.v7)(a.worktreeId,a.cliToolId,a.instanceId);try{let{getLastAgentEvent:d}=await Promise.resolve().then(c.bind(c,48083)),e=d(a.worktreeId,a.cliToolId,a.instanceId)?.sessionId;if("string"==typeof e&&e.length>0)return aF.set(b,e),e}catch(b){aD.debug("command-code-transcript-session-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return aF.get(b)??null}function aI(a){return(0,j.join)(a,...au)}async function aJ(a,b){let c;if(!aE.test(b))return null;let d=aI(a);try{c=await (0,h.readdir)(d,{withFileTypes:!0})}catch{return null}let e=[];for(let a of c){if(!a.isDirectory())continue;let b=0;try{b=(await (0,h.stat)((0,j.join)(d,a.name))).mtimeMs}catch{}e.push({name:a.name,modifiedAt:b})}e.sort((a,b)=>b.modifiedAt-a.modifiedAt);let f=`${b}${av}`;for(let a of e){let b=(0,j.join)(d,a.name,f);if(await aO(b))return b}return null}async function aK(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=b.commandCodeHome??(0,i.homedir)(),f=await aH(a),g=await aN(e,b,f);if(!g)return aD.debug("command-code-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,sessionId:f,reason:f?"no-file":"no-session-pointer"}),!1;let h=await m(g);if(null===h)return!1;let j=function(a){let b=[],c=0,d=null,e=null,f=null;for(let g of a.split("\n")){let a;if(0===g.trim().length)continue;try{a=JSON.parse(g)}catch{c+=1;continue}let h=function(a){if(!(0,q.Qd)(a))return null;let b=(0,q.O2)(a,"type");if(!b)return null;let c="session"===b,d=(0,q.Qd)(a.message)?a.message:null,e=d&&(0,q.Qd)(d.meta)?d.meta:null,f=d?.content,g=[],h="";if("string"==typeof f)h=f;else if(Array.isArray(f))for(let a of f){let b=function(a){if(!(0,q.Qd)(a))return null;let b=(0,q.O2)(a,"type");if(!b)return null;if("tool_use"===b)return{type:b,text:null,toolName:(0,q.O2)(a,"name"),toolDetail:function(a){if(!(0,q.Qd)(a))return null;for(let c of ay){let d=(0,q.O2)(a,c);if(d){var b;return(b=d.replace(/\s+/g," ").trim()).length<=200?b:`${b.slice(0,199)}…`}}return null}(a.input)};let c="text"===b?(0,q.O2)(a,"text")??"":"thinking"===b?(0,q.O2)(a,"thinking")??"":null;return{type:b,text:c,toolName:null,toolDetail:null}}(a);b&&(g.push(b),"text"===b.type&&b.text&&(h+=b.text))}let i=(0,q.O2)(a,"timestamp"),j=i?Date.parse(i):NaN,k=e&&"number"==typeof e.createdAt?e.createdAt:null;return{type:b,id:c?null:(0,q.O2)(a,"id"),parentId:(0,q.O2)(a,"parentId"),role:d?(0,q.O2)(d,"role"):null,sessionId:c?(0,q.O2)(a,"id"):null,cwd:c?(0,q.O2)(a,"cwd"):null,parentSession:c?(0,q.O2)(a,"parentSession"):null,source:e?(0,q.O2)(e,"source"):null,isMeta:e?.isMeta===!0,isSummary:e?.isSummary===!0,isAutomated:e?.isAutomated===!0,timestampMs:null!==k&&Number.isFinite(k)?k:Number.isFinite(j)?j:null,blocks:g,text:h}}(a);if(!h){c+=1;continue}b.push(h),h.sessionId&&(d=h.sessionId,e=h.cwd,f=h.parentSession)}return{records:b,malformedLines:c,sessionId:d,cwd:e,parentSession:f}}(h),k=function(a,b){let c=[],d=new Set,e=null,f=0,g=0,h=0,i=b;for(let b of a){if(b.sessionId){i=b.sessionId;continue}if(b.type!==aw){h+=1,b.id&&d.add(b.id);continue}if(null===b.parentId||d.has(b.parentId)||(g+=1),b.id&&d.add(b.id),az(b)){e=function(a,b){return{sessionId:b,promptId:a.id,startedAt:a.timestampMs??0,promptText:a.text,promptIsOperatorInput:!!az(a)&&!a.isSummary&&!a.isAutomated&&"user"===a.source,blocks:[],assistantRecords:0,closed:!1,superseded:!1,overflowed:!1}}(b,i),c.push(e);continue}if("assistant"===b.role){if(!e){f+=1;continue}for(let a of(e.assistantRecords+=1,e.closed=!(b.type!==aw||"assistant"!==b.role||b.blocks.some(a=>"tool_use"===a.type))&&b.blocks.some(a=>"text"===a.type&&(a.text??"").trim().length>0),b.blocks)){if(e.blocks.length>=2048){e.overflowed=!0;break}e.blocks.push(a)}}}for(let a=0;a<c.length-1;a+=1)c[a].superseded=!0;return{turns:c,orphanedAssistantRecords:f,unresolvedParentRecords:g,nonMessageRecords:h}}(j.records,j.sessionId??f??"");if(0===k.turns.length)return aD.info("command-code-transcript-no-turn",{worktreeId:a.worktreeId,instanceId:d,path:g,records:j.records.length,malformedLines:j.malformedLines,orphanedAssistantRecords:k.orphanedAssistantRecords}),!1;(j.malformedLines>0||k.orphanedAssistantRecords>0||null!==j.parentSession)&&aD.info("command-code-transcript-partial-read",{worktreeId:a.worktreeId,instanceId:d,path:g,malformedLines:j.malformedLines,orphanedAssistantRecords:k.orphanedAssistantRecords,unresolvedParentRecords:k.unresolvedParentRecords,nonMessageRecords:k.nonMessageRecords,parentSession:j.parentSession});let l=await aL(a,k.turns);if(await aS(a,k.turns.slice(0,k.turns.length-l.turns.length).slice(-aQ),g),0===l.turns.length)return aD.debug("command-code-transcript-turns-already-saved",{worktreeId:a.worktreeId,instanceId:d,turnsInWindow:k.turns.length}),await (0,o.fT)(a),!0;l.turns.length>1&&aD.info("command-code-transcript-backfilling-turns",{worktreeId:a.worktreeId,instanceId:d,path:g,pendingTurns:l.turns.length,turnsInWindow:k.turns.length,anchored:l.anchored});let n=[];for(let b=0;b<l.turns.length;b+=1){let c=0===b?l.previousStartedAt:l.turns[b-1].startedAt;n.push(await aP(a,l.turns[b],c))}let p=function(a){let b=new Map,c=null;for(let d of a)if(!d.sessionId&&d.type===aw){if(az(d)){c=d.id;continue}"assistant"===d.role&&null!==c&&null!==d.timestampMs&&d.timestampMs>(b.get(c)??0)&&b.set(c,d.timestampMs)}return b}(j.records),r=!1;for(let b=0;b<l.turns.length;b+=1){let d=l.turns[b];r=await aT(a,d,aC(d),function(a,b,c=0,d=null){let e=null===b.timestampMs?a.startedAt:Math.max(a.startedAt,b.timestampMs+1);return Math.max(e,Math.min(c,null===d?1/0:d-1))}(d,n[b],p.get(d.promptId)??0,function(a,b,c){let d=a[c+1];return d?b[c+1]?.timestampMs??d.startedAt:null}(l.turns,n,b)),g,c)}return r&&await (0,o.fT)(a),r}catch(b){return aD.error("command-code-transcript-capture-failed",{worktreeId:a.worktreeId,instanceId:d,error:b instanceof Error?b.message:String(b)}),!1}}async function aL(a,b){let[{getDbInstance:d},{findMessageByRequestId:e}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),f=d();for(let c=b.length-1;c>=0;c-=1){let d=(0,p.sT)(b[c].promptId);if(e(f,a.worktreeId,d))return{turns:b.slice(c+1),previousStartedAt:b[c].startedAt,anchored:!0}}return{turns:b.slice(-1),previousStartedAt:b.length>1?b[b.length-2].startedAt:0,anchored:!1}}async function aM(a,b){try{let c=b.commandCodeHome??(0,i.homedir)();return await aN(c,b,await aH(a))}catch{return null}}async function aN(a,b,c){let d=b.transcriptPathHint;if("string"==typeof d&&d.length>0){let b=function(a,b){if(!b.endsWith(av)||b.includes("\0"))return null;let c=(0,j.resolve)(aI(a)),d=(0,j.resolve)(b);return d===c||d.startsWith(c+j.sep)?d:null}(a,d);if(b&&await aO(b))return b}if(!c)return null;let e=`${a}\0${c}`,f=aG.get(e);if(f&&await aO(f))return f;let g=await aJ(a,c);return g?aG.set(e,g):aG.delete(e),g}async function aO(a){try{return(await (0,h.stat)(a)).isFile()}catch{return!1}}async function aP(a,b,c=0){let d=a.instanceId??a.cliToolId;if(!b.promptIsOperatorInput)return aD.debug("command-code-transcript-user-turn-skipped",{worktreeId:a.worktreeId,instanceId:d,promptId:b.promptId,reason:"not-operator-input"}),{outcome:"skipped",messageId:null,timestampMs:null};let e=await (0,n.Ce)(a,(0,p.TW)(b.promptId),b.promptText,b.startedAt,c>0?{adoptionFromMs:c}:{});return"failed"===e.outcome&&aD.warn("command-code-transcript-user-turn-failed",{worktreeId:a.worktreeId,instanceId:d,sessionId:b.sessionId,promptId:b.promptId}),e}let aQ=3;async function aR(a,b,d,e){let f=a.instanceId??a.cliToolId,g=b.content.length;if(d.body.length<=g)return!1;let[{getDbInstance:h},{updateMessageContent:i},{broadcastMessage:j}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]);return i(h(),b.id,d.body),j("message_updated",{worktreeId:a.worktreeId,message:{...b,content:d.body}}),aD.info("command-code-transcript-turn-updated",{worktreeId:a.worktreeId,instanceId:f,sessionId:d.sessionId,requestId:b.requestId,path:e,previousLength:g,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}async function aS(a,b,d){if(0===b.length)return 0;let[{getDbInstance:e},{findMessageByRequestId:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),g=e(),h=0;for(let c of b){if(!aA(c))continue;let b=f(g,a.worktreeId,(0,p.sT)(c.promptId));b&&await aR(a,b,aC(c),d)&&(h+=1)}return h}async function aT(a,b,d,e,f,g){let h=a.instanceId??a.cliToolId;if(g&&(g.outcome=void 0),!aA(b))return g&&(g.outcome="not_yet_closed"),aD.info("command-code-transcript-turn-open",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,promptId:d.promptId,assistantRecords:b.assistantRecords,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!1;if(0===d.body.length)return aD.info("command-code-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,promptId:d.promptId}),!1;d.unknownBlockTypes.length>0&&aD.info("command-code-transcript-unknown-blocks",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,blockTypes:d.unknownBlockTypes});let i=(0,p.sT)(d.promptId),[{getDbInstance:j},{createMessage:k,findMessageByRequestId:l},{broadcastMessage:m}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]),n=j(),o=l(n,a.worktreeId,i);if(o)return aD.debug("command-code-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:h,requestId:i}),await aR(a,o,d,f),!0;let q=k(n,{worktreeId:a.worktreeId,role:"assistant",content:d.body,messageType:"normal",timestamp:new Date(e>0?e:Date.now()),cliToolId:a.cliToolId,instanceId:h,requestId:i});return m("message",{worktreeId:a.worktreeId,message:q}),aD.info("command-code-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,requestId:i,path:f,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}var aU=c(70997),aV=c(2734),aW=c(76835),aX=c(28862),aY=c(129),aZ=c(43925);let a$=(0,d.h)("lib/polling/structured-history-gate"),a_=globalThis.__structuredHistoryCaptureQueue??=new Map,a0=globalThis.__structuredHistoryAnnouncedCompletions??=new Map;function a1(){a_.clear(),a0.clear()}let a2={[aU.v]:{capture:(a,b,c)=>(0,g.K$)(a,b,c),locate:(a,b)=>(0,g.Oi)(a,b)},[aV.c]:{capture:(a,b,c)=>J(a,b,c),locate:(a,b)=>K(a,b)},[aW.F]:{capture:(a,b,c)=>aj(a,b,c),locate:(a,b)=>ak(a,b)},[aX.k]:{capture:(a,b,c)=>aK(a,b,c),locate:(a,b)=>aM(a,b)}};function a3(a){try{return(0,aY.VM)(a).capabilities.transcriptHistory??null}catch(b){return a$.warn("structured-history-capability-unavailable",{cliToolId:a,error:b instanceof Error?b.message:String(b)}),null}}function a4(a){return"pull"===a3(a)}let a5={opencode:a=>(0,e.f4)(a),"opencode-v2":a=>(0,f.rE)(a)};function a6(a,b,c){if("push"!==a3(b))return!1;try{return(a5[b]??e.f4)({worktreeId:a,cliToolId:b,instanceId:c??b})}catch(d){return a$.warn("structured-history-gate-unavailable",{worktreeId:a,cliToolId:b,instanceId:c??b,error:d instanceof Error?d.message:String(d)}),!1}}async function a7(a,b,c,d,e){if(e&&(e.outcome="unavailable"),!a4(b))return!1;let f=a2[b];if(!f)return a$.warn("structured-history-reader-missing",{worktreeId:a,cliToolId:b,instanceId:c??b}),!1;let g=c??b,h=`${a}\u0000${b}\u0000${g}`;var i=async()=>{let c={};try{let j=await f.capture({worktreeId:a,cliToolId:b,instanceId:g},d,c),k=c.completion??"settled";if(e&&(e.outcome=j?"captured":c.outcome??"unavailable",e.completion=k,e.completionKey=c.completionKey,e.completionReason=c.completionReason),j&&"settled"===k){var i;i=c.completionKey,(void 0===i||a0.get(h)!==i&&(a0.set(h,i),1))&&(0,aZ.vQ)(a,b,g,!0)}else j&&a$.info("structured-history-capture-provisional",{worktreeId:a,cliToolId:b,instanceId:g,reason:c.completionReason??"unknown"});return j}catch(c){return a$.warn("structured-history-capture-unavailable",{worktreeId:a,cliToolId:b,instanceId:g,error:c instanceof Error?c.message:String(c)}),!1}};let j=(a_.get(h)??Promise.resolve()).then(i,i),k=j.then(()=>void 0,()=>void 0);return a_.set(h,k),k.then(()=>{a_.get(h)===k&&a_.delete(h)}),j}async function a8(a,b,c,d){let e=a4(b)?a2[b]:void 0;if(!e)return!1;try{let f=await e.locate({worktreeId:a,cliToolId:b,instanceId:c??b},d);return null!==f}catch(d){return a$.warn("structured-history-locate-unavailable",{worktreeId:a,cliToolId:b,instanceId:c??b,error:d instanceof Error?d.message:String(d)}),!1}}},79696:(a,b,c)=>{c.d(b,{K$:()=>K,readClaudeTurnProgress:()=>N,Oi:()=>M});var d=c(79748),e=c(21820),f=c(33873),g=c(24455),h=c(18201),i=c(12462),j=c(72626),k=c(86594),l=c(57510),m=c(27128);let n=[".claude","projects"],o="\n\n_(truncated)_",p=["<local-command-caveat>","<local-command-stdout>","<command-name>"],q="<command-message>",r=/<command-name>([\s\S]*?)<\/command-name>/,s=/<command-args>([\s\S]*?)<\/command-args>/;function t(a){let b=a.trim();if(!b.startsWith(q))return null;let c=r.exec(b)?.[1].trim()??"";if(0===c.length)return null;let d=s.exec(b)?.[1].trim()??"";return 0===d.length?c:`${c} ${d}`}let u=["command","file_path","notebook_path","path","pattern","query","url","description"];function v(a){if(!(0,l.Qd)(a))return null;let b=(0,l.O2)(a,"type");if(!b)return null;let c=(0,l.Qd)(a.message)?a.message:null,d=c?.content,e=[],f="";if("string"==typeof d)f=d;else if(Array.isArray(d))for(let a of d){let b=function(a){if(!(0,l.Qd)(a))return null;let b=(0,l.O2)(a,"type");if(!b)return null;if("tool_use"===b)return{type:b,text:null,toolName:(0,l.O2)(a,"name"),toolDetail:function(a){if(!(0,l.Qd)(a))return null;for(let c of u){let d=(0,l.O2)(a,c);if(d){var b;return(b=d.replace(/\s+/g," ").trim()).length<=200?b:`${b.slice(0,199)}…`}}return null}(a.input)};let c="text"===b?(0,l.O2)(a,"text")??"":"thinking"===b?(0,l.O2)(a,"thinking")??"":null;return{type:b,text:c,toolName:null,toolDetail:null}}(a);b&&(e.push(b),b.text&&(f+=b.text))}let g=(0,l.O2)(a,"timestamp"),h=g?Date.parse(g):NaN,i=(0,l.Qd)(a.origin)?a.origin:null;return{type:b,uuid:(0,l.O2)(a,"uuid"),sessionId:(0,l.O2)(a,"sessionId")??(0,l.O2)(a,"session_id"),cwd:(0,l.O2)(a,"cwd"),isSidechain:!0===a.isSidechain,isMeta:!0===a.isMeta,originKind:i?(0,l.O2)(i,"kind"):null,promptSource:(0,l.O2)(a,"promptSource"),isCompactSummary:!0===a.isCompactSummary,isInterruption:null!==(0,l.O2)(a,"interruptedMessageId"),timestampMs:Number.isFinite(h)?h:null,stopReason:c?(0,l.O2)(c,"stop_reason"):null,blocks:e,text:f}}function w(a){let b=[],c=0;for(let d of a.split("\n")){let a;if(0===d.trim().length)continue;try{a=JSON.parse(d)}catch{c+=1;continue}let e=v(a);e?b.push(e):c+=1}return{records:b,malformedLines:c}}function x(a){if("user"!==a.type||a.isMeta||!a.uuid||a.blocks.some(a=>"tool_result"===a.type))return!1;let b=a.text.trim();return 0!==b.length&&(b.startsWith(q)?null!==t(b):!p.some(a=>b.startsWith(a)))}let y=["typed","queued"];function z(a){return"assistant"===a.type&&"end_turn"===a.stopReason&&a.blocks.some(a=>"text"===a.type&&(a.text??"").trim().length>0)}function A(a){return!!a.closed||!!a.superseded||!a.stopReasonObserved}function B(a,b){let c=[],d=null,e=0,f=0;for(let g of a){if(g.isSidechain){f+=1;continue}if(x(g)){d=function(a,b){return{sessionId:a.sessionId??b,promptUuid:a.uuid,startedAt:a.timestampMs??0,promptText:t(a.text)??a.text,promptIsOperatorInput:!!x(a)&&!a.isCompactSummary&&!a.isInterruption&&(null!==a.originKind?"human"===a.originKind:null!==a.promptSource&&y.includes(a.promptSource)),blocks:[],assistantRecords:0,closed:!1,superseded:!1,stopReasonObserved:!1,overflowed:!1}}(g,b),c.push(d);continue}if("assistant"===g.type){if(!d){e+=1;continue}for(let a of(d.assistantRecords+=1,d.closed=z(g),null!==g.stopReason&&(d.stopReasonObserved=!0),g.blocks)){if(d.blocks.length>=2048){d.overflowed=!0;break}d.blocks.push(a)}}}for(let a=0;a<c.length-1;a+=1)c[a].superseded=!0;return{turns:c,orphanedAssistantRecords:e,sidechainRecords:f}}let C=new Set(["tool_result"]);function D(a){let b=[],c=new Set,d=0,e=0;for(let f of a.blocks){if("text"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push({kind:"prose",text:a}),d+=1;continue}if("thinking"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push({kind:"aside",text:function(a){let b=a.trim().split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n");return`> **Thinking**
7
+ ${b}`}(a)});continue}if("tool_use"===f.type){b.push({kind:"tool",text:function(a){let b=a.toolName??"tool";return a.toolDetail?`- \`${b}\` — ${a.toolDetail}`:`- \`${b}\``}(f)}),e+=1;continue}aB.has(f.type)||c.add(f.type)}let f=(0,r.t3)(b).body;return f.length>2e5&&(f=f.slice(0,2e5-ax.length)+ax),{sessionId:a.sessionId,promptId:a.promptId,body:f,textBlocks:d,toolBlocks:e,unknownBlockTypes:[...c]}}let aD=(0,d.h)("lib/hooks/sources/command-code/history"),aE=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,aF=globalThis.__commandCodeTranscriptSessions??=new Map,aG=globalThis.__commandCodeTranscriptPaths??=new Map;async function aH(a){let b=(0,k.v7)(a.worktreeId,a.cliToolId,a.instanceId);try{let{getLastAgentEvent:d}=await Promise.resolve().then(c.bind(c,48083)),e=d(a.worktreeId,a.cliToolId,a.instanceId)?.sessionId;if("string"==typeof e&&e.length>0)return aF.set(b,e),e}catch(b){aD.debug("command-code-transcript-session-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return aF.get(b)??null}function aI(a){return(0,j.join)(a,...au)}async function aJ(a,b){let c;if(!aE.test(b))return null;let d=aI(a);try{c=await (0,h.readdir)(d,{withFileTypes:!0})}catch{return null}let e=[];for(let a of c){if(!a.isDirectory())continue;let b=0;try{b=(await (0,h.stat)((0,j.join)(d,a.name))).mtimeMs}catch{}e.push({name:a.name,modifiedAt:b})}e.sort((a,b)=>b.modifiedAt-a.modifiedAt);let f=`${b}${av}`;for(let a of e){let b=(0,j.join)(d,a.name,f);if(await aO(b))return b}return null}async function aK(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=b.commandCodeHome??(0,i.homedir)(),f=await aH(a),g=await aN(e,b,f);if(!g)return aD.debug("command-code-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,sessionId:f,reason:f?"no-file":"no-session-pointer"}),!1;let h=await m(g);if(null===h)return!1;let j=function(a){let b=[],c=0,d=null,e=null,f=null;for(let g of a.split("\n")){let a;if(0===g.trim().length)continue;try{a=JSON.parse(g)}catch{c+=1;continue}let h=function(a){if(!(0,q.Qd)(a))return null;let b=(0,q.O2)(a,"type");if(!b)return null;let c="session"===b,d=(0,q.Qd)(a.message)?a.message:null,e=d&&(0,q.Qd)(d.meta)?d.meta:null,f=d?.content,g=[],h="";if("string"==typeof f)h=f;else if(Array.isArray(f))for(let a of f){let b=function(a){if(!(0,q.Qd)(a))return null;let b=(0,q.O2)(a,"type");if(!b)return null;if("tool_use"===b)return{type:b,text:null,toolName:(0,q.O2)(a,"name"),toolDetail:function(a){if(!(0,q.Qd)(a))return null;for(let c of ay){let d=(0,q.O2)(a,c);if(d){var b;return(b=d.replace(/\s+/g," ").trim()).length<=200?b:`${b.slice(0,199)}…`}}return null}(a.input)};let c="text"===b?(0,q.O2)(a,"text")??"":"thinking"===b?(0,q.O2)(a,"thinking")??"":null;return{type:b,text:c,toolName:null,toolDetail:null}}(a);b&&(g.push(b),"text"===b.type&&b.text&&(h+=b.text))}let i=(0,q.O2)(a,"timestamp"),j=i?Date.parse(i):NaN,k=e&&"number"==typeof e.createdAt?e.createdAt:null;return{type:b,id:c?null:(0,q.O2)(a,"id"),parentId:(0,q.O2)(a,"parentId"),role:d?(0,q.O2)(d,"role"):null,sessionId:c?(0,q.O2)(a,"id"):null,cwd:c?(0,q.O2)(a,"cwd"):null,parentSession:c?(0,q.O2)(a,"parentSession"):null,source:e?(0,q.O2)(e,"source"):null,isMeta:e?.isMeta===!0,isSummary:e?.isSummary===!0,isAutomated:e?.isAutomated===!0,timestampMs:null!==k&&Number.isFinite(k)?k:Number.isFinite(j)?j:null,blocks:g,text:h}}(a);if(!h){c+=1;continue}b.push(h),h.sessionId&&(d=h.sessionId,e=h.cwd,f=h.parentSession)}return{records:b,malformedLines:c,sessionId:d,cwd:e,parentSession:f}}(h),k=function(a,b){let c=[],d=new Set,e=null,f=0,g=0,h=0,i=b;for(let b of a){if(b.sessionId){i=b.sessionId;continue}if(b.type!==aw){h+=1,b.id&&d.add(b.id);continue}if(null===b.parentId||d.has(b.parentId)||(g+=1),b.id&&d.add(b.id),az(b)){e=function(a,b){return{sessionId:b,promptId:a.id,startedAt:a.timestampMs??0,promptText:a.text,promptIsOperatorInput:!!az(a)&&!a.isSummary&&!a.isAutomated&&"user"===a.source,blocks:[],assistantRecords:0,closed:!1,superseded:!1,overflowed:!1}}(b,i),c.push(e);continue}if("assistant"===b.role){if(!e){f+=1;continue}for(let a of(e.assistantRecords+=1,e.closed=!(b.type!==aw||"assistant"!==b.role||b.blocks.some(a=>"tool_use"===a.type))&&b.blocks.some(a=>"text"===a.type&&(a.text??"").trim().length>0),b.blocks)){if(e.blocks.length>=2048){e.overflowed=!0;break}e.blocks.push(a)}}}for(let a=0;a<c.length-1;a+=1)c[a].superseded=!0;return{turns:c,orphanedAssistantRecords:f,unresolvedParentRecords:g,nonMessageRecords:h}}(j.records,j.sessionId??f??"");if(0===k.turns.length)return aD.info("command-code-transcript-no-turn",{worktreeId:a.worktreeId,instanceId:d,path:g,records:j.records.length,malformedLines:j.malformedLines,orphanedAssistantRecords:k.orphanedAssistantRecords}),!1;(j.malformedLines>0||k.orphanedAssistantRecords>0||null!==j.parentSession)&&aD.info("command-code-transcript-partial-read",{worktreeId:a.worktreeId,instanceId:d,path:g,malformedLines:j.malformedLines,orphanedAssistantRecords:k.orphanedAssistantRecords,unresolvedParentRecords:k.unresolvedParentRecords,nonMessageRecords:k.nonMessageRecords,parentSession:j.parentSession});let l=await aL(a,k.turns);if(await aS(a,k.turns.slice(0,k.turns.length-l.turns.length).slice(-aQ),g),0===l.turns.length)return aD.debug("command-code-transcript-turns-already-saved",{worktreeId:a.worktreeId,instanceId:d,turnsInWindow:k.turns.length}),await (0,o.fT)(a),!0;l.turns.length>1&&aD.info("command-code-transcript-backfilling-turns",{worktreeId:a.worktreeId,instanceId:d,path:g,pendingTurns:l.turns.length,turnsInWindow:k.turns.length,anchored:l.anchored});let n=[];for(let b=0;b<l.turns.length;b+=1){let c=0===b?l.previousStartedAt:l.turns[b-1].startedAt;n.push(await aP(a,l.turns[b],c))}let p=function(a){let b=new Map,c=null;for(let d of a)if(!d.sessionId&&d.type===aw){if(az(d)){c=d.id;continue}"assistant"===d.role&&null!==c&&null!==d.timestampMs&&d.timestampMs>(b.get(c)??0)&&b.set(c,d.timestampMs)}return b}(j.records),r=!1;for(let b=0;b<l.turns.length;b+=1){let d=l.turns[b];r=await aT(a,d,aC(d),function(a,b,c=0,d=null){let e=null===b.timestampMs?a.startedAt:Math.max(a.startedAt,b.timestampMs+1);return Math.max(e,Math.min(c,null===d?1/0:d-1))}(d,n[b],p.get(d.promptId)??0,function(a,b,c){let d=a[c+1];return d?b[c+1]?.timestampMs??d.startedAt:null}(l.turns,n,b)),g,c)}return r&&await (0,o.fT)(a),r}catch(b){return aD.error("command-code-transcript-capture-failed",{worktreeId:a.worktreeId,instanceId:d,error:b instanceof Error?b.message:String(b)}),!1}}async function aL(a,b){let[{getDbInstance:d},{findMessageByRequestId:e}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),f=d();for(let c=b.length-1;c>=0;c-=1){let d=(0,p.sT)(b[c].promptId);if(e(f,a.worktreeId,d))return{turns:b.slice(c+1),previousStartedAt:b[c].startedAt,anchored:!0}}return{turns:b.slice(-1),previousStartedAt:b.length>1?b[b.length-2].startedAt:0,anchored:!1}}async function aM(a,b){try{let c=b.commandCodeHome??(0,i.homedir)();return await aN(c,b,await aH(a))}catch{return null}}async function aN(a,b,c){let d=b.transcriptPathHint;if("string"==typeof d&&d.length>0){let b=function(a,b){if(!b.endsWith(av)||b.includes("\0"))return null;let c=(0,j.resolve)(aI(a)),d=(0,j.resolve)(b);return d===c||d.startsWith(c+j.sep)?d:null}(a,d);if(b&&await aO(b))return b}if(!c)return null;let e=`${a}\0${c}`,f=aG.get(e);if(f&&await aO(f))return f;let g=await aJ(a,c);return g?aG.set(e,g):aG.delete(e),g}async function aO(a){try{return(await (0,h.stat)(a)).isFile()}catch{return!1}}async function aP(a,b,c=0){let d=a.instanceId??a.cliToolId;if(!b.promptIsOperatorInput)return aD.debug("command-code-transcript-user-turn-skipped",{worktreeId:a.worktreeId,instanceId:d,promptId:b.promptId,reason:"not-operator-input"}),{outcome:"skipped",messageId:null,timestampMs:null};let e=await (0,n.Ce)(a,(0,p.TW)(b.promptId),b.promptText,b.startedAt,c>0?{adoptionFromMs:c}:{});return"failed"===e.outcome&&aD.warn("command-code-transcript-user-turn-failed",{worktreeId:a.worktreeId,instanceId:d,sessionId:b.sessionId,promptId:b.promptId}),e}let aQ=3;async function aR(a,b,d,e){let f=a.instanceId??a.cliToolId,g=b.content.length;if(d.body.length<=g)return!1;let[{getDbInstance:h},{updateMessageContent:i},{broadcastMessage:j}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]);return i(h(),b.id,d.body),j("message_updated",{worktreeId:a.worktreeId,message:{...b,content:d.body}}),aD.info("command-code-transcript-turn-updated",{worktreeId:a.worktreeId,instanceId:f,sessionId:d.sessionId,requestId:b.requestId,path:e,previousLength:g,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}async function aS(a,b,d){if(0===b.length)return 0;let[{getDbInstance:e},{findMessageByRequestId:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),g=e(),h=0;for(let c of b){if(!aA(c))continue;let b=f(g,a.worktreeId,(0,p.sT)(c.promptId));b&&await aR(a,b,aC(c),d)&&(h+=1)}return h}async function aT(a,b,d,e,f,g){let h=a.instanceId??a.cliToolId;if(g&&(g.outcome=void 0),!aA(b))return g&&(g.outcome="not_yet_closed"),aD.info("command-code-transcript-turn-open",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,promptId:d.promptId,assistantRecords:b.assistantRecords,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!1;if(0===d.body.length)return aD.info("command-code-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,promptId:d.promptId}),!1;d.unknownBlockTypes.length>0&&aD.info("command-code-transcript-unknown-blocks",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,blockTypes:d.unknownBlockTypes});let i=(0,p.sT)(d.promptId),[{getDbInstance:j},{createMessage:k,findMessageByRequestId:l},{broadcastMessage:m}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]),n=j(),o=l(n,a.worktreeId,i);if(o)return aD.debug("command-code-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:h,requestId:i}),await aR(a,o,d,f),!0;let q=k(n,{worktreeId:a.worktreeId,role:"assistant",content:d.body,messageType:"normal",timestamp:new Date(e>0?e:Date.now()),cliToolId:a.cliToolId,instanceId:h,requestId:i});return m("message",{worktreeId:a.worktreeId,message:q}),aD.info("command-code-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,requestId:i,path:f,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}var aU=c(70997),aV=c(2734),aW=c(76835),aX=c(28862),aY=c(129),aZ=c(43925);let a$=(0,d.h)("lib/polling/structured-history-gate"),a_=globalThis.__structuredHistoryCaptureQueue??=new Map,a0=globalThis.__structuredHistoryAnnouncedCompletions??=new Map;function a1(){a_.clear(),a0.clear()}let a2={[aU.v]:{capture:(a,b,c)=>(0,g.K$)(a,b,c),locate:(a,b)=>(0,g.Oi)(a,b)},[aV.c]:{capture:(a,b,c)=>J(a,b,c),locate:(a,b)=>K(a,b)},[aW.F]:{capture:(a,b,c)=>aj(a,b,c),locate:(a,b)=>ak(a,b)},[aX.k]:{capture:(a,b,c)=>aK(a,b,c),locate:(a,b)=>aM(a,b)}};function a3(a){try{return(0,aY.VM)(a).capabilities.transcriptHistory??null}catch(b){return a$.warn("structured-history-capability-unavailable",{cliToolId:a,error:b instanceof Error?b.message:String(b)}),null}}function a4(a){return"pull"===a3(a)}let a5={opencode:a=>(0,e.f4)(a),"opencode-v2":a=>(0,f.rE)(a)};function a6(a,b,c){if("push"!==a3(b))return!1;try{return(a5[b]??e.f4)({worktreeId:a,cliToolId:b,instanceId:c??b})}catch(d){return a$.warn("structured-history-gate-unavailable",{worktreeId:a,cliToolId:b,instanceId:c??b,error:d instanceof Error?d.message:String(d)}),!1}}async function a7(a,b,c,d,e){if(e&&(e.outcome="unavailable"),!a4(b))return!1;let f=a2[b];if(!f)return a$.warn("structured-history-reader-missing",{worktreeId:a,cliToolId:b,instanceId:c??b}),!1;let g=c??b,h=`${a}\u0000${b}\u0000${g}`;var i=async()=>{let c={};try{let j=await f.capture({worktreeId:a,cliToolId:b,instanceId:g},d,c),k=c.completion??"settled";if(e&&(e.outcome=j?"captured":c.outcome??"unavailable",e.completion=k,e.completionKey=c.completionKey,e.completionReason=c.completionReason),j&&"settled"===k){var i;i=c.completionKey,(void 0===i||a0.get(h)!==i&&(a0.set(h,i),1))&&(0,aZ.vQ)(a,b,g,!0)}else j&&a$.info("structured-history-capture-provisional",{worktreeId:a,cliToolId:b,instanceId:g,reason:c.completionReason??"unknown"});return j}catch(c){return a$.warn("structured-history-capture-unavailable",{worktreeId:a,cliToolId:b,instanceId:g,error:c instanceof Error?c.message:String(c)}),!1}};let j=(a_.get(h)??Promise.resolve()).then(i,i),k=j.then(()=>void 0,()=>void 0);return a_.set(h,k),k.then(()=>{a_.get(h)===k&&a_.delete(h)}),j}async function a8(a,b,c,d){let e=a4(b)?a2[b]:void 0;if(!e)return!1;try{let f=await e.locate({worktreeId:a,cliToolId:b,instanceId:c??b},d);return null!==f}catch(d){return a$.warn("structured-history-locate-unavailable",{worktreeId:a,cliToolId:b,instanceId:c??b,error:d instanceof Error?d.message:String(d)}),!1}}},31990:(a,b,c)=>{c.d(b,{Wh:()=>R,WD:()=>S,Lw:()=>U,K1:()=>Q,N5:()=>T});var d=c(8360),e=c(72626),f=c(79892);let g={streamingOutput:!1,explicitResize:!1,snapshotFallback:!0};class h{async unsubscribe(){}}class i{async ensureSession(a,b){await (0,f.N)(a)||await (0,f.jw)(a,b)}async sessionExists(a){return(0,f.N)(a)}async sendInput(a,b){await (0,f.V1)(a,b)}async sendSpecialKey(a,b){if("Escape"!==b&&"C-c"!==b&&"C-d"!==b&&"C-m"!==b&&"Enter"!==b)throw Error(`Unsupported special key for PollingTmuxTransport: ${b}`);await (0,f.ds)(a,b)}async resize(){throw Error("PollingTmuxTransport does not support explicit resize")}async captureSnapshot(a,b){return(0,f.Xg)(a,b)}async subscribe(){return new h}getCapabilities(){return g}async killSession(a){return(0,f.fY)(a)}}let j=null;var k=c(93997),l=c(79646),m=c(28354),n=c(31442),o=c(29021),p=c(21820),q=c(33873),r=c(16983);let s="cm-live-restore.sh",t="cm-live-delegate.sh",u="cm-auto-popup.sh",v=`#!/bin/sh
8
+ # CommandMate live-attach restore (Issue #2317) — generated file, edits are overwritten.
9
+ #
10
+ # sh ~/.commandmate/bin/${s} <session> [control_mode] [width] [height]
11
+ #
12
+ # Pins the session's window back to CommandMate's canvas once no human client is
13
+ # attached to it any more. Safe to run when nothing is delegated: it then simply
14
+ # re-applies the geometry the session already has.
15
+ set -u
16
+
17
+ SESSION="\${1:-}"
18
+ CONTROL_MODE="\${2:-0}"
19
+ WIDTH="\${3:-${r.Jn}}"
20
+ HEIGHT="\${4:-${r.sO}}"
21
+
22
+ case "$SESSION" in
23
+ ${n.HL}*) ;;
24
+ *) exit 0 ;;
25
+ esac
26
+
27
+ # A control-mode client detaching is CommandMate's own transport reconnecting,
28
+ # not the human leaving. Doing the restore here would fight the human's attach.
29
+ if [ "$CONTROL_MODE" = "1" ]; then
30
+ exit 0
31
+ fi
32
+
33
+ # Anyone left who is NOT a control client? Then the geometry is still theirs.
34
+ HUMANS=$(tmux list-clients -t "=$SESSION:" -F '#{client_control_mode}' 2>/dev/null \\
35
+ | grep -c -v '^1$') || HUMANS=0
36
+ if [ "\${HUMANS:-0}" -gt 0 ]; then
37
+ exit 0
38
+ fi
39
+
40
+ tmux set-window-option -t "=$SESSION:" window-size manual 2>/dev/null || exit 0
41
+ tmux resize-window -t "=$SESSION:" -x "$WIDTH" -y "$HEIGHT" 2>/dev/null || true
42
+ tmux set-option -u -t "=$SESSION:" @cm_delegated 2>/dev/null || true
43
+ `,w="[0-9a-f]".repeat(8),x=`#!/bin/sh
44
+ # CommandMate live-attach delegate (Issue #2317) — generated file, edits are overwritten.
45
+ #
46
+ # sh ~/.commandmate/bin/${t} <session> <control_mode> [client]
47
+ #
48
+ # Hands the session's window from CommandMate's pinned canvas to the terminal
49
+ # that just attached, so an alternate-screen agent re-lays-out and its transcript
50
+ # becomes readable. Installed as a session-scoped \`client-attached[0]\` hook only
51
+ # when CM_LIVE_ATTACH_HOOK=on; \`commandmate attach --live\` does the same two
52
+ # writes itself and needs no hook.
53
+ #
54
+ # The window is put back by whoever notices the human is gone first: the CLI on
55
+ # return from attach-session, or the server's status poll. This script never
56
+ # restores — the attach edge is the only edge tmux 3.5a lets a session-scoped
57
+ # hook see.
58
+ set -u
59
+
60
+ SESSION="\${1:-}"
61
+ CONTROL_MODE="\${2:-0}"
62
+
63
+ case "$SESSION" in
64
+ ${n.HL}claude-*|${n.HL}${w}-claude-*) ;;
65
+ *) exit 0 ;;
66
+ esac
67
+
68
+ # A control-mode client is CommandMate's own transport. Handing it the geometry
69
+ # would resize the canvas to whatever that connection negotiated, which is the
70
+ # #1163 regression this whole feature is built to avoid.
71
+ if [ "$CONTROL_MODE" = "1" ]; then
72
+ exit 0
73
+ fi
74
+
75
+ # Raised BEFORE the size change, so a status poll landing between the two sees
76
+ # "delegated, still pinned" rather than "not delegated, 44 rows".
77
+ tmux set-option -t "=$SESSION:" @cm_delegated 1 2>/dev/null || exit 0
78
+ tmux set-window-option -t "=$SESSION:" window-size latest 2>/dev/null || true
79
+ `,y=`#!/bin/sh
80
+ # CommandMate auto read popup (Issue #2317) — generated file, edits are overwritten.
81
+ #
82
+ # sh ~/.commandmate/bin/${u} <session> <control_mode> <client>
83
+ #
84
+ # Opens the following transcript popup for a human client attaching to a
85
+ # CommandMate session. Never opens for a control-mode client.
86
+ set -u
87
+
88
+ SESSION="\${1:-}"
89
+ CONTROL_MODE="\${2:-0}"
90
+ CLIENT="\${3:-}"
91
+
92
+ case "$SESSION" in
93
+ ${n.HL}*) ;;
94
+ *) exit 0 ;;
95
+ esac
96
+
97
+ if [ "$CONTROL_MODE" = "1" ]; then
98
+ exit 0
99
+ fi
100
+
101
+ PAGER_SCRIPT="$HOME/.commandmate/bin/cm-read-pane.sh"
102
+ [ -x "$PAGER_SCRIPT" ] || exit 0
103
+
104
+ if [ -n "$CLIENT" ]; then
105
+ tmux display-popup -c "$CLIENT" -w 90% -h 85% -E "sh \\"$PAGER_SCRIPT\\" --follow \\"$SESSION\\"" 2>/dev/null || true
106
+ else
107
+ tmux display-popup -w 90% -h 85% -E "sh \\"$PAGER_SCRIPT\\" --follow \\"$SESSION\\"" 2>/dev/null || true
108
+ fi
109
+ `;function z(a,b){let c,d=(0,q.join)((0,q.join)((0,p.homedir)(),".commandmate","bin"),a);if((0,o.mkdirSync)((0,q.dirname)(d),{recursive:!0}),(0,o.existsSync)(d))try{c=(0,o.readFileSync)(d,"utf-8")}catch{c=void 0}return c!==b&&(0,o.writeFileSync)(d,b,{mode:493}),(0,o.chmodSync)(d,493),d}var A=c(83598);let B=(0,m.promisify)(l.execFile),C=(0,e.h)("tmux-session-hooks"),D=globalThis.__cmEnsuredSessionHooks??(globalThis.__cmEnsuredSessionHooks=new Set);async function E(a){if((0,n.N_)(a)&&!D.has(a)){D.add(a);try{if((0,n.gM)()&&(0,n.n9)(a)){z(s,v);let b=(0,n.Rr)(a,z(t,x));b&&await B("tmux",b,{timeout:5e3})}else await B("tmux",(0,n.g4)(a),{timeout:5e3});if((0,n.jx)()){let b=(0,n.Ls)(a,z(u,y));b&&await B("tmux",b,{timeout:5e3})}else await B("tmux",(0,n.sL)(a),{timeout:5e3})}catch(b){C.debug("session-hooks:reconcile-failed",{sessionName:a,error:b instanceof Error?b.message:String(b)})}}}async function F(a){try{if(!await (0,A.Us)(a)||await (0,A.Fh)(a))return!1;for(let b of(0,n.RS)(a))await B("tmux",b,{timeout:5e3});return C.info("session-hooks:geometry-restored",{sessionName:a}),!0}catch(b){return C.debug("session-hooks:geometry-restore-failed",{sessionName:a,error:b instanceof Error?b.message:String(b)}),!1}}let G=(0,m.promisify)(l.execFile),H=(0,e.h)("tmux-session-status"),I=globalThis.__cmPublishedTmuxStatus??(globalThis.__cmPublishedTmuxStatus=new Map),J=globalThis.__cmClearedTmuxStatus??(globalThis.__cmClearedTmuxStatus=new Set);async function K(a){let{sessionName:b,worktreeId:c,cliToolId:d,instanceId:e,status:f}=a;if(!(0,n.om)())return J.has(b)||(J.add(b),await M(b)),"disabled";let g=I.get(b);if(g&&g.status===f&&g.worktreeId===c&&g.cliToolId===d&&g.instanceId===e)return"unchanged";let h=(a.now??new Date).toISOString(),i=[[n.eC,f],[n.jp,c],[n.wv,d],[n.L0,e],[n.tx,h]];try{for(let[a,c]of i)await G("tmux",(0,n.ND)(b,a,c),{timeout:5e3});return I.set(b,{status:f,worktreeId:c,cliToolId:d,instanceId:e}),await L(b),"written"}catch(a){return I.delete(b),H.debug("session-status:write-failed",{sessionName:b,error:a instanceof Error?a.message:String(a)}),"error"}}async function L(a){try{let{stdout:b}=await G("tmux",(0,n.Ys)(a,"status-right"),{timeout:5e3}),c=b.trim();if(""!==c&&!c.includes(n.lY))return H.debug("session-status:status-right-user-owned",{sessionName:a,existing:c}),!1;return""===c&&await G("tmux",(0,n.KB)(a,n.lY),{timeout:5e3}),!0}catch(b){return H.debug("session-status:status-right-failed",{sessionName:a,error:b instanceof Error?b.message:String(b)}),!1}}async function M(a){for(let b of(I.delete(a),n.bq))try{await G("tmux",(0,n.cD)(a,b),{timeout:5e3})}catch{}try{let{stdout:b}=await G("tmux",(0,n.Ys)(a,"status-right"),{timeout:5e3});b.includes(n.lY)&&await G("tmux",(0,n.$D)(a),{timeout:5e3})}catch{}}let N=(0,e.h)("cli-session");function O(){return j||(j=new i),j}function P(a,b,c){let e=d.CLIToolManager.getInstance().getTool(b),f=e.getSessionName(a,c);return{cliTool:e,sessionName:f}}async function Q(a,b,c){let{sessionName:d}=P(a,b,c);return O().sessionExists(d)}async function R(a,b,c=1e3,d){let e=N.withContext({worktreeId:a,cliToolId:b});e.debug("captureSessionOutput:start",{requestedLines:c});let{cliTool:f,sessionName:g}=P(a,b,d),h=O();try{let a=await (0,k.aq)(g,c,async()=>{if(!await h.sessionExists(g))throw Error(`${f.name} session ${g} does not exist`);return await h.captureSnapshot(g,{startLine:-k.xE})});return e.debug("captureSessionOutput:success",{actualLines:a.split("\n").length,lastFewLines:a.split("\n").slice(-3).join(" | ")}),a}catch(b){let a=b instanceof Error?b.message:String(b);if(a.includes("does not exist"))throw e.debug("captureSessionOutput:sessionNotFound",{sessionName:g}),b;throw e.error("captureSessionOutput:failed",{error:a}),Error(`Failed to capture ${f.name} output: ${a}`)}}async function S(a,b,c=5e3,d){let e=N.withContext({worktreeId:a,cliToolId:b});e.debug("captureSessionOutputFresh:start",{requestedLines:c});let{cliTool:f,sessionName:g}=P(a,b,d),h=O();try{let a=await h.captureSnapshot(g,{startLine:-c});return a.length>0?(0,k.vF)(g,a,c):(0,k.gm)(g),(0,k.wd)(a,c)}catch(b){(0,k.gm)(g);let a=b instanceof Error?b.message:String(b);throw e.error("captureSessionOutputFresh:failed",{error:a}),Error(`Failed to capture ${f.name} output: ${a}`)}}async function T(a){await E(a.sessionName),(0,n.n9)(a.sessionName)&&await F(a.sessionName),await K(a)}function U(a){I.delete(a),J.delete(a),D.delete(a),(0,A.G9)(a)}},79696:(a,b,c)=>{c.d(b,{K$:()=>L,readClaudeTurnProgress:()=>O,Oi:()=>N});var d=c(79748),e=c(21820),f=c(33873),g=c(24455),h=c(18201),i=c(12462),j=c(72626),k=c(86594),l=c(57510),m=c(27128);let n=[".claude","projects"],o="\n\n_(truncated)_",p=["<local-command-caveat>","<local-command-stdout>","<command-name>"],q="<command-message>",r=/<command-name>([\s\S]*?)<\/command-name>/,s=/<command-args>([\s\S]*?)<\/command-args>/;function t(a){let b=a.trim();if(!b.startsWith(q))return null;let c=r.exec(b)?.[1].trim()??"";if(0===c.length)return null;let d=s.exec(b)?.[1].trim()??"";return 0===d.length?c:`${c} ${d}`}let u=/<pasted_content id="([^"<>\s]+)">\n?([\s\S]*?)\n?<\/pasted_content id="\1">/g,v=["command","file_path","notebook_path","path","pattern","query","url","description"];function w(a){if(!(0,l.Qd)(a))return null;let b=(0,l.O2)(a,"type");if(!b)return null;let c=(0,l.Qd)(a.message)?a.message:null,d=c?.content,e=[],f="";if("string"==typeof d)f=d;else if(Array.isArray(d))for(let a of d){let b=function(a){if(!(0,l.Qd)(a))return null;let b=(0,l.O2)(a,"type");if(!b)return null;if("tool_use"===b)return{type:b,text:null,toolName:(0,l.O2)(a,"name"),toolDetail:function(a){if(!(0,l.Qd)(a))return null;for(let c of v){let d=(0,l.O2)(a,c);if(d){var b;return(b=d.replace(/\s+/g," ").trim()).length<=200?b:`${b.slice(0,199)}…`}}return null}(a.input)};let c="text"===b?(0,l.O2)(a,"text")??"":"thinking"===b?(0,l.O2)(a,"thinking")??"":null;return{type:b,text:c,toolName:null,toolDetail:null}}(a);b&&(e.push(b),b.text&&(f+=b.text))}let g=(0,l.O2)(a,"timestamp"),h=g?Date.parse(g):NaN,i=(0,l.Qd)(a.origin)?a.origin:null;return{type:b,uuid:(0,l.O2)(a,"uuid"),sessionId:(0,l.O2)(a,"sessionId")??(0,l.O2)(a,"session_id"),cwd:(0,l.O2)(a,"cwd"),isSidechain:!0===a.isSidechain,isMeta:!0===a.isMeta,originKind:i?(0,l.O2)(i,"kind"):null,promptSource:(0,l.O2)(a,"promptSource"),isCompactSummary:!0===a.isCompactSummary,isInterruption:null!==(0,l.O2)(a,"interruptedMessageId"),timestampMs:Number.isFinite(h)?h:null,stopReason:c?(0,l.O2)(c,"stop_reason"):null,blocks:e,text:f}}function x(a){let b=[],c=0;for(let d of a.split("\n")){let a;if(0===d.trim().length)continue;try{a=JSON.parse(d)}catch{c+=1;continue}let e=w(a);e?b.push(e):c+=1}return{records:b,malformedLines:c}}function y(a){if("user"!==a.type||a.isMeta||!a.uuid||a.blocks.some(a=>"tool_result"===a.type))return!1;let b=a.text.trim();return 0!==b.length&&(b.startsWith(q)?null!==t(b):!p.some(a=>b.startsWith(a)))}let z=["typed","queued"];function A(a){return"assistant"===a.type&&"end_turn"===a.stopReason&&a.blocks.some(a=>"text"===a.type&&(a.text??"").trim().length>0)}function B(a){return!!a.closed||!!a.superseded||!a.stopReasonObserved}function C(a,b){let c=[],d=null,e=0,f=0;for(let g of a){if(g.isSidechain){f+=1;continue}if(y(g)){d=function(a,b){return{sessionId:a.sessionId??b,promptUuid:a.uuid,startedAt:a.timestampMs??0,promptText:t(a.text)??function(a){if(!a.includes("<pasted_content id="))return a;let b=a.replace(u,(a,b,c)=>c);return 0===b.trim().length?a:b}(a.text),promptIsOperatorInput:!!y(a)&&!a.isCompactSummary&&!a.isInterruption&&(null!==a.originKind?"human"===a.originKind:null!==a.promptSource&&z.includes(a.promptSource)),blocks:[],assistantRecords:0,closed:!1,superseded:!1,stopReasonObserved:!1,overflowed:!1}}(g,b),c.push(d);continue}if("assistant"===g.type){if(!d){e+=1;continue}for(let a of(d.assistantRecords+=1,d.closed=A(g),null!==g.stopReason&&(d.stopReasonObserved=!0),g.blocks)){if(d.blocks.length>=2048){d.overflowed=!0;break}d.blocks.push(a)}}}for(let a=0;a<c.length-1;a+=1)c[a].superseded=!0;return{turns:c,orphanedAssistantRecords:e,sidechainRecords:f}}let D=new Set(["tool_result"]);function E(a){let b=[],c=new Set,d=0,e=0;for(let f of a.blocks){if("text"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push({kind:"prose",text:a}),d+=1;continue}if("thinking"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push({kind:"aside",text:function(a){let b=a.trim().split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n");return`> **Thinking**
8
110
  >
9
- ${b}`}(a)});continue}if("tool_use"===f.type){b.push({kind:"tool",text:function(a){let b=a.toolName??"tool";return a.toolDetail?`- \`${b}\` — ${a.toolDetail}`:`- \`${b}\``}(f)}),e+=1;continue}C.has(f.type)||c.add(f.type)}let f=(0,m.t3)(b).body;return f.length>2e5&&(f=f.slice(0,2e5-o.length)+o),{sessionId:a.sessionId,promptUuid:a.promptUuid,body:f,textBlocks:d,toolBlocks:e,unknownBlockTypes:[...c]}}let E=(0,j.h)("lib/hooks/sources/claude/history"),F="_(The beginning of this reply is not shown: the turn runs further back than the 64 MiB of transcript that is read.)_",G=".jsonl",H=globalThis.__claudeTranscriptSessions??=new Map;async function I(a){let b=(0,g.v7)(a.worktreeId,a.cliToolId,a.instanceId);try{let{getLastAgentEvent:d}=await Promise.resolve().then(c.bind(c,48083)),e=d(a.worktreeId,a.cliToolId,a.instanceId)?.sessionId;if("string"==typeof e&&e.length>0)return H.set(b,e),e}catch(b){E.debug("claude-transcript-session-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return H.get(b)??null}function J(a){return(0,f.join)(a,...n)}async function K(a,b,c){let d=a.instanceId??a.cliToolId;try{let f=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return!1;let g=await I(a),h=await Q(f,b,g);if(!h)return E.debug("claude-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,sessionId:g,reason:g?"no-file":"no-session-pointer"}),!1;let j=await U(a,h,g??"");if(null===j)return!1;let{parsed:k,built:l}=j;if(0===l.turns.length){let b=l.orphanedAssistantRecords;if(E.warn("claude-transcript-no-turn",{worktreeId:a.worktreeId,instanceId:d,path:h,records:k.records.length,malformedLines:k.malformedLines,orphanedAssistantRecords:b,...b>0?{readBytes:j.size-j.startByte,size:j.size}:{}}),b>0&&j.reachedLimit)return await X(a,k.records,g??"",h,c);return!1}(k.malformedLines>0||l.orphanedAssistantRecords>0)&&E.info("claude-transcript-partial-read",{worktreeId:a.worktreeId,instanceId:d,path:h,malformedLines:k.malformedLines,orphanedAssistantRecords:l.orphanedAssistantRecords,sidechainRecords:l.sidechainRecords});let m=await L(a,l.turns);if(await $(a,l.turns.slice(0,l.turns.length-m.turns.length).slice(-Y),h),0===m.turns.length)return E.debug("claude-transcript-turns-already-saved",{worktreeId:a.worktreeId,instanceId:d,turnsInWindow:l.turns.length}),await (0,i.fT)(a),!0;m.turns.length>1&&E.info("claude-transcript-backfilling-turns",{worktreeId:a.worktreeId,instanceId:d,path:h,pendingTurns:m.turns.length,turnsInWindow:l.turns.length,anchored:m.anchored});let n=[];for(let b=0;b<m.turns.length;b+=1){let c=0===b?m.previousStartedAt:m.turns[b-1].startedAt;n.push(await O(a,m.turns[b],c))}let o=function(a){let b=new Map,c=null;for(let d of a)if(!d.isSidechain){if(x(d)){c=d.uuid;continue}"assistant"===d.type&&null!==c&&null!==d.timestampMs&&d.timestampMs>(b.get(c)??0)&&b.set(c,d.timestampMs)}return b}(k.records),p=!1;for(let b=0;b<m.turns.length;b+=1){let d=m.turns[b];p=await _(a,d,D(d),P(d,n[b],o.get(d.promptUuid)??0,function(a,b,c){let d=a[c+1];return d?b[c+1]?.timestampMs??d.startedAt:null}(m.turns,n,b)),h,c)}return p&&await (0,i.fT)(a),p}catch(b){return E.error("claude-transcript-capture-failed",{worktreeId:a.worktreeId,instanceId:d,error:b instanceof Error?b.message:String(b)}),!1}}async function L(a,b){let[{getDbInstance:d},{findMessageByRequestId:e}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),f=d();for(let c=b.length-1;c>=0;c-=1){let d=(0,k.qe)(b[c].promptUuid);if(e(f,a.worktreeId,d))return{turns:b.slice(c+1),previousStartedAt:b[c].startedAt,anchored:!0}}return{turns:b.slice(-1),previousStartedAt:b.length>1?b[b.length-2].startedAt:0,anchored:!1}}async function M(a,b){try{let c=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return null;return await Q(c,b,await I(a))}catch{return null}}async function N(a,b){let c=a.instanceId??a.cliToolId;try{var d;let f=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return null;let g=await I(a),h=await Q(f,b,g);if(!h)return null;let i=await S(h);if(null===i)return null;let j=w(i.text),l=B(j.records,g??""),m=l.turns.at(-1);if(m){let a=D(m);if(0===a.body.length)return null;return{turnKey:(0,k.qe)(a.promptUuid),body:a.body,partial:!1}}if(0===l.orphanedAssistantRecords)return null;let n=function(a,b){let c=[],d=0,e=!1;for(let b of a){if(x(b))break;if(!b.isSidechain&&"assistant"===b.type)for(let a of(d+=1,b.blocks)){if(c.length>=2048){e=!0;break}c.push(a)}}return{sessionId:b,promptUuid:`partial:${b}`,startedAt:0,promptText:"",promptIsOperatorInput:!1,blocks:c,assistantRecords:d,closed:!1,superseded:!1,stopReasonObserved:!1,overflowed:e}}(j.records,g??""),o=D(n);if(0===o.body.length)return null;return E.info("claude-transcript-progress-headless",{worktreeId:a.worktreeId,instanceId:c,path:h,orphanedAssistantRecords:l.orphanedAssistantRecords,malformedLines:j.malformedLines}),{turnKey:(d=g??"",(0,k.qe)(`${k.ST}${d}`)),body:o.body,partial:!0}}catch(b){return E.debug("claude-transcript-progress-failed",{worktreeId:a.worktreeId,instanceId:c,error:b instanceof Error?b.message:String(b)}),null}}async function O(a,b,c=0){let d=a.instanceId??a.cliToolId;if(!b.promptIsOperatorInput)return E.debug("claude-transcript-user-turn-skipped",{worktreeId:a.worktreeId,instanceId:d,promptUuid:b.promptUuid,reason:"not-operator-input"}),{outcome:"skipped",messageId:null,timestampMs:null};let e=await (0,h.Ce)(a,(0,k.H_)(b.promptUuid),b.promptText,b.startedAt,c>0?{adoptionFromMs:c}:{});return"failed"===e.outcome&&E.warn("claude-transcript-user-turn-failed",{worktreeId:a.worktreeId,instanceId:d,sessionId:b.sessionId,promptUuid:b.promptUuid}),e}function P(a,b,c=0,d=null){return Math.max(null===b.timestampMs?a.startedAt:Math.max(a.startedAt,b.timestampMs+1),Math.min(c,null===d?1/0:d-1))}async function Q(a,b,c){if(c){var d,e,g;let h=(d=a,e=b.worktreePath,g=c,(0,f.join)(J(d),e.replace(/[^a-zA-Z0-9]/g,"-"),`${g}${G}`));if(await R(h))return h}let h=b.transcriptPathHint;if("string"==typeof h&&h.length>0){let b=function(a,b){if(!b.endsWith(G)||b.includes("\0"))return null;let c=(0,f.resolve)(J(a)),d=(0,f.resolve)(b);return d===c||d.startsWith(c+f.sep)?d:null}(a,h);if(b&&await R(b))return b}return null}async function R(a){try{return(await (0,d.stat)(a)).isFile()}catch{return!1}}async function S(a){let b;try{b=await (0,d.open)(a,"r");let{size:c}=await b.stat(),e=Math.max(0,c-4194304),f=c-e;if(f<=0)return{text:"",size:c,startByte:0};let g=Buffer.alloc(f),{bytesRead:h}=await b.read(g,0,f,e),i=g.subarray(0,h);if(0===e)return{text:i.toString("utf8"),size:c,startByte:0};let j=i.indexOf(10);if(-1===j)return{text:"",size:c,startByte:c};return{text:i.subarray(j+1).toString("utf8"),size:c,startByte:e+j+1}}catch(b){return E.warn("claude-transcript-read-failed",{path:a,error:b instanceof Error?b.message:String(b)}),null}finally{await b?.close().catch(()=>{})}}async function T(a,b,c){let d=c-b,e=Buffer.alloc(d),{bytesRead:f}=await a.read(e,0,d,b);if(f!==d)return null;if(0===b)return{text:e.toString("utf8"),startByte:0};let g=e.indexOf(10);return -1===g?{text:"",startByte:c}:{text:e.subarray(g+1).toString("utf8"),startByte:b+g+1}}async function U(a,b,c){let d=await S(b);if(null===d)return null;let e=w(d.text),f=B(e.records,c),g={parsed:e,built:f,size:d.size,startByte:d.startByte,reachedLimit:!1};return f.turns.length>0||0===f.orphanedAssistantRecords||0===d.startByte?g:await V(a,b,c,g)??g}async function V(a,b,c,e){let f,{size:g}=e;try{f=await (0,d.open)(b,"r");let h=e.parsed.records,i=e.parsed.malformedLines,j=e.built,k=e.startByte,l=4194304,m=null;for(;0===j.turns.length&&k>0&&l<0x4000000;){l*=2;let a=await T(f,Math.max(0,g-l),k);if(null===a)return null;let b=w(a.text);h=[...b.records,...h],i+=b.malformedLines,k=a.startByte;let d=(j=B(h,c)).turns.at(-1);d&&(m=function(a,b,c){let{text:d}=a;for(let e=d.indexOf(b);-1!==e;e=d.indexOf(b,e+b.length)){let f=d.lastIndexOf("\n",e)+1,g=d.indexOf("\n",e),h=null;try{h=v(JSON.parse(d.slice(f,-1===g?d.length:g)))}catch{}if(h?.uuid===b)return c-a.startByte-Buffer.byteLength(d.slice(0,f),"utf8")}return null}(a,d.promptUuid,g))}return E.info("claude-transcript-window-extended",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,path:b,fromBytes:4194304,toBytes:l,size:g,promptOffsetFromEnd:m,records:h.length}),{parsed:{records:h,malformedLines:i},built:j,size:g,startByte:k,reachedLimit:0===j.turns.length&&k>0}}catch(a){return E.warn("claude-transcript-read-failed",{path:b,error:a instanceof Error?a.message:String(a)}),null}finally{await f?.close().catch(()=>{})}}let W={outcome:"skipped",messageId:null,timestampMs:null};async function X(a,b,c,d,e){var f;let g,h=a.instanceId??a.cliToolId,j=function(a,b){let c=[],d=0,e=!1,f=!1,g=!1,h=0,i=0,j=null;for(let b of a)if(!b.isSidechain){if(x(b)){g=!0;break}if("assistant"===b.type){for(let a of(d+=1,e=z(b),null!==b.stopReason&&(f=!0),null!==b.timestampMs&&(0===h&&(h=b.timestampMs),i=Math.max(i,b.timestampMs)),b.blocks))c.push(a);j=b}}if(null===j||!j.uuid)return null;let l=j.sessionId??b,m=c.length>2048;return{turn:{sessionId:l,promptUuid:(0,k.Wr)(l,j.uuid),startedAt:h,promptText:"",promptIsOperatorInput:!1,blocks:m?c.slice(-2048):c,assistantRecords:d,closed:e,superseded:g,stopReasonObserved:f,overflowed:m},lastRecordAt:i}}(b,c);if(null===j)return E.debug("claude-transcript-headless-unkeyed",{worktreeId:a.worktreeId,instanceId:h,path:d}),!1;let{turn:l}=j,m=D(l);E.info("claude-transcript-headless-turn",{worktreeId:a.worktreeId,instanceId:h,sessionId:l.sessionId,requestId:(0,k.qe)(l.promptUuid),path:d,assistantRecords:l.assistantRecords,overflowed:l.overflowed});let n=await _(a,l,0===m.body.length?m:(f=m,(g=`${F}
111
+ ${b}`}(a)});continue}if("tool_use"===f.type){b.push({kind:"tool",text:function(a){let b=a.toolName??"tool";return a.toolDetail?`- \`${b}\` — ${a.toolDetail}`:`- \`${b}\``}(f)}),e+=1;continue}D.has(f.type)||c.add(f.type)}let f=(0,m.t3)(b).body;return f.length>2e5&&(f=f.slice(0,2e5-o.length)+o),{sessionId:a.sessionId,promptUuid:a.promptUuid,body:f,textBlocks:d,toolBlocks:e,unknownBlockTypes:[...c]}}let F=(0,j.h)("lib/hooks/sources/claude/history"),G="_(The beginning of this reply is not shown: the turn runs further back than the 64 MiB of transcript that is read.)_",H=".jsonl",I=globalThis.__claudeTranscriptSessions??=new Map;async function J(a){let b=(0,g.v7)(a.worktreeId,a.cliToolId,a.instanceId);try{let{getLastAgentEvent:d}=await Promise.resolve().then(c.bind(c,48083)),e=d(a.worktreeId,a.cliToolId,a.instanceId)?.sessionId;if("string"==typeof e&&e.length>0)return I.set(b,e),e}catch(b){F.debug("claude-transcript-session-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return I.get(b)??null}function K(a){return(0,f.join)(a,...n)}async function L(a,b,c){let d=a.instanceId??a.cliToolId;try{let f=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return!1;let g=await J(a),h=await R(f,b,g);if(!h)return F.debug("claude-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,sessionId:g,reason:g?"no-file":"no-session-pointer"}),!1;let j=await V(a,h,g??"");if(null===j)return!1;let{parsed:k,built:l}=j;if(0===l.turns.length){let b=l.orphanedAssistantRecords;if(F.warn("claude-transcript-no-turn",{worktreeId:a.worktreeId,instanceId:d,path:h,records:k.records.length,malformedLines:k.malformedLines,orphanedAssistantRecords:b,...b>0?{readBytes:j.size-j.startByte,size:j.size}:{}}),b>0&&j.reachedLimit)return await Y(a,k.records,g??"",h,c);return!1}(k.malformedLines>0||l.orphanedAssistantRecords>0)&&F.info("claude-transcript-partial-read",{worktreeId:a.worktreeId,instanceId:d,path:h,malformedLines:k.malformedLines,orphanedAssistantRecords:l.orphanedAssistantRecords,sidechainRecords:l.sidechainRecords});let m=await M(a,l.turns);if(await _(a,l.turns.slice(0,l.turns.length-m.turns.length).slice(-Z),h),0===m.turns.length)return F.debug("claude-transcript-turns-already-saved",{worktreeId:a.worktreeId,instanceId:d,turnsInWindow:l.turns.length}),await (0,i.fT)(a),!0;m.turns.length>1&&F.info("claude-transcript-backfilling-turns",{worktreeId:a.worktreeId,instanceId:d,path:h,pendingTurns:m.turns.length,turnsInWindow:l.turns.length,anchored:m.anchored});let n=[];for(let b=0;b<m.turns.length;b+=1){let c=0===b?m.previousStartedAt:m.turns[b-1].startedAt;n.push(await P(a,m.turns[b],c))}let o=function(a){let b=new Map,c=null;for(let d of a)if(!d.isSidechain){if(y(d)){c=d.uuid;continue}"assistant"===d.type&&null!==c&&null!==d.timestampMs&&d.timestampMs>(b.get(c)??0)&&b.set(c,d.timestampMs)}return b}(k.records),p=!1;for(let b=0;b<m.turns.length;b+=1){let d=m.turns[b];p=await aa(a,d,E(d),Q(d,n[b],o.get(d.promptUuid)??0,function(a,b,c){let d=a[c+1];return d?b[c+1]?.timestampMs??d.startedAt:null}(m.turns,n,b)),h,c)}return p&&await (0,i.fT)(a),p}catch(b){return F.error("claude-transcript-capture-failed",{worktreeId:a.worktreeId,instanceId:d,error:b instanceof Error?b.message:String(b)}),!1}}async function M(a,b){let[{getDbInstance:d},{findMessageByRequestId:e}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),f=d();for(let c=b.length-1;c>=0;c-=1){let d=(0,k.qe)(b[c].promptUuid);if(e(f,a.worktreeId,d))return{turns:b.slice(c+1),previousStartedAt:b[c].startedAt,anchored:!0}}return{turns:b.slice(-1),previousStartedAt:b.length>1?b[b.length-2].startedAt:0,anchored:!1}}async function N(a,b){try{let c=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return null;return await R(c,b,await J(a))}catch{return null}}async function O(a,b){let c=a.instanceId??a.cliToolId;try{var d;let f=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return null;let g=await J(a),h=await R(f,b,g);if(!h)return null;let i=await T(h);if(null===i)return null;let j=x(i.text),l=C(j.records,g??""),m=l.turns.at(-1);if(m){let a=E(m);if(0===a.body.length)return null;return{turnKey:(0,k.qe)(a.promptUuid),body:a.body,partial:!1}}if(0===l.orphanedAssistantRecords)return null;let n=function(a,b){let c=[],d=0,e=!1;for(let b of a){if(y(b))break;if(!b.isSidechain&&"assistant"===b.type)for(let a of(d+=1,b.blocks)){if(c.length>=2048){e=!0;break}c.push(a)}}return{sessionId:b,promptUuid:`partial:${b}`,startedAt:0,promptText:"",promptIsOperatorInput:!1,blocks:c,assistantRecords:d,closed:!1,superseded:!1,stopReasonObserved:!1,overflowed:e}}(j.records,g??""),o=E(n);if(0===o.body.length)return null;return F.info("claude-transcript-progress-headless",{worktreeId:a.worktreeId,instanceId:c,path:h,orphanedAssistantRecords:l.orphanedAssistantRecords,malformedLines:j.malformedLines}),{turnKey:(d=g??"",(0,k.qe)(`${k.ST}${d}`)),body:o.body,partial:!0}}catch(b){return F.debug("claude-transcript-progress-failed",{worktreeId:a.worktreeId,instanceId:c,error:b instanceof Error?b.message:String(b)}),null}}async function P(a,b,c=0){let d=a.instanceId??a.cliToolId;if(!b.promptIsOperatorInput)return F.debug("claude-transcript-user-turn-skipped",{worktreeId:a.worktreeId,instanceId:d,promptUuid:b.promptUuid,reason:"not-operator-input"}),{outcome:"skipped",messageId:null,timestampMs:null};let e=await (0,h.Ce)(a,(0,k.H_)(b.promptUuid),b.promptText,b.startedAt,c>0?{adoptionFromMs:c}:{});return"failed"===e.outcome&&F.warn("claude-transcript-user-turn-failed",{worktreeId:a.worktreeId,instanceId:d,sessionId:b.sessionId,promptUuid:b.promptUuid}),e}function Q(a,b,c=0,d=null){return Math.max(null===b.timestampMs?a.startedAt:Math.max(a.startedAt,b.timestampMs+1),Math.min(c,null===d?1/0:d-1))}async function R(a,b,c){if(c){var d,e,g;let h=(d=a,e=b.worktreePath,g=c,(0,f.join)(K(d),e.replace(/[^a-zA-Z0-9]/g,"-"),`${g}${H}`));if(await S(h))return h}let h=b.transcriptPathHint;if("string"==typeof h&&h.length>0){let b=function(a,b){if(!b.endsWith(H)||b.includes("\0"))return null;let c=(0,f.resolve)(K(a)),d=(0,f.resolve)(b);return d===c||d.startsWith(c+f.sep)?d:null}(a,h);if(b&&await S(b))return b}return null}async function S(a){try{return(await (0,d.stat)(a)).isFile()}catch{return!1}}async function T(a){let b;try{b=await (0,d.open)(a,"r");let{size:c}=await b.stat(),e=Math.max(0,c-4194304),f=c-e;if(f<=0)return{text:"",size:c,startByte:0};let g=Buffer.alloc(f),{bytesRead:h}=await b.read(g,0,f,e),i=g.subarray(0,h);if(0===e)return{text:i.toString("utf8"),size:c,startByte:0};let j=i.indexOf(10);if(-1===j)return{text:"",size:c,startByte:c};return{text:i.subarray(j+1).toString("utf8"),size:c,startByte:e+j+1}}catch(b){return F.warn("claude-transcript-read-failed",{path:a,error:b instanceof Error?b.message:String(b)}),null}finally{await b?.close().catch(()=>{})}}async function U(a,b,c){let d=c-b,e=Buffer.alloc(d),{bytesRead:f}=await a.read(e,0,d,b);if(f!==d)return null;if(0===b)return{text:e.toString("utf8"),startByte:0};let g=e.indexOf(10);return -1===g?{text:"",startByte:c}:{text:e.subarray(g+1).toString("utf8"),startByte:b+g+1}}async function V(a,b,c){let d=await T(b);if(null===d)return null;let e=x(d.text),f=C(e.records,c),g={parsed:e,built:f,size:d.size,startByte:d.startByte,reachedLimit:!1};return f.turns.length>0||0===f.orphanedAssistantRecords||0===d.startByte?g:await W(a,b,c,g)??g}async function W(a,b,c,e){let f,{size:g}=e;try{f=await (0,d.open)(b,"r");let h=e.parsed.records,i=e.parsed.malformedLines,j=e.built,k=e.startByte,l=4194304,m=null;for(;0===j.turns.length&&k>0&&l<0x4000000;){l*=2;let a=await U(f,Math.max(0,g-l),k);if(null===a)return null;let b=x(a.text);h=[...b.records,...h],i+=b.malformedLines,k=a.startByte;let d=(j=C(h,c)).turns.at(-1);d&&(m=function(a,b,c){let{text:d}=a;for(let e=d.indexOf(b);-1!==e;e=d.indexOf(b,e+b.length)){let f=d.lastIndexOf("\n",e)+1,g=d.indexOf("\n",e),h=null;try{h=w(JSON.parse(d.slice(f,-1===g?d.length:g)))}catch{}if(h?.uuid===b)return c-a.startByte-Buffer.byteLength(d.slice(0,f),"utf8")}return null}(a,d.promptUuid,g))}return F.info("claude-transcript-window-extended",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,path:b,fromBytes:4194304,toBytes:l,size:g,promptOffsetFromEnd:m,records:h.length}),{parsed:{records:h,malformedLines:i},built:j,size:g,startByte:k,reachedLimit:0===j.turns.length&&k>0}}catch(a){return F.warn("claude-transcript-read-failed",{path:b,error:a instanceof Error?a.message:String(a)}),null}finally{await f?.close().catch(()=>{})}}let X={outcome:"skipped",messageId:null,timestampMs:null};async function Y(a,b,c,d,e){var f;let g,h=a.instanceId??a.cliToolId,j=function(a,b){let c=[],d=0,e=!1,f=!1,g=!1,h=0,i=0,j=null;for(let b of a)if(!b.isSidechain){if(y(b)){g=!0;break}if("assistant"===b.type){for(let a of(d+=1,e=A(b),null!==b.stopReason&&(f=!0),null!==b.timestampMs&&(0===h&&(h=b.timestampMs),i=Math.max(i,b.timestampMs)),b.blocks))c.push(a);j=b}}if(null===j||!j.uuid)return null;let l=j.sessionId??b,m=c.length>2048;return{turn:{sessionId:l,promptUuid:(0,k.Wr)(l,j.uuid),startedAt:h,promptText:"",promptIsOperatorInput:!1,blocks:m?c.slice(-2048):c,assistantRecords:d,closed:e,superseded:g,stopReasonObserved:f,overflowed:m},lastRecordAt:i}}(b,c);if(null===j)return F.debug("claude-transcript-headless-unkeyed",{worktreeId:a.worktreeId,instanceId:h,path:d}),!1;let{turn:l}=j,m=E(l);F.info("claude-transcript-headless-turn",{worktreeId:a.worktreeId,instanceId:h,sessionId:l.sessionId,requestId:(0,k.qe)(l.promptUuid),path:d,assistantRecords:l.assistantRecords,overflowed:l.overflowed});let n=await aa(a,l,0===m.body.length?m:(f=m,(g=`${G}
10
112
 
11
- ${f.body}`).length>2e5&&(g=g.slice(0,2e5-o.length)+o),{...f,body:g}),P(l,W,j.lastRecordAt,null),d,e);return n&&await (0,i.fT)(a),n}let Y=3;async function Z(a,b,d,e){let f=a.instanceId??a.cliToolId,g=b.content.length;if(d.body.length<=g)return!1;let[{getDbInstance:h},{updateMessageContent:i},{broadcastMessage:j}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]);return i(h(),b.id,d.body),j("message_updated",{worktreeId:a.worktreeId,message:{...b,content:d.body}}),E.info("claude-transcript-turn-updated",{worktreeId:a.worktreeId,instanceId:f,sessionId:d.sessionId,requestId:b.requestId,path:e,previousLength:g,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}async function $(a,b,d){if(0===b.length)return 0;let[{getDbInstance:e},{findMessageByRequestId:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),g=e(),h=0;for(let c of b){if(!A(c))continue;let b=f(g,a.worktreeId,(0,k.qe)(c.promptUuid));b&&await Z(a,b,D(c),d)&&(h+=1)}return h}async function _(a,b,d,e,f,g){let h=a.instanceId??a.cliToolId;if(g&&(g.outcome=void 0),!A(b))return g&&(g.outcome="not_yet_closed"),E.info("claude-transcript-turn-open",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,promptUuid:d.promptUuid,assistantRecords:b.assistantRecords,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!1;if(0===d.body.length)return E.info("claude-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,promptUuid:d.promptUuid}),!1;d.unknownBlockTypes.length>0&&E.info("claude-transcript-unknown-blocks",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,blockTypes:d.unknownBlockTypes});let i=(0,k.qe)(d.promptUuid),[{getDbInstance:j},{createMessage:l,findMessageByRequestId:m},{broadcastMessage:n}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]),o=j(),p=m(o,a.worktreeId,i);if(p)return E.debug("claude-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:h,requestId:i}),await Z(a,p,d,f),!0;let q=l(o,{worktreeId:a.worktreeId,role:"assistant",content:d.body,messageType:"normal",timestamp:new Date(e>0?e:Date.now()),cliToolId:a.cliToolId,instanceId:h,requestId:i});return n("message",{worktreeId:a.worktreeId,message:q}),E.info("claude-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,requestId:i,path:f,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}},82450:(a,b,c)=>{c.d(b,{IS:()=>h,LH:()=>n,NN:()=>g,Sj:()=>q,Te:()=>p,aW:()=>o});var d=c(20967),e=c(13033),f=c(56263);function g(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.GT)(b),e=c>=0?b.slice(0,c):b,f=-1;for(let a=e.length-1;a>=0;a--)if(/^❯\s+\S/.test(e[a])){f=a;break}let g=f>=0?f+1:0,h=e.slice(g),i=[/CLAUDE_HOOKS_/,/\/bin\/claude/,/^claude\s*$/,/@.*\s+%\s*$/,/^[^⏺]*curl.*POST/,/^[^⏺]*Content-Type/,/^[^⏺]*export\s+CLAUDE_/,/^\s*$/,/^[╭╮╰╯│─\s]+$/,/^[│╭╮╰╯].*[│╭╮╰╯]$/,/Claude Code v[\d.]+/,/^Tips for getting started/,/^Welcome back/,/Run \/init to create/,/^Recent activity/,/^No recent activity/,/▐▛███▜▌|▝▜█████▛▘|▘▘ ▝▝/,/^\s*Opus \d+\.\d+\s*·\s*Claude Max/,/\.com's Organization/,/\?\s*for shortcuts\s*$/,/^─{10,}$/,/^❯\s*$/,d.fW],j=[];for(let a of h)!i.some(b=>b.test(a))&&a.trim()&&j.push(a);return j.join("\n").trim()}function h(a){let b=(0,d.aJ)(a).split("\n"),c=[],e=[/^maenokota@.*%/,/^zsh:/,/^feature-issue-\d+/,/^\s*$/],f=!1,g=[];for(let a of b){if(a.includes("✦")){f=!0;let b=a.indexOf("✦"),c=a.substring(b+1).trim();c&&g.push(c);continue}if(f){if(e.some(b=>b.test(a)))continue;g.push(a)}}if(g.length>0)return g.join("\n").trim();for(let a of b)e.some(b=>b.test(a))||c.push(a);return c.join("\n").trim()}let i=RegExp(`^●\\s+(?:${d.Jr})[\\s:]`),j=/^\$\s+[A-Z][A-Za-z]*(?:\s|$)/,k=/^\d+\s+lines\.\.\.$/,l=/^[◐◑◒◓]/,m=/^(?:git\s+--no-pager|git\s+(?:log|diff|show|status|branch|remote|fetch|pull|push|merge|rebase|checkout|reset|stash|tag|config|clone|init|add|commit|rm|mv|bisect|grep|ls-files|rev-parse|describe|shortlog|blame|reflog|cherry-pick|revert|submodule|worktree)\b|npm\s+|npx\s+|yarn\s+|pnpm\s+|cargo\s+|pip\s+|rustc\s+|cmake\s+|docker\s+|kubectl\s+|aws\s+|gcloud\s+|az\s+|terraform\s+|ansible\s+|curl\s+|wget\s+|ssh\s+|scp\s+|rsync\s+|grep\s+|sed\s+|awk\s+|mkdir\s+|rm\s+|cp\s+|mv\s+|chmod\s+|chown\s+)/;function n(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.wv)(b),f=c>=0?b.slice(0,c):b,g=-1;for(let a=f.length-1;a>=0;a--){let b=(0,e.IW)(f[a]);if(b&&/^❯\s+\S/.test(b)){g=a;break}}let h=g>=0?g+1:0;if(g>=0)for(;h<f.length&&d.Fg.test(f[h]);)h++;let n=f.slice(h),o=[],p=!1,q=!1;for(let a of n){if(d.JN.test(a))continue;let b=(0,e.IW)(a);if(!b){p=!1,q=!1;continue}if(d.J7.some(a=>a.test(b)))continue;if(j.test(b)){q=!0,p=!1;continue}if(i.test(b))continue;if(l.test(b)){p=!0,q=!1;continue}if(!(k.test(b)||m.test(b))){if(/^❯\s*/.test(b)){p=!1,q=!1;continue}if(!/^[│└]/.test(b)){if(/^●/.test(b)){p=!1,q=!1,o.push(b.replace(/^●\s*/,""));continue}p||q||o.push(b)}}}return o.join("\n").trim()}function o(a){let b=a.split("\n"),c=[];for(let a=0;a<b.length;a++){let f=(0,e.l1)(b[a]);f&&d.Md.test(f)&&c.push(a)}let f=0;c.length>=2&&(f=c[c.length-2]+1);let g=[];for(let a=f;a<b.length;a++){let c=(0,e.l1)(b[a]);!(!c||d.sx.some(a=>a.test(c)))&&(d.Md.test(c)||g.push(c))}return g.join("\n").trim()}function p(a,b){let c=a.split("\n"),e=function(a,b){switch(b){case"codex":return(0,d.Zu)(a);case"command-code":return(0,d.I$)(a);default:return -1}}(c,b),f=e>=0?c.slice(0,e):c,{skipPatterns:g}=(0,d._X)(b),h=[];for(let a of f){let b=(0,d.aJ)(a);b.trim()&&(g.some(a=>a.test(b))||h.push(b))}return h.join("\n").trim()}function q(a,b=f.Rf,c=f.ky){if(!a||a.length<=b)return a;let d=c+"\n",e=b-d.length;if(e<=0)return c.slice(0,b);let g=a.length-e;if(g>0&&g<a.length){let b=a.charCodeAt(g);b>=56320&&b<=57343&&(g+=1)}return d+a.slice(g)}}};
113
+ ${f.body}`).length>2e5&&(g=g.slice(0,2e5-o.length)+o),{...f,body:g}),Q(l,X,j.lastRecordAt,null),d,e);return n&&await (0,i.fT)(a),n}let Z=3;async function $(a,b,d,e){let f=a.instanceId??a.cliToolId,g=b.content.length;if(d.body.length<=g)return!1;let[{getDbInstance:h},{updateMessageContent:i},{broadcastMessage:j}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]);return i(h(),b.id,d.body),j("message_updated",{worktreeId:a.worktreeId,message:{...b,content:d.body}}),F.info("claude-transcript-turn-updated",{worktreeId:a.worktreeId,instanceId:f,sessionId:d.sessionId,requestId:b.requestId,path:e,previousLength:g,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}async function _(a,b,d){if(0===b.length)return 0;let[{getDbInstance:e},{findMessageByRequestId:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),g=e(),h=0;for(let c of b){if(!B(c))continue;let b=f(g,a.worktreeId,(0,k.qe)(c.promptUuid));b&&await $(a,b,E(c),d)&&(h+=1)}return h}async function aa(a,b,d,e,f,g){let h=a.instanceId??a.cliToolId;if(g&&(g.outcome=void 0),!B(b))return g&&(g.outcome="not_yet_closed"),F.info("claude-transcript-turn-open",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,promptUuid:d.promptUuid,assistantRecords:b.assistantRecords,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!1;if(0===d.body.length)return F.info("claude-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,promptUuid:d.promptUuid}),!1;d.unknownBlockTypes.length>0&&F.info("claude-transcript-unknown-blocks",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,blockTypes:d.unknownBlockTypes});let i=(0,k.qe)(d.promptUuid),[{getDbInstance:j},{createMessage:l,findMessageByRequestId:m},{broadcastMessage:n}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]),o=j(),p=m(o,a.worktreeId,i);if(p)return F.debug("claude-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:h,requestId:i}),await $(a,p,d,f),!0;let q=l(o,{worktreeId:a.worktreeId,role:"assistant",content:d.body,messageType:"normal",timestamp:new Date(e>0?e:Date.now()),cliToolId:a.cliToolId,instanceId:h,requestId:i});return n("message",{worktreeId:a.worktreeId,message:q}),F.info("claude-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,requestId:i,path:f,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks}),!0}},82450:(a,b,c)=>{c.d(b,{IS:()=>h,LH:()=>n,NN:()=>g,Sj:()=>q,Te:()=>p,aW:()=>o});var d=c(20967),e=c(13033),f=c(56263);function g(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.GT)(b),e=c>=0?b.slice(0,c):b,f=-1;for(let a=e.length-1;a>=0;a--)if(/^❯\s+\S/.test(e[a])){f=a;break}let g=f>=0?f+1:0,h=e.slice(g),i=[/CLAUDE_HOOKS_/,/\/bin\/claude/,/^claude\s*$/,/@.*\s+%\s*$/,/^[^⏺]*curl.*POST/,/^[^⏺]*Content-Type/,/^[^⏺]*export\s+CLAUDE_/,/^\s*$/,/^[╭╮╰╯│─\s]+$/,/^[│╭╮╰╯].*[│╭╮╰╯]$/,/Claude Code v[\d.]+/,/^Tips for getting started/,/^Welcome back/,/Run \/init to create/,/^Recent activity/,/^No recent activity/,/▐▛███▜▌|▝▜█████▛▘|▘▘ ▝▝/,/^\s*Opus \d+\.\d+\s*·\s*Claude Max/,/\.com's Organization/,/\?\s*for shortcuts\s*$/,/^─{10,}$/,/^❯\s*$/,d.fW],j=[];for(let a of h)!i.some(b=>b.test(a))&&a.trim()&&j.push(a);return j.join("\n").trim()}function h(a){let b=(0,d.aJ)(a).split("\n"),c=[],e=[/^maenokota@.*%/,/^zsh:/,/^feature-issue-\d+/,/^\s*$/],f=!1,g=[];for(let a of b){if(a.includes("✦")){f=!0;let b=a.indexOf("✦"),c=a.substring(b+1).trim();c&&g.push(c);continue}if(f){if(e.some(b=>b.test(a)))continue;g.push(a)}}if(g.length>0)return g.join("\n").trim();for(let a of b)e.some(b=>b.test(a))||c.push(a);return c.join("\n").trim()}let i=RegExp(`^●\\s+(?:${d.Jr})[\\s:]`),j=/^\$\s+[A-Z][A-Za-z]*(?:\s|$)/,k=/^\d+\s+lines\.\.\.$/,l=/^[◐◑◒◓]/,m=/^(?:git\s+--no-pager|git\s+(?:log|diff|show|status|branch|remote|fetch|pull|push|merge|rebase|checkout|reset|stash|tag|config|clone|init|add|commit|rm|mv|bisect|grep|ls-files|rev-parse|describe|shortlog|blame|reflog|cherry-pick|revert|submodule|worktree)\b|npm\s+|npx\s+|yarn\s+|pnpm\s+|cargo\s+|pip\s+|rustc\s+|cmake\s+|docker\s+|kubectl\s+|aws\s+|gcloud\s+|az\s+|terraform\s+|ansible\s+|curl\s+|wget\s+|ssh\s+|scp\s+|rsync\s+|grep\s+|sed\s+|awk\s+|mkdir\s+|rm\s+|cp\s+|mv\s+|chmod\s+|chown\s+)/;function n(a){let b=(0,d.aJ)(a).split("\n"),c=(0,d.wv)(b),f=c>=0?b.slice(0,c):b,g=-1;for(let a=f.length-1;a>=0;a--){let b=(0,e.IW)(f[a]);if(b&&/^❯\s+\S/.test(b)){g=a;break}}let h=g>=0?g+1:0;if(g>=0)for(;h<f.length&&d.Fg.test(f[h]);)h++;let n=f.slice(h),o=[],p=!1,q=!1;for(let a of n){if(d.JN.test(a))continue;let b=(0,e.IW)(a);if(!b){p=!1,q=!1;continue}if(d.J7.some(a=>a.test(b)))continue;if(j.test(b)){q=!0,p=!1;continue}if(i.test(b))continue;if(l.test(b)){p=!0,q=!1;continue}if(!(k.test(b)||m.test(b))){if(/^❯\s*/.test(b)){p=!1,q=!1;continue}if(!/^[│└]/.test(b)){if(/^●/.test(b)){p=!1,q=!1,o.push(b.replace(/^●\s*/,""));continue}p||q||o.push(b)}}}return o.join("\n").trim()}function o(a){let b=a.split("\n"),c=[];for(let a=0;a<b.length;a++){let f=(0,e.l1)(b[a]);f&&d.Md.test(f)&&c.push(a)}let f=0;c.length>=2&&(f=c[c.length-2]+1);let g=[];for(let a=f;a<b.length;a++){let c=(0,e.l1)(b[a]);!(!c||d.sx.some(a=>a.test(c)))&&(d.Md.test(c)||g.push(c))}return g.join("\n").trim()}function p(a,b){let c=a.split("\n"),e=function(a,b){switch(b){case"codex":return(0,d.Zu)(a);case"command-code":return(0,d.I$)(a);default:return -1}}(c,b),f=e>=0?c.slice(0,e):c,{skipPatterns:g}=(0,d._X)(b),h=[];for(let a of f){let b=(0,d.aJ)(a);b.trim()&&(g.some(a=>a.test(b))||h.push(b))}return h.join("\n").trim()}function q(a,b=f.Rf,c=f.ky){if(!a||a.length<=b)return a;let d=c+"\n",e=b-d.length;if(e<=0)return c.slice(0,b);let g=a.length-e;if(g>0&&g<a.length){let b=a.charCodeAt(g);b>=56320&&b<=57343&&(g+=1)}return d+a.slice(g)}}};
@@ -1,5 +1,5 @@
1
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:()=>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"},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}
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
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}}}};