commandmate 0.29.2 → 0.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (653) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +271 -264
  3. package/.next/app-path-routes-manifest.json +35 -34
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/routes-manifest.json +8 -8
  8. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
  10. package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.js +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  15. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  16. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  18. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  19. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/messages/route.js +1 -1
  21. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/session/route.js +1 -1
  24. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/start/route.js +18 -18
  27. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/terminal/route.js +19 -19
  30. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/assistant/tools/route.js +1 -1
  33. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  34. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/capabilities/route.js +1 -1
  39. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/daily-summary/route.js +1 -1
  41. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  42. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  49. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  50. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  52. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  53. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  54. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  55. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  56. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  57. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/push/escalation/route.js +1 -1
  60. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/push/vapid/route.js +1 -1
  63. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  67. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  69. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  70. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/repositories/clone/route.js +1 -1
  72. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  73. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/restore/route.js +1 -1
  76. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  77. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/route.js +1 -1
  79. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/scan/route.js +1 -1
  82. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/sync/route.js +1 -1
  85. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  89. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  90. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/settings/default-surface-mode/route.js +1 -0
  92. package/.next/server/app/api/settings/default-surface-mode/route.js.nft.json +1 -0
  93. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -0
  94. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  100. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  110. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  113. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  116. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -0
  118. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js.nft.json +1 -0
  119. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -0
  120. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  124. package/.next/server/app/api/worktrees/[id]/current-output/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_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  154. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  157. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  160. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  174. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  192. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  207. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  209. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  211. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  212. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/api/worktrees/apply-default-agents/route.js +1 -1
  224. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/route.js +1 -1
  226. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  229. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  230. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/more/page.js +2 -2
  232. package/.next/server/app/more/page.js.nft.json +1 -1
  233. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  234. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  235. package/.next/server/app/page_client-reference-manifest.js +1 -1
  236. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  238. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  239. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  240. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  241. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  242. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  243. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  244. package/.next/server/app/worktrees/[id]/page.js +11 -11
  245. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  246. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  247. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  248. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  249. package/.next/server/app-paths-manifest.json +35 -34
  250. package/.next/server/chunks/1058.js +1 -1
  251. package/.next/server/chunks/1068.js +1 -1
  252. package/.next/server/chunks/1191.js +1 -1
  253. package/.next/server/chunks/1341.js +1 -1
  254. package/.next/server/chunks/1886.js +3 -3
  255. package/.next/server/chunks/2119.js +1 -1
  256. package/.next/server/chunks/2445.js +1 -1
  257. package/.next/server/chunks/261.js +1 -0
  258. package/.next/server/chunks/2739.js +1 -0
  259. package/.next/server/chunks/2816.js +1 -1
  260. package/.next/server/chunks/3099.js +5 -0
  261. package/.next/server/chunks/3123.js +1 -0
  262. package/.next/server/chunks/3241.js +1 -1
  263. package/.next/server/chunks/3543.js +1 -1
  264. package/.next/server/chunks/3945.js +1 -1
  265. package/.next/server/chunks/4325.js +1 -0
  266. package/.next/server/chunks/4390.js +1 -1
  267. package/.next/server/chunks/4393.js +1 -1
  268. package/.next/server/chunks/4443.js +6 -0
  269. package/.next/server/chunks/5017.js +1 -1
  270. package/.next/server/chunks/5043.js +1 -0
  271. package/.next/server/chunks/5120.js +1 -0
  272. package/.next/server/chunks/552.js +25 -0
  273. package/.next/server/chunks/6130.js +1 -1
  274. package/.next/server/chunks/6337.js +1 -1
  275. package/.next/server/chunks/663.js +1 -1
  276. package/.next/server/chunks/6894.js +8 -0
  277. package/.next/server/chunks/7685.js +1 -1
  278. package/.next/server/chunks/7836.js +1 -0
  279. package/.next/server/chunks/8356.js +1 -1
  280. package/.next/server/chunks/880.js +1 -1
  281. package/.next/server/chunks/8807.js +1 -1
  282. package/.next/server/chunks/9123.js +2 -2
  283. package/.next/server/chunks/9130.js +3 -3
  284. package/.next/server/chunks/9627.js +48 -26
  285. package/.next/server/chunks/9696.js +3 -0
  286. package/.next/server/chunks/9798.js +1 -1
  287. package/.next/server/middleware-manifest.json +5 -5
  288. package/.next/server/pages/500.html +1 -1
  289. package/.next/server/server-reference-manifest.json +1 -1
  290. package/.next/server/src/middleware.js +1 -1
  291. package/.next/server/src/middleware.js.map +1 -1
  292. package/.next/static/chunks/{4882-388e94fe0a03c2ba.js → 3916-0e929d089282dc5d.js} +1 -1
  293. package/.next/static/chunks/{5229-b2a81bb8fb5c19e9.js → 5229-6c89475b61bd2c8b.js} +1 -1
  294. package/.next/static/chunks/6022-7a7d1760fc9814c7.js +1 -0
  295. package/.next/static/chunks/6381-dbf04a99647f6018.js +1 -0
  296. package/.next/static/chunks/app/api/agents/update/route-ee11f7b8a34cba8c.js +1 -0
  297. package/.next/static/chunks/app/api/agents/versions/route-ee11f7b8a34cba8c.js +1 -0
  298. package/.next/static/chunks/app/api/app/update/route-ee11f7b8a34cba8c.js +1 -0
  299. package/.next/static/chunks/app/api/app/update-check/route-ee11f7b8a34cba8c.js +1 -0
  300. package/.next/static/chunks/app/api/assistant/conversation/route-ee11f7b8a34cba8c.js +1 -0
  301. package/.next/static/chunks/app/api/assistant/current-output/route-ee11f7b8a34cba8c.js +1 -0
  302. package/.next/static/chunks/app/api/assistant/messages/route-ee11f7b8a34cba8c.js +1 -0
  303. package/.next/static/chunks/app/api/assistant/session/route-ee11f7b8a34cba8c.js +1 -0
  304. package/.next/static/chunks/app/api/assistant/start/route-ee11f7b8a34cba8c.js +1 -0
  305. package/.next/static/chunks/app/api/assistant/terminal/route-ee11f7b8a34cba8c.js +1 -0
  306. package/.next/static/chunks/app/api/assistant/tools/route-ee11f7b8a34cba8c.js +1 -0
  307. package/.next/static/chunks/app/api/auth/login/route-ee11f7b8a34cba8c.js +1 -0
  308. package/.next/static/chunks/app/api/auth/logout/route-ee11f7b8a34cba8c.js +1 -0
  309. package/.next/static/chunks/app/api/auth/status/route-ee11f7b8a34cba8c.js +1 -0
  310. package/.next/static/chunks/app/api/capabilities/route-ee11f7b8a34cba8c.js +1 -0
  311. package/.next/static/chunks/app/api/daily-summary/route-ee11f7b8a34cba8c.js +1 -0
  312. package/.next/static/chunks/app/api/daily-summary/status/route-ee11f7b8a34cba8c.js +1 -0
  313. package/.next/static/chunks/app/api/external-apps/[id]/health/route-ee11f7b8a34cba8c.js +1 -0
  314. package/.next/static/chunks/app/api/external-apps/[id]/route-ee11f7b8a34cba8c.js +1 -0
  315. package/.next/static/chunks/app/api/external-apps/route-ee11f7b8a34cba8c.js +1 -0
  316. package/.next/static/chunks/app/api/fs/browse/route-ee11f7b8a34cba8c.js +1 -0
  317. package/.next/static/chunks/app/api/fs/recent-paths/route-ee11f7b8a34cba8c.js +1 -0
  318. package/.next/static/chunks/app/api/hooks/agent-event/route-ee11f7b8a34cba8c.js +1 -0
  319. package/.next/static/chunks/app/api/hooks/claude-done/route-ee11f7b8a34cba8c.js +1 -0
  320. package/.next/static/chunks/app/api/hooks/permission-request/route-ee11f7b8a34cba8c.js +1 -0
  321. package/.next/static/chunks/app/api/metrics/vibe/route-ee11f7b8a34cba8c.js +1 -0
  322. package/.next/static/chunks/app/api/ollama/models/route-ee11f7b8a34cba8c.js +1 -0
  323. package/.next/static/chunks/app/api/push/escalation/route-ee11f7b8a34cba8c.js +1 -0
  324. package/.next/static/chunks/app/api/push/subscriptions/route-ee11f7b8a34cba8c.js +1 -0
  325. package/.next/static/chunks/app/api/push/vapid/route-ee11f7b8a34cba8c.js +1 -0
  326. package/.next/static/chunks/app/api/remote/pair/route-ee11f7b8a34cba8c.js +1 -0
  327. package/.next/static/chunks/app/api/repositories/[id]/route-ee11f7b8a34cba8c.js +1 -0
  328. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +1 -0
  329. package/.next/static/chunks/app/api/repositories/[id]/todos/route-ee11f7b8a34cba8c.js +1 -0
  330. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-ee11f7b8a34cba8c.js +1 -0
  331. package/.next/static/chunks/app/api/repositories/clone/route-ee11f7b8a34cba8c.js +1 -0
  332. package/.next/static/chunks/app/api/repositories/excluded/route-ee11f7b8a34cba8c.js +1 -0
  333. package/.next/static/chunks/app/api/repositories/restore/route-ee11f7b8a34cba8c.js +1 -0
  334. package/.next/static/chunks/app/api/repositories/route-ee11f7b8a34cba8c.js +1 -0
  335. package/.next/static/chunks/app/api/repositories/scan/route-ee11f7b8a34cba8c.js +1 -0
  336. package/.next/static/chunks/app/api/repositories/sync/route-ee11f7b8a34cba8c.js +1 -0
  337. package/.next/static/chunks/app/api/repositories/validate-path/route-ee11f7b8a34cba8c.js +1 -0
  338. package/.next/static/chunks/app/api/settings/default-agents/route-ee11f7b8a34cba8c.js +1 -0
  339. package/.next/static/chunks/app/api/settings/default-surface-mode/route-ee11f7b8a34cba8c.js +1 -0
  340. package/.next/static/chunks/app/api/sidebar/group-order/route-ee11f7b8a34cba8c.js +1 -0
  341. package/.next/static/chunks/app/api/skills/[id]/route-ee11f7b8a34cba8c.js +1 -0
  342. package/.next/static/chunks/app/api/skills/installations/route-ee11f7b8a34cba8c.js +1 -0
  343. package/.next/static/chunks/app/api/skills/operations/route-ee11f7b8a34cba8c.js +1 -0
  344. package/.next/static/chunks/app/api/skills/reindex/route-ee11f7b8a34cba8c.js +1 -0
  345. package/.next/static/chunks/app/api/skills/route-ee11f7b8a34cba8c.js +1 -0
  346. package/.next/static/chunks/app/api/slash-commands/route-ee11f7b8a34cba8c.js +1 -0
  347. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-ee11f7b8a34cba8c.js +1 -0
  348. package/.next/static/chunks/app/api/tasks/[taskId]/route-ee11f7b8a34cba8c.js +1 -0
  349. package/.next/static/chunks/app/api/templates/[id]/route-ee11f7b8a34cba8c.js +1 -0
  350. package/.next/static/chunks/app/api/templates/route-ee11f7b8a34cba8c.js +1 -0
  351. package/.next/static/chunks/app/api/todos/route-ee11f7b8a34cba8c.js +1 -0
  352. package/.next/static/chunks/app/api/verification/runs/[runId]/route-ee11f7b8a34cba8c.js +1 -0
  353. package/.next/static/chunks/app/api/verification/runs/route-ee11f7b8a34cba8c.js +1 -0
  354. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-ee11f7b8a34cba8c.js +1 -0
  355. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-ee11f7b8a34cba8c.js +1 -0
  356. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-ee11f7b8a34cba8c.js +1 -0
  357. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-ee11f7b8a34cba8c.js +1 -0
  358. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-ee11f7b8a34cba8c.js +1 -0
  359. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-ee11f7b8a34cba8c.js +1 -0
  360. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-ee11f7b8a34cba8c.js +1 -0
  361. package/.next/static/chunks/app/api/worktrees/[id]/env/route-ee11f7b8a34cba8c.js +1 -0
  362. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-ee11f7b8a34cba8c.js +1 -0
  363. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-ee11f7b8a34cba8c.js +1 -0
  364. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  365. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-ee11f7b8a34cba8c.js +1 -0
  366. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-ee11f7b8a34cba8c.js +1 -0
  367. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-ee11f7b8a34cba8c.js +1 -0
  368. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-ee11f7b8a34cba8c.js +1 -0
  369. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-ee11f7b8a34cba8c.js +1 -0
  370. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-ee11f7b8a34cba8c.js +1 -0
  371. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-ee11f7b8a34cba8c.js +1 -0
  372. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-ee11f7b8a34cba8c.js +1 -0
  373. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-ee11f7b8a34cba8c.js +1 -0
  374. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-ee11f7b8a34cba8c.js +1 -0
  375. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-ee11f7b8a34cba8c.js +1 -0
  376. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-ee11f7b8a34cba8c.js +1 -0
  377. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-ee11f7b8a34cba8c.js +1 -0
  378. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-ee11f7b8a34cba8c.js +1 -0
  379. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-ee11f7b8a34cba8c.js +1 -0
  380. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-ee11f7b8a34cba8c.js +1 -0
  381. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-ee11f7b8a34cba8c.js +1 -0
  382. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-ee11f7b8a34cba8c.js +1 -0
  383. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-ee11f7b8a34cba8c.js +1 -0
  384. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-ee11f7b8a34cba8c.js +1 -0
  385. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-ee11f7b8a34cba8c.js +1 -0
  386. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-ee11f7b8a34cba8c.js +1 -0
  387. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-ee11f7b8a34cba8c.js +1 -0
  388. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-ee11f7b8a34cba8c.js +1 -0
  389. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-ee11f7b8a34cba8c.js +1 -0
  390. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-ee11f7b8a34cba8c.js +1 -0
  391. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-ee11f7b8a34cba8c.js +1 -0
  392. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-ee11f7b8a34cba8c.js +1 -0
  393. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-ee11f7b8a34cba8c.js +1 -0
  394. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-ee11f7b8a34cba8c.js +1 -0
  395. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-ee11f7b8a34cba8c.js +1 -0
  396. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-ee11f7b8a34cba8c.js +1 -0
  397. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-ee11f7b8a34cba8c.js +1 -0
  398. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-ee11f7b8a34cba8c.js +1 -0
  399. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-ee11f7b8a34cba8c.js +1 -0
  400. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-ee11f7b8a34cba8c.js +1 -0
  401. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-ee11f7b8a34cba8c.js +1 -0
  402. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-ee11f7b8a34cba8c.js +1 -0
  403. package/.next/static/chunks/app/api/worktrees/[id]/route-ee11f7b8a34cba8c.js +1 -0
  404. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-ee11f7b8a34cba8c.js +1 -0
  405. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-ee11f7b8a34cba8c.js +1 -0
  406. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-ee11f7b8a34cba8c.js +1 -0
  407. package/.next/static/chunks/app/api/worktrees/[id]/search/route-ee11f7b8a34cba8c.js +1 -0
  408. package/.next/static/chunks/app/api/worktrees/[id]/send/route-ee11f7b8a34cba8c.js +1 -0
  409. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-ee11f7b8a34cba8c.js +1 -0
  410. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-ee11f7b8a34cba8c.js +1 -0
  411. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-ee11f7b8a34cba8c.js +1 -0
  412. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-ee11f7b8a34cba8c.js +1 -0
  413. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-ee11f7b8a34cba8c.js +1 -0
  414. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-ee11f7b8a34cba8c.js +1 -0
  415. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-ee11f7b8a34cba8c.js +1 -0
  416. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-ee11f7b8a34cba8c.js +1 -0
  417. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-ee11f7b8a34cba8c.js +1 -0
  418. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-ee11f7b8a34cba8c.js +1 -0
  419. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-ee11f7b8a34cba8c.js +1 -0
  420. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-ee11f7b8a34cba8c.js +1 -0
  421. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-ee11f7b8a34cba8c.js +1 -0
  422. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-ee11f7b8a34cba8c.js +1 -0
  423. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +1 -0
  424. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-ee11f7b8a34cba8c.js +1 -0
  425. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  426. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-ee11f7b8a34cba8c.js +1 -0
  427. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  428. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-ee11f7b8a34cba8c.js +1 -0
  429. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-ee11f7b8a34cba8c.js +1 -0
  430. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-ee11f7b8a34cba8c.js +1 -0
  431. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-ee11f7b8a34cba8c.js +1 -0
  432. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-ee11f7b8a34cba8c.js +1 -0
  433. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-ee11f7b8a34cba8c.js +1 -0
  434. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-ee11f7b8a34cba8c.js +1 -0
  435. package/.next/static/chunks/app/api/worktrees/route-ee11f7b8a34cba8c.js +1 -0
  436. package/.next/static/chunks/app/manifest.webmanifest/route-ee11f7b8a34cba8c.js +1 -0
  437. package/.next/static/chunks/app/more/{page-75d3783da0d49a25.js → page-333bba1c8bbc9c11.js} +1 -1
  438. package/.next/static/chunks/app/proxy/[...path]/route-ee11f7b8a34cba8c.js +1 -0
  439. package/.next/static/chunks/app/worktrees/[id]/layout-ee11f7b8a34cba8c.js +1 -0
  440. package/.next/static/chunks/app/worktrees/[id]/page-aac399392ec8c273.js +1 -0
  441. package/.next/static/chunks/app/worktrees/[id]/terminal/page-2631bc5c4b0a9fb8.js +1 -0
  442. package/.next/static/css/23f9c40ecc458c77.css +1 -0
  443. package/.next/static/pcpB4K6KreMzu2qbhvuRY/_buildManifest.js +1 -0
  444. package/.next/trace +13 -13
  445. package/.next/types/app/api/settings/default-surface-mode/route.ts +347 -0
  446. package/.next/types/app/api/worktrees/[id]/{start-polling → cli-reference}/route.ts +3 -3
  447. package/.next/types/routes.d.ts +3 -2
  448. package/.next/types/validator.ts +18 -9
  449. package/dist/server/server.js +58 -0
  450. package/dist/server/src/lib/claude-output.js +1 -0
  451. package/dist/server/src/lib/db/app-settings-db.js +60 -0
  452. package/dist/server/src/lib/db/chat-db.js +120 -7
  453. package/dist/server/src/lib/detection/status-detector.js +3 -2
  454. package/dist/server/src/lib/env.js +122 -0
  455. package/dist/server/src/lib/git/worktrees.js +154 -0
  456. package/dist/server/src/lib/history/transcript-tail.js +80 -0
  457. package/dist/server/src/lib/history/user-turn-recorder.js +252 -0
  458. package/dist/server/src/lib/hooks/agent-event-service.js +40 -6
  459. package/dist/server/src/lib/hooks/permission-decision-service.js +85 -1
  460. package/dist/server/src/lib/hooks/sources/antigravity/history.js +607 -0
  461. package/dist/server/src/lib/hooks/sources/antigravity/source.js +7 -0
  462. package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +407 -0
  463. package/dist/server/src/lib/hooks/sources/claude/history.js +797 -0
  464. package/dist/server/src/lib/hooks/sources/claude/source.js +4 -0
  465. package/dist/server/src/lib/hooks/sources/claude/transcript.js +518 -0
  466. package/dist/server/src/lib/hooks/sources/codex/history.js +663 -0
  467. package/dist/server/src/lib/hooks/sources/codex/source.js +4 -0
  468. package/dist/server/src/lib/hooks/sources/codex/transcript.js +448 -0
  469. package/dist/server/src/lib/hooks/sources/copilot/source.js +2 -0
  470. package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
  471. package/dist/server/src/lib/hooks/sources/legacy-relay.js +3 -0
  472. package/dist/server/src/lib/hooks/sources/opencode/history.js +57 -0
  473. package/dist/server/src/lib/hooks/sources/opencode/source.js +4 -0
  474. package/dist/server/src/lib/hooks/sources/opencode/transcript.js +10 -28
  475. package/dist/server/src/lib/hooks/sources/turn-body.js +118 -0
  476. package/dist/server/src/lib/hooks/stop-history-capture.js +161 -0
  477. package/dist/server/src/lib/polling/prompt-dedup.js +2 -4
  478. package/dist/server/src/lib/polling/response-checker.js +87 -6
  479. package/dist/server/src/lib/polling/response-dedup.js +2 -4
  480. package/dist/server/src/lib/polling/response-poller-core.js +191 -29
  481. package/dist/server/src/lib/polling/structured-history-gate.js +272 -16
  482. package/dist/server/src/lib/push/push-sender.js +21 -1
  483. package/dist/server/src/lib/push/waiting-push-notifier.js +126 -8
  484. package/dist/server/src/lib/realtime/publisher-registry.js +171 -0
  485. package/dist/server/src/lib/realtime/terminal-broadcast.js +14 -1
  486. package/dist/server/src/lib/realtime/types.js +96 -1
  487. package/dist/server/src/lib/session/current-output-builder.js +365 -4
  488. package/dist/server/src/lib/session/send-user-message.js +90 -2
  489. package/dist/server/src/lib/tui-accumulator.js +2 -8
  490. package/dist/server/src/lib/ws-server.js +143 -6
  491. package/dist/server/src/types/agent-transcript.js +241 -5
  492. package/dist/server/src/types/ui-state.js +24 -1
  493. package/package.json +1 -1
  494. package/public/sw.js +15 -1
  495. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +0 -1
  496. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +0 -1
  497. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +0 -1
  498. package/.next/server/chunks/1714.js +0 -7
  499. package/.next/server/chunks/2198.js +0 -1
  500. package/.next/server/chunks/221.js +0 -25
  501. package/.next/server/chunks/2759.js +0 -8
  502. package/.next/server/chunks/3558.js +0 -1
  503. package/.next/server/chunks/6781.js +0 -1
  504. package/.next/server/chunks/9508.js +0 -1
  505. package/.next/static/0YoRrahue4Vchxg1z83IQ/_buildManifest.js +0 -1
  506. package/.next/static/chunks/1379-af7af9e08f47c979.js +0 -1
  507. package/.next/static/chunks/6381-9ba5198c0a6ff197.js +0 -1
  508. package/.next/static/chunks/app/api/agents/update/route-1c30fb8d4d6fa6ef.js +0 -1
  509. package/.next/static/chunks/app/api/agents/versions/route-1c30fb8d4d6fa6ef.js +0 -1
  510. package/.next/static/chunks/app/api/app/update/route-1c30fb8d4d6fa6ef.js +0 -1
  511. package/.next/static/chunks/app/api/app/update-check/route-1c30fb8d4d6fa6ef.js +0 -1
  512. package/.next/static/chunks/app/api/assistant/conversation/route-1c30fb8d4d6fa6ef.js +0 -1
  513. package/.next/static/chunks/app/api/assistant/current-output/route-1c30fb8d4d6fa6ef.js +0 -1
  514. package/.next/static/chunks/app/api/assistant/messages/route-1c30fb8d4d6fa6ef.js +0 -1
  515. package/.next/static/chunks/app/api/assistant/session/route-1c30fb8d4d6fa6ef.js +0 -1
  516. package/.next/static/chunks/app/api/assistant/start/route-1c30fb8d4d6fa6ef.js +0 -1
  517. package/.next/static/chunks/app/api/assistant/terminal/route-1c30fb8d4d6fa6ef.js +0 -1
  518. package/.next/static/chunks/app/api/assistant/tools/route-1c30fb8d4d6fa6ef.js +0 -1
  519. package/.next/static/chunks/app/api/auth/login/route-1c30fb8d4d6fa6ef.js +0 -1
  520. package/.next/static/chunks/app/api/auth/logout/route-1c30fb8d4d6fa6ef.js +0 -1
  521. package/.next/static/chunks/app/api/auth/status/route-1c30fb8d4d6fa6ef.js +0 -1
  522. package/.next/static/chunks/app/api/capabilities/route-1c30fb8d4d6fa6ef.js +0 -1
  523. package/.next/static/chunks/app/api/daily-summary/route-1c30fb8d4d6fa6ef.js +0 -1
  524. package/.next/static/chunks/app/api/daily-summary/status/route-1c30fb8d4d6fa6ef.js +0 -1
  525. package/.next/static/chunks/app/api/external-apps/[id]/health/route-1c30fb8d4d6fa6ef.js +0 -1
  526. package/.next/static/chunks/app/api/external-apps/[id]/route-1c30fb8d4d6fa6ef.js +0 -1
  527. package/.next/static/chunks/app/api/external-apps/route-1c30fb8d4d6fa6ef.js +0 -1
  528. package/.next/static/chunks/app/api/fs/browse/route-1c30fb8d4d6fa6ef.js +0 -1
  529. package/.next/static/chunks/app/api/fs/recent-paths/route-1c30fb8d4d6fa6ef.js +0 -1
  530. package/.next/static/chunks/app/api/hooks/agent-event/route-1c30fb8d4d6fa6ef.js +0 -1
  531. package/.next/static/chunks/app/api/hooks/claude-done/route-1c30fb8d4d6fa6ef.js +0 -1
  532. package/.next/static/chunks/app/api/hooks/permission-request/route-1c30fb8d4d6fa6ef.js +0 -1
  533. package/.next/static/chunks/app/api/metrics/vibe/route-1c30fb8d4d6fa6ef.js +0 -1
  534. package/.next/static/chunks/app/api/ollama/models/route-1c30fb8d4d6fa6ef.js +0 -1
  535. package/.next/static/chunks/app/api/push/escalation/route-1c30fb8d4d6fa6ef.js +0 -1
  536. package/.next/static/chunks/app/api/push/subscriptions/route-1c30fb8d4d6fa6ef.js +0 -1
  537. package/.next/static/chunks/app/api/push/vapid/route-1c30fb8d4d6fa6ef.js +0 -1
  538. package/.next/static/chunks/app/api/remote/pair/route-1c30fb8d4d6fa6ef.js +0 -1
  539. package/.next/static/chunks/app/api/repositories/[id]/route-1c30fb8d4d6fa6ef.js +0 -1
  540. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-1c30fb8d4d6fa6ef.js +0 -1
  541. package/.next/static/chunks/app/api/repositories/[id]/todos/route-1c30fb8d4d6fa6ef.js +0 -1
  542. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-1c30fb8d4d6fa6ef.js +0 -1
  543. package/.next/static/chunks/app/api/repositories/clone/route-1c30fb8d4d6fa6ef.js +0 -1
  544. package/.next/static/chunks/app/api/repositories/excluded/route-1c30fb8d4d6fa6ef.js +0 -1
  545. package/.next/static/chunks/app/api/repositories/restore/route-1c30fb8d4d6fa6ef.js +0 -1
  546. package/.next/static/chunks/app/api/repositories/route-1c30fb8d4d6fa6ef.js +0 -1
  547. package/.next/static/chunks/app/api/repositories/scan/route-1c30fb8d4d6fa6ef.js +0 -1
  548. package/.next/static/chunks/app/api/repositories/sync/route-1c30fb8d4d6fa6ef.js +0 -1
  549. package/.next/static/chunks/app/api/repositories/validate-path/route-1c30fb8d4d6fa6ef.js +0 -1
  550. package/.next/static/chunks/app/api/settings/default-agents/route-1c30fb8d4d6fa6ef.js +0 -1
  551. package/.next/static/chunks/app/api/sidebar/group-order/route-1c30fb8d4d6fa6ef.js +0 -1
  552. package/.next/static/chunks/app/api/skills/[id]/route-1c30fb8d4d6fa6ef.js +0 -1
  553. package/.next/static/chunks/app/api/skills/installations/route-1c30fb8d4d6fa6ef.js +0 -1
  554. package/.next/static/chunks/app/api/skills/operations/route-1c30fb8d4d6fa6ef.js +0 -1
  555. package/.next/static/chunks/app/api/skills/reindex/route-1c30fb8d4d6fa6ef.js +0 -1
  556. package/.next/static/chunks/app/api/skills/route-1c30fb8d4d6fa6ef.js +0 -1
  557. package/.next/static/chunks/app/api/slash-commands/route-1c30fb8d4d6fa6ef.js +0 -1
  558. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-1c30fb8d4d6fa6ef.js +0 -1
  559. package/.next/static/chunks/app/api/tasks/[taskId]/route-1c30fb8d4d6fa6ef.js +0 -1
  560. package/.next/static/chunks/app/api/templates/[id]/route-1c30fb8d4d6fa6ef.js +0 -1
  561. package/.next/static/chunks/app/api/templates/route-1c30fb8d4d6fa6ef.js +0 -1
  562. package/.next/static/chunks/app/api/todos/route-1c30fb8d4d6fa6ef.js +0 -1
  563. package/.next/static/chunks/app/api/verification/runs/[runId]/route-1c30fb8d4d6fa6ef.js +0 -1
  564. package/.next/static/chunks/app/api/verification/runs/route-1c30fb8d4d6fa6ef.js +0 -1
  565. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-1c30fb8d4d6fa6ef.js +0 -1
  566. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-1c30fb8d4d6fa6ef.js +0 -1
  567. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-1c30fb8d4d6fa6ef.js +0 -1
  568. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-1c30fb8d4d6fa6ef.js +0 -1
  569. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-1c30fb8d4d6fa6ef.js +0 -1
  570. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-1c30fb8d4d6fa6ef.js +0 -1
  571. package/.next/static/chunks/app/api/worktrees/[id]/env/route-1c30fb8d4d6fa6ef.js +0 -1
  572. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-1c30fb8d4d6fa6ef.js +0 -1
  573. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-1c30fb8d4d6fa6ef.js +0 -1
  574. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-1c30fb8d4d6fa6ef.js +0 -1
  575. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-1c30fb8d4d6fa6ef.js +0 -1
  576. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-1c30fb8d4d6fa6ef.js +0 -1
  577. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-1c30fb8d4d6fa6ef.js +0 -1
  578. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-1c30fb8d4d6fa6ef.js +0 -1
  579. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-1c30fb8d4d6fa6ef.js +0 -1
  580. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-1c30fb8d4d6fa6ef.js +0 -1
  581. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-1c30fb8d4d6fa6ef.js +0 -1
  582. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-1c30fb8d4d6fa6ef.js +0 -1
  583. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-1c30fb8d4d6fa6ef.js +0 -1
  584. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-1c30fb8d4d6fa6ef.js +0 -1
  585. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-1c30fb8d4d6fa6ef.js +0 -1
  586. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-1c30fb8d4d6fa6ef.js +0 -1
  587. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-1c30fb8d4d6fa6ef.js +0 -1
  588. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-1c30fb8d4d6fa6ef.js +0 -1
  589. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-1c30fb8d4d6fa6ef.js +0 -1
  590. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-1c30fb8d4d6fa6ef.js +0 -1
  591. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-1c30fb8d4d6fa6ef.js +0 -1
  592. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-1c30fb8d4d6fa6ef.js +0 -1
  593. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-1c30fb8d4d6fa6ef.js +0 -1
  594. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-1c30fb8d4d6fa6ef.js +0 -1
  595. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-1c30fb8d4d6fa6ef.js +0 -1
  596. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-1c30fb8d4d6fa6ef.js +0 -1
  597. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-1c30fb8d4d6fa6ef.js +0 -1
  598. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-1c30fb8d4d6fa6ef.js +0 -1
  599. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-1c30fb8d4d6fa6ef.js +0 -1
  600. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-1c30fb8d4d6fa6ef.js +0 -1
  601. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-1c30fb8d4d6fa6ef.js +0 -1
  602. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-1c30fb8d4d6fa6ef.js +0 -1
  603. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-1c30fb8d4d6fa6ef.js +0 -1
  604. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-1c30fb8d4d6fa6ef.js +0 -1
  605. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-1c30fb8d4d6fa6ef.js +0 -1
  606. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-1c30fb8d4d6fa6ef.js +0 -1
  607. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-1c30fb8d4d6fa6ef.js +0 -1
  608. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-1c30fb8d4d6fa6ef.js +0 -1
  609. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-1c30fb8d4d6fa6ef.js +0 -1
  610. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-1c30fb8d4d6fa6ef.js +0 -1
  611. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-1c30fb8d4d6fa6ef.js +0 -1
  612. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-1c30fb8d4d6fa6ef.js +0 -1
  613. package/.next/static/chunks/app/api/worktrees/[id]/route-1c30fb8d4d6fa6ef.js +0 -1
  614. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-1c30fb8d4d6fa6ef.js +0 -1
  615. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-1c30fb8d4d6fa6ef.js +0 -1
  616. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-1c30fb8d4d6fa6ef.js +0 -1
  617. package/.next/static/chunks/app/api/worktrees/[id]/search/route-1c30fb8d4d6fa6ef.js +0 -1
  618. package/.next/static/chunks/app/api/worktrees/[id]/send/route-1c30fb8d4d6fa6ef.js +0 -1
  619. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-1c30fb8d4d6fa6ef.js +0 -1
  620. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-1c30fb8d4d6fa6ef.js +0 -1
  621. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-1c30fb8d4d6fa6ef.js +0 -1
  622. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-1c30fb8d4d6fa6ef.js +0 -1
  623. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-1c30fb8d4d6fa6ef.js +0 -1
  624. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-1c30fb8d4d6fa6ef.js +0 -1
  625. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-1c30fb8d4d6fa6ef.js +0 -1
  626. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-1c30fb8d4d6fa6ef.js +0 -1
  627. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-1c30fb8d4d6fa6ef.js +0 -1
  628. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-1c30fb8d4d6fa6ef.js +0 -1
  629. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-1c30fb8d4d6fa6ef.js +0 -1
  630. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-1c30fb8d4d6fa6ef.js +0 -1
  631. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-1c30fb8d4d6fa6ef.js +0 -1
  632. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-1c30fb8d4d6fa6ef.js +0 -1
  633. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-1c30fb8d4d6fa6ef.js +0 -1
  634. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-1c30fb8d4d6fa6ef.js +0 -1
  635. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-1c30fb8d4d6fa6ef.js +0 -1
  636. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-1c30fb8d4d6fa6ef.js +0 -1
  637. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-1c30fb8d4d6fa6ef.js +0 -1
  638. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-1c30fb8d4d6fa6ef.js +0 -1
  639. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-1c30fb8d4d6fa6ef.js +0 -1
  640. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-1c30fb8d4d6fa6ef.js +0 -1
  641. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-1c30fb8d4d6fa6ef.js +0 -1
  642. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-1c30fb8d4d6fa6ef.js +0 -1
  643. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-1c30fb8d4d6fa6ef.js +0 -1
  644. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-1c30fb8d4d6fa6ef.js +0 -1
  645. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-1c30fb8d4d6fa6ef.js +0 -1
  646. package/.next/static/chunks/app/api/worktrees/route-1c30fb8d4d6fa6ef.js +0 -1
  647. package/.next/static/chunks/app/manifest.webmanifest/route-1c30fb8d4d6fa6ef.js +0 -1
  648. package/.next/static/chunks/app/proxy/[...path]/route-1c30fb8d4d6fa6ef.js +0 -1
  649. package/.next/static/chunks/app/worktrees/[id]/layout-1c30fb8d4d6fa6ef.js +0 -1
  650. package/.next/static/chunks/app/worktrees/[id]/page-ce6279d581d1df95.js +0 -1
  651. package/.next/static/chunks/app/worktrees/[id]/terminal/page-00ad5d9a62a71cab.js +0 -1
  652. package/.next/static/css/b326c8a734e1928e.css +0 -1
  653. /package/.next/static/{0YoRrahue4Vchxg1z83IQ → pcpB4K6KreMzu2qbhvuRY}/_ssgManifest.js +0 -0
