commandmate 0.49.2 → 0.49.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +241 -234
  3. package/.next/app-path-routes-manifest.json +19 -18
  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 -0
  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/release-notes/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update/route_client-reference-manifest.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/auth/login/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/capabilities/route.js +1 -1
  18. package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/daily-summary/route.js +1 -1
  20. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  21. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  23. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  24. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  25. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  28. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/hooks/agent-event/route.js +2 -2
  31. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  32. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/hooks/claude-done/route.js +2 -2
  34. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  35. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  37. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  38. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  40. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/push/escalation/route.js +1 -1
  42. package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
  43. package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  45. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/push/vapid/route.js +1 -1
  47. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  48. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/relays/[relayId]/cancel/route.js +4 -1
  50. package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
  51. package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
  52. package/.next/server/app/api/relays/[relayId]/resolve/route.js +1 -0
  53. package/.next/server/app/api/relays/[relayId]/resolve/route.js.nft.json +1 -0
  54. package/.next/server/app/api/relays/[relayId]/resolve/route_client-reference-manifest.js +1 -0
  55. package/.next/server/app/api/relays/[relayId]/route.js +1 -1
  56. package/.next/server/app/api/relays/[relayId]/route.js.nft.json +1 -1
  57. package/.next/server/app/api/relays/[relayId]/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/relays/route.js +4 -1
  59. package/.next/server/app/api/relays/route.js.nft.json +1 -1
  60. package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
  61. package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  64. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  65. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/repositories/clone/route.js +1 -1
  67. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  68. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  70. package/.next/server/app/api/repositories/restore/route.js +1 -1
  71. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  72. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/repositories/route.js +1 -1
  74. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  75. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  76. package/.next/server/app/api/repositories/scan/route.js +1 -1
  77. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  78. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  79. package/.next/server/app/api/repositories/sync/route.js +1 -1
  80. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  81. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  82. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/settings/default-agents/route.js +1 -1
  84. package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
  85. package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  88. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  91. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  94. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
  96. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  97. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  100. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/verification/runs/route.js +1 -1
  102. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  103. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  105. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  106. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  108. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  109. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
  111. package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  115. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  117. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  118. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  121. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
  124. package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
  127. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  130. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  131. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  173. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  176. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  179. package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
  182. package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
  183. package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  185. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  186. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +2 -2
  188. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  189. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
  215. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  217. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  218. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  220. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  221. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  222. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  223. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  224. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +2 -2
  225. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  226. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  227. package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
  228. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  229. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  230. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -144
  232. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +3 -3
  235. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  239. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  242. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  245. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  248. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  249. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
  251. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
  253. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  257. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  259. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  260. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  263. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
  266. package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
  269. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  272. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  275. package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/route.js +1 -1
  277. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  280. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  281. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  282. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  283. package/.next/server/app/page_client-reference-manifest.js +1 -1
  284. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  286. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  287. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  288. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  289. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  290. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  291. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  292. package/.next/server/app/worktrees/[id]/page.js +10 -10
  293. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  294. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  295. package/.next/server/app-paths-manifest.json +19 -18
  296. package/.next/server/chunks/1308.js +1 -0
  297. package/.next/server/chunks/1656.js +2 -2
  298. package/.next/server/chunks/1957.js +2 -2
  299. package/.next/server/chunks/2119.js +1 -1
  300. package/.next/server/chunks/2445.js +1 -1
  301. package/.next/server/chunks/2897.js +1 -1
  302. package/.next/server/chunks/3417.js +1 -1
  303. package/.next/server/chunks/3801.js +7 -7
  304. package/.next/server/chunks/4207.js +1 -1
  305. package/.next/server/chunks/4490.js +1 -0
  306. package/.next/server/chunks/4911.js +1 -1
  307. package/.next/server/chunks/4936.js +1 -1
  308. package/.next/server/chunks/5209.js +2 -2
  309. package/.next/server/chunks/5350.js +212 -0
  310. package/.next/server/chunks/5354.js +1 -1
  311. package/.next/server/chunks/6130.js +1 -1
  312. package/.next/server/chunks/6401.js +1 -1
  313. package/.next/server/chunks/7023.js +3 -3
  314. package/.next/server/chunks/7905.js +1 -1
  315. package/.next/server/chunks/7926.js +1 -0
  316. package/.next/server/chunks/8581.js +1 -1
  317. package/.next/server/chunks/8728.js +2 -2
  318. package/.next/server/chunks/8782.js +1 -1
  319. package/.next/server/chunks/8807.js +89 -88
  320. package/.next/server/chunks/8918.js +3 -3
  321. package/.next/server/chunks/9169.js +1 -0
  322. package/.next/server/chunks/9390.js +1 -1
  323. package/.next/server/chunks/9584.js +1 -1
  324. package/.next/server/chunks/9627.js +5 -5
  325. package/.next/server/chunks/9702.js +1 -0
  326. package/.next/server/chunks/9731.js +3 -3
  327. package/.next/server/middleware-manifest.json +5 -5
  328. package/.next/server/pages/500.html +1 -1
  329. package/.next/server/server-reference-manifest.json +1 -1
  330. package/.next/static/chunks/{2407-07a237575e1ceb9e.js → 2407-87ec01332344ec2b.js} +1 -1
  331. package/.next/static/chunks/3931-3ef48b8d97357282.js +1 -0
  332. package/.next/static/chunks/app/api/agents/update/route-96fc12d400b49b13.js +1 -0
  333. package/.next/static/chunks/app/api/agents/versions/route-96fc12d400b49b13.js +1 -0
  334. package/.next/static/chunks/app/api/app/release-notes/route-96fc12d400b49b13.js +1 -0
  335. package/.next/static/chunks/app/api/app/update/route-96fc12d400b49b13.js +1 -0
  336. package/.next/static/chunks/app/api/app/update-check/route-96fc12d400b49b13.js +1 -0
  337. package/.next/static/chunks/app/api/auth/login/route-96fc12d400b49b13.js +1 -0
  338. package/.next/static/chunks/app/api/auth/logout/route-96fc12d400b49b13.js +1 -0
  339. package/.next/static/chunks/app/api/auth/status/route-96fc12d400b49b13.js +1 -0
  340. package/.next/static/chunks/app/api/capabilities/route-96fc12d400b49b13.js +1 -0
  341. package/.next/static/chunks/app/api/daily-summary/route-96fc12d400b49b13.js +1 -0
  342. package/.next/static/chunks/app/api/daily-summary/status/route-96fc12d400b49b13.js +1 -0
  343. package/.next/static/chunks/app/api/external-apps/[id]/health/route-96fc12d400b49b13.js +1 -0
  344. package/.next/static/chunks/app/api/external-apps/[id]/route-96fc12d400b49b13.js +1 -0
  345. package/.next/static/chunks/app/api/external-apps/route-96fc12d400b49b13.js +1 -0
  346. package/.next/static/chunks/app/api/fs/browse/route-96fc12d400b49b13.js +1 -0
  347. package/.next/static/chunks/app/api/fs/recent-paths/route-96fc12d400b49b13.js +1 -0
  348. package/.next/static/chunks/app/api/hooks/agent-event/route-96fc12d400b49b13.js +1 -0
  349. package/.next/static/chunks/app/api/hooks/claude-done/route-96fc12d400b49b13.js +1 -0
  350. package/.next/static/chunks/app/api/hooks/permission-request/route-96fc12d400b49b13.js +1 -0
  351. package/.next/static/chunks/app/api/metrics/vibe/route-96fc12d400b49b13.js +1 -0
  352. package/.next/static/chunks/app/api/ollama/models/route-96fc12d400b49b13.js +1 -0
  353. package/.next/static/chunks/app/api/push/escalation/route-96fc12d400b49b13.js +1 -0
  354. package/.next/static/chunks/app/api/push/subscriptions/route-96fc12d400b49b13.js +1 -0
  355. package/.next/static/chunks/app/api/push/vapid/route-96fc12d400b49b13.js +1 -0
  356. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-96fc12d400b49b13.js +1 -0
  357. package/.next/static/chunks/app/api/relays/[relayId]/resolve/route-96fc12d400b49b13.js +1 -0
  358. package/.next/static/chunks/app/api/relays/[relayId]/route-96fc12d400b49b13.js +1 -0
  359. package/.next/static/chunks/app/api/relays/route-96fc12d400b49b13.js +1 -0
  360. package/.next/static/chunks/app/api/remote/pair/route-96fc12d400b49b13.js +1 -0
  361. package/.next/static/chunks/app/api/repositories/[id]/route-96fc12d400b49b13.js +1 -0
  362. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-96fc12d400b49b13.js +1 -0
  363. package/.next/static/chunks/app/api/repositories/clone/route-96fc12d400b49b13.js +1 -0
  364. package/.next/static/chunks/app/api/repositories/excluded/route-96fc12d400b49b13.js +1 -0
  365. package/.next/static/chunks/app/api/repositories/restore/route-96fc12d400b49b13.js +1 -0
  366. package/.next/static/chunks/app/api/repositories/route-96fc12d400b49b13.js +1 -0
  367. package/.next/static/chunks/app/api/repositories/scan/route-96fc12d400b49b13.js +1 -0
  368. package/.next/static/chunks/app/api/repositories/sync/route-96fc12d400b49b13.js +1 -0
  369. package/.next/static/chunks/app/api/repositories/validate-path/route-96fc12d400b49b13.js +1 -0
  370. package/.next/static/chunks/app/api/settings/default-agents/route-96fc12d400b49b13.js +1 -0
  371. package/.next/static/chunks/app/api/settings/default-surface-mode/route-96fc12d400b49b13.js +1 -0
  372. package/.next/static/chunks/app/api/sidebar/group-order/route-96fc12d400b49b13.js +1 -0
  373. package/.next/static/chunks/app/api/skills/[id]/route-96fc12d400b49b13.js +1 -0
  374. package/.next/static/chunks/app/api/skills/installations/route-96fc12d400b49b13.js +1 -0
  375. package/.next/static/chunks/app/api/skills/operations/route-96fc12d400b49b13.js +1 -0
  376. package/.next/static/chunks/app/api/skills/reindex/route-96fc12d400b49b13.js +1 -0
  377. package/.next/static/chunks/app/api/skills/route-96fc12d400b49b13.js +1 -0
  378. package/.next/static/chunks/app/api/slash-commands/route-96fc12d400b49b13.js +1 -0
  379. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-96fc12d400b49b13.js +1 -0
  380. package/.next/static/chunks/app/api/tasks/[taskId]/route-96fc12d400b49b13.js +1 -0
  381. package/.next/static/chunks/app/api/templates/[id]/route-96fc12d400b49b13.js +1 -0
  382. package/.next/static/chunks/app/api/templates/route-96fc12d400b49b13.js +1 -0
  383. package/.next/static/chunks/app/api/verification/runs/[runId]/route-96fc12d400b49b13.js +1 -0
  384. package/.next/static/chunks/app/api/verification/runs/route-96fc12d400b49b13.js +1 -0
  385. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-96fc12d400b49b13.js +1 -0
  386. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-96fc12d400b49b13.js +1 -0
  387. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-96fc12d400b49b13.js +1 -0
  388. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-96fc12d400b49b13.js +1 -0
  389. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-96fc12d400b49b13.js +1 -0
  390. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-96fc12d400b49b13.js +1 -0
  391. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-96fc12d400b49b13.js +1 -0
  392. package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-96fc12d400b49b13.js +1 -0
  393. package/.next/static/chunks/app/api/worktrees/[id]/env/route-96fc12d400b49b13.js +1 -0
  394. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-96fc12d400b49b13.js +1 -0
  395. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-96fc12d400b49b13.js +1 -0
  396. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-96fc12d400b49b13.js +1 -0
  397. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-96fc12d400b49b13.js +1 -0
  398. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-96fc12d400b49b13.js +1 -0
  399. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-96fc12d400b49b13.js +1 -0
  400. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-96fc12d400b49b13.js +1 -0
  401. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-96fc12d400b49b13.js +1 -0
  402. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-96fc12d400b49b13.js +1 -0
  403. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-96fc12d400b49b13.js +1 -0
  404. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-96fc12d400b49b13.js +1 -0
  405. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-96fc12d400b49b13.js +1 -0
  406. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-96fc12d400b49b13.js +1 -0
  407. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-96fc12d400b49b13.js +1 -0
  408. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-96fc12d400b49b13.js +1 -0
  409. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-96fc12d400b49b13.js +1 -0
  410. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-96fc12d400b49b13.js +1 -0
  411. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-96fc12d400b49b13.js +1 -0
  412. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-96fc12d400b49b13.js +1 -0
  413. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-96fc12d400b49b13.js +1 -0
  414. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-96fc12d400b49b13.js +1 -0
  415. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-96fc12d400b49b13.js +1 -0
  416. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-96fc12d400b49b13.js +1 -0
  417. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-96fc12d400b49b13.js +1 -0
  418. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-96fc12d400b49b13.js +1 -0
  419. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-96fc12d400b49b13.js +1 -0
  420. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-96fc12d400b49b13.js +1 -0
  421. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-96fc12d400b49b13.js +1 -0
  422. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-96fc12d400b49b13.js +1 -0
  423. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-96fc12d400b49b13.js +1 -0
  424. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-96fc12d400b49b13.js +1 -0
  425. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-96fc12d400b49b13.js +1 -0
  426. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-96fc12d400b49b13.js +1 -0
  427. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-96fc12d400b49b13.js +1 -0
  428. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-96fc12d400b49b13.js +1 -0
  429. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-96fc12d400b49b13.js +1 -0
  430. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-96fc12d400b49b13.js +1 -0
  431. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-96fc12d400b49b13.js +1 -0
  432. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-96fc12d400b49b13.js +1 -0
  433. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-96fc12d400b49b13.js +1 -0
  434. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-96fc12d400b49b13.js +1 -0
  435. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-96fc12d400b49b13.js +1 -0
  436. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-96fc12d400b49b13.js +1 -0
  437. package/.next/static/chunks/app/api/worktrees/[id]/route-96fc12d400b49b13.js +1 -0
  438. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-96fc12d400b49b13.js +1 -0
  439. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-96fc12d400b49b13.js +1 -0
  440. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-96fc12d400b49b13.js +1 -0
  441. package/.next/static/chunks/app/api/worktrees/[id]/search/route-96fc12d400b49b13.js +1 -0
  442. package/.next/static/chunks/app/api/worktrees/[id]/send/route-96fc12d400b49b13.js +1 -0
  443. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-96fc12d400b49b13.js +1 -0
  444. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-96fc12d400b49b13.js +1 -0
  445. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-96fc12d400b49b13.js +1 -0
  446. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-96fc12d400b49b13.js +1 -0
  447. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-96fc12d400b49b13.js +1 -0
  448. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-96fc12d400b49b13.js +1 -0
  449. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-96fc12d400b49b13.js +1 -0
  450. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-96fc12d400b49b13.js +1 -0
  451. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-96fc12d400b49b13.js +1 -0
  452. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-96fc12d400b49b13.js +1 -0
  453. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-96fc12d400b49b13.js +1 -0
  454. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-96fc12d400b49b13.js +1 -0
  455. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-96fc12d400b49b13.js +1 -0
  456. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-96fc12d400b49b13.js +1 -0
  457. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-96fc12d400b49b13.js +1 -0
  458. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-96fc12d400b49b13.js +1 -0
  459. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-96fc12d400b49b13.js +1 -0
  460. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-96fc12d400b49b13.js +1 -0
  461. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-96fc12d400b49b13.js +1 -0
  462. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-96fc12d400b49b13.js +1 -0
  463. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-96fc12d400b49b13.js +1 -0
  464. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-96fc12d400b49b13.js +1 -0
  465. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-96fc12d400b49b13.js +1 -0
  466. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-96fc12d400b49b13.js +1 -0
  467. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-96fc12d400b49b13.js +1 -0
  468. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-96fc12d400b49b13.js +1 -0
  469. package/.next/static/chunks/app/api/worktrees/route-96fc12d400b49b13.js +1 -0
  470. package/.next/static/chunks/app/{layout-4f64316957b0a8e5.js → layout-b9d8aef70e4f17b2.js} +1 -1
  471. package/.next/static/chunks/app/manifest.webmanifest/route-96fc12d400b49b13.js +1 -0
  472. package/.next/static/chunks/app/proxy/[...path]/route-96fc12d400b49b13.js +1 -0
  473. package/.next/static/chunks/app/worktrees/[id]/layout-96fc12d400b49b13.js +1 -0
  474. package/.next/static/chunks/app/worktrees/[id]/page-f6a151304860b549.js +1 -0
  475. package/.next/trace +13 -13
  476. package/.next/types/app/api/relays/[relayId]/resolve/route.ts +347 -0
  477. package/.next/types/routes.d.ts +2 -1
  478. package/.next/types/validator.ts +9 -0
  479. package/dist/cli/commands/prompt.d.ts.map +1 -1
  480. package/dist/cli/commands/prompt.js +2 -1
  481. package/dist/cli/commands/relays.d.ts +2 -0
  482. package/dist/cli/commands/relays.d.ts.map +1 -1
  483. package/dist/cli/commands/relays.js +142 -5
  484. package/dist/cli/commands/report.d.ts +7 -2
  485. package/dist/cli/commands/report.d.ts.map +1 -1
  486. package/dist/cli/commands/report.js +19 -6
  487. package/dist/cli/commands/respond-strict.d.ts.map +1 -1
  488. package/dist/cli/commands/respond-strict.js +9 -2
  489. package/dist/cli/commands/task.d.ts +22 -0
  490. package/dist/cli/commands/task.d.ts.map +1 -1
  491. package/dist/cli/commands/task.js +26 -18
  492. package/dist/cli/types/api-responses.d.ts +52 -0
  493. package/dist/cli/types/api-responses.d.ts.map +1 -1
  494. package/dist/cli/utils/api-client-deadline.d.ts +28 -0
  495. package/dist/cli/utils/api-client-deadline.d.ts.map +1 -0
  496. package/dist/cli/utils/api-client-deadline.js +46 -0
  497. package/dist/cli/utils/api-client-errors.d.ts +118 -0
  498. package/dist/cli/utils/api-client-errors.d.ts.map +1 -0
  499. package/dist/cli/utils/api-client-errors.js +210 -0
  500. package/dist/cli/utils/api-client.d.ts +3 -133
  501. package/dist/cli/utils/api-client.d.ts.map +1 -1
  502. package/dist/cli/utils/api-client.js +30 -257
  503. package/dist/lib/cli-tools/types.d.ts +6 -0
  504. package/dist/lib/cli-tools/types.d.ts.map +1 -1
  505. package/dist/server/locales/en/worktree.json +7 -0
  506. package/dist/server/locales/ja/worktree.json +7 -0
  507. package/dist/server/src/lib/cli-tools/claude.js +8 -2
  508. package/dist/server/src/lib/cli-tools/command-code.js +7 -15
  509. package/dist/server/src/lib/cli-tools/copilot.js +154 -25
  510. package/dist/server/src/lib/cli-tools/opencode.js +157 -6
  511. package/dist/server/src/lib/cli-tools/prompt-wait-dialog.js +115 -0
  512. package/dist/server/src/lib/cli-tools/submit-composer-read.js +41 -8
  513. package/dist/server/src/lib/cli-tools/submit-verified-sender-composer.js +78 -0
  514. package/dist/server/src/lib/cli-tools/submit-verified-sender-lock.js +116 -0
  515. package/dist/server/src/lib/cli-tools/submit-verified-sender-report.js +250 -0
  516. package/dist/server/src/lib/cli-tools/submit-verified-sender-shared.js +106 -0
  517. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +94 -295
  518. package/dist/server/src/lib/cli-tools/vibe-local.js +87 -0
  519. package/dist/server/src/lib/db/chat-db.js +14 -1
  520. package/dist/server/src/lib/db/db-instance.js +114 -2
  521. package/dist/server/src/lib/db/migrations/index.js +2 -0
  522. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  523. package/dist/server/src/lib/db/migrations/v63-session-relays-delivery-attempt.js +61 -0
  524. package/dist/server/src/lib/db/relay-bind-db-base.js +89 -0
  525. package/dist/server/src/lib/db/relay-bind-db-delivery.js +223 -0
  526. package/dist/server/src/lib/db/relay-bind-db-pending.js +183 -0
  527. package/dist/server/src/lib/db/relay-bind-db.js +88 -167
  528. package/dist/server/src/lib/db/relay-db-base.js +20 -0
  529. package/dist/server/src/lib/db/relay-db-count.js +49 -0
  530. package/dist/server/src/lib/db/relay-db-delivery.js +104 -0
  531. package/dist/server/src/lib/db/relay-db-hold.js +250 -0
  532. package/dist/server/src/lib/db/relay-db.js +33 -92
  533. package/dist/server/src/lib/detection/tools/opencode/composer-own-text.js +119 -0
  534. package/dist/server/src/lib/detection/tools/opencode/readiness.js +62 -0
  535. package/dist/server/src/lib/detection/tools/vibe-local/readiness.js +70 -0
  536. package/dist/server/src/lib/relay/relay-bound-reply.js +20 -9
  537. package/dist/server/src/lib/relay/relay-delivery.js +359 -79
  538. package/dist/server/src/lib/relay/relay-messages.js +13 -0
  539. package/dist/server/src/lib/relay/relay-system-line.js +28 -15
  540. package/dist/server/src/lib/relay/types.js +14 -2
  541. package/dist/server/src/lib/session/claude-session.js +4 -1
  542. package/dist/server/src/lib/session/current-output-builder.js +7 -5
  543. package/dist/server/src/lib/session/instance-input-lock.js +47 -2
  544. package/dist/server/src/lib/session/prompt-submit-receipt.js +87 -18
  545. package/dist/server/src/lib/session/prompt-waiting-guard.js +8 -2
  546. package/dist/server/src/lib/session/respond-target.js +82 -0
  547. package/dist/server/src/lib/session/send-attempt-state.js +130 -3
  548. package/dist/server/src/lib/session/send-user-message.js +78 -7
  549. package/dist/server/src/lib/session/structured-prompt.js +12 -7
  550. package/dist/server/src/lib/session/worktree-session-reconcile.js +10 -0
  551. package/dist/server/src/lib/session-key-sender.js +6 -1
  552. package/package.json +1 -1
  553. package/release-notes/0.49.3.json +52 -0
  554. package/.next/server/chunks/1062.js +0 -1
  555. package/.next/server/chunks/110.js +0 -1
  556. package/.next/server/chunks/2422.js +0 -1
  557. package/.next/server/chunks/3756.js +0 -1
  558. package/.next/server/chunks/5630.js +0 -1
  559. package/.next/server/chunks/6808.js +0 -4
  560. package/.next/server/chunks/9198.js +0 -144
  561. package/.next/static/chunks/3931-61ad1a4fc0208d0e.js +0 -1
  562. package/.next/static/chunks/app/api/agents/update/route-a4f129c451de7859.js +0 -1
  563. package/.next/static/chunks/app/api/agents/versions/route-a4f129c451de7859.js +0 -1
  564. package/.next/static/chunks/app/api/app/release-notes/route-a4f129c451de7859.js +0 -1
  565. package/.next/static/chunks/app/api/app/update/route-a4f129c451de7859.js +0 -1
  566. package/.next/static/chunks/app/api/app/update-check/route-a4f129c451de7859.js +0 -1
  567. package/.next/static/chunks/app/api/auth/login/route-a4f129c451de7859.js +0 -1
  568. package/.next/static/chunks/app/api/auth/logout/route-a4f129c451de7859.js +0 -1
  569. package/.next/static/chunks/app/api/auth/status/route-a4f129c451de7859.js +0 -1
  570. package/.next/static/chunks/app/api/capabilities/route-a4f129c451de7859.js +0 -1
  571. package/.next/static/chunks/app/api/daily-summary/route-a4f129c451de7859.js +0 -1
  572. package/.next/static/chunks/app/api/daily-summary/status/route-a4f129c451de7859.js +0 -1
  573. package/.next/static/chunks/app/api/external-apps/[id]/health/route-a4f129c451de7859.js +0 -1
  574. package/.next/static/chunks/app/api/external-apps/[id]/route-a4f129c451de7859.js +0 -1
  575. package/.next/static/chunks/app/api/external-apps/route-a4f129c451de7859.js +0 -1
  576. package/.next/static/chunks/app/api/fs/browse/route-a4f129c451de7859.js +0 -1
  577. package/.next/static/chunks/app/api/fs/recent-paths/route-a4f129c451de7859.js +0 -1
  578. package/.next/static/chunks/app/api/hooks/agent-event/route-a4f129c451de7859.js +0 -1
  579. package/.next/static/chunks/app/api/hooks/claude-done/route-a4f129c451de7859.js +0 -1
  580. package/.next/static/chunks/app/api/hooks/permission-request/route-a4f129c451de7859.js +0 -1
  581. package/.next/static/chunks/app/api/metrics/vibe/route-a4f129c451de7859.js +0 -1
  582. package/.next/static/chunks/app/api/ollama/models/route-a4f129c451de7859.js +0 -1
  583. package/.next/static/chunks/app/api/push/escalation/route-a4f129c451de7859.js +0 -1
  584. package/.next/static/chunks/app/api/push/subscriptions/route-a4f129c451de7859.js +0 -1
  585. package/.next/static/chunks/app/api/push/vapid/route-a4f129c451de7859.js +0 -1
  586. package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-a4f129c451de7859.js +0 -1
  587. package/.next/static/chunks/app/api/relays/[relayId]/route-a4f129c451de7859.js +0 -1
  588. package/.next/static/chunks/app/api/relays/route-a4f129c451de7859.js +0 -1
  589. package/.next/static/chunks/app/api/remote/pair/route-a4f129c451de7859.js +0 -1
  590. package/.next/static/chunks/app/api/repositories/[id]/route-a4f129c451de7859.js +0 -1
  591. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-a4f129c451de7859.js +0 -1
  592. package/.next/static/chunks/app/api/repositories/clone/route-a4f129c451de7859.js +0 -1
  593. package/.next/static/chunks/app/api/repositories/excluded/route-a4f129c451de7859.js +0 -1
  594. package/.next/static/chunks/app/api/repositories/restore/route-a4f129c451de7859.js +0 -1
  595. package/.next/static/chunks/app/api/repositories/route-a4f129c451de7859.js +0 -1
  596. package/.next/static/chunks/app/api/repositories/scan/route-a4f129c451de7859.js +0 -1
  597. package/.next/static/chunks/app/api/repositories/sync/route-a4f129c451de7859.js +0 -1
  598. package/.next/static/chunks/app/api/repositories/validate-path/route-a4f129c451de7859.js +0 -1
  599. package/.next/static/chunks/app/api/settings/default-agents/route-a4f129c451de7859.js +0 -1
  600. package/.next/static/chunks/app/api/settings/default-surface-mode/route-a4f129c451de7859.js +0 -1
  601. package/.next/static/chunks/app/api/sidebar/group-order/route-a4f129c451de7859.js +0 -1
  602. package/.next/static/chunks/app/api/skills/[id]/route-a4f129c451de7859.js +0 -1
  603. package/.next/static/chunks/app/api/skills/installations/route-a4f129c451de7859.js +0 -1
  604. package/.next/static/chunks/app/api/skills/operations/route-a4f129c451de7859.js +0 -1
  605. package/.next/static/chunks/app/api/skills/reindex/route-a4f129c451de7859.js +0 -1
  606. package/.next/static/chunks/app/api/skills/route-a4f129c451de7859.js +0 -1
  607. package/.next/static/chunks/app/api/slash-commands/route-a4f129c451de7859.js +0 -1
  608. package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-a4f129c451de7859.js +0 -1
  609. package/.next/static/chunks/app/api/tasks/[taskId]/route-a4f129c451de7859.js +0 -1
  610. package/.next/static/chunks/app/api/templates/[id]/route-a4f129c451de7859.js +0 -1
  611. package/.next/static/chunks/app/api/templates/route-a4f129c451de7859.js +0 -1
  612. package/.next/static/chunks/app/api/verification/runs/[runId]/route-a4f129c451de7859.js +0 -1
  613. package/.next/static/chunks/app/api/verification/runs/route-a4f129c451de7859.js +0 -1
  614. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-a4f129c451de7859.js +0 -1
  615. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-a4f129c451de7859.js +0 -1
  616. package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-a4f129c451de7859.js +0 -1
  617. package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-a4f129c451de7859.js +0 -1
  618. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-a4f129c451de7859.js +0 -1
  619. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-a4f129c451de7859.js +0 -1
  620. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-a4f129c451de7859.js +0 -1
  621. package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-a4f129c451de7859.js +0 -1
  622. package/.next/static/chunks/app/api/worktrees/[id]/env/route-a4f129c451de7859.js +0 -1
  623. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-a4f129c451de7859.js +0 -1
  624. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-a4f129c451de7859.js +0 -1
  625. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-a4f129c451de7859.js +0 -1
  626. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-a4f129c451de7859.js +0 -1
  627. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-a4f129c451de7859.js +0 -1
  628. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-a4f129c451de7859.js +0 -1
  629. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-a4f129c451de7859.js +0 -1
  630. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-a4f129c451de7859.js +0 -1
  631. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-a4f129c451de7859.js +0 -1
  632. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-a4f129c451de7859.js +0 -1
  633. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-a4f129c451de7859.js +0 -1
  634. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-a4f129c451de7859.js +0 -1
  635. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-a4f129c451de7859.js +0 -1
  636. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-a4f129c451de7859.js +0 -1
  637. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-a4f129c451de7859.js +0 -1
  638. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-a4f129c451de7859.js +0 -1
  639. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-a4f129c451de7859.js +0 -1
  640. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-a4f129c451de7859.js +0 -1
  641. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-a4f129c451de7859.js +0 -1
  642. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-a4f129c451de7859.js +0 -1
  643. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-a4f129c451de7859.js +0 -1
  644. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-a4f129c451de7859.js +0 -1
  645. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-a4f129c451de7859.js +0 -1
  646. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-a4f129c451de7859.js +0 -1
  647. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-a4f129c451de7859.js +0 -1
  648. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-a4f129c451de7859.js +0 -1
  649. package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-a4f129c451de7859.js +0 -1
  650. package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-a4f129c451de7859.js +0 -1
  651. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-a4f129c451de7859.js +0 -1
  652. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-a4f129c451de7859.js +0 -1
  653. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-a4f129c451de7859.js +0 -1
  654. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-a4f129c451de7859.js +0 -1
  655. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-a4f129c451de7859.js +0 -1
  656. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-a4f129c451de7859.js +0 -1
  657. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-a4f129c451de7859.js +0 -1
  658. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-a4f129c451de7859.js +0 -1
  659. package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-a4f129c451de7859.js +0 -1
  660. package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-a4f129c451de7859.js +0 -1
  661. package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-a4f129c451de7859.js +0 -1
  662. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-a4f129c451de7859.js +0 -1
  663. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-a4f129c451de7859.js +0 -1
  664. package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-a4f129c451de7859.js +0 -1
  665. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-a4f129c451de7859.js +0 -1
  666. package/.next/static/chunks/app/api/worktrees/[id]/route-a4f129c451de7859.js +0 -1
  667. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-a4f129c451de7859.js +0 -1
  668. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-a4f129c451de7859.js +0 -1
  669. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-a4f129c451de7859.js +0 -1
  670. package/.next/static/chunks/app/api/worktrees/[id]/search/route-a4f129c451de7859.js +0 -1
  671. package/.next/static/chunks/app/api/worktrees/[id]/send/route-a4f129c451de7859.js +0 -1
  672. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-a4f129c451de7859.js +0 -1
  673. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-a4f129c451de7859.js +0 -1
  674. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-a4f129c451de7859.js +0 -1
  675. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-a4f129c451de7859.js +0 -1
  676. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-a4f129c451de7859.js +0 -1
  677. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-a4f129c451de7859.js +0 -1
  678. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-a4f129c451de7859.js +0 -1
  679. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-a4f129c451de7859.js +0 -1
  680. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-a4f129c451de7859.js +0 -1
  681. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-a4f129c451de7859.js +0 -1
  682. package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-a4f129c451de7859.js +0 -1
  683. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-a4f129c451de7859.js +0 -1
  684. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-a4f129c451de7859.js +0 -1
  685. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-a4f129c451de7859.js +0 -1
  686. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-a4f129c451de7859.js +0 -1
  687. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-a4f129c451de7859.js +0 -1
  688. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-a4f129c451de7859.js +0 -1
  689. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-a4f129c451de7859.js +0 -1
  690. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-a4f129c451de7859.js +0 -1
  691. package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-a4f129c451de7859.js +0 -1
  692. package/.next/static/chunks/app/api/worktrees/[id]/verify/route-a4f129c451de7859.js +0 -1
  693. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-a4f129c451de7859.js +0 -1
  694. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-a4f129c451de7859.js +0 -1
  695. package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-a4f129c451de7859.js +0 -1
  696. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-a4f129c451de7859.js +0 -1
  697. package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-a4f129c451de7859.js +0 -1
  698. package/.next/static/chunks/app/api/worktrees/route-a4f129c451de7859.js +0 -1
  699. package/.next/static/chunks/app/manifest.webmanifest/route-a4f129c451de7859.js +0 -1
  700. package/.next/static/chunks/app/proxy/[...path]/route-a4f129c451de7859.js +0 -1
  701. package/.next/static/chunks/app/worktrees/[id]/layout-a4f129c451de7859.js +0 -1
  702. package/.next/static/chunks/app/worktrees/[id]/page-33afc6aa96289fb0.js +0 -1
  703. /package/.next/static/{yGatWDsS532awSs51kXyd → LNfVZiq6FZwKsV7L9Mi6M}/_buildManifest.js +0 -0
  704. /package/.next/static/{yGatWDsS532awSs51kXyd → LNfVZiq6FZwKsV7L9Mi6M}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=8782,exports.ids=[8782],exports.modules={20419:(a,b,c)=>{c.r(b),c.d(b,{default:()=>g});var d=c(75338),e=c(93045),f=c(27289);async function g({children:a,params:b}){let{id:c}=await b,g=(0,f.z)(c);return g!==c&&(0,e.permanentRedirect)(`/worktrees/${encodeURIComponent(g)}`),(0,d.jsx)(d.Fragment,{children:a})}},25799:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(82831),e=c(43740),f=c(29305),g=c(61981),h=c(26906),i=c(69168);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},29088:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},47614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(91203),e=c(92781),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>u,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>w,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:()=>t,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(55741),g=c(20416),h=c(10406),i=c(87550),j=c.n(i),k=c(55511),l=c.n(k),m=c(29021),n=c.n(m),o=c(33873),p=c.n(o),q=c(21820),r=c(7956);let s=(0,c(72626).h)("db-migration-path");function t(a,b){try{if(!n().existsSync(a))return null;let c=n().realpathSync(a);if((0,r.fW)(c))return s.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return s.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function u(){let a=[];a.push(p().join(process.cwd(),"data","db.sqlite")),a.push(p().join(process.cwd(),"data","cm.db")),a.push(p().join((0,q.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=p().resolve(b);(0,r.fW)(c)?s.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{s.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function v(a,b){if(function(a){try{return n().statSync(`${a}-wal`).size>0}catch{return!1}}(a)){let c=`${b}.${l().randomBytes(4).toString("hex")}.partial`;try{n().closeSync(n().openSync(c,"wx",384));let d=new(j())(a,{readonly:!0,fileMustExist:!0});try{d.prepare("VACUUM INTO ?").run(c)}finally{d.close()}n().renameSync(c,b)}catch(a){throw n().rmSync(c,{force:!0}),a}}else n().copyFileSync(a,b)}function w(a){let b=p().resolve(a);if((0,r.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(n().existsSync(a)){let b=t(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of u()){let c=t(a,"legacy path");if(!c)continue;let d=`${c}.bak`;v(c,d),n().chmodSync(d,384);let e=p().dirname(b);return n().existsSync(e)||n().mkdirSync(e,{recursive:!0,mode:448}),v(c,b),s.info(`[Migration] Database migrated from ${c} to ${b}`),s.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},57387:(a,b,c)=>{c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(43084);function f(){return(0,d.jsx)(e.k,{})}},64404:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64712:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(25799).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},67837:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},93045:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(47614),e=c(92781),f=c(64404),g=c(67837),h=c(29088),i=c(64712);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};
1
+ "use strict";exports.id=8782,exports.ids=[8782],exports.modules={20419:(a,b,c)=>{c.r(b),c.d(b,{default:()=>g});var d=c(75338),e=c(93045),f=c(27289);async function g({children:a,params:b}){let{id:c}=await b,g=(0,f.z)(c);return g!==c&&(0,e.permanentRedirect)(`/worktrees/${encodeURIComponent(g)}`),(0,d.jsx)(d.Fragment,{children:a})}},25799:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(82831),e=c(43740),f=c(29305),g=c(61981),h=c(26906),i=c(69168);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},27289:(a,b,c)=>{c.d(b,{t:()=>j,z:()=>i});var d=c(10641),e=c(88807),f=c(56791),g=c(95506),h=c(66007);function i(a){if(!a)return a;try{if(!(0,h.h6)(a))return a;let b=(0,e.getDbInstance)();return(0,g.l0)(b,a)??a}catch{return a}}function j(a){if(!(0,h.h6)(a))return d.NextResponse.json({error:"Invalid worktree ID format"},{status:400});let b=(0,e.getDbInstance)(),c=(0,f.getWorktreeById)(b,i(a));return c||d.NextResponse.json({error:"Worktree not found"},{status:404})}},29088:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},47614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{getRedirectError:function(){return g},getRedirectStatusCodeFromError:function(){return l},getRedirectTypeFromError:function(){return k},getURLFromRedirectError:function(){return j},permanentRedirect:function(){return i},redirect:function(){return h}});let d=c(91203),e=c(92781),f=c(19121).actionAsyncStorage;function g(a,b,c){void 0===c&&(c=d.RedirectStatusCode.TemporaryRedirect);let f=Object.defineProperty(Error(e.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return f.digest=e.REDIRECT_ERROR_CODE+";"+b+";"+a+";"+c+";",f}function h(a,b){var c;throw null!=b||(b=(null==f||null==(c=f.getStore())?void 0:c.isAction)?e.RedirectType.push:e.RedirectType.replace),g(a,b,d.RedirectStatusCode.TemporaryRedirect)}function i(a,b){throw void 0===b&&(b=e.RedirectType.replace),g(a,b,d.RedirectStatusCode.PermanentRedirect)}function j(a){return(0,e.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function k(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function l(a){if(!(0,e.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},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,TEST_DB_ROOT_ENV:()=>e.TEST_DB_ROOT_ENV,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,assertTestDatabasePathIsolated:()=>e.assertTestDatabasePathIsolated,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>u,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isInsideVitestWorker:()=>e.isInsideVitestWorker,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>w,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:()=>t,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(28445),g=c(20416),h=c(10406),i=c(87550),j=c.n(i),k=c(55511),l=c.n(k),m=c(29021),n=c.n(m),o=c(33873),p=c.n(o),q=c(21820),r=c(7956);let s=(0,c(72626).h)("db-migration-path");function t(a,b){try{if(!n().existsSync(a))return null;let c=n().realpathSync(a);if((0,r.fW)(c))return s.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return s.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function u(){let a=[];a.push(p().join(process.cwd(),"data","db.sqlite")),a.push(p().join(process.cwd(),"data","cm.db")),a.push(p().join((0,q.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=p().resolve(b);(0,r.fW)(c)?s.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{s.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function v(a,b){if(function(a){try{return n().statSync(`${a}-wal`).size>0}catch{return!1}}(a)){let c=`${b}.${l().randomBytes(4).toString("hex")}.partial`;try{n().closeSync(n().openSync(c,"wx",384));let d=new(j())(a,{readonly:!0,fileMustExist:!0});try{d.prepare("VACUUM INTO ?").run(c)}finally{d.close()}n().renameSync(c,b)}catch(a){throw n().rmSync(c,{force:!0}),a}}else n().copyFileSync(a,b)}function w(a){let b=p().resolve(a);if((0,r.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(n().existsSync(a)){let b=t(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of u()){let c=t(a,"legacy path");if(!c)continue;let d=`${c}.bak`;v(c,d),n().chmodSync(d,384);let e=p().dirname(b);return n().existsSync(e)||n().mkdirSync(e,{recursive:!0,mode:448}),v(c,b),s.info(`[Migration] Database migrated from ${c} to ${b}`),s.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},57387:(a,b,c)=>{c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(43084);function f(){return(0,d.jsx)(e.k,{})}},64404:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return e}});let d=""+c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE+";404";function e(){let a=Object.defineProperty(Error(d),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});throw a.digest=d,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},64712:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(25799).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},67837:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(98541).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},93045:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),!function(a,b){for(var c in b)Object.defineProperty(a,c,{enumerable:!0,get:b[c]})}(b,{ReadonlyURLSearchParams:function(){return k},RedirectType:function(){return e.RedirectType},forbidden:function(){return g.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return d.permanentRedirect},redirect:function(){return d.redirect},unauthorized:function(){return h.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return i.unstable_rethrow}});let d=c(47614),e=c(92781),f=c(64404),g=c(67837),h=c(29088),i=c(64712);class j extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class k extends URLSearchParams{append(){throw new j}delete(){throw new j}set(){throw new j}sort(){throw new j}}function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};
@@ -246,90 +246,7 @@
246
246
  ON CONFLICT(worktree_id, instance_id) DO UPDATE SET
247
247
  note = excluded.note,
248
248
  updated_at = excluded.updated_at
249
- `).run(b,c,h,f),{text:h,updatedAt:f})}},34129:(a,b,c)=>{c.d(b,{$$:()=>n,CR:()=>h,DP:()=>i,GF:()=>o,Ud:()=>m,Xm:()=>r,_O:()=>k,j2:()=>l,jf:()=>q,kx:()=>j,ul:()=>p});var d=c(55511),e=c(87374);let f="id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at, error";function g(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id??a.cli_tool_id,message:a.message,delayMs:a.delay_ms,scheduledSendTime:a.scheduled_send_time,status:a.status,createdAt:a.created_at,sentAt:a.sent_at,error:a.error??null}}function h(a,b){let c=(0,d.randomUUID)(),e=Date.now(),f=e+b.delayMs,g=b.instanceId??b.cliToolId;return a.prepare(`
250
- INSERT INTO timer_messages (id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at)
251
- VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?, NULL)
252
- `).run(c,b.worktreeId,b.cliToolId,g,b.message,b.delayMs,f,e),{id:c,worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:g,message:b.message,delayMs:b.delayMs,scheduledSendTime:f,status:"pending",createdAt:e,sentAt:null,error:null}}function i(a,b,c){let{before:d,limit:h=e.XS}=c??{},i=`SELECT ${f} FROM timer_messages WHERE worktree_id = ?`,j=[b];return void 0!==d&&(i+=" AND created_at < ?",j.push(d)),i+=" ORDER BY created_at DESC LIMIT ?",j.push(h+1),a.prepare(i).all(...j).map(g)}function j(a,b){let c=a.prepare(`
253
- SELECT ${f}
254
- FROM timer_messages
255
- WHERE id = ?
256
- `).get(b);return c?g(c):void 0}function k(a){return a.prepare(`
257
- SELECT ${f}
258
- FROM timer_messages
259
- WHERE status = 'pending'
260
- ORDER BY scheduled_send_time ASC
261
- `).all().map(g)}function l(a,b,c,d,e){let f=["status = ?"],g=[c];void 0!==d&&(f.push("sent_at = ?"),g.push(d)),void 0!==e&&(f.push("error = ?"),g.push(e)),g.push(b),a.prepare(`UPDATE timer_messages SET ${f.join(", ")} WHERE id = ?`).run(...g)}function m(a,b){return a.prepare(`
262
- UPDATE timer_messages SET status = 'cancelled' WHERE id = ? AND status = 'pending'
263
- `).run(b).changes>0}function n(a,b){return a.prepare(`
264
- UPDATE timer_messages SET status = 'cancelled' WHERE worktree_id = ? AND status = 'pending'
265
- `).run(b).changes}function o(a,b){return a.prepare(`
266
- SELECT COUNT(*) as count FROM timer_messages WHERE worktree_id = ? AND status = 'pending'
267
- `).get(b).count}function p(a,b){let c=Date.now()-24*b*36e5;return a.prepare(`
268
- DELETE FROM timer_messages
269
- WHERE status NOT IN ('pending', 'sending')
270
- AND created_at < ?
271
- `).run(c).changes}function q(a,b){return a.prepare(`
272
- DELETE FROM timer_messages
273
- WHERE worktree_id = ?
274
- AND status NOT IN ('pending', 'sending')
275
- `).run(b).changes}function r(a){return a.prepare(`
276
- UPDATE timer_messages SET status = 'failed', error = ? WHERE status = 'sending'
277
- `).run("Recovered from a stuck 'sending' state after a server restart.").changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>k,Se:()=>l,VP:()=>g,Zj:()=>o,gn:()=>m,jA:()=>j,jJ:()=>p,rC:()=>n,s6:()=>f,th:()=>q});var d=c(55511);let e={prompt:"enabled_prompt",failure:"enabled_prompt",completion:"enabled_completion"},f={enabledPrompt:!0,enabledCompletion:!1},g=1;function h(a){return{id:a.id,endpoint:a.endpoint,keys:{p256dh:a.p256dh,auth:a.auth},deviceLabel:a.device_label,enabledPrompt:1===a.enabled_prompt,enabledCompletion:1===a.enabled_completion,locale:a.locale,defaultsVersion:a.defaults_version,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}let i=`
278
- id, endpoint, p256dh, auth, device_label,
279
- enabled_prompt, enabled_completion, locale, defaults_version, created_at, updated_at
280
- `;function j(a,b){let c=Date.now(),e=b.deviceLabel??null,h=b.locale??null;a.prepare(`
281
- INSERT INTO push_subscriptions (
282
- id, endpoint, p256dh, auth, device_label,
283
- enabled_prompt, enabled_completion, locale, defaults_version, created_at, updated_at
284
- )
285
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
286
- ON CONFLICT(endpoint) DO UPDATE SET
287
- p256dh = excluded.p256dh,
288
- auth = excluded.auth,
289
- device_label = excluded.device_label,
290
- locale = COALESCE(excluded.locale, push_subscriptions.locale),
291
- updated_at = excluded.updated_at
292
- `).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,+!!f.enabledPrompt,+!!f.enabledCompletion,h,g,c,c);let i=k(a,b.endpoint);if(!i)throw Error("Failed to persist push subscription");return i}function k(a,b){let c=a.prepare(`SELECT ${i} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?h(c):null}function l(a){return a.prepare(`SELECT ${i} FROM push_subscriptions ORDER BY created_at ASC`).all().map(h)}function m(a,b){let c=e[b];return a.prepare(`SELECT ${i} FROM push_subscriptions WHERE ${c} = 1 ORDER BY created_at ASC`).all().map(h)}function n(a,b){let c=e[b];return a.prepare(`SELECT COUNT(*) AS total FROM push_subscriptions WHERE ${c} = 1`).get().total}function o(a){return a.defaultsVersion<g}function p(a,b,c){let d=["updated_at = ?"],e=[Date.now()];return void 0!==c.enabledPrompt&&(d.push("enabled_prompt = ?"),e.push(+!!c.enabledPrompt)),void 0!==c.enabledCompletion&&(d.push("enabled_completion = ?"),e.push(+!!c.enabledCompletion)),c.acknowledgeDefaultsNotice&&(d.push("defaults_version = ?"),e.push(g)),e.push(b),a.prepare(`UPDATE push_subscriptions SET ${d.join(", ")} WHERE endpoint = ?`).run(...e),k(a,b)}function q(a,b){return a.prepare("DELETE FROM push_subscriptions WHERE endpoint = ?").run(b).changes>0}},48524:(a,b,c)=>{c.d(b,{EL:()=>g,Hi:()=>e,MH:()=>r,UT:()=>l,Vk:()=>n,Zj:()=>q,__:()=>p,gg:()=>m,sA:()=>f,uB:()=>i,xZ:()=>o});var d=c(55511);let e=["pending","running","waiting_input","verifying","succeeded","failed","not_started","cancelled"],f=["succeeded","failed","not_started","cancelled"],g=["running","waiting_input","verifying"],h=[...g,"failed","not_started"];function i(a){return f.includes(a)}let j=`
293
- id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
294
- status, last_verification_run_id, created_at, updated_at, started_at, finished_at
295
- `;function k(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id,title:a.title,goal:a.goal,contractPath:a.contract_path,contract:JSON.parse(a.contract_json),status:a.status,lastVerificationRunId:a.last_verification_run_id,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),startedAt:null===a.started_at?null:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function l(a,b){let c=Date.now(),e=(0,d.randomUUID)(),f=b.status??"pending";a.prepare(`
296
- INSERT INTO tasks (
297
- id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
298
- status, last_verification_run_id, created_at, updated_at, started_at, finished_at
299
- )
300
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?, ?, ?, NULL)
301
- `).run(e,b.worktreeId,b.cliToolId,b.instanceId??null,b.contract.title,b.contract.goal,b.contractPath??null,JSON.stringify(b.contract),f,c,c,"pending"===f?null:c);let g=m(a,e);if(!g)throw Error("Failed to persist task");return g}function m(a,b){let c=a.prepare(`SELECT ${j} FROM tasks WHERE id = ?`).get(b);return c?k(c):null}function n(a,b,c=20){return a.prepare(`
302
- SELECT ${j} FROM tasks
303
- WHERE worktree_id = ?
304
- ORDER BY created_at DESC, rowid DESC
305
- LIMIT ?
306
- `).all(b,c).map(k)}function o(a,b,c,d={}){let e=Date.now();if(0===a.prepare(`
307
- UPDATE tasks
308
- SET status = ?,
309
- updated_at = ?,
310
- started_at = CASE WHEN ? = 'pending' THEN started_at ELSE COALESCE(started_at, ?) END,
311
- finished_at = CASE WHEN ? = 1 THEN ? ELSE finished_at END,
312
- last_verification_run_id = COALESCE(?, last_verification_run_id)
313
- WHERE id = ?
314
- `).run(c,e,c,e,+!!i(c),e,d.lastVerificationRunId??null,b).changes)throw Error(`Task ${b} not found`);return m(a,b)}function p(a,b,c,d){let e=["worktree_id = ?"],f=[b];void 0!==c&&(e.push("cli_tool_id = ?"),f.push(c)),void 0!==d&&(e.push("instance_id = ?"),f.push(d));let h=g.map(()=>"?").join(", "),i=a.prepare(`
315
- SELECT ${j} FROM tasks
316
- WHERE ${e.join(" AND ")} AND status IN (${h})
317
- ORDER BY updated_at DESC, created_at DESC, rowid DESC
318
- LIMIT 1
319
- `).get(...f,...g);return i?k(i):null}function q(a,b){let c=h.map(()=>"?").join(", "),d=a.prepare(`
320
- SELECT ${j} FROM tasks
321
- WHERE worktree_id = ? AND status IN (${c})
322
- ORDER BY updated_at DESC, created_at DESC, rowid DESC
323
- LIMIT 1
324
- `).get(b,...h);return d?k(d):null}function r(a,b,c,d){let e=d===c,f=g.map(()=>"?").join(", "),h=a.prepare(`
325
- SELECT ${j} FROM tasks
326
- WHERE worktree_id = ?
327
- AND cli_tool_id = ?
328
- AND (instance_id = ? OR (instance_id IS NULL AND ?))
329
- AND status IN (${f})
330
- ORDER BY updated_at DESC, created_at DESC, rowid DESC
331
- LIMIT 1
332
- `).get(b,c,d,+!!e,...g);return h?k(h):null}},55741:(a,b,c)=>{c.d(b,{FT:()=>p,Mj:()=>q,PS:()=>r,Wy:()=>am,vI:()=>al,i6:()=>s});var d=c(33873),e=c.n(d),f=c(87550),g=c.n(f),h=c(55511),i=c.n(h),j=c(29021),k=c.n(j);let l="CM_DB_SKIP_MIGRATION_BACKUP",m=".partial";function n(a){let b=e().resolve(a);return{dir:e().join(e().dirname(b),"db-backups"),dbFileName:e().basename(b)}}function o(a,b){return e().join(a,`${b}.last-complete-version`)}let p=62;function q(a){try{let b=a.prepare("SELECT MAX(version) as version FROM schema_version").get();return b?.version??0}catch{return 0}}function r(a){try{return a.prepare(`
249
+ `).run(b,c,h,f),{text:h,updatedAt:f})}},28445:(a,b,c)=>{c.d(b,{FT:()=>p,Mj:()=>q,PS:()=>r,Wy:()=>an,vI:()=>am,i6:()=>s});var d=c(33873),e=c.n(d),f=c(87550),g=c.n(f),h=c(55511),i=c.n(h),j=c(29021),k=c.n(j);let l="CM_DB_SKIP_MIGRATION_BACKUP",m=".partial";function n(a){let b=e().resolve(a);return{dir:e().join(e().dirname(b),"db-backups"),dbFileName:e().basename(b)}}function o(a,b){return e().join(a,`${b}.last-complete-version`)}let p=63;function q(a){try{let b=a.prepare("SELECT MAX(version) as version FROM schema_version").get();return b?.version??0}catch{return 0}}function r(a){try{return a.prepare(`
333
250
  SELECT version, name, applied_at
334
251
  FROM schema_version
335
252
  ORDER BY version ASC
@@ -1371,7 +1288,7 @@
1371
1288
  `),a.exec(`
1372
1289
  CREATE INDEX IF NOT EXISTS idx_worktree_aliases_worktree_id
1373
1290
  ON worktree_aliases(worktree_id);
1374
- `)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_worktree_aliases_worktree_id;"),a.exec("DROP TABLE IF EXISTS worktree_aliases;")}}];var ag=c(23718),ah=c(27923);let ai="cmate-mig54-",aj=["bind_mode","send_state","bind_attempt_id","bind_owner","input_boundary_at","boundary_kind","turn_open_at_send","obs_state","obs_source","input_message_id","hold_reason","held_candidates","overlap","pending_reply","payload_id"],ak=[...v,...w,...x,...y,...z,...A,...B,...C,...D,...E,...F,...G,...H,...I,...J,...K,...L,...M,...N,...O,...P,...Q,...R,...S,...T,...U,...V,...Z,...$,..._,...aa,...ab,...ac,...ae,...af,{version:54,name:"renumber-worktree-ids-from-path",up:a=>{let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all();if(0===b.length)return void console.log("No worktrees to renumber");let c=void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get(),d=c?a.prepare("SELECT old_id FROM worktree_aliases").all().map(a=>a.old_id):[],f=function(a,b){let c=new Set([...new Set(a.map(a=>a.id)),...b]),d=new Set,f=[];for(let b of a){let a=new Set([...c,...d]);a.delete(b.id);let g=(0,ag.ko)(e().resolve(b.path),a);d.add(g),g!==b.id&&f.push({oldId:b.id,newId:g})}return f}(b,d);if(0===f.length)return void console.log(`Worktree IDs already path-derived (${b.length} row(s) checked)`);let g=new Set([...b.map(a=>a.id),...d,...f.map(a=>a.newId)]),h=f.map((a,b)=>{let c=`${ai}${b}`;for(let a=1;g.has(c);a++)c=`${ai}${b}-${a}`;return g.add(c),c}),i=Date.now();f.forEach((b,c)=>{(0,ah.D6)(a,b.oldId,h[c],i)}),f.forEach((b,c)=>{(0,ah.D6)(a,h[c],b.newId,i)});let j=c?a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?"):null;if(j)for(let a of h)j.run(a);for(let a of f)console.log(`Renumbered worktree ${a.oldId} -> ${a.newId}`);console.log(`Renumbered ${f.length} of ${b.length} worktree(s) to path-derived IDs`)},down:a=>{if(void 0===a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get())return void console.log("No worktree_aliases table: nothing to roll back");let b=a.prepare(`SELECT a.old_id, a.worktree_id
1291
+ `)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_worktree_aliases_worktree_id;"),a.exec("DROP TABLE IF EXISTS worktree_aliases;")}}];var ag=c(23718),ah=c(27923);let ai="cmate-mig54-",aj=["bind_mode","send_state","bind_attempt_id","bind_owner","input_boundary_at","boundary_kind","turn_open_at_send","obs_state","obs_source","input_message_id","hold_reason","held_candidates","overlap","pending_reply","payload_id"],ak=["delivery_state","delivery_attempt_id","delivery_owner","delivery_reason","delivery_at"],al=[...v,...w,...x,...y,...z,...A,...B,...C,...D,...E,...F,...G,...H,...I,...J,...K,...L,...M,...N,...O,...P,...Q,...R,...S,...T,...U,...V,...Z,...$,..._,...aa,...ab,...ac,...ae,...af,{version:54,name:"renumber-worktree-ids-from-path",up:a=>{let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all();if(0===b.length)return void console.log("No worktrees to renumber");let c=void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get(),d=c?a.prepare("SELECT old_id FROM worktree_aliases").all().map(a=>a.old_id):[],f=function(a,b){let c=new Set([...new Set(a.map(a=>a.id)),...b]),d=new Set,f=[];for(let b of a){let a=new Set([...c,...d]);a.delete(b.id);let g=(0,ag.ko)(e().resolve(b.path),a);d.add(g),g!==b.id&&f.push({oldId:b.id,newId:g})}return f}(b,d);if(0===f.length)return void console.log(`Worktree IDs already path-derived (${b.length} row(s) checked)`);let g=new Set([...b.map(a=>a.id),...d,...f.map(a=>a.newId)]),h=f.map((a,b)=>{let c=`${ai}${b}`;for(let a=1;g.has(c);a++)c=`${ai}${b}-${a}`;return g.add(c),c}),i=Date.now();f.forEach((b,c)=>{(0,ah.D6)(a,b.oldId,h[c],i)}),f.forEach((b,c)=>{(0,ah.D6)(a,h[c],b.newId,i)});let j=c?a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?"):null;if(j)for(let a of h)j.run(a);for(let a of f)console.log(`Renumbered worktree ${a.oldId} -> ${a.newId}`);console.log(`Renumbered ${f.length} of ${b.length} worktree(s) to path-derived IDs`)},down:a=>{if(void 0===a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get())return void console.log("No worktree_aliases table: nothing to roll back");let b=a.prepare(`SELECT a.old_id, a.worktree_id
1375
1292
  FROM worktree_aliases AS a
1376
1293
  JOIN worktrees AS w ON w.id = a.worktree_id
1377
1294
  ORDER BY a.old_id`).all();if(0===b.length)return void console.log("No worktree aliases to roll back");let c=Date.now(),d=b.map((a,b)=>`${ai}down-${b}`);b.forEach((b,e)=>{(0,ah.D6)(a,b.worktree_id,d[e],c)}),b.forEach((b,e)=>{(0,ah.D6)(a,d[e],b.old_id,c)});let e=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?");for(let a of d)e.run(a);for(let a of b)e.run(a.worktree_id);console.log(`Rolled back ${b.length} worktree ID renumbering(s)`)}},{version:55,name:"compact-churned-worktree-ids",up:a=>{let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all();if(0===b.length)return void console.log("No worktrees to compact");let c=void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get(),{renames:d,droppedAliasIds:f}=function(a,b){let c=new Map;for(let a of b){let b=c.get(a.worktreeId);b?b.push(a.oldId):c.set(a.worktreeId,[a.oldId])}let d=new Set([...a.map(a=>a.id),...b.map(a=>a.oldId)]),f=new Set,g=[],h=[];for(let b of a){let a=e().resolve(b.path),i=c.get(b.id)??[],j=new Set([...d,...f]);for(let a of(j.delete(b.id),i))j.delete(a);let k=(0,ag.ko)(a,j);if(k.length>=b.id.length){f.add(b.id);continue}for(let c of(f.add(k),g.push({oldId:b.id,newId:k}),i))c.length>k.length&&(0,ag.a1)(c,a)&&h.push(c)}return{renames:g,droppedAliasIds:h}}(b,c?a.prepare("SELECT old_id, worktree_id FROM worktree_aliases ORDER BY old_id").all().map(a=>({oldId:a.old_id,worktreeId:a.worktree_id})):[]);if(0===d.length)return void console.log(`No churned worktree IDs to compact (${b.length} row(s) checked)`);if(c&&f.length>0){let b=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?");for(let a of f)b.run(a)}let g=Date.now();for(let b of d)(0,ah.D6)(a,b.oldId,b.newId,g),console.log(`Compacted worktree ${b.oldId} -> ${b.newId}`);console.log(`Compacted ${d.length} of ${b.length} worktree ID(s); dropped ${f.length} intermediate alias(es)`)},down:a=>{if(void 0===a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get())return void console.log("No worktree_aliases table: nothing to roll back");let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all(),c=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?"),d=Date.now(),f=0;for(let g of b){let b=e().resolve(g.path),h=a.prepare("SELECT old_id FROM worktree_aliases WHERE worktree_id = ?").all(g.id).map(a=>a.old_id).filter(a=>a.length>g.id.length&&(0,ag.a1)(a,b)).sort((a,b)=>b.length-a.length||a.localeCompare(b))[0];h&&(c.run(h),(0,ah.D6)(a,g.id,h,d),c.run(g.id),f++)}console.log(`Rolled back ${f} worktree ID compaction(s)`)}},{version:56,name:"add-source-to-verification-gate-results",up:a=>{a.prepare("PRAGMA table_info(verification_gate_results)").all().some(a=>"source"===a.name)||a.exec(`
@@ -1470,7 +1387,8 @@
1470
1387
  CHECK (boundary_kind IN ('input_start','dispatch'))`,`ALTER TABLE session_relays ADD COLUMN turn_open_at_send INTEGER
1471
1388
  CHECK (turn_open_at_send IN (0,1))`,`ALTER TABLE session_relays ADD COLUMN obs_state TEXT
1472
1389
  CHECK (obs_state IN ('valid','invalid','turn_unknown'))`,"ALTER TABLE session_relays ADD COLUMN obs_source TEXT","ALTER TABLE session_relays ADD COLUMN input_message_id TEXT","ALTER TABLE session_relays ADD COLUMN hold_reason TEXT","ALTER TABLE session_relays ADD COLUMN held_candidates TEXT",`ALTER TABLE session_relays ADD COLUMN overlap TEXT
1473
- CHECK (overlap IN ('none','later','earlier','both','unknown'))`,"ALTER TABLE session_relays ADD COLUMN pending_reply TEXT","ALTER TABLE session_relays ADD COLUMN payload_id TEXT"])a.exec(b)},down:a=>{for(let b of[...aj].reverse())a.exec(`ALTER TABLE session_relays DROP COLUMN ${b}`)}}];function al(a){!function(a,b){a.exec(`
1390
+ CHECK (overlap IN ('none','later','earlier','both','unknown'))`,"ALTER TABLE session_relays ADD COLUMN pending_reply TEXT","ALTER TABLE session_relays ADD COLUMN payload_id TEXT"])a.exec(b)},down:a=>{for(let b of[...aj].reverse())a.exec(`ALTER TABLE session_relays DROP COLUMN ${b}`)}},{version:63,name:"session-relays-delivery-attempt",up:a=>{for(let b of[`ALTER TABLE session_relays ADD COLUMN delivery_state TEXT
1391
+ CHECK (delivery_state IN ('attempting','uncertain'))`,"ALTER TABLE session_relays ADD COLUMN delivery_attempt_id TEXT","ALTER TABLE session_relays ADD COLUMN delivery_owner TEXT","ALTER TABLE session_relays ADD COLUMN delivery_reason TEXT","ALTER TABLE session_relays ADD COLUMN delivery_at INTEGER"])a.exec(b)},down:a=>{for(let b of[...ak].reverse())a.exec(`ALTER TABLE session_relays DROP COLUMN ${b}`)}}];function am(a){!function(a,b){a.exec(`
1474
1392
  CREATE TABLE IF NOT EXISTS schema_version (
1475
1393
  version INTEGER PRIMARY KEY,
1476
1394
  name TEXT NOT NULL,
@@ -1483,7 +1401,90 @@
1483
1401
  INSERT INTO schema_version (version, name, applied_at)
1484
1402
  VALUES (?, ?, ?)
1485
1403
  `).run(b.version,b.name,Date.now())});h?d.immediate():d(),h=!1,console.log(`Migration ${b.version} applied successfully`)}catch(c){let a=c instanceof Error?c.message:String(c);throw console.error(`Migration ${b.version} failed:`,a),Error(`Migration ${b.version} (${b.name}) failed: ${a}`)}}let j=q(a);!function(a,b){if(a.memory||"string"!=typeof a.name||""===a.name||":memory:"===a.name)return;let{dir:c,dbFileName:d}=n(a.name);if(k().existsSync(c))try{let a=o(c,d),e=`${a}.${i().randomBytes(4).toString("hex")}${m}`;try{k().writeFileSync(e,`${b}
1486
- `,{mode:384,flag:"wx"}),k().chmodSync(e,384),k().renameSync(e,a)}catch(a){try{k().rmSync(e,{force:!0})}catch{}throw a}}catch(b){let a=b instanceof Error?b.message:String(b);console.warn(`Could not record the last completed schema version in ${c}: ${a}`)}}(a,j),console.log(`All migrations completed. Current version: ${j}`)}(a,ak)}function am(a,b){!function(a,b,c){let d=q(a);if(c>=d)return console.log("No rollback needed");for(let e of(console.log(`Rolling back from version ${d} to ${c}...`),b.filter(a=>a.version>c&&a.version<=d).sort((a,b)=>b.version-a.version))){if(!e.down)throw Error(`Cannot rollback migration ${e.version} (${e.name}): no down() function defined`);console.log(`Rolling back migration ${e.version}: ${e.name}...`);try{a.transaction(()=>{e.down(a),a.prepare("DELETE FROM schema_version WHERE version = ?").run(e.version)})(),console.log(`Migration ${e.version} rolled back`)}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`Rollback ${e.version} failed:`,a),Error(`Rollback of migration ${e.version} failed: ${a}`)}}console.log(`Rollback completed. Current version: ${q(a)}`)}(a,ak,b)}},79827:(a,b,c)=>{c.d(b,{Mj:()=>i,ZH:()=>k,gF:()=>h,qQ:()=>m,sw:()=>l});let d=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,e=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,f=/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/,g=/^[A-Za-z0-9][A-Za-z0-9._-]{0,31}$/,h=Object.freeze({agent:null,providerId:null,modelId:null,variant:null});function i(a){return!!a&&!!(a.agent||a.providerId||a.modelId||a.variant)}function j(a,b){if("string"!=typeof a)return null;let c=a.trim();return 0===c.length?null:b.test(c)?c:null}function k(a){if("object"!=typeof a||null===a)return{...h};let b=j(a.providerId,e),c=j(a.modelId,f),i=null!==b&&null!==c;return{agent:j(a.agent,d),providerId:i?b:null,modelId:i?c:null,variant:j(a.variant,g)}}function l(a){return a?.providerId&&a.modelId?`${a.providerId}/${a.modelId}`:null}let m={connected:!1,providers:[],agents:[]}},87009:(a,b,c)=>{function d(a){return{id:a.id,taskId:a.task_id,event:a.event,fromStatus:a.from_status,toStatus:a.to_status,payload:null===a.payload_json?null:JSON.parse(a.payload_json),createdAt:new Date(a.created_at)}}function e(a,b){let c=void 0===b.payload||0===Object.keys(b.payload).length?null:JSON.stringify(b.payload);return Number(a.prepare(`
1404
+ `,{mode:384,flag:"wx"}),k().chmodSync(e,384),k().renameSync(e,a)}catch(a){try{k().rmSync(e,{force:!0})}catch{}throw a}}catch(b){let a=b instanceof Error?b.message:String(b);console.warn(`Could not record the last completed schema version in ${c}: ${a}`)}}(a,j),console.log(`All migrations completed. Current version: ${j}`)}(a,al)}function an(a,b){!function(a,b,c){let d=q(a);if(c>=d)return console.log("No rollback needed");for(let e of(console.log(`Rolling back from version ${d} to ${c}...`),b.filter(a=>a.version>c&&a.version<=d).sort((a,b)=>b.version-a.version))){if(!e.down)throw Error(`Cannot rollback migration ${e.version} (${e.name}): no down() function defined`);console.log(`Rolling back migration ${e.version}: ${e.name}...`);try{a.transaction(()=>{e.down(a),a.prepare("DELETE FROM schema_version WHERE version = ?").run(e.version)})(),console.log(`Migration ${e.version} rolled back`)}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`Rollback ${e.version} failed:`,a),Error(`Rollback of migration ${e.version} failed: ${a}`)}}console.log(`Rollback completed. Current version: ${q(a)}`)}(a,al,b)}},34129:(a,b,c)=>{c.d(b,{$$:()=>n,CR:()=>h,DP:()=>i,GF:()=>o,Ud:()=>m,Xm:()=>r,_O:()=>k,j2:()=>l,jf:()=>q,kx:()=>j,ul:()=>p});var d=c(55511),e=c(87374);let f="id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at, error";function g(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id??a.cli_tool_id,message:a.message,delayMs:a.delay_ms,scheduledSendTime:a.scheduled_send_time,status:a.status,createdAt:a.created_at,sentAt:a.sent_at,error:a.error??null}}function h(a,b){let c=(0,d.randomUUID)(),e=Date.now(),f=e+b.delayMs,g=b.instanceId??b.cliToolId;return a.prepare(`
1405
+ INSERT INTO timer_messages (id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at)
1406
+ VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?, NULL)
1407
+ `).run(c,b.worktreeId,b.cliToolId,g,b.message,b.delayMs,f,e),{id:c,worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:g,message:b.message,delayMs:b.delayMs,scheduledSendTime:f,status:"pending",createdAt:e,sentAt:null,error:null}}function i(a,b,c){let{before:d,limit:h=e.XS}=c??{},i=`SELECT ${f} FROM timer_messages WHERE worktree_id = ?`,j=[b];return void 0!==d&&(i+=" AND created_at < ?",j.push(d)),i+=" ORDER BY created_at DESC LIMIT ?",j.push(h+1),a.prepare(i).all(...j).map(g)}function j(a,b){let c=a.prepare(`
1408
+ SELECT ${f}
1409
+ FROM timer_messages
1410
+ WHERE id = ?
1411
+ `).get(b);return c?g(c):void 0}function k(a){return a.prepare(`
1412
+ SELECT ${f}
1413
+ FROM timer_messages
1414
+ WHERE status = 'pending'
1415
+ ORDER BY scheduled_send_time ASC
1416
+ `).all().map(g)}function l(a,b,c,d,e){let f=["status = ?"],g=[c];void 0!==d&&(f.push("sent_at = ?"),g.push(d)),void 0!==e&&(f.push("error = ?"),g.push(e)),g.push(b),a.prepare(`UPDATE timer_messages SET ${f.join(", ")} WHERE id = ?`).run(...g)}function m(a,b){return a.prepare(`
1417
+ UPDATE timer_messages SET status = 'cancelled' WHERE id = ? AND status = 'pending'
1418
+ `).run(b).changes>0}function n(a,b){return a.prepare(`
1419
+ UPDATE timer_messages SET status = 'cancelled' WHERE worktree_id = ? AND status = 'pending'
1420
+ `).run(b).changes}function o(a,b){return a.prepare(`
1421
+ SELECT COUNT(*) as count FROM timer_messages WHERE worktree_id = ? AND status = 'pending'
1422
+ `).get(b).count}function p(a,b){let c=Date.now()-24*b*36e5;return a.prepare(`
1423
+ DELETE FROM timer_messages
1424
+ WHERE status NOT IN ('pending', 'sending')
1425
+ AND created_at < ?
1426
+ `).run(c).changes}function q(a,b){return a.prepare(`
1427
+ DELETE FROM timer_messages
1428
+ WHERE worktree_id = ?
1429
+ AND status NOT IN ('pending', 'sending')
1430
+ `).run(b).changes}function r(a){return a.prepare(`
1431
+ UPDATE timer_messages SET status = 'failed', error = ? WHERE status = 'sending'
1432
+ `).run("Recovered from a stuck 'sending' state after a server restart.").changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>k,Se:()=>l,VP:()=>g,Zj:()=>o,gn:()=>m,jA:()=>j,jJ:()=>p,rC:()=>n,s6:()=>f,th:()=>q});var d=c(55511);let e={prompt:"enabled_prompt",failure:"enabled_prompt",completion:"enabled_completion"},f={enabledPrompt:!0,enabledCompletion:!1},g=1;function h(a){return{id:a.id,endpoint:a.endpoint,keys:{p256dh:a.p256dh,auth:a.auth},deviceLabel:a.device_label,enabledPrompt:1===a.enabled_prompt,enabledCompletion:1===a.enabled_completion,locale:a.locale,defaultsVersion:a.defaults_version,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}let i=`
1433
+ id, endpoint, p256dh, auth, device_label,
1434
+ enabled_prompt, enabled_completion, locale, defaults_version, created_at, updated_at
1435
+ `;function j(a,b){let c=Date.now(),e=b.deviceLabel??null,h=b.locale??null;a.prepare(`
1436
+ INSERT INTO push_subscriptions (
1437
+ id, endpoint, p256dh, auth, device_label,
1438
+ enabled_prompt, enabled_completion, locale, defaults_version, created_at, updated_at
1439
+ )
1440
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
1441
+ ON CONFLICT(endpoint) DO UPDATE SET
1442
+ p256dh = excluded.p256dh,
1443
+ auth = excluded.auth,
1444
+ device_label = excluded.device_label,
1445
+ locale = COALESCE(excluded.locale, push_subscriptions.locale),
1446
+ updated_at = excluded.updated_at
1447
+ `).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,+!!f.enabledPrompt,+!!f.enabledCompletion,h,g,c,c);let i=k(a,b.endpoint);if(!i)throw Error("Failed to persist push subscription");return i}function k(a,b){let c=a.prepare(`SELECT ${i} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?h(c):null}function l(a){return a.prepare(`SELECT ${i} FROM push_subscriptions ORDER BY created_at ASC`).all().map(h)}function m(a,b){let c=e[b];return a.prepare(`SELECT ${i} FROM push_subscriptions WHERE ${c} = 1 ORDER BY created_at ASC`).all().map(h)}function n(a,b){let c=e[b];return a.prepare(`SELECT COUNT(*) AS total FROM push_subscriptions WHERE ${c} = 1`).get().total}function o(a){return a.defaultsVersion<g}function p(a,b,c){let d=["updated_at = ?"],e=[Date.now()];return void 0!==c.enabledPrompt&&(d.push("enabled_prompt = ?"),e.push(+!!c.enabledPrompt)),void 0!==c.enabledCompletion&&(d.push("enabled_completion = ?"),e.push(+!!c.enabledCompletion)),c.acknowledgeDefaultsNotice&&(d.push("defaults_version = ?"),e.push(g)),e.push(b),a.prepare(`UPDATE push_subscriptions SET ${d.join(", ")} WHERE endpoint = ?`).run(...e),k(a,b)}function q(a,b){return a.prepare("DELETE FROM push_subscriptions WHERE endpoint = ?").run(b).changes>0}},48524:(a,b,c)=>{c.d(b,{EL:()=>g,Hi:()=>e,MH:()=>r,UT:()=>l,Vk:()=>n,Zj:()=>q,__:()=>p,gg:()=>m,sA:()=>f,uB:()=>i,xZ:()=>o});var d=c(55511);let e=["pending","running","waiting_input","verifying","succeeded","failed","not_started","cancelled"],f=["succeeded","failed","not_started","cancelled"],g=["running","waiting_input","verifying"],h=[...g,"failed","not_started"];function i(a){return f.includes(a)}let j=`
1448
+ id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
1449
+ status, last_verification_run_id, created_at, updated_at, started_at, finished_at
1450
+ `;function k(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id,title:a.title,goal:a.goal,contractPath:a.contract_path,contract:JSON.parse(a.contract_json),status:a.status,lastVerificationRunId:a.last_verification_run_id,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),startedAt:null===a.started_at?null:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function l(a,b){let c=Date.now(),e=(0,d.randomUUID)(),f=b.status??"pending";a.prepare(`
1451
+ INSERT INTO tasks (
1452
+ id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
1453
+ status, last_verification_run_id, created_at, updated_at, started_at, finished_at
1454
+ )
1455
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?, ?, ?, NULL)
1456
+ `).run(e,b.worktreeId,b.cliToolId,b.instanceId??null,b.contract.title,b.contract.goal,b.contractPath??null,JSON.stringify(b.contract),f,c,c,"pending"===f?null:c);let g=m(a,e);if(!g)throw Error("Failed to persist task");return g}function m(a,b){let c=a.prepare(`SELECT ${j} FROM tasks WHERE id = ?`).get(b);return c?k(c):null}function n(a,b,c=20){return a.prepare(`
1457
+ SELECT ${j} FROM tasks
1458
+ WHERE worktree_id = ?
1459
+ ORDER BY created_at DESC, rowid DESC
1460
+ LIMIT ?
1461
+ `).all(b,c).map(k)}function o(a,b,c,d={}){let e=Date.now();if(0===a.prepare(`
1462
+ UPDATE tasks
1463
+ SET status = ?,
1464
+ updated_at = ?,
1465
+ started_at = CASE WHEN ? = 'pending' THEN started_at ELSE COALESCE(started_at, ?) END,
1466
+ finished_at = CASE WHEN ? = 1 THEN ? ELSE finished_at END,
1467
+ last_verification_run_id = COALESCE(?, last_verification_run_id)
1468
+ WHERE id = ?
1469
+ `).run(c,e,c,e,+!!i(c),e,d.lastVerificationRunId??null,b).changes)throw Error(`Task ${b} not found`);return m(a,b)}function p(a,b,c,d){let e=["worktree_id = ?"],f=[b];void 0!==c&&(e.push("cli_tool_id = ?"),f.push(c)),void 0!==d&&(e.push("instance_id = ?"),f.push(d));let h=g.map(()=>"?").join(", "),i=a.prepare(`
1470
+ SELECT ${j} FROM tasks
1471
+ WHERE ${e.join(" AND ")} AND status IN (${h})
1472
+ ORDER BY updated_at DESC, created_at DESC, rowid DESC
1473
+ LIMIT 1
1474
+ `).get(...f,...g);return i?k(i):null}function q(a,b){let c=h.map(()=>"?").join(", "),d=a.prepare(`
1475
+ SELECT ${j} FROM tasks
1476
+ WHERE worktree_id = ? AND status IN (${c})
1477
+ ORDER BY updated_at DESC, created_at DESC, rowid DESC
1478
+ LIMIT 1
1479
+ `).get(b,...h);return d?k(d):null}function r(a,b,c,d){let e=d===c,f=g.map(()=>"?").join(", "),h=a.prepare(`
1480
+ SELECT ${j} FROM tasks
1481
+ WHERE worktree_id = ?
1482
+ AND cli_tool_id = ?
1483
+ AND (instance_id = ? OR (instance_id IS NULL AND ?))
1484
+ AND status IN (${f})
1485
+ ORDER BY updated_at DESC, created_at DESC, rowid DESC
1486
+ LIMIT 1
1487
+ `).get(b,c,d,+!!e,...g);return h?k(h):null}},79827:(a,b,c)=>{c.d(b,{Mj:()=>i,ZH:()=>k,gF:()=>h,qQ:()=>m,sw:()=>l});let d=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,e=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,f=/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/,g=/^[A-Za-z0-9][A-Za-z0-9._-]{0,31}$/,h=Object.freeze({agent:null,providerId:null,modelId:null,variant:null});function i(a){return!!a&&!!(a.agent||a.providerId||a.modelId||a.variant)}function j(a,b){if("string"!=typeof a)return null;let c=a.trim();return 0===c.length?null:b.test(c)?c:null}function k(a){if("object"!=typeof a||null===a)return{...h};let b=j(a.providerId,e),c=j(a.modelId,f),i=null!==b&&null!==c;return{agent:j(a.agent,d),providerId:i?b:null,modelId:i?c:null,variant:j(a.variant,g)}}function l(a){return a?.providerId&&a.modelId?`${a.providerId}/${a.modelId}`:null}let m={connected:!1,providers:[],agents:[]}},87009:(a,b,c)=>{function d(a){return{id:a.id,taskId:a.task_id,event:a.event,fromStatus:a.from_status,toStatus:a.to_status,payload:null===a.payload_json?null:JSON.parse(a.payload_json),createdAt:new Date(a.created_at)}}function e(a,b){let c=void 0===b.payload||0===Object.keys(b.payload).length?null:JSON.stringify(b.payload);return Number(a.prepare(`
1487
1488
  INSERT INTO task_events (task_id, event, from_status, to_status, payload_json, created_at)
1488
1489
  VALUES (?, ?, ?, ?, ?, ?)
1489
1490
  `).run(b.taskId,b.event,b.fromStatus,b.toStatus,c,b.createdAt).lastInsertRowid)}function f(a,b,c=200){return a.prepare(`
@@ -1492,7 +1493,7 @@
1492
1493
  WHERE task_id = ?
1493
1494
  ORDER BY created_at ASC, id ASC
1494
1495
  LIMIT ?
1495
- `).all(b,c).map(d)}c.d(b,{H:()=>f,P:()=>e})},87374:(a,b,c)=>{c.d(b,{Dr:()=>i,HR:()=>h,Ky:()=>f,XS:()=>e,ms:()=>g,u8:()=>d}),Array.from({length:Math.floor(104)+1},(a,b)=>3e5+3e5*b);let d=5,e=50,f=100,g=1e4,h={PENDING:"pending",SENDING:"sending",SENT:"sent",FAILED:"failed",CANCELLED:"cancelled",NO_SESSION:"no_session"};function i(a){return"number"==typeof a&&a>=3e5&&a<=315e5&&a%3e5==0}},88807:(a,b,c)=>{c.r(b),c.d(b,{closeDbInstance:()=>q,getDbInstance:()=>p});var d=c(33873),e=c.n(d),f=c(55741),g=c(79646),h=c(87550),i=c.n(h);let j=!1;function k(a){return a instanceof Error&&"ERR_DLOPEN_FAILED"===a.code&&a.message.includes("NODE_MODULE_VERSION")}function l(a,b){let c=["better-sqlite3 could not be loaded: it was built for a different Node.js version.","This usually happens after switching Node.js versions (nvm, fnm, Homebrew, ...).","",`Automatic recovery failed: ${a}`,"","How to fix it manually:"];return b?c.push(" The install directory is not writable by the current user, so the addon"," cannot be rebuilt in place. Do not re-run this with sudo — root-owned"," files there will break future installs and updates.",""," Either switch back to the Node.js version CommandMate was installed with:",` node -v (currently ${process.version}, NODE_MODULE_VERSION ${process.versions.modules})`,""," Or reinstall CommandMate under a Node.js version manager, which keeps"," global packages in a user-owned directory:"," nvm use <version> && npm install -g commandmate"):c.push(` 1. cd ${process.cwd()}`," 2. npm rebuild better-sqlite3"," 3. Start CommandMate again",""," If that fails, reinstalling picks up the current Node.js version:"," npm install -g commandmate"),c.join("\n")}var m=c(93636),n=c(87447);let o=null;function p(){if(!o){let a=(0,n._$)().CM_DB_PATH,b=c(29021),d=e().dirname(a);b.existsSync(d)||b.mkdirSync(d,{recursive:!0,mode:448});let h=function(a){try{return new(i())(a)}catch(c){if(!k(c))throw c;if(j)throw Error(l("a rebuild was already attempted in this process.",!1));j=!0,console.error("[commandmate] better-sqlite3 was built for a different Node.js version.\n[commandmate] Rebuilding it automatically — this can take a few minutes...");let b=function(){let a=(0,g.spawnSync)("npm",["rebuild","better-sqlite3"],{cwd:process.cwd(),encoding:"utf-8",timeout:3e5,env:{...process.env,PATH:`${e().dirname(process.execPath)}${e().delimiter}${process.env.PATH??""}`}}),b=`${a.stdout??""}${a.stderr??""}`;return a.error||0!==a.status?{success:!1,permissionDenied:/EACCES|permission denied/i.test(b),output:b}:{success:!0,permissionDenied:!1,output:b}}();if(!b.success)throw Error(l("npm rebuild better-sqlite3 failed.",b.permissionDenied));console.error("[commandmate] Rebuild succeeded. Continuing startup.");try{return new(i())(a)}catch(a){if(k(a))throw Error(l("the addon still reports a version mismatch after rebuilding.",!1));throw a}}}(a);h.pragma("foreign_keys = ON"),h.pragma("journal_mode = WAL"),h.pragma("busy_timeout = 5000");try{(0,f.vI)(h)}catch(a){throw h.close(),a}o=h,(0,m.fe)(h)}return o}function q(){o&&((0,m.zZ)(),o.close(),o=null)}},95506:(a,b,c)=>{c.d(b,{Q2:()=>h,fX:()=>i,l0:()=>g,r3:()=>j,xJ:()=>f});var d=c(27923);function e(a){return void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get()}function f(a,b,c,e=Date.now()){(0,d.b$)(a,b,c,e)}function g(a,b){if(!b)return null;if(a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return b;if(!e(a))return null;let c=a.prepare("SELECT worktree_id FROM worktree_aliases WHERE old_id = ?").get(b);return c&&a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(c.worktree_id)?c.worktree_id:null}function h(a,b){return e(a)?a.prepare(`SELECT old_id, worktree_id, created_at
1496
+ `).all(b,c).map(d)}c.d(b,{H:()=>f,P:()=>e})},87374:(a,b,c)=>{c.d(b,{Dr:()=>i,HR:()=>h,Ky:()=>f,XS:()=>e,ms:()=>g,u8:()=>d}),Array.from({length:Math.floor(104)+1},(a,b)=>3e5+3e5*b);let d=5,e=50,f=100,g=1e4,h={PENDING:"pending",SENDING:"sending",SENT:"sent",FAILED:"failed",CANCELLED:"cancelled",NO_SESSION:"no_session"};function i(a){return"number"==typeof a&&a>=3e5&&a<=315e5&&a%3e5==0}},88807:(a,b,c)=>{c.r(b),c.d(b,{TEST_DB_ROOT_ENV:()=>t,assertTestDatabasePathIsolated:()=>u,closeDbInstance:()=>w,getDbInstance:()=>v,isInsideVitestWorker:()=>q});var d=c(33873),e=c.n(d),f=c(28445),g=c(79646),h=c(87550),i=c.n(h);let j=!1;function k(a){return a instanceof Error&&"ERR_DLOPEN_FAILED"===a.code&&a.message.includes("NODE_MODULE_VERSION")}function l(a,b){let c=["better-sqlite3 could not be loaded: it was built for a different Node.js version.","This usually happens after switching Node.js versions (nvm, fnm, Homebrew, ...).","",`Automatic recovery failed: ${a}`,"","How to fix it manually:"];return b?c.push(" The install directory is not writable by the current user, so the addon"," cannot be rebuilt in place. Do not re-run this with sudo — root-owned"," files there will break future installs and updates.",""," Either switch back to the Node.js version CommandMate was installed with:",` node -v (currently ${process.version}, NODE_MODULE_VERSION ${process.versions.modules})`,""," Or reinstall CommandMate under a Node.js version manager, which keeps"," global packages in a user-owned directory:"," nvm use <version> && npm install -g commandmate"):c.push(` 1. cd ${process.cwd()}`," 2. npm rebuild better-sqlite3"," 3. Start CommandMate again",""," If that fails, reinstalling picks up the current Node.js version:"," npm install -g commandmate"),c.join("\n")}var m=c(93636),n=c(87447),o=c(7956);let p=null;function q(){let a=globalThis.__vitest_worker__;return"object"==typeof a&&null!==a}function r(a,b){return!!b||"test"===(a.NODE_ENV??"").trim()}function s(a){let b=c(29021),d=e().resolve(a),f=[];for(;!b.existsSync(d);){let a=e().dirname(d);if(a===d)break;f.unshift(e().basename(d)),d=a}try{return e().join(b.realpathSync(d),...f)}catch{return e().resolve(a)}}let t="CM_TEST_DB_ROOT";function u(a,b=process.env,d=c(21820).tmpdir(),f=q()){if(!r(b,f))return;let g=e().resolve(a),h=[d,b[t]].filter(a=>"string"==typeof a&&""!==a.trim()),i=s(g);if(!h.some(a=>(0,o.ZU)(i,s(a))))throw Error(`[Issue #4086] Refusing to open database ${g} under test: it is outside the temp directory and outside ${t} (${h.join(", ")}). tests/setup.ts points CM_DB_PATH at a per-process test database; a test that names its own database must create it under os.tmpdir().`)}function v(){if(!p){let a=(0,n._$)().CM_DB_PATH;u(a);let b=c(29021),d=e().dirname(a);b.existsSync(d)||b.mkdirSync(d,{recursive:!0,mode:448});let h=function(a){try{return new(i())(a)}catch(c){if(!k(c))throw c;if(j)throw Error(l("a rebuild was already attempted in this process.",!1));j=!0,console.error("[commandmate] better-sqlite3 was built for a different Node.js version.\n[commandmate] Rebuilding it automatically — this can take a few minutes...");let b=function(){let a=(0,g.spawnSync)("npm",["rebuild","better-sqlite3"],{cwd:process.cwd(),encoding:"utf-8",timeout:3e5,env:{...process.env,PATH:`${e().dirname(process.execPath)}${e().delimiter}${process.env.PATH??""}`}}),b=`${a.stdout??""}${a.stderr??""}`;return a.error||0!==a.status?{success:!1,permissionDenied:/EACCES|permission denied/i.test(b),output:b}:{success:!0,permissionDenied:!1,output:b}}();if(!b.success)throw Error(l("npm rebuild better-sqlite3 failed.",b.permissionDenied));console.error("[commandmate] Rebuild succeeded. Continuing startup.");try{return new(i())(a)}catch(a){if(k(a))throw Error(l("the addon still reports a version mismatch after rebuilding.",!1));throw a}}}(a);h.pragma("foreign_keys = ON"),h.pragma("journal_mode = WAL"),h.pragma("busy_timeout = 5000");try{(0,f.vI)(h)}catch(a){throw h.close(),a}p=h,r(process.env,q())&&(globalThis.__commandmateTestDbClosers??=new Set).add(w),(0,m.fe)(h)}return p}function w(){p&&((0,m.zZ)(),p.close(),p=null)}},95506:(a,b,c)=>{c.d(b,{Q2:()=>h,fX:()=>i,l0:()=>g,r3:()=>j,xJ:()=>f});var d=c(27923);function e(a){return void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get()}function f(a,b,c,e=Date.now()){(0,d.b$)(a,b,c,e)}function g(a,b){if(!b)return null;if(a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return b;if(!e(a))return null;let c=a.prepare("SELECT worktree_id FROM worktree_aliases WHERE old_id = ?").get(b);return c&&a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(c.worktree_id)?c.worktree_id:null}function h(a,b){return e(a)?a.prepare(`SELECT old_id, worktree_id, created_at
1496
1497
  FROM worktree_aliases
1497
1498
  WHERE worktree_id = ?
1498
1499
  ORDER BY created_at DESC, old_id ASC`).all(b).map(a=>({oldId:a.old_id,worktreeId:a.worktree_id,createdAt:a.created_at})):[]}function i(a){return e(a)?a.prepare(`SELECT old_id, worktree_id, created_at