commandmate 0.44.1 → 0.44.3

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 (604) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +169 -169
  3. package/.next/app-path-routes-manifest.json +35 -35
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +0 -6
  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 +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 +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_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/auth/login/route.js +1 -1
  18. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/capabilities/route.js +1 -1
  22. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/daily-summary/route.js +1 -1
  24. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  25. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/daily-summary/status/route.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_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  31. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/external-apps/route.js +1 -1
  33. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/hooks/agent-event/route.js +2 -2
  37. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  38. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  40. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  41. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  43. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  44. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/push/escalation/route.js +1 -1
  48. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/push/subscriptions/route.js +2 -2
  50. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/push/vapid/route.js +1 -1
  52. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
  54. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  55. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/relays/route.js +1 -1
  57. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  58. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  61. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  63. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  64. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/repositories/clone/route.js +1 -1
  66. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  67. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/repositories/restore/route.js +1 -1
  70. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  71. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/repositories/route.js +1 -1
  73. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  74. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/scan/route.js +1 -1
  76. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  77. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/sync/route.js +1 -1
  79. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  83. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  84. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  85. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/sidebar/group-order/route.js +1 -1
  87. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/skills/[id]/route.js +1 -1
  89. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/skills/route.js +1 -1
  94. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/templates/[id]/route.js +2 -2
  99. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/templates/route.js +2 -2
  101. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  106. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  109. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  112. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +3 -3
  117. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  118. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  121. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  124. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  128. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  129. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -2
  192. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  193. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -2
  195. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  196. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  199. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  208. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +2 -2
  211. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  214. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  219. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +3 -3
  221. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  222. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  233. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  240. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  241. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  254. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  263. package/.next/server/app/api/worktrees/route.js +1 -1
  264. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  265. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  266. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  267. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  269. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  270. package/.next/server/app/page_client-reference-manifest.js +1 -1
  271. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  272. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  273. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  274. package/.next/server/app/sessions/page.js +1 -1
  275. package/.next/server/app/sessions/page.js.nft.json +1 -1
  276. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  277. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  278. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  279. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  280. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  281. package/.next/server/app/worktrees/[id]/page.js +11 -11
  282. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  283. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  284. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  285. package/.next/server/app-paths-manifest.json +35 -35
  286. package/.next/server/chunks/1191.js +2 -2
  287. package/.next/server/chunks/1210.js +1 -1
  288. package/.next/server/chunks/1559.js +2 -0
  289. package/.next/server/chunks/1789.js +1 -0
  290. package/.next/server/chunks/2119.js +1 -1
  291. package/.next/server/chunks/2404.js +1 -1
  292. package/.next/server/chunks/2445.js +1 -1
  293. package/.next/server/chunks/2460.js +1 -0
  294. package/.next/server/chunks/2710.js +1 -1
  295. package/.next/server/chunks/2908.js +1 -0
  296. package/.next/server/chunks/2980.js +1 -1
  297. package/.next/server/chunks/3241.js +1 -1
  298. package/.next/server/chunks/3480.js +1 -1
  299. package/.next/server/chunks/3718.js +1 -1
  300. package/.next/server/chunks/4207.js +2 -2
  301. package/.next/server/chunks/450.js +1 -1
  302. package/.next/server/chunks/4672.js +5 -0
  303. package/.next/server/chunks/{9353.js → 4718.js} +2 -2
  304. package/.next/server/chunks/4837.js +14 -0
  305. package/.next/server/chunks/5048.js +1 -1
  306. package/.next/server/chunks/5209.js +1 -0
  307. package/.next/server/chunks/5595.js +1 -0
  308. package/.next/server/chunks/5625.js +25 -0
  309. package/.next/server/chunks/5845.js +1 -0
  310. package/.next/server/chunks/611.js +1 -1
  311. package/.next/server/chunks/6130.js +1 -1
  312. package/.next/server/chunks/6401.js +1 -1
  313. package/.next/server/chunks/6781.js +1 -1
  314. package/.next/server/chunks/6793.js +3 -3
  315. package/.next/server/chunks/7491.js +2 -2
  316. package/.next/server/chunks/7905.js +1 -1
  317. package/.next/server/chunks/850.js +1 -0
  318. package/.next/server/chunks/8543.js +1 -1
  319. package/.next/server/chunks/8728.js +3 -3
  320. package/.next/server/chunks/8791.js +1 -1
  321. package/.next/server/chunks/8800.js +1 -1
  322. package/.next/server/chunks/8918.js +7 -7
  323. package/.next/server/chunks/9130.js +1 -5
  324. package/.next/server/chunks/9390.js +2 -3
  325. package/.next/server/chunks/9584.js +1 -1
  326. package/.next/server/chunks/9627.js +6 -6
  327. package/.next/server/chunks/9731.js +3 -3
  328. package/.next/server/middleware-manifest.json +5 -5
  329. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  330. package/.next/server/pages/500.html +1 -1
  331. package/.next/server/server-reference-manifest.json +1 -1
  332. package/.next/static/chunks/{1642-fb2e176aaadbd137.js → 1642-767aed8e7c61ef7f.js} +1 -1
  333. package/.next/static/chunks/{2407-f1f258d4a1d92620.js → 2407-06d35bb1aa02de80.js} +1 -1
  334. package/.next/static/chunks/{2619-04bc32f026a0d946.js → 2619-a305ad4810f1393a.js} +1 -1
  335. package/.next/static/chunks/4727-5d695d71e3fdf97b.js +1 -0
  336. package/.next/static/chunks/{8165-3853772f6ae1299b.js → 8165-3525fb42f1b4976e.js} +1 -1
  337. package/.next/static/chunks/app/{layout-da66300cc20244ed.js → layout-0d1750b833f5cc3e.js} +1 -1
  338. package/.next/static/chunks/app/sessions/page-2af68c63211c751f.js +1 -0
  339. package/.next/static/chunks/app/worktrees/[id]/page-e36898c3a80e7302.js +1 -0
  340. package/.next/static/chunks/app/worktrees/[id]/terminal/{page-373ea37b16d930c7.js → page-c601f3b3ece6557e.js} +1 -1
  341. package/.next/static/css/057f64a65726c439.css +1 -0
  342. package/.next/trace +13 -13
  343. package/dist/cli/commands/ask.d.ts.map +1 -1
  344. package/dist/cli/commands/ask.js +120 -119
  345. package/dist/cli/commands/attach.d.ts +94 -0
  346. package/dist/cli/commands/attach.d.ts.map +1 -1
  347. package/dist/cli/commands/attach.js +145 -7
  348. package/dist/cli/commands/auto-yes.js +1 -1
  349. package/dist/cli/commands/capture.d.ts.map +1 -1
  350. package/dist/cli/commands/capture.js +10 -13
  351. package/dist/cli/commands/command-target.d.ts +23 -0
  352. package/dist/cli/commands/command-target.d.ts.map +1 -0
  353. package/dist/cli/commands/command-target.js +25 -0
  354. package/dist/cli/commands/instances.d.ts.map +1 -1
  355. package/dist/cli/commands/instances.js +41 -2
  356. package/dist/cli/commands/message-dispatch.d.ts +36 -0
  357. package/dist/cli/commands/message-dispatch.d.ts.map +1 -0
  358. package/dist/cli/commands/message-dispatch.js +63 -0
  359. package/dist/cli/commands/reply.d.ts.map +1 -1
  360. package/dist/cli/commands/reply.js +2 -5
  361. package/dist/cli/commands/respond.d.ts.map +1 -1
  362. package/dist/cli/commands/respond.js +3 -6
  363. package/dist/cli/commands/send.d.ts.map +1 -1
  364. package/dist/cli/commands/send.js +149 -146
  365. package/dist/cli/commands/wait.d.ts.map +1 -1
  366. package/dist/cli/commands/wait.js +608 -416
  367. package/dist/cli/types/api-responses.d.ts +174 -27
  368. package/dist/cli/types/api-responses.d.ts.map +1 -1
  369. package/dist/cli/types/api-responses.js +4 -2
  370. package/dist/cli/utils/api-client.d.ts +25 -5
  371. package/dist/cli/utils/api-client.d.ts.map +1 -1
  372. package/dist/cli/utils/api-client.js +87 -55
  373. package/dist/cli/utils/server-url.d.ts +1 -0
  374. package/dist/cli/utils/server-url.d.ts.map +1 -1
  375. package/dist/cli/utils/server-url.js +7 -0
  376. package/dist/config/uat-isolation.d.ts +140 -0
  377. package/dist/config/uat-isolation.d.ts.map +1 -0
  378. package/dist/config/uat-isolation.js +246 -0
  379. package/dist/lib/global-state.d.ts +12 -0
  380. package/dist/lib/global-state.d.ts.map +1 -0
  381. package/dist/lib/global-state.js +16 -0
  382. package/dist/lib/polling/auto-yes-suppression-reason.d.ts +33 -0
  383. package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -0
  384. package/dist/lib/polling/auto-yes-suppression-reason.js +2 -0
  385. package/dist/lib/session/prompt-view.d.ts +228 -0
  386. package/dist/lib/session/prompt-view.d.ts.map +1 -0
  387. package/dist/lib/session/prompt-view.js +290 -0
  388. package/dist/lib/session/status-evidence-type.d.ts +16 -0
  389. package/dist/lib/session/status-evidence-type.d.ts.map +1 -0
  390. package/dist/lib/session/status-evidence-type.js +2 -0
  391. package/dist/lib/tmux/legacy-session-alias.d.ts.map +1 -1
  392. package/dist/lib/tmux/legacy-session-alias.js +2 -1
  393. package/dist/server/locales/en/worktree.json +3 -1
  394. package/dist/server/locales/ja/worktree.json +3 -1
  395. package/dist/server/server.js +5 -3
  396. package/dist/server/src/cli/types/api-responses.js +4 -2
  397. package/dist/server/src/config/cli-tool-timing-config.js +1 -6
  398. package/dist/server/src/config/uat-isolation.js +246 -0
  399. package/dist/server/src/lib/assistant-response-saver.js +62 -3
  400. package/dist/server/src/lib/auto-yes-lifecycle.js +139 -0
  401. package/dist/server/src/lib/auto-yes-poller.js +465 -160
  402. package/dist/server/src/lib/auto-yes-state.js +2 -2
  403. package/dist/server/src/lib/cli-tools/antigravity.js +39 -80
  404. package/dist/server/src/lib/cli-tools/base.js +151 -0
  405. package/dist/server/src/lib/cli-tools/codex.js +44 -80
  406. package/dist/server/src/lib/cli-tools/command-code.js +24 -56
  407. package/dist/server/src/lib/cli-tools/copilot.js +25 -67
  408. package/dist/server/src/lib/cli-tools/direct-input.js +8 -0
  409. package/dist/server/src/lib/cli-tools/gemini.js +23 -73
  410. package/dist/server/src/lib/cli-tools/opencode-pane-width.js +53 -0
  411. package/dist/server/src/lib/cli-tools/opencode-v2.js +9 -7
  412. package/dist/server/src/lib/cli-tools/opencode.js +21 -85
  413. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +127 -4
  414. package/dist/server/src/lib/cli-tools/vibe-local.js +21 -66
  415. package/dist/server/src/lib/detection/cli-patterns.js +374 -3047
  416. package/dist/server/src/lib/detection/idle-evidence-observation.js +2 -2
  417. package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +7 -32
  418. package/dist/server/src/lib/detection/prompt-detector.js +2 -35
  419. package/dist/server/src/lib/detection/selection-shape-patterns.js +69 -0
  420. package/dist/server/src/lib/detection/selection-shape.js +32 -520
  421. package/dist/server/src/lib/detection/shared/pasted-text.js +41 -0
  422. package/dist/server/src/lib/detection/shared/shell-pane-command.js +16 -0
  423. package/dist/server/src/lib/detection/shared/strip-box-drawing.js +25 -0
  424. package/dist/server/src/lib/detection/status-detector.js +1 -1
  425. package/dist/server/src/lib/detection/tools/antigravity/detect.js +12 -60
  426. package/dist/server/src/lib/detection/tools/antigravity/dialog.js +2 -15
  427. package/dist/server/src/lib/detection/tools/antigravity/live-region.js +39 -0
  428. package/dist/server/src/lib/detection/tools/antigravity/patterns.js +286 -0
  429. package/dist/server/src/lib/detection/tools/claude/detect.js +11 -17
  430. package/dist/server/src/lib/detection/tools/claude/live-region.js +26 -0
  431. package/dist/server/src/lib/detection/tools/claude/patterns.js +264 -4
  432. package/dist/server/src/lib/detection/tools/claude/prompt.js +2 -10
  433. package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +1 -1
  434. package/dist/server/src/lib/detection/tools/codex/detect.js +71 -130
  435. package/dist/server/src/lib/detection/tools/codex/live-region.js +104 -0
  436. package/dist/server/src/lib/detection/tools/codex/patterns.js +855 -0
  437. package/dist/server/src/lib/detection/tools/codex/prompt.js +2 -10
  438. package/dist/server/src/lib/detection/tools/command-code/detect.js +19 -50
  439. package/dist/server/src/lib/detection/tools/command-code/dialog.js +2 -18
  440. package/dist/server/src/lib/detection/tools/command-code/live-region.js +36 -0
  441. package/dist/server/src/lib/detection/tools/command-code/patterns.js +234 -0
  442. package/dist/server/src/lib/detection/tools/command-code/selection-shape.js +461 -0
  443. package/dist/server/src/lib/detection/tools/context-above.js +20 -0
  444. package/dist/server/src/lib/detection/tools/copilot/detect.js +13 -35
  445. package/dist/server/src/lib/detection/tools/copilot/live-region.js +52 -0
  446. package/dist/server/src/lib/detection/tools/copilot/patterns.js +640 -0
  447. package/dist/server/src/lib/detection/tools/copilot/prompt.js +2 -10
  448. package/dist/server/src/lib/detection/tools/frame.js +36 -2
  449. package/dist/server/src/lib/detection/tools/gemini/patterns.js +29 -0
  450. package/dist/server/src/lib/detection/tools/live-region-specs.js +31 -0
  451. package/dist/server/src/lib/detection/tools/live-region.js +204 -0
  452. package/dist/server/src/lib/detection/tools/opencode/detect.js +11 -49
  453. package/dist/server/src/lib/detection/tools/opencode/live-region.js +24 -0
  454. package/dist/server/src/lib/detection/tools/opencode/patterns.js +508 -0
  455. package/dist/server/src/lib/detection/tools/opencode-gutter-live-region.js +72 -0
  456. package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +10 -42
  457. package/dist/server/src/lib/detection/tools/opencode-v2/live-region.js +24 -0
  458. package/dist/server/src/lib/detection/tools/opencode-v2/patterns.js +63 -0
  459. package/dist/server/src/lib/detection/tools/run-detection.js +31 -50
  460. package/dist/server/src/lib/detection/tools/verdicts.js +59 -0
  461. package/dist/server/src/lib/detection/tools/vibe-local/patterns.js +20 -0
  462. package/dist/server/src/lib/detection/truncate-raw-content.js +38 -0
  463. package/dist/server/src/lib/detection/turn-abandoned.js +66 -0
  464. package/dist/server/src/lib/detection/unclassified-frame-tracker.js +2 -2
  465. package/dist/server/src/lib/global-state.js +16 -0
  466. package/dist/server/src/lib/hooks/agent-session-telemetry.js +4 -6
  467. package/dist/server/src/lib/hooks/permission-decision-state.js +2 -2
  468. package/dist/server/src/lib/hooks/sources/antigravity/history.js +11 -76
  469. package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +63 -1
  470. package/dist/server/src/lib/hooks/sources/antigravity/source.js +16 -0
  471. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +3 -12
  472. package/dist/server/src/lib/hooks/sources/claude/history.js +17 -156
  473. package/dist/server/src/lib/hooks/sources/claude/queued-notice.js +53 -0
  474. package/dist/server/src/lib/hooks/sources/claude/source.js +33 -3
  475. package/dist/server/src/lib/hooks/sources/claude/transcript.js +3 -13
  476. package/dist/server/src/lib/hooks/sources/codex/history.js +11 -74
  477. package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +147 -11
  478. package/dist/server/src/lib/hooks/sources/codex/relay-install.js +64 -21
  479. package/dist/server/src/lib/hooks/sources/codex/transcript.js +5 -15
  480. package/dist/server/src/lib/hooks/sources/command-code/history.js +20 -121
  481. package/dist/server/src/lib/hooks/sources/command-code/transcript.js +3 -13
  482. package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +161 -31
  483. package/dist/server/src/lib/hooks/sources/define-source.js +40 -55
  484. package/dist/server/src/lib/hooks/sources/event-mapper.js +2 -1
  485. package/dist/server/src/lib/hooks/sources/opencode/diff.js +3 -4
  486. package/dist/server/src/lib/hooks/sources/opencode/history.js +2 -1
  487. package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +2 -1
  488. package/dist/server/src/lib/hooks/sources/opencode/payloads.js +2 -1
  489. package/dist/server/src/lib/hooks/sources/opencode/ports.js +2 -1
  490. package/dist/server/src/lib/hooks/sources/opencode/subscription.js +4 -3
  491. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +3 -16
  492. package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +2 -1
  493. package/dist/server/src/lib/hooks/sources/opencode-v2/mappers.js +5 -4
  494. package/dist/server/src/lib/hooks/sources/opencode-v2/ports.js +2 -1
  495. package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +3 -7
  496. package/dist/server/src/lib/hooks/sources/opencode-v2/usage.js +2 -1
  497. package/dist/server/src/lib/hooks/sources/pending-decisions.js +2 -1
  498. package/dist/server/src/lib/hooks/sources/registry.js +3 -2
  499. package/dist/server/src/lib/hooks/sources/transcript-history.js +262 -0
  500. package/dist/server/src/lib/hooks/sources/turn-body.js +31 -0
  501. package/dist/server/src/lib/hooks/tool-input-normalization-state.js +2 -2
  502. package/dist/server/src/lib/polling/antigravity-permission-receipts.js +2 -2
  503. package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +16 -4
  504. package/dist/server/src/lib/polling/auto-yes-enter-fallback-state.js +142 -0
  505. package/dist/server/src/lib/polling/auto-yes-enter-fallback.js +187 -0
  506. package/dist/server/src/lib/polling/auto-yes-resolver.js +9 -3
  507. package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +2 -0
  508. package/dist/server/src/lib/polling/auto-yes-suppression-state.js +2 -2
  509. package/dist/server/src/lib/polling/pending-scraped-response.js +190 -0
  510. package/dist/server/src/lib/polling/prompt-dedup-state.js +2 -2
  511. package/dist/server/src/lib/polling/prompt-dedup.js +2 -2
  512. package/dist/server/src/lib/polling/response-checker-dialog-gate.js +95 -0
  513. package/dist/server/src/lib/polling/response-checker-extraction-result.js +50 -0
  514. package/dist/server/src/lib/polling/response-checker-extraction-steps.js +670 -0
  515. package/dist/server/src/lib/polling/response-checker.js +666 -1162
  516. package/dist/server/src/lib/polling/response-dedup.js +3 -4
  517. package/dist/server/src/lib/polling/response-poller-constants.js +17 -0
  518. package/dist/server/src/lib/polling/response-poller-core.js +54 -20
  519. package/dist/server/src/lib/polling/startup-screen.js +142 -0
  520. package/dist/server/src/lib/polling/structured-history-gate.js +3 -2
  521. package/dist/server/src/lib/prompt-answer-semantic.js +178 -0
  522. package/dist/server/src/lib/prompt-answer-sender.js +6 -5
  523. package/dist/server/src/lib/push/failure-episode-state.js +2 -2
  524. package/dist/server/src/lib/push/notification-dedup.js +3 -4
  525. package/dist/server/src/lib/push/prompt-card-state.js +2 -2
  526. package/dist/server/src/lib/push/waiting-push-notifier.js +3 -4
  527. package/dist/server/src/lib/realtime/publisher-registry.js +3 -2
  528. package/dist/server/src/lib/realtime/terminal-broadcast.js +38 -2
  529. package/dist/server/src/lib/realtime/terminal-session-ownership.js +45 -0
  530. package/dist/server/src/lib/relay/relay-delivery.js +6 -2
  531. package/dist/server/src/lib/relay/relay-readiness.js +38 -1
  532. package/dist/server/src/lib/relay/relay-triggers.js +9 -0
  533. package/dist/server/src/lib/resource-cleanup.js +6 -4
  534. package/dist/server/src/lib/response-cleaner.js +24 -1
  535. package/dist/server/src/lib/response-extractor.js +16 -0
  536. package/dist/server/src/lib/schedule-manager.js +8 -10
  537. package/dist/server/src/lib/session/agent-event-ask-user-question.js +168 -0
  538. package/dist/server/src/lib/session/agent-event-awaiting-instruction.js +104 -0
  539. package/dist/server/src/lib/session/agent-event-dedup.js +539 -0
  540. package/dist/server/src/lib/session/agent-event-model.js +562 -0
  541. package/dist/server/src/lib/session/agent-event-record.js +10 -0
  542. package/dist/server/src/lib/session/agent-event-state.js +106 -1854
  543. package/dist/server/src/lib/session/agent-event-structured-state.js +109 -0
  544. package/dist/server/src/lib/session/agent-event-turn.js +811 -0
  545. package/dist/server/src/lib/session/agent-session-lifecycle.js +11 -2
  546. package/dist/server/src/lib/session/chat-turn-progress.js +322 -0
  547. package/dist/server/src/lib/session/claude-executor.js +45 -5
  548. package/dist/server/src/lib/session/claude-session.js +21 -65
  549. package/dist/server/src/lib/session/cli-session.js +17 -0
  550. package/dist/server/src/lib/session/current-output-builder.js +454 -1103
  551. package/dist/server/src/lib/session/current-output-history-writers.js +255 -0
  552. package/dist/server/src/lib/session/current-output-types.js +9 -0
  553. package/dist/server/src/lib/session/detection-divergence.js +55 -0
  554. package/dist/server/src/lib/session/global-session-constants.js +2 -13
  555. package/dist/server/src/lib/session/hook-turn-hold.js +102 -0
  556. package/dist/server/src/lib/session/layer-disagreement.js +2 -2
  557. package/dist/server/src/lib/session/opencode-session-store.js +2 -1
  558. package/dist/server/src/lib/session/prompt-view.js +290 -0
  559. package/dist/server/src/lib/session/prompt-waiting-composition.js +35 -0
  560. package/dist/server/src/lib/session/provisional-turn.js +3 -1
  561. package/dist/server/src/lib/session/send-user-message.js +1 -1
  562. package/dist/server/src/lib/session/session-starting-state.js +4 -6
  563. package/dist/server/src/lib/session/status-evidence-type.js +2 -0
  564. package/dist/server/src/lib/session/status-evidence.js +2 -2
  565. package/dist/server/src/lib/session/structured-status-merge.js +335 -0
  566. package/dist/server/src/lib/session/waiting-episode-state.js +3 -4
  567. package/dist/server/src/lib/session/waiting-kind.js +3 -0
  568. package/dist/server/src/lib/session-cleanup.js +6 -8
  569. package/dist/server/src/lib/skills/install-plan.js +2 -1
  570. package/dist/server/src/lib/skills/snapshot-store.js +2 -2
  571. package/dist/server/src/lib/skills/uninstall-plan.js +2 -2
  572. package/dist/server/src/lib/timer-manager.js +6 -8
  573. package/dist/server/src/lib/tmux/geometry-delegation.js +3 -4
  574. package/dist/server/src/lib/tmux/legacy-session-alias.js +2 -1
  575. package/dist/server/src/lib/tmux/session-hooks.js +2 -1
  576. package/dist/server/src/lib/tmux/session-status-options.js +3 -3
  577. package/dist/server/src/lib/tmux/tmux-capture-cache.js +3 -2
  578. package/dist/server/src/lib/tmux/tmux.js +33 -59
  579. package/dist/server/src/lib/tui-accumulator.js +2 -2
  580. package/dist/server/src/lib/version-checker.js +6 -6
  581. package/dist/server/src/lib/ws-server.js +47 -11
  582. package/docs/en/user-guide/webapp-guide.md +27 -3
  583. package/package.json +1 -1
  584. package/release-notes/0.44.2.json +33 -0
  585. package/release-notes/0.44.3.json +82 -0
  586. package/scripts/hooks/cmate-agent-event.sh +18 -0
  587. package/.next/server/chunks/1068.js +0 -1
  588. package/.next/server/chunks/434.js +0 -1
  589. package/.next/server/chunks/5775.js +0 -1
  590. package/.next/server/chunks/6474.js +0 -14
  591. package/.next/server/chunks/650.js +0 -1
  592. package/.next/server/chunks/6661.js +0 -1
  593. package/.next/server/chunks/8583.js +0 -1
  594. package/.next/server/chunks/964.js +0 -1
  595. package/.next/server/chunks/967.js +0 -1
  596. package/.next/server/chunks/9882.js +0 -25
  597. package/.next/static/chunks/591-308072f285c34787.js +0 -1
  598. package/.next/static/chunks/app/sessions/page-049e06335187aa91.js +0 -1
  599. package/.next/static/chunks/app/worktrees/[id]/page-040c5f0f585e6812.js +0 -1
  600. package/.next/static/css/38070d879efa1371.css +0 -1
  601. package/dist/server/src/lib/cli-tools/index.js +0 -41
  602. package/dist/server/src/lib/polling/global-session-poller.js +0 -140
  603. /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_buildManifest.js +0 -0
  604. /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_ssgManifest.js +0 -0