@@ -46,18 +46,24 @@
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"],e=new Set(["claude","opencode","copilot"]);function f(a){return e.has(a)}function g(a,b){return!f(a)&&!b}let h=10,i=50,j=/^[a-zA-Z0-9_-]+$/;function k(a){return"string"==typeof a&&a.length>0&&a.length<=64&&j.test(a)}function l(a,b){return!a||a===b}function m(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let n={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity"};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:()=>w,GE:()=>k,LP:()=>v,Re:()=>D,UL:()=>z,Ue:()=>i,W8:()=>n,XK:()=>o,ZO:()=>y,_9:()=>t,aq:()=>m,fC:()=>C,kC:()=>u,pL:()=>j,ps:()=>x,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(a){return a<B?x:Math.min(x*Math.pow(2,a-B+1),A)}let x=2e3,y=5e3,z=1e4,A=6e4,B=5,C=50,D=50},26923:(a,b,c)=>{c.d(b,{Ds:()=>n,L:()=>o,Q9:()=>j,Uo:()=>m,Wo:()=>k,iH:()=>l,yi:()=>p});var d=c(52201);let e="sidebar_group_order",f="recent_browse_paths",g="default_selected_agents";function h(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 i(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"],e=new Set(["claude","opencode","copilot"]);function f(a){return e.has(a)}function g(a,b){return!f(a)&&!b}let h=10,i=50,j=/^[a-zA-Z0-9_-]+$/;function k(a){return"string"==typeof a&&a.length>0&&a.length<=64&&j.test(a)}function l(a,b){return!a||a===b}function m(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let n={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity"};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:()=>w,GE:()=>k,LP:()=>v,Re:()=>D,UL:()=>z,Ue:()=>i,W8:()=>n,XK:()=>o,ZO:()=>y,_9:()=>t,aq:()=>m,fC:()=>C,kC:()=>u,pL:()=>j,ps:()=>x,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(a){return a<B?x:Math.min(x*Math.pow(2,a-B+1),A)}let x=2e3,y=5e3,z=1e4,A=6e4,B=5,C=50,D=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
53
53
  value = excluded.value,
54
54
  updated_at = excluded.updated_at
55
- `).run(b,JSON.stringify(c),d,d)}function j(a){return h(a,e)}function k(a,b){i(a,e,b)}function l(a){return h(a,f)??[]}function m(a,b){let c=l(a).filter(a=>a!==b);i(a,f,[b,...c].slice(0,5))}function n(a){let b=h(a,g);if(!b)return null;let c=(0,d.Lt)(b);return c.valid?c.value:null}function o(a,b){i(a,g,b)}function p(a){a.prepare("DELETE FROM app_settings WHERE key = ?").run(g)}},27923:(a,b,c)=>{c.d(b,{D6:()=>g,b$:()=>e,oo:()=>f});var d=c(40277);function e(a,b,c,d){b&&c&&b!==c&&void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get()&&(a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?").run(c),a.prepare(`INSERT INTO worktree_aliases (old_id, worktree_id, created_at)
55
+ `).run(b,JSON.stringify(c),d,d)}function l(a){return j(a,f)}function m(a,b){k(a,f,b)}function n(a){return j(a,g)??[]}function o(a,b){let c=n(a).filter(a=>a!==b);k(a,g,[b,...c].slice(0,5))}function p(a){let b=j(a,h);if(!b)return null;let c=(0,d.Lt)(b);return c.valid?c.value:null}function q(a,b){k(a,h,b)}function r(a){a.prepare("DELETE FROM app_settings WHERE key = ?").run(h)}function s(a){let b=function(a,b){try{let c=a.prepare("SELECT value FROM app_settings WHERE key = ?").get(b);return c?c.value:null}catch{return null}}(a,i);return(0,e.jg)(b)?b:null}function t(a,b){let c=Date.now();a.prepare(`
56
+ INSERT INTO app_settings (key, value, created_at, updated_at)
57
+ VALUES (?, ?, ?, ?)
58
+ ON CONFLICT(key) DO UPDATE SET
59
+ value = excluded.value,
60
+ updated_at = excluded.updated_at
61
+ `).run(i,b,c,c)}},27923:(a,b,c)=>{c.d(b,{D6:()=>g,b$:()=>e,oo:()=>f});var d=c(40277);function e(a,b,c,d){b&&c&&b!==c&&void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get()&&(a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?").run(c),a.prepare(`INSERT INTO worktree_aliases (old_id, worktree_id, created_at)
56
62
  VALUES (?, ?, ?)
57
63
  ON CONFLICT(old_id) DO UPDATE SET
58
64
  worktree_id = excluded.worktree_id,
59
- 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)}},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:()=>G,O$:()=>B,Os:()=>D,W6:()=>p,WZ:()=>o,XE:()=>r,ZL:()=>E,g5:()=>y,iR:()=>z,jx:()=>n,q:()=>v,sI:()=>q,xM:()=>A,yc:()=>w});var d=c(55511),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(87447),j=c(15194),k=c(70997),l=c(13287);let m=(0,c(72626).h)("lib/hooks/hook-settings-generator"),n="/api/hooks/agent-event",o="/api/hooks/permission-request",p=5,q=5,r="CM_AUTH_TOKEN",s=l.k$,t=["Bash(pkill:*)","Bash(killall:*)","Bash(kill -9:*)"],u=(0,g.join)("scripts","hooks","cmate-agent-event.sh");function v(){return"0"!==process.env.CM_AGENT_HOOKS_INJECT}function w(){return!!(process.env[r]||process.env.CM_AUTH_TOKEN_HASH)}function x(a={}){let b=(0,g.join)((0,f.homedir)(),".commandmate","hooks");return a.directory?(0,h.T)(a.directory,b,"HookSettingsOptions.directory"):(0,h.T)(process.env.CM_AGENT_HOOKS_DIR,b,"CM_AGENT_HOOKS_DIR")}function y(a){let b=a.cliToolId??k.v;return a.instanceId??b}function z(a,b={}){let c=a.cliToolId??k.v,e=y(a),f=`${c}-${a.worktreeId}-${e}`.replace(/[^a-zA-Z0-9_-]/g,"_"),h=(0,d.createHash)("sha256").update(JSON.stringify([c,a.worktreeId,e])).digest("hex").slice(0,12);return(0,g.join)(x(b),`${f.slice(0,80)}-${h}.json`)}function A(a,b={}){return C(n,a,b)}function B(a,b={}){return C(o,a,b)}function C(a,b,c){let d=b.cliToolId??k.v,e=c.port??(0,i.D0)(),f=new URLSearchParams({tool:d,worktreeId:b.worktreeId,instanceId:y(b)});return`http://127.0.0.1:${e}${a}?${f.toString()}`}function D(){let a=(0,g.resolve)(process.cwd(),u);return(0,e.existsSync)(a)?a:null}function E(a){return`'${a.replace(/'/g,"'\\''")}'`}function F(a,b,c=p){let d={"Content-Type":"application/json"},e={type:"http",url:a,headers:d,timeout:c};return b&&(d.Authorization=`Bearer $${r}`,e.allowedEnvVars=[r]),e}function G(a,b,c={}){if(!v())return a;if(!(0,j.n6)(y(b)))return m.warn("hook-settings-invalid-instance-id",{worktreeId:b.worktreeId}),a;try{let d=function(a,b={}){let c=z(a,b);return(0,e.mkdirSync)(x(b),{recursive:!0,mode:448}),(0,e.writeFileSync)(c,`${JSON.stringify(function(a,b={}){let c=A(a,b),d=b.withAuthHeader??w(),e=()=>F(c,d);return{hooks:{SessionStart:[{hooks:[{type:"command",command:function(a,b={}){let c=A(a,b),d=b.withAuthHeader??w(),e=void 0===b.relayScriptPath?D():b.relayScriptPath;if(e)return[E(e),"--tool",E(a.cliToolId??k.v),"--event session_start --worktree-id",E(a.worktreeId),"--instance-id",E(y(a)),"--url",E(c),"--stdin-json"].join(" ");let f=d?` -H "Authorization: Bearer $${r}"`:"";return`curl -sS -m ${p} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${E(c)} >/dev/null 2>&1 || true`}(a,b),timeout:p}]}],UserPromptSubmit:[{hooks:[e()]}],Stop:[{hooks:[e()]}],Notification:[{matcher:"permission_prompt|idle_prompt",hooks:[e()]}],SessionEnd:[{hooks:[e()]}],PreToolUse:[{matcher:s,hooks:[e()]}],PostToolUse:[{matcher:s,hooks:[e()]}],PermissionRequest:[{hooks:[F(B(a,b),d,q)]}]},permissions:{deny:[...t]}}}(a,b),null,2)}
60
- `,{mode:384}),c}(b,c);return`${E(a)} --settings ${E(d)}`}catch(c){return m.warn("hook-settings-write-failed",{worktreeId:b.worktreeId,error:c instanceof Error?c.message:String(c)}),a}}},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.d(b,{DF:()=>p,EU:()=>s,Ow:()=>m,PL:()=>y,Qp:()=>r,VL:()=>k,cf:()=>t,cw:()=>x,e8:()=>j,jp:()=>u,kA:()=>w,ks:()=>f,lA:()=>q,lr:()=>v,nP:()=>h,oH:()=>i,pE:()=>o,pG:()=>z,r8:()=>l,sy:()=>n});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(`
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)}},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:()=>G,O$:()=>B,Os:()=>D,W6:()=>p,WZ:()=>o,XE:()=>r,ZL:()=>E,g5:()=>y,iR:()=>z,jx:()=>n,q:()=>v,sI:()=>q,xM:()=>A,yc:()=>w});var d=c(55511),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(87447),j=c(15194),k=c(70997),l=c(13287);let m=(0,c(72626).h)("lib/hooks/hook-settings-generator"),n="/api/hooks/agent-event",o="/api/hooks/permission-request",p=5,q=5,r="CM_AUTH_TOKEN",s=l.k$,t=["Bash(pkill:*)","Bash(killall:*)","Bash(kill -9:*)"],u=(0,g.join)("scripts","hooks","cmate-agent-event.sh");function v(){return"0"!==process.env.CM_AGENT_HOOKS_INJECT}function w(){return!!(process.env[r]||process.env.CM_AUTH_TOKEN_HASH)}function x(a={}){let b=(0,g.join)((0,f.homedir)(),".commandmate","hooks");return a.directory?(0,h.T)(a.directory,b,"HookSettingsOptions.directory"):(0,h.T)(process.env.CM_AGENT_HOOKS_DIR,b,"CM_AGENT_HOOKS_DIR")}function y(a){let b=a.cliToolId??k.v;return a.instanceId??b}function z(a,b={}){let c=a.cliToolId??k.v,e=y(a),f=`${c}-${a.worktreeId}-${e}`.replace(/[^a-zA-Z0-9_-]/g,"_"),h=(0,d.createHash)("sha256").update(JSON.stringify([c,a.worktreeId,e])).digest("hex").slice(0,12);return(0,g.join)(x(b),`${f.slice(0,80)}-${h}.json`)}function A(a,b={}){return C(n,a,b)}function B(a,b={}){return C(o,a,b)}function C(a,b,c){let d=b.cliToolId??k.v,e=c.port??(0,i.D0)(),f=new URLSearchParams({tool:d,worktreeId:b.worktreeId,instanceId:y(b)});return`http://127.0.0.1:${e}${a}?${f.toString()}`}function D(){let a=(0,g.resolve)(process.cwd(),u);return(0,e.existsSync)(a)?a:null}function E(a){return`'${a.replace(/'/g,"'\\''")}'`}function F(a,b,c=p){let d={"Content-Type":"application/json"},e={type:"http",url:a,headers:d,timeout:c};return b&&(d.Authorization=`Bearer $${r}`,e.allowedEnvVars=[r]),e}function G(a,b,c={}){if(!v())return a;if(!(0,j.n6)(y(b)))return m.warn("hook-settings-invalid-instance-id",{worktreeId:b.worktreeId}),a;try{let d=function(a,b={}){let c=z(a,b);return(0,e.mkdirSync)(x(b),{recursive:!0,mode:448}),(0,e.writeFileSync)(c,`${JSON.stringify(function(a,b={}){let c=A(a,b),d=b.withAuthHeader??w(),e=()=>F(c,d);return{hooks:{SessionStart:[{hooks:[{type:"command",command:function(a,b={}){let c=A(a,b),d=b.withAuthHeader??w(),e=void 0===b.relayScriptPath?D():b.relayScriptPath;if(e)return[E(e),"--tool",E(a.cliToolId??k.v),"--event session_start --worktree-id",E(a.worktreeId),"--instance-id",E(y(a)),"--url",E(c),"--stdin-json"].join(" ");let f=d?` -H "Authorization: Bearer $${r}"`:"";return`curl -sS -m ${p} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${E(c)} >/dev/null 2>&1 || true`}(a,b),timeout:p}]}],UserPromptSubmit:[{hooks:[e()]}],Stop:[{hooks:[e()]}],Notification:[{matcher:"permission_prompt|idle_prompt",hooks:[e()]}],SessionEnd:[{hooks:[e()]}],PreToolUse:[{matcher:s,hooks:[e()]}],PostToolUse:[{matcher:s,hooks:[e()]}],PermissionRequest:[{hooks:[F(B(a,b),d,q)]}]},permissions:{deny:[...t]}}}(a,b),null,2)}
66
+ `,{mode:384}),c}(b,c);return`${E(a)} --settings ${E(d)}`}catch(c){return m.warn("hook-settings-write-failed",{worktreeId:b.worktreeId,error:c instanceof Error?c.message:String(c)}),a}}},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,UNKEYED_USER_MESSAGE_LIMIT:()=>n,clearLastUserMessage:()=>w,createMessage:()=>i,deleteAllMessages:()=>r,deleteMessageById:()=>s,deleteMessagesByCliTool:()=>t,deleteMessagesByInstance:()=>u,findMessageByRequestId:()=>m,findUnkeyedUserMessages:()=>o,getLastAssistantMessageAt:()=>h,getLastMessage:()=>q,getLastUserMessage:()=>l,getMessageById:()=>z,getMessages:()=>k,getMessagesByDateRange:()=>y,markPendingPromptsAsAnswered:()=>B,recomputeLastUserMessage:()=>x,recordAnsweredPrompt:()=>C,setMessageRequestId:()=>p,updateLastUserMessage:()=>v,updateMessageContent:()=>j,updatePromptData:()=>A});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(`
61
67
  SELECT MAX(timestamp) as last_assistant_message_at
62
68
  FROM chat_messages
63
69
  WHERE worktree_id = ? AND role = 'assistant' ${f}
@@ -69,15 +75,15 @@
69
75
  UPDATE worktrees
70
76
  SET updated_at = ?
71
77
  WHERE id = ?
72
- `).run(e.getTime(),c),"user"===b.role&&s(a,b.worktreeId,b.content,b.timestamp),{id:f,...b,archived:!1}}function j(a,b,c,d){let e=["content = ?"],f=[c];d?.summary!==void 0&&(e.push("summary = ?"),f.push(d.summary??null)),d?.logFileName!==void 0&&(e.push("log_file_name = ?"),f.push(d.logFileName??null)),d?.requestId!==void 0&&(e.push("request_id = ?"),f.push(d.requestId??null)),a.prepare(`
78
+ `).run(e.getTime(),c),"user"===b.role&&v(a,b.worktreeId,b.content,b.timestamp),{id:f,...b,archived:!1}}function j(a,b,c,d){let e=["content = ?"],f=[c];d?.summary!==void 0&&(e.push("summary = ?"),f.push(d.summary??null)),d?.logFileName!==void 0&&(e.push("log_file_name = ?"),f.push(d.logFileName??null)),d?.requestId!==void 0&&(e.push("request_id = ?"),f.push(d.requestId??null)),a.prepare(`
73
79
  UPDATE chat_messages
74
80
  SET ${e.join(", ")}
75
81
  WHERE id = ?
76
- `).run(...f,b)}function k(a,b,c={}){let{before:d,limit:e=50,cliToolId:h,instanceId:i,includeArchived:j=!1,messageType:l,limitUnit:m="messages"}=c,n=()=>{let a=`FROM chat_messages
77
- WHERE worktree_id = ? AND (? IS NULL OR timestamp < ?)`,c=[b,d?.getTime()||null,d?.getTime()||null];return j||(a+=` ${f}`),i?(a+=" AND instance_id = ?",c.push(i)):h&&(a+=" AND cli_tool_id = ?",c.push(h)),l&&(a+=" AND message_type = ?",c.push(l)),{clause:a,params:c}},o="SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived";if("pairs"===m){let b=n(),c=a.prepare(`SELECT MIN(timestamp) AS cutoff FROM (
82
+ `).run(...f,b)}function k(a,b,c={}){let{before:d,limit:e=50,cliToolId:h,instanceId:i,includeArchived:j=!1,messageType:l,limitUnit:m="messages",matchResolvedInstance:n=!1}=c,o=()=>{let a=`FROM chat_messages
83
+ WHERE worktree_id = ? AND (? IS NULL OR timestamp < ?)`,c=[b,d?.getTime()||null,d?.getTime()||null];return j||(a+=` ${f}`),i&&n?(h&&(a+=" AND COALESCE(cli_tool_id, 'claude') = ?",c.push(h)),a+=" AND COALESCE(instance_id, cli_tool_id, 'claude') = ?",c.push(i)):i?(a+=" AND instance_id = ?",c.push(i)):h&&(a+=" AND cli_tool_id = ?",c.push(h)),l&&(a+=" AND message_type = ?",c.push(l)),{clause:a,params:c}},p="SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived";if("pairs"===m){let b=o(),c=a.prepare(`SELECT MIN(timestamp) AS cutoff FROM (
78
84
  SELECT timestamp ${b.clause} AND role = 'user'
79
85
  ORDER BY timestamp DESC LIMIT ?
80
- )`).get(...b.params,e),d=c?.cutoff??null;if(null!==d){let b=n();return a.prepare(`${o} ${b.clause} AND timestamp >= ? ORDER BY timestamp DESC`).all(...b.params,d).map(g)}}let p=n();return a.prepare(`${o} ${p.clause} ORDER BY timestamp DESC LIMIT ?`).all(...p.params,e).map(g)}function l(a,b){let c=a.prepare(`
86
+ )`).get(...b.params,e),d=c?.cutoff??null;if(null!==d){let b=o();return a.prepare(`${p} ${b.clause} AND timestamp >= ? ORDER BY timestamp DESC`).all(...b.params,d).map(g)}}let q=o();return a.prepare(`${p} ${q.clause} ORDER BY timestamp DESC LIMIT ?`).all(...q.params,e).map(g)}function l(a,b){let c=a.prepare(`
81
87
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
82
88
  FROM chat_messages
83
89
  WHERE worktree_id = ? AND role = 'user' ${f}
@@ -89,51 +95,67 @@
89
95
  WHERE worktree_id = ? AND request_id = ?
90
96
  ORDER BY timestamp DESC
91
97
  LIMIT 1
92
- `).get(b,c);return d?g(d):null}function n(a,b){let c=a.prepare(`
98
+ `).get(b,c);return d?g(d):null}let n=20;function o(a,b){return a.prepare(`
99
+ SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
100
+ FROM chat_messages
101
+ WHERE worktree_id = ?
102
+ AND role = 'user'
103
+ AND request_id IS NULL
104
+ AND COALESCE(cli_tool_id, 'claude') = ?
105
+ AND COALESCE(instance_id, cli_tool_id, 'claude') = ?
106
+ AND timestamp >= ? AND timestamp <= ?
107
+ ${f}
108
+ ORDER BY timestamp DESC
109
+ LIMIT ?
110
+ `).all(b.worktreeId,b.cliToolId,b.instanceId,b.fromMs,b.toMs,b.limit??n).map(g)}function p(a,b,c){return a.prepare(`
111
+ UPDATE chat_messages
112
+ SET request_id = ?
113
+ WHERE id = ? AND request_id IS NULL
114
+ `).run(c,b).changes>0}function q(a,b){let c=a.prepare(`
93
115
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
94
116
  FROM chat_messages
95
117
  WHERE worktree_id = ? ${f}
96
118
  ORDER BY timestamp DESC
97
119
  LIMIT 1
98
- `).get(b);return c?g(c):null}function o(a,b){let c=a.prepare(`
120
+ `).get(b);return c?g(c):null}function r(a,b){let c=a.prepare(`
99
121
  UPDATE chat_messages
100
122
  SET archived = 1
101
123
  WHERE worktree_id = ? ${f}
102
- `).run(b);return e.info("archived-all-messages",{worktreeId:b,count:c.changes}),c.changes}function p(a,b){return a.prepare(`
124
+ `).run(b);return e.info("archived-all-messages",{worktreeId:b,count:c.changes}),c.changes}function s(a,b){return a.prepare(`
103
125
  DELETE FROM chat_messages
104
126
  WHERE id = ?
105
- `).run(b).changes>0}function q(a,b,c){let d=a.prepare(`
127
+ `).run(b).changes>0}function t(a,b,c){let d=a.prepare(`
106
128
  UPDATE chat_messages
107
129
  SET archived = 1
108
130
  WHERE worktree_id = ? AND cli_tool_id = ? ${f}
109
- `).run(b,c);return e.info("archived-messages-by-cli-tool",{worktreeId:b,cliTool:c,count:d.changes}),d.changes}function r(a,b,c){let d=a.prepare(`
131
+ `).run(b,c);return e.info("archived-messages-by-cli-tool",{worktreeId:b,cliTool:c,count:d.changes}),d.changes}function u(a,b,c){let d=a.prepare(`
110
132
  UPDATE chat_messages
111
133
  SET archived = 1
112
134
  WHERE worktree_id = ? AND instance_id = ? ${f}
113
- `).run(b,c);return e.info("archived-messages-by-instance",{worktreeId:b,instanceId:c,count:d.changes}),d.changes}function s(a,b,c,d){let e=a.prepare(`
135
+ `).run(b,c);return e.info("archived-messages-by-instance",{worktreeId:b,instanceId:c,count:d.changes}),d.changes}function v(a,b,c,d){let e=a.prepare(`
114
136
  UPDATE worktrees
115
137
  SET last_user_message = ?,
116
138
  last_user_message_at = ?
117
139
  WHERE id = ?
118
- `),f=c.substring(0,200);e.run(f,d.getTime(),b)}function t(a,b){a.prepare(`
140
+ `),f=c.substring(0,200);e.run(f,d.getTime(),b)}function w(a,b){a.prepare(`
119
141
  UPDATE worktrees
120
142
  SET last_user_message = NULL,
121
143
  last_user_message_at = NULL
122
144
  WHERE id = ?
123
- `).run(b)}function u(a,b){let c=l(a,b);c?s(a,b,c.content,c.timestamp):t(a,b)}function v(a,b){let{after:c,before:d,includeArchived:e=!1}=b,h=`
145
+ `).run(b)}function x(a,b){let c=l(a,b);c?v(a,b,c.content,c.timestamp):w(a,b)}function y(a,b){let{after:c,before:d,includeArchived:e=!1}=b,h=`
124
146
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
125
147
  FROM chat_messages
126
148
  WHERE timestamp >= ? AND timestamp < ?
127
- `;return e||(h+=` ${f}`),h+=" ORDER BY timestamp ASC",a.prepare(h).all(c.getTime(),d.getTime()).map(g)}function w(a,b){let c=a.prepare(`
149
+ `;return e||(h+=` ${f}`),h+=" ORDER BY timestamp ASC",a.prepare(h).all(c.getTime(),d.getTime()).map(g)}function z(a,b){let c=a.prepare(`
128
150
  SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
129
151
  FROM chat_messages
130
152
  WHERE id = ?
131
- `).get(b);return c?g(c):null}function x(a,b,c){a.prepare(`
153
+ `).get(b);return c?g(c):null}function A(a,b,c){a.prepare(`
132
154
  UPDATE chat_messages
133
155
  SET prompt_data = ?
134
156
  WHERE id = ?
135
- `).run(JSON.stringify(c),b)}function y(a,b,c,d){let e=a.prepare(`
136
- SELECT id, prompt_data
157
+ `).run(JSON.stringify(c),b)}function B(a,b,c,d,e){let h=a.prepare(`
158
+ SELECT id, worktree_id, role, content, summary, timestamp, log_file_name, request_id, message_type, prompt_data, cli_tool_id, instance_id, archived
137
159
  FROM chat_messages
138
160
  WHERE worktree_id = ?
139
161
  AND instance_id = ?
@@ -141,11 +163,11 @@
141
163
  AND json_extract(prompt_data, '$.status') = 'pending'
142
164
  ${f}
143
165
  ORDER BY timestamp DESC
144
- `).all(b,d??c);if(0===e.length)return 0;let g=a.prepare(`
166
+ `).all(b,d??c);if(0===h.length)return 0;let i=a.prepare(`
145
167
  UPDATE chat_messages
146
168
  SET prompt_data = ?
147
169
  WHERE id = ?
148
- `),h=0;for(let a of e)try{let b=JSON.parse(a.prompt_data);b.status="answered",b.answer="(answered via terminal)",b.answeredAt=new Date().toISOString(),b.answeredBy="terminal",g.run(JSON.stringify(b),a.id),h++}catch{}return h}function z(a,b){let{worktreeId:c,cliToolId:d,promptData:e,answer:g,answeredBy:h}=b,j=b.instanceId??d,k=a.prepare(`
170
+ `),j=0,k=[];for(let a of h)try{let b=JSON.parse(a.prompt_data??"null");if(!b||"object"!=typeof b)continue;b.status="answered",b.answer="(answered via terminal)",b.answeredAt=new Date().toISOString(),b.answeredBy="terminal";let c=JSON.stringify(b);i.run(c,a.id),j++,e&&k.push(g({...a,prompt_data:c}))}catch{}for(let a of k)e?.(a);return j}function C(a,b){let{worktreeId:c,cliToolId:d,promptData:e,answer:g,answeredBy:h}=b,j=b.instanceId??d,k=a.prepare(`
149
171
  SELECT id, prompt_data
150
172
  FROM chat_messages
151
173
  WHERE worktree_id = ?
@@ -154,7 +176,7 @@
154
176
  AND json_extract(prompt_data, '$.status') = 'pending'
155
177
  ${f}
156
178
  ORDER BY timestamp DESC
157
- `).all(c,j),l=null;for(let a of k)try{let b=JSON.parse(a.prompt_data);if(l||(l={id:a.id,parsed:b}),b.question===e.question){l={id:a.id,parsed:b};break}}catch{}let m=new Date().toISOString();if(l){let b={...l.parsed,status:"answered",answer:g,answeredAt:m,answeredBy:h};return x(a,l.id,b),{message:w(a,l.id),created:!1}}return{message:i(a,{worktreeId:c,role:"assistant",content:b.content||e.question||"[prompt]",messageType:"prompt",promptData:{...e,status:"answered",answer:g,answeredAt:m,answeredBy:h},timestamp:new Date,cliToolId:d,instanceId:j}),created:!0}}},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,Ui:()=>m,ZL:()=>n,_D:()=>w,_h:()=>o,ef:()=>x,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=`
179
+ `).all(c,j),l=null;for(let a of k)try{let b=JSON.parse(a.prompt_data);if(l||(l={id:a.id,parsed:b}),b.question===e.question){l={id:a.id,parsed:b};break}}catch{}let m=new Date().toISOString();if(l){let b={...l.parsed,status:"answered",answer:g,answeredAt:m,answeredBy:h};return A(a,l.id,b),{message:z(a,l.id),created:!1}}return{message:i(a,{worktreeId:c,role:"assistant",content:b.content||e.question||"[prompt]",messageType:"prompt",promptData:{...e,status:"answered",answer:g,answeredAt:m,answeredBy:h},timestamp:new Date,cliToolId:d,instanceId:j}),created:!0}}},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=`
158
180
  SELECT
159
181
  w.id, w.name, w.path, w.repository_path, w.repository_name, w.description,
160
182
  w.last_user_message, w.last_user_message_at, w.last_message_summary,
@@ -162,7 +184,7 @@
162
184
  w.selected_agents, w.vibe_local_model, w.vibe_local_context_window, w.branch,
163
185
  r.display_name as repository_display_name,
164
186
  (SELECT MAX(timestamp) FROM chat_messages
165
- WHERE worktree_id = w.id AND role = 'assistant' ${g.ks}) as last_assistant_message_at
187
+ WHERE worktree_id = w.id AND role = 'assistant' ${g.ACTIVE_FILTER}) as last_assistant_message_at
166
188
  FROM worktrees w
167
189
  LEFT JOIN repositories r ON w.repository_path = r.path
168
190
  `,h=[];b&&(c+=" WHERE w.repository_path = ?",h.push(b)),c+=" ORDER BY w.updated_at DESC NULLS LAST";let k=a.prepare(c).all(...h),l=function(a,b){if(0===b.length)return new Map;let c=b.map(()=>"?").join(","),d=a.prepare(`
@@ -178,7 +200,7 @@
178
200
  FROM chat_messages
179
201
  WHERE worktree_id IN (${c})
180
202
  AND role = 'user'
181
- ${g.ks}
203
+ ${g.ACTIVE_FILTER}
182
204
  )
183
205
  SELECT worktree_id, cli_tool_id, content
184
206
  FROM ranked_messages
@@ -205,7 +227,7 @@
205
227
  w.selected_agents, w.vibe_local_model, w.vibe_local_context_window, w.branch,
206
228
  r.display_name as repository_display_name,
207
229
  (SELECT MAX(timestamp) FROM chat_messages
208
- WHERE worktree_id = w.id AND role = 'assistant' ${g.ks}) as last_assistant_message_at
230
+ WHERE worktree_id = w.id AND role = 'assistant' ${g.ACTIVE_FILTER}) as last_assistant_message_at
209
231
  FROM worktrees w