@@ -1,3 +1,2 @@
1
- "use strict";exports.id=9390,exports.ids=[9390],exports.modules={2466:(a,b,c)=>{c.d(b,{Gb:()=>e,ek:()=>i,u_:()=>h});var d=c(13287);let e=200;function f(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function g(a,b){if("string"!=typeof a)return null;let c=a.trim();return""===c?null:c.slice(0,b)}function h(a){if(!f(a)||!Array.isArray(a.questions)||0===a.questions.length||a.questions.length>20)return null;let b=[];for(let c of a.questions){let a=function(a){if(!f(a))return null;let b=g(a.question,1e3);if(null===b||!Array.isArray(a.options)||0===a.options.length||a.options.length>20)return null;let c=[];for(let b of a.options){let a=function(a){if(!f(a))return null;let b=g(a.label,e);return null===b?null:{label:b,description:g(a.description,500)}}(b);if(null===a)return null;c.push(a)}return{question:b,header:g(a.header,64),multiSelect:!0===a.multiSelect,choices:c}}(c);if(null===a)return null;b.push(a)}return b}function i(a){if(!f(a)||a.tool_name!==d.k$)return null;let b=h(a.tool_input);return null===b?null:{questions:b,promptId:g(a.prompt_id,256)}}},18529:(a,b,c)=>{c.d(b,{$x:()=>s,Lj:()=>t,Q1:()=>r,QH:()=>u});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(24455),i=c(72626),j=c(43252),k=c(79827);let l=(0,i.h)("lib/hooks/sources/opencode/launch-settings"),m=globalThis.__opencodeLaunchSettings??=new Map;function n(a){return(0,h.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function o(){let a=(0,f.join)((0,e.homedir)(),".commandmate","opencode-launch-settings.json");return(0,g.T)(process.env.CM_OPENCODE_LAUNCH_SETTINGS_FILE,a,"CM_OPENCODE_LAUNCH_SETTINGS_FILE")}function p(){try{let a=JSON.parse((0,d.readFileSync)(o(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a)){let a=(0,k.ZH)(d);(0,k.Mj)(a)&&(b[c]=a)}return b}catch{return{}}}function q(a){let b=o();try{(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
2
- `,{mode:384})}catch(a){l.warn("opencode-launch-settings-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function r(a){let b=n(a),c=m.get(b);if(c)return c;let d=p()[b];return d?(m.set(b,d),d):{...k.gF}}function s(a,b){let c=n(a),d=(0,k.ZH)(b??{}),e=p();return(0,k.Mj)(d)?(m.set(c,d),e[c]=d,q(e)):(m.delete(c),c in e&&(delete e[c],q(e))),d}function t(a){let b=(0,k.ZH)(a??{}),c=[];b.agent&&c.push(`--agent ${(0,j.ZL)(b.agent)}`);let d=(0,k.sw)(b);return d&&c.push(`--model ${(0,j.ZL)(d)}`),c.length>0?` ${c.join(" ")}`:""}function u(a){let b=(0,k.ZH)(a??{}),c={};return b.agent&&(c.agent=b.agent),b.providerId&&b.modelId&&(c.model={providerID:b.providerId,modelID:b.modelId}),b.variant&&(c.variant=b.variant),Object.keys(c).length>0?c:null}},27128:(a,b,c)=>{function d(a){return a.split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n")}function e(a){let b=[],c=[],e=[];for(let d of a)0!==d.text.length&&("tool"===d.kind?e.push(d.text):"reasoning"===d.kind?c.push(d.text):b.push(d.text));let f=b.join("\n\n"),g=0===c.length?"":[`> **Thinking (${c.length})**`,">",c.map(d).join("\n>\n")].join("\n"),h=0===e.length?"":[`> **Tool calls (${e.length})**`,">",...e.map(d)].join("\n");return{body:[f,g,h].filter(a=>a.length>0).join("\n\n"),prose:f,reasoningLog:g,reasoningBlocks:c.length,toolLog:h,toolCalls:e.length}}c.d(b,{t3:()=>e})},27939:(a,b,c)=>{c.d(b,{F_:()=>r,KA:()=>s,XO:()=>v,Y2:()=>l,jp:()=>k,lr:()=>t,pr:()=>u});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(24455);let i=(0,c(72626).h)("lib/session/opencode-session-store"),j=/^ses[A-Za-z0-9_-]{1,128}$/;function k(a){return"string"==typeof a&&j.test(a)}let l=200,m=globalThis.__opencodeSessionMemories??=new Map;function n(a){return(0,h.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function o(){let a=(0,f.join)((0,e.homedir)(),".commandmate","opencode-sessions.json");return(0,g.T)(process.env.CM_OPENCODE_SESSION_FILE,a,"CM_OPENCODE_SESSION_FILE")}function p(){try{let a=JSON.parse((0,d.readFileSync)(o(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&k(d.sessionId)&&"string"==typeof d.worktreePath&&d.worktreePath.length>0&&(b[c]={sessionId:d.sessionId,title:"string"==typeof d.title?d.title:null,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function q(a){let b=o();try{(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
3
- `,{mode:384})}catch(a){i.warn("opencode-session-file-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function r(a,b,c=Date.now()){if(!k(b.sessionId))return i.warn("opencode-session-id-rejected",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),!1;if(0===b.worktreePath.length)return!1;let d={sessionId:b.sessionId,title:"string"==typeof b.title?b.title.slice(0,l):null,worktreePath:b.worktreePath,updatedAt:c},e=n(a);m.set(e,d);let f=p();return f[e]=d,q(f),!0}function s(a){let b=n(a),c=m.get(b);if(c)return c;let d=p()[b];return d?(m.set(b,d),d):null}function t(a){let b=n(a);m.delete(b);let c=p();b in c&&(delete c[b],q(c))}function u(a,b){let c=s(a);return c?c.worktreePath!==b?(i.info("opencode-session-recovery-path-mismatch",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,recorded:c.worktreePath}),null):k(c.sessionId)?c.sessionId:null:null}function v(a,b){return k(b)?`${a} -s ${b}`:a}},33198:(a,b,c)=>{c.d(b,{FN:()=>R,lf:()=>J,ym:()=>N,hS:()=>L,f4:()=>M,wb:()=>I,bP:()=>P,yn:()=>K,H1:()=>O});var d=c(72626),e=c(24455),f=c(3161),g=c(48083),h=c(27939),i=c(62171),j=c(57510),k=c(49791),l=c(86594),m=c(98322);let n=(0,d.h)("lib/hooks/sources/opencode/history"),o=globalThis.__opencodeTranscripts??=new Map;function p(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function q(a){let b=p(a),c=o.get(b);return c||(c=new Map,o.set(b,c)),c}async function r(a,b){try{let{emitChatTurnProgress:d}=await Promise.all([c.e(1356),c.e(1503),c.e(1634),c.e(1191),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(3480),c.e(252),c.e(8800),c.e(7491),c.e(9130),c.e(7905),c.e(9731),c.e(8728),c.e(8918),c.e(650),c.e(611),c.e(9882),c.e(964)]).then(c.bind(c,94676));await d({worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId},()=>{let a=(0,m.JZ)(b);return 0===a.body.length?null:{turnKey:(0,l.jT)(a.userMessageId),body:a.body,partial:!1}})}catch(b){n.debug("opencode-transcript-progress-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}function s(a){return"number"==typeof a&&Number.isFinite(a)?a:null}async function t(a,b,c=Date.now()){let d=o.get(p(a)),e=d?.get(b);return!!e&&!!d&&(d.delete(b),u(a,(0,m.JZ)(e),Math.max(e.startedAt,c),"stream"))}async function u(a,b,d,e){let f=a.instanceId??a.cliToolId;try{if(0===b.body.length)return n.info("opencode-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,origin:e}),!1;b.unknownPartTypes.length>0&&n.info("opencode-transcript-unknown-parts",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,partTypes:b.unknownPartTypes});let g=(0,l.jT)(b.userMessageId),[{getDbInstance:h},{createMessage:i,findMessageByRequestId:j},{broadcastMessage:k}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(8791),c.e(1719),c.e(2119),c.e(2445),c.e(8728),c.e(8583)]).then(c.bind(c,43015))]),m=h();if(j(m,a.worktreeId,g))return n.debug("opencode-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:f,requestId:g,origin:e}),!1;let o=i(m,{worktreeId:a.worktreeId,role:"assistant",content:b.body,messageType:"normal",timestamp:new Date(d>0?d:Date.now()),cliToolId:a.cliToolId,instanceId:f,requestId:g});return k("message",{worktreeId:a.worktreeId,message:o}),n.info("opencode-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,requestId:g,origin:e,bodyLength:b.body.length,textParts:b.textParts,toolParts:b.toolParts}),!0}catch(c){return n.error("opencode-transcript-write-failed",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,origin:e,error:c instanceof Error?c.message:String(c)}),!1}}async function v(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=await (0,k.EI)(b,c);if(null===e)return n.info("opencode-transcript-backfill-unavailable",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c}),0;let f=(0,m.ed)(e,c),g=[...f].sort((a,b)=>b.startedAt-a.startedAt),h=g.slice(0,50);g.length>h.length&&n.warn("opencode-transcript-backfill-truncated",{worktreeId:a.worktreeId,instanceId:d,sessionId:c,examined:h.length,skipped:g.length-h.length,limit:50});let i=function(a){let b=new Map;if(!Array.isArray(a))return b;for(let c of a){if(!(0,j.Qd)(c))continue;let a=(0,j.Qd)(c.info)?c.info:null;if(!a||"assistant"!==a.role)continue;let d=(0,j.O2)(a,m.Pv);if(!d)continue;let e=(0,j.Qd)(a.time)?a.time:null,f=s(e?.completed)??s(e?.created)??null;null!==f&&f>(b.get(d)??0)&&b.set(d,f)}return b}(e),l=0;for(let b of[...h].reverse())await u(a,(0,m.JZ)(b),Math.max(b.startedAt,i.get(b.userMessageId)??0),"backfill")&&(l+=1);return n.info("opencode-transcript-backfill-done",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c,turns:f.length,written:l}),l}catch(e){return n.error("opencode-transcript-backfill-failed",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c,error:e instanceof Error?e.message:String(e)}),0}}var w=c(75356),x=c(98211),y=c(90488),z=c(84574);function A(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["sessionID"])}function B(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}let C=(0,d.h)("lib/hooks/sources/opencode/subscription"),D=[1e3,2e3,4e3,8e3,15e3,3e4],E=globalThis.__opencodeSubscriptions??=new Map,F=globalThis.__opencodeDroppedLiveness??=new Map,G=globalThis.__opencodeProbedActivity??=new Map;function H(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function I(a){return E.has(H(a))}function J(a){let b=H(a);return E.get(b)?.liveness??F.get(b)??{state:"unknown"}}function K(a,b,c){G.set(H(a),{activity:b,at:c})}function L(a){return G.get(H(a))??null}function M(a){return"live"===J(a).state}function N(a){return E.get(H(a))?.gate.primarySession()??null}function O(a,b,c){let d=E.get(H(a));if(!d)return{seen:Promise.resolve(!1),cancel:()=>{}};let e=()=>{},f=new Promise(a=>{e=a}),g=d.idleWaiters.get(b)??new Set;d.idleWaiters.set(b,g);let h=null,i=a=>{g.delete(i)&&(0===g.size&&d.idleWaiters.delete(b),null!==h&&clearTimeout(h),e(a))};return g.add(i),h=setTimeout(()=>i(!1),c),h.unref?.(),{seen:f,cancel:()=>i(!1)}}async function P(a,b,c,d={}){let e=H(a),f=E.get(e);if(f)return Q(f);F.delete(e),G.delete(e);let g=d.port??(0,z.hC)(a);if(null===g)return C.info("opencode-subscription-skipped-no-port",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),{close:async()=>{},liveness:{state:"unknown"}};let h={key:e,target:a,port:g,onEvent:b,normalize:c,gate:function(a=64,b=512,c=64){let d=new Map,e=new Set,f=new Set,g=null,h=(b,c)=>{d.delete(b),d.set(b,c),B(d,a)},i=()=>null!==g&&"busy"===d.get(g),k=a=>{var b;h(a,"busy"),b=a,!f.has(b)&&g!==b&&(i()||(g=b))};return{observe(a,l){let m=function(a){let b=(0,j.Qd)(a.properties)?a.properties:{},c=(0,j.Qd)(b.info)?b.info:null;return null!==c&&(0,j.NZ)(c,["parentID"])?(0,j.NZ)(c,["id"])??(0,j.NZ)(b,["sessionID"]):null}(l);if(null!==m&&(f.add(m),B(f,c),g===m&&(g=null)),"message.updated"===a){let{role:a,id:c}=function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return{role:(0,j.NZ)(b,["info","role"]),id:(0,j.NZ)(b,["info","id"])}}(l);if("user"!==a||null===c)return{kind:"ignored"};let d=A(l)??"";return e.has(c)?{kind:"suppressed",sessionId:d,reason:"already-announced"}:(e.add(c),B(e,b),{kind:"announced",sessionId:d,messageId:c})}if("session.status"===a){if("busy"!==function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["status","type"])}(l))return{kind:"ignored"};let a=A(l);return null===a?{kind:"ignored"}:(k(a),{kind:"armed",sessionId:a})}if("session.error"===a){let a=A(l);return null===a?{kind:"ignored"}:{kind:"failed",sessionId:a,errorName:function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["error","name"])}(l)}}if("session.idle"!==a)return{kind:"ignored"};let n=A(l);if(null===n)return{kind:"ignored"};if(f.has(n)||null!==g&&n!==g&&i())return h(n,"idle"),{kind:"suppressed",sessionId:n,reason:"foreign-session"};let o=d.get(n);return void 0===o?{kind:"suppressed",sessionId:n,reason:"never-armed"}:"idle"===o?{kind:"suppressed",sessionId:n,reason:"already-completed"}:(h(n,"idle"),{kind:"completed",sessionId:n})},isArmed:a=>"busy"===d.get(a),arm(a){k(a)},armedSessions:()=>[...d.entries()].filter(([,a])=>"busy"===a).map(([a])=>a),primarySession:()=>g,reset(){d.clear(),g=null}}}(),resync:d.resync??"none",seenDecisions:new Set,idleWaiters:new Map,announcedUpdates:new Set,streamController:new AbortController,lifetimeController:new AbortController,serverVersion:null,liveness:{state:"unknown"},closed:!1,watchdog:null};return E.set(e,h),C.info("opencode-subscription-opened",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:g}),U(h),Q(h)}function Q(a){return{close:async()=>{await R(a.target)},get liveness(){return a.liveness}}}async function R(a){let b=H(a);F.delete(b),G.delete(b);let c=E.get(b);if(c){for(let a of(c.closed=!0,S(c),[...c.idleWaiters.values()]))for(let b of[...a])b(!1);c.idleWaiters.clear(),c.streamController.abort(),c.lifetimeController.abort(),E.delete(b),(0,f.cI)(a),o.delete(p(a)),(0,i.WC)(a),C.info("opencode-subscription-closed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c.port})}}function S(a){null!==a.watchdog&&(clearTimeout(a.watchdog),a.watchdog=null)}function T(a){S(a);let b=setTimeout(()=>{a.closed||(C.warn("opencode-subscription-heartbeat-lost",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,afterMs:3e4}),a.streamController.abort())},3e4);b.unref?.(),a.watchdog=b}async function U(a){let b=0;for(;!a.closed;){a.streamController=new AbortController;let c=a.gate.armedSessions();a.gate.reset();let d="stream-ended";try{let e=await V(a);if(a.closed)break;if("changed"===e)return;if("unreachable"===e)d="health-unreachable";else{let d=await (0,k.mi)(a.port,a.streamController.signal);for await(let e of(a.liveness={state:"live",lastHeartbeatAt:Date.now()},T(a),await W(a),await X(a,c),await Y(a),b=0,d))b=0,T(a),function(a,b){let c=(0,j.O2)(b,"type");("server.heartbeat"===c||"server.connected"===c)&&(a.liveness={state:"live",lastHeartbeatAt:Date.now()}),Z(a,b,Date.now())}(a,e)}}catch(a){d=a instanceof Error?a.message:String(a)}finally{S(a)}if(a.closed)break;a.liveness={state:"lost",since:Date.now(),reason:d},C.warn("opencode-subscription-disconnected",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,reason:d,attempt:b}),await function(a,b){return new Promise(c=>{if(b.aborted)return void c();let d=()=>{clearTimeout(e),c()};b.addEventListener("abort",d,{once:!0});let e=setTimeout(()=>{b.removeEventListener("abort",d),c()},a);e.unref?.()})}(function(a){let b=Math.min(a,D.length-1);return D[b]}(b),a.lifetimeController.signal),b+=1}}async function V(a){var b,c;let d=await (0,k.sc)(a.port);if("healthy"!==d.kind)return C.info("opencode-subscription-health-unavailable",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,outcome:d.kind,status:"rejected"===d.kind?d.status:void 0}),"unreachable";let e=d.health.version;return null===a.serverVersion||null===e?(a.serverVersion??=e,"same"):e===a.serverVersion?"same":(b=a,c=e,C.warn("opencode-subscription-port-identity-changed",{worktreeId:b.target.worktreeId,instanceId:b.target.instanceId??b.target.cliToolId,port:b.port,reason:"port_identity_changed",expectedVersion:b.serverVersion,observedVersion:c}),b.closed=!0,S(b),b.streamController.abort(),b.lifetimeController.abort(),b.liveness={state:"lost",since:Date.now(),reason:"port_identity_changed"},E.delete(b.key),F.set(b.key,b.liveness),"changed")}async function W(a){let b=Date.now(),[c,d]=await Promise.all([(0,k.Li)(a.port),(0,k.er)(a.port)]),e=(c,d)=>{let e=c.slice(0,50);for(let f of(c.length>e.length&&C.warn("opencode-resync-truncated",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,type:d,examined:e.length,skipped:c.length-e.length,limit:50}),e)){let c=(0,j.O2)(f,"id");!c||a.seenDecisions.has(c)||Z(a,{id:`resync_${c}`,type:d,properties:f},b)}};e(c,"permission.asked"),e(d,"question.asked")}async function X(a,b){if("session-status-poll"!==a.resync)return;let c=await (0,k.mY)(a.port);if(null===c)return void C.info("opencode-resync-status-unavailable",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port});let d=[];for(let[b,e]of Object.entries(c))"busy"===e&&(a.gate.arm(b),d.push(b));let e=[];for(let d of b)"idle"===c[d]&&(a.gate.arm(d),e.push(d),Z(a,{id:`resync_idle_${d}`,type:"session.idle",properties:{sessionID:d}},Date.now()));(d.length>0||e.length>0)&&C.info("opencode-turn-state-recovered",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,rearmed:d,synthesized:e,primarySession:a.gate.primarySession()})}async function Y(a){try{let b=(0,h.KA)(a.target)?.sessionId??null,c=a.gate.primarySession()??b;if(!c)return;await v(a.target,a.port,c)}catch(b){C.warn("opencode-history-recovery-failed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,error:b instanceof Error?b.message:String(b)})}}function Z(a,b,c){var d,e;let h=(0,j.O2)(b,"type");if("message.part.updated"===h){let a=(0,w.Zu)(b),c=(0,w.Dp)(b);a&&c&&(0,x.XL)(a,c)}if("session.updated"===h){let d=(0,f.Tv)(b,c);d&&(0,f.G1)(a.target,d)}if(("session.updated"===h||"message.updated"===h)&&(0,g.recordAgentReportedEffort)(a.target.worktreeId,a.target.cliToolId,a.target.instanceId,(0,w.Jd)(b)),("message.updated"===h||"message.part.updated"===h)&&function(a,b,c){try{let d=(0,j.O2)(b,"type"),e=(0,j.Qd)(b.properties)?b.properties:{},f=(0,j.O2)(e,"sessionID");if(!f)return;if("message.updated"===d){let b=(0,j.Qd)(e.info)?e.info:null;if(!b||"assistant"!==b.role)return;let d=(0,j.O2)(b,"parentID");if(!d)return;let g=q(a),h=g.get(f),i=h?.userMessageId===d?h:(0,m.lp)(f,d,c);if(i!==h)for(h&&n.info("opencode-transcript-turn-superseded",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,abandoned:h.userMessageId}),g.set(f,i);g.size>16;){let b=g.keys().next();if(b.done)break;g.delete(b.value),n.info("opencode-transcript-turn-evicted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:b.value,reason:"max-open-turns"})}let k=(0,j.O2)(b,"id");k&&(0,m.ZG)(i,k);return}if("message.part.updated"!==d)return;let g=(0,m.TB)(e.part);if(!g)return;let h=q(a).get(f);if(!h||!(0,m.QT)(h,g.messageId))return void n.debug("opencode-transcript-part-unattached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,partType:g.type,reason:h?"foreign-message":"no-open-turn"});(0,m.yG)(h,g)||n.warn("opencode-transcript-turn-overflow",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,partType:g.type}),r(a,h)}catch(b){n.error("opencode-transcript-record-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}(a.target,b,c),("session.diff"===h||"session.updated"===h||"message.updated"===h)&&(0,i.hf)(a.target,b,c),"installation.update-available"===h&&function(a,b,c){let d=(0,j.Qd)(b.properties)?b.properties:{},e=(0,j.O2)(d,"version");if(e){if(a.announcedUpdates.has(e))return C.info("opencode-update-available-repeat-dropped",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,version:e});a.announcedUpdates.add(e),C.info("opencode-update-available",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,version:e}),(0,y.BF)(a.target,a.target.instanceId??a.target.cliToolId,e,c)}}(a,b,c),"session.idle"===h){let c=(0,j.O2)((0,j.Qd)(b.properties)?b.properties:{},"sessionID");if(c){let b=a.idleWaiters.get(c);if(b)for(let a of[...b])a(!0);t(a.target,c)}}let k=a.gate.observe(h,b);"failed"===k.kind&&C.warn("opencode-session-error",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:k.sessionId,errorName:k.errorName});let l=null;try{l=a.normalize({payload:b,receivedAt:c})}catch(a){C.error("opencode-normalize-threw",{type:h,error:a instanceof Error?a.message:String(a)});return}if(!l)return;let o=(d=l.event,e=k,"stop"===d&&"completed"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-turn-end":"user_prompt_submit"===d&&"announced"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-new-prompt":null);if(null!==o)return void C.info("opencode-repeat-suppressed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:l.conversationId,event:l.event,reason:o});!function(a,b){let c=(0,j.O2)(b,"type");if("permission.asked"!==c&&"question.asked"!==c)return;let d=(0,j.Qd)(b.properties)?b.properties:{},e=(0,j.O2)(d,"id");if(e)for(a.seenDecisions.add(e);a.seenDecisions.size>256;){let b=a.seenDecisions.values().next();if(b.done)break;a.seenDecisions.delete(b.value)}}(a,b);try{a.onEvent(l)}catch(a){C.error("opencode-event-handler-failed",{type:h,error:a instanceof Error?a.message:String(a)})}}},62171:(a,b,c)=>{c.d(b,{HL:()=>q,WC:()=>r,hf:()=>p,ki:()=>u,pw:()=>v,rn:()=>s,t2:()=>t});var d=c(72626),e=c(24455),f=c(85322),g=c(84574),h=c(49791);let i=(0,d.h)("lib/hooks/sources/opencode/diff"),j=globalThis.__opencodeSessionDiff??(globalThis.__opencodeSessionDiff=new Map),k=globalThis.__opencodeSessionDiffRefreshes??(globalThis.__opencodeSessionDiffRefreshes=new Set);function l(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function m(a){return{sessionId:null,turnMessageId:null,files:[],filesAt:null,revertedFiles:[],revertedMessageId:null,at:a}}function n(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function o(a,b){let c=a[b];return"string"!=typeof c||0===c.length?null:c.slice(0,128)}function p(a,b,c){let d=l(a),e=j.get(d)??m(c),f=function(a){if("message.updated"!==a.type)return null;let b=n(a.properties)?a.properties:null,c=b&&n(b.info)?b.info:null;if(!c||"user"!==c.role)return null;let d=o(c,"id");return d?{sessionId:o(c,"sessionID"),messageId:d}:null}(b);if(f){if(f.messageId===e.turnMessageId)return;j.set(d,{...e,sessionId:f.sessionId??e.sessionId,turnMessageId:f.messageId,files:[],filesAt:null,at:c});return}let g=function(a){let b=a.type,c=n(a.properties)?a.properties:null;if(!c)return null;if("session.diff"===b)return{kind:"files",sessionId:o(c,"sessionID"),files:(0,h.M)(c.diff)};if("session.updated"===b){let a=n(c.info)?c.info:null;if(!a||"string"==typeof a.parentID&&a.parentID.length>0)return null;let b=n(a.revert)?a.revert:null;return{kind:"held",sessionId:o(a,"id"),messageId:b?o(b,"messageID"):null}}return null}(b);if(g){if("files"===g.kind)return void j.set(d,{...e,sessionId:g.sessionId??e.sessionId,revertedFiles:g.files,at:c});j.set(d,{...e,sessionId:g.sessionId??e.sessionId,revertedMessageId:g.messageId,revertedFiles:null===g.messageId?[]:e.revertedFiles,at:c})}}function q(a,b,c){return b!==f.k?null:j.get((0,e.v7)(a,b,c))??null}function r(a){let b=l(a);j.delete(b),k.delete(b)}function s(a){if(a.cliToolId!==f.k)return null;let b=l(a),c=j.get(b);if(!c)return null;if(null!==c.filesAt||null===c.sessionId||null===c.turnMessageId||k.has(b))return c;let d=(0,g.hC)(a);return null===d||(k.add(b),t(a,d,c.sessionId,c.turnMessageId).finally(()=>{k.delete(b)})),c}async function t(a,b,c,d){let e=await (0,h.iv)(b,c,d);if(null===e)return i.debug("opencode-turn-diff-unavailable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:c}),null;let f=l(a),g=j.get(f);return g&&g.turnMessageId===d&&j.set(f,{...g,files:e,filesAt:Date.now()}),e}function u(a,b,c){let d=l(a),e=Date.now(),f=j.get(d)??m(e);j.set(d,{...f,revertedMessageId:b,revertedFiles:c,at:e})}function v(a,b){let c=q(a,f.k,b);if(!c)return null;let d=new Set;for(let a of[...c.files,...c.revertedFiles])null!==a.file&&d.add(a.file);let e=[...c.files,...c.revertedFiles].filter(a=>null===a.file).length;return d.size+e}},75356:(a,b,c)=>{c.d(b,{C8:()=>h,Dp:()=>o,Jd:()=>l,Mn:()=>q,Tm:()=>g,Zu:()=>p,aF:()=>f,lu:()=>t,oG:()=>r,pV:()=>k,vE:()=>i});var d=c(62887),e=c(57510);let f="permission_prompt",g="question_prompt",h=d.KC,i="error";function j(a){return(0,e.Qd)(a.properties)?a.properties:{}}function k(a){let b=j(a).info;return(0,e.Qd)(b)?(0,e.NZ)(b,["model","modelID"])??(0,e.NZ)(b,["model","id"]):null}function l(a){let b=j(a).info;return(0,e.Qd)(b)?(0,e.NZ)(b,["model","variant"])??(0,e.NZ)(b,["variant"]):null}function m(a){return(0,e.NZ)(j(a),["part","state","status"])}function n(a){return"tool"===(0,e.NZ)(j(a),["part","type"])}function o(a){return(0,e.NZ)(j(a),["part","tool"])}function p(a){return(0,e.NZ)(j(a),["part","callID"])}function q(a){return(0,e.NZ)(j(a),["requestID"])}function r(a){let b=j(a);switch((0,e.NZ)(a,["type"])){case"permission.asked":case"question.asked":return(0,e.hY)((0,e.NZ)(b,["id"]));case"permission.replied":return(0,e.hY)(q(a));case"message.updated":return(0,e.hY)((0,e.NZ)(b,["info","id"]));case"message.part.updated":return(0,e.hY)(p(a));default:return null}}let s=["completed","error"],t=[(0,e.KR)("session.idle","stop"),(0,e.KR)("session.created","session_start"),(0,e.KR)("session.deleted","session_end"),(a,b)=>"message.updated"===a&&"user"===(0,e.NZ)(j(b),["info","role"])?{event:"user_prompt_submit"}:null,(a,b)=>"message.part.updated"===a&&n(b)&&"running"===m(b)?{event:"pre_tool_use",detail:(0,e.Wv)(o(b)),toolCallId:p(b)}:null,(a,b)=>"message.part.updated"===a&&n(b)&&s.includes(m(b)??"")?{event:"post_tool_use",detail:(0,e.Wv)(o(b)),toolCallId:p(b)}:null,(0,e.KR)("permission.asked","notification",f),(0,e.KR)("question.asked","notification",g),(0,e.KR)("session.error","notification",i),(0,e.KR)("permission.replied","notification",h)].map(function(a){return(b,c)=>{let d=a(b,c);return d?{...d,conversationId:d.conversationId??(0,e.NZ)(j(c),["sessionID"])}:null}})},85322:(a,b,c)=>{c.d(b,{k:()=>d});let d="opencode"},86594:(a,b,c)=>{function d(a){return`oc-turn:${a}`}function e(a){return`claude-turn:${a}`}function f(a){return`claude-prompt:${a}`}c.d(b,{Ac:()=>j,H_:()=>f,O1:()=>k,ST:()=>g,TW:()=>n,Wr:()=>h,ZS:()=>i,jN:()=>l,jT:()=>d,qe:()=>e,sT:()=>m});let g="partial:";function h(a,b){return`${g}${a}:${b}`}function i(a){return`codex-turn:${a}`}function j(a){return`codex-prompt:${a}`}function k(a,b){return`antigravity-turn:${a}#${b}`}function l(a,b){return`antigravity-prompt:${a}#${b}`}function m(a){return`command-code-turn:${a}`}function n(a){return`command-code-prompt:${a}`}},90488:(a,b,c)=>{c.d(b,{BF:()=>j,Vo:()=>h,dJ:()=>i});let d=(0,c(72626).h)("lib/hooks/sources/opencode/push");async function e(a){try{let[{getDbInstance:b},{getWorktreeById:d}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]);return d(b(),a)?.name??a}catch{return a}}async function f(){return Promise.all([c.e(1356),c.e(1191)]).then(c.bind(c,61191))}async function g(a,b){return{worktreeId:a.worktreeId,worktreeName:await e(a.worktreeId),instanceId:b}}async function h(a,b,c,e){try{let{notifyPushSubscribers:h,buildExcerpt:i}=await f(),j=await g(a,b);await h({...j,kind:"prompt",agentName:b,waitingKind:"prompt",waitingSince:e,excerpt:i(c??void 0,80)},e),d.info("opencode-question-push-sent",{worktreeId:a.worktreeId,instanceId:b,hasQuestion:null!==c})}catch(c){d.warn("opencode-question-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}async function i(a,b,c,e,h,i){if("MessageAbortedError"===c)return void d.info("opencode-error-push-skipped-interrupt",{worktreeId:a.worktreeId,instanceId:b,errorName:c});try{let{notifyPushSubscribers:j,buildExcerpt:k}=await f(),l=await g(a,b);await j({...l,kind:"failure",agentName:b,excerpt:k(e??void 0,80),failure:{reason:"agent-session-error",signature:`opencode:session-error:${h??"unknown"}:${c??"unknown"}`}},i),d.info("opencode-error-push-sent",{worktreeId:a.worktreeId,instanceId:b,errorName:c,sessionId:h})}catch(c){d.warn("opencode-error-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}async function j(a,b,c,e){try{let{notifyPushSubscribers:h}=await f(),i=await g(a,b);await h({...i,kind:"completion",agentName:b,excerpt:c,updateAvailable:{agent:b,version:c}},e),d.info("opencode-update-push-sent",{worktreeId:a.worktreeId,instanceId:b,version:c})}catch(c){d.warn("opencode-update-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}},98211:(a,b,c)=>{c.d(b,{AB:()=>m,FZ:()=>i,LF:()=>l,Lu:()=>k,XL:()=>g,v1:()=>j});var d=c(2466),e=c(57510);let f=globalThis.__opencodeToolCallNames??=new Map;function g(a,b){for(f.delete(a),f.set(a,b);f.size>256;){let a=f.keys().next();if(a.done)break;f.delete(a.value)}}function h(a){return"string"==typeof a.type&&(0,e.Qd)(a.properties)?a.properties:a}function i(a){var b;let c=h(a),d=(0,e.O2)(c,"id"),g=(0,e.O2)(c,"sessionID");if(!d||!g||Array.isArray(c.questions))return null;let i=(0,e.O2)(c,"permission"),j=(0,e.Qd)(c.metadata)?c.metadata:{};return{toolName:((b=(0,e.NZ)(c,["tool","callID"]))?f.get(b)??null:null)??i??"permission",toolInput:{permission:i,patterns:Array.isArray(c.patterns)?c.patterns:[],...j},promptId:d,sessionId:g,permissionMode:null,permissionSuggestions:Array.isArray(c.always)?c.always:null}}function j(a){let b=h(a),c=(0,e.O2)(b,"id");if(!c)return null;let f=(0,d.u_)({questions:b.questions});return null===f?null:{questions:f,promptId:c}}function k(a,b){let c=i(a);return c&&c.promptId?{kind:"permission",id:c.promptId,conversationId:c.sessionId,subject:{kind:"permission",toolName:c.toolName,toolInput:c.toolInput},raw:a,askedAt:b}:null}function l(a,b){let c=k(a,b);if(!c||"permission"!==c.subject.kind)return null;let d=c.subject.toolInput.patterns;return{toolName:c.subject.toolName,patterns:Array.isArray(d)?d:[]}}function m(a,b){let c=h(a),d=(0,e.O2)(c,"id"),f=j(a);return d&&f?{kind:"question",id:d,conversationId:(0,e.O2)(c,"sessionID"),subject:{kind:"question",spec:f},raw:a,askedAt:b}:null}},98322:(a,b,c)=>{c.d(b,{JZ:()=>o,Pv:()=>f,QT:()=>j,TB:()=>k,ZG:()=>i,ed:()=>p,lp:()=>h,yG:()=>l});var d=c(57510),e=c(27128);let f="parentID",g="\n\n_(truncated)_";function h(a,b,c){return{sessionId:a,userMessageId:b,parts:new Map,assistantMessageIds:new Set,startedAt:c,overflowed:!1}}function i(a,b){a.assistantMessageIds.add(b)}function j(a,b){return a.assistantMessageIds.has(b)}function k(a){if(!(0,d.Qd)(a))return null;let b=(0,d.O2)(a,"id"),c=(0,d.O2)(a,"messageID"),e=(0,d.O2)(a,"type");if(!b||!c||!e)return null;let f=(0,d.Qd)(a.state)?a.state:null;return{id:b,messageId:c,type:e,text:"string"==typeof a.text?a.text:null,tool:(0,d.O2)(a,"tool"),status:f?(0,d.O2)(f,"status"):null,title:f?(0,d.O2)(f,"title"):null,error:f?(0,d.O2)(f,"error")??(0,d.NZ)(f,["error","message"]):null}}function l(a,b){return!a.parts.has(b.id)&&a.parts.size>=512?(a.overflowed=!0,!1):(a.parts.set(b.id,b),!0)}let m=new Set(["step-start","step-finish","snapshot","patch"]);function n(a){return a.replace(/\s+/g," ").trim()}function o(a){let b=[],c=new Set,d=0,f=0;for(let e of a.parts.values()){if("text"===e.type){let a=e.text?.trim()??"";if(0===a.length)continue;b.push({kind:"prose",text:a}),d+=1;continue}if("reasoning"===e.type){let a=e.text?.trim()??"";if(0===a.length)continue;b.push({kind:"reasoning",text:a});continue}if("tool"===e.type){if("pending"===e.status)continue;b.push({kind:"tool",text:function(a){let b=a.tool??"tool",c=a.title??null,d="error"===a.status,e=`- \`${b}\`${c?` — ${n(c)}`:""}`;return d?a.error?`${e} _(error: ${n(a.error)})_`:`${e} _(error)_`:e}(e)}),f+=1;continue}m.has(e.type)||c.add(e.type)}let h=(0,e.t3)(b),i=h.body;return i.length>2e5&&(i=i.slice(0,2e5-g.length)+g),{sessionId:a.sessionId,userMessageId:a.userMessageId,body:i,textParts:d,toolParts:f,reasoningParts:h.reasoningBlocks,unknownPartTypes:[...c]}}function p(a,b){if(!Array.isArray(a))return[];let c=new Map;for(let e of a){if(!(0,d.Qd)(e))continue;let a=(0,d.Qd)(e.info)?e.info:null;if(!a||"assistant"!==a.role)continue;let g=(0,d.O2)(a,f);if(!g)continue;let m=function(a,b){let c=a;for(let a of b){if(!(0,d.Qd)(c))return null;c=c[a]}return"number"==typeof c&&Number.isFinite(c)?c:null}(a,["time","created"])??0,n=c.get(g);n||(n=h(b,g,m),c.set(g,n));let o=(0,d.O2)(a,"id");for(let a of(o&&i(n,o),Array.isArray(e.parts)?e.parts:[])){let b=k(a);b&&j(n,b.messageId)&&l(n,b)}}return[...c.values()]}}};
1
+ "use strict";exports.id=9390,exports.ids=[9390],exports.modules={2466:(a,b,c)=>{c.d(b,{Gb:()=>e,ek:()=>i,u_:()=>h});var d=c(13287);let e=200;function f(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function g(a,b){if("string"!=typeof a)return null;let c=a.trim();return""===c?null:c.slice(0,b)}function h(a){if(!f(a)||!Array.isArray(a.questions)||0===a.questions.length||a.questions.length>20)return null;let b=[];for(let c of a.questions){let a=function(a){if(!f(a))return null;let b=g(a.question,1e3);if(null===b||!Array.isArray(a.options)||0===a.options.length||a.options.length>20)return null;let c=[];for(let b of a.options){let a=function(a){if(!f(a))return null;let b=g(a.label,e);return null===b?null:{label:b,description:g(a.description,500)}}(b);if(null===a)return null;c.push(a)}return{question:b,header:g(a.header,64),multiSelect:!0===a.multiSelect,choices:c}}(c);if(null===a)return null;b.push(a)}return b}function i(a){if(!f(a)||a.tool_name!==d.k$)return null;let b=h(a.tool_input);return null===b?null:{questions:b,promptId:g(a.prompt_id,256)}}},18529:(a,b,c)=>{c.d(b,{$x:()=>t,Lj:()=>u,Q1:()=>s,QH:()=>v});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(24455),i=c(72626),j=c(43252),k=c(79827),l=c(36925);let m=(0,i.h)("lib/hooks/sources/opencode/launch-settings"),n=(0,l.v)("__opencodeLaunchSettings",()=>new Map);function o(a){return(0,h.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function p(){let a=(0,f.join)((0,e.homedir)(),".commandmate","opencode-launch-settings.json");return(0,g.T)(process.env.CM_OPENCODE_LAUNCH_SETTINGS_FILE,a,"CM_OPENCODE_LAUNCH_SETTINGS_FILE")}function q(){try{let a=JSON.parse((0,d.readFileSync)(p(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a)){let a=(0,k.ZH)(d);(0,k.Mj)(a)&&(b[c]=a)}return b}catch{return{}}}function r(a){let b=p();try{(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
2
+ `,{mode:384})}catch(a){m.warn("opencode-launch-settings-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function s(a){let b=o(a),c=n.get(b);if(c)return c;let d=q()[b];return d?(n.set(b,d),d):{...k.gF}}function t(a,b){let c=o(a),d=(0,k.ZH)(b??{}),e=q();return(0,k.Mj)(d)?(n.set(c,d),e[c]=d,r(e)):(n.delete(c),c in e&&(delete e[c],r(e))),d}function u(a){let b=(0,k.ZH)(a??{}),c=[];b.agent&&c.push(`--agent ${(0,j.ZL)(b.agent)}`);let d=(0,k.sw)(b);return d&&c.push(`--model ${(0,j.ZL)(d)}`),c.length>0?` ${c.join(" ")}`:""}function v(a){let b=(0,k.ZH)(a??{}),c={};return b.agent&&(c.agent=b.agent),b.providerId&&b.modelId&&(c.model={providerID:b.providerId,modelID:b.modelId}),b.variant&&(c.variant=b.variant),Object.keys(c).length>0?c:null}},27128:(a,b,c)=>{function d(a){return a.replace(/\s+/g," ").trim()}function e(a,b){return a.length<=b?a:`${a.slice(0,b-1)}…`}function f(a,b,c){return a.length<=b?a:a.slice(0,b-c.length)+c}function g(a){return a.split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n")}function h(a){let b=[],c=[],d=[];for(let e of a)0!==e.text.length&&("tool"===e.kind?d.push(e.text):"reasoning"===e.kind?c.push(e.text):b.push(e.text));let e=b.join("\n\n"),f=0===c.length?"":[`> **Thinking (${c.length})**`,">",c.map(g).join("\n>\n")].join("\n"),h=0===d.length?"":[`> **Tool calls (${d.length})**`,">",...d.map(g)].join("\n");return{body:[e,f,h].filter(a=>a.length>0).join("\n\n"),prose:e,reasoningLog:f,reasoningBlocks:c.length,toolLog:h,toolCalls:d.length}}c.d(b,{PB:()=>d,Wv:()=>e,mg:()=>f,t3:()=>h})},33198:(a,b,c)=>{c.d(b,{FN:()=>S,lf:()=>K,ym:()=>O,hS:()=>M,f4:()=>N,wb:()=>J,bP:()=>Q,yn:()=>L,H1:()=>P});var d=c(72626),e=c(24455),f=c(3161),g=c(33294),h=c(27939),i=c(62171),j=c(57510),k=c(49791),l=c(86594),m=c(98322),n=c(36925);let o=(0,d.h)("lib/hooks/sources/opencode/history"),p=(0,n.v)("__opencodeTranscripts",()=>new Map);function q(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function r(a){let b=q(a),c=p.get(b);return c||(c=new Map,p.set(b,c)),c}async function s(a,b){try{let{emitChatTurnProgress:d}=await Promise.all([c.e(1356),c.e(1503),c.e(1634),c.e(1191),c.e(8791),c.e(7491),c.e(1719),c.e(4672),c.e(2119),c.e(2445),c.e(3480),c.e(252),c.e(8800),c.e(7905),c.e(9731),c.e(8728),c.e(8918),c.e(5595),c.e(611),c.e(5625),c.e(9130)]).then(c.bind(c,79565));await d({worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId},()=>{let a=(0,m.JZ)(b);return 0===a.body.length?null:{turnKey:(0,l.jT)(a.userMessageId),body:a.body,partial:!1}})}catch(b){o.debug("opencode-transcript-progress-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}function t(a){return"number"==typeof a&&Number.isFinite(a)?a:null}async function u(a,b,c=Date.now()){let d=p.get(q(a)),e=d?.get(b);return!!e&&!!d&&(d.delete(b),v(a,(0,m.JZ)(e),Math.max(e.startedAt,c),"stream"))}async function v(a,b,d,e){let f=a.instanceId??a.cliToolId;try{if(0===b.body.length)return o.info("opencode-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,origin:e}),!1;b.unknownPartTypes.length>0&&o.info("opencode-transcript-unknown-parts",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,partTypes:b.unknownPartTypes});let g=(0,l.jT)(b.userMessageId),[{getDbInstance:h},{createMessage:i,findMessageByRequestId:j},{broadcastMessage:k}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(8791),c.e(7491),c.e(1719),c.e(4672),c.e(2119),c.e(2445),c.e(8728)]).then(c.bind(c,43015))]),m=h();if(j(m,a.worktreeId,g))return o.debug("opencode-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:f,requestId:g,origin:e}),!1;let n=i(m,{worktreeId:a.worktreeId,role:"assistant",content:b.body,messageType:"normal",timestamp:new Date(d>0?d:Date.now()),cliToolId:a.cliToolId,instanceId:f,requestId:g});return k("message",{worktreeId:a.worktreeId,message:n}),o.info("opencode-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,requestId:g,origin:e,bodyLength:b.body.length,textParts:b.textParts,toolParts:b.toolParts}),!0}catch(c){return o.error("opencode-transcript-write-failed",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,origin:e,error:c instanceof Error?c.message:String(c)}),!1}}async function w(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=await (0,k.EI)(b,c);if(null===e)return o.info("opencode-transcript-backfill-unavailable",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c}),0;let f=(0,m.ed)(e,c),g=[...f].sort((a,b)=>b.startedAt-a.startedAt),h=g.slice(0,50);g.length>h.length&&o.warn("opencode-transcript-backfill-truncated",{worktreeId:a.worktreeId,instanceId:d,sessionId:c,examined:h.length,skipped:g.length-h.length,limit:50});let i=function(a){let b=new Map;if(!Array.isArray(a))return b;for(let c of a){if(!(0,j.Qd)(c))continue;let a=(0,j.Qd)(c.info)?c.info:null;if(!a||"assistant"!==a.role)continue;let d=(0,j.O2)(a,m.Pv);if(!d)continue;let e=(0,j.Qd)(a.time)?a.time:null,f=t(e?.completed)??t(e?.created)??null;null!==f&&f>(b.get(d)??0)&&b.set(d,f)}return b}(e),l=0;for(let b of[...h].reverse())await v(a,(0,m.JZ)(b),Math.max(b.startedAt,i.get(b.userMessageId)??0),"backfill")&&(l+=1);return o.info("opencode-transcript-backfill-done",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c,turns:f.length,written:l}),l}catch(e){return o.error("opencode-transcript-backfill-failed",{worktreeId:a.worktreeId,instanceId:d,port:b,sessionId:c,error:e instanceof Error?e.message:String(e)}),0}}var x=c(75356),y=c(98211),z=c(90488),A=c(84574);function B(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["sessionID"])}function C(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}let D=(0,d.h)("lib/hooks/sources/opencode/subscription"),E=[1e3,2e3,4e3,8e3,15e3,3e4],F=(0,n.v)("__opencodeSubscriptions",()=>new Map),G=(0,n.v)("__opencodeDroppedLiveness",()=>new Map),H=(0,n.v)("__opencodeProbedActivity",()=>new Map);function I(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function J(a){return F.has(I(a))}function K(a){let b=I(a);return F.get(b)?.liveness??G.get(b)??{state:"unknown"}}function L(a,b,c){H.set(I(a),{activity:b,at:c})}function M(a){return H.get(I(a))??null}function N(a){return"live"===K(a).state}function O(a){return F.get(I(a))?.gate.primarySession()??null}function P(a,b,c){let d=F.get(I(a));if(!d)return{seen:Promise.resolve(!1),cancel:()=>{}};let e=()=>{},f=new Promise(a=>{e=a}),g=d.idleWaiters.get(b)??new Set;d.idleWaiters.set(b,g);let h=null,i=a=>{g.delete(i)&&(0===g.size&&d.idleWaiters.delete(b),null!==h&&clearTimeout(h),e(a))};return g.add(i),h=setTimeout(()=>i(!1),c),h.unref?.(),{seen:f,cancel:()=>i(!1)}}async function Q(a,b,c,d={}){let e=I(a),f=F.get(e);if(f)return R(f);G.delete(e),H.delete(e);let g=d.port??(0,A.hC)(a);if(null===g)return D.info("opencode-subscription-skipped-no-port",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),{close:async()=>{},liveness:{state:"unknown"}};let h={key:e,target:a,port:g,onEvent:b,normalize:c,gate:function(a=64,b=512,c=64){let d=new Map,e=new Set,f=new Set,g=null,h=(b,c)=>{d.delete(b),d.set(b,c),C(d,a)},i=()=>null!==g&&"busy"===d.get(g),k=a=>{var b;h(a,"busy"),b=a,!f.has(b)&&g!==b&&(i()||(g=b))};return{observe(a,l){let m=function(a){let b=(0,j.Qd)(a.properties)?a.properties:{},c=(0,j.Qd)(b.info)?b.info:null;return null!==c&&(0,j.NZ)(c,["parentID"])?(0,j.NZ)(c,["id"])??(0,j.NZ)(b,["sessionID"]):null}(l);if(null!==m&&(f.add(m),C(f,c),g===m&&(g=null)),"message.updated"===a){let{role:a,id:c}=function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return{role:(0,j.NZ)(b,["info","role"]),id:(0,j.NZ)(b,["info","id"])}}(l);if("user"!==a||null===c)return{kind:"ignored"};let d=B(l)??"";return e.has(c)?{kind:"suppressed",sessionId:d,reason:"already-announced"}:(e.add(c),C(e,b),{kind:"announced",sessionId:d,messageId:c})}if("session.status"===a){if("busy"!==function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["status","type"])}(l))return{kind:"ignored"};let a=B(l);return null===a?{kind:"ignored"}:(k(a),{kind:"armed",sessionId:a})}if("session.error"===a){let a=B(l);return null===a?{kind:"ignored"}:{kind:"failed",sessionId:a,errorName:function(a){let b=(0,j.Qd)(a.properties)?a.properties:{};return(0,j.NZ)(b,["error","name"])}(l)}}if("session.idle"!==a)return{kind:"ignored"};let n=B(l);if(null===n)return{kind:"ignored"};if(f.has(n)||null!==g&&n!==g&&i())return h(n,"idle"),{kind:"suppressed",sessionId:n,reason:"foreign-session"};let o=d.get(n);return void 0===o?{kind:"suppressed",sessionId:n,reason:"never-armed"}:"idle"===o?{kind:"suppressed",sessionId:n,reason:"already-completed"}:(h(n,"idle"),{kind:"completed",sessionId:n})},isArmed:a=>"busy"===d.get(a),arm(a){k(a)},armedSessions:()=>[...d.entries()].filter(([,a])=>"busy"===a).map(([a])=>a),primarySession:()=>g,reset(){d.clear(),g=null}}}(),resync:d.resync??"none",seenDecisions:new Set,idleWaiters:new Map,announcedUpdates:new Set,streamController:new AbortController,lifetimeController:new AbortController,serverVersion:null,liveness:{state:"unknown"},closed:!1,watchdog:null};return F.set(e,h),D.info("opencode-subscription-opened",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:g}),V(h),R(h)}function R(a){return{close:async()=>{await S(a.target)},get liveness(){return a.liveness}}}async function S(a){let b=I(a);G.delete(b),H.delete(b);let c=F.get(b);if(c){for(let a of(c.closed=!0,T(c),[...c.idleWaiters.values()]))for(let b of[...a])b(!1);c.idleWaiters.clear(),c.streamController.abort(),c.lifetimeController.abort(),F.delete(b),(0,f.cI)(a),p.delete(q(a)),(0,i.WC)(a),D.info("opencode-subscription-closed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c.port})}}function T(a){null!==a.watchdog&&(clearTimeout(a.watchdog),a.watchdog=null)}function U(a){T(a);let b=setTimeout(()=>{a.closed||(D.warn("opencode-subscription-heartbeat-lost",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,afterMs:3e4}),a.streamController.abort())},3e4);b.unref?.(),a.watchdog=b}async function V(a){let b=0;for(;!a.closed;){a.streamController=new AbortController;let c=a.gate.armedSessions();a.gate.reset();let d="stream-ended";try{let e=await W(a);if(a.closed)break;if("changed"===e)return;if("unreachable"===e)d="health-unreachable";else{let d=await (0,k.mi)(a.port,a.streamController.signal);for await(let e of(a.liveness={state:"live",lastHeartbeatAt:Date.now()},U(a),await X(a),await Y(a,c),await Z(a),b=0,d))b=0,U(a),function(a,b){let c=(0,j.O2)(b,"type");("server.heartbeat"===c||"server.connected"===c)&&(a.liveness={state:"live",lastHeartbeatAt:Date.now()}),$(a,b,Date.now())}(a,e)}}catch(a){d=a instanceof Error?a.message:String(a)}finally{T(a)}if(a.closed)break;a.liveness={state:"lost",since:Date.now(),reason:d},D.warn("opencode-subscription-disconnected",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,reason:d,attempt:b}),await function(a,b){return new Promise(c=>{if(b.aborted)return void c();let d=()=>{clearTimeout(e),c()};b.addEventListener("abort",d,{once:!0});let e=setTimeout(()=>{b.removeEventListener("abort",d),c()},a);e.unref?.()})}(function(a){let b=Math.min(a,E.length-1);return E[b]}(b),a.lifetimeController.signal),b+=1}}async function W(a){var b,c;let d=await (0,k.sc)(a.port);if("healthy"!==d.kind)return D.info("opencode-subscription-health-unavailable",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,outcome:d.kind,status:"rejected"===d.kind?d.status:void 0}),"unreachable";let e=d.health.version;return null===a.serverVersion||null===e?(a.serverVersion??=e,"same"):e===a.serverVersion?"same":(b=a,c=e,D.warn("opencode-subscription-port-identity-changed",{worktreeId:b.target.worktreeId,instanceId:b.target.instanceId??b.target.cliToolId,port:b.port,reason:"port_identity_changed",expectedVersion:b.serverVersion,observedVersion:c}),b.closed=!0,T(b),b.streamController.abort(),b.lifetimeController.abort(),b.liveness={state:"lost",since:Date.now(),reason:"port_identity_changed"},F.delete(b.key),G.set(b.key,b.liveness),"changed")}async function X(a){let b=Date.now(),[c,d]=await Promise.all([(0,k.Li)(a.port),(0,k.er)(a.port)]),e=(c,d)=>{let e=c.slice(0,50);for(let f of(c.length>e.length&&D.warn("opencode-resync-truncated",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,type:d,examined:e.length,skipped:c.length-e.length,limit:50}),e)){let c=(0,j.O2)(f,"id");!c||a.seenDecisions.has(c)||$(a,{id:`resync_${c}`,type:d,properties:f},b)}};e(c,"permission.asked"),e(d,"question.asked")}async function Y(a,b){if("session-status-poll"!==a.resync)return;let c=await (0,k.mY)(a.port);if(null===c)return void D.info("opencode-resync-status-unavailable",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port});let d=[];for(let[b,e]of Object.entries(c))"busy"===e&&(a.gate.arm(b),d.push(b));let e=[];for(let d of b)"idle"===c[d]&&(a.gate.arm(d),e.push(d),$(a,{id:`resync_idle_${d}`,type:"session.idle",properties:{sessionID:d}},Date.now()));(d.length>0||e.length>0)&&D.info("opencode-turn-state-recovered",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,rearmed:d,synthesized:e,primarySession:a.gate.primarySession()})}async function Z(a){try{let b=(0,h.KA)(a.target)?.sessionId??null,c=a.gate.primarySession()??b;if(!c)return;await w(a.target,a.port,c)}catch(b){D.warn("opencode-history-recovery-failed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,port:a.port,error:b instanceof Error?b.message:String(b)})}}function $(a,b,c){var d,e;let h=(0,j.O2)(b,"type");if("message.part.updated"===h){let a=(0,x.Zu)(b),c=(0,x.Dp)(b);a&&c&&(0,y.XL)(a,c)}if("session.updated"===h){let d=(0,f.Tv)(b,c);d&&(0,f.G1)(a.target,d)}if(("session.updated"===h||"message.updated"===h)&&(0,g.recordAgentReportedEffort)(a.target.worktreeId,a.target.cliToolId,a.target.instanceId,(0,x.Jd)(b)),("message.updated"===h||"message.part.updated"===h)&&function(a,b,c){try{let d=(0,j.O2)(b,"type"),e=(0,j.Qd)(b.properties)?b.properties:{},f=(0,j.O2)(e,"sessionID");if(!f)return;if("message.updated"===d){let b=(0,j.Qd)(e.info)?e.info:null;if(!b||"assistant"!==b.role)return;let d=(0,j.O2)(b,"parentID");if(!d)return;let g=r(a),h=g.get(f),i=h?.userMessageId===d?h:(0,m.lp)(f,d,c);if(i!==h)for(h&&o.info("opencode-transcript-turn-superseded",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,abandoned:h.userMessageId}),g.set(f,i);g.size>16;){let b=g.keys().next();if(b.done)break;g.delete(b.value),o.info("opencode-transcript-turn-evicted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:b.value,reason:"max-open-turns"})}let k=(0,j.O2)(b,"id");k&&(0,m.ZG)(i,k);return}if("message.part.updated"!==d)return;let g=(0,m.TB)(e.part);if(!g)return;let h=r(a).get(f);if(!h||!(0,m.QT)(h,g.messageId))return void o.debug("opencode-transcript-part-unattached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,partType:g.type,reason:h?"foreign-message":"no-open-turn"});(0,m.yG)(h,g)||o.warn("opencode-transcript-turn-overflow",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:f,partType:g.type}),s(a,h)}catch(b){o.error("opencode-transcript-record-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}(a.target,b,c),("session.diff"===h||"session.updated"===h||"message.updated"===h)&&(0,i.hf)(a.target,b,c),"installation.update-available"===h&&function(a,b,c){let d=(0,j.Qd)(b.properties)?b.properties:{},e=(0,j.O2)(d,"version");if(e){if(a.announcedUpdates.has(e))return D.info("opencode-update-available-repeat-dropped",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,version:e});a.announcedUpdates.add(e),D.info("opencode-update-available",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,version:e}),(0,z.BF)(a.target,a.target.instanceId??a.target.cliToolId,e,c)}}(a,b,c),"session.idle"===h){let c=(0,j.O2)((0,j.Qd)(b.properties)?b.properties:{},"sessionID");if(c){let b=a.idleWaiters.get(c);if(b)for(let a of[...b])a(!0);u(a.target,c)}}let k=a.gate.observe(h,b);"failed"===k.kind&&D.warn("opencode-session-error",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:k.sessionId,errorName:k.errorName});let l=null;try{l=a.normalize({payload:b,receivedAt:c})}catch(a){D.error("opencode-normalize-threw",{type:h,error:a instanceof Error?a.message:String(a)});return}if(!l)return;let n=(d=l.event,e=k,"stop"===d&&"completed"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-turn-end":"user_prompt_submit"===d&&"announced"!==e.kind?"suppressed"===e.kind?e.reason:"not-a-new-prompt":null);if(null!==n)return void D.info("opencode-repeat-suppressed",{worktreeId:a.target.worktreeId,instanceId:a.target.instanceId??a.target.cliToolId,sessionId:l.conversationId,event:l.event,reason:n});!function(a,b){let c=(0,j.O2)(b,"type");if("permission.asked"!==c&&"question.asked"!==c)return;let d=(0,j.Qd)(b.properties)?b.properties:{},e=(0,j.O2)(d,"id");if(e)for(a.seenDecisions.add(e);a.seenDecisions.size>256;){let b=a.seenDecisions.values().next();if(b.done)break;a.seenDecisions.delete(b.value)}}(a,b);try{a.onEvent(l)}catch(a){D.error("opencode-event-handler-failed",{type:h,error:a instanceof Error?a.message:String(a)})}}},62171:(a,b,c)=>{c.d(b,{HL:()=>r,WC:()=>s,hf:()=>q,ki:()=>v,pw:()=>w,rn:()=>t,t2:()=>u});var d=c(72626),e=c(24455),f=c(85322),g=c(84574),h=c(49791),i=c(36925);let j=(0,d.h)("lib/hooks/sources/opencode/diff"),k=(0,i.v)("__opencodeSessionDiff",()=>new Map),l=(0,i.v)("__opencodeSessionDiffRefreshes",()=>new Set);function m(a){return(0,e.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function n(a){return{sessionId:null,turnMessageId:null,files:[],filesAt:null,revertedFiles:[],revertedMessageId:null,at:a}}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a,b){let c=a[b];return"string"!=typeof c||0===c.length?null:c.slice(0,128)}function q(a,b,c){let d=m(a),e=k.get(d)??n(c),f=function(a){if("message.updated"!==a.type)return null;let b=o(a.properties)?a.properties:null,c=b&&o(b.info)?b.info:null;if(!c||"user"!==c.role)return null;let d=p(c,"id");return d?{sessionId:p(c,"sessionID"),messageId:d}:null}(b);if(f){if(f.messageId===e.turnMessageId)return;k.set(d,{...e,sessionId:f.sessionId??e.sessionId,turnMessageId:f.messageId,files:[],filesAt:null,at:c});return}let g=function(a){let b=a.type,c=o(a.properties)?a.properties:null;if(!c)return null;if("session.diff"===b)return{kind:"files",sessionId:p(c,"sessionID"),files:(0,h.M)(c.diff)};if("session.updated"===b){let a=o(c.info)?c.info:null;if(!a||"string"==typeof a.parentID&&a.parentID.length>0)return null;let b=o(a.revert)?a.revert:null;return{kind:"held",sessionId:p(a,"id"),messageId:b?p(b,"messageID"):null}}return null}(b);if(g){if("files"===g.kind)return void k.set(d,{...e,sessionId:g.sessionId??e.sessionId,revertedFiles:g.files,at:c});k.set(d,{...e,sessionId:g.sessionId??e.sessionId,revertedMessageId:g.messageId,revertedFiles:null===g.messageId?[]:e.revertedFiles,at:c})}}function r(a,b,c){return b!==f.k?null:k.get((0,e.v7)(a,b,c))??null}function s(a){let b=m(a);k.delete(b),l.delete(b)}function t(a){if(a.cliToolId!==f.k)return null;let b=m(a),c=k.get(b);if(!c)return null;if(null!==c.filesAt||null===c.sessionId||null===c.turnMessageId||l.has(b))return c;let d=(0,g.hC)(a);return null===d||(l.add(b),u(a,d,c.sessionId,c.turnMessageId).finally(()=>{l.delete(b)})),c}async function u(a,b,c,d){let e=await (0,h.iv)(b,c,d);if(null===e)return j.debug("opencode-turn-diff-unavailable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,sessionId:c}),null;let f=m(a),g=k.get(f);return g&&g.turnMessageId===d&&k.set(f,{...g,files:e,filesAt:Date.now()}),e}function v(a,b,c){let d=m(a),e=Date.now(),f=k.get(d)??n(e);k.set(d,{...f,revertedMessageId:b,revertedFiles:c,at:e})}function w(a,b){let c=r(a,f.k,b);if(!c)return null;let d=new Set;for(let a of[...c.files,...c.revertedFiles])null!==a.file&&d.add(a.file);let e=[...c.files,...c.revertedFiles].filter(a=>null===a.file).length;return d.size+e}},75356:(a,b,c)=>{c.d(b,{C8:()=>h,Dp:()=>o,Jd:()=>l,Mn:()=>q,Tm:()=>g,Zu:()=>p,aF:()=>f,lu:()=>t,oG:()=>r,pV:()=>k,vE:()=>i});var d=c(62887),e=c(57510);let f="permission_prompt",g="question_prompt",h=d.KC,i="error";function j(a){return(0,e.Qd)(a.properties)?a.properties:{}}function k(a){let b=j(a).info;return(0,e.Qd)(b)?(0,e.NZ)(b,["model","modelID"])??(0,e.NZ)(b,["model","id"]):null}function l(a){let b=j(a).info;return(0,e.Qd)(b)?(0,e.NZ)(b,["model","variant"])??(0,e.NZ)(b,["variant"]):null}function m(a){return(0,e.NZ)(j(a),["part","state","status"])}function n(a){return"tool"===(0,e.NZ)(j(a),["part","type"])}function o(a){return(0,e.NZ)(j(a),["part","tool"])}function p(a){return(0,e.NZ)(j(a),["part","callID"])}function q(a){return(0,e.NZ)(j(a),["requestID"])}function r(a){let b=j(a);switch((0,e.NZ)(a,["type"])){case"permission.asked":case"question.asked":return(0,e.hY)((0,e.NZ)(b,["id"]));case"permission.replied":return(0,e.hY)(q(a));case"message.updated":return(0,e.hY)((0,e.NZ)(b,["info","id"]));case"message.part.updated":return(0,e.hY)(p(a));default:return null}}let s=["completed","error"],t=[(0,e.KR)("session.idle","stop"),(0,e.KR)("session.created","session_start"),(0,e.KR)("session.deleted","session_end"),(a,b)=>"message.updated"===a&&"user"===(0,e.NZ)(j(b),["info","role"])?{event:"user_prompt_submit"}:null,(a,b)=>"message.part.updated"===a&&n(b)&&"running"===m(b)?{event:"pre_tool_use",detail:(0,e.Wv)(o(b)),toolCallId:p(b)}:null,(a,b)=>"message.part.updated"===a&&n(b)&&s.includes(m(b)??"")?{event:"post_tool_use",detail:(0,e.Wv)(o(b)),toolCallId:p(b)}:null,(0,e.KR)("permission.asked","notification",f),(0,e.KR)("question.asked","notification",g),(0,e.KR)("session.error","notification",i),(0,e.KR)("permission.replied","notification",h)].map(function(a){return(b,c)=>{let d=a(b,c);return d?{...d,conversationId:d.conversationId??(0,e.NZ)(j(c),["sessionID"])}:null}})},86594:(a,b,c)=>{function d(a){return`oc-turn:${a}`}function e(a){return`claude-turn:${a}`}function f(a){return`claude-prompt:${a}`}c.d(b,{Ac:()=>j,H_:()=>f,O1:()=>k,ST:()=>g,TW:()=>n,Wr:()=>h,ZS:()=>i,jN:()=>l,jT:()=>d,qe:()=>e,sT:()=>m});let g="partial:";function h(a,b){return`${g}${a}:${b}`}function i(a){return`codex-turn:${a}`}function j(a){return`codex-prompt:${a}`}function k(a,b){return`antigravity-turn:${a}#${b}`}function l(a,b){return`antigravity-prompt:${a}#${b}`}function m(a){return`command-code-turn:${a}`}function n(a){return`command-code-prompt:${a}`}},90488:(a,b,c)=>{c.d(b,{BF:()=>j,Vo:()=>h,dJ:()=>i});let d=(0,c(72626).h)("lib/hooks/sources/opencode/push");async function e(a){try{let[{getDbInstance:b},{getWorktreeById:d}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]);return d(b(),a)?.name??a}catch{return a}}async function f(){return Promise.all([c.e(1356),c.e(1191)]).then(c.bind(c,61191))}async function g(a,b){return{worktreeId:a.worktreeId,worktreeName:await e(a.worktreeId),instanceId:b}}async function h(a,b,c,e){try{let{notifyPushSubscribers:h,buildExcerpt:i}=await f(),j=await g(a,b);await h({...j,kind:"prompt",agentName:b,waitingKind:"prompt",waitingSince:e,excerpt:i(c??void 0,80)},e),d.info("opencode-question-push-sent",{worktreeId:a.worktreeId,instanceId:b,hasQuestion:null!==c})}catch(c){d.warn("opencode-question-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}async function i(a,b,c,e,h,i){if("MessageAbortedError"===c)return void d.info("opencode-error-push-skipped-interrupt",{worktreeId:a.worktreeId,instanceId:b,errorName:c});try{let{notifyPushSubscribers:j,buildExcerpt:k}=await f(),l=await g(a,b);await j({...l,kind:"failure",agentName:b,excerpt:k(e??void 0,80),failure:{reason:"agent-session-error",signature:`opencode:session-error:${h??"unknown"}:${c??"unknown"}`}},i),d.info("opencode-error-push-sent",{worktreeId:a.worktreeId,instanceId:b,errorName:c,sessionId:h})}catch(c){d.warn("opencode-error-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}async function j(a,b,c,e){try{let{notifyPushSubscribers:h}=await f(),i=await g(a,b);await h({...i,kind:"completion",agentName:b,excerpt:c,updateAvailable:{agent:b,version:c}},e),d.info("opencode-update-push-sent",{worktreeId:a.worktreeId,instanceId:b,version:c})}catch(c){d.warn("opencode-update-push-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)})}}},98211:(a,b,c)=>{c.d(b,{AB:()=>m,FZ:()=>i,LF:()=>l,Lu:()=>k,XL:()=>g,v1:()=>j});var d=c(2466),e=c(57510);let f=(0,c(36925).v)("__opencodeToolCallNames",()=>new Map);function g(a,b){for(f.delete(a),f.set(a,b);f.size>256;){let a=f.keys().next();if(a.done)break;f.delete(a.value)}}function h(a){return"string"==typeof a.type&&(0,e.Qd)(a.properties)?a.properties:a}function i(a){var b;let c=h(a),d=(0,e.O2)(c,"id"),g=(0,e.O2)(c,"sessionID");if(!d||!g||Array.isArray(c.questions))return null;let i=(0,e.O2)(c,"permission"),j=(0,e.Qd)(c.metadata)?c.metadata:{};return{toolName:((b=(0,e.NZ)(c,["tool","callID"]))?f.get(b)??null:null)??i??"permission",toolInput:{permission:i,patterns:Array.isArray(c.patterns)?c.patterns:[],...j},promptId:d,sessionId:g,permissionMode:null,permissionSuggestions:Array.isArray(c.always)?c.always:null}}function j(a){let b=h(a),c=(0,e.O2)(b,"id");if(!c)return null;let f=(0,d.u_)({questions:b.questions});return null===f?null:{questions:f,promptId:c}}function k(a,b){let c=i(a);return c&&c.promptId?{kind:"permission",id:c.promptId,conversationId:c.sessionId,subject:{kind:"permission",toolName:c.toolName,toolInput:c.toolInput},raw:a,askedAt:b}:null}function l(a,b){let c=k(a,b);if(!c||"permission"!==c.subject.kind)return null;let d=c.subject.toolInput.patterns;return{toolName:c.subject.toolName,patterns:Array.isArray(d)?d:[]}}function m(a,b){let c=h(a),d=(0,e.O2)(c,"id"),f=j(a);return d&&f?{kind:"question",id:d,conversationId:(0,e.O2)(c,"sessionID"),subject:{kind:"question",spec:f},raw:a,askedAt:b}:null}},98322:(a,b,c)=>{c.d(b,{JZ:()=>m,Pv:()=>f,QT:()=>i,TB:()=>j,ZG:()=>h,ed:()=>n,lp:()=>g,yG:()=>k});var d=c(57510),e=c(27128);let f="parentID";function g(a,b,c){return{sessionId:a,userMessageId:b,parts:new Map,assistantMessageIds:new Set,startedAt:c,overflowed:!1}}function h(a,b){a.assistantMessageIds.add(b)}function i(a,b){return a.assistantMessageIds.has(b)}function j(a){if(!(0,d.Qd)(a))return null;let b=(0,d.O2)(a,"id"),c=(0,d.O2)(a,"messageID"),e=(0,d.O2)(a,"type");if(!b||!c||!e)return null;let f=(0,d.Qd)(a.state)?a.state:null;return{id:b,messageId:c,type:e,text:"string"==typeof a.text?a.text:null,tool:(0,d.O2)(a,"tool"),status:f?(0,d.O2)(f,"status"):null,title:f?(0,d.O2)(f,"title"):null,error:f?(0,d.O2)(f,"error")??(0,d.NZ)(f,["error","message"]):null}}function k(a,b){return!a.parts.has(b.id)&&a.parts.size>=512?(a.overflowed=!0,!1):(a.parts.set(b.id,b),!0)}let l=new Set(["step-start","step-finish","snapshot","patch"]);function m(a){let b=[],c=new Set,d=0,f=0;for(let g of a.parts.values()){if("text"===g.type){let a=g.text?.trim()??"";if(0===a.length)continue;b.push({kind:"prose",text:a}),d+=1;continue}if("reasoning"===g.type){let a=g.text?.trim()??"";if(0===a.length)continue;b.push({kind:"reasoning",text:a});continue}if("tool"===g.type){if("pending"===g.status)continue;b.push({kind:"tool",text:function(a){let b=a.tool??"tool",c=a.title??null,d="error"===a.status,f=`- \`${b}\`${c?` — ${(0,e.PB)(c)}`:""}`;return d?a.error?`${f} _(error: ${(0,e.PB)(a.error)})_`:`${f} _(error)_`:f}(g)}),f+=1;continue}l.has(g.type)||c.add(g.type)}let g=(0,e.t3)(b),h=g.body;return h=(0,e.mg)(h,2e5,"\n\n_(truncated)_"),{sessionId:a.sessionId,userMessageId:a.userMessageId,body:h,textParts:d,toolParts:f,reasoningParts:g.reasoningBlocks,unknownPartTypes:[...c]}}function n(a,b){if(!Array.isArray(a))return[];let c=new Map;for(let e of a){if(!(0,d.Qd)(e))continue;let a=(0,d.Qd)(e.info)?e.info:null;if(!a||"assistant"!==a.role)continue;let l=(0,d.O2)(a,f);if(!l)continue;let m=function(a,b){let c=a;for(let a of b){if(!(0,d.Qd)(c))return null;c=c[a]}return"number"==typeof c&&Number.isFinite(c)?c:null}(a,["time","created"])??0,n=c.get(l);n||(n=g(b,l,m),c.set(l,n));let o=(0,d.O2)(a,"id");for(let a of(o&&h(n,o),Array.isArray(e.parts)?e.parts:[])){let b=j(a);b&&i(n,b.messageId)&&k(n,b)}}return[...c.values()]}}};
@@ -1 +1 @@
1
- "use strict";exports.id=9584,exports.ids=[9584],exports.modules={4548:(a,b,c)=>{c.d(b,{TW:()=>i,uu:()=>o}),c(55511);var d=c(29021);c(33873),c(7956);var e=c(75359),f=c(93356),g=c(55927),h=c(44440);d.constants.O_NOFOLLOW;let i=[".bash",".bat",".cjs",".cmd",".fish",".js",".lua",".mjs",".php",".pl",".ps1",".py",".rb",".sh",".ts",".zsh"],j=[".md",".markdown",".rst",".txt"];function k(a){let b=a.slice(a.lastIndexOf("/")+1),c=b.lastIndexOf(".");return c<=0?"":b.slice(c).toLowerCase()}function l(a,b){return!!i.includes(k(a))||b.length>=2&&35===b[0]&&33===b[1]}function m(a,b){throw new g.Om(a,b)}function n(a,b){return a.files.find(a=>a.path===b)}function o(a,b){return function(a,b){let c;for(let b of e.wD)n(a,b)||m(g.xC.LAYOUT_INVALID,{reason:"missing-required-entry",entry:b});let d=function(a){let b,c=n(a,e.KH);for(let b of(c||m(g.xC.MANIFEST_MISSING,{reason:"absent"}),a.files))b.path!==e.KH&&b.path.endsWith(`/${e.KH}`)&&m(g.xC.LAYOUT_INVALID,{reason:"nested-manifest",entry:(0,g.FC)(b.path)});try{b=(0,h.an)(c.bytes)}catch(a){throw(0,h.pg)(a)&&m(g.xC.MANIFEST_INVALID,{reason:a.code}),a}let d=(0,e.bX)(b);if(!d.ok){let a=d.errors[0];m(g.xC.MANIFEST_INVALID,{reason:a.code,field:a.path})}return d.value}(a);d.id!==b.skillId&&m(g.xC.MANIFEST_MISMATCH,{reason:"id"}),d.version!==b.version&&m(g.xC.MANIFEST_MISMATCH,{reason:"version"});let i=n(a,e.Wr);i||m(g.xC.SKILL_MD_INVALID,{reason:"absent"});try{c=(0,h.pM)(Buffer.from(i.bytes).toString("utf8"))}catch(a){throw(0,h.pg)(a)&&m(g.xC.SKILL_MD_INVALID,{reason:a.code}),a}(null===c||"object"!=typeof c||Array.isArray(c))&&m(g.xC.SKILL_MD_INVALID,{reason:"frontmatter-missing"});let o=c.name;"string"!=typeof o&&m(g.xC.SKILL_MD_INVALID,{reason:"frontmatter-name-missing"});let p=(0,e.EU)({directoryName:d.id,skillMdName:o,manifestId:d.id,manifestName:d.name});p.ok||m(g.xC.SKILL_MD_INVALID,{reason:p.errors[0].code});let q=(0,e.Yz)(d,a.files.map(a=>a.path));if(!q.ok){let a=q.errors[0];m(g.xC.MANIFEST_MISMATCH,{reason:a.message,entry:(0,g.FC)(String(a.detail?.path??""))})}for(let b of a.files)b.path!==e.KH&&function(a,b){var c,d;let h=b.files.find(b=>b.path===a.path);h||m(g.xC.MANIFEST_MISMATCH,{reason:"undeclared-file",entry:(0,g.FC)(a.path)});let i={entry:(0,g.FC)(a.path)};h.size!==a.size&&m(g.xC.SIZE_MISMATCH,i),(0,f.U2)(h.sha256,a.sha256)||m(g.xC.DIGEST_MISMATCH,i);let n=(c=a.path,d=a.bytes,c===e.Wr?"skill_md":l(c,d)?"script":j.includes(k(c))?"instruction":"asset");l(a.path,a.bytes)&&(!h.script||"script"!==h.kind)&&m(g.xC.UNDECLARED_SCRIPT,i),"script"!==h.kind||h.script||m(g.xC.MANIFEST_MISMATCH,{...i,reason:"kind-script-not-declared"}),"skill_md"===n!=("skill_md"===h.kind)&&m(g.xC.MANIFEST_MISMATCH,{...i,reason:"kind-mismatch"}),a.executable&&!h.executable&&m(g.xC.UNDECLARED_EXECUTABLE,i),!a.executable&&h.executable&&m(g.xC.MANIFEST_MISMATCH,{...i,reason:"executable-not-present"})}(b,d);let r={executable_paths:d.files.filter(a=>a.executable).map(a=>a.path).sort(),script_paths:d.files.filter(a=>a.script).map(a=>a.path).sort(),network_hosts:[...d.requirements.network_hosts],declared_permissions:[...d.declared_permissions]},s=(0,e.MD)(r),t=new Map(a.files.map(a=>[a.path,a.bytes])),u=a.files.map(a=>({path:a.path,sha256:a.sha256,size:a.size,executable:a.executable})).sort((a,b)=>a.path<b.path?-1:+(a.path>b.path));return Object.freeze({skillId:b.skillId,version:b.version,manifest:d,files:Object.freeze(u),directories:Object.freeze([...a.directories].sort()),inspection:Object.freeze(r),declaredRisk:d.declared_risk,computedRisk:s,effectiveRisk:(0,e.qZ)(d.declared_risk,s),readFile(a){let b=t.get(a);return b||m(g.xC.MANIFEST_MISMATCH,{reason:"unknown-file",entry:(0,g.FC)(a)}),new Uint8Array(b)}})}((0,g.qt)(a,b),b)}},55927:(a,b,c)=>{c.d(b,{FC:()=>l,Om:()=>j,qt:()=>q,uI:()=>k,xC:()=>g});var d=c(74075),e=c(75359),f=c(93356);let g={ARCHIVE_FORMAT:"SKILL_PACKAGE_ARCHIVE_FORMAT",ARCHIVE_TRUNCATED:"SKILL_PACKAGE_ARCHIVE_TRUNCATED",ENTRY_TYPE_FORBIDDEN:"SKILL_PACKAGE_ENTRY_TYPE_FORBIDDEN",ENTRY_PATH_UNSAFE:"SKILL_PACKAGE_ENTRY_PATH_UNSAFE",ENTRY_DUPLICATE:"SKILL_PACKAGE_ENTRY_DUPLICATE",ENTRY_COLLISION:"SKILL_PACKAGE_ENTRY_COLLISION",ENTRY_MODE_FORBIDDEN:"SKILL_PACKAGE_ENTRY_MODE_FORBIDDEN",ENTRY_LIMIT_EXCEEDED:"SKILL_PACKAGE_ENTRY_LIMIT_EXCEEDED",SIZE_LIMIT_EXCEEDED:"SKILL_PACKAGE_SIZE_LIMIT_EXCEEDED",COMPRESSION_RATIO_EXCEEDED:"SKILL_PACKAGE_COMPRESSION_RATIO_EXCEEDED",LAYOUT_INVALID:"SKILL_PACKAGE_LAYOUT_INVALID",MANIFEST_MISSING:"SKILL_PACKAGE_MANIFEST_MISSING",MANIFEST_INVALID:"SKILL_PACKAGE_MANIFEST_INVALID",MANIFEST_MISMATCH:"SKILL_PACKAGE_MANIFEST_MISMATCH",UNDECLARED_EXECUTABLE:"SKILL_PACKAGE_UNDECLARED_EXECUTABLE",UNDECLARED_SCRIPT:"SKILL_PACKAGE_UNDECLARED_SCRIPT",DIGEST_MISMATCH:"SKILL_PACKAGE_DIGEST_MISMATCH",SIZE_MISMATCH:"SKILL_PACKAGE_SIZE_MISMATCH",SKILL_MD_INVALID:"SKILL_PACKAGE_SKILL_MD_INVALID",STAGING_IO:"SKILL_PACKAGE_STAGING_IO",ABORTED:"SKILL_PACKAGE_ABORTED"},h={[g.ARCHIVE_FORMAT]:"archive",[g.ARCHIVE_TRUNCATED]:"archive",[g.ENTRY_TYPE_FORBIDDEN]:"path",[g.ENTRY_PATH_UNSAFE]:"path",[g.ENTRY_DUPLICATE]:"path",[g.ENTRY_COLLISION]:"path",[g.ENTRY_MODE_FORBIDDEN]:"path",[g.ENTRY_LIMIT_EXCEEDED]:"limit",[g.SIZE_LIMIT_EXCEEDED]:"limit",[g.COMPRESSION_RATIO_EXCEEDED]:"limit",[g.LAYOUT_INVALID]:"manifest",[g.MANIFEST_MISSING]:"manifest",[g.MANIFEST_INVALID]:"manifest",[g.MANIFEST_MISMATCH]:"manifest",[g.UNDECLARED_EXECUTABLE]:"manifest",[g.UNDECLARED_SCRIPT]:"manifest",[g.DIGEST_MISMATCH]:"integrity",[g.SIZE_MISMATCH]:"integrity",[g.SKILL_MD_INVALID]:"manifest",[g.STAGING_IO]:"staging",[g.ABORTED]:"staging"},i={[g.ARCHIVE_FORMAT]:"Skill package is not a readable tar.gz archive",[g.ARCHIVE_TRUNCATED]:"Skill package archive is truncated",[g.ENTRY_TYPE_FORBIDDEN]:"Skill package contains a forbidden entry type",[g.ENTRY_PATH_UNSAFE]:"Skill package contains an unsafe entry path",[g.ENTRY_DUPLICATE]:"Skill package declares the same entry twice",[g.ENTRY_COLLISION]:"Skill package contains colliding entry paths",[g.ENTRY_MODE_FORBIDDEN]:"Skill package entry carries forbidden mode bits",[g.ENTRY_LIMIT_EXCEEDED]:"Skill package contains too many entries",[g.SIZE_LIMIT_EXCEEDED]:"Skill package exceeds a size limit",[g.COMPRESSION_RATIO_EXCEEDED]:"Skill package decompression ratio exceeds the limit",[g.LAYOUT_INVALID]:"Skill package layout does not match the contract",[g.MANIFEST_MISSING]:"Skill package manifest is missing or misplaced",[g.MANIFEST_INVALID]:"Skill package manifest is not valid",[g.MANIFEST_MISMATCH]:"Skill package manifest does not match the package",[g.UNDECLARED_EXECUTABLE]:"Skill package contains an undeclared executable",[g.UNDECLARED_SCRIPT]:"Skill package contains an undeclared script",[g.DIGEST_MISMATCH]:"Skill package file digest does not match the manifest",[g.SIZE_MISMATCH]:"Skill package file size does not match the manifest",[g.SKILL_MD_INVALID]:"Skill package SKILL.md is missing or inconsistent",[g.STAGING_IO]:"Skill package staging could not be prepared",[g.ABORTED]:"Skill package processing was aborted"};class j extends Error{constructor(a,b){super(i[a]),this.name="SkillPackageError",this.code=a,this.category=h[a],b&&(this.detail=b)}}function k(a){return a instanceof j}function l(a){let b=a.replace(/[^A-Za-z0-9._/-]/g,a=>[...a].map(a=>`%${a.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`).join(""));return b.length>120?`${b.slice(0,120)}…`:b}function m(a,b){throw new j(a,b)}let n=new Set(["0","\0"]);function o(a,b,c){let d=a.subarray(b,b+c),e=d.indexOf(0);-1===e&&(e=d.length);for(let a=e;a<d.length;a++)0!==d[a]&&m(g.ARCHIVE_FORMAT,{field:"padding"});let f=Buffer.from(d.subarray(0,e)),h=f.toString("utf8");return Buffer.from(h,"utf8").equals(f)||m(g.ARCHIVE_FORMAT,{field:"encoding"}),h}function p(a,b,c){(128&a[b])!=0&&m(g.ARCHIVE_FORMAT,{field:"numeric-encoding"});let d="";for(let e=b;e<b+c;e++){let b=a[e];0!==b&&32!==b&&((b<48||b>55)&&m(g.ARCHIVE_FORMAT,{field:"numeric"}),d+=String.fromCharCode(b))}if(""===d)return 0;let e=parseInt(d,8);return Number.isSafeInteger(e)||m(g.ARCHIVE_FORMAT,{field:"numeric-range"}),e}function q(a,b){let c;(a.byteLength<2||31!==a[0]||139!==a[1])&&m(g.ARCHIVE_FORMAT,{field:"gzip-magic"});try{c=(0,d.gunzipSync)(a,{maxOutputLength:0x4000000})}catch(a){"ERR_BUFFER_TOO_LARGE"===a?.code&&m(g.SIZE_LIMIT_EXCEEDED,{limit:0x4000000}),m(g.ARCHIVE_FORMAT,{field:"gzip"})}c.byteLength>1048576&&c.byteLength/a.byteLength>200&&m(g.COMPRESSION_RATIO_EXCEEDED,{limit:200});let h=(function(a){(0===a.byteLength||a.byteLength%512!=0)&&m(g.ARCHIVE_TRUNCATED,{field:"alignment"});let b=[],c=0;for(;c+512<=a.byteLength;){let d=a.subarray(c,c+512);if(function(a){for(let b=0;b<a.length;b++)if(0!==a[b])return!1;return!0}(d)){for(let b=c;b<a.byteLength;b++)0!==a[b]&&m(g.ARCHIVE_FORMAT,{field:"trailer"});return b}!function(a,b){let c=0,d=0;for(let b=0;b<512;b++){let e=b>=148&&b<156?32:a[b];c+=e,d+=e>127?e-256:e}b!==c&&b!==d&&m(g.ARCHIVE_FORMAT,{field:"checksum"})}(d,p(d,148,8)),"ustar"!==o(d,257,6).trim()&&m(g.ARCHIVE_FORMAT,{field:"magic"});let f=o(d,156,1)||"\0",h="5"===f;h||n.has(f)||m(g.ENTRY_TYPE_FORBIDDEN,{typeflag:l(f)}),""!==o(d,157,100)&&m(g.ENTRY_TYPE_FORBIDDEN,{typeflag:"link"});let i=p(d,100,8);(3584&i)!=0&&m(g.ENTRY_MODE_FORBIDDEN,{bits:(3584&i).toString(8)});let j=o(d,345,155),k=o(d,0,100),q=""===j?k:`${j}/${k}`,r=p(d,124,12);h&&0!==r&&m(g.ARCHIVE_FORMAT,{field:"directory-size"}),r>e.em&&m(g.SIZE_LIMIT_EXCEEDED,{limit:e.em});let s=c+512,t=s+r;t>a.byteLength&&m(g.ARCHIVE_TRUNCATED),b.push({name:q,isDirectory:h,mode:i,size:r,bytes:h?new Uint8Array(0):a.subarray(s,t)}),b.length>1e3&&m(g.ENTRY_LIMIT_EXCEEDED,{limit:1e3}),c=s+512*Math.ceil(r/512)}return m(g.ARCHIVE_TRUNCATED,{field:"trailer"})})(c).map(a=>({entry:a,...function(a){let b=a;b.startsWith("./")&&(b=b.slice(2));let c=b.endsWith("/");return c&&(b=b.slice(0,-1)),""===b&&m(g.ENTRY_PATH_UNSAFE,{reason:"empty"}),{path:b,trailingSlash:c}}(a.name)})),i=function(a,b){let c=[b.skillId,`${b.skillId}-${b.version}`],d=new Set(a.map(a=>a.split("/")[0]));if(1!==d.size)return null;let e=[...d][0];return a.some(a=>a.startsWith(`${e}/`))?(c.includes(e)||m(g.LAYOUT_INVALID,{reason:"root-directory",entry:l(e)}),e):null}(h.map(a=>a.path),b),j=[],k=[],q=new Map,r=new Map,s=0;for(let a of h){let b=a.path;if(null!==i){if(b===i)continue;b=b.slice(i.length+1)}let c=a.entry.isDirectory||a.trailingSlash,d=(0,e.r5)(b,"/entry");d.ok||m(g.ENTRY_PATH_UNSAFE,{entry:l(b),reason:d.errors[0].message}),q.has(b)&&m(g.ENTRY_DUPLICATE,{entry:l(b)});let h=b.split("/").map(a=>(0,e.vy)(a)).join("/");if(void 0!==r.get(h)&&m(g.ENTRY_COLLISION,{entry:l(b)}),q.set(b,c),r.set(h,b),c){k.push(b);continue}(s+=a.entry.size)>0x4000000&&m(g.SIZE_LIMIT_EXCEEDED,{limit:0x4000000});let n=new Uint8Array(a.entry.bytes);j.push({path:b,size:a.entry.size,sha256:(0,f.Q_)(n),executable:(73&a.entry.mode)!=0,bytes:n})}for(let a of(j.filter(a=>a.path!==e.KH).length>e.xP&&m(g.ENTRY_LIMIT_EXCEEDED,{limit:e.xP}),k))j.some(b=>b.path===a)&&m(g.ENTRY_DUPLICATE,{entry:l(a)});for(let a of j){let b=a.path.split("/").slice(0,-1),c="";for(let d of b)c=""===c?d:`${c}/${d}`,j.some(a=>a.path===c)&&m(g.ENTRY_PATH_UNSAFE,{entry:l(a.path),reason:"parent-is-file"})}return{rootName:i,files:j,directories:k,compressedSize:a.byteLength,decompressedSize:c.byteLength}}},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(67469),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},82484:(a,b,c)=>{c.d(b,{E4:()=>y,QY:()=>r,Sw:()=>C,cl:()=>z,jY:()=>t,ne:()=>w});var d=c(55511),e=c(33873),f=c.n(e),g=c(96210),h=c(93356),i=c(52710),j=c(33095),k=c(1185),l=c(89936),m=c(4548),n=c(36931);let o={LOCAL_CHANGES:"SKILL_UPDATE_LOCAL_CHANGES",ROOT_MISSING:"SKILL_UPDATE_ROOT_MISSING",RECEIPT_MISSING:"SKILL_UPDATE_RECEIPT_MISSING",RECEIPT_UNREADABLE:"SKILL_UPDATE_RECEIPT_UNREADABLE",RECEIPT_FOREIGN:"SKILL_UPDATE_RECEIPT_FOREIGN",ROOT_RECEIPT_DIVERGED:"SKILL_UPDATE_ROOT_RECEIPT_DIVERGED",TREE_SCAN_TRUNCATED:"SKILL_UPDATE_TREE_SCAN_TRUNCATED",INCOMPATIBLE:"SKILL_UPDATE_INCOMPATIBLE"},p={[o.LOCAL_CHANGES]:"skills.update.blocked.localChanges",[o.ROOT_MISSING]:"skills.update.blocked.rootMissing",[o.RECEIPT_MISSING]:"skills.update.blocked.receiptMissing",[o.RECEIPT_UNREADABLE]:"skills.update.blocked.receiptUnreadable",[o.RECEIPT_FOREIGN]:"skills.update.blocked.receiptForeign",[o.ROOT_RECEIPT_DIVERGED]:"skills.update.blocked.rootReceiptDiverged",[o.TREE_SCAN_TRUNCATED]:"skills.update.blocked.treeScanTruncated",[o.INCOMPATIBLE]:"skills.update.blocked.incompatible"},q={updatable:"skills.update.nextAction.updatable",blocked:"skills.update.nextAction.blocked"};function r(a,b,c){let d;if(!g.X0.test(b)||b.length>g.cj)throw new i.nf(i.ER.TARGET_UNSAFE);try{d=(0,j.yj)(a,c,b)}catch{throw new i.nf(i.ER.TARGET_UNSAFE)}let e=(0,j.bh)(d);if(!e.present)return{state:"not_installed"};let f=e.files.find(a=>a.path===i.zi);if(!f)return{state:"receipt_missing"};let h=(0,i.q$)(f.bytes);return null===h?{state:"receipt_unreadable"}:h.skill_id!==b?{state:"receipt_foreign"}:{state:"ok",receipt:h,receiptDigest:f.sha256}}let s=globalThis.__skillUpdatePlans??(globalThis.__skillUpdatePlans={records:new Map}),t=/^[0-9a-f]{48}$/;function u(a){s.records.delete(a.token),null===a.consumedAt&&(0,l.TO)(a.binding.snapshotId)}function v(a,b){let c=0;for(let d of[...s.records.values()])d.token!==b&&a>=d.expiresAt&&(u(d),c+=1);return c}function w(a={}){return v(a.now??Date.now())}function x(a,b){if(!t.test(a))throw new i.nf(i.ER.NOT_FOUND);let c=s.records.get(a);if(v(b,a),!c)throw new i.nf(i.ER.NOT_FOUND);let e=Buffer.from(a,"utf-8"),f=Buffer.from(c.token,"utf-8");if(e.length!==f.length||!(0,d.timingSafeEqual)(e,f))throw new i.nf(i.ER.NOT_FOUND);if(b>=c.expiresAt)throw u(c),new i.nf(i.ER.EXPIRED);if(null!==c.consumedAt)throw new i.nf(i.ER.CONSUMED);return c}function y(a,b={}){return x(a,b.now??Date.now())}function z(a,b,c,d={}){let e=d.now??Date.now(),f=x(a,e),{binding:g}=f;if(g.actor.type!==b.actor.type||g.actor.id!==b.actor.id||g.worktreeId!==b.worktreeId||g.skillId!==b.skillId||g.toVersion!==b.toVersion)throw new i.nf(i.ER.BINDING_MISMATCH);if(!f.dto.updatable)throw new i.nf(i.ER.NOT_INSTALLABLE);if(f.dto.requiresRiskAcknowledgement&&!b.riskAcknowledged)throw new i.nf(i.ER.RISK_NOT_ACKNOWLEDGED);if(f.dto.riskIncreased&&!b.riskIncreaseAcknowledged)throw new i.nf(i.ER.RISK_NOT_ACKNOWLEDGED,{riskIncreased:!0});if(c.branch!==g.branch||c.headCommit!==g.headCommit||c.currentTreeHash!==g.currentTreeHash||null===c.receiptDigest||!(0,h.U2)(c.receiptDigest,g.currentReceiptDigest))throw new i.nf(i.ER.STALE);return f.consumedAt=e,f}function A(a,b,c=null){return{code:a,path:b,messageKey:p[a],detail:c}}let B={[k.sJ.LOCAL_MODIFICATION]:o.LOCAL_CHANGES,[k.sJ.RECEIPT_ORPHAN]:o.LOCAL_CHANGES,[k.sJ.UNMANAGED_FILE]:o.LOCAL_CHANGES,[k.sJ.NOT_A_REGULAR_FILE]:o.LOCAL_CHANGES,[k.sJ.NOT_INSTALLED]:o.ROOT_MISSING,[k.sJ.RECEIPT_MISSING]:o.RECEIPT_MISSING,[k.sJ.RECEIPT_UNREADABLE]:o.RECEIPT_UNREADABLE,[k.sJ.RECEIPT_FOREIGN]:o.RECEIPT_FOREIGN,[k.sJ.TREE_SCAN_TRUNCATED]:o.TREE_SCAN_TRUNCATED};function C(a){let b;if(!g.X0.test(a.skillId)||a.skillId.length>g.cj)throw new i.nf(i.ER.TARGET_UNSAFE);let c=a.now??Date.now(),{snapshot:e}=a,l=r(a.worktree.path,a.skillId,g.pg);if("not_installed"===l.state)throw new i.nf(i.ER.NOT_FOUND);if("ok"!==l.state||l.receipt.version!==a.fromVersion)throw new i.nf(i.ER.STALE);let p=l.receipt;try{b=(0,i.Pw)(p).map(b=>{let c=f().posix.dirname(b),d=(0,j.yj)(a.worktree.path,c,a.skillId),e=(0,j.bh)(d);return{prefix:c,rel:(0,j.QL)(c,a.skillId),existing:e,assessment:(0,k.II)(d,a.skillId,{existing:e,rootPrefix:c})}})}catch{throw new i.nf(i.ER.TARGET_UNSAFE)}let t=b[0],w=[];for(let a of b){for(let b of a.assessment.blockers){let a=B[b.code];a&&w.push(A(a,b.path,b.code))}a!==t&&null!==a.assessment.receiptDigest&&a.assessment.receiptDigest!==t.assessment.receiptDigest&&w.push(A(o.ROOT_RECEIPT_DIVERGED,`${a.rel}/${i.zi}`))}"compatible"!==a.compatibility.status&&w.push(A(o.INCOMPATIBLE,null));let x=b.map(a=>a.prefix),y=(0,i.$h)({snapshot:e,version:a.version,rootPrefixes:x}),z=(0,i.tJ)(y),C=(0,d.createHash)("sha256").update(z).digest("hex"),D=new Map(p.files.map(a=>[a.path,{sha256:a.sha256,size:a.size,executable:a.executable}])),E=t.existing.files.find(a=>a.path===i.zi);D.set(i.zi,{sha256:l.receiptDigest,size:E?.size??null,executable:!1});let F=new Map(e.files.map(a=>[a.path,{sha256:a.sha256,size:a.size,executable:a.executable,generated:!1}]));F.set(i.zi,{sha256:C,size:z.byteLength,executable:!1,generated:!0});let G=new Map(t.existing.files.map(a=>[a.path,a])),H={remainingBytes:j.mo},I=[],J={added:0,updated:0,removed:0,unchanged:0,localModified:0,localMissing:0,localUnknown:0,irregular:0},K=!1,L=!1;for(let a of[...new Set([...D.keys(),...F.keys()])].sort()){let b,c,d=D.get(a)??null,f=F.get(a)??null,g=G.get(a)??null;b=d&&f?(0,h.U2)(d.sha256,f.sha256)&&d.executable===f.executable?"unchanged":"update":f?"add":"remove",c=null===d?null===g?"match":"unknown":null===g?"missing":(0,h.U2)(g.sha256,d.sha256)&&g.executable===d.executable?"match":"modified";let k=f?.generated??a===i.zi,l=null!==d&&null!==g&&"match"===c?g.bytes:null,m=null===f?null:k?z:e.readFile(a),n=null!==l&&(0,j.VA)(l)||null!==m&&(0,j.VA)(m),o=null!==d&&"match"!==c,p=n||o||"unchanged"===b?{text:null,truncated:!1,additions:0,deletions:0}:(0,j.kt)(l,m,H);I.push({path:`${t.rel}/${a}`,relativePath:a,change:b,generated:k,recordedSha256:d?.sha256??null,candidateSha256:f?.sha256??null,currentSha256:g?.sha256??null,localState:c,size:f?.size??d?.size??null,executable:f?.executable??d?.executable??!1,binary:n,diff:p.text,diffTruncated:p.truncated,additions:p.additions,deletions:p.deletions}),"add"===b?J.added+=1:"update"===b?J.updated+=1:"remove"===b?J.removed+=1:J.unchanged+=1,n&&(K=!0),p.truncated&&(L=!0)}for(let a of b)J.localModified+=a.assessment.stats.modified,J.localMissing+=a.assessment.stats.missing,J.localUnknown+=a.assessment.stats.unknown,J.irregular+=a.assessment.stats.irregular;let M=(0,j.Hg)([...F.entries()].map(([a,b])=>({path:a,sha256:b.sha256,executable:b.executable}))),N=[];"detached"===a.git.headState&&N.push(j.OV.DETACHED_HEAD),"unborn"===a.git.headState&&N.push(j.OV.UNBORN_HEAD),"unknown"===a.git.headState&&N.push(j.OV.HEAD_UNRESOLVED),a.git.dirty&&N.push(j.OV.WORKING_TREE_DIRTY),K&&N.push(j.OV.BINARY_CONTENT),L&&N.push(j.OV.DIFF_TRUNCATED),b.some(a=>a.existing.truncated)&&N.push(j.OV.TREE_SCAN_TRUNCATED);let O=function(a,b,c,d){let e={declared:a.declared_risk,computed:a.computed_risk,effective:a.effective_risk},f={declared:b.declaredRisk,computed:b.computedRisk,effective:b.effectiveRisk},h=new Set(a.declared_permissions),i=new Set(b.inspection.declared_permissions),j={added:[...i].filter(a=>!h.has(a)),removed:[...h].filter(a=>!i.has(a)),unchanged:[...i].filter(a=>h.has(a))},k=new Set(a.files.map(a=>a.path)),l=new Set(b.files.map(a=>a.path)),o=a.files.filter(a=>a.executable).map(a=>a.path),p=b.files.filter(a=>a.executable).map(a=>a.path),q={added:p.filter(a=>!o.includes(a)),removed:o.filter(a=>!p.includes(a))},r={added:b.inspection.script_paths.filter(a=>!k.has(a)),removed:[...k].filter(a=>(function(a){let b=a.slice(a.lastIndexOf("/")+1),c=b.lastIndexOf(".");return!(c<=0)&&m.TW.includes(b.slice(c).toLowerCase())})(a)&&!l.has(a))},s=d.versions.filter(b=>{let d=(0,n.Cg)(b.version,a.version),e=(0,n.Cg)(b.version,c.version);return null!==d&&d>0&&null!==e&&e<=0}).sort((a,b)=>(0,n.Cg)(b.version,a.version)??0).map(a=>({version:a.version,changelog:a.changelog}));return{risk:{from:e,to:f,increased:g.$Y[f.effective]>g.$Y[e.effective]},permissions:j,executables:q,scripts:r,requirements:{commands:b.manifest.requirements.commands.map(a=>({name:a.name,versionRange:a.version_range??null})),networkHosts:[...b.manifest.requirements.network_hosts]},changelogs:s,agents:{from:a.agent_compatibility.map(a=>({...a})),to:c.compatibility.agents.map(a=>({...a}))}}}(p,e,a.version,a.catalogEntry),P="high"===e.effectiveRisk,Q=O.risk.increased,R=(0,d.randomBytes)(24).toString("hex"),S=c+i.c$,T={actor:a.actor,operation:"update",worktreeId:a.worktree.id,skillId:a.skillId,fromVersion:p.version,toVersion:e.version,artifactSha256:a.version.artifact.sha256,snapshotId:a.snapshotId,currentReceiptDigest:l.receiptDigest,branch:a.git.branch,headCommit:a.git.headCommit,currentTreeHash:t.assessment.currentTreeHash,plannedTreeHash:M},U={token:R,expiresAt:new Date(S).toISOString().replace(/\.\d{3}Z$/,"Z"),updatable:0===w.length,blockers:w,nextActionKey:0===w.length?q.updatable:q.blocked,requiresRiskAcknowledgement:P,riskAcknowledgementMessageKey:P?"skills.update.highRiskAcknowledgement":null,riskIncreased:Q,riskIncreaseMessageKey:Q?"skills.update.riskIncreaseAcknowledgement":null,update:{fromVersion:p.version,toVersion:e.version,latestVersion:a.latestVersion,reasonCode:a.reasonCode,prerelease:a.prerelease},target:{worktreeId:a.worktree.id,worktreeName:a.worktree.name,repositoryName:a.worktree.repositoryName,branch:a.git.branch,headState:a.git.headState,headCommit:a.git.headCommit,workingTreeDirty:a.git.dirty,installRoot:t.rel,installRoots:b.map(a=>a.rel),roots:b.map(a=>({installRoot:a.rel,rootPrefix:a.prefix,clean:a.assessment.removable,receiptDigest:a.assessment.receiptDigest,currentTreeHash:a.assessment.currentTreeHash})),currentTreeHash:t.assessment.currentTreeHash,plannedTreeHash:M},skill:function(a,b,c){let{manifest:d}=a;return{id:a.skillId,name:d.name,version:a.version,summary:d.summary,description:d.description,capabilities:[...d.capabilities],expectedOutcomes:[...d.expected_outcomes],provider:{...d.provider},license:d.license,homepage:d.homepage??null,declaredPermissions:[...a.inspection.declared_permissions],requirements:{commands:d.requirements.commands.map(a=>({name:a.name,versionRange:a.version_range??null})),networkHosts:[...d.requirements.network_hosts]},declaredRisk:a.declaredRisk,computedRisk:a.computedRisk,effectiveRisk:a.effectiveRisk,riskRationale:d.risk_rationale,executablePaths:[...a.inspection.executable_paths],scriptPaths:[...a.inspection.script_paths],compatibility:{commandmate:c,agents:b.compatibility.agents.map(a=>({...a}))},source:{repository:b.source.repository,ref:b.source.ref,commit:b.source.commit},artifact:{assetName:b.artifact.asset_name,sha256:b.artifact.sha256,size:b.artifact.size,format:b.artifact.format}}}(e,a.version,a.compatibility),securityDiff:O,receipt:{path:`${t.rel}/${i.zi}`,sha256:C,size:z.byteLength},files:I,stats:J,warnings:N},V={token:R,binding:T,bindingHash:(0,d.createHash)("sha256").update(function a(b){if(null===b||"object"!=typeof b)return JSON.stringify(b)??"null";if(Array.isArray(b))return`[${b.map(a).join(",")}]`;let c=Object.entries(b).filter(([,a])=>void 0!==a).sort(([a],[b])=>a<b?-1:+(a>b));return`{${c.map(([b,c])=>`${JSON.stringify(b)}:${a(c)}`).join(",")}}`}(T)).digest("hex"),createdAt:c,expiresAt:S,consumedAt:null,worktreePath:a.worktree.path,rootPrefixes:x,receipt:y,receiptBytes:z,dto:U};for(v(c);s.records.size>=i.sK;){let a=[...s.records.values()].sort((a,b)=>a.createdAt-b.createdAt)[0];if(!a)break;u(a)}return s.records.set(R,V),V}},98170:(a,b,c)=>{c.d(b,{mF:()=>l});var d=c(32520),e=c(72626),f=c(52710),g=c(1185),h=c(82484),i=c(89936);let j=(0,e.h)("lib/skills/plan-sweeper"),k=globalThis.__skillPlanSweeper??(globalThis.__skillPlanSweeper={timer:null});function l(){if(k.timer)return;let a=setInterval(()=>{try{let a=function(a={}){let b=a.now??Date.now(),c=(0,f.Jg)({now:b}),d=(0,g.kq)({now:b}),e=(0,h.ne)({now:b});return{installPlans:c,uninstallPlans:d,updatePlans:e,snapshots:(0,i.nW)()?(0,i.Jk)({now:b}):0}}();(a.installPlans||a.uninstallPlans||a.updatePlans||a.snapshots)&&j.debug("skill-plan-sweep",{...a})}catch(a){j.warn("skill-plan-sweep-failed",{error:a instanceof Error?a.message:String(a)})}},d.Oj);a.unref(),k.timer=a}}};
1
+ "use strict";exports.id=9584,exports.ids=[9584],exports.modules={4548:(a,b,c)=>{c.d(b,{TW:()=>i,uu:()=>o}),c(55511);var d=c(29021);c(33873),c(7956);var e=c(75359),f=c(93356),g=c(55927),h=c(44440);d.constants.O_NOFOLLOW;let i=[".bash",".bat",".cjs",".cmd",".fish",".js",".lua",".mjs",".php",".pl",".ps1",".py",".rb",".sh",".ts",".zsh"],j=[".md",".markdown",".rst",".txt"];function k(a){let b=a.slice(a.lastIndexOf("/")+1),c=b.lastIndexOf(".");return c<=0?"":b.slice(c).toLowerCase()}function l(a,b){return!!i.includes(k(a))||b.length>=2&&35===b[0]&&33===b[1]}function m(a,b){throw new g.Om(a,b)}function n(a,b){return a.files.find(a=>a.path===b)}function o(a,b){return function(a,b){let c;for(let b of e.wD)n(a,b)||m(g.xC.LAYOUT_INVALID,{reason:"missing-required-entry",entry:b});let d=function(a){let b,c=n(a,e.KH);for(let b of(c||m(g.xC.MANIFEST_MISSING,{reason:"absent"}),a.files))b.path!==e.KH&&b.path.endsWith(`/${e.KH}`)&&m(g.xC.LAYOUT_INVALID,{reason:"nested-manifest",entry:(0,g.FC)(b.path)});try{b=(0,h.an)(c.bytes)}catch(a){throw(0,h.pg)(a)&&m(g.xC.MANIFEST_INVALID,{reason:a.code}),a}let d=(0,e.bX)(b);if(!d.ok){let a=d.errors[0];m(g.xC.MANIFEST_INVALID,{reason:a.code,field:a.path})}return d.value}(a);d.id!==b.skillId&&m(g.xC.MANIFEST_MISMATCH,{reason:"id"}),d.version!==b.version&&m(g.xC.MANIFEST_MISMATCH,{reason:"version"});let i=n(a,e.Wr);i||m(g.xC.SKILL_MD_INVALID,{reason:"absent"});try{c=(0,h.pM)(Buffer.from(i.bytes).toString("utf8"))}catch(a){throw(0,h.pg)(a)&&m(g.xC.SKILL_MD_INVALID,{reason:a.code}),a}(null===c||"object"!=typeof c||Array.isArray(c))&&m(g.xC.SKILL_MD_INVALID,{reason:"frontmatter-missing"});let o=c.name;"string"!=typeof o&&m(g.xC.SKILL_MD_INVALID,{reason:"frontmatter-name-missing"});let p=(0,e.EU)({directoryName:d.id,skillMdName:o,manifestId:d.id,manifestName:d.name});p.ok||m(g.xC.SKILL_MD_INVALID,{reason:p.errors[0].code});let q=(0,e.Yz)(d,a.files.map(a=>a.path));if(!q.ok){let a=q.errors[0];m(g.xC.MANIFEST_MISMATCH,{reason:a.message,entry:(0,g.FC)(String(a.detail?.path??""))})}for(let b of a.files)b.path!==e.KH&&function(a,b){var c,d;let h=b.files.find(b=>b.path===a.path);h||m(g.xC.MANIFEST_MISMATCH,{reason:"undeclared-file",entry:(0,g.FC)(a.path)});let i={entry:(0,g.FC)(a.path)};h.size!==a.size&&m(g.xC.SIZE_MISMATCH,i),(0,f.U2)(h.sha256,a.sha256)||m(g.xC.DIGEST_MISMATCH,i);let n=(c=a.path,d=a.bytes,c===e.Wr?"skill_md":l(c,d)?"script":j.includes(k(c))?"instruction":"asset");l(a.path,a.bytes)&&(!h.script||"script"!==h.kind)&&m(g.xC.UNDECLARED_SCRIPT,i),"script"!==h.kind||h.script||m(g.xC.MANIFEST_MISMATCH,{...i,reason:"kind-script-not-declared"}),"skill_md"===n!=("skill_md"===h.kind)&&m(g.xC.MANIFEST_MISMATCH,{...i,reason:"kind-mismatch"}),a.executable&&!h.executable&&m(g.xC.UNDECLARED_EXECUTABLE,i),!a.executable&&h.executable&&m(g.xC.MANIFEST_MISMATCH,{...i,reason:"executable-not-present"})}(b,d);let r={executable_paths:d.files.filter(a=>a.executable).map(a=>a.path).sort(),script_paths:d.files.filter(a=>a.script).map(a=>a.path).sort(),network_hosts:[...d.requirements.network_hosts],declared_permissions:[...d.declared_permissions]},s=(0,e.MD)(r),t=new Map(a.files.map(a=>[a.path,a.bytes])),u=a.files.map(a=>({path:a.path,sha256:a.sha256,size:a.size,executable:a.executable})).sort((a,b)=>a.path<b.path?-1:+(a.path>b.path));return Object.freeze({skillId:b.skillId,version:b.version,manifest:d,files:Object.freeze(u),directories:Object.freeze([...a.directories].sort()),inspection:Object.freeze(r),declaredRisk:d.declared_risk,computedRisk:s,effectiveRisk:(0,e.qZ)(d.declared_risk,s),readFile(a){let b=t.get(a);return b||m(g.xC.MANIFEST_MISMATCH,{reason:"unknown-file",entry:(0,g.FC)(a)}),new Uint8Array(b)}})}((0,g.qt)(a,b),b)}},55927:(a,b,c)=>{c.d(b,{FC:()=>l,Om:()=>j,qt:()=>q,uI:()=>k,xC:()=>g});var d=c(74075),e=c(75359),f=c(93356);let g={ARCHIVE_FORMAT:"SKILL_PACKAGE_ARCHIVE_FORMAT",ARCHIVE_TRUNCATED:"SKILL_PACKAGE_ARCHIVE_TRUNCATED",ENTRY_TYPE_FORBIDDEN:"SKILL_PACKAGE_ENTRY_TYPE_FORBIDDEN",ENTRY_PATH_UNSAFE:"SKILL_PACKAGE_ENTRY_PATH_UNSAFE",ENTRY_DUPLICATE:"SKILL_PACKAGE_ENTRY_DUPLICATE",ENTRY_COLLISION:"SKILL_PACKAGE_ENTRY_COLLISION",ENTRY_MODE_FORBIDDEN:"SKILL_PACKAGE_ENTRY_MODE_FORBIDDEN",ENTRY_LIMIT_EXCEEDED:"SKILL_PACKAGE_ENTRY_LIMIT_EXCEEDED",SIZE_LIMIT_EXCEEDED:"SKILL_PACKAGE_SIZE_LIMIT_EXCEEDED",COMPRESSION_RATIO_EXCEEDED:"SKILL_PACKAGE_COMPRESSION_RATIO_EXCEEDED",LAYOUT_INVALID:"SKILL_PACKAGE_LAYOUT_INVALID",MANIFEST_MISSING:"SKILL_PACKAGE_MANIFEST_MISSING",MANIFEST_INVALID:"SKILL_PACKAGE_MANIFEST_INVALID",MANIFEST_MISMATCH:"SKILL_PACKAGE_MANIFEST_MISMATCH",UNDECLARED_EXECUTABLE:"SKILL_PACKAGE_UNDECLARED_EXECUTABLE",UNDECLARED_SCRIPT:"SKILL_PACKAGE_UNDECLARED_SCRIPT",DIGEST_MISMATCH:"SKILL_PACKAGE_DIGEST_MISMATCH",SIZE_MISMATCH:"SKILL_PACKAGE_SIZE_MISMATCH",SKILL_MD_INVALID:"SKILL_PACKAGE_SKILL_MD_INVALID",STAGING_IO:"SKILL_PACKAGE_STAGING_IO",ABORTED:"SKILL_PACKAGE_ABORTED"},h={[g.ARCHIVE_FORMAT]:"archive",[g.ARCHIVE_TRUNCATED]:"archive",[g.ENTRY_TYPE_FORBIDDEN]:"path",[g.ENTRY_PATH_UNSAFE]:"path",[g.ENTRY_DUPLICATE]:"path",[g.ENTRY_COLLISION]:"path",[g.ENTRY_MODE_FORBIDDEN]:"path",[g.ENTRY_LIMIT_EXCEEDED]:"limit",[g.SIZE_LIMIT_EXCEEDED]:"limit",[g.COMPRESSION_RATIO_EXCEEDED]:"limit",[g.LAYOUT_INVALID]:"manifest",[g.MANIFEST_MISSING]:"manifest",[g.MANIFEST_INVALID]:"manifest",[g.MANIFEST_MISMATCH]:"manifest",[g.UNDECLARED_EXECUTABLE]:"manifest",[g.UNDECLARED_SCRIPT]:"manifest",[g.DIGEST_MISMATCH]:"integrity",[g.SIZE_MISMATCH]:"integrity",[g.SKILL_MD_INVALID]:"manifest",[g.STAGING_IO]:"staging",[g.ABORTED]:"staging"},i={[g.ARCHIVE_FORMAT]:"Skill package is not a readable tar.gz archive",[g.ARCHIVE_TRUNCATED]:"Skill package archive is truncated",[g.ENTRY_TYPE_FORBIDDEN]:"Skill package contains a forbidden entry type",[g.ENTRY_PATH_UNSAFE]:"Skill package contains an unsafe entry path",[g.ENTRY_DUPLICATE]:"Skill package declares the same entry twice",[g.ENTRY_COLLISION]:"Skill package contains colliding entry paths",[g.ENTRY_MODE_FORBIDDEN]:"Skill package entry carries forbidden mode bits",[g.ENTRY_LIMIT_EXCEEDED]:"Skill package contains too many entries",[g.SIZE_LIMIT_EXCEEDED]:"Skill package exceeds a size limit",[g.COMPRESSION_RATIO_EXCEEDED]:"Skill package decompression ratio exceeds the limit",[g.LAYOUT_INVALID]:"Skill package layout does not match the contract",[g.MANIFEST_MISSING]:"Skill package manifest is missing or misplaced",[g.MANIFEST_INVALID]:"Skill package manifest is not valid",[g.MANIFEST_MISMATCH]:"Skill package manifest does not match the package",[g.UNDECLARED_EXECUTABLE]:"Skill package contains an undeclared executable",[g.UNDECLARED_SCRIPT]:"Skill package contains an undeclared script",[g.DIGEST_MISMATCH]:"Skill package file digest does not match the manifest",[g.SIZE_MISMATCH]:"Skill package file size does not match the manifest",[g.SKILL_MD_INVALID]:"Skill package SKILL.md is missing or inconsistent",[g.STAGING_IO]:"Skill package staging could not be prepared",[g.ABORTED]:"Skill package processing was aborted"};class j extends Error{constructor(a,b){super(i[a]),this.name="SkillPackageError",this.code=a,this.category=h[a],b&&(this.detail=b)}}function k(a){return a instanceof j}function l(a){let b=a.replace(/[^A-Za-z0-9._/-]/g,a=>[...a].map(a=>`%${a.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`).join(""));return b.length>120?`${b.slice(0,120)}…`:b}function m(a,b){throw new j(a,b)}let n=new Set(["0","\0"]);function o(a,b,c){let d=a.subarray(b,b+c),e=d.indexOf(0);-1===e&&(e=d.length);for(let a=e;a<d.length;a++)0!==d[a]&&m(g.ARCHIVE_FORMAT,{field:"padding"});let f=Buffer.from(d.subarray(0,e)),h=f.toString("utf8");return Buffer.from(h,"utf8").equals(f)||m(g.ARCHIVE_FORMAT,{field:"encoding"}),h}function p(a,b,c){(128&a[b])!=0&&m(g.ARCHIVE_FORMAT,{field:"numeric-encoding"});let d="";for(let e=b;e<b+c;e++){let b=a[e];0!==b&&32!==b&&((b<48||b>55)&&m(g.ARCHIVE_FORMAT,{field:"numeric"}),d+=String.fromCharCode(b))}if(""===d)return 0;let e=parseInt(d,8);return Number.isSafeInteger(e)||m(g.ARCHIVE_FORMAT,{field:"numeric-range"}),e}function q(a,b){let c;(a.byteLength<2||31!==a[0]||139!==a[1])&&m(g.ARCHIVE_FORMAT,{field:"gzip-magic"});try{c=(0,d.gunzipSync)(a,{maxOutputLength:0x4000000})}catch(a){"ERR_BUFFER_TOO_LARGE"===a?.code&&m(g.SIZE_LIMIT_EXCEEDED,{limit:0x4000000}),m(g.ARCHIVE_FORMAT,{field:"gzip"})}c.byteLength>1048576&&c.byteLength/a.byteLength>200&&m(g.COMPRESSION_RATIO_EXCEEDED,{limit:200});let h=(function(a){(0===a.byteLength||a.byteLength%512!=0)&&m(g.ARCHIVE_TRUNCATED,{field:"alignment"});let b=[],c=0;for(;c+512<=a.byteLength;){let d=a.subarray(c,c+512);if(function(a){for(let b=0;b<a.length;b++)if(0!==a[b])return!1;return!0}(d)){for(let b=c;b<a.byteLength;b++)0!==a[b]&&m(g.ARCHIVE_FORMAT,{field:"trailer"});return b}!function(a,b){let c=0,d=0;for(let b=0;b<512;b++){let e=b>=148&&b<156?32:a[b];c+=e,d+=e>127?e-256:e}b!==c&&b!==d&&m(g.ARCHIVE_FORMAT,{field:"checksum"})}(d,p(d,148,8)),"ustar"!==o(d,257,6).trim()&&m(g.ARCHIVE_FORMAT,{field:"magic"});let f=o(d,156,1)||"\0",h="5"===f;h||n.has(f)||m(g.ENTRY_TYPE_FORBIDDEN,{typeflag:l(f)}),""!==o(d,157,100)&&m(g.ENTRY_TYPE_FORBIDDEN,{typeflag:"link"});let i=p(d,100,8);(3584&i)!=0&&m(g.ENTRY_MODE_FORBIDDEN,{bits:(3584&i).toString(8)});let j=o(d,345,155),k=o(d,0,100),q=""===j?k:`${j}/${k}`,r=p(d,124,12);h&&0!==r&&m(g.ARCHIVE_FORMAT,{field:"directory-size"}),r>e.em&&m(g.SIZE_LIMIT_EXCEEDED,{limit:e.em});let s=c+512,t=s+r;t>a.byteLength&&m(g.ARCHIVE_TRUNCATED),b.push({name:q,isDirectory:h,mode:i,size:r,bytes:h?new Uint8Array(0):a.subarray(s,t)}),b.length>1e3&&m(g.ENTRY_LIMIT_EXCEEDED,{limit:1e3}),c=s+512*Math.ceil(r/512)}return m(g.ARCHIVE_TRUNCATED,{field:"trailer"})})(c).map(a=>({entry:a,...function(a){let b=a;b.startsWith("./")&&(b=b.slice(2));let c=b.endsWith("/");return c&&(b=b.slice(0,-1)),""===b&&m(g.ENTRY_PATH_UNSAFE,{reason:"empty"}),{path:b,trailingSlash:c}}(a.name)})),i=function(a,b){let c=[b.skillId,`${b.skillId}-${b.version}`],d=new Set(a.map(a=>a.split("/")[0]));if(1!==d.size)return null;let e=[...d][0];return a.some(a=>a.startsWith(`${e}/`))?(c.includes(e)||m(g.LAYOUT_INVALID,{reason:"root-directory",entry:l(e)}),e):null}(h.map(a=>a.path),b),j=[],k=[],q=new Map,r=new Map,s=0;for(let a of h){let b=a.path;if(null!==i){if(b===i)continue;b=b.slice(i.length+1)}let c=a.entry.isDirectory||a.trailingSlash,d=(0,e.r5)(b,"/entry");d.ok||m(g.ENTRY_PATH_UNSAFE,{entry:l(b),reason:d.errors[0].message}),q.has(b)&&m(g.ENTRY_DUPLICATE,{entry:l(b)});let h=b.split("/").map(a=>(0,e.vy)(a)).join("/");if(void 0!==r.get(h)&&m(g.ENTRY_COLLISION,{entry:l(b)}),q.set(b,c),r.set(h,b),c){k.push(b);continue}(s+=a.entry.size)>0x4000000&&m(g.SIZE_LIMIT_EXCEEDED,{limit:0x4000000});let n=new Uint8Array(a.entry.bytes);j.push({path:b,size:a.entry.size,sha256:(0,f.Q_)(n),executable:(73&a.entry.mode)!=0,bytes:n})}for(let a of(j.filter(a=>a.path!==e.KH).length>e.xP&&m(g.ENTRY_LIMIT_EXCEEDED,{limit:e.xP}),k))j.some(b=>b.path===a)&&m(g.ENTRY_DUPLICATE,{entry:l(a)});for(let a of j){let b=a.path.split("/").slice(0,-1),c="";for(let d of b)c=""===c?d:`${c}/${d}`,j.some(a=>a.path===c)&&m(g.ENTRY_PATH_UNSAFE,{entry:l(a.path),reason:"parent-is-file"})}return{rootName:i,files:j,directories:k,compressedSize:a.byteLength,decompressedSize:c.byteLength}}},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(67469),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},82484:(a,b,c)=>{c.d(b,{E4:()=>z,QY:()=>s,Sw:()=>D,cl:()=>A,jY:()=>u,ne:()=>x});var d=c(55511),e=c(33873),f=c.n(e),g=c(96210),h=c(93356),i=c(52710),j=c(33095),k=c(1185),l=c(89936),m=c(4548),n=c(36931),o=c(36925);let p={LOCAL_CHANGES:"SKILL_UPDATE_LOCAL_CHANGES",ROOT_MISSING:"SKILL_UPDATE_ROOT_MISSING",RECEIPT_MISSING:"SKILL_UPDATE_RECEIPT_MISSING",RECEIPT_UNREADABLE:"SKILL_UPDATE_RECEIPT_UNREADABLE",RECEIPT_FOREIGN:"SKILL_UPDATE_RECEIPT_FOREIGN",ROOT_RECEIPT_DIVERGED:"SKILL_UPDATE_ROOT_RECEIPT_DIVERGED",TREE_SCAN_TRUNCATED:"SKILL_UPDATE_TREE_SCAN_TRUNCATED",INCOMPATIBLE:"SKILL_UPDATE_INCOMPATIBLE"},q={[p.LOCAL_CHANGES]:"skills.update.blocked.localChanges",[p.ROOT_MISSING]:"skills.update.blocked.rootMissing",[p.RECEIPT_MISSING]:"skills.update.blocked.receiptMissing",[p.RECEIPT_UNREADABLE]:"skills.update.blocked.receiptUnreadable",[p.RECEIPT_FOREIGN]:"skills.update.blocked.receiptForeign",[p.ROOT_RECEIPT_DIVERGED]:"skills.update.blocked.rootReceiptDiverged",[p.TREE_SCAN_TRUNCATED]:"skills.update.blocked.treeScanTruncated",[p.INCOMPATIBLE]:"skills.update.blocked.incompatible"},r={updatable:"skills.update.nextAction.updatable",blocked:"skills.update.nextAction.blocked"};function s(a,b,c){let d;if(!g.X0.test(b)||b.length>g.cj)throw new i.nf(i.ER.TARGET_UNSAFE);try{d=(0,j.yj)(a,c,b)}catch{throw new i.nf(i.ER.TARGET_UNSAFE)}let e=(0,j.bh)(d);if(!e.present)return{state:"not_installed"};let f=e.files.find(a=>a.path===i.zi);if(!f)return{state:"receipt_missing"};let h=(0,i.q$)(f.bytes);return null===h?{state:"receipt_unreadable"}:h.skill_id!==b?{state:"receipt_foreign"}:{state:"ok",receipt:h,receiptDigest:f.sha256}}let t=(0,o.v)("__skillUpdatePlans",()=>({records:new Map})),u=/^[0-9a-f]{48}$/;function v(a){t.records.delete(a.token),null===a.consumedAt&&(0,l.TO)(a.binding.snapshotId)}function w(a,b){let c=0;for(let d of[...t.records.values()])d.token!==b&&a>=d.expiresAt&&(v(d),c+=1);return c}function x(a={}){return w(a.now??Date.now())}function y(a,b){if(!u.test(a))throw new i.nf(i.ER.NOT_FOUND);let c=t.records.get(a);if(w(b,a),!c)throw new i.nf(i.ER.NOT_FOUND);let e=Buffer.from(a,"utf-8"),f=Buffer.from(c.token,"utf-8");if(e.length!==f.length||!(0,d.timingSafeEqual)(e,f))throw new i.nf(i.ER.NOT_FOUND);if(b>=c.expiresAt)throw v(c),new i.nf(i.ER.EXPIRED);if(null!==c.consumedAt)throw new i.nf(i.ER.CONSUMED);return c}function z(a,b={}){return y(a,b.now??Date.now())}function A(a,b,c,d={}){let e=d.now??Date.now(),f=y(a,e),{binding:g}=f;if(g.actor.type!==b.actor.type||g.actor.id!==b.actor.id||g.worktreeId!==b.worktreeId||g.skillId!==b.skillId||g.toVersion!==b.toVersion)throw new i.nf(i.ER.BINDING_MISMATCH);if(!f.dto.updatable)throw new i.nf(i.ER.NOT_INSTALLABLE);if(f.dto.requiresRiskAcknowledgement&&!b.riskAcknowledged)throw new i.nf(i.ER.RISK_NOT_ACKNOWLEDGED);if(f.dto.riskIncreased&&!b.riskIncreaseAcknowledged)throw new i.nf(i.ER.RISK_NOT_ACKNOWLEDGED,{riskIncreased:!0});if(c.branch!==g.branch||c.headCommit!==g.headCommit||c.currentTreeHash!==g.currentTreeHash||null===c.receiptDigest||!(0,h.U2)(c.receiptDigest,g.currentReceiptDigest))throw new i.nf(i.ER.STALE);return f.consumedAt=e,f}function B(a,b,c=null){return{code:a,path:b,messageKey:q[a],detail:c}}let C={[k.sJ.LOCAL_MODIFICATION]:p.LOCAL_CHANGES,[k.sJ.RECEIPT_ORPHAN]:p.LOCAL_CHANGES,[k.sJ.UNMANAGED_FILE]:p.LOCAL_CHANGES,[k.sJ.NOT_A_REGULAR_FILE]:p.LOCAL_CHANGES,[k.sJ.NOT_INSTALLED]:p.ROOT_MISSING,[k.sJ.RECEIPT_MISSING]:p.RECEIPT_MISSING,[k.sJ.RECEIPT_UNREADABLE]:p.RECEIPT_UNREADABLE,[k.sJ.RECEIPT_FOREIGN]:p.RECEIPT_FOREIGN,[k.sJ.TREE_SCAN_TRUNCATED]:p.TREE_SCAN_TRUNCATED};function D(a){let b;if(!g.X0.test(a.skillId)||a.skillId.length>g.cj)throw new i.nf(i.ER.TARGET_UNSAFE);let c=a.now??Date.now(),{snapshot:e}=a,l=s(a.worktree.path,a.skillId,g.pg);if("not_installed"===l.state)throw new i.nf(i.ER.NOT_FOUND);if("ok"!==l.state||l.receipt.version!==a.fromVersion)throw new i.nf(i.ER.STALE);let o=l.receipt;try{b=(0,i.Pw)(o).map(b=>{let c=f().posix.dirname(b),d=(0,j.yj)(a.worktree.path,c,a.skillId),e=(0,j.bh)(d);return{prefix:c,rel:(0,j.QL)(c,a.skillId),existing:e,assessment:(0,k.II)(d,a.skillId,{existing:e,rootPrefix:c})}})}catch{throw new i.nf(i.ER.TARGET_UNSAFE)}let q=b[0],u=[];for(let a of b){for(let b of a.assessment.blockers){let a=C[b.code];a&&u.push(B(a,b.path,b.code))}a!==q&&null!==a.assessment.receiptDigest&&a.assessment.receiptDigest!==q.assessment.receiptDigest&&u.push(B(p.ROOT_RECEIPT_DIVERGED,`${a.rel}/${i.zi}`))}"compatible"!==a.compatibility.status&&u.push(B(p.INCOMPATIBLE,null));let x=b.map(a=>a.prefix),y=(0,i.$h)({snapshot:e,version:a.version,rootPrefixes:x}),z=(0,i.tJ)(y),A=(0,d.createHash)("sha256").update(z).digest("hex"),D=new Map(o.files.map(a=>[a.path,{sha256:a.sha256,size:a.size,executable:a.executable}])),E=q.existing.files.find(a=>a.path===i.zi);D.set(i.zi,{sha256:l.receiptDigest,size:E?.size??null,executable:!1});let F=new Map(e.files.map(a=>[a.path,{sha256:a.sha256,size:a.size,executable:a.executable,generated:!1}]));F.set(i.zi,{sha256:A,size:z.byteLength,executable:!1,generated:!0});let G=new Map(q.existing.files.map(a=>[a.path,a])),H={remainingBytes:j.mo},I=[],J={added:0,updated:0,removed:0,unchanged:0,localModified:0,localMissing:0,localUnknown:0,irregular:0},K=!1,L=!1;for(let a of[...new Set([...D.keys(),...F.keys()])].sort()){let b,c,d=D.get(a)??null,f=F.get(a)??null,g=G.get(a)??null;b=d&&f?(0,h.U2)(d.sha256,f.sha256)&&d.executable===f.executable?"unchanged":"update":f?"add":"remove",c=null===d?null===g?"match":"unknown":null===g?"missing":(0,h.U2)(g.sha256,d.sha256)&&g.executable===d.executable?"match":"modified";let k=f?.generated??a===i.zi,l=null!==d&&null!==g&&"match"===c?g.bytes:null,m=null===f?null:k?z:e.readFile(a),n=null!==l&&(0,j.VA)(l)||null!==m&&(0,j.VA)(m),o=null!==d&&"match"!==c,p=n||o||"unchanged"===b?{text:null,truncated:!1,additions:0,deletions:0}:(0,j.kt)(l,m,H);I.push({path:`${q.rel}/${a}`,relativePath:a,change:b,generated:k,recordedSha256:d?.sha256??null,candidateSha256:f?.sha256??null,currentSha256:g?.sha256??null,localState:c,size:f?.size??d?.size??null,executable:f?.executable??d?.executable??!1,binary:n,diff:p.text,diffTruncated:p.truncated,additions:p.additions,deletions:p.deletions}),"add"===b?J.added+=1:"update"===b?J.updated+=1:"remove"===b?J.removed+=1:J.unchanged+=1,n&&(K=!0),p.truncated&&(L=!0)}for(let a of b)J.localModified+=a.assessment.stats.modified,J.localMissing+=a.assessment.stats.missing,J.localUnknown+=a.assessment.stats.unknown,J.irregular+=a.assessment.stats.irregular;let M=(0,j.Hg)([...F.entries()].map(([a,b])=>({path:a,sha256:b.sha256,executable:b.executable}))),N=[];"detached"===a.git.headState&&N.push(j.OV.DETACHED_HEAD),"unborn"===a.git.headState&&N.push(j.OV.UNBORN_HEAD),"unknown"===a.git.headState&&N.push(j.OV.HEAD_UNRESOLVED),a.git.dirty&&N.push(j.OV.WORKING_TREE_DIRTY),K&&N.push(j.OV.BINARY_CONTENT),L&&N.push(j.OV.DIFF_TRUNCATED),b.some(a=>a.existing.truncated)&&N.push(j.OV.TREE_SCAN_TRUNCATED);let O=function(a,b,c,d){let e={declared:a.declared_risk,computed:a.computed_risk,effective:a.effective_risk},f={declared:b.declaredRisk,computed:b.computedRisk,effective:b.effectiveRisk},h=new Set(a.declared_permissions),i=new Set(b.inspection.declared_permissions),j={added:[...i].filter(a=>!h.has(a)),removed:[...h].filter(a=>!i.has(a)),unchanged:[...i].filter(a=>h.has(a))},k=new Set(a.files.map(a=>a.path)),l=new Set(b.files.map(a=>a.path)),o=a.files.filter(a=>a.executable).map(a=>a.path),p=b.files.filter(a=>a.executable).map(a=>a.path),q={added:p.filter(a=>!o.includes(a)),removed:o.filter(a=>!p.includes(a))},r={added:b.inspection.script_paths.filter(a=>!k.has(a)),removed:[...k].filter(a=>(function(a){let b=a.slice(a.lastIndexOf("/")+1),c=b.lastIndexOf(".");return!(c<=0)&&m.TW.includes(b.slice(c).toLowerCase())})(a)&&!l.has(a))},s=d.versions.filter(b=>{let d=(0,n.Cg)(b.version,a.version),e=(0,n.Cg)(b.version,c.version);return null!==d&&d>0&&null!==e&&e<=0}).sort((a,b)=>(0,n.Cg)(b.version,a.version)??0).map(a=>({version:a.version,changelog:a.changelog}));return{risk:{from:e,to:f,increased:g.$Y[f.effective]>g.$Y[e.effective]},permissions:j,executables:q,scripts:r,requirements:{commands:b.manifest.requirements.commands.map(a=>({name:a.name,versionRange:a.version_range??null})),networkHosts:[...b.manifest.requirements.network_hosts]},changelogs:s,agents:{from:a.agent_compatibility.map(a=>({...a})),to:c.compatibility.agents.map(a=>({...a}))}}}(o,e,a.version,a.catalogEntry),P="high"===e.effectiveRisk,Q=O.risk.increased,R=(0,d.randomBytes)(24).toString("hex"),S=c+i.c$,T={actor:a.actor,operation:"update",worktreeId:a.worktree.id,skillId:a.skillId,fromVersion:o.version,toVersion:e.version,artifactSha256:a.version.artifact.sha256,snapshotId:a.snapshotId,currentReceiptDigest:l.receiptDigest,branch:a.git.branch,headCommit:a.git.headCommit,currentTreeHash:q.assessment.currentTreeHash,plannedTreeHash:M},U={token:R,expiresAt:new Date(S).toISOString().replace(/\.\d{3}Z$/,"Z"),updatable:0===u.length,blockers:u,nextActionKey:0===u.length?r.updatable:r.blocked,requiresRiskAcknowledgement:P,riskAcknowledgementMessageKey:P?"skills.update.highRiskAcknowledgement":null,riskIncreased:Q,riskIncreaseMessageKey:Q?"skills.update.riskIncreaseAcknowledgement":null,update:{fromVersion:o.version,toVersion:e.version,latestVersion:a.latestVersion,reasonCode:a.reasonCode,prerelease:a.prerelease},target:{worktreeId:a.worktree.id,worktreeName:a.worktree.name,repositoryName:a.worktree.repositoryName,branch:a.git.branch,headState:a.git.headState,headCommit:a.git.headCommit,workingTreeDirty:a.git.dirty,installRoot:q.rel,installRoots:b.map(a=>a.rel),roots:b.map(a=>({installRoot:a.rel,rootPrefix:a.prefix,clean:a.assessment.removable,receiptDigest:a.assessment.receiptDigest,currentTreeHash:a.assessment.currentTreeHash})),currentTreeHash:q.assessment.currentTreeHash,plannedTreeHash:M},skill:function(a,b,c){let{manifest:d}=a;return{id:a.skillId,name:d.name,version:a.version,summary:d.summary,description:d.description,capabilities:[...d.capabilities],expectedOutcomes:[...d.expected_outcomes],provider:{...d.provider},license:d.license,homepage:d.homepage??null,declaredPermissions:[...a.inspection.declared_permissions],requirements:{commands:d.requirements.commands.map(a=>({name:a.name,versionRange:a.version_range??null})),networkHosts:[...d.requirements.network_hosts]},declaredRisk:a.declaredRisk,computedRisk:a.computedRisk,effectiveRisk:a.effectiveRisk,riskRationale:d.risk_rationale,executablePaths:[...a.inspection.executable_paths],scriptPaths:[...a.inspection.script_paths],compatibility:{commandmate:c,agents:b.compatibility.agents.map(a=>({...a}))},source:{repository:b.source.repository,ref:b.source.ref,commit:b.source.commit},artifact:{assetName:b.artifact.asset_name,sha256:b.artifact.sha256,size:b.artifact.size,format:b.artifact.format}}}(e,a.version,a.compatibility),securityDiff:O,receipt:{path:`${q.rel}/${i.zi}`,sha256:A,size:z.byteLength},files:I,stats:J,warnings:N},V={token:R,binding:T,bindingHash:(0,d.createHash)("sha256").update(function a(b){if(null===b||"object"!=typeof b)return JSON.stringify(b)??"null";if(Array.isArray(b))return`[${b.map(a).join(",")}]`;let c=Object.entries(b).filter(([,a])=>void 0!==a).sort(([a],[b])=>a<b?-1:+(a>b));return`{${c.map(([b,c])=>`${JSON.stringify(b)}:${a(c)}`).join(",")}}`}(T)).digest("hex"),createdAt:c,expiresAt:S,consumedAt:null,worktreePath:a.worktree.path,rootPrefixes:x,receipt:y,receiptBytes:z,dto:U};for(w(c);t.records.size>=i.sK;){let a=[...t.records.values()].sort((a,b)=>a.createdAt-b.createdAt)[0];if(!a)break;v(a)}return t.records.set(R,V),V}},98170:(a,b,c)=>{c.d(b,{mF:()=>m});var d=c(32520),e=c(72626),f=c(52710),g=c(1185),h=c(82484),i=c(89936),j=c(36925);let k=(0,e.h)("lib/skills/plan-sweeper"),l=(0,j.v)("__skillPlanSweeper",()=>({timer:null}));function m(){if(l.timer)return;let a=setInterval(()=>{try{let a=function(a={}){let b=a.now??Date.now(),c=(0,f.Jg)({now:b}),d=(0,g.kq)({now:b}),e=(0,h.ne)({now:b});return{installPlans:c,uninstallPlans:d,updatePlans:e,snapshots:(0,i.nW)()?(0,i.Jk)({now:b}):0}}();(a.installPlans||a.uninstallPlans||a.updatePlans||a.snapshots)&&k.debug("skill-plan-sweep",{...a})}catch(a){k.warn("skill-plan-sweep-failed",{error:a instanceof Error?a.message:String(a)})}},d.Oj);a.unref(),l.timer=a}}};
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=9627,exports.ids=[9627],exports.modules={3161:(a,b,c)=>{c.d(b,{G1:()=>h,Jl:()=>i,T9:()=>s,Tv:()=>n,Yv:()=>o,cI:()=>j,sI:()=>r,sc:()=>t});var d=c(24455),e=c(49791),f=c(84574);let g=globalThis.__agentSessionTelemetry??(globalThis.__agentSessionTelemetry=new Map);function h(a,b){g.set((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),b)}function i(a,b,c){return g.get((0,d.v7)(a,b,c))??null}function j(a){var b;g.delete((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId)),b=a,p.delete((0,d.v7)(b.worktreeId,b.cliToolId,b.instanceId))}function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a,b,c){let d=a[b];return"string"!=typeof d||0===d.length?null:d.slice(0,c)}function m(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:null}function n(a,b){let c=k(a.properties)?a.properties:null;return c?o(c.info,b):null}function o(a,b){let c=k(a)?a:null;if(!c||"string"==typeof c.parentID&&c.parentID.length>0)return null;let d=k(c.model)?c.model:{};return{id:l(c,"id",120),title:l(c,"title",200),agent:l(c,"agent",120),model:l(d,"id",120),provider:l(d,"providerID",120),cost:m(c,"cost"),tokens:function(a){let b=k(a.tokens)?a.tokens:null;if(!b)return{input:null,output:null,reasoning:null,cacheRead:null,cacheWrite:null,total:null};let c=k(b.cache)?b.cache:{};return{input:m(b,"input"),output:m(b,"output"),reasoning:m(b,"reasoning"),cacheRead:m(c,"read"),cacheWrite:m(c,"write"),total:m(b,"total")}}(c),at:b}}let p=globalThis.__agentSessionContextUsage??(globalThis.__agentSessionContextUsage=new Map),q=globalThis.__agentSessionContextRefreshes??(globalThis.__agentSessionContextRefreshes=new Set);function r(a,b){return null!==a&&null!==b&&Number.isFinite(a)&&Number.isFinite(b)&&!(b<=0)?Math.round(a/b*100):null}function s(a,b){p.set((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),b)}function t(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=p.get(c)??null;return!b||!b.id||"opencode-v2"===a.cliToolId||e&&e.sessionAt===b.at||q.has(c)||(q.add(c),u(a,b).finally(()=>{q.delete(c)})),e}async function u(a,b){let c=b.id;if(!c)return null;let d=(0,f.hC)(a);if(null===d)return null;let[g,h]=await Promise.all([(0,e.bg)(d,c),b.provider&&b.model?(0,e.Lf)(d,b.provider,b.model):Promise.resolve(null)]),i={tokens:g,limit:h,percent:r(g,h),sessionAt:b.at,at:Date.now()};return s(a,i),i}},4868:(a,b,c)=>{function d(a,b){let c=a.prepare(`
1
+ "use strict";exports.id=9627,exports.ids=[9627],exports.modules={3161:(a,b,c)=>{c.d(b,{G1:()=>i,Jl:()=>j,T9:()=>t,Tv:()=>o,Yv:()=>p,cI:()=>k,sI:()=>s,sc:()=>u});var d=c(24455),e=c(49791),f=c(84574),g=c(36925);let h=(0,g.v)("__agentSessionTelemetry",()=>new Map);function i(a,b){h.set((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),b)}function j(a,b,c){return h.get((0,d.v7)(a,b,c))??null}function k(a){var b;h.delete((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId)),b=a,q.delete((0,d.v7)(b.worktreeId,b.cliToolId,b.instanceId))}function l(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function m(a,b,c){let d=a[b];return"string"!=typeof d||0===d.length?null:d.slice(0,c)}function n(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)?c:null}function o(a,b){let c=l(a.properties)?a.properties:null;return c?p(c.info,b):null}function p(a,b){let c=l(a)?a:null;if(!c||"string"==typeof c.parentID&&c.parentID.length>0)return null;let d=l(c.model)?c.model:{};return{id:m(c,"id",120),title:m(c,"title",200),agent:m(c,"agent",120),model:m(d,"id",120),provider:m(d,"providerID",120),cost:n(c,"cost"),tokens:function(a){let b=l(a.tokens)?a.tokens:null;if(!b)return{input:null,output:null,reasoning:null,cacheRead:null,cacheWrite:null,total:null};let c=l(b.cache)?b.cache:{};return{input:n(b,"input"),output:n(b,"output"),reasoning:n(b,"reasoning"),cacheRead:n(c,"read"),cacheWrite:n(c,"write"),total:n(b,"total")}}(c),at:b}}let q=(0,g.v)("__agentSessionContextUsage",()=>new Map),r=(0,g.v)("__agentSessionContextRefreshes",()=>new Set);function s(a,b){return null!==a&&null!==b&&Number.isFinite(a)&&Number.isFinite(b)&&!(b<=0)?Math.round(a/b*100):null}function t(a,b){q.set((0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),b)}function u(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=q.get(c)??null;return!b||!b.id||"opencode-v2"===a.cliToolId||e&&e.sessionAt===b.at||r.has(c)||(r.add(c),v(a,b).finally(()=>{r.delete(c)})),e}async function v(a,b){let c=b.id;if(!c)return null;let d=(0,f.hC)(a);if(null===d)return null;let[g,h]=await Promise.all([(0,e.bg)(d,c),b.provider&&b.model?(0,e.Lf)(d,b.provider,b.model):Promise.resolve(null)]),i={tokens:g,limit:h,percent:s(g,h),sessionAt:b.at,at:Date.now()};return t(a,i),i}},4868:(a,b,c)=>{function d(a,b){let c=a.prepare(`
2
2
  SELECT date, content, generated_by_tool, model, created_at, updated_at
3
3
  FROM daily_reports
4
4
  WHERE date = ?
@@ -46,7 +46,7 @@
46
46
  FROM agent_session_costs
47
47
  ${d}
48
48
  GROUP BY worktree_id
49
- ORDER BY cost IS NULL, cost DESC, worktree_id`).all(...c?[b,c]:[b]).map(a=>({worktreeId:a.worktree_id,sessions:a.sessions,cost:a.cost,tokensInput:a.tokens_input,tokensOutput:a.tokens_output,tokensReasoning:a.tokens_reasoning,tokensCacheRead:a.tokens_cache_read,tokensCacheWrite:a.tokens_cache_write}));return{date:b,worktrees:e,total:function(a){let b=b=>{let c=null;for(let d of a){let a=b(d);null!==a&&(c=(c??0)+a)}return c};return{sessions:a.reduce((a,b)=>a+b.sessions,0),cost:b(a=>a.cost),tokensInput:b(a=>a.tokensInput),tokensOutput:b(a=>a.tokensOutput),tokensReasoning:b(a=>a.tokensReasoning),tokensCacheRead:b(a=>a.tokensCacheRead),tokensCacheWrite:b(a=>a.tokensCacheWrite)}}(e)}}c.d(b,{PY:()=>f,UB:()=>g,c0:()=>e})},15194:(a,b,c)=>{c.d(b,{Ab:()=>h,FV:()=>t,NL:()=>s,QP:()=>u,Sj:()=>l,VA:()=>f,XH:()=>d,_J:()=>v,ef:()=>n,hR:()=>o,lu:()=>q,n6:()=>k,oo:()=>p,pL:()=>m,pQ:()=>i,qR:()=>g,vz:()=>r});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code","opencode-v2"],e=new Set(["claude","opencode","copilot","opencode-v2"]);function f(a){return e.has(a)}function g(a,b){return!f(a)&&!b}let h=10,i=50,j=/^[a-zA-Z0-9_-]+$/;function k(a){return"string"==typeof a&&a.length>0&&a.length<=64&&j.test(a)}function l(a,b){return!a||a===b}function m(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let n={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code","opencode-v2":"OpenCode V2"};function o(a){return d.includes(a)}function p(a){return n[a]??a}function q(a){return a.map((a,b)=>({id:a,cliTool:a,alias:p(a),order:b}))}let r=128,s=2097152;function t(a){return"number"==typeof a&&Number.isInteger(a)&&a>=r&&a<=s}let u=/^[a-zA-Z0-9][a-zA-Z0-9._:/-]*$/;function v(a){return"function"==typeof a.supportsImage&&!0===a.supportsImage()}},16983:(a,b,c)=>{c.d(b,{Jn:()=>e,Lg:()=>h,_u:()=>j,ao:()=>i,eu:()=>g,sO:()=>d,xT:()=>f});let d=1e3,e=200,f=200,g=2e4,h=121,i="CM_OPENCODE_PANE_WIDTH";function j(a="undefined"==typeof process?void 0:process.env){let b=a?.[i];if(void 0===b)return 80;let c=b.trim();if(!/^\d+$/.test(c))return 80;let d=Number.parseInt(c,10);return d<40||d>400?80:d}},24455:(a,b,c)=>{c.d(b,{CS:()=>g,Cs:()=>s,G:()=>x,GE:()=>k,LP:()=>v,Re:()=>E,SD:()=>w,UL:()=>A,Ue:()=>i,W8:()=>n,XK:()=>o,ZO:()=>z,_9:()=>t,aq:()=>m,fC:()=>D,kC:()=>u,pL:()=>j,ps:()=>y,v7:()=>h});var d=c(68901);c(66007);var e=c(15194);let f=(0,c(72626).h)("auto-yes-state"),g=":";function h(a,b,c){if(a.includes(g))throw Error(`worktreeId must not contain '${g}': ${a}`);if(!c||c===b)return`${a}${g}${b}`;if(c.includes(g))throw Error(`instanceId must not contain '${g}': ${c}`);return`${a}${g}${b}${g}${c}`}function i(a){let b=a.indexOf(g);return -1===b?a:a.substring(0,b)}function j(a){let b=a.split(g)[1];return void 0===b?null:(0,e.hR)(b)?b:null}function k(a){let b=a.split(g);return b[2]??b[1]??null}let l=globalThis.__autoYesStates??(globalThis.__autoYesStates=new Map);function m(a,b="claude",c){let d=h(a,b,c),e=l.get(d);return e?Date.now()>=e.expiresAt?o(a,b,"expired",c):e:null}function n(a,b,c,e,f,g){let i=h(a,b,g);if(!c)return o(a,b,void 0,g);{let a=Date.now(),b={enabled:!0,enabledAt:a,expiresAt:a+(e??d.t6),stopPattern:f};return l.set(i,b),b}}function o(a,b="claude",c,d,e){let f=h(a,b,d),g=l.get(f),i={enabled:!1,enabledAt:g?.enabledAt??0,expiresAt:g?.expiresAt??0,stopPattern:g?.stopPattern,stopReason:c,stopMatchedText:e};return l.set(f,i),i}let p="…[truncated]",q=new TextEncoder;function r(a){return q.encode(a).length}function s(a,b,c){let e=i(a),g=j(a);if(!g)return!1;let h=k(a)??void 0,l=m(e,g,h);if(!l?.stopPattern)return!1;if(!(0,d.P0)(l.stopPattern).valid)return f.warn("invalid-stop-pattern",{detail:String({compositeKey:a})}),o(e,g,void 0,h),!1;try{let i=new RegExp(l.stopPattern),j=(0,d.eJ)(i,b);if(null===j)return f.warn("stop-condition-check",{detail:String({compositeKey:a})}),o(e,g,void 0,h),!1;if(j){let d=function(a,b){let c;try{c=a.exec(b)}catch{return null}if(!c)return null;let d=c.index,e=d+c[0].length,f=b.split("\n"),g=b.slice(0,d).split("\n").length-1,h=b.slice(0,e).split("\n").length-1,i=Math.max(0,g-1),j=Math.min(f.length-1,h+1),k=f.slice(i,j+1).join("\n"),l=k.trim();return function(a,b=400){if(r(a)<=b)return a;let c=b-r(p);if(c<=0)return p;let d=0,e="";for(let b of a){let a=r(b);if(d+a>c)break;e+=b,d+=a}return e+p}(l.length>0?l:k)}(i,b)??void 0;return o(e,g,"stop_pattern_matched",h,d),c&&c(a),f.warn("stop-condition-matched",{detail:String({compositeKey:a})}),!0}}catch{f.warn("stop-condition-check",{detail:String({compositeKey:a})})}return!1}function t(a,b){return a.filter(a=>i(a)===b)}function u(a){return t(Array.from(l.keys()),a)}function v(a){let b=u(a);return b.forEach(a=>l.delete(a)),b.length}function w(){let a=new Map;for(let b of Array.from(l.keys())){let c=j(b);if(!c)continue;let d=i(b),e=k(b)??c,f=m(d,c,e);if(!f?.enabled)continue;let g=a.get(d)??{};g[e]={enabled:!0,expiresAt:f.expiresAt},a.set(d,g)}return a}function x(a){return a<C?y:Math.min(y*Math.pow(2,a-C+1),B)}let y=2e3,z=5e3,A=1e4,B=6e4,C=5,D=50,E=50},26923:(a,b,c)=>{c.d(b,{Ds:()=>p,L:()=>q,Q9:()=>l,Uo:()=>o,Wo:()=>m,e2:()=>t,iH:()=>n,iM:()=>s,yi:()=>r});var d=c(52201),e=c(38186);let f="sidebar_group_order",g="recent_browse_paths",h="default_selected_agents",i="default_surface_mode";function j(a,b){try{let c=a.prepare("SELECT value FROM app_settings WHERE key = ?").get(b);if(!c)return null;let d=JSON.parse(c.value);if(!Array.isArray(d)||!d.every(a=>"string"==typeof a))return null;return d}catch{return null}}function k(a,b,c){let d=Date.now();a.prepare(`
49
+ ORDER BY cost IS NULL, cost DESC, worktree_id`).all(...c?[b,c]:[b]).map(a=>({worktreeId:a.worktree_id,sessions:a.sessions,cost:a.cost,tokensInput:a.tokens_input,tokensOutput:a.tokens_output,tokensReasoning:a.tokens_reasoning,tokensCacheRead:a.tokens_cache_read,tokensCacheWrite:a.tokens_cache_write}));return{date:b,worktrees:e,total:function(a){let b=b=>{let c=null;for(let d of a){let a=b(d);null!==a&&(c=(c??0)+a)}return c};return{sessions:a.reduce((a,b)=>a+b.sessions,0),cost:b(a=>a.cost),tokensInput:b(a=>a.tokensInput),tokensOutput:b(a=>a.tokensOutput),tokensReasoning:b(a=>a.tokensReasoning),tokensCacheRead:b(a=>a.tokensCacheRead),tokensCacheWrite:b(a=>a.tokensCacheWrite)}}(e)}}c.d(b,{PY:()=>f,UB:()=>g,c0:()=>e})},15194:(a,b,c)=>{c.d(b,{Ab:()=>h,FV:()=>t,NL:()=>s,QP:()=>u,Sj:()=>l,VA:()=>f,XH:()=>d,_J:()=>v,ef:()=>n,hR:()=>o,lu:()=>q,n6:()=>k,oo:()=>p,pL:()=>m,pQ:()=>i,qR:()=>g,vz:()=>r});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code","opencode-v2"],e=new Set(["claude","opencode","copilot","opencode-v2"]);function f(a){return e.has(a)}function g(a,b){return!f(a)&&!b}let h=10,i=50,j=/^[a-zA-Z0-9_-]+$/;function k(a){return"string"==typeof a&&a.length>0&&a.length<=64&&j.test(a)}function l(a,b){return!a||a===b}function m(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let n={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code","opencode-v2":"OpenCode V2"};function o(a){return d.includes(a)}function p(a){return n[a]??a}function q(a){return a.map((a,b)=>({id:a,cliTool:a,alias:p(a),order:b}))}let r=128,s=2097152;function t(a){return"number"==typeof a&&Number.isInteger(a)&&a>=r&&a<=s}let u=/^[a-zA-Z0-9][a-zA-Z0-9._:/-]*$/;function v(a){return"function"==typeof a.supportsImage&&!0===a.supportsImage()}},16983:(a,b,c)=>{c.d(b,{Jn:()=>e,Lg:()=>h,_u:()=>j,ao:()=>i,eu:()=>g,sO:()=>d,xT:()=>f});let d=1e3,e=200,f=200,g=2e4,h=121,i="CM_OPENCODE_PANE_WIDTH";function j(a="undefined"==typeof process?void 0:process.env){let b=a?.[i];if(void 0===b)return 80;let c=b.trim();if(!/^\d+$/.test(c))return 80;let d=Number.parseInt(c,10);return d<40||d>400?80:d}},24455:(a,b,c)=>{c.d(b,{BT:()=>G,CS:()=>j,Cs:()=>v,DR:()=>w,G:()=>C,GE:()=>n,LP:()=>A,Re:()=>J,SD:()=>B,UL:()=>F,Ue:()=>l,W8:()=>q,XK:()=>r,ZO:()=>E,_9:()=>y,aq:()=>p,fC:()=>I,hN:()=>x,kC:()=>z,pL:()=>m,ps:()=>D,v7:()=>k});var d=c(68901),e=c(66007),f=c(15194),g=c(72626),h=c(36925);let i=(0,g.h)("auto-yes-state"),j=":";function k(a,b,c){if(a.includes(j))throw Error(`worktreeId must not contain '${j}': ${a}`);if(!c||c===b)return`${a}${j}${b}`;if(c.includes(j))throw Error(`instanceId must not contain '${j}': ${c}`);return`${a}${j}${b}${j}${c}`}function l(a){let b=a.indexOf(j);return -1===b?a:a.substring(0,b)}function m(a){let b=a.split(j)[1];return void 0===b?null:(0,f.hR)(b)?b:null}function n(a){let b=a.split(j);return b[2]??b[1]??null}let o=(0,h.v)("__autoYesStates",()=>new Map);function p(a,b="claude",c){let d=k(a,b,c),e=o.get(d);return e?Date.now()>=e.expiresAt?r(a,b,"expired",c):e:null}function q(a,b,c,e,f,g){let h=k(a,b,g);if(!c)return r(a,b,void 0,g);{let a=Date.now(),b={enabled:!0,enabledAt:a,expiresAt:a+(e??d.t6),stopPattern:f};return o.set(h,b),b}}function r(a,b="claude",c,d,e){let f=k(a,b,d),g=o.get(f),h={enabled:!1,enabledAt:g?.enabledAt??0,expiresAt:g?.expiresAt??0,stopPattern:g?.stopPattern,stopReason:c,stopMatchedText:e};return o.set(f,h),h}let s="…[truncated]",t=new TextEncoder;function u(a){return t.encode(a).length}function v(a,b,c){let e=l(a),f=m(a);if(!f)return!1;let g=n(a)??void 0,h=p(e,f,g);if(!h?.stopPattern)return!1;if(!(0,d.P0)(h.stopPattern).valid)return i.warn("invalid-stop-pattern",{detail:String({compositeKey:a})}),r(e,f,void 0,g),!1;try{let j=new RegExp(h.stopPattern),k=(0,d.eJ)(j,b);if(null===k)return i.warn("stop-condition-check",{detail:String({compositeKey:a})}),r(e,f,void 0,g),!1;if(k){let d=function(a,b){let c;try{c=a.exec(b)}catch{return null}if(!c)return null;let d=c.index,e=d+c[0].length,f=b.split("\n"),g=b.slice(0,d).split("\n").length-1,h=b.slice(0,e).split("\n").length-1,i=Math.max(0,g-1),j=Math.min(f.length-1,h+1),k=f.slice(i,j+1).join("\n"),l=k.trim();return function(a,b=400){if(u(a)<=b)return a;let c=b-u(s);if(c<=0)return s;let d=0,e="";for(let b of a){let a=u(b);if(d+a>c)break;e+=b,d+=a}return e+s}(l.length>0?l:k)}(j,b)??void 0;return r(e,f,"stop_pattern_matched",g,d),c&&c(a),i.warn("stop-condition-matched",{detail:String({compositeKey:a})}),!0}}catch{i.warn("stop-condition-check",{detail:String({compositeKey:a})})}return!1}function w(a){let b=l(a);return!!(0,e.h6)(b)&&!!m(a)&&(o.delete(a),!0)}function x(){return Array.from(o.keys())}function y(a,b){return a.filter(a=>l(a)===b)}function z(a){return y(Array.from(o.keys()),a)}function A(a){let b=z(a);return b.forEach(a=>o.delete(a)),b.length}function B(){let a=new Map;for(let b of Array.from(o.keys())){let c=m(b);if(!c)continue;let d=l(b),e=n(b)??c,f=p(d,c,e);if(!f?.enabled)continue;let g=a.get(d)??{};g[e]={enabled:!0,expiresAt:f.expiresAt},a.set(d,g)}return a}function C(a){return a<H?D:Math.min(D*Math.pow(2,a-H+1),G)}let D=2e3,E=5e3,F=1e4,G=6e4,H=5,I=50,J=50},26923:(a,b,c)=>{c.d(b,{Ds:()=>p,L:()=>q,Q9:()=>l,Uo:()=>o,Wo:()=>m,e2:()=>t,iH:()=>n,iM:()=>s,yi:()=>r});var d=c(52201),e=c(38186);let f="sidebar_group_order",g="recent_browse_paths",h="default_selected_agents",i="default_surface_mode";function j(a,b){try{let c=a.prepare("SELECT value FROM app_settings WHERE key = ?").get(b);if(!c)return null;let d=JSON.parse(c.value);if(!Array.isArray(d)||!d.every(a=>"string"==typeof a))return null;return d}catch{return null}}function k(a,b,c){let d=Date.now();a.prepare(`
50
50
  INSERT INTO app_settings (key, value, created_at, updated_at)
51
51
  VALUES (?, ?, ?, ?)
52
52
  ON CONFLICT(key) DO UPDATE SET
@@ -62,7 +62,7 @@
62
62
  VALUES (?, ?, ?)
63
63
  ON CONFLICT(old_id) DO UPDATE SET
64
64
  worktree_id = excluded.worktree_id,
65
- created_at = excluded.created_at`).run(b,c,d))}function f(a,b,c=(0,d.xE)(a)){if(0===b.length)return;let{noDelete:e}=(0,d.ld)(a),g=b.map(()=>"?").join(",");for(let{table:d,column:f}of c)e.has(d)||a.prepare(`DELETE FROM "${d}" WHERE "${f}" IN (${g})`).run(...b)}function g(a,b,c,h=Date.now()){if(b===c||!a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return;a.pragma("defer_foreign_keys = ON");let i=a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(c),{noUpdate:j}=(0,d.ld)(a),k=(0,d.xE)(a),l=k.filter(({table:a})=>!j.has(a));if(i){for(let{table:d,column:e}of l)a.prepare(`UPDATE OR IGNORE "${d}" SET "${e}" = ? WHERE "${e}" = ?`).run(c,b);f(a,[b],k),a.prepare("DELETE FROM worktrees WHERE id = ?").run(b),e(a,b,c,h);return}for(let{table:d,column:e}of(a.prepare("UPDATE worktrees SET id = ? WHERE id = ?").run(c,b),l))a.prepare(`UPDATE "${d}" SET "${e}" = ? WHERE "${e}" = ?`).run(c,b);e(a,b,c,h)}},34257:(a,b,c)=>{c.d(b,{Bo:()=>h,_P:()=>i,gj:()=>e});var d=c(57510);let e="PostModelSwitch",f="model_switch",g="to_model",h=(a,b)=>a===e?{event:"notification",detail:function(a){return null===a?f:`${f}:${a}`}((0,d.O2)(b,g))}:null;function i(a){return(0,d.O2)(a,"hook_event_name")!==e?null:(0,d.O2)(a,g)}},38186:(a,b,c)=>{c.d(b,{AG:()=>e,jg:()=>f,wf:()=>d});let d="terminal",e=new Set(["terminal","chat"]);function f(a){return"string"==typeof a&&e.has(a)}},40277:(a,b,c)=>{c.d(b,{ZN:()=>g,ld:()=>f,xE:()=>e});let d="worktree_id";function e(a){let b=a.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'").all(),c=[],e=new Set,f=(a,b)=>{let d=JSON.stringify([a,b]);e.has(d)||(e.add(d),c.push({table:a,column:b}))};for(let{name:c}of b)if("worktrees"!==c)for(let b of(a.prepare(`PRAGMA table_info("${c}")`).all().some(a=>a.name===d)&&f(c,d),a.prepare(`PRAGMA foreign_key_list("${c}")`).all()))"worktrees"===b.table&&("id"===b.to||null===b.to)&&f(c,b.from);return c}function f(a){let b=a.prepare("SELECT tbl_name, sql FROM sqlite_master WHERE type = 'trigger'").all(),c=new Set,d=new Set;for(let a of b)a.sql&&/\bRAISE\s*\(\s*ABORT/i.test(a.sql)&&(/\bBEFORE\s+UPDATE\b/i.test(a.sql)&&c.add(a.tbl_name),/\bBEFORE\s+DELETE\b/i.test(a.sql)&&d.add(a.tbl_name));return{noUpdate:c,noDelete:d}}function g(a){let{noDelete:b}=f(a);return e(a).filter(({table:a})=>!b.has(a))}},43252:(a,b,c)=>{c.d(b,{D2:()=>H,O$:()=>C,Os:()=>E,W6:()=>q,WZ:()=>p,XE:()=>s,ZL:()=>F,g5:()=>z,iR:()=>A,jx:()=>o,q:()=>w,sI:()=>r,xM:()=>B,yc:()=>x});var d=c(55511),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(87447),j=c(15194),k=c(34257),l=c(70997),m=c(13287);let n=(0,c(72626).h)("lib/hooks/hook-settings-generator"),o="/api/hooks/agent-event",p="/api/hooks/permission-request",q=5,r=5,s="CM_AUTH_TOKEN",t=m.k$,u=["Bash(pkill:*)","Bash(killall:*)","Bash(kill -9:*)","Bash(tmux kill-server:*)","Bash(tmux kill-session:*)","Bash(tmux set-option -g:*)","Bash(tmux set -g:*)","Bash(tmux bind-key:*)","Bash(tmux bind:*)","Bash(tmux unbind-key:*)","Bash(tmux unbind:*)"],v=(0,g.join)("scripts","hooks","cmate-agent-event.sh");function w(){return"0"!==process.env.CM_AGENT_HOOKS_INJECT}function x(){return!!(process.env[s]||process.env.CM_AUTH_TOKEN_HASH)}function y(a={}){let b=(0,g.join)((0,f.homedir)(),".commandmate","hooks");return a.directory?(0,h.T)(a.directory,b,"HookSettingsOptions.directory"):(0,h.T)(process.env.CM_AGENT_HOOKS_DIR,b,"CM_AGENT_HOOKS_DIR")}function z(a){let b=a.cliToolId??l.v;return a.instanceId??b}function A(a,b={}){let c=a.cliToolId??l.v,e=z(a),f=`${c}-${a.worktreeId}-${e}`.replace(/[^a-zA-Z0-9_-]/g,"_"),h=(0,d.createHash)("sha256").update(JSON.stringify([c,a.worktreeId,e])).digest("hex").slice(0,12);return(0,g.join)(y(b),`${f.slice(0,80)}-${h}.json`)}function B(a,b={}){return D(o,a,b)}function C(a,b={}){return D(p,a,b)}function D(a,b,c){let d=b.cliToolId??l.v,e=c.port??(0,i.D0)(),f=new URLSearchParams({tool:d,worktreeId:b.worktreeId,instanceId:z(b)});return`http://127.0.0.1:${e}${a}?${f.toString()}`}function E(){let a=(0,g.resolve)(process.cwd(),v);return(0,e.existsSync)(a)?a:null}function F(a){return`'${a.replace(/'/g,"'\\''")}'`}function G(a,b,c=q){let d={"Content-Type":"application/json"},e={type:"http",url:a,headers:d,timeout:c};return b&&(d.Authorization=`Bearer $${s}`,e.allowedEnvVars=[s]),e}function H(a,b,c={}){if(!w())return a;if(!(0,j.n6)(z(b)))return n.warn("hook-settings-invalid-instance-id",{worktreeId:b.worktreeId}),a;try{let d=function(a,b={}){let c=A(a,b);return(0,e.mkdirSync)(y(b),{recursive:!0,mode:448}),(0,e.writeFileSync)(c,`${JSON.stringify(function(a,b={}){let c=B(a,b),d=b.withAuthHeader??x(),e=()=>G(c,d);return{hooks:{SessionStart:[{hooks:[{type:"command",command:function(a,b={}){let c=B(a,b),d=b.withAuthHeader??x(),e=void 0===b.relayScriptPath?E():b.relayScriptPath;if(e)return[F(e),"--tool",F(a.cliToolId??l.v),"--event session_start --worktree-id",F(a.worktreeId),"--instance-id",F(z(a)),"--url",F(c),"--stdin-json"].join(" ");let f=d?` -H "Authorization: Bearer $${s}"`:"";return`curl -sS -m ${q} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${F(c)} >/dev/null 2>&1 || true`}(a,b),timeout:q}]}],UserPromptSubmit:[{hooks:[e()]}],Stop:[{hooks:[e()]}],Notification:[{matcher:"permission_prompt|idle_prompt",hooks:[e()]}],SessionEnd:[{hooks:[e()]}],PreToolUse:[{matcher:t,hooks:[e()]}],PostToolUse:[{matcher:t,hooks:[e()]}],[k.gj]:[{hooks:[e()]}],PermissionRequest:[{hooks:[G(C(a,b),d,r)]}]},permissions:{deny:[...u]}}}(a,b),null,2)}
65
+ created_at = excluded.created_at`).run(b,c,d))}function f(a,b,c=(0,d.xE)(a)){if(0===b.length)return;let{noDelete:e}=(0,d.ld)(a),g=b.map(()=>"?").join(",");for(let{table:d,column:f}of c)e.has(d)||a.prepare(`DELETE FROM "${d}" WHERE "${f}" IN (${g})`).run(...b)}function g(a,b,c,h=Date.now()){if(b===c||!a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return;a.pragma("defer_foreign_keys = ON");let i=a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(c),{noUpdate:j}=(0,d.ld)(a),k=(0,d.xE)(a),l=k.filter(({table:a})=>!j.has(a));if(i){for(let{table:d,column:e}of l)a.prepare(`UPDATE OR IGNORE "${d}" SET "${e}" = ? WHERE "${e}" = ?`).run(c,b);f(a,[b],k),a.prepare("DELETE FROM worktrees WHERE id = ?").run(b),e(a,b,c,h);return}for(let{table:d,column:e}of(a.prepare("UPDATE worktrees SET id = ? WHERE id = ?").run(c,b),l))a.prepare(`UPDATE "${d}" SET "${e}" = ? WHERE "${e}" = ?`).run(c,b);e(a,b,c,h)}},34257:(a,b,c)=>{c.d(b,{Bo:()=>h,_P:()=>i,gj:()=>e});var d=c(57510);let e="PostModelSwitch",f="model_switch",g="to_model",h=(a,b)=>a===e?{event:"notification",detail:function(a){return null===a?f:`${f}:${a}`}((0,d.O2)(b,g))}:null;function i(a){return(0,d.O2)(a,"hook_event_name")!==e?null:(0,d.O2)(a,g)}},36925:(a,b,c)=>{c.d(b,{v:()=>d});function d(a,b){return globalThis[a]??=b()}},38186:(a,b,c)=>{c.d(b,{AG:()=>e,jg:()=>f,wf:()=>d});let d="terminal",e=new Set(["terminal","chat"]);function f(a){return"string"==typeof a&&e.has(a)}},40277:(a,b,c)=>{c.d(b,{ZN:()=>g,ld:()=>f,xE:()=>e});let d="worktree_id";function e(a){let b=a.prepare("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'").all(),c=[],e=new Set,f=(a,b)=>{let d=JSON.stringify([a,b]);e.has(d)||(e.add(d),c.push({table:a,column:b}))};for(let{name:c}of b)if("worktrees"!==c)for(let b of(a.prepare(`PRAGMA table_info("${c}")`).all().some(a=>a.name===d)&&f(c,d),a.prepare(`PRAGMA foreign_key_list("${c}")`).all()))"worktrees"===b.table&&("id"===b.to||null===b.to)&&f(c,b.from);return c}function f(a){let b=a.prepare("SELECT tbl_name, sql FROM sqlite_master WHERE type = 'trigger'").all(),c=new Set,d=new Set;for(let a of b)a.sql&&/\bRAISE\s*\(\s*ABORT/i.test(a.sql)&&(/\bBEFORE\s+UPDATE\b/i.test(a.sql)&&c.add(a.tbl_name),/\bBEFORE\s+DELETE\b/i.test(a.sql)&&d.add(a.tbl_name));return{noUpdate:c,noDelete:d}}function g(a){let{noDelete:b}=f(a);return e(a).filter(({table:a})=>!b.has(a))}},43252:(a,b,c)=>{c.d(b,{D2:()=>H,K6:()=>y,O$:()=>C,Os:()=>E,W6:()=>q,WZ:()=>p,XE:()=>s,ZL:()=>F,g5:()=>z,iR:()=>A,jx:()=>o,q:()=>w,sI:()=>r,xM:()=>B,yc:()=>x});var d=c(55511),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(87447),j=c(15194),k=c(34257),l=c(70997),m=c(13287);let n=(0,c(72626).h)("lib/hooks/hook-settings-generator"),o="/api/hooks/agent-event",p="/api/hooks/permission-request",q=5,r=5,s="CM_AUTH_TOKEN",t=m.k$,u=["Bash(pkill:*)","Bash(killall:*)","Bash(kill -9:*)","Bash(tmux kill-server:*)","Bash(tmux kill-session:*)","Bash(tmux set-option -g:*)","Bash(tmux set -g:*)","Bash(tmux bind-key:*)","Bash(tmux bind:*)","Bash(tmux unbind-key:*)","Bash(tmux unbind:*)"],v=(0,g.join)("scripts","hooks","cmate-agent-event.sh");function w(){return"0"!==process.env.CM_AGENT_HOOKS_INJECT}function x(){return!!(process.env[s]||process.env.CM_AUTH_TOKEN_HASH)}function y(a={}){let b=(0,g.join)((0,f.homedir)(),".commandmate","hooks");return a.directory?(0,h.T)(a.directory,b,"HookSettingsOptions.directory"):(0,h.T)(process.env.CM_AGENT_HOOKS_DIR,b,"CM_AGENT_HOOKS_DIR")}function z(a){let b=a.cliToolId??l.v;return a.instanceId??b}function A(a,b={}){let c=a.cliToolId??l.v,e=z(a),f=`${c}-${a.worktreeId}-${e}`.replace(/[^a-zA-Z0-9_-]/g,"_"),h=(0,d.createHash)("sha256").update(JSON.stringify([c,a.worktreeId,e])).digest("hex").slice(0,12);return(0,g.join)(y(b),`${f.slice(0,80)}-${h}.json`)}function B(a,b={}){return D(o,a,b)}function C(a,b={}){return D(p,a,b)}function D(a,b,c){let d=b.cliToolId??l.v,e=c.port??(0,i.D0)(),f=new URLSearchParams({tool:d,worktreeId:b.worktreeId,instanceId:z(b)});return`http://127.0.0.1:${e}${a}?${f.toString()}`}function E(){let a=(0,g.resolve)(process.cwd(),v);return(0,e.existsSync)(a)?a:null}function F(a){return`'${a.replace(/'/g,"'\\''")}'`}function G(a,b,c=q){let d={"Content-Type":"application/json"},e={type:"http",url:a,headers:d,timeout:c};return b&&(d.Authorization=`Bearer $${s}`,e.allowedEnvVars=[s]),e}function H(a,b,c={}){if(!w())return a;if(!(0,j.n6)(z(b)))return n.warn("hook-settings-invalid-instance-id",{worktreeId:b.worktreeId}),a;try{let d=function(a,b={}){let c=A(a,b);return(0,e.mkdirSync)(y(b),{recursive:!0,mode:448}),(0,e.writeFileSync)(c,`${JSON.stringify(function(a,b={}){let c=B(a,b),d=b.withAuthHeader??x(),e=()=>G(c,d);return{hooks:{SessionStart:[{hooks:[{type:"command",command:function(a,b={}){let c=B(a,b),d=b.withAuthHeader??x(),e=void 0===b.relayScriptPath?E():b.relayScriptPath;if(e)return[F(e),"--tool",F(a.cliToolId??l.v),"--event session_start --worktree-id",F(a.worktreeId),"--instance-id",F(z(a)),"--url",F(c),"--stdin-json"].join(" ");let f=d?` -H "Authorization: Bearer $${s}"`:"";return`curl -sS -m ${q} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${F(c)} >/dev/null 2>&1 || true`}(a,b),timeout:q}]}],UserPromptSubmit:[{hooks:[e()]}],Stop:[{hooks:[e()]}],Notification:[{matcher:"permission_prompt|idle_prompt",hooks:[e()]}],SessionEnd:[{hooks:[e()]}],PreToolUse:[{matcher:t,hooks:[e()]}],PostToolUse:[{matcher:t,hooks:[e()]}],[k.gj]:[{hooks:[e()]}],PermissionRequest:[{hooks:[G(C(a,b),d,r)]}]},permissions:{deny:[...u]}}}(a,b),null,2)}
66
66
  `,{mode:384}),c}(b,c);return`${F(a)} --settings ${F(d)}`}catch(c){return n.warn("hook-settings-write-failed",{worktreeId:b.worktreeId,error:c instanceof Error?c.message:String(c)}),a}}},49791:(a,b,c)=>{c.d(b,{CH:()=>B,CI:()=>N,De:()=>X,EI:()=>J,Ei:()=>F,K1:()=>M,LV:()=>E,Lf:()=>K,Li:()=>v,M:()=>R,M2:()=>p,Mq:()=>W,Ok:()=>t,T0:()=>j,UR:()=>z,Vc:()=>i,_M:()=>Y,_t:()=>l,bg:()=>P,ep:()=>D,er:()=>w,fy:()=>A,iv:()=>S,mY:()=>x,mi:()=>G,oO:()=>Z,pm:()=>U,sc:()=>s,uS:()=>k,wZ:()=>C,xR:()=>y,zu:()=>V});var d=c(55511),e=c(79551),f=c(72626),g=c(99499);let h=(0,f.h)("lib/hooks/sources/opencode/client"),i="127.0.0.1",j=5e3,k="manual",l="application/json",m="text/event-stream";async function n(a,b){return fetch(a,{...b,redirect:k})}function o(a,b){let c=a.headers?.get?.("content-type");return"string"==typeof c&&c.split(";",1)[0]?.trim().toLowerCase()===b}function p(a){return`http://${i}:${a}`}function q(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}async function r(a,b){try{let c=await n(a,{...b,signal:AbortSignal.timeout(j)});if(!c.ok)return null;if(!o(c,l))return h.debug("opencode-request-content-type",{url:a,contentType:c.headers?.get?.("content-type")??null}),null;return await c.json()}catch(b){return h.debug("opencode-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),null}}async function s(a){let b,c,d=`${p(a)}/global/health`;try{b=await n(d,{signal:AbortSignal.timeout(j)})}catch(b){let a=b instanceof Error?b.message:String(b);return h.debug("opencode-request-failed",{url:d,error:a}),{kind:"refused",error:a}}if(!b.ok)return{kind:"rejected",status:b.status};if(!o(b,l))return{kind:"rejected",status:0};try{c=await b.json()}catch{return{kind:"rejected",status:b.status}}return q(c)&&!0===c.healthy?{kind:"healthy",health:{healthy:!0,version:"string"==typeof c.version?c.version:null}}:{kind:"rejected",status:0}}async function t(a){let b=await s(a);return"healthy"===b.kind?b.health:null}function u(a){return Array.isArray(a)?a.filter(q):[]}async function v(a){return u(await r(`${p(a)}/permission`))}async function w(a){return u(await r(`${p(a)}/question`))}async function x(a){let b=await r(`${p(a)}/session/status`);if(!q(b))return null;let c={},d=0;for(let[e,f]of Object.entries(b)){if(d>=128){h.warn("opencode-session-status-truncated",{port:a,kept:d,total:Object.keys(b).length,limit:128});break}q(f)&&("busy"===f.type||"idle"===f.type)&&(c[e]=f.type,d+=1)}return c}async function y(a){let b=await x(a);return null===b?null:Object.values(b).includes("busy")?"busy":"idle"}async function z(a,b){return!0===await r(`${p(a)}/session/${encodeURIComponent(b)}/abort`,{method:"POST"})}function A(a){return(0,e.pathToFileURL)(a).href}function B(){return`msg_cmate${(0,d.randomBytes)(12).toString("hex")}`}async function C(a,b,c,d,e){let f=`${p(a)}/session/${encodeURIComponent(b)}/prompt_async`;try{let g=await n(f,{method:"POST",headers:{"Content-Type":l},body:JSON.stringify({messageID:c,...function(a){if(!a)return{};let b={};return a.agent&&(b.agent=a.agent),a.model?.providerID&&a.model.modelID&&(b.model={providerID:a.model.providerID,modelID:a.model.modelID}),a.variant&&(b.variant=a.variant),b}(e),parts:d}),signal:AbortSignal.timeout(j)});if(204!==g.status)return h.warn("opencode-prompt-rejected",{port:a,sessionId:b,status:g.status}),!1;return!0}catch(a){return h.debug("opencode-request-failed",{url:f,error:a instanceof Error?a.message:String(a)}),!1}}async function D(a,b,c){let d,e,f=`${p(a)}/session/${encodeURIComponent(b)}/message/${encodeURIComponent(c)}`;try{d=await n(f,{signal:AbortSignal.timeout(j)})}catch(a){return{kind:"unknown",reason:a instanceof Error?a.message:String(a)}}if(404===d.status)return{kind:"missing"};if(!d.ok)return{kind:"unknown",reason:`status ${d.status}`};if(!o(d,l))return{kind:"unknown",reason:"content-type"};try{e=await d.json()}catch{return{kind:"unknown",reason:"body"}}if(!q(e))return{kind:"unknown",reason:"body"};let g=q(e.info)?e.info:null;return null===g||"user"!==g.role?{kind:"unknown",reason:"role"}:{kind:"found",texts:(Array.isArray(e.parts)?e.parts:[]).filter(q).filter(a=>"text"===a.type&&"string"==typeof a.text).map(a=>a.text)}}async function E(a,b,c,d){let e={reply:c};return d&&(e.message=d),null!==await r(`${p(a)}/permission/${encodeURIComponent(b)}/reply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}async function F(a,b,c){return null!==await r(`${p(a)}/question/${encodeURIComponent(b)}/reply`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({answers:c})})}async function G(a,b){let c=await n(`${p(a)}/event`,{signal:b,headers:{Accept:m}});if(!c.ok||!c.body)throw Error(`opencode /event responded ${c.status}`);if(!o(c,m))throw Error(`opencode /event answered ${c.headers?.get?.("content-type")??"no content-type"}`);return H(a,c.body.getReader())}async function*H(a,b){let c=new TextDecoder,d=function(){let a="",b=[],c=0,d=!1,e=0,f=[],g=()=>{b=[],c=0,d=!0,e+=1},h=()=>{0!==b.length&&(f.push(b.join("\n")),b=[],c=0)},i=a=>{let e=a.endsWith("\r")?a.slice(0,-1):a;if(""===e)return void(d?d=!1:h());if(!d&&!e.startsWith(":")&&e.startsWith("data:")){let a=e.slice(5).replace(/^ /,"");if(c+a.length>262144)return void g();b.push(a),c+=a.length}};return{push(b){let c=(a+=b).indexOf("\n");for(;c>=0;)i(a.slice(0,c)),c=(a=a.slice(c+1)).indexOf("\n");return a.length>262144&&(a="",g()),f.splice(0,f.length)},flush:()=>(""!==a&&(i(a),a=""),d?d=!1:h(),f.splice(0,f.length)),oversizedFrames:()=>e}}(),e=0,f=()=>{let b=d.oversizedFrames();b!==e&&(h.warn("opencode-sse-frame-oversized",{port:a,dropped:b,newlyDropped:b-e,limitChars:262144}),e=b)};try{for(;;){let{done:a,value:e}=await b.read();if(a)break;let g=c.decode(e,{stream:!0});for(let a of d.push(g)){let b=I(a);b&&(yield b)}f()}for(let a of d.flush()){let b=I(a);b&&(yield b)}f()}finally{await b.cancel().catch(()=>{})}}function I(a){try{let b=JSON.parse(a);return q(b)?b:null}catch{return null}}async function J(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/message`,d=await r(c);if(!Array.isArray(d))return null;let e=d.filter(q);return e.length>500?e.slice(e.length-500):e}async function K(a,b,c){return function(a,b,c){if(!q(a))return null;for(let d of Array.isArray(a.providers)?a.providers:[]){if(!q(d)||d.id!==b)continue;let a=q(d.models)?d.models:null;if(!a)break;let e=a[c];if(!q(e))break;let f=q(e.limit)?e.limit:null;if(!f)break;let g=f.context;if("number"!=typeof g||!Number.isFinite(g)||g<=0)break;return g}return null}(await L(a),b,c)}async function L(a){return r(`${p(a)}/config/providers`)}async function M(a){return function(a){if(!q(a))return[];let b=Array.isArray(a.providers)?a.providers:[],c=[];for(let a of b){if(!q(a))continue;let b="string"==typeof a.id?a.id:null;if(!b)continue;let d=[];for(let[b,c]of Object.entries(q(a.models)?a.models:{})){if(!q(c))continue;let a=q(c.variants)?Object.keys(c.variants):[];d.push({id:b,name:"string"==typeof c.name&&c.name.length>0?c.name:b,variants:a.sort()})}d.sort((a,b)=>a.id.localeCompare(b.id)),c.push({id:b,name:"string"==typeof a.name&&a.name.length>0?a.name:b,models:d})}return c.sort((a,b)=>a.id.localeCompare(b.id)),c}(await L(a))}async function N(a){var b=await r(`${p(a)}/agent`);if(!Array.isArray(b))return[];let c=[];for(let a of b){if(!q(a))continue;let b="string"==typeof a.name?a.name:null;b&&!0!==a.hidden&&c.push({name:b,mode:"string"==typeof a.mode?a.mode:"",description:"string"==typeof a.description?a.description:null})}return c}function O(a,b){let c=a[b];return"number"==typeof c&&Number.isFinite(c)&&c>0?c:0}async function P(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/message?limit=4`,d=await r(c);if(!Array.isArray(d))return null;for(let a=d.length-1;a>=0;a-=1){let b=d[a];if(!q(b))continue;let c=q(b.info)?b.info:null;if(!c||"assistant"!==c.role)continue;let e=q(c.tokens)?c.tokens:null;if(!e)continue;let f=O(e,"output");if(f<=0)continue;let g=q(e.cache)?e.cache:{};return O(e,"input")+f+O(e,"reasoning")+O(g,"read")+O(g,"write")}return null}let Q=["added","deleted","modified"];function R(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if(!q(c))continue;let a="string"==typeof c.patch?c.patch:null;if(b.push({file:"string"==typeof c.file&&c.file.length>0?c.file:null,patch:null===a?null:a.slice(0,65536),additions:"number"==typeof c.additions&&Number.isFinite(c.additions)?c.additions:0,deletions:"number"==typeof c.deletions&&Number.isFinite(c.deletions)?c.deletions:0,status:"string"==typeof c.status&&Q.includes(c.status)?c.status:null}),b.length>=200)break}return b}async function S(a,b,c){let d=`${p(a)}/session/${encodeURIComponent(b)}/diff?messageID=${encodeURIComponent(c)}`,e=await r(d);return Array.isArray(e)?R(e):null}async function T(a,b){let c;try{c=await n(a,{method:"POST",headers:{"Content-Type":l},body:JSON.stringify(b),signal:AbortSignal.timeout(j)})}catch(b){return h.debug("opencode-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),{outcome:{kind:"unreachable"}}}if(409===c.status)return{outcome:{kind:"busy"}};if(!c.ok)return h.warn("opencode-revert-rejected",{url:a,status:c.status}),{outcome:{kind:"rejected",status:c.status}};if(!o(c,l))return{outcome:{kind:"unreachable"}};try{return{revertedTo:function(a){if(!q(a))return null;let b=q(a.revert)?a.revert:null;return b&&"string"==typeof b.messageID&&b.messageID.length>0?b.messageID:null}(await c.json())}}catch{return{outcome:{kind:"unreachable"}}}}async function U(a,b,c){let d=`${p(a)}/session/${encodeURIComponent(b)}/revert`,e=await T(d,{messageID:c});return"outcome"in e?e.outcome:e.revertedTo===c?{kind:"reverted",messageId:c}:{kind:"no_op"}}async function V(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/unrevert`,d=await T(c,{});return"outcome"in d?d.outcome:null===d.revertedTo?{kind:"restored"}:{kind:"no_op"}}async function W(a){let b=await r(`${p(a)}/config`);return(0,g.ac)(b)}async function X(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/share`;try{let d=await n(c,{method:"POST",signal:AbortSignal.timeout(2e4)});if(404===d.status)return{kind:"not-found"};if(!d.ok)return h.warn("opencode-share-refused",{port:a,sessionId:b,status:d.status}),{kind:"refused",status:d.status};if(!o(d,l))return{kind:"failed",reason:"response was not JSON"};let e=await d.json(),f=(0,g.gn)(e);if(null===f)return h.warn("opencode-share-no-url",{port:a,sessionId:b}),{kind:"failed",reason:"server returned no share URL"};return h.info("opencode-share-created",{port:a,sessionId:b}),{kind:"shared",url:f}}catch(a){return{kind:"failed",reason:a instanceof Error?a.message:String(a)}}}async function Y(a,b){let c=`${p(a)}/session/${encodeURIComponent(b)}/share`;try{let d=await n(c,{method:"DELETE",signal:AbortSignal.timeout(2e4)});if(!d.ok)return h.warn("opencode-unshare-refused",{port:a,sessionId:b,status:d.status}),!1;return h.info("opencode-share-removed",{port:a,sessionId:b}),!0}catch(c){return h.warn("opencode-unshare-failed",{port:a,sessionId:b,error:c instanceof Error?c.message:String(c)}),!1}}async function Z(a,b){let c=await r(`${p(a)}/session/${encodeURIComponent(b)}`);return(0,g.gn)(c)}},52201:(a,b,c)=>{c.d(b,{Lt:()=>h,MJ:()=>l,Wj:()=>f,eG:()=>j,eu:()=>e,fJ:()=>g,nW:()=>k});var d=c(15194);let e=2,f=6,g=["claude","codex","antigravity"];function h(a){return a.length<e||a.length>f?{valid:!1,error:`Must be ${e}-${f} elements`}:a.every(a=>"string"==typeof a&&d.XH.includes(a))?new Set(a).size!==a.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:a}:{valid:!1,error:"Invalid CLI tool ID"}}let i=["worktree","repo","appSettings"];function j(a={}){for(let b of i){let c=a[b];if(null==c)continue;let d=h([...c]);if(d.valid)return d.value}return g}function k(a,b,c){let d=null;if(a)try{let b=JSON.parse(a);Array.isArray(b)&&(d=b)}catch{}return j({worktree:d,repo:c,appSettings:b})}function l(a){return!Array.isArray(a)||a.length<e||a.length>f?{valid:!1,error:`selected_agents must be an array of ${e}-${f} elements`}:h(a)}},52660:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>f,MODEL_CHANGE_REQUEST_ID_PREFIX:()=>E,RELAY_REQUEST_ID_PREFIX:()=>G,RELAY_SYSTEM_REQUEST_ID_PREFIX:()=>H,USER_TURN_CANDIDATE_LIMIT:()=>o,clearLastUserMessage:()=>x,createMessage:()=>j,createModelChangeMessage:()=>F,createRelaySystemMessage:()=>M,deleteAllMessages:()=>s,deleteMessageById:()=>t,deleteMessagesByCliTool:()=>u,deleteMessagesByInstance:()=>v,findMessageByRequestId:()=>n,findUnkeyedUserMessages:()=>p,getLastAssistantMessageAt:()=>h,getLastMessage:()=>r,getLastMessageAtByInstance:()=>i,getLastUserMessage:()=>m,getLastUserMessageForInstance:()=>K,getLatestOpenPromptMessage:()=>L,getMessageById:()=>A,getMessages:()=>l,getMessagesByDateRange:()=>z,markPendingPromptsAsAnswered:()=>C,parseRelayRequestId:()=>J,recomputeLastUserMessage:()=>y,recordAnsweredPrompt:()=>D,relayRequestId:()=>I,setMessageRequestId:()=>q,updateLastUserMessage:()=>w,updateMessageContent:()=>k,updatePromptData:()=>B});var d=c(55511);let e=(0,c(72626).h)("chat-db"),f="AND archived = 0";function g(a){let b=a.cli_tool_id??"claude";return{id:a.id,worktreeId:a.worktree_id,role:a.role,content:a.content,summary:a.summary||void 0,timestamp:new Date(a.timestamp),logFileName:a.log_file_name||void 0,requestId:a.request_id||void 0,messageType:a.message_type||"normal",promptData:a.prompt_data?JSON.parse(a.prompt_data):void 0,cliToolId:b,instanceId:a.instance_id??b,archived:1===a.archived}}function h(a,b){let c=a.prepare(`
67
67
  SELECT MAX(timestamp) as last_assistant_message_at
68
68
  FROM chat_messages
@@ -198,7 +198,7 @@
198
198
  AND COALESCE(instance_id, cli_tool_id, 'claude') = ?
199
199
  ORDER BY timestamp DESC
200
200
  LIMIT 1
201
- `).get(b,c,d);if(!e)return null;let h=g(e);return h.promptData?.status==="answered"?null:h}function M(a,b){return j(a,{worktreeId:b.worktreeId,role:"assistant",content:b.content,messageType:"normal",timestamp:new Date(b.at),requestId:`${H}${b.relayId}:${b.kind}`,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId})}},57510:(a,b,c)=>{c.d(b,{KR:()=>e,NZ:()=>p,O2:()=>j,Qd:()=>o,Uq:()=>q,Wv:()=>l,ex:()=>i,hY:()=>n,mJ:()=>f,oJ:()=>k,qU:()=>g});var d=c(62887);function e(a,b,c){return d=>d===a?{event:b,detail:c??null}:null}function f(a){return Object.entries(a).map(([a,b])=>e(a,b))}function g(a,b,c){for(let d of a){let a=d(b,c);if(a)return a}return null}let h=globalThis.__agentSourceUnknownEvents??=new Map;function i(a,b){let c=h.get(a)??{count:0,names:[]};c.count+=1;let d=b??"(unnamed)";!c.names.includes(d)&&c.names.length<32&&c.names.push(d),h.set(a,c)}function j(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function k(a,b){for(let c of b){let b=j(a,c);if(null!==b)return b}return null}function l(a){return null===a||""===a?null:a.slice(0,d.h9)}let m=/^[A-Za-z0-9._:-]+$/;function n(a){return null===a||a.length>128?null:m.test(a)?a:null}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a,b){let c=a;for(let a of b){if(!o(c))return null;c=c[a]}return"string"==typeof c&&""!==c?c:null}function q(a,b,c,e={}){var f;let g=void 0!==a.detail&&null!==a.detail?l(a.detail):l(e.detail?.(a.event,b)??null);return{event:a.event,detail:g,conversationId:a.conversationId??(e.conversationId?k(b,e.conversationId):null),toolCallId:a.toolCallId??(e.toolCallId?k(b,e.toolCallId):null),model:null===(f=e.extractModel?.(b)??(e.modelFields?k(b,e.modelFields):null))||""===f?null:f.slice(0,d.h9),raw:b,receivedAt:c}}},62887:(a,b,c)=>{c.d(b,{HV:()=>h,KC:()=>g,b0:()=>d,h9:()=>f,o0:()=>e});let d=["stop","notification","session_start","user_prompt_submit","session_end","pre_tool_use","post_tool_use"];function e(a){return"string"==typeof a&&d.includes(a)}let f=128,g="permission_replied",h="self_resume_pending"},64185:(a,b,c)=>{c.d(b,{DE:()=>n,oZ:()=>m});var d=c(29021),e=c(33873),f=c(4689),g=c(72626),h=c(52201);let i=(0,g.h)("repo-agents-config"),j=["version","agents","primary"],k=new Map;function l(a,b=120){let c=("string"==typeof a?a:Array.isArray(a)?"a list":null===a?"null":"object"==typeof a?"a mapping":String(a)).replace(/[\u0000-\u001F\u007F-\u009F]/g," ");return c.length>b?`${c.slice(0,b)}...`:c}function m(a,b=Date.now()){let c=function(a){let b,c=(0,e.join)(a,".commandmate/agents.yaml");try{b=(0,d.readFileSync)(c,"utf8")}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return null;return i.warn("repo-agents:read-failed",{source:c,code:a,error:l(b.message)}),null}let g=Buffer.byteLength(b,"utf8");return g>65536?(i.warn("repo-agents:too-large",{source:c,bytes:g,limit:65536}),null):function(a,b){var c;let d;try{d=(0,f.qg)(a)}catch(a){return i.warn("repo-agents:yaml-parse-failed",{source:b,error:l(a.message)}),null}if(null==d)return i.debug("repo-agents:empty",{source:b}),null;if(!("object"==typeof(c=d)&&null!==c&&!Array.isArray(c)))return i.warn("repo-agents:not-a-mapping",{source:b,got:l(d)}),null;let e=Object.keys(d).filter(a=>!j.includes(a));if(e.length>0)return i.warn("repo-agents:unknown-keys",{source:b,keys:e.map(a=>l(a,40))}),null;if(void 0!==d.version&&null!==d.version&&1!==("number"==typeof d.version?d.version:"string"==typeof d.version&&/^\d+$/.test(d.version)?Number(d.version):null))return i.warn("repo-agents:unsupported-version",{source:b,got:l(d.version)}),null;if(!Array.isArray(d.agents))return i.warn("repo-agents:agents-not-a-list",{source:b,got:l(d.agents)}),null;let g=(0,h.Lt)(d.agents);if(!g.valid)return i.warn("repo-agents:invalid-agents",{source:b,error:g.error,got:d.agents.map(a=>l(a,40))}),null;let k=g.value;if(void 0===d.primary||null===d.primary)return k;if("string"!=typeof d.primary||!k.includes(d.primary))return i.warn("repo-agents:primary-not-in-agents",{source:b,got:l(d.primary,40),agents:k}),null;let m=d.primary;return[m,...k.filter(a=>a!==m)]}(b,c)}(a);return k.set(a,{value:c,expiresAt:b+6e4}),c}function n(a,b=Date.now()){if(!a)return null;let c=k.get(a);return c&&c.expiresAt>b?c.value:m(a,b)}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},68901:(a,b,c)=>{c.d(b,{FW:()=>l,Ke:()=>k,P0:()=>n,QN:()=>j,dR:()=>i,eJ:()=>o,t6:()=>h,ul:()=>m});var d=c(82366),e=c.n(d),f=c(16983);let g=[36e5,108e5,288e5],h=36e5;function i(a){return"number"==typeof a&&g.includes(a)}let j=5e3,k=f.sO,l=5e3,m=20;function n(a){if(a.length>500)return{valid:!1,error:"Pattern must be 500 characters or less"};if(!e()(a))return{valid:!1,error:"Pattern may cause performance issues (catastrophic backtracking detected)"};try{return new RegExp(a),{valid:!0}}catch{return{valid:!1,error:"Invalid regular expression syntax"}}}function o(a,b,c=100){try{return a.test(b)}catch{return null}}},70997:(a,b,c)=>{c.d(b,{v:()=>d});let d="claude"},73753:(a,b,c)=>{c.d(b,{DC:()=>v,Dx:()=>u,GA:()=>A,HZ:()=>r,NV:()=>l,O:()=>s,P9:()=>C,Rm:()=>H,Sj:()=>E,ZL:()=>n,_D:()=>w,_h:()=>o,ef:()=>x,getWorktreeById:()=>m,hq:()=>p,iu:()=>y,nO:()=>D,oZ:()=>G,p4:()=>B,s:()=>z,uJ:()=>F,vi:()=>k,yB:()=>t,z1:()=>q});var d=c(52201),e=c(64185),f=c(26923),g=c(52660),h=c(27923);let i=new Set;function j(a){return new Set(a.prepare("SELECT DISTINCT worktree_id FROM agent_instances").all().map(a=>a.worktree_id))}function k(a,b){let c=`
201
+ `).get(b,c,d);if(!e)return null;let h=g(e);return h.promptData?.status==="answered"?null:h}function M(a,b){return j(a,{worktreeId:b.worktreeId,role:"assistant",content:b.content,messageType:"normal",timestamp:new Date(b.at),requestId:`${H}${b.relayId}:${b.kind}`,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId})}},57510:(a,b,c)=>{c.d(b,{KR:()=>e,NZ:()=>p,O2:()=>j,Qd:()=>o,Uq:()=>q,Wv:()=>l,ex:()=>i,hY:()=>n,mJ:()=>f,oJ:()=>k,qU:()=>g});var d=c(62887);function e(a,b,c){return d=>d===a?{event:b,detail:c??null}:null}function f(a){return Object.entries(a).map(([a,b])=>e(a,b))}function g(a,b,c){for(let d of a){let a=d(b,c);if(a)return a}return null}let h=(0,c(36925).v)("__agentSourceUnknownEvents",()=>new Map);function i(a,b){let c=h.get(a)??{count:0,names:[]};c.count+=1;let d=b??"(unnamed)";!c.names.includes(d)&&c.names.length<32&&c.names.push(d),h.set(a,c)}function j(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function k(a,b){for(let c of b){let b=j(a,c);if(null!==b)return b}return null}function l(a){return null===a||""===a?null:a.slice(0,d.h9)}let m=/^[A-Za-z0-9._:-]+$/;function n(a){return null===a||a.length>128?null:m.test(a)?a:null}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a,b){let c=a;for(let a of b){if(!o(c))return null;c=c[a]}return"string"==typeof c&&""!==c?c:null}function q(a,b,c,e={}){var f;let g=void 0!==a.detail&&null!==a.detail?l(a.detail):l(e.detail?.(a.event,b)??null);return{event:a.event,detail:g,conversationId:a.conversationId??(e.conversationId?k(b,e.conversationId):null),toolCallId:a.toolCallId??(e.toolCallId?k(b,e.toolCallId):null),model:null===(f=e.extractModel?.(b)??(e.modelFields?k(b,e.modelFields):null))||""===f?null:f.slice(0,d.h9),raw:b,receivedAt:c}}},62887:(a,b,c)=>{c.d(b,{HV:()=>h,KC:()=>g,b0:()=>d,h9:()=>f,o0:()=>e});let d=["stop","notification","session_start","user_prompt_submit","session_end","pre_tool_use","post_tool_use"];function e(a){return"string"==typeof a&&d.includes(a)}let f=128,g="permission_replied",h="self_resume_pending"},64185:(a,b,c)=>{c.d(b,{DE:()=>n,oZ:()=>m});var d=c(29021),e=c(33873),f=c(4689),g=c(72626),h=c(52201);let i=(0,g.h)("repo-agents-config"),j=["version","agents","primary"],k=new Map;function l(a,b=120){let c=("string"==typeof a?a:Array.isArray(a)?"a list":null===a?"null":"object"==typeof a?"a mapping":String(a)).replace(/[\u0000-\u001F\u007F-\u009F]/g," ");return c.length>b?`${c.slice(0,b)}...`:c}function m(a,b=Date.now()){let c=function(a){let b,c=(0,e.join)(a,".commandmate/agents.yaml");try{b=(0,d.readFileSync)(c,"utf8")}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return null;return i.warn("repo-agents:read-failed",{source:c,code:a,error:l(b.message)}),null}let g=Buffer.byteLength(b,"utf8");return g>65536?(i.warn("repo-agents:too-large",{source:c,bytes:g,limit:65536}),null):function(a,b){var c;let d;try{d=(0,f.qg)(a)}catch(a){return i.warn("repo-agents:yaml-parse-failed",{source:b,error:l(a.message)}),null}if(null==d)return i.debug("repo-agents:empty",{source:b}),null;if(!("object"==typeof(c=d)&&null!==c&&!Array.isArray(c)))return i.warn("repo-agents:not-a-mapping",{source:b,got:l(d)}),null;let e=Object.keys(d).filter(a=>!j.includes(a));if(e.length>0)return i.warn("repo-agents:unknown-keys",{source:b,keys:e.map(a=>l(a,40))}),null;if(void 0!==d.version&&null!==d.version&&1!==("number"==typeof d.version?d.version:"string"==typeof d.version&&/^\d+$/.test(d.version)?Number(d.version):null))return i.warn("repo-agents:unsupported-version",{source:b,got:l(d.version)}),null;if(!Array.isArray(d.agents))return i.warn("repo-agents:agents-not-a-list",{source:b,got:l(d.agents)}),null;let g=(0,h.Lt)(d.agents);if(!g.valid)return i.warn("repo-agents:invalid-agents",{source:b,error:g.error,got:d.agents.map(a=>l(a,40))}),null;let k=g.value;if(void 0===d.primary||null===d.primary)return k;if("string"!=typeof d.primary||!k.includes(d.primary))return i.warn("repo-agents:primary-not-in-agents",{source:b,got:l(d.primary,40),agents:k}),null;let m=d.primary;return[m,...k.filter(a=>a!==m)]}(b,c)}(a);return k.set(a,{value:c,expiresAt:b+6e4}),c}function n(a,b=Date.now()){if(!a)return null;let c=k.get(a);return c&&c.expiresAt>b?c.value:m(a,b)}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},68901:(a,b,c)=>{c.d(b,{FW:()=>l,Ke:()=>k,P0:()=>n,QN:()=>j,dR:()=>i,eJ:()=>o,t6:()=>h,ul:()=>m});var d=c(82366),e=c.n(d),f=c(16983);let g=[36e5,108e5,288e5],h=36e5;function i(a){return"number"==typeof a&&g.includes(a)}let j=5e3,k=f.sO,l=5e3,m=20;function n(a){if(a.length>500)return{valid:!1,error:"Pattern must be 500 characters or less"};if(!e()(a))return{valid:!1,error:"Pattern may cause performance issues (catastrophic backtracking detected)"};try{return new RegExp(a),{valid:!0}}catch{return{valid:!1,error:"Invalid regular expression syntax"}}}function o(a,b,c=100){try{return a.test(b)}catch{return null}}},70997:(a,b,c)=>{c.d(b,{v:()=>d});let d="claude"},73753:(a,b,c)=>{c.d(b,{DC:()=>v,Dx:()=>u,GA:()=>A,HZ:()=>r,NV:()=>l,O:()=>s,P9:()=>C,Rm:()=>H,Sj:()=>E,ZL:()=>n,_D:()=>w,_h:()=>o,ef:()=>x,getWorktreeById:()=>m,hq:()=>p,iu:()=>y,nO:()=>D,oZ:()=>G,p4:()=>B,s:()=>z,uJ:()=>F,vi:()=>k,yB:()=>t,z1:()=>q});var d=c(52201),e=c(64185),f=c(26923),g=c(52660),h=c(27923);let i=new Set;function j(a){return new Set(a.prepare("SELECT DISTINCT worktree_id FROM agent_instances").all().map(a=>a.worktree_id))}function k(a,b){let c=`
202
202
  SELECT
203
203
  w.id, w.name, w.path, w.repository_path, w.repository_name, w.description,
204
204
  w.last_user_message, w.last_user_message_at, w.last_message_summary,
@@ -320,5 +320,5 @@
320
320
  SELECT id FROM worktrees WHERE repository_path = ?
321
321
  `).all(b).map(a=>a.id)}function D(a){return a.prepare("SELECT id FROM worktrees").all().map(a=>a.id)}function E(a){return a.prepare("SELECT id, path FROM worktrees").all()}function F(a,b){return a.prepare(`
322
322
  SELECT id, path FROM worktrees WHERE repository_path = ?
323
- `).all(b)}function G(a,b){return{deletedCount:a.transaction(()=>{let c=a.prepare("SELECT id FROM worktrees WHERE repository_path = ?").all(b).map(a=>a.id).filter(a=>null!==a);return(0,h.oo)(a,c),a.prepare("DELETE FROM worktrees WHERE repository_path = ?").run(b).changes})()}}function H(a,b){if(0===b.length)return{deletedCount:0};let c=b.map(()=>"?").join(",");return{deletedCount:a.transaction(()=>((0,h.oo)(a,b),a.prepare(`DELETE FROM worktrees WHERE id IN (${c})`).run(...b).changes))()}}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},84574:(a,b,c)=>{c.d(b,{CU:()=>A,Ci:()=>z,U9:()=>v,VY:()=>s,hC:()=>u,jp:()=>B,kE:()=>w});var d=c(91645),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(24455),j=c(43252),k=c(72626),l=c(49791);let m=(0,k.h)("lib/hooks/sources/opencode/ports"),n={min:4200,max:4299},o=n.max-n.min+1,p=globalThis.__opencodePortAssignments??=new Map;function q(a){return(0,i.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function r(){let a=(0,g.join)((0,f.homedir)(),".commandmate","opencode-ports.json");return(0,h.T)(process.env.CM_OPENCODE_PORT_FILE,a,"CM_OPENCODE_PORT_FILE")}function s(){try{let a=JSON.parse((0,e.readFileSync)(r(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&"number"==typeof d.port&&Number.isInteger(d.port)&&d.port>0&&d.port<65536&&"string"==typeof d.worktreePath&&(b[c]={port:d.port,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function t(a){let b=r();try{(0,e.mkdirSync)((0,g.dirname)(b),{recursive:!0}),(0,e.writeFileSync)(b,`${JSON.stringify(a,null,2)}
324
- `,{mode:384})}catch(a){m.warn("opencode-port-file-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function u(a){return p.get(q(a))?.port??null}function v(a){return p.get(q(a))?.worktreePath??null}function w(a){let b=q(a);p.delete(b);let c=s();b in c&&(delete c[b],t(c))}let x=[l.Vc,"0.0.0.0","::"],y=["EADDRINUSE","EACCES"];async function z(a){for(let[b,c]of x.entries()){let e=await function(a,b){return new Promise(c=>{let e=(0,d.createServer)();e.once("error",a=>{c(y.includes(a.code??"")?"in-use":"unavailable")}),e.listen(a,b,()=>{e.close(()=>c("free"))})})}(a,c);if("free"!==e&&(0===b||"in-use"===e))return m.debug("opencode-port-probe-occupied",{port:a,host:c,probe:e}),!1}return!0}async function A(a,b){if(!(0,j.q)())return null;let c=u(a);if(null!==c)return c;let d=q(a),e=s()[d],f=e?.port,g=function(a){let b=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return n.min+b%o}(q(a)),c=[];for(let a=0;a<o;a+=1)c.push(n.min+(b-n.min+a)%o);return c}(a);for(let c of void 0!==f?[f,...g.filter(a=>a!==f)]:g)if(await z(c))return!function(a,b,c,d=Date.now()){let e=q(a),f={port:b,worktreePath:c,updatedAt:d};p.set(e,f);let g=s();g[e]=f,t(g)}(a,c,b),m.info("opencode-port-allocated",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c}),c;return m.warn("opencode-port-exhausted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,range:`${n.min}-${n.max}`}),null}async function B(a,b){if(!(0,j.q)())return null;let c=u(a);if(null!==c)return c;let d=s()[q(a)];if(!d)return null;if(d.worktreePath!==b)return m.info("opencode-port-recovery-path-mismatch",{worktreeId:a.worktreeId,recorded:d.worktreePath}),null;let e=await (0,l.Ok)(d.port);return e?(p.set(q(a),d),m.info("opencode-port-recovered",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d.port,version:e.version}),d.port):(m.info("opencode-port-recovery-unhealthy",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d.port}),null)}},92196:(a,b,c)=>{c.d(b,{QQ:()=>f,mw:()=>g});let d="*** ",e=new Set(["Begin Patch","End Patch"]);function f(a){let b=[];for(let c of a.split("\n")){let f=c.endsWith("\r")?c.slice(0,-1):c;if(!f.startsWith(d))continue;let g=f.slice(d.length).trim();if(!(""===g||e.has(g))&&(b.push(`${d}${g}`),b.length>64))return[a]}return b.length>0?b:[a]}function g(a){if("object"==typeof a&&null!==a&&!Array.isArray(a))return{toolInput:a,normalization:null};if("string"==typeof a){if(""===a)return null;let b=a.slice(0,64).trimStart().startsWith("*** Begin Patch"),c=b?"patch":"text";return{toolInput:{[c]:a},normalization:{reason:b?"string-tool-input-as-patch":"string-tool-input-as-text",key:c,receivedType:"string"}}}return null}},93636:(a,b,c)=>{c.d(b,{Yc:()=>i,fe:()=>j,zZ:()=>k});var d=c(3161),e=c(15194),f=c(72626),g=c(14552);let h=(0,f.h)("agent-session-cost-sampler");function i(a,b=Date.now()){let c=0;for(let f of function(){let a=globalThis.__agentSessionTelemetry;if(!a)return[];let b=[];for(let c of a.keys()){let a=c.split(":");if(a.length<2||a.length>3)continue;let[d,f,g]=a;d&&(0,e.hR)(f)&&b.push({worktreeId:d,cliToolId:f,instanceId:g||void 0})}return b}()){let e=(0,d.Jl)(f.worktreeId,f.cliToolId,f.instanceId);if(e&&e.id)try{(0,g.c0)(a,{sessionId:e.id,worktreeId:f.worktreeId,cliToolId:f.cliToolId,instanceId:f.instanceId??null,date:function(a){let b=new Date(a),c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}(e.at||b),title:e.title,agent:e.agent,model:e.model,provider:e.provider,cost:e.cost,tokensInput:e.tokens.input,tokensOutput:e.tokens.output,tokensReasoning:e.tokens.reasoning,tokensCacheRead:e.tokens.cacheRead,tokensCacheWrite:e.tokens.cacheWrite,observedAt:b})&&c++}catch(a){h.warn("sample-failed",{worktreeId:f.worktreeId,cliToolId:f.cliToolId,error:a instanceof Error?a.message:String(a)})}}return c}function j(a){if(globalThis.__agentSessionCostSampler||process.env.VITEST)return!1;let b=setInterval(()=>{try{i(a)}catch(a){h.warn("sweep-failed",{error:a instanceof Error?a.message:String(a)})}},6e4);return b.unref?.(),globalThis.__agentSessionCostSampler=b,!0}function k(){globalThis.__agentSessionCostSampler&&(clearInterval(globalThis.__agentSessionCostSampler),globalThis.__agentSessionCostSampler=void 0)}},99499:(a,b,c)=>{c.d(b,{MX:()=>f,ac:()=>e,gn:()=>g});let d=["manual","auto","disabled"];function e(a){if("object"!=typeof a||null===a||Array.isArray(a))return null;let b=a.share;return"string"!=typeof b?null:d.includes(b)?b:null}function f(a){return"disabled"===a}function g(a){let b;if("object"!=typeof a||null===a||Array.isArray(a))return null;let c=a.share;if("object"!=typeof c||null===c||Array.isArray(c))return null;let d=c.url;if("string"!=typeof d||""===d)return null;try{b=new URL(d)}catch{return null}return"https:"===b.protocol?d:null}}};
323
+ `).all(b)}function G(a,b){return{deletedCount:a.transaction(()=>{let c=a.prepare("SELECT id FROM worktrees WHERE repository_path = ?").all(b).map(a=>a.id).filter(a=>null!==a);return(0,h.oo)(a,c),a.prepare("DELETE FROM worktrees WHERE repository_path = ?").run(b).changes})()}}function H(a,b){if(0===b.length)return{deletedCount:0};let c=b.map(()=>"?").join(",");return{deletedCount:a.transaction(()=>((0,h.oo)(a,b),a.prepare(`DELETE FROM worktrees WHERE id IN (${c})`).run(...b).changes))()}}},80438:(a,b,c)=>{c.d(b,{h:()=>d});function d(a,b,c){a.warn(`security:${b}`,c)}},84574:(a,b,c)=>{c.d(b,{CU:()=>B,Ci:()=>A,U9:()=>w,VY:()=>t,hC:()=>v,jp:()=>C,kE:()=>x});var d=c(91645),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(24455),j=c(43252),k=c(72626),l=c(49791),m=c(36925);let n=(0,k.h)("lib/hooks/sources/opencode/ports"),o={min:4200,max:4299},p=o.max-o.min+1,q=(0,m.v)("__opencodePortAssignments",()=>new Map);function r(a){return(0,i.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function s(){let a=(0,g.join)((0,f.homedir)(),".commandmate","opencode-ports.json");return(0,h.T)(process.env.CM_OPENCODE_PORT_FILE,a,"CM_OPENCODE_PORT_FILE")}function t(){try{let a=JSON.parse((0,e.readFileSync)(s(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&"number"==typeof d.port&&Number.isInteger(d.port)&&d.port>0&&d.port<65536&&"string"==typeof d.worktreePath&&(b[c]={port:d.port,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function u(a){let b=s();try{(0,e.mkdirSync)((0,g.dirname)(b),{recursive:!0}),(0,e.writeFileSync)(b,`${JSON.stringify(a,null,2)}
324
+ `,{mode:384})}catch(a){n.warn("opencode-port-file-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function v(a){return q.get(r(a))?.port??null}function w(a){return q.get(r(a))?.worktreePath??null}function x(a){let b=r(a);q.delete(b);let c=t();b in c&&(delete c[b],u(c))}let y=[l.Vc,"0.0.0.0","::"],z=["EADDRINUSE","EACCES"];async function A(a){for(let[b,c]of y.entries()){let e=await function(a,b){return new Promise(c=>{let e=(0,d.createServer)();e.once("error",a=>{c(z.includes(a.code??"")?"in-use":"unavailable")}),e.listen(a,b,()=>{e.close(()=>c("free"))})})}(a,c);if("free"!==e&&(0===b||"in-use"===e))return n.debug("opencode-port-probe-occupied",{port:a,host:c,probe:e}),!1}return!0}async function B(a,b){if(!(0,j.q)())return null;let c=v(a);if(null!==c)return c;let d=r(a),e=t()[d],f=e?.port,g=function(a){let b=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return o.min+b%p}(r(a)),c=[];for(let a=0;a<p;a+=1)c.push(o.min+(b-o.min+a)%p);return c}(a);for(let c of void 0!==f?[f,...g.filter(a=>a!==f)]:g)if(await A(c))return!function(a,b,c,d=Date.now()){let e=r(a),f={port:b,worktreePath:c,updatedAt:d};q.set(e,f);let g=t();g[e]=f,u(g)}(a,c,b),n.info("opencode-port-allocated",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:c}),c;return n.warn("opencode-port-exhausted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,range:`${o.min}-${o.max}`}),null}async function C(a,b){if(!(0,j.q)())return null;let c=v(a);if(null!==c)return c;let d=t()[r(a)];if(!d)return null;if(d.worktreePath!==b)return n.info("opencode-port-recovery-path-mismatch",{worktreeId:a.worktreeId,recorded:d.worktreePath}),null;let e=await (0,l.Ok)(d.port);return e?(q.set(r(a),d),n.info("opencode-port-recovered",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d.port,version:e.version}),d.port):(n.info("opencode-port-recovery-unhealthy",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d.port}),null)}},92196:(a,b,c)=>{c.d(b,{QQ:()=>f,mw:()=>g});let d="*** ",e=new Set(["Begin Patch","End Patch"]);function f(a){let b=[];for(let c of a.split("\n")){let f=c.endsWith("\r")?c.slice(0,-1):c;if(!f.startsWith(d))continue;let g=f.slice(d.length).trim();if(!(""===g||e.has(g))&&(b.push(`${d}${g}`),b.length>64))return[a]}return b.length>0?b:[a]}function g(a){if("object"==typeof a&&null!==a&&!Array.isArray(a))return{toolInput:a,normalization:null};if("string"==typeof a){if(""===a)return null;let b=a.slice(0,64).trimStart().startsWith("*** Begin Patch"),c=b?"patch":"text";return{toolInput:{[c]:a},normalization:{reason:b?"string-tool-input-as-patch":"string-tool-input-as-text",key:c,receivedType:"string"}}}return null}},93636:(a,b,c)=>{c.d(b,{Yc:()=>i,fe:()=>j,zZ:()=>k});var d=c(3161),e=c(15194),f=c(72626),g=c(14552);let h=(0,f.h)("agent-session-cost-sampler");function i(a,b=Date.now()){let c=0;for(let f of function(){let a=globalThis.__agentSessionTelemetry;if(!a)return[];let b=[];for(let c of a.keys()){let a=c.split(":");if(a.length<2||a.length>3)continue;let[d,f,g]=a;d&&(0,e.hR)(f)&&b.push({worktreeId:d,cliToolId:f,instanceId:g||void 0})}return b}()){let e=(0,d.Jl)(f.worktreeId,f.cliToolId,f.instanceId);if(e&&e.id)try{(0,g.c0)(a,{sessionId:e.id,worktreeId:f.worktreeId,cliToolId:f.cliToolId,instanceId:f.instanceId??null,date:function(a){let b=new Date(a),c=b.getFullYear(),d=String(b.getMonth()+1).padStart(2,"0"),e=String(b.getDate()).padStart(2,"0");return`${c}-${d}-${e}`}(e.at||b),title:e.title,agent:e.agent,model:e.model,provider:e.provider,cost:e.cost,tokensInput:e.tokens.input,tokensOutput:e.tokens.output,tokensReasoning:e.tokens.reasoning,tokensCacheRead:e.tokens.cacheRead,tokensCacheWrite:e.tokens.cacheWrite,observedAt:b})&&c++}catch(a){h.warn("sample-failed",{worktreeId:f.worktreeId,cliToolId:f.cliToolId,error:a instanceof Error?a.message:String(a)})}}return c}function j(a){if(globalThis.__agentSessionCostSampler||process.env.VITEST)return!1;let b=setInterval(()=>{try{i(a)}catch(a){h.warn("sweep-failed",{error:a instanceof Error?a.message:String(a)})}},6e4);return b.unref?.(),globalThis.__agentSessionCostSampler=b,!0}function k(){globalThis.__agentSessionCostSampler&&(clearInterval(globalThis.__agentSessionCostSampler),globalThis.__agentSessionCostSampler=void 0)}},99499:(a,b,c)=>{c.d(b,{MX:()=>f,ac:()=>e,gn:()=>g});let d=["manual","auto","disabled"];function e(a){if("object"!=typeof a||null===a||Array.isArray(a))return null;let b=a.share;return"string"!=typeof b?null:d.includes(b)?b:null}function f(a){return"disabled"===a}function g(a){let b;if("object"!=typeof a||null===a||Array.isArray(a))return null;let c=a.share;if("object"!=typeof c||null===c||Array.isArray(c))return null;let d=c.url;if("string"!=typeof d||""===d)return null;try{b=new URL(d)}catch{return null}return"https:"===b.protocol?d:null}}};