210
232
  LEFT JOIN repositories r ON w.repository_path = r.path
211
233
  WHERE w.id = ?
@@ -0,0 +1,3 @@
1
+ "use strict";exports.id=9696,exports.ids=[9696],exports.modules={18201:(a,b,c)=>{c.d(b,{Ce:()=>g});let d=(0,c(72626).h)("lib/history/user-turn-recorder");function e(a){return a.replace(/\r\n?/g,"\n").split("\n").map(a=>a.replace(/[ \t ]+$/u,"")).join("\n").trim()}function f(a){return{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId}}async function g(a,b,h,i,j={}){let k=a.instanceId??a.cliToolId,l=e(h);if(0===b.length||0===l.length)return{outcome:"skipped",messageId:null,timestampMs:null};try{let[{getDbInstance:g},m,{broadcastMessage:n}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,52660)),Promise.all([c.e(1503),c.e(4299),c.e(1719),c.e(6894),c.e(5120)]).then(c.bind(c,79129))]),o=g(),p=m.findMessageByRequestId(o,a.worktreeId,b);if(p)return{outcome:"already-recorded",messageId:p.id,timestampMs:p.timestamp.getTime()};let q=i>0?i:Date.now(),r=function(a,b,c,g,h,i,j,k){let l=Math.min(j-12e4,k.adoptionFromMs??1/0);for(let k of a.findUnkeyedUserMessages(b,{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:g,fromMs:l,toMs:j+12e4}).filter(a=>e(a.content)===i).sort((a,b)=>Math.abs(a.timestamp.getTime()-j)-Math.abs(b.timestamp.getTime()-j)))if(a.setMessageRequestId(b,k.id,h))return d.info("user-turn-adopted",{...f(c),requestId:h,messageId:k.id,driftMs:k.timestamp.getTime()-j}),{outcome:"adopted",messageId:k.id,timestampMs:k.timestamp.getTime()};return null}(m,o,a,k,b,l,q,j);if(r)return r;let s=m.createMessage(o,{worktreeId:a.worktreeId,role:"user",content:h,messageType:"normal",timestamp:new Date(q),cliToolId:a.cliToolId,instanceId:k,requestId:b});return n("message",{worktreeId:a.worktreeId,message:s}),d.info("user-turn-recorded",{...f(a),requestId:b,contentLength:h.length}),{outcome:"inserted",messageId:s.id,timestampMs:q}}catch(c){return d.error("user-turn-record-failed",{...f(a),requestId:b,error:c instanceof Error?c.message:String(c)}),{outcome:"failed",messageId:null,timestampMs:null}}}},79696:(a,b,c)=>{c.d(b,{K$:()=>B,readClaudeTurnProgress:()=>E,Oi:()=>D});var d=c(79748),e=c(21820),f=c(33873),g=c(24455),h=c(18201),i=c(72626),j=c(86594),k=c(57510),l=c(27128);let m=[".claude","projects"],n="\n\n_(truncated)_",o=["<local-command-caveat>","<local-command-stdout>","<command-name>","<command-message>"],p=["command","file_path","notebook_path","path","pattern","query","url","description"];function q(a){let b=[],c=0;for(let d of a.split("\n")){let a;if(0===d.trim().length)continue;try{a=JSON.parse(d)}catch{c+=1;continue}let e=function(a){if(!(0,k.Qd)(a))return null;let b=(0,k.O2)(a,"type");if(!b)return null;let c=(0,k.Qd)(a.message)?a.message:null,d=c?.content,e=[],f="";if("string"==typeof d)f=d;else if(Array.isArray(d))for(let a of d){let b=function(a){if(!(0,k.Qd)(a))return null;let b=(0,k.O2)(a,"type");if(!b)return null;if("tool_use"===b)return{type:b,text:null,toolName:(0,k.O2)(a,"name"),toolDetail:function(a){if(!(0,k.Qd)(a))return null;for(let c of p){let d=(0,k.O2)(a,c);if(d){var b;return(b=d.replace(/\s+/g," ").trim()).length<=200?b:`${b.slice(0,199)}…`}}return null}(a.input)};let c="text"===b?(0,k.O2)(a,"text")??"":"thinking"===b?(0,k.O2)(a,"thinking")??"":null;return{type:b,text:c,toolName:null,toolDetail:null}}(a);b&&(e.push(b),b.text&&(f+=b.text))}let g=(0,k.O2)(a,"timestamp"),h=g?Date.parse(g):NaN,i=(0,k.Qd)(a.origin)?a.origin:null;return{type:b,uuid:(0,k.O2)(a,"uuid"),sessionId:(0,k.O2)(a,"sessionId")??(0,k.O2)(a,"session_id"),cwd:(0,k.O2)(a,"cwd"),isSidechain:!0===a.isSidechain,isMeta:!0===a.isMeta,originKind:i?(0,k.O2)(i,"kind"):null,promptSource:(0,k.O2)(a,"promptSource"),isCompactSummary:!0===a.isCompactSummary,isInterruption:null!==(0,k.O2)(a,"interruptedMessageId"),timestampMs:Number.isFinite(h)?h:null,blocks:e,text:f}}(a);e?b.push(e):c+=1}return{records:b,malformedLines:c}}function r(a){if("user"!==a.type||a.isMeta||!a.uuid||a.blocks.some(a=>"tool_result"===a.type))return!1;let b=a.text.trim();return 0!==b.length&&!o.some(a=>b.startsWith(a))}let s=["typed","queued"];function t(a,b){let c=[],d=null,e=0,f=0;for(let g of a){if(g.isSidechain){f+=1;continue}if(r(g)){d=function(a,b){return{sessionId:a.sessionId??b,promptUuid:a.uuid,startedAt:a.timestampMs??0,promptText:a.text,promptIsOperatorInput:!!r(a)&&!a.isCompactSummary&&!a.isInterruption&&(null!==a.originKind?"human"===a.originKind:null!==a.promptSource&&s.includes(a.promptSource)),blocks:[],assistantRecords:0,overflowed:!1}}(g,b),c.push(d);continue}if("assistant"===g.type){if(!d){e+=1;continue}for(let a of(d.assistantRecords+=1,g.blocks)){if(d.blocks.length>=2048){d.overflowed=!0;break}d.blocks.push(a)}}}return{turns:c,orphanedAssistantRecords:e,sidechainRecords:f}}let u=new Set(["tool_result"]);function v(a){let b=[],c=new Set,d=0,e=0;for(let f of a.blocks){if("text"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push({kind:"prose",text:a}),d+=1;continue}if("thinking"===f.type){let a=f.text?.trim()??"";if(0===a.length)continue;b.push({kind:"aside",text:function(a){let b=a.trim().split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n");return`> **Thinking**
2
+ >
3
+ ${b}`}(a)});continue}if("tool_use"===f.type){b.push({kind:"tool",text:function(a){let b=a.toolName??"tool";return a.toolDetail?`- \`${b}\` — ${a.toolDetail}`:`- \`${b}\``}(f)}),e+=1;continue}u.has(f.type)||c.add(f.type)}let f=(0,l.t)(b).body;return f.length>2e5&&(f=f.slice(0,2e5-n.length)+n),{sessionId:a.sessionId,promptUuid:a.promptUuid,body:f,textBlocks:d,toolBlocks:e,unknownBlockTypes:[...c]}}let w=(0,i.h)("lib/hooks/sources/claude/history"),x=".jsonl",y=globalThis.__claudeTranscriptSessions??=new Map;async function z(a){let b=(0,g.v7)(a.worktreeId,a.cliToolId,a.instanceId);try{let{getLastAgentEvent:d}=await Promise.resolve().then(c.bind(c,48083)),e=d(a.worktreeId,a.cliToolId,a.instanceId)?.sessionId;if("string"==typeof e&&e.length>0)return y.set(b,e),e}catch(b){w.debug("claude-transcript-session-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return y.get(b)??null}function A(a){return(0,f.join)(a,...m)}async function B(a,b){let c=a.instanceId??a.cliToolId;try{let g=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return!1;let h=await z(a),i=await G(g,b,h);if(!i)return w.debug("claude-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:c,sessionId:h,reason:h?"no-file":"no-session-pointer"}),!1;let j=await I(i);if(null===j)return!1;let k=q(j),l=t(k.records,h??"");if(0===l.turns.length)return w.info("claude-transcript-no-turn",{worktreeId:a.worktreeId,instanceId:c,path:i,records:k.records.length,malformedLines:k.malformedLines,orphanedAssistantRecords:l.orphanedAssistantRecords}),!1;(k.malformedLines>0||l.orphanedAssistantRecords>0)&&w.info("claude-transcript-partial-read",{worktreeId:a.worktreeId,instanceId:c,path:i,malformedLines:k.malformedLines,orphanedAssistantRecords:l.orphanedAssistantRecords,sidechainRecords:l.sidechainRecords});let m=await C(a,l.turns);if(0===m.turns.length)return w.debug("claude-transcript-turns-already-saved",{worktreeId:a.worktreeId,instanceId:c,turnsInWindow:l.turns.length}),!0;m.turns.length>1&&w.info("claude-transcript-backfilling-turns",{worktreeId:a.worktreeId,instanceId:c,path:i,pendingTurns:m.turns.length,turnsInWindow:l.turns.length,anchored:m.anchored});let n=!1;for(let b=0;b<m.turns.length;b+=1){var d,f;let c=m.turns[b],e=0===b?m.previousStartedAt:m.turns[b-1].startedAt,g=await F(a,c,e);n=await J(a,v(c),(d=c,f=g,null===f.timestampMs?d.startedAt:Math.max(d.startedAt,f.timestampMs+1)),i)}return n}catch(b){return w.error("claude-transcript-capture-failed",{worktreeId:a.worktreeId,instanceId:c,error:b instanceof Error?b.message:String(b)}),!1}}async function C(a,b){let[{getDbInstance:d},{findMessageByRequestId:e}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),f=d();for(let c=b.length-1;c>=0;c-=1){let d=(0,j.qe)(b[c].promptUuid);if(e(f,a.worktreeId,d))return{turns:b.slice(c+1),previousStartedAt:b[c].startedAt,anchored:!0}}return{turns:b.slice(-1),previousStartedAt:b.length>1?b[b.length-2].startedAt:0,anchored:!1}}async function D(a,b){try{let c=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return null;return await G(c,b,await z(a))}catch{return null}}async function E(a,b){let c=a.instanceId??a.cliToolId;try{var d;let f=b.homeDir??(0,e.homedir)();if("string"!=typeof b.worktreePath||0===b.worktreePath.length)return null;let g=await z(a),h=await G(f,b,g);if(!h)return null;let i=await I(h);if(null===i)return null;let k=q(i),l=t(k.records,g??""),m=l.turns.at(-1);if(m){let a=v(m);if(0===a.body.length)return null;return{turnKey:(0,j.qe)(a.promptUuid),body:a.body,partial:!1}}if(0===l.orphanedAssistantRecords)return null;let n=function(a,b){let c=[],d=0,e=!1;for(let b of a){if(r(b))break;if(!b.isSidechain&&"assistant"===b.type)for(let a of(d+=1,b.blocks)){if(c.length>=2048){e=!0;break}c.push(a)}}return{sessionId:b,promptUuid:`partial:${b}`,startedAt:0,promptText:"",promptIsOperatorInput:!1,blocks:c,assistantRecords:d,overflowed:e}}(k.records,g??""),o=v(n);if(0===o.body.length)return null;return w.info("claude-transcript-progress-headless",{worktreeId:a.worktreeId,instanceId:c,path:h,orphanedAssistantRecords:l.orphanedAssistantRecords,malformedLines:k.malformedLines}),{turnKey:(d=g??"",(0,j.qe)(`partial:${d}`)),body:o.body,partial:!0}}catch(b){return w.debug("claude-transcript-progress-failed",{worktreeId:a.worktreeId,instanceId:c,error:b instanceof Error?b.message:String(b)}),null}}async function F(a,b,c=0){let d=a.instanceId??a.cliToolId;if(!b.promptIsOperatorInput)return w.debug("claude-transcript-user-turn-skipped",{worktreeId:a.worktreeId,instanceId:d,promptUuid:b.promptUuid,reason:"not-operator-input"}),{outcome:"skipped",messageId:null,timestampMs:null};let e=await (0,h.Ce)(a,(0,j.H_)(b.promptUuid),b.promptText,b.startedAt,c>0?{adoptionFromMs:c}:{});return"failed"===e.outcome&&w.warn("claude-transcript-user-turn-failed",{worktreeId:a.worktreeId,instanceId:d,sessionId:b.sessionId,promptUuid:b.promptUuid}),e}async function G(a,b,c){if(c){var d,e,g;let h=(d=a,e=b.worktreePath,g=c,(0,f.join)(A(d),e.replace(/[^a-zA-Z0-9]/g,"-"),`${g}${x}`));if(await H(h))return h}let h=b.transcriptPathHint;if("string"==typeof h&&h.length>0){let b=function(a,b){if(!b.endsWith(x)||b.includes("\0"))return null;let c=(0,f.resolve)(A(a)),d=(0,f.resolve)(b);return d===c||d.startsWith(c+f.sep)?d:null}(a,h);if(b&&await H(b))return b}return null}async function H(a){try{return(await (0,d.stat)(a)).isFile()}catch{return!1}}async function I(a){let b;try{b=await (0,d.open)(a,"r");let{size:c}=await b.stat(),e=Math.max(0,c-4194304),f=c-e;if(f<=0)return"";let g=Buffer.alloc(f),{bytesRead:h}=await b.read(g,0,f,e),i=g.subarray(0,h).toString("utf8");if(0===e)return i;let j=i.indexOf("\n");return -1===j?"":i.slice(j+1)}catch(b){return w.warn("claude-transcript-read-failed",{path:a,error:b instanceof Error?b.message:String(b)}),null}finally{await b?.close().catch(()=>{})}}async function J(a,b,d,e){let f=a.instanceId??a.cliToolId;if(0===b.body.length)return w.info("claude-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,promptUuid:b.promptUuid}),!1;b.unknownBlockTypes.length>0&&w.info("claude-transcript-unknown-blocks",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,blockTypes:b.unknownBlockTypes});let g=(0,j.qe)(b.promptUuid),[{getDbInstance:h},{createMessage:i,findMessageByRequestId:k},{broadcastMessage:l}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1503),c.e(4299),c.e(1719),c.e(6894),c.e(5120)]).then(c.bind(c,79129))]),m=h();if(k(m,a.worktreeId,g))return w.debug("claude-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:f,requestId:g}),!0;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 l("message",{worktreeId:a.worktreeId,message:n}),w.info("claude-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:f,sessionId:b.sessionId,requestId:g,path:e,bodyLength:b.body.length,textBlocks:b.textBlocks,toolBlocks:b.toolBlocks}),!0}}};
@@ -1,2 +1,2 @@
1
1
  "use strict";exports.id=9798,exports.ids=[9798],exports.modules={24581:(a,b,c)=>{c.d(b,{Mu:()=>f,RY:()=>i,Tt:()=>h,Ui:()=>p,Xq:()=>l,ZV:()=>s,h_:()=>g,jF:()=>q,kT:()=>o,nY:()=>k,qX:()=>r,wt:()=>n});var d=c(62887),e=c(36051);let f=18e5,g={predicted:2e4,confirmed:18e5},h=3,i=16,j={turnId:null,openedAt:null,closedAt:null,closedBy:null};function k(a){return null===a?j:{turnId:a.turnId,openedAt:a.openedAt,closedAt:a.closedAt,closedBy:a.closedBy}}function l(a){if("string"!=typeof a||0===a.length||a.length>128)return null;for(let b=0;b<a.length;b++){let c=a.charCodeAt(b);if(c<32||127===c)return null}return a}function m(a,b){return"string"!=typeof a||""===a?null:a.slice(0,b)}function n(a){return m(a,e.lY)}function o(a){return m(a,d.h9)}function p(a){if(!Array.isArray(a))return null;let b=[];for(let c of a)if("string"==typeof c&&""!==c&&(b.push(c.slice(0,200)),b.length>=8))break;return b.length>0?b:null}function q(a,b){let c=null===a.confirmedAt?g.predicted:g.confirmed;return b-a.at<c}function r(a,b,c){return null!==b&&c-a.at>=1e3*b}function s(a,b){return null===a.sessionId||null===b||a.sessionId===b}},26547:(a,b,c)=>{c.d(b,{Yz:()=>B,jw:()=>z});var d=c(51297),e=c(85164);let f=["minimal","low","medium","high","xhigh"];function g(){return{model:null,effort:null}}let h=/^[A-Za-z0-9][A-Za-z0-9._:@/-]*$/,i=/^[A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*$/;function j(a){return a.length>0&&a.length<=64&&h.test(a)}function k(a){return a.length>0&&a.length<=64&&i.test(a)}function l(a,b={}){let c=a.trim().toLowerCase();if(""===c)return null;if(f.includes(c))return c;if(!b.allowTruncated||c.length<2)return null;let d=f.filter(a=>a.length===c.length+1&&a.startsWith(c));return 1===d.length?d[0]:null}let m=/^\s*([^\s·]+)(?:\s+(minimal|low|medium|high|xhigh)\b)?/i;function n(a){if(!e.aW.test(a))return null;let b=a.indexOf("\xb7");if(b<0)return null;let c=m.exec(a.slice(0,b));if(!c)return null;let d=c[1];if(!j(d))return null;let f=c[2]?l(c[2]):null;return null!==f||/\d/.test(d)?{model:d,effort:f}:null}let o=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+with\s+(minimal|low|medium|high|xhigh)\s+effort\b/i;function p(a){let b=o.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let q=/^\s*(?:\?\s+for\s+shortcuts|esc\s+to\s+cancel)\b/i,r=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+\((minimal|low|medium|high|xhigh)\)\s*$/i;function s(a){if(!q.test(a))return null;let b=a.lastIndexOf("\xb7");if(b<0)return null;let c=l(a.slice(b+1),{allowTruncated:!0});if(!c)return null;let d=a.slice(0,b).trimEnd().split(/\s{2,}/),e=(d[d.length-1]??"").trim();return{model:k(e)?e:null,effort:c}}function t(a){let b=r.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let u=/^\s*[●◉◎○]\s+Model\s+changed\s+from\s+\S+(?:\s+\([^)]*\))?\s+to\s+(\S+)(?:\s+\((minimal|low|medium|high|xhigh)\))?\s+for\s+this\s+session\b/i;function v(a){let b=u.exec(a);if(!b)return null;let c=b[1];return j(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let w=/^\s*▣\s+[A-Za-z][A-Za-z0-9-]*\s+·\s+([^·]+?)(?:\s+·\s+[\d.]+\s?m?s)?\s*$/;function x(a){let b=w.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:null}:null}function y(a,b){let c=a.split("\n");for(let a=c.length-1;a>=0;a--){let e=b((0,d.aJ)(c[a]));if(e)return e}return null}function z(a,b){if(!b)return g();switch(a){case"codex":return y(b,n)??g();case"claude":return y(b,p)??g();case"antigravity":return y(b,s)??y(b,t)??g();case"copilot":{let a=function(a){let b=a.split("\n");for(let a=b.length-1;a>=0;a--){let c=(0,d.aJ)(b[a]);if(""!==c.trim()){if(!e.Ub.test(c)&&!e.tJ.test(c))return null;let a=c.trim().split(/\s{2,}/);if(a.length<2)return null;let b=a[a.length-1].split("\xb7").map(a=>a.trim());if(b.length>2)return null;let d=b[0];if(!k(d))return null;if(1===b.length)return{model:d,effort:null};let f=l(b[1]);return null===f?null:{model:d,effort:f}}}return null}(b),c=y(b,v);if(!a)return c??g();if(null!==a.effort||null===c||null===c.effort)return a;return!function(a,b){let c=a=>a.toLowerCase().replace(/[^a-z0-9]/g,"");return c(a)===c(b)}(a.model,c.model)?a:{model:a.model,effort:c.effort}}case"opencode":return y(b,x)??g();default:return g()}}let A=/-(low|medium|high)$/i;function B(a,b,c,d){let e=(b||null)??c?.model??null,f=c?.effort??null,g="antigravity"===a?function(a){if(!a)return null;let b=A.exec(a);return b?b[1].toLowerCase():null}(e)??f:f;return{model:e,effort:(d||null)??g}}},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)}
2
- `,{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}},36051:(a,b,c)=>{c.d(b,{PP:()=>g,QB:()=>e,Yo:()=>j,fO:()=>k,lY:()=>f});var d=c(81254);let e=[{number:1,label:"Allow once",reply:"once"},{number:2,label:"Allow always",reply:"always"},{number:3,label:"Reject",reply:"reject"}],f=500;function g(a){return"string"==typeof a&&""!==a}let h={notification:"Notification(permission_prompt)","permission-request":"PermissionRequest (no decision)"};function i(a,b){let c=[`A dialog is open in ${a}: the agent reported it via ${h[b.source]}${b.toolName?` for ${b.toolName}`:""}, but the detection layer published no options for it.`];if(b.decisionOptions&&b.decisionOptions.length>0?c.push(`Answer it with \`commandmate respond ${a} <number>\`: `+b.decisionOptions.map(a=>`${a.number} = ${a.label} (${a.reply})`).join(", ")+". The reply goes to the agent's own API, so no keys are sent to the terminal "+`and the label works too (\`respond ${a} "Allow once"\`).`):c.push(`Answer it in the terminal, or send the option NUMBER with \`commandmate respond ${a} <number>\` — yes/no is not resolved on a numbered dialog (Issue #1681).`),b.message&&c.push(`Agent message: "${b.message}"`),b.askUserQuestion){let{question:d,labels:e,questionCount:f}=b.askUserQuestion,h=g(b.decisionId)&&1===f&&!(b.decisionOptions&&b.decisionOptions.length>0);c.push(`The agent asked${f>1?` ${f} questions, the first being`:""}: "${d}" — offering: ${e.join(" / ")}. `+(h?`Answer it with \`commandmate respond ${a} <number>\`: `+e.map((a,b)=>`${b+1} = ${a}`).join(", ")+". The number is this list's own position and the reply goes to the agent's own API, so no keys are sent to the terminal (the label works too).":"The picker renumbers and adds its own entries, so read the option NUMBER off the terminal rather than counting this list."))}return c.join(" ")}function j(a,b){return{type:d.LT,status:"pending",question:i(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{},...b.decisionOptions&&b.decisionOptions.length>0?{decisionOptions:b.decisionOptions}:{},decisionId:g(b.decisionId)?b.decisionId:null,...b.patterns&&b.patterns.length>0?{patterns:[...b.patterns]}:{}}}function k(a,b){return{type:d.LT,status:"unclassified",question:i(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}},48083:(a,b,c)=>{c.d(b,{BJ:()=>ah,CE:()=>I,Fw:()=>ai,HR:()=>ae,In:()=>X,MU:()=>ab,NW:()=>E,P5:()=>ac,R4:()=>_,S9:()=>H,_N:()=>ag,_i:()=>G,ak:()=>U,dj:()=>Z,fY:()=>F,ik:()=>aa,je:()=>$,jl:()=>W,m5:()=>af,n5:()=>y,pI:()=>N,qo:()=>ak,recordAgentEvent:()=>K,sA:()=>Y,vm:()=>V,zA:()=>ad});var d=c(24455),e=c(62887),f=c(49154),g=c(26547),h=c(67882),i=c(24581);let j=globalThis.__agentEventLastStopAt??(globalThis.__agentEventLastStopAt=new Map),k=globalThis.__agentEventLast??(globalThis.__agentEventLast=new Map),l=globalThis.__agentEventGenerationStartedAt??(globalThis.__agentEventGenerationStartedAt=new Map),m=globalThis.__agentEventTurns??(globalThis.__agentEventTurns=new Map),n=globalThis.__agentEventDrops??(globalThis.__agentEventDrops=new Map),o=globalThis.__agentEventTurnSeq??(globalThis.__agentEventTurnSeq={value:0}),p=globalThis.__agentEventAskUserQuestion??(globalThis.__agentEventAskUserQuestion=new Map),q=globalThis.__agentEventRecentKeys??(globalThis.__agentEventRecentKeys=new Map),r=globalThis.__agentEventRecentIdentities??(globalThis.__agentEventRecentIdentities=new Map),s=globalThis.__agentEventAwaitingInstruction??(globalThis.__agentEventAwaitingInstruction=new Map),t=globalThis.__agentEventLastModel??(globalThis.__agentEventLastModel=new Map),u=globalThis.__agentCapturedModelInfo??(globalThis.__agentCapturedModelInfo=new Map),v=globalThis.__agentEventLastEffort??(globalThis.__agentEventLastEffort=new Map);function w(){return{dedupDropped:{identity:0,timeWindow:0},decisionEvicted:0,idsDiscarded:0,dialogTimedOut:0,decisionOverflow:0}}function x(a){let b=n.get(a);return b||(b=w(),n.set(a,b),al(n,512)),b}function y(a,b,c){let e=n.get((0,d.v7)(a,b,c));return e?{...e,dedupDropped:{...e.dedupDropped}}:w()}function z(a){return l.get(a)??null}function A(a){let b=m.get(a);return b&&b.generationAt===z(a)?b:null}function B(a,b){let c=A(a);return null===c?null:(null===c.closedAt&&b-c.displayEvent.at>=i.Mu&&(c.closedAt=c.displayEvent.at+i.Mu,c.closedBy="stale"),c)}function C(a){return o.value+=1,`turn-${a}-${o.value}`}function D(a,b,c){let d=b.pendingDecisions.filter(a=>(0,i.jF)(a,c)),e=b.pendingDecisions.length-d.length;return e>0&&(x(a).dialogTimedOut+=e,b.pendingDecisions=d),d}function E(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=B(f,e);return null===g?[]:D(f,g,e)}function F(a,b,c,e=Date.now()){return(0,i.nY)(function(a,b,c,e=Date.now()){return B((0,d.v7)(a,b,c),e)}(a,b,c,e))}function G(a,b,c,e,f=Date.now()){let g=A((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(e?(g.scraperCompletionPolls+=1,!(g.scraperCompletionPolls<i.Tt)&&(g.closedAt=f,g.closedBy="scraper_evidence",!0)):(g.scraperCompletionPolls=0,!1))}function H(a,b,c,e=Date.now()){j.set((0,d.v7)(a,b,c),e)}function I(a,b,c){return j.get((0,d.v7)(a,b,c))??null}let J=["running","waiting"];function K(a,b,c,g,h={}){let j=(0,d.v7)(a,b,c);return!function(a,b,c,e,f){if("session_start"!==e.event||!0!==f.sessionStartMayArriveLate)return!1;let g=_(a,b,c,e.at);if(null===g||!J.includes(g.status))return!1;let h=k.get((0,d.v7)(a,b,c))?.sessionId??null;return null===h||null==e.sessionId||e.sessionId===h}(a,b,c,g,h)?(k.set(j,g),M(j,g),function(a,b){switch(b.event){case"pre_tool_use":f.mW.includes(b.detail??"")||p.delete(a);return;case"notification":"idle_prompt"===b.detail&&p.delete(a);return;case"post_tool_use":case"stop":case"user_prompt_submit":case"session_start":case"session_end":p.delete(a);return;default:b.event;return}}(j,g),"session_start"===g.event&&(l.set(j,g.at),L(j,g.at)),function(a,b){let c=z(a);if(null===c||!(b.at<c))switch(b.event){case"user_prompt_submit":P(a,b,c,{continueOpen:!1}),R(a);return;case"post_tool_use":P(a,b,c,{continueOpen:!0}),R(a);return;case"pre_tool_use":P(a,b,c,{continueOpen:!0});return;case"stop":!function(a,b,c){let d=A(a);if(null!==d&&null===d.closedAt&&null!==d.openedAt){if(!(0,i.ZV)(d,b.sessionId))return;d.closedAt=b.at,d.closedBy="stop",d.displayEvent=O(b),R(a);return}m.set(a,{turnId:C(b.at),sessionId:b.sessionId,openedAt:null,closedAt:b.at,closedBy:"stop",generationAt:c,displayEvent:O(b),pendingDecisions:[],scraperCompletionPolls:0}),T()}(a,b,c);return;case"session_end":(function(a,b){let c=A(a);null!==c&&(0,i.ZV)(c,b.sessionId)&&(c.closedAt=b.at,c.closedBy="session_end")})(a,b),R(a);return;case"session_start":return;case"notification":!function(a,b,c){if("permission_prompt"===b.detail)return!0===b.promptSettled?S(a,b):Q(a,c,{source:"notification",at:b.at,message:b.message??null,toolName:b.toolName??null,patterns:b.decisionPatterns??null,decisionId:b.decisionId??null,bootstrapDisplay:O(b)});if(b.detail===e.KC){!0===b.promptSettled&&S(a,b);return}if("idle_prompt"===b.detail){R(a);let d=A(a);if(null!==d&&null===d.closedAt){d.displayEvent=O(b);return}if(null!==d)return;m.set(a,{turnId:C(b.at),sessionId:b.sessionId,openedAt:null,closedAt:null,closedBy:null,generationAt:c,displayEvent:O(b),pendingDecisions:[],scraperCompletionPolls:0}),T()}}(a,b,c);return;default:b.event;return}}(j,g),function(a,b){switch(b.event){case"notification":"idle_prompt"===b.detail&&s.set(a,{at:b.at,message:b.message??null});return;case"user_prompt_submit":case"session_start":case"session_end":s.delete(a);return;case"stop":case"pre_tool_use":case"post_tool_use":return;default:b.event;return}}(j,g),{recorded:!0}):(M(j,g),{recorded:!1,skipped:"late-session-start"})}function L(a,b){let c=m.get(a);c&&(0!==c.pendingDecisions.length&&(x(a).decisionEvicted+=c.pendingDecisions.length,c.pendingDecisions=[]),null===c.closedAt&&(c.closedAt=b,c.closedBy="generation",c.generationAt=b))}function M(a,b){"string"==typeof b.model&&""!==b.model&&t.set(a,b.model.slice(0,e.h9))}function N(a,b,c){return null!==function(a,b,c){let e=(0,d.v7)(a,b,c),f=s.get(e);if(!f)return null;let g=l.get(e);return void 0!==g&&f.at<g?null:f}(a,b,c)}function O(a){return{event:a.event,at:a.at,detail:a.detail}}function P(a,b,c,{continueOpen:d}){let e=A(a),f=null!==e&&null===e.closedAt&&null!==e.openedAt&&(0,i.ZV)(e,b.sessionId);if(d&&f){e.displayEvent=O(b),e.sessionId??=b.sessionId,e.scraperCompletionPolls=0;return}let g=null!==e&&null===e.openedAt&&null===e.closedAt?e.pendingDecisions:[];m.set(a,{turnId:C(b.at),sessionId:b.sessionId,openedAt:b.at,closedAt:null,closedBy:null,generationAt:c,displayEvent:O(b),pendingDecisions:g,scraperCompletionPolls:0}),T()}function Q(a,b,c){let d=A(a);null===d?(d={turnId:C(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),T()):null!==d.closedAt&&(d={turnId:C(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),T());let e=null===c.decisionId?null:(0,i.Xq)(c.decisionId);null!==c.decisionId&&null===e&&(x(a).idsDiscarded+=1);let f="notification"===c.source,g=null!==e?d.pendingDecisions.find(a=>a.decisionId===e)??d.pendingDecisions.find(a=>null===a.decisionId&&"permission-request"===a.source):d.pendingDecisions.find(a=>null===a.decisionId);if(g){g.message=(0,i.wt)(c.message)??g.message,g.toolName=(0,i.kT)(c.toolName)??g.toolName,g.patterns=(0,i.Ui)(c.patterns)??g.patterns,g.decisionId??=e,f&&(g.source="notification",g.confirmedAt??=c.at);return}if(d.pendingDecisions.length>=i.RY){x(a).decisionOverflow+=1;return}d.pendingDecisions.push({decisionId:e,at:c.at,source:c.source,message:(0,i.wt)(c.message),toolName:(0,i.kT)(c.toolName),patterns:(0,i.Ui)(c.patterns),confirmedAt:f?c.at:null,scraperCorroborated:!1,recorded:!1})}function R(a){let b=A(a);null!==b&&(b.pendingDecisions=[])}function S(a,b){let c=A(a);if(null===c||0===c.pendingDecisions.length)return;let d=null===b.decisionId||void 0===b.decisionId?null:(0,i.Xq)(b.decisionId);if(null===d){c.pendingDecisions=[];return}c.pendingDecisions=c.pendingDecisions.filter(a=>null!==a.decisionId&&a.decisionId!==d)}function T(){al(m,512)}function U(a,b,c){return k.get((0,d.v7)(a,b,c))??null}function V(a,b,c,f){if(!f.model&&!f.effort)return;let g=(0,d.v7)(a,b,c),h=u.get(g);u.set(g,{model:f.model?f.model.slice(0,e.h9):h?.model??null,effort:f.effort??h?.effort??null})}function W(a,b,c){var e,f,h;return(0,g.Yz)(b,t.get((0,d.v7)(a,b,c))??null,function(a,b,c){let e=u.get((0,d.v7)(a,b,c));return{model:e?.model??null,effort:e?.effort??null}}(a,b,c),(e=a,f=b,h=c,v.get((0,d.v7)(e,f,h))??null))}function X(a,b,c,f){"string"==typeof f&&""!==f&&v.set((0,d.v7)(a,b,c),f.slice(0,e.h9))}let Y=i.Mu;function Z(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c);l.set(f,e),L(f,e),p.delete(f),s.delete(f),t.delete(f),u.delete(f),v.delete(f),r.delete(f)}function $(a,b,c){let e=(0,d.v7)(a,b,c);k.delete(e),l.delete(e),m.delete(e),n.delete(e),p.delete(e),s.delete(e),t.delete(e),u.delete(e),v.delete(e),r.delete(e)}function _(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=B(f,e);if(null===g)return null;let i=g.displayEvent;if(e-i.at>=Y)return null;let j={event:i.event,at:i.at,detail:i.detail},k=D(f,g,e);if(k.length>0)return{status:"waiting",reason:"notification"===k[0].source?h.Oh.PERMISSION_PROMPT:h.Oh.PERMISSION_REQUEST,...j};if(null!==g.closedAt)return"stop"===g.closedBy?{status:"ready",reason:h.Oh.STOP,...j}:null;let l=(0,h.DA)(i.event,i.detail);return null===l||"waiting"===l.status?null===g.openedAt?null:{status:"running",reason:h.Oh.PROMPT_SUBMIT,...j}:{...l,...j}}function aa(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);Q(g,z(g),{source:"permission-request",at:f,message:null,toolName:e,patterns:null,decisionId:null,bootstrapDisplay:{event:"notification",at:f,detail:"permission_prompt"}})}function ab(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);Q(g,z(g),{source:"notification",at:f,message:null,toolName:e.toolName,patterns:null,decisionId:e.decisionId,bootstrapDisplay:{event:"notification",at:f,detail:e.detail}})}function ac(a,b,c,d=Date.now()){return E(a,b,c,d)[0]??null}function ad(a,b,c,d=Date.now()){let e=ac(a,b,c,d);e&&(e.scraperCorroborated=!0,e.confirmedAt??=d)}function ae(a,b,c){let d=ac(a,b,c);d&&(d.recorded=!0)}function af(a,b,c){R((0,d.v7)(a,b,c))}function ag(a,b,c,e,f=Date.now()){p.set((0,d.v7)(a,b,c),{at:f,spec:e})}function ah(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=p.get(f);if(!g)return null;let h=l.get(f);return void 0!==h&&g.at<h||e-g.at>=Y?null:g}function ai(a,b,c,e,f,g=Date.now(),h=null){if(!f)return!1;let i=[(0,d.v7)(a,b,c),e,h??"",f].join(" "),j=q.get(i);return void 0!==j&&g-j<3e3||(q.set(i,g),function(a){for(let[b,c]of q)a-c>=3e3&&q.delete(b);for(;q.size>512;){let a=q.keys().next();if(a.done)break;q.delete(a.value)}}(g),!1)}i.h_.predicted;let aj=["stop","session_end"];function ak(a){let b=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(null!==a.identityKind){let c=null===a.identity?null:(0,i.Xq)(a.identity);if(null!==a.identity&&null===c&&(x(b).idsDiscarded+=1),null!==c)return!function(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=r.get(c);e||(e=new Map,r.set(c,e),al(r,512));let f=[a.event,a.detail??"",b].join(" ");return!!e.has(f)||(e.set(f,a.at),al(e,512),!1)}(a,c)?{duplicate:!1}:(x(b).dedupDropped.identity+=1,{duplicate:!0,by:"identity"});if(aj.includes(a.event))return{duplicate:!1}}return ai(a.worktreeId,a.cliToolId,a.instanceId,a.event,a.sessionId,a.at,a.detail)?(x(b).dedupDropped.timeWindow+=1,{duplicate:!0,by:"time-window"}):{duplicate:!1}}function al(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}},49154:(a,b,c)=>{c.d(b,{GF:()=>e,Wk:()=>g,mW:()=>f});var d=c(13287);let e="question",f=[d.k$,e];function g(a){return null!==a&&f.includes(a)?"question":"permission"}},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,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,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,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,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,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(90444),e=c(88807),f=c(27727),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}}},62887:(a,b,c)=>{c.d(b,{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"},67882:(a,b,c)=>{c.d(b,{DA:()=>e,O_:()=>f,Oh:()=>d,_K:()=>g});let d={PROMPT_SUBMIT:"hook_prompt_submit",STOP:"hook_stop",PERMISSION_PROMPT:"hook_permission_prompt",PERMISSION_REQUEST:"hook_permission_request",IDLE_PROMPT:"hook_idle_prompt",PRE_TOOL_USE:"hook_pre_tool_use",POST_TOOL_USE:"hook_post_tool_use"};function e(a,b){switch(a){case"user_prompt_submit":return{status:"running",reason:d.PROMPT_SUBMIT};case"pre_tool_use":return{status:"running",reason:d.PRE_TOOL_USE};case"post_tool_use":return{status:"running",reason:d.POST_TOOL_USE};case"stop":return{status:"ready",reason:d.STOP};case"notification":if("permission_prompt"===b)return{status:"waiting",reason:d.PERMISSION_PROMPT};if("idle_prompt"===b)return{status:"ready",reason:d.IDLE_PROMPT};return null;default:return null}}function f(a){switch(a){case"waiting":return{isWaitingForResponse:!0,isProcessing:!1};case"running":return{isWaitingForResponse:!1,isProcessing:!0};default:return{isWaitingForResponse:!1,isProcessing:!1}}}function g(a){return a.isSessionRunning?a.isWaitingForResponse?"waiting":a.isProcessing?"running":"ready":null}},81254:(a,b,c)=>{function d(a){return"answer_only"===a||"answer_then_enter"===a}c.d(b,{LT:()=>e,MI:()=>d,XF:()=>f});let e="unclassified";function f(a){return null!=a&&a.type!==e}},85322:(a,b,c)=>{c.d(b,{k:()=>d});let d="opencode"}};
2
+ `,{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}},36051:(a,b,c)=>{c.d(b,{PP:()=>g,QB:()=>e,Yo:()=>j,fO:()=>k,lY:()=>f});var d=c(81254);let e=[{number:1,label:"Allow once",reply:"once"},{number:2,label:"Allow always",reply:"always"},{number:3,label:"Reject",reply:"reject"}],f=500;function g(a){return"string"==typeof a&&""!==a}let h={notification:"Notification(permission_prompt)","permission-request":"PermissionRequest (no decision)"};function i(a,b){let c=[`A dialog is open in ${a}: the agent reported it via ${h[b.source]}${b.toolName?` for ${b.toolName}`:""}, but the detection layer published no options for it.`];if(b.decisionOptions&&b.decisionOptions.length>0?c.push(`Answer it with \`commandmate respond ${a} <number>\`: `+b.decisionOptions.map(a=>`${a.number} = ${a.label} (${a.reply})`).join(", ")+". The reply goes to the agent's own API, so no keys are sent to the terminal "+`and the label works too (\`respond ${a} "Allow once"\`).`):c.push(`Answer it in the terminal, or send the option NUMBER with \`commandmate respond ${a} <number>\` — yes/no is not resolved on a numbered dialog (Issue #1681).`),b.message&&c.push(`Agent message: "${b.message}"`),b.askUserQuestion){let{question:d,labels:e,questionCount:f}=b.askUserQuestion,h=g(b.decisionId)&&1===f&&!(b.decisionOptions&&b.decisionOptions.length>0);c.push(`The agent asked${f>1?` ${f} questions, the first being`:""}: "${d}" — offering: ${e.join(" / ")}. `+(h?`Answer it with \`commandmate respond ${a} <number>\`: `+e.map((a,b)=>`${b+1} = ${a}`).join(", ")+". The number is this list's own position and the reply goes to the agent's own API, so no keys are sent to the terminal (the label works too).":"The picker renumbers and adds its own entries, so read the option NUMBER off the terminal rather than counting this list."))}return c.join(" ")}function j(a,b){return{type:d.LT,status:"pending",question:i(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{},...b.decisionOptions&&b.decisionOptions.length>0?{decisionOptions:b.decisionOptions}:{},decisionId:g(b.decisionId)?b.decisionId:null,...b.patterns&&b.patterns.length>0?{patterns:[...b.patterns]}:{}}}function k(a,b){return{type:d.LT,status:"unclassified",question:i(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}},48083:(a,b,c)=>{c.d(b,{BJ:()=>ah,CE:()=>I,Fw:()=>ai,HR:()=>ae,In:()=>X,MU:()=>ab,NW:()=>E,P5:()=>ac,R4:()=>_,S9:()=>H,_N:()=>ag,_i:()=>G,dj:()=>Z,fY:()=>F,getLastAgentEvent:()=>U,ik:()=>aa,je:()=>$,jl:()=>W,m5:()=>af,n5:()=>y,pI:()=>N,qo:()=>ak,recordAgentEvent:()=>K,sA:()=>Y,vm:()=>V,zA:()=>ad});var d=c(24455),e=c(62887),f=c(49154),g=c(26547),h=c(67882),i=c(24581);let j=globalThis.__agentEventLastStopAt??(globalThis.__agentEventLastStopAt=new Map),k=globalThis.__agentEventLast??(globalThis.__agentEventLast=new Map),l=globalThis.__agentEventGenerationStartedAt??(globalThis.__agentEventGenerationStartedAt=new Map),m=globalThis.__agentEventTurns??(globalThis.__agentEventTurns=new Map),n=globalThis.__agentEventDrops??(globalThis.__agentEventDrops=new Map),o=globalThis.__agentEventTurnSeq??(globalThis.__agentEventTurnSeq={value:0}),p=globalThis.__agentEventAskUserQuestion??(globalThis.__agentEventAskUserQuestion=new Map),q=globalThis.__agentEventRecentKeys??(globalThis.__agentEventRecentKeys=new Map),r=globalThis.__agentEventRecentIdentities??(globalThis.__agentEventRecentIdentities=new Map),s=globalThis.__agentEventAwaitingInstruction??(globalThis.__agentEventAwaitingInstruction=new Map),t=globalThis.__agentEventLastModel??(globalThis.__agentEventLastModel=new Map),u=globalThis.__agentCapturedModelInfo??(globalThis.__agentCapturedModelInfo=new Map),v=globalThis.__agentEventLastEffort??(globalThis.__agentEventLastEffort=new Map);function w(){return{dedupDropped:{identity:0,timeWindow:0},decisionEvicted:0,idsDiscarded:0,dialogTimedOut:0,decisionOverflow:0}}function x(a){let b=n.get(a);return b||(b=w(),n.set(a,b),al(n,512)),b}function y(a,b,c){let e=n.get((0,d.v7)(a,b,c));return e?{...e,dedupDropped:{...e.dedupDropped}}:w()}function z(a){return l.get(a)??null}function A(a){let b=m.get(a);return b&&b.generationAt===z(a)?b:null}function B(a,b){let c=A(a);return null===c?null:(null===c.closedAt&&b-c.displayEvent.at>=i.Mu&&(c.closedAt=c.displayEvent.at+i.Mu,c.closedBy="stale"),c)}function C(a){return o.value+=1,`turn-${a}-${o.value}`}function D(a,b,c){let d=b.pendingDecisions.filter(a=>(0,i.jF)(a,c)),e=b.pendingDecisions.length-d.length;return e>0&&(x(a).dialogTimedOut+=e,b.pendingDecisions=d),d}function E(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=B(f,e);return null===g?[]:D(f,g,e)}function F(a,b,c,e=Date.now()){return(0,i.nY)(function(a,b,c,e=Date.now()){return B((0,d.v7)(a,b,c),e)}(a,b,c,e))}function G(a,b,c,e,f=Date.now()){let g=A((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(e?(g.scraperCompletionPolls+=1,!(g.scraperCompletionPolls<i.Tt)&&(g.closedAt=f,g.closedBy="scraper_evidence",!0)):(g.scraperCompletionPolls=0,!1))}function H(a,b,c,e=Date.now()){j.set((0,d.v7)(a,b,c),e)}function I(a,b,c){return j.get((0,d.v7)(a,b,c))??null}let J=["running","waiting"];function K(a,b,c,g,h={}){let j=(0,d.v7)(a,b,c);return!function(a,b,c,e,f){if("session_start"!==e.event||!0!==f.sessionStartMayArriveLate)return!1;let g=_(a,b,c,e.at);if(null===g||!J.includes(g.status))return!1;let h=k.get((0,d.v7)(a,b,c))?.sessionId??null;return null===h||null==e.sessionId||e.sessionId===h}(a,b,c,g,h)?(k.set(j,g),M(j,g),function(a,b){switch(b.event){case"pre_tool_use":f.mW.includes(b.detail??"")||p.delete(a);return;case"notification":"idle_prompt"===b.detail&&p.delete(a);return;case"post_tool_use":case"stop":case"user_prompt_submit":case"session_start":case"session_end":p.delete(a);return;default:b.event;return}}(j,g),"session_start"===g.event&&(l.set(j,g.at),L(j,g.at)),function(a,b){let c=z(a);if(null===c||!(b.at<c))switch(b.event){case"user_prompt_submit":P(a,b,c,{continueOpen:!1}),R(a);return;case"post_tool_use":P(a,b,c,{continueOpen:!0}),R(a);return;case"pre_tool_use":P(a,b,c,{continueOpen:!0});return;case"stop":!function(a,b,c){let d=A(a);if(null!==d&&null===d.closedAt&&null!==d.openedAt){if(!(0,i.ZV)(d,b.sessionId))return;d.closedAt=b.at,d.closedBy="stop",d.displayEvent=O(b),R(a);return}m.set(a,{turnId:C(b.at),sessionId:b.sessionId,openedAt:null,closedAt:b.at,closedBy:"stop",generationAt:c,displayEvent:O(b),pendingDecisions:[],scraperCompletionPolls:0}),T()}(a,b,c);return;case"session_end":(function(a,b){let c=A(a);null!==c&&(0,i.ZV)(c,b.sessionId)&&(c.closedAt=b.at,c.closedBy="session_end")})(a,b),R(a);return;case"session_start":return;case"notification":!function(a,b,c){if("permission_prompt"===b.detail)return!0===b.promptSettled?S(a,b):Q(a,c,{source:"notification",at:b.at,message:b.message??null,toolName:b.toolName??null,patterns:b.decisionPatterns??null,decisionId:b.decisionId??null,bootstrapDisplay:O(b)});if(b.detail===e.KC){!0===b.promptSettled&&S(a,b);return}if("idle_prompt"===b.detail){R(a);let d=A(a);if(null!==d&&null===d.closedAt){d.displayEvent=O(b);return}if(null!==d)return;m.set(a,{turnId:C(b.at),sessionId:b.sessionId,openedAt:null,closedAt:null,closedBy:null,generationAt:c,displayEvent:O(b),pendingDecisions:[],scraperCompletionPolls:0}),T()}}(a,b,c);return;default:b.event;return}}(j,g),function(a,b){switch(b.event){case"notification":"idle_prompt"===b.detail&&s.set(a,{at:b.at,message:b.message??null});return;case"user_prompt_submit":case"session_start":case"session_end":s.delete(a);return;case"stop":case"pre_tool_use":case"post_tool_use":return;default:b.event;return}}(j,g),{recorded:!0}):(M(j,g),{recorded:!1,skipped:"late-session-start"})}function L(a,b){let c=m.get(a);c&&(0!==c.pendingDecisions.length&&(x(a).decisionEvicted+=c.pendingDecisions.length,c.pendingDecisions=[]),null===c.closedAt&&(c.closedAt=b,c.closedBy="generation",c.generationAt=b))}function M(a,b){"string"==typeof b.model&&""!==b.model&&t.set(a,b.model.slice(0,e.h9))}function N(a,b,c){return null!==function(a,b,c){let e=(0,d.v7)(a,b,c),f=s.get(e);if(!f)return null;let g=l.get(e);return void 0!==g&&f.at<g?null:f}(a,b,c)}function O(a){return{event:a.event,at:a.at,detail:a.detail}}function P(a,b,c,{continueOpen:d}){let e=A(a),f=null!==e&&null===e.closedAt&&null!==e.openedAt&&(0,i.ZV)(e,b.sessionId);if(d&&f){e.displayEvent=O(b),e.sessionId??=b.sessionId,e.scraperCompletionPolls=0;return}let g=null!==e&&null===e.openedAt&&null===e.closedAt?e.pendingDecisions:[];m.set(a,{turnId:C(b.at),sessionId:b.sessionId,openedAt:b.at,closedAt:null,closedBy:null,generationAt:c,displayEvent:O(b),pendingDecisions:g,scraperCompletionPolls:0}),T()}function Q(a,b,c){let d=A(a);null===d?(d={turnId:C(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),T()):null!==d.closedAt&&(d={turnId:C(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),T());let e=null===c.decisionId?null:(0,i.Xq)(c.decisionId);null!==c.decisionId&&null===e&&(x(a).idsDiscarded+=1);let f="notification"===c.source,g=null!==e?d.pendingDecisions.find(a=>a.decisionId===e)??d.pendingDecisions.find(a=>null===a.decisionId&&"permission-request"===a.source):d.pendingDecisions.find(a=>null===a.decisionId);if(g){g.message=(0,i.wt)(c.message)??g.message,g.toolName=(0,i.kT)(c.toolName)??g.toolName,g.patterns=(0,i.Ui)(c.patterns)??g.patterns,g.decisionId??=e,f&&(g.source="notification",g.confirmedAt??=c.at);return}if(d.pendingDecisions.length>=i.RY){x(a).decisionOverflow+=1;return}d.pendingDecisions.push({decisionId:e,at:c.at,source:c.source,message:(0,i.wt)(c.message),toolName:(0,i.kT)(c.toolName),patterns:(0,i.Ui)(c.patterns),confirmedAt:f?c.at:null,scraperCorroborated:!1,recorded:!1})}function R(a){let b=A(a);null!==b&&(b.pendingDecisions=[])}function S(a,b){let c=A(a);if(null===c||0===c.pendingDecisions.length)return;let d=null===b.decisionId||void 0===b.decisionId?null:(0,i.Xq)(b.decisionId);if(null===d){c.pendingDecisions=[];return}c.pendingDecisions=c.pendingDecisions.filter(a=>null!==a.decisionId&&a.decisionId!==d)}function T(){al(m,512)}function U(a,b,c){return k.get((0,d.v7)(a,b,c))??null}function V(a,b,c,f){if(!f.model&&!f.effort)return;let g=(0,d.v7)(a,b,c),h=u.get(g);u.set(g,{model:f.model?f.model.slice(0,e.h9):h?.model??null,effort:f.effort??h?.effort??null})}function W(a,b,c){var e,f,h;return(0,g.Yz)(b,t.get((0,d.v7)(a,b,c))??null,function(a,b,c){let e=u.get((0,d.v7)(a,b,c));return{model:e?.model??null,effort:e?.effort??null}}(a,b,c),(e=a,f=b,h=c,v.get((0,d.v7)(e,f,h))??null))}function X(a,b,c,f){"string"==typeof f&&""!==f&&v.set((0,d.v7)(a,b,c),f.slice(0,e.h9))}let Y=i.Mu;function Z(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c);l.set(f,e),L(f,e),p.delete(f),s.delete(f),t.delete(f),u.delete(f),v.delete(f),r.delete(f)}function $(a,b,c){let e=(0,d.v7)(a,b,c);k.delete(e),l.delete(e),m.delete(e),n.delete(e),p.delete(e),s.delete(e),t.delete(e),u.delete(e),v.delete(e),r.delete(e)}function _(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=B(f,e);if(null===g)return null;let i=g.displayEvent;if(e-i.at>=Y)return null;let j={event:i.event,at:i.at,detail:i.detail},k=D(f,g,e);if(k.length>0)return{status:"waiting",reason:"notification"===k[0].source?h.Oh.PERMISSION_PROMPT:h.Oh.PERMISSION_REQUEST,...j};if(null!==g.closedAt)return"stop"===g.closedBy?{status:"ready",reason:h.Oh.STOP,...j}:null;let l=(0,h.DA)(i.event,i.detail);return null===l||"waiting"===l.status?null===g.openedAt?null:{status:"running",reason:h.Oh.PROMPT_SUBMIT,...j}:{...l,...j}}function aa(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);Q(g,z(g),{source:"permission-request",at:f,message:null,toolName:e,patterns:null,decisionId:null,bootstrapDisplay:{event:"notification",at:f,detail:"permission_prompt"}})}function ab(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);Q(g,z(g),{source:"notification",at:f,message:null,toolName:e.toolName,patterns:null,decisionId:e.decisionId,bootstrapDisplay:{event:"notification",at:f,detail:e.detail}})}function ac(a,b,c,d=Date.now()){return E(a,b,c,d)[0]??null}function ad(a,b,c,d=Date.now()){let e=ac(a,b,c,d);e&&(e.scraperCorroborated=!0,e.confirmedAt??=d)}function ae(a,b,c){let d=ac(a,b,c);d&&(d.recorded=!0)}function af(a,b,c){R((0,d.v7)(a,b,c))}function ag(a,b,c,e,f=Date.now()){p.set((0,d.v7)(a,b,c),{at:f,spec:e})}function ah(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=p.get(f);if(!g)return null;let h=l.get(f);return void 0!==h&&g.at<h||e-g.at>=Y?null:g}function ai(a,b,c,e,f,g=Date.now(),h=null){if(!f)return!1;let i=[(0,d.v7)(a,b,c),e,h??"",f].join(" "),j=q.get(i);return void 0!==j&&g-j<3e3||(q.set(i,g),function(a){for(let[b,c]of q)a-c>=3e3&&q.delete(b);for(;q.size>512;){let a=q.keys().next();if(a.done)break;q.delete(a.value)}}(g),!1)}i.h_.predicted;let aj=["stop","session_end"];function ak(a){let b=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(null!==a.identityKind){let c=null===a.identity?null:(0,i.Xq)(a.identity);if(null!==a.identity&&null===c&&(x(b).idsDiscarded+=1),null!==c)return!function(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=r.get(c);e||(e=new Map,r.set(c,e),al(r,512));let f=[a.event,a.detail??"",b].join(" ");return!!e.has(f)||(e.set(f,a.at),al(e,512),!1)}(a,c)?{duplicate:!1}:(x(b).dedupDropped.identity+=1,{duplicate:!0,by:"identity"});if(aj.includes(a.event))return{duplicate:!1}}return ai(a.worktreeId,a.cliToolId,a.instanceId,a.event,a.sessionId,a.at,a.detail)?(x(b).dedupDropped.timeWindow+=1,{duplicate:!0,by:"time-window"}):{duplicate:!1}}function al(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}},49154:(a,b,c)=>{c.d(b,{GF:()=>e,Wk:()=>g,mW:()=>f});var d=c(13287);let e="question",f=[d.k$,e];function g(a){return null!==a&&f.includes(a)?"question":"permission"}},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,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,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,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,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,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(90444),e=c(88807),f=c(27727),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}}},62887:(a,b,c)=>{c.d(b,{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"},67882:(a,b,c)=>{c.d(b,{DA:()=>e,O_:()=>f,Oh:()=>d,_K:()=>g});let d={PROMPT_SUBMIT:"hook_prompt_submit",STOP:"hook_stop",PERMISSION_PROMPT:"hook_permission_prompt",PERMISSION_REQUEST:"hook_permission_request",IDLE_PROMPT:"hook_idle_prompt",PRE_TOOL_USE:"hook_pre_tool_use",POST_TOOL_USE:"hook_post_tool_use"};function e(a,b){switch(a){case"user_prompt_submit":return{status:"running",reason:d.PROMPT_SUBMIT};case"pre_tool_use":return{status:"running",reason:d.PRE_TOOL_USE};case"post_tool_use":return{status:"running",reason:d.POST_TOOL_USE};case"stop":return{status:"ready",reason:d.STOP};case"notification":if("permission_prompt"===b)return{status:"waiting",reason:d.PERMISSION_PROMPT};if("idle_prompt"===b)return{status:"ready",reason:d.IDLE_PROMPT};return null;default:return null}}function f(a){switch(a){case"waiting":return{isWaitingForResponse:!0,isProcessing:!1};case"running":return{isWaitingForResponse:!1,isProcessing:!0};default:return{isWaitingForResponse:!1,isProcessing:!1}}}function g(a){return a.isSessionRunning?a.isWaitingForResponse?"waiting":a.isProcessing?"running":"ready":null}},81254:(a,b,c)=>{function d(a){return"answer_only"===a||"answer_then_enter"===a}c.d(b,{LT:()=>e,MI:()=>d,XF:()=>f});let e="unclassified";function f(a){return null!=a&&a.type!==e}},85322:(a,b,c)=>{c.d(b,{k:()=>d});let d="opencode"}};
@@ -17,11 +17,11 @@
17
17
  "wasm": [],
18
18
  "assets": [],
19
19
  "env": {
20
- "__NEXT_BUILD_ID": "0YoRrahue4Vchxg1z83IQ",
21
- "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "ptF5z1n0UHJafOQJqtMEb8fnfdxNhIMjqta90CL93Bg=",
22
- "__NEXT_PREVIEW_MODE_ID": "a18dda8b4b532443e7fc0b0a4d9cd410",
23
- "__NEXT_PREVIEW_MODE_SIGNING_KEY": "8c496707bff13bee6ea634522136a85f4116752ad1f748ecf13e2a15317d710b",
24
- "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "51263bbd87be776843fa5f52a569348562f2982a08bc929e5f49477df7e1d6ee"
20
+ "__NEXT_BUILD_ID": "pcpB4K6KreMzu2qbhvuRY",
21
+ "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "1bEn/GXMga2UNbhfYCR8uHbgMjZ+bTJ8apbzn67llg0=",
22
+ "__NEXT_PREVIEW_MODE_ID": "037cc4ff8a8c5338fbbcd9272db122f7",
23
+ "__NEXT_PREVIEW_MODE_SIGNING_KEY": "474d4ae21c47453691d1acff26e3d82bc3c849cc76543e386d0421d064f8cd6e",
24
+ "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "6303c5ab3936a48d2cd9a6884292180d53211b5b0414b98f2da80d6336d0de16"
25
25
  }
26
26
  }
27
27
  },
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-9f75198882fdaf08.js" defer=""></script><script src="/_next/static/chunks/framework-eaf13c96191cb608.js" defer=""></script><script src="/_next/static/chunks/main-6092074a0dc78280.js" defer=""></script><script src="/_next/static/chunks/pages/_app-4b3fb5e477a0267f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c970d8b55ace1b48.js" defer=""></script><script src="/_next/static/0YoRrahue4Vchxg1z83IQ/_buildManifest.js" defer=""></script><script src="/_next/static/0YoRrahue4Vchxg1z83IQ/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"0YoRrahue4Vchxg1z83IQ","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-9f75198882fdaf08.js" defer=""></script><script src="/_next/static/chunks/framework-eaf13c96191cb608.js" defer=""></script><script src="/_next/static/chunks/main-6092074a0dc78280.js" defer=""></script><script src="/_next/static/chunks/pages/_app-4b3fb5e477a0267f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c970d8b55ace1b48.js" defer=""></script><script src="/_next/static/pcpB4K6KreMzu2qbhvuRY/_buildManifest.js" defer=""></script><script src="/_next/static/pcpB4K6KreMzu2qbhvuRY/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"pcpB4K6KreMzu2qbhvuRY","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- {"node":{},"edge":{},"encryptionKey":"ptF5z1n0UHJafOQJqtMEb8fnfdxNhIMjqta90CL93Bg="}
1
+ {"node":{},"edge":{},"encryptionKey":"1bEn/GXMga2UNbhfYCR8uHbgMjZ+bTJ8apbzn67llg0="}