commandmate 0.22.1 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (484) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +86 -86
  3. package/.next/app-path-routes-manifest.json +17 -17
  4. package/.next/build-manifest.json +2 -2
  5. package/.next/prerender-manifest.json +9 -9
  6. package/.next/required-server-files.json +1 -1
  7. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  9. package/.next/server/app/api/app/update-check/route.js +1 -1
  10. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/assistant/conversation/route.js +1 -1
  12. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  13. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  15. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  16. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/messages/route.js +1 -1
  18. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  19. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/session/route.js +1 -1
  21. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/start/route.js +1 -1
  24. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/terminal/route.js +3 -3
  27. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/tools/route.js +1 -1
  30. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/daily-summary/route.js +1 -1
  36. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  37. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  39. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  40. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  42. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  43. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  45. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  46. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/external-apps/route.js +1 -1
  48. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  49. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/fs/browse/route.js +1 -1
  51. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
  52. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/fs/recent-paths/route.js +1 -1
  54. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
  55. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
  56. package/.next/server/app/api/hooks/agent-event/route.js +1 -1
  57. package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
  58. package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/hooks/claude-done/route.js +1 -1
  60. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  61. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/hooks/permission-request/route.js +1 -1
  63. package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
  64. package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
  65. package/.next/server/app/api/metrics/vibe/route.js +1 -1
  66. package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
  67. package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  70. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  71. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/push/vapid/route.js +1 -1
  73. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  74. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  76. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  77. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  79. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  82. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  85. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/clone/route.js +1 -1
  88. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  91. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/restore/route.js +1 -1
  94. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  95. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/route.js +1 -1
  97. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/scan/route.js +1 -1
  100. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  101. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  102. package/.next/server/app/api/repositories/sync/route.js +1 -1
  103. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  104. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/repositories/validate-path/route.js +1 -1
  106. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
  107. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/sidebar/group-order/route.js +1 -1
  109. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  110. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  111. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  112. package/.next/server/app/api/skills/installations/route.js +1 -1
  113. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
  114. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
  115. package/.next/server/app/api/skills/operations/route.js +1 -1
  116. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
  117. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
  118. package/.next/server/app/api/skills/reindex/route.js +1 -1
  119. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
  120. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
  121. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -4
  124. package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  125. package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/tasks/[taskId]/route.js +1 -4
  127. package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
  128. package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/templates/[id]/route.js +1 -1
  130. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  131. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/templates/route.js +1 -1
  133. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  134. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/todos/route.js +1 -1
  136. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  137. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
  139. package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
  140. package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/verification/runs/route.js +1 -1
  142. package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
  143. package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  146. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  149. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  152. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
  154. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  155. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  158. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  163. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  167. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  238. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +3 -3
  250. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  257. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  265. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
  271. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  274. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  275. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  276. package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
  277. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
  286. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  316. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  317. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
  319. package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  322. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  328. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  331. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  332. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  333. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  334. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  335. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  336. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  337. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  338. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  339. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  340. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  341. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  343. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  344. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  345. package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -4
  346. package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
  347. package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
  348. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
  349. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
  350. package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
  351. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
  352. package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
  353. package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
  354. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  355. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  356. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  357. package/.next/server/app/api/worktrees/route.js +1 -1
  358. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  359. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  360. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  361. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  362. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  363. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  364. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  365. package/.next/server/app/page_client-reference-manifest.js +1 -1
  366. package/.next/server/app/proxy/[...path]/route.js +1 -1
  367. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  368. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  369. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  370. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  371. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  372. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  373. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
  374. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  375. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  376. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  377. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  378. package/.next/server/app/worktrees/[id]/page.js +2 -2
  379. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  380. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  381. package/.next/server/app/worktrees/[id]/terminal/page.js +1 -1
  382. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  383. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  384. package/.next/server/app-paths-manifest.json +17 -17
  385. package/.next/server/chunks/1029.js +1 -1
  386. package/.next/server/chunks/1068.js +1 -1
  387. package/.next/server/chunks/2119.js +1 -1
  388. package/.next/server/chunks/2404.js +1 -1
  389. package/.next/server/chunks/2445.js +1 -1
  390. package/.next/server/chunks/2546.js +1 -1
  391. package/.next/server/chunks/3241.js +1 -0
  392. package/.next/server/chunks/3417.js +1 -1
  393. package/.next/server/chunks/406.js +10 -6
  394. package/.next/server/chunks/4444.js +1 -1
  395. package/.next/server/chunks/5959.js +4 -5
  396. package/.next/server/chunks/5998.js +1 -12
  397. package/.next/server/chunks/6130.js +1 -1
  398. package/.next/server/chunks/6274.js +3 -3
  399. package/.next/server/chunks/6401.js +1 -1
  400. package/.next/server/chunks/6781.js +1 -0
  401. package/.next/server/chunks/7458.js +6 -0
  402. package/.next/server/chunks/{3753.js → 7970.js} +57 -32
  403. package/.next/server/chunks/8536.js +1 -1
  404. package/.next/server/chunks/8807.js +180 -127
  405. package/.next/server/chunks/9058.js +1 -1
  406. package/.next/server/chunks/9067.js +1 -1
  407. package/.next/server/chunks/9360.js +1 -1
  408. package/.next/server/chunks/9687.js +2 -2
  409. package/.next/server/middleware-manifest.json +5 -5
  410. package/.next/server/pages/500.html +1 -1
  411. package/.next/server/server-reference-manifest.json +1 -1
  412. package/.next/server/src/middleware.js.map +1 -1
  413. package/.next/static/chunks/{6488-63dacfbab082ca8d.js → 6488-95ba9d24a76f0cc5.js} +1 -1
  414. package/.next/static/chunks/app/worktrees/[id]/{page-c1be93f2595d0803.js → page-966a451ae7b0903a.js} +1 -1
  415. package/.next/trace +12 -12
  416. package/dist/cli/docs/agent-operations.d.ts +1 -1
  417. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  418. package/dist/cli/docs/agent-operations.js +5 -1
  419. package/dist/cli/utils/api-client.d.ts.map +1 -1
  420. package/dist/cli/utils/api-client.js +9 -2
  421. package/dist/cli/utils/server-url.d.ts +23 -0
  422. package/dist/cli/utils/server-url.d.ts.map +1 -1
  423. package/dist/cli/utils/server-url.js +33 -0
  424. package/dist/server/src/config/log-config.js +10 -1
  425. package/dist/server/src/config/safe-directory.js +103 -0
  426. package/dist/server/src/config/system-directories.js +74 -9
  427. package/dist/server/src/lib/cli-tools/antigravity.js +19 -2
  428. package/dist/server/src/lib/cli-tools/codex.js +95 -1
  429. package/dist/server/src/lib/cli-tools/copilot.js +30 -1
  430. package/dist/server/src/lib/cli-tools/gemini.js +28 -2
  431. package/dist/server/src/lib/cli-tools/opencode.js +51 -2
  432. package/dist/server/src/lib/git/git-default-branch.js +59 -0
  433. package/dist/server/src/lib/hooks/agent-event-service.js +205 -0
  434. package/dist/server/src/lib/hooks/agent-event-types.js +7 -86
  435. package/dist/server/src/lib/hooks/hook-settings-generator.js +26 -11
  436. package/dist/server/src/lib/hooks/permission-decision-service.js +269 -0
  437. package/dist/server/src/lib/hooks/sources/abstain.js +78 -0
  438. package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +372 -0
  439. package/dist/server/src/lib/hooks/sources/antigravity/source.js +225 -0
  440. package/dist/server/src/lib/hooks/sources/antigravity/tool-id.js +16 -0
  441. package/dist/server/src/lib/hooks/sources/claude/source.js +143 -0
  442. package/dist/server/src/lib/hooks/sources/claude/tool-id.js +18 -0
  443. package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +465 -0
  444. package/dist/server/src/lib/hooks/sources/codex/source.js +138 -0
  445. package/dist/server/src/lib/hooks/sources/codex/tool-id.js +15 -0
  446. package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +473 -0
  447. package/dist/server/src/lib/hooks/sources/copilot/source.js +210 -0
  448. package/dist/server/src/lib/hooks/sources/copilot/tool-id.js +15 -0
  449. package/dist/server/src/lib/hooks/sources/define-source.js +169 -0
  450. package/dist/server/src/lib/hooks/sources/event-mapper.js +157 -0
  451. package/dist/server/src/lib/hooks/sources/gemini/event-vocabulary.js +102 -0
  452. package/dist/server/src/lib/hooks/sources/gemini/settings-generator.js +315 -0
  453. package/dist/server/src/lib/hooks/sources/gemini/shared-config-tree.js +103 -0
  454. package/dist/server/src/lib/hooks/sources/gemini/source.js +151 -0
  455. package/dist/server/src/lib/hooks/sources/gemini/tool-id.js +17 -0
  456. package/dist/server/src/lib/hooks/sources/hook-event-vocabulary.js +111 -0
  457. package/dist/server/src/lib/hooks/sources/index.js +62 -0
  458. package/dist/server/src/lib/hooks/sources/legacy-relay.js +84 -0
  459. package/dist/server/src/lib/hooks/sources/opencode/client.js +299 -0
  460. package/dist/server/src/lib/hooks/sources/opencode/ingest.js +261 -0
  461. package/dist/server/src/lib/hooks/sources/opencode/mappers.js +154 -0
  462. package/dist/server/src/lib/hooks/sources/opencode/payloads.js +189 -0
  463. package/dist/server/src/lib/hooks/sources/opencode/ports.js +295 -0
  464. package/dist/server/src/lib/hooks/sources/opencode/runtime.js +159 -0
  465. package/dist/server/src/lib/hooks/sources/opencode/source.js +250 -0
  466. package/dist/server/src/lib/hooks/sources/opencode/subscription.js +422 -0
  467. package/dist/server/src/lib/hooks/sources/opencode/tool-id.js +14 -0
  468. package/dist/server/src/lib/hooks/sources/opencode/turn-gate.js +193 -0
  469. package/dist/server/src/lib/hooks/sources/pending-decisions.js +127 -0
  470. package/dist/server/src/lib/hooks/sources/registry.js +111 -0
  471. package/dist/server/src/lib/hooks/sources/types.js +46 -0
  472. package/dist/server/src/lib/session/agent-session-lifecycle.js +82 -0
  473. package/dist/server/src/lib/session/claude-session.js +10 -3
  474. package/dist/server/src/lib/tasks/contract-message.js +175 -0
  475. package/dist/server/src/lib/verification/env-clean-gate.js +320 -0
  476. package/dist/server/src/lib/verification/env-snapshot.js +474 -0
  477. package/dist/server/src/lib/verification/gate-runner.js +802 -0
  478. package/dist/server/src/lib/verification/scope-gate.js +402 -0
  479. package/dist/server/src/lib/verification/verify-config.js +281 -0
  480. package/package.json +1 -1
  481. package/scripts/hooks/cmate-agent-event.sh +73 -3
  482. package/.next/server/chunks/8856.js +0 -4
  483. /package/.next/static/{d4vh4O18WEhXs4WbdShIs → wH6K6QNPHSdATFkVoIcy3}/_buildManifest.js +0 -0
  484. /package/.next/static/{d4vh4O18WEhXs4WbdShIs → wH6K6QNPHSdATFkVoIcy3}/_ssgManifest.js +0 -0
@@ -1,34 +1,53 @@
1
- "use strict";exports.id=8807,exports.ids=[8807],exports.modules={23718:(a,b,c)=>{c.d(b,{a1:()=>j,ko:()=>i});var d=c(55511),e=c(33873),f=c.n(e);function g(a){return a.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}let h="worktree";function i(a,b=[]){let c=b instanceof Set?b:new Set(b),e=g(f().basename(a))||h;if(!c.has(e))return e;let j=(0,d.createHash)("sha256").update(a).digest("hex");for(let a=8;a<=j.length;a+=8){let b=`${e}-${j.slice(0,a)}`;if(!c.has(b))return b}for(let a=2;;a++){let b=`${e}-${j}-${a}`;if(!c.has(b))return b}}function j(a,b){if(!a)return!1;let c=g(f().basename(b))||h;if(a===c)return!0;if(!a.startsWith(`${c}-`))return!1;let e=a.slice(c.length+1),i=(0,d.createHash)("sha256").update(b).digest("hex");return!!(e.length>0&&e.length%8==0&&e.length<=i.length&&i.startsWith(e))||/^-[0-9]+$/.test(e.slice(i.length))&&e.startsWith(i)}},28274:(a,b,c)=>{c.d(b,{AC:()=>e,BN:()=>i,Cs:()=>k,m0:()=>h,sB:()=>j,ug:()=>f});var d=c(15194);class e extends Error{constructor(a,b=d.Ab){super(`Worktree ${a} cannot have more than ${b} agent instances`),this.name="AgentInstanceLimitError"}}class f extends Error{constructor(a){super(a),this.name="InvalidAgentInstanceError"}}function g(a){let b=a.cli_tool_id,c=a.alias&&a.alias.length>0?a.alias:(0,d.hR)(a.cli_tool_id)?(0,d.oo)(b):a.cli_tool_id;return{id:a.instance_id,cliTool:b,alias:c,order:a.sort_order}}function h(a,b){return a.prepare(`
1
+ "use strict";exports.id=8807,exports.ids=[8807],exports.modules={23718:(a,b,c)=>{c.d(b,{a1:()=>j,ko:()=>i});var d=c(55511),e=c(33873),f=c.n(e);function g(a){return a.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}let h="worktree";function i(a,b=[]){let c=b instanceof Set?b:new Set(b),e=g(f().basename(a))||h;if(!c.has(e))return e;let j=(0,d.createHash)("sha256").update(a).digest("hex");for(let a=8;a<=j.length;a+=8){let b=`${e}-${j.slice(0,a)}`;if(!c.has(b))return b}for(let a=2;;a++){let b=`${e}-${j}-${a}`;if(!c.has(b))return b}}function j(a,b){if(!a)return!1;let c=g(f().basename(b))||h;if(a===c)return!0;if(!a.startsWith(`${c}-`))return!1;let e=a.slice(c.length+1),i=(0,d.createHash)("sha256").update(b).digest("hex");return!!(e.length>0&&e.length%8==0&&e.length<=i.length&&i.startsWith(e))||/^-[0-9]+$/.test(e.slice(i.length))&&e.startsWith(i)}},28274:(a,b,c)=>{c.d(b,{AC:()=>e,BN:()=>j,Cs:()=>m,NU:()=>o,Uq:()=>n,fs:()=>l,m0:()=>i,sB:()=>k,ug:()=>f});var d=c(15194);class e extends Error{constructor(a,b=d.Ab){super(`Worktree ${a} cannot have more than ${b} agent instances`),this.name="AgentInstanceLimitError"}}class f extends Error{constructor(a){super(a),this.name="InvalidAgentInstanceError"}}function g(a){let b=a.cli_tool_id,c=a.alias&&a.alias.length>0?a.alias:(0,d.hR)(a.cli_tool_id)?(0,d.oo)(b):a.cli_tool_id;return{id:a.instance_id,cliTool:b,alias:c,order:a.sort_order}}function h(a){if(!(0,d.n6)(a.id))throw new f(`Invalid instance id: ${String(a.id)}`);if(!(0,d.hR)(a.cliTool))throw new f(`Invalid CLI tool: ${String(a.cliTool)}`);if("string"==typeof a.alias&&a.alias.length>d.pQ)throw new f(`Alias exceeds ${d.pQ} characters`)}function i(a,b){return a.prepare(`
2
2
  SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
3
3
  FROM agent_instances
4
4
  WHERE worktree_id = ?
5
5
  ORDER BY sort_order ASC, instance_id ASC
6
- `).all(b).map(g)}function i(a,b,c){let d=a.prepare(`
6
+ `).all(b).map(g)}function j(a,b,c){let d=a.prepare(`
7
7
  SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
8
8
  FROM agent_instances
9
9
  WHERE worktree_id = ? AND instance_id = ?
10
- `).get(b,c);return d?g(d):null}function j(a,b,c,e){if(!c)return{ok:!0,cliToolId:e??null};let f=i(a,b,c);return f&&(0,d.hR)(f.cliTool)?e&&e!==f.cliTool?{ok:!1,instanceId:c,rosterCliTool:f.cliTool,requestedCliTool:e}:{ok:!0,cliToolId:f.cliTool}:e?{ok:!0,cliToolId:e}:(0,d.hR)(c)?{ok:!0,cliToolId:c}:{ok:!0,cliToolId:null}}function k(a,b,c){if(c.length>d.Ab)throw new e(b);let g=new Set;for(let a of c){if(!(0,d.n6)(a.id))throw new f(`Invalid instance id: ${String(a.id)}`);if(!(0,d.hR)(a.cliTool))throw new f(`Invalid CLI tool: ${String(a.cliTool)}`);if("string"==typeof a.alias&&a.alias.length>d.pQ)throw new f(`Alias exceeds ${d.pQ} characters`);if(g.has(a.id))throw new f(`Duplicate instance id: ${a.id}`);g.add(a.id)}let h=Date.now();a.transaction(()=>{a.prepare("DELETE FROM agent_instances WHERE worktree_id = ?").run(b);let d=a.prepare(`
10
+ `).get(b,c);return d?g(d):null}function k(a,b,c,e){if(!c)return{ok:!0,cliToolId:e??null};let f=j(a,b,c);return f&&(0,d.hR)(f.cliTool)?e&&e!==f.cliTool?{ok:!1,instanceId:c,rosterCliTool:f.cliTool,requestedCliTool:e}:{ok:!0,cliToolId:f.cliTool}:e?{ok:!0,cliToolId:e}:(0,d.hR)(c)?{ok:!0,cliToolId:c}:{ok:!0,cliToolId:null}}function l(a,b){return a.prepare(`
11
+ SELECT COUNT(*) as count FROM agent_instances WHERE worktree_id = ?
12
+ `).get(b).count}function m(a,b,c){if(c.length>d.Ab)throw new e(b);let g=new Set;for(let a of c){if(h(a),g.has(a.id))throw new f(`Duplicate instance id: ${a.id}`);g.add(a.id)}let i=Date.now();a.transaction(()=>{a.prepare("DELETE FROM agent_instances WHERE worktree_id = ?").run(b);let d=a.prepare(`
11
13
  INSERT INTO agent_instances
12
14
  (worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
13
15
  VALUES (?, ?, ?, ?, ?, ?)
14
- `);c.forEach((a,c)=>{let e=a.alias??"",f=Number.isInteger(a.order)?a.order:c;d.run(b,a.id,a.cliTool,e,f,h)})})()}},34129:(a,b,c)=>{c.d(b,{$$:()=>m,CR:()=>h,DP:()=>i,GF:()=>n,Ud:()=>l,j2:()=>k,jf:()=>o,kx:()=>j});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(`
16
+ `);c.forEach((a,c)=>{let e=a.alias??"",f=Number.isInteger(a.order)?a.order:c;d.run(b,a.id,a.cliTool,e,f,i)})})()}function n(a,b,c){h(c),a.transaction(()=>{let g=l(a,b);if(g>=d.Ab)throw new e(b);if(j(a,b,c.id))throw new f(`Instance ${c.id} already exists for worktree ${b}`);let h=Number.isInteger(c.order)?c.order:g;a.prepare(`
17
+ INSERT INTO agent_instances
18
+ (worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
19
+ VALUES (?, ?, ?, ?, ?, ?)
20
+ `).run(b,c.id,c.cliTool,c.alias??"",h,Date.now())})()}function o(a,b,c){return a.prepare(`
21
+ DELETE FROM agent_instances WHERE worktree_id = ? AND instance_id = ?
22
+ `).run(b,c).changes>0}},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(`
15
23
  INSERT INTO timer_messages (id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at)
16
24
  VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?, NULL)
17
25
  `).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(`
18
26
  SELECT ${f}
19
27
  FROM timer_messages
20
28
  WHERE id = ?
21
- `).get(b);return c?g(c):void 0}function k(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 l(a,b){return a.prepare(`
29
+ `).get(b);return c?g(c):void 0}function k(a){return a.prepare(`
30
+ SELECT ${f}
31
+ FROM timer_messages
32
+ WHERE status = 'pending'
33
+ ORDER BY scheduled_send_time ASC
34
+ `).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(`
22
35
  UPDATE timer_messages SET status = 'cancelled' WHERE id = ? AND status = 'pending'
23
- `).run(b).changes>0}function m(a,b){return a.prepare(`
36
+ `).run(b).changes>0}function n(a,b){return a.prepare(`
24
37
  UPDATE timer_messages SET status = 'cancelled' WHERE worktree_id = ? AND status = 'pending'
25
- `).run(b).changes}function n(a,b){return a.prepare(`
38
+ `).run(b).changes}function o(a,b){return a.prepare(`
26
39
  SELECT COUNT(*) as count FROM timer_messages WHERE worktree_id = ? AND status = 'pending'
27
- `).get(b).count}function o(a,b){return a.prepare(`
40
+ `).get(b).count}function p(a,b){let c=Date.now()-24*b*36e5;return a.prepare(`
41
+ DELETE FROM timer_messages
42
+ WHERE status NOT IN ('pending', 'sending')
43
+ AND created_at < ?
44
+ `).run(c).changes}function q(a,b){return a.prepare(`
28
45
  DELETE FROM timer_messages
29
46
  WHERE worktree_id = ?
30
47
  AND status NOT IN ('pending', 'sending')
31
- `).run(b).changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>h,gn:()=>i,jA:()=>g,jJ:()=>j,th:()=>k});var d=c(55511);function e(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,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}let f=`
48
+ `).run(b).changes}function r(a){return a.prepare(`
49
+ UPDATE timer_messages SET status = 'failed', error = ? WHERE status = 'sending'
50
+ `).run("Recovered from a stuck 'sending' state after a server restart.").changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>h,Se:()=>i,gn:()=>j,jA:()=>g,jJ:()=>k,th:()=>l});var d=c(55511);function e(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,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}let f=`
32
51
  id, endpoint, p256dh, auth, device_label,
33
52
  enabled_prompt, enabled_completion, locale, created_at, updated_at
34
53
  `;function g(a,b){let c=Date.now(),e=b.deviceLabel??null,f=b.locale??null;a.prepare(`
@@ -43,21 +62,21 @@
43
62
  device_label = excluded.device_label,
44
63
  locale = COALESCE(excluded.locale, push_subscriptions.locale),
45
64
  updated_at = excluded.updated_at
46
- `).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,f,c,c);let g=h(a,b.endpoint);if(!g)throw Error("Failed to persist push subscription");return g}function h(a,b){let c=a.prepare(`SELECT ${f} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?e(c):null}function i(a,b){return a.prepare(`SELECT ${f} FROM push_subscriptions WHERE ${"prompt"===b?"enabled_prompt":"enabled_completion"} = 1 ORDER BY created_at ASC`).all().map(e)}function j(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)),e.push(b),a.prepare(`UPDATE push_subscriptions SET ${d.join(", ")} WHERE endpoint = ?`).run(...e),h(a,b)}function k(a,b){return a.prepare("DELETE FROM push_subscriptions WHERE endpoint = ?").run(b).changes>0}},48524:(a,b,c)=>{c.d(b,{MH:()=>o,UT:()=>j,Vk:()=>l,Zj:()=>n,gg:()=>k,xZ:()=>m});var d=c(55511);let e=["succeeded","failed","not_started","cancelled"],f=["running","waiting_input","verifying"],g=[...f,"failed","not_started"],h=`
65
+ `).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,f,c,c);let g=h(a,b.endpoint);if(!g)throw Error("Failed to persist push subscription");return g}function h(a,b){let c=a.prepare(`SELECT ${f} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?e(c):null}function i(a){return a.prepare(`SELECT ${f} FROM push_subscriptions ORDER BY created_at ASC`).all().map(e)}function j(a,b){return a.prepare(`SELECT ${f} FROM push_subscriptions WHERE ${"prompt"===b?"enabled_prompt":"enabled_completion"} = 1 ORDER BY created_at ASC`).all().map(e)}function k(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)),e.push(b),a.prepare(`UPDATE push_subscriptions SET ${d.join(", ")} WHERE endpoint = ?`).run(...e),h(a,b)}function l(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=`
47
66
  id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
48
67
  status, last_verification_run_id, created_at, updated_at, started_at, finished_at
49
- `;function i(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 j(a,b){let c=Date.now(),e=(0,d.randomUUID)(),f=b.status??"pending";a.prepare(`
68
+ `;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(`
50
69
  INSERT INTO tasks (
51
70
  id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
52
71
  status, last_verification_run_id, created_at, updated_at, started_at, finished_at
53
72
  )
54
73
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?, ?, ?, NULL)
55
- `).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=k(a,e);if(!g)throw Error("Failed to persist task");return g}function k(a,b){let c=a.prepare(`SELECT ${h} FROM tasks WHERE id = ?`).get(b);return c?i(c):null}function l(a,b,c=20){return a.prepare(`
56
- SELECT ${h} FROM tasks
74
+ `).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(`
75
+ SELECT ${j} FROM tasks
57
76
  WHERE worktree_id = ?
58
77
  ORDER BY created_at DESC, rowid DESC
59
78
  LIMIT ?
60
- `).all(b,c).map(i)}function m(a,b,c,d={}){let f=Date.now();if(0===a.prepare(`
79
+ `).all(b,c).map(k)}function o(a,b,c,d={}){let e=Date.now();if(0===a.prepare(`
61
80
  UPDATE tasks
62
81
  SET status = ?,
63
82
  updated_at = ?,
@@ -65,20 +84,33 @@
65
84
  finished_at = CASE WHEN ? = 1 THEN ? ELSE finished_at END,
66
85
  last_verification_run_id = COALESCE(?, last_verification_run_id)
67
86
  WHERE id = ?
68
- `).run(c,f,c,f,+!!e.includes(c),f,d.lastVerificationRunId??null,b).changes)throw Error(`Task ${b} not found`);return k(a,b)}function n(a,b){let c=g.map(()=>"?").join(", "),d=a.prepare(`
69
- SELECT ${h} FROM tasks
87
+ `).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(`
88
+ SELECT ${j} FROM tasks
89
+ WHERE ${e.join(" AND ")} AND status IN (${h})
90
+ ORDER BY updated_at DESC, created_at DESC, rowid DESC
91
+ LIMIT 1
92
+ `).get(...f,...g);return i?k(i):null}function q(a,b){let c=h.map(()=>"?").join(", "),d=a.prepare(`
93
+ SELECT ${j} FROM tasks
70
94
  WHERE worktree_id = ? AND status IN (${c})
71
95
  ORDER BY updated_at DESC, created_at DESC, rowid DESC
72
96
  LIMIT 1
73
- `).get(b,...g);return d?i(d):null}function o(a,b,c,d){let e=d===c,g=f.map(()=>"?").join(", "),j=a.prepare(`
74
- SELECT ${h} FROM tasks
97
+ `).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(`
98
+ SELECT ${j} FROM tasks
75
99
  WHERE worktree_id = ?
76
100
  AND cli_tool_id = ?
77
101
  AND (instance_id = ? OR (instance_id IS NULL AND ?))
78
- AND status IN (${g})
102
+ AND status IN (${f})
79
103
  ORDER BY updated_at DESC, created_at DESC, rowid DESC
80
104
  LIMIT 1
81
- `).get(b,c,d,+!!e,...f);return j?i(j):null}},72456:(a,b,c)=>{c.d(b,{vI:()=>Z});var d=c(33873),e=c.n(d);function f(a){try{let b=a.prepare("SELECT MAX(version) as version FROM schema_version").get();return b?.version??0}catch{return 0}}function g(a){let b=c(29021),d=a;for(;d!==e().dirname(d);){let a=e().join(d,".git");if(b.existsSync(a)){let c=b.statSync(a);if(c.isDirectory())return d;if(c.isFile()){let c=b.readFileSync(a,"utf-8").trim().match(/^gitdir:\s*(.+)$/);if(c)return c[1].split("/.git/")[0]}}d=e().dirname(d)}return a}var h=c(90444);let i=[{version:1,name:"initial-schema",up:a=>{(0,h.s4)(a)},down:a=>{a.exec("DROP TABLE IF EXISTS session_states;"),a.exec("DROP TABLE IF EXISTS chat_messages;"),a.exec("DROP TABLE IF EXISTS worktrees;")}},{version:2,name:"add-multi-repo-and-memo-support",up:a=>{a.exec(`
105
+ `).get(b,c,d,+!!e,...g);return h?k(h):null}},72456:(a,b,c)=>{c.d(b,{FT:()=>f,Mj:()=>g,PS:()=>h,Wy:()=>ab,vI:()=>aa,i6:()=>i});var d=c(33873),e=c.n(d);let f=55;function g(a){try{let b=a.prepare("SELECT MAX(version) as version FROM schema_version").get();return b?.version??0}catch{return 0}}function h(a){try{return a.prepare(`
106
+ SELECT version, name, applied_at
107
+ FROM schema_version
108
+ ORDER BY version ASC
109
+ `).all().map(a=>({version:a.version,name:a.name,appliedAt:new Date(a.applied_at)}))}catch{return[]}}function i(a){try{let b=a.prepare(`
110
+ SELECT name FROM sqlite_master
111
+ WHERE type='table' AND name NOT LIKE 'sqlite_%'
112
+ ORDER BY name
113
+ `).all().map(a=>a.name),c=["worktrees","chat_messages","session_states","schema_version","worktree_memos","worktree_todos","external_apps","repositories","clone_jobs","scheduled_executions","execution_logs","daily_reports","report_templates","app_settings","assistant_conversations","assistant_messages","assistant_session_states","agent_instances"].filter(a=>!b.includes(a));if(c.length>0)return console.error("Missing required tables:",c.join(", ")),!1;return!0}catch(a){return console.error("Schema validation failed:",a),!1}}function j(a){let b=c(29021),d=a;for(;d!==e().dirname(d);){let a=e().join(d,".git");if(b.existsSync(a)){let c=b.statSync(a);if(c.isDirectory())return d;if(c.isFile()){let c=b.readFileSync(a,"utf-8").trim().match(/^gitdir:\s*(.+)$/);if(c)return c[1].split("/.git/")[0]}}d=e().dirname(d)}return a}var k=c(90444);let l=[{version:1,name:"initial-schema",up:a=>{(0,k.s4)(a)},down:a=>{a.exec("DROP TABLE IF EXISTS session_states;"),a.exec("DROP TABLE IF EXISTS chat_messages;"),a.exec("DROP TABLE IF EXISTS worktrees;")}},{version:2,name:"add-multi-repo-and-memo-support",up:a=>{a.exec(`
82
114
  ALTER TABLE worktrees ADD COLUMN repository_path TEXT;
83
115
  ALTER TABLE worktrees ADD COLUMN repository_name TEXT;
84
116
  ALTER TABLE worktrees ADD COLUMN memo TEXT;
@@ -92,7 +124,7 @@
92
124
  SET repository_path = ?,
93
125
  repository_name = ?
94
126
  WHERE id = ?
95
- `);for(let a of b){let b=g(a.path),d=e().basename(b);c.run(b,d,a.id)}let d=a.prepare(`
127
+ `);for(let a of b){let b=j(a.path),d=e().basename(b);c.run(b,d,a.id)}let d=a.prepare(`
96
128
  UPDATE worktrees
97
129
  SET last_user_message = ?,
98
130
  last_user_message_at = ?
@@ -136,7 +168,7 @@
136
168
  SET repository_path = ?,
137
169
  repository_name = ?
138
170
  WHERE id = ?
139
- `);for(let a of b){let b=g(a.path),d=e().basename(b);c.run(b,d,a.id)}},down:()=>{console.log("No rollback needed for repository path fix")}},{version:4,name:"add-favorite-field",up:a=>{a.exec(`
171
+ `);for(let a of b){let b=j(a.path),d=e().basename(b);c.run(b,d,a.id)}},down:()=>{console.log("No rollback needed for repository path fix")}},{version:4,name:"add-favorite-field",up:a=>{a.exec(`
140
172
  ALTER TABLE worktrees ADD COLUMN favorite INTEGER DEFAULT 0;
141
173
  `),a.exec(`
142
174
  CREATE INDEX IF NOT EXISTS idx_worktrees_favorite
@@ -150,7 +182,7 @@
150
182
  ON worktrees(status);
151
183
  `)},down:a=>{a.exec(`
152
184
  DROP INDEX IF EXISTS idx_worktrees_status;
153
- `)}}],j=[{version:6,name:"add-link-field",up:a=>{a.exec(`
185
+ `)}}],m=[{version:6,name:"add-link-field",up:a=>{a.exec(`
154
186
  ALTER TABLE worktrees ADD COLUMN link TEXT DEFAULT NULL;
155
187
  `)},down:()=>{console.log("No rollback needed for link field")}},{version:7,name:"add-cli-tool-id",up:a=>{a.exec(`
156
188
  ALTER TABLE worktrees ADD COLUMN cli_tool_id TEXT DEFAULT 'claude';
@@ -256,7 +288,7 @@
256
288
  `).all(),e=a.prepare(`
257
289
  INSERT INTO worktree_memos (id, worktree_id, title, content, position, created_at, updated_at)
258
290
  VALUES (?, ?, 'Memo', ?, 0, ?, ?)
259
- `),f=Date.now();for(let a of d)e.run(b(),a.id,a.memo,f,f);console.log("Created worktree_memos table"),console.log(`Migrated ${d.length} existing memos to new table`)},down:a=>{a.exec("DROP TABLE IF EXISTS worktree_memos"),console.log("Dropped worktree_memos table")}}],k=[{version:11,name:"add-viewed-tracking",up:a=>{a.exec(`
291
+ `),f=Date.now();for(let a of d)e.run(b(),a.id,a.memo,f,f);console.log("Created worktree_memos table"),console.log(`Migrated ${d.length} existing memos to new table`)},down:a=>{a.exec("DROP TABLE IF EXISTS worktree_memos"),console.log("Dropped worktree_memos table")}}],n=[{version:11,name:"add-viewed-tracking",up:a=>{a.exec(`
260
292
  ALTER TABLE worktrees ADD COLUMN last_viewed_at TEXT;
261
293
  `),a.exec(`
262
294
  CREATE INDEX IF NOT EXISTS idx_chat_messages_assistant_latest
@@ -401,7 +433,7 @@
401
433
 
402
434
  CREATE INDEX IF NOT EXISTS idx_worktrees_cli_tool
403
435
  ON worktrees(cli_tool_id);
404
- `),console.log("Removed initial_branch column from worktrees table")}}],l=[{version:16,name:"add-issue-no-to-external-apps",up:a=>{a.exec(`
436
+ `),console.log("Removed initial_branch column from worktrees table")}}],o=[{version:16,name:"add-issue-no-to-external-apps",up:a=>{a.exec(`
405
437
  ALTER TABLE external_apps ADD COLUMN issue_no INTEGER;
406
438
  `),a.exec(`
407
439
  CREATE INDEX IF NOT EXISTS idx_external_apps_issue_no ON external_apps(issue_no);
@@ -516,7 +548,7 @@
516
548
  ALTER TABLE worktrees ADD COLUMN vibe_local_model TEXT DEFAULT NULL;
517
549
  `),console.log("Added vibe_local_model column to worktrees table")},down:()=>{console.log("No rollback for vibe_local_model column (SQLite limitation)")}},{version:20,name:"add-vibe-local-context-window-column",up:a=>{a.exec(`
518
550
  ALTER TABLE worktrees ADD COLUMN vibe_local_context_window INTEGER DEFAULT NULL;
519
- `),console.log("Added vibe_local_context_window column to worktrees table")},down:()=>{console.log("No rollback for vibe_local_context_window column (SQLite limitation)")}}],m=[{version:21,name:"add-scheduled-executions-worktree-enabled-index",up:a=>{a.exec(`
551
+ `),console.log("Added vibe_local_context_window column to worktrees table")},down:()=>{console.log("No rollback for vibe_local_context_window column (SQLite limitation)")}}],p=[{version:21,name:"add-scheduled-executions-worktree-enabled-index",up:a=>{a.exec(`
520
552
  CREATE INDEX IF NOT EXISTS idx_scheduled_executions_worktree_enabled
521
553
  ON scheduled_executions(worktree_id, enabled);
522
554
  `),console.log("Created composite index idx_scheduled_executions_worktree_enabled")},down:a=>{a.exec("DROP INDEX IF EXISTS idx_scheduled_executions_worktree_enabled"),console.log("Dropped idx_scheduled_executions_worktree_enabled index")}},{version:22,name:"add-archived-column-to-chat-messages",up:a=>{a.exec(`
@@ -549,7 +581,7 @@
549
581
  DROP INDEX IF EXISTS idx_timer_messages_status_scheduled;
550
582
  DROP INDEX IF EXISTS idx_timer_messages_worktree_status;
551
583
  DROP TABLE IF EXISTS timer_messages;
552
- `)}}],n=[{version:24,name:"add-daily-reports-table",up:a=>{a.exec(`
584
+ `)}}],q=[{version:24,name:"add-daily-reports-table",up:a=>{a.exec(`
553
585
  CREATE TABLE daily_reports (
554
586
  date TEXT PRIMARY KEY,
555
587
  content TEXT NOT NULL,
@@ -558,7 +590,7 @@
558
590
  created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
559
591
  updated_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
560
592
  );
561
- `),console.log("Created daily_reports table")},down:a=>{a.exec("DROP TABLE IF EXISTS daily_reports"),console.log("Dropped daily_reports table")}}],o=[{version:25,name:"add-report-templates-table",up:a=>{a.exec(`
593
+ `),console.log("Created daily_reports table")},down:a=>{a.exec("DROP TABLE IF EXISTS daily_reports"),console.log("Dropped daily_reports table")}}],r=[{version:25,name:"add-report-templates-table",up:a=>{a.exec(`
562
594
  CREATE TABLE report_templates (
563
595
  id TEXT PRIMARY KEY,
564
596
  name TEXT NOT NULL,
@@ -567,14 +599,14 @@
567
599
  created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
568
600
  updated_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
569
601
  );
570
- `),console.log("Created report_templates table")},down:a=>{a.exec("DROP TABLE IF EXISTS report_templates"),console.log("Dropped report_templates table")}}],p=[{version:26,name:"add-repository-display-name",up:a=>{a.exec("ALTER TABLE repositories ADD COLUMN display_name TEXT;"),console.log("Added display_name column to repositories table")},down:a=>{a.exec("ALTER TABLE repositories DROP COLUMN display_name;"),console.log("Removed display_name column from repositories table")}}],q=[{version:27,name:"add-app-settings-table",up:a=>{a.exec(`
602
+ `),console.log("Created report_templates table")},down:a=>{a.exec("DROP TABLE IF EXISTS report_templates"),console.log("Dropped report_templates table")}}],s=[{version:26,name:"add-repository-display-name",up:a=>{a.exec("ALTER TABLE repositories ADD COLUMN display_name TEXT;"),console.log("Added display_name column to repositories table")},down:a=>{a.exec("ALTER TABLE repositories DROP COLUMN display_name;"),console.log("Removed display_name column from repositories table")}}],t=[{version:27,name:"add-app-settings-table",up:a=>{a.exec(`
571
603
  CREATE TABLE IF NOT EXISTS app_settings (
572
604
  key TEXT PRIMARY KEY,
573
605
  value TEXT NOT NULL,
574
606
  created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
575
607
  updated_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
576
608
  );
577
- `)},down:a=>{a.exec("DROP TABLE IF EXISTS app_settings")}}],r=[{version:28,name:"add-assistant-conversation-tables",up:a=>{a.exec(`
609
+ `)},down:a=>{a.exec("DROP TABLE IF EXISTS app_settings")}}],u=[{version:28,name:"add-assistant-conversation-tables",up:a=>{a.exec(`
578
610
  CREATE TABLE IF NOT EXISTS assistant_conversations (
579
611
  id TEXT PRIMARY KEY,
580
612
  repository_id TEXT NOT NULL,
@@ -627,7 +659,7 @@
627
659
  DROP TABLE IF EXISTS assistant_session_states;
628
660
  DROP TABLE IF EXISTS assistant_messages;
629
661
  DROP TABLE IF EXISTS assistant_conversations;
630
- `)}}],s=[{version:29,name:"add-assistant-non-interactive-executions",up:a=>{a.exec(`
662
+ `)}}],v=[{version:29,name:"add-assistant-non-interactive-executions",up:a=>{a.exec(`
631
663
  ALTER TABLE assistant_conversations
632
664
  ADD COLUMN execution_mode TEXT NOT NULL DEFAULT 'interactive';
633
665
 
@@ -677,19 +709,19 @@
677
709
  ON assistant_executions(status, updated_at DESC);
678
710
  `)},down:a=>{a.exec(`
679
711
  DROP TABLE IF EXISTS assistant_executions;
680
- `)}}],t=[{version:30,name:"add-assistant-context-snapshot",up:a=>{a.exec(`
712
+ `)}}],w=[{version:30,name:"add-assistant-context-snapshot",up:a=>{a.exec(`
681
713
  ALTER TABLE assistant_conversations
682
714
  ADD COLUMN context_snapshot TEXT;
683
715
  `)},down:a=>{a.exec(`
684
716
  ALTER TABLE assistant_conversations
685
717
  DROP COLUMN context_snapshot;
686
- `)}}],u=[{version:31,name:"add-repository-visible",up:a=>{a.exec("ALTER TABLE repositories ADD COLUMN visible INTEGER NOT NULL DEFAULT 1;")},down:a=>{a.exec("ALTER TABLE repositories DROP COLUMN visible;")}}],v=[{version:32,name:"add-messages-role-composite-index",up:a=>{a.exec(`
718
+ `)}}],x=[{version:31,name:"add-repository-visible",up:a=>{a.exec("ALTER TABLE repositories ADD COLUMN visible INTEGER NOT NULL DEFAULT 1;")},down:a=>{a.exec("ALTER TABLE repositories DROP COLUMN visible;")}}],y=[{version:32,name:"add-messages-role-composite-index",up:a=>{a.exec(`
687
719
  CREATE INDEX IF NOT EXISTS idx_messages_worktree_role_archived_time
688
720
  ON chat_messages(worktree_id, role, archived, timestamp DESC);
689
721
  `),a.exec("DROP INDEX IF EXISTS idx_messages_archived;")},down:a=>{a.exec("DROP INDEX IF EXISTS idx_messages_worktree_role_archived_time;"),a.exec(`
690
722
  CREATE INDEX IF NOT EXISTS idx_messages_archived
691
723
  ON chat_messages(worktree_id, archived, timestamp DESC);
692
- `)}}],w=[{version:33,name:"add-agent-instances",up:a=>{a.exec(`
724
+ `)}}],z=[{version:33,name:"add-agent-instances",up:a=>{a.exec(`
693
725
  CREATE TABLE session_states_new (
694
726
  worktree_id TEXT NOT NULL,
695
727
  cli_tool_id TEXT NOT NULL DEFAULT 'claude',
@@ -757,7 +789,7 @@
757
789
  SELECT worktree_id, cli_tool_id, last_captured_line, in_progress_message_id
758
790
  FROM session_states
759
791
  WHERE instance_id = cli_tool_id;
760
- `),a.exec("DROP TABLE session_states;"),a.exec("ALTER TABLE session_states_old RENAME TO session_states;"),console.log("Rolled back agent_instances migration (v33)")}}],x=[{version:34,name:"add-repository-todos",up:a=>{a.exec(`
792
+ `),a.exec("DROP TABLE session_states;"),a.exec("ALTER TABLE session_states_old RENAME TO session_states;"),console.log("Rolled back agent_instances migration (v33)")}}],A=[{version:34,name:"add-repository-todos",up:a=>{a.exec(`
761
793
  CREATE TABLE IF NOT EXISTS repository_todos (
762
794
  id TEXT PRIMARY KEY,
763
795
  repository_id TEXT NOT NULL,
@@ -771,13 +803,13 @@
771
803
  `),a.exec(`
772
804
  CREATE INDEX IF NOT EXISTS idx_repository_todos_repo
773
805
  ON repository_todos(repository_id, position);
774
- `)},down:a=>{a.exec("DROP TABLE IF EXISTS repository_todos;")}}],y=[{version:35,name:"add-instance-id-to-timer-messages",up:a=>{a.exec(`
806
+ `)},down:a=>{a.exec("DROP TABLE IF EXISTS repository_todos;")}}],B=[{version:35,name:"add-instance-id-to-timer-messages",up:a=>{a.exec(`
775
807
  ALTER TABLE timer_messages ADD COLUMN instance_id TEXT;
776
808
  `),a.exec(`
777
809
  UPDATE timer_messages SET instance_id = cli_tool_id WHERE instance_id IS NULL;
778
- `),console.log("Added instance_id column to timer_messages table")},down:()=>{console.log("No rollback for instance_id column (SQLite limitation)")}}],z=[{version:36,name:"add-branch-to-worktrees",up:a=>{a.exec(`
810
+ `),console.log("Added instance_id column to timer_messages table")},down:()=>{console.log("No rollback for instance_id column (SQLite limitation)")}}],C=[{version:36,name:"add-branch-to-worktrees",up:a=>{a.exec(`
779
811
  ALTER TABLE worktrees ADD COLUMN branch TEXT;
780
- `),console.log("Added branch column to worktrees table")},down:()=>{console.log("No rollback for branch column (SQLite limitation)")}}],A=[{version:37,name:"add-worktree-todos",up:a=>{a.exec(`
812
+ `),console.log("Added branch column to worktrees table")},down:()=>{console.log("No rollback for branch column (SQLite limitation)")}}],D=[{version:37,name:"add-worktree-todos",up:a=>{a.exec(`
781
813
  CREATE TABLE IF NOT EXISTS worktree_todos (
782
814
  id TEXT PRIMARY KEY,
783
815
  worktree_id TEXT NOT NULL,
@@ -791,17 +823,17 @@
791
823
  `),a.exec(`
792
824
  CREATE INDEX IF NOT EXISTS idx_worktree_todos_wt
793
825
  ON worktree_todos(worktree_id, position);
794
- `)},down:a=>{a.exec("DROP TABLE IF EXISTS worktree_todos;")}}],B=[{version:38,name:"add-status-to-worktree-todos",up:a=>{a.exec(`
826
+ `)},down:a=>{a.exec("DROP TABLE IF EXISTS worktree_todos;")}}],E=[{version:38,name:"add-status-to-worktree-todos",up:a=>{a.exec(`
795
827
  ALTER TABLE worktree_todos
796
828
  ADD COLUMN status TEXT NOT NULL DEFAULT 'todo';
797
829
  `),a.exec(`
798
830
  UPDATE worktree_todos SET status = 'done' WHERE done = 1;
799
- `)},down:()=>{}}],C=[{version:39,name:"add-detail-to-worktree-todos",up:a=>{a.exec(`
831
+ `)},down:()=>{}}],F=[{version:39,name:"add-detail-to-worktree-todos",up:a=>{a.exec(`
800
832
  ALTER TABLE worktree_todos
801
833
  ADD COLUMN detail TEXT NOT NULL DEFAULT '';
802
- `)},down:()=>{}}],D=[{version:40,name:"add-error-to-timer-messages",up:a=>{a.exec(`
834
+ `)},down:()=>{}}],G=[{version:40,name:"add-error-to-timer-messages",up:a=>{a.exec(`
803
835
  ALTER TABLE timer_messages ADD COLUMN error TEXT;
804
- `),console.log("Added error column to timer_messages table")},down:()=>{console.log("No rollback for error column (SQLite limitation)")}}],E=[{version:41,name:"add-push-subscriptions",up:a=>{a.exec(`
836
+ `),console.log("Added error column to timer_messages table")},down:()=>{console.log("No rollback for error column (SQLite limitation)")}}],H=[{version:41,name:"add-push-subscriptions",up:a=>{a.exec(`
805
837
  CREATE TABLE IF NOT EXISTS push_subscriptions (
806
838
  id TEXT PRIMARY KEY,
807
839
  endpoint TEXT NOT NULL UNIQUE,
@@ -816,16 +848,16 @@
816
848
  `),a.exec(`
817
849
  CREATE INDEX IF NOT EXISTS idx_push_subscriptions_endpoint
818
850
  ON push_subscriptions(endpoint);
819
- `)},down:a=>{a.exec("DROP TABLE IF EXISTS push_subscriptions;")}}],F=[{version:42,name:"add-locale-to-push-subscriptions",up:a=>{a.exec(`
851
+ `)},down:a=>{a.exec("DROP TABLE IF EXISTS push_subscriptions;")}}],I=[{version:42,name:"add-locale-to-push-subscriptions",up:a=>{a.exec(`
820
852
  ALTER TABLE push_subscriptions ADD COLUMN locale TEXT;
821
853
  `)},down:a=>{a.exec(`
822
854
  ALTER TABLE push_subscriptions DROP COLUMN locale;
823
- `)}}],G=[{version:43,name:"remove-cm-root-dir-ghost-repository",up:a=>{let b=function(){let a=process.env.CM_ROOT_DIR??process.env.MCBD_ROOT_DIR;return a&&a.trim()?e().resolve(a.trim()):null}();return b?(function(){let a=process.env.WORKTREE_REPOS;return a&&a.trim()?a.split(",").map(a=>a.trim()).filter(a=>a.length>0).map(a=>e().resolve(a)):[]})().includes(b)?void console.log(`Migration 43: ${b} is a WORKTREE_REPOS entry; keeping its repository row`):void(a.prepare(`DELETE FROM repositories
855
+ `)}}],J=[{version:43,name:"remove-cm-root-dir-ghost-repository",up:a=>{let b=function(){let a=process.env.CM_ROOT_DIR??process.env.MCBD_ROOT_DIR;return a&&a.trim()?e().resolve(a.trim()):null}();return b?(function(){let a=process.env.WORKTREE_REPOS;return a&&a.trim()?a.split(",").map(a=>a.trim()).filter(a=>a.length>0).map(a=>e().resolve(a)):[]})().includes(b)?void console.log(`Migration 43: ${b} is a WORKTREE_REPOS entry; keeping its repository row`):void(a.prepare(`DELETE FROM repositories
824
856
  WHERE path = ?
825
857
  AND is_env_managed = 1
826
858
  AND NOT EXISTS (
827
859
  SELECT 1 FROM worktrees WHERE worktrees.repository_path = ?
828
- )`).run(b,b).changes>0?console.log(`Migration 43: removed CM_ROOT_DIR ghost repository row (${b})`):console.log(`Migration 43: no ghost repository row at ${b}`)):void console.log("Migration 43: CM_ROOT_DIR is not set; no ghost row to remove")},down:()=>{console.log("No rollback for the CM_ROOT_DIR ghost row removal")}}],H=[{version:44,name:"add-skill-operations",up:a=>{a.exec(`
860
+ )`).run(b,b).changes>0?console.log(`Migration 43: removed CM_ROOT_DIR ghost repository row (${b})`):console.log(`Migration 43: no ghost repository row at ${b}`)):void console.log("Migration 43: CM_ROOT_DIR is not set; no ghost row to remove")},down:()=>{console.log("No rollback for the CM_ROOT_DIR ghost row removal")}}],K=[{version:44,name:"add-skill-operations",up:a=>{a.exec(`
829
861
  CREATE TABLE IF NOT EXISTS skill_operations (
830
862
  id TEXT PRIMARY KEY,
831
863
  operation_id TEXT NOT NULL,
@@ -869,7 +901,7 @@
869
901
  BEGIN
870
902
  SELECT RAISE(ABORT, 'skill_operations is append-only');
871
903
  END;
872
- `)},down:a=>{a.exec("DROP TRIGGER IF EXISTS skill_operations_no_delete;"),a.exec("DROP TRIGGER IF EXISTS skill_operations_no_update;"),a.exec("DROP TABLE IF EXISTS skill_operations;")}}],I=[{version:45,name:"add-skill-installations",up:a=>{a.exec(`
904
+ `)},down:a=>{a.exec("DROP TRIGGER IF EXISTS skill_operations_no_delete;"),a.exec("DROP TRIGGER IF EXISTS skill_operations_no_update;"),a.exec("DROP TABLE IF EXISTS skill_operations;")}}],L=[{version:45,name:"add-skill-installations",up:a=>{a.exec(`
873
905
  CREATE TABLE IF NOT EXISTS skill_installations (
874
906
  id TEXT PRIMARY KEY,
875
907
  worktree_id TEXT NOT NULL,
@@ -893,11 +925,11 @@
893
925
  `),a.exec(`
894
926
  CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
895
927
  ON skill_installations(skill_id, version);
896
- `)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_skill_installations_skill;"),a.exec("DROP INDEX IF EXISTS idx_skill_installations_worktree;"),a.exec("DROP TABLE IF EXISTS skill_installations;")}}],J=`
928
+ `)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_skill_installations_skill;"),a.exec("DROP INDEX IF EXISTS idx_skill_installations_worktree;"),a.exec("DROP TABLE IF EXISTS skill_installations;")}}],M=`
897
929
  id, worktree_id, skill_id, version, install_root, receipt_sha256,
898
930
  source_repository, source_ref, source_commit, artifact_sha256,
899
931
  effective_risk, operation_id, installed_at, updated_at
900
- `,K=`
932
+ `,N=`
901
933
  id TEXT PRIMARY KEY,
902
934
  worktree_id TEXT NOT NULL,
903
935
  skill_id TEXT NOT NULL,
@@ -913,30 +945,30 @@
913
945
  installed_at INTEGER NOT NULL,
914
946
  updated_at INTEGER NOT NULL,
915
947
  UNIQUE (worktree_id, skill_id)
916
- `;function L(a){a.exec(`
948
+ `;function O(a){a.exec(`
917
949
  CREATE INDEX IF NOT EXISTS idx_skill_installations_worktree
918
950
  ON skill_installations(worktree_id);
919
951
  `),a.exec(`
920
952
  CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
921
953
  ON skill_installations(skill_id, version);
922
- `)}let M=[{version:46,name:"skill-installations-worktree-cascade",up:a=>{a.exec(`
954
+ `)}let P=[{version:46,name:"skill-installations-worktree-cascade",up:a=>{a.exec(`
923
955
  CREATE TABLE skill_installations_new (
924
- ${K},
956
+ ${N},
925
957
  FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
926
958
  );
927
959
  `),a.exec(`
928
- INSERT INTO skill_installations_new (${J})
929
- SELECT ${J} FROM skill_installations
960
+ INSERT INTO skill_installations_new (${M})
961
+ SELECT ${M} FROM skill_installations
930
962
  WHERE worktree_id IN (SELECT id FROM worktrees);
931
963
  `);let b=a.prepare(`SELECT COUNT(*) AS n FROM skill_installations
932
- WHERE worktree_id NOT IN (SELECT id FROM worktrees)`).get();a.exec("DROP TABLE skill_installations;"),a.exec("ALTER TABLE skill_installations_new RENAME TO skill_installations;"),L(a),b.n>0&&console.log(`Removed ${b.n} skill_installations row(s) with no worktree`),console.log("skill_installations now cascades with its worktree")},down:a=>{a.exec(`
964
+ WHERE worktree_id NOT IN (SELECT id FROM worktrees)`).get();a.exec("DROP TABLE skill_installations;"),a.exec("ALTER TABLE skill_installations_new RENAME TO skill_installations;"),O(a),b.n>0&&console.log(`Removed ${b.n} skill_installations row(s) with no worktree`),console.log("skill_installations now cascades with its worktree")},down:a=>{a.exec(`
933
965
  CREATE TABLE skill_installations_old (
934
- ${K}
966
+ ${N}
935
967
  );
936
968
  `),a.exec(`
937
- INSERT INTO skill_installations_old (${J})
938
- SELECT ${J} FROM skill_installations;
939
- `),a.exec("DROP TABLE skill_installations;"),a.exec("ALTER TABLE skill_installations_old RENAME TO skill_installations;"),L(a),console.log("Rolled back skill_installations cascade (v46)")}}],N=[{version:47,name:"add-skill-installations-roots",up:a=>{a.exec("ALTER TABLE skill_installations ADD COLUMN install_roots TEXT;")},down:a=>{a.exec(`
969
+ INSERT INTO skill_installations_old (${M})
970
+ SELECT ${M} FROM skill_installations;
971
+ `),a.exec("DROP TABLE skill_installations;"),a.exec("ALTER TABLE skill_installations_old RENAME TO skill_installations;"),O(a),console.log("Rolled back skill_installations cascade (v46)")}}],Q=[{version:47,name:"add-skill-installations-roots",up:a=>{a.exec("ALTER TABLE skill_installations ADD COLUMN install_roots TEXT;")},down:a=>{a.exec(`
940
972
  CREATE TABLE skill_installations__v46 (
941
973
  id TEXT PRIMARY KEY,
942
974
  worktree_id TEXT NOT NULL,
@@ -971,7 +1003,7 @@
971
1003
  `),a.exec(`
972
1004
  CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
973
1005
  ON skill_installations(skill_id, version);
974
- `)}}],O=[{version:48,name:"add-skill-operations-audit-index",up:a=>{a.exec("ALTER TABLE skill_operations ADD COLUMN from_version TEXT;"),a.exec("ALTER TABLE skill_operations ADD COLUMN to_version TEXT;"),a.exec(`
1006
+ `)}}],R=[{version:48,name:"add-skill-operations-audit-index",up:a=>{a.exec("ALTER TABLE skill_operations ADD COLUMN from_version TEXT;"),a.exec("ALTER TABLE skill_operations ADD COLUMN to_version TEXT;"),a.exec(`
975
1007
  CREATE INDEX IF NOT EXISTS idx_skill_operations_recent
976
1008
  ON skill_operations(recorded_at DESC, id DESC);
977
1009
  `),a.exec(`
@@ -1034,7 +1066,7 @@
1034
1066
  BEGIN
1035
1067
  SELECT RAISE(ABORT, 'skill_operations is append-only');
1036
1068
  END;
1037
- `)}}],P=[{version:49,name:"add-verification-runs",up:a=>{a.exec(`
1069
+ `)}}],S=[{version:49,name:"add-verification-runs",up:a=>{a.exec(`
1038
1070
  CREATE TABLE IF NOT EXISTS verification_runs (
1039
1071
  id INTEGER PRIMARY KEY AUTOINCREMENT,
1040
1072
  worktree_id TEXT NOT NULL,
@@ -1065,7 +1097,7 @@
1065
1097
  `),a.exec(`
1066
1098
  CREATE INDEX IF NOT EXISTS idx_verification_gate_results_run
1067
1099
  ON verification_gate_results(run_id);
1068
- `)},down:a=>{a.exec("DROP TABLE IF EXISTS verification_gate_results;"),a.exec("DROP TABLE IF EXISTS verification_runs;")}}],Q=[{version:50,name:"add-tasks",up:a=>{a.exec(`
1100
+ `)},down:a=>{a.exec("DROP TABLE IF EXISTS verification_gate_results;"),a.exec("DROP TABLE IF EXISTS verification_runs;")}}],T=[{version:50,name:"add-tasks",up:a=>{a.exec(`
1069
1101
  CREATE TABLE IF NOT EXISTS tasks (
1070
1102
  id TEXT PRIMARY KEY,
1071
1103
  worktree_id TEXT NOT NULL,
@@ -1085,7 +1117,7 @@
1085
1117
  `),a.exec(`
1086
1118
  CREATE INDEX IF NOT EXISTS idx_tasks_worktree
1087
1119
  ON tasks(worktree_id, created_at DESC);
1088
- `)},down:a=>{a.exec("DROP TABLE IF EXISTS tasks;")}}],R=[{version:51,name:"add-task-events",up:a=>{a.exec(`
1120
+ `)},down:a=>{a.exec("DROP TABLE IF EXISTS tasks;")}}],U=[{version:51,name:"add-task-events",up:a=>{a.exec(`
1089
1121
  CREATE TABLE IF NOT EXISTS task_events (
1090
1122
  id INTEGER PRIMARY KEY AUTOINCREMENT,
1091
1123
  task_id TEXT NOT NULL,
@@ -1098,12 +1130,12 @@
1098
1130
  `),a.exec(`
1099
1131
  CREATE INDEX IF NOT EXISTS idx_task_events_task
1100
1132
  ON task_events(task_id, created_at);
1101
- `)},down:a=>{a.exec("DROP TABLE IF EXISTS task_events;")}}];var S=c(40277);let T=[{version:52,name:"delete-orphaned-worktree-children",up:a=>{let b=0;for(let{table:c,column:d}of(0,S.ZN)(a)){let e=a.prepare(`DELETE FROM "${c}"
1133
+ `)},down:a=>{a.exec("DROP TABLE IF EXISTS task_events;")}}];var V=c(40277);let W=[{version:52,name:"delete-orphaned-worktree-children",up:a=>{let b=0;for(let{table:c,column:d}of(0,V.ZN)(a)){let e=a.prepare(`DELETE FROM "${c}"
1102
1134
  WHERE "${d}" IS NOT NULL
1103
1135
  AND NOT EXISTS (
1104
1136
  SELECT 1 FROM worktrees AS cm_parent
1105
1137
  WHERE cm_parent.id = "${c}"."${d}"
1106
- )`).run();e.changes>0&&(console.log(`Deleted ${e.changes} orphaned row(s) from ${c}.${d}`),b+=e.changes)}0===b&&console.log("No orphaned worktree child rows found")},down:()=>{console.log("No rollback for orphaned child row cleanup (rows are gone)")}}],U=[{version:53,name:"add-worktree-aliases",up:a=>{a.exec(`
1138
+ )`).run();e.changes>0&&(console.log(`Deleted ${e.changes} orphaned row(s) from ${c}.${d}`),b+=e.changes)}0===b&&console.log("No orphaned worktree child rows found")},down:()=>{console.log("No rollback for orphaned child row cleanup (rows are gone)")}}],X=[{version:53,name:"add-worktree-aliases",up:a=>{a.exec(`
1107
1139
  CREATE TABLE IF NOT EXISTS worktree_aliases (
1108
1140
  old_id TEXT PRIMARY KEY,
1109
1141
  worktree_id TEXT NOT NULL REFERENCES worktrees(id) ON DELETE CASCADE,
@@ -1112,19 +1144,28 @@
1112
1144
  `),a.exec(`
1113
1145
  CREATE INDEX IF NOT EXISTS idx_worktree_aliases_worktree_id
1114
1146
  ON worktree_aliases(worktree_id);
1115
- `)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_worktree_aliases_worktree_id;"),a.exec("DROP TABLE IF EXISTS worktree_aliases;")}}];var V=c(23718),W=c(27923);let X="cmate-mig54-",Y=[...i,...j,...k,...l,...m,...n,...o,...p,...q,...r,...s,...t,...u,...v,...w,...x,...y,...z,...A,...B,...C,...D,...E,...F,...G,...H,...I,...M,...N,...O,...P,...Q,...R,...T,...U,{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,V.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=`${X}${b}`;for(let a=1;g.has(c);a++)c=`${X}${b}-${a}`;return g.add(c),c}),i=Date.now();f.forEach((b,c)=>{(0,W.D6)(a,b.oldId,h[c],i)}),f.forEach((b,c)=>{(0,W.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
1147
+ `)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_worktree_aliases_worktree_id;"),a.exec("DROP TABLE IF EXISTS worktree_aliases;")}}];var Y=c(23718),Z=c(27923);let $="cmate-mig54-",_=[...l,...m,...n,...o,...p,...q,...r,...s,...t,...u,...v,...w,...x,...y,...z,...A,...B,...C,...D,...E,...F,...G,...H,...I,...J,...K,...L,...P,...Q,...R,...S,...T,...U,...W,...X,{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,Y.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=`${$}${b}`;for(let a=1;g.has(c);a++)c=`${$}${b}-${a}`;return g.add(c),c}),i=Date.now();f.forEach((b,c)=>{(0,Z.D6)(a,b.oldId,h[c],i)}),f.forEach((b,c)=>{(0,Z.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
1116
1148
  FROM worktree_aliases AS a
1117
1149
  JOIN worktrees AS w ON w.id = a.worktree_id
1118
- 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)=>`${X}down-${b}`);b.forEach((b,e)=>{(0,W.D6)(a,b.worktree_id,d[e],c)}),b.forEach((b,e)=>{(0,W.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,V.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,V.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,W.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,V.a1)(a,b)).sort((a,b)=>b.length-a.length||a.localeCompare(b))[0];h&&(c.run(h),(0,W.D6)(a,g.id,h,d),c.run(g.id),f++)}console.log(`Rolled back ${f} worktree ID compaction(s)`)}}];function Z(a){!function(a,b){a.exec(`
1150
+ 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)=>`${$}down-${b}`);b.forEach((b,e)=>{(0,Z.D6)(a,b.worktree_id,d[e],c)}),b.forEach((b,e)=>{(0,Z.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,Y.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,Y.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,Z.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,Y.a1)(a,b)).sort((a,b)=>b.length-a.length||a.localeCompare(b))[0];h&&(c.run(h),(0,Z.D6)(a,g.id,h,d),c.run(g.id),f++)}console.log(`Rolled back ${f} worktree ID compaction(s)`)}}];function aa(a){!function(a,b){a.exec(`
1119
1151
  CREATE TABLE IF NOT EXISTS schema_version (
1120
1152
  version INTEGER PRIMARY KEY,
1121
1153
  name TEXT NOT NULL,
1122
1154
  applied_at INTEGER NOT NULL
1123
1155
  );
1124
- `);let c=f(a);if(console.log(`Current schema version: ${c}`),c>55)throw Error(`This database (schema v${c}) was created by a newer version of CommandMate (this build supports up to v55). Please update: commandmate update`);let d=b.filter(a=>a.version>c);if(0===d.length)return console.log("Schema is up to date");for(let b of(console.log(`Found ${d.length} pending migration(s)`),d)){console.log(`Applying migration ${b.version}: ${b.name}...`);try{a.transaction(()=>{b.up(a),a.prepare(`
1156
+ `);let c=g(a);if(console.log(`Current schema version: ${c}`),c>f)throw Error(`This database (schema v${c}) was created by a newer version of CommandMate (this build supports up to v${f}). Please update: commandmate update`);let d=b.filter(a=>a.version>c);if(0===d.length)return console.log("Schema is up to date");for(let b of(console.log(`Found ${d.length} pending migration(s)`),d)){console.log(`Applying migration ${b.version}: ${b.name}...`);try{a.transaction(()=>{b.up(a),a.prepare(`
1125
1157
  INSERT INTO schema_version (version, name, applied_at)
1126
1158
  VALUES (?, ?, ?)
1127
- `).run(b.version,b.name,Date.now())})(),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}`)}}console.log(`All migrations completed. Current version: ${f(a)}`)}(a,Y)}},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:()=>p,getDbInstance:()=>o});var d=c(33873),e=c.n(d),f=c(72456),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(87447);let n=null;function o(){if(!n){let a=(0,m._$)().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}n=h}return n}function p(){n&&(n.close(),n=null)}},90444:(a,b,c)=>{function d(a){a.exec(`
1159
+ `).run(b.version,b.name,Date.now())})(),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}`)}}console.log(`All migrations completed. Current version: ${g(a)}`)}(a,_)}function ab(a,b){!function(a,b,c){let d=g(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: ${g(a)}`)}(a,_,b)}},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(`
1160
+ INSERT INTO task_events (task_id, event, from_status, to_status, payload_json, created_at)
1161
+ VALUES (?, ?, ?, ?, ?, ?)
1162
+ `).run(b.taskId,b.event,b.fromStatus,b.toStatus,c,b.createdAt).lastInsertRowid)}function f(a,b,c=200){return a.prepare(`
1163
+ SELECT id, task_id, event, from_status, to_status, payload_json, created_at
1164
+ FROM task_events
1165
+ WHERE task_id = ?
1166
+ ORDER BY created_at ASC, id ASC
1167
+ LIMIT ?
1168
+ `).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:()=>p,getDbInstance:()=>o});var d=c(33873),e=c.n(d),f=c(72456),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(87447);let n=null;function o(){if(!n){let a=(0,m._$)().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}n=h}return n}function p(){n&&(n.close(),n=null)}},90444:(a,b,c)=>{function d(a){a.exec(`
1128
1169
  CREATE TABLE IF NOT EXISTS worktrees (
1129
1170
  id TEXT PRIMARY KEY,
1130
1171
  name TEXT NOT NULL,
@@ -1176,7 +1217,7 @@
1176
1217
  PRIMARY KEY (worktree_id, cli_tool_id),
1177
1218
  FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
1178
1219
  );
1179
- `)}c.d(b,{AC:()=>l.AC,Tu:()=>at,ug:()=>l.ug,eP:()=>av,mg:()=>au,lm:()=>n,af:()=>ah,KG:()=>D,cD:()=>Y,Jj:()=>Z,YX:()=>j,G4:()=>T,hL:()=>_,qp:()=>V,hl:()=>ao,To:()=>r,oH:()=>g.oH,UT:()=>ay.UT,py:()=>A,rY:()=>am,yy:()=>I,pE:()=>g.pE,z2:()=>af,cP:()=>t,DF:()=>g.DF,lA:()=>g.lA,Qp:()=>g.Qp,th:()=>ag.th,oZ:()=>e.oZ,ZP:()=>k,Ys:()=>C,vg:()=>K,Rm:()=>e.Rm,C8:()=>ap,u$:()=>an,MH:()=>ay.MH,BN:()=>l.BN,m0:()=>l.m0,r3:()=>f.r3,Tk:()=>y,fX:()=>f.fX,nO:()=>e.nO,Sj:()=>e.Sj,iT:()=>R,gp:()=>S,yE:()=>$,BE:()=>X,qK:()=>ad,p4:()=>e.p4,r8:()=>g.r8,of:()=>ab,DN:()=>q,pZ:()=>p,kA:()=>g.kA,VL:()=>g.VL,CF:()=>ag.CF,NV:()=>e.NV,ce:()=>ac,WZ:()=>ar,y1:()=>h,gg:()=>ay.gg,Nr:()=>z,ob:()=>x,fr:()=>G,J6:()=>aq,Ui:()=>e.Ui,P9:()=>e.P9,eN:()=>H,vi:()=>e.vi,uJ:()=>e.uJ,s4:()=>d,yT:()=>E,Vk:()=>ay.Vk,Mt:()=>as,UE:()=>ax,PL:()=>g.PL,jp:()=>g.jp,pG:()=>g.pG,nQ:()=>u,yb:()=>L,GA:()=>e.GA,Cs:()=>l.Cs,xR:()=>U,az:()=>aa,nZ:()=>W,PP:()=>ae,Dx:()=>e.Dx,O:()=>e.O,EU:()=>g.EU,HZ:()=>e.HZ,UY:()=>s,cw:()=>g.cw,jJ:()=>ag.jJ,DC:()=>e.DC,gb:()=>i,yB:()=>e.yB,uy:()=>B,s:()=>e.s,iu:()=>e.iu,hq:()=>e.hq,z1:()=>e.z1,bl:()=>J,jA:()=>ag.jA,ZL:()=>e.ZL});var e=c(73753),f=c(95506),g=c(52660);function h(a,b,c="claude"){let d=a.prepare(`
1220
+ `)}c.d(b,{ks:()=>g.ks,EL:()=>aE.EL,AC:()=>m.AC,Tu:()=>az,ug:()=>m.ug,eP:()=>aB,mg:()=>aA,lm:()=>o,Hi:()=>aE.Hi,sA:()=>aE.sA,af:()=>am,KG:()=>E,Uq:()=>m.Uq,cD:()=>_,Jj:()=>aa,Ud:()=>N.Ud,$$:()=>N.$$,ul:()=>N.ul,YX:()=>k,cf:()=>g.cf,jf:()=>N.jf,fs:()=>m.fs,G4:()=>W,hL:()=>ac,qp:()=>Y,hl:()=>at,To:()=>s,oH:()=>g.oH,UT:()=>aE.UT,CR:()=>N.CR,py:()=>B,rY:()=>ar,yy:()=>J,pE:()=>g.pE,z2:()=>ak,cP:()=>u,DF:()=>g.DF,lA:()=>g.lA,Qp:()=>g.Qp,th:()=>al.th,oZ:()=>e.oZ,ZP:()=>l,Ys:()=>D,vg:()=>L,Rm:()=>e.Rm,C8:()=>au,u$:()=>as,__:()=>aE.__,MH:()=>aE.MH,BN:()=>m.BN,m0:()=>m.m0,r3:()=>f.r3,Se:()=>al.Se,Tk:()=>z,fX:()=>f.fX,nO:()=>e.nO,Sj:()=>e.Sj,iT:()=>U,gp:()=>V,$r:()=>ae,yE:()=>ab,BE:()=>$,qK:()=>ai,ap:()=>O.ap,p4:()=>e.p4,nP:()=>g.nP,sy:()=>g.sy,r8:()=>g.r8,of:()=>af,DN:()=>r,pZ:()=>q,kA:()=>g.kA,VL:()=>g.VL,lr:()=>g.lr,GF:()=>N.GF,_O:()=>N._O,CF:()=>al.CF,gn:()=>al.gn,NV:()=>e.NV,ce:()=>ag,WZ:()=>aw,y1:()=>h,gg:()=>aE.gg,kx:()=>N.kx,DP:()=>N.DP,Nr:()=>A,ob:()=>y,fr:()=>H,J6:()=>av,Q2:()=>f.Q2,Ui:()=>e.Ui,P9:()=>e.P9,eN:()=>I,vi:()=>e.vi,uJ:()=>e.uJ,s4:()=>d,uB:()=>aE.uB,yT:()=>F,b2:()=>ah,Fi:()=>ax,HB:()=>aF.H,Vk:()=>aE.Vk,Mt:()=>ay,UE:()=>aD,PL:()=>g.PL,_h:()=>e._h,jp:()=>g.jp,pG:()=>g.pG,xJ:()=>f.xJ,Xm:()=>N.Xm,NU:()=>m.NU,nQ:()=>v,yb:()=>M,l0:()=>f.l0,tt:()=>O.tt,GA:()=>e.GA,Cs:()=>m.Cs,OF:()=>j,xR:()=>X,az:()=>ad,nZ:()=>Z,PP:()=>aj,Dx:()=>e.Dx,IF:()=>O.IF,O:()=>e.O,EU:()=>g.EU,HZ:()=>e.HZ,UY:()=>t,e8:()=>g.e8,cw:()=>g.cw,jJ:()=>al.jJ,DC:()=>e.DC,gb:()=>i,yB:()=>e.yB,j2:()=>N.j2,uy:()=>C,s:()=>e.s,iu:()=>e.iu,hq:()=>e.hq,z1:()=>e.z1,bl:()=>K,jA:()=>al.jA,ZL:()=>e.ZL});var e=c(73753),f=c(95506),g=c(52660);function h(a,b,c="claude"){let d=a.prepare(`
1180
1221
  SELECT worktree_id, cli_tool_id, instance_id, last_captured_line, in_progress_message_id
1181
1222
  FROM session_states
1182
1223
  WHERE worktree_id = ? AND instance_id = ?
@@ -1186,13 +1227,13 @@
1186
1227
  ON CONFLICT(worktree_id, instance_id) DO UPDATE SET
1187
1228
  last_captured_line = excluded.last_captured_line,
1188
1229
  cli_tool_id = excluded.cli_tool_id
1189
- `).run(b,c,f,d)}function j(a,b,c,d){let e=d??c;a.prepare(`
1230
+ `).run(b,c,f,d)}function j(a,b,c,d,e){let f=e??c;a.prepare(`
1190
1231
  INSERT INTO session_states (worktree_id, cli_tool_id, instance_id, last_captured_line, in_progress_message_id)
1191
1232
  VALUES (?, ?, ?, 0, ?)
1192
1233
  ON CONFLICT(worktree_id, instance_id) DO UPDATE SET
1193
1234
  in_progress_message_id = excluded.in_progress_message_id,
1194
1235
  cli_tool_id = excluded.cli_tool_id
1195
- `).run(b,c,e,null)}function k(a,b,c,d){d?a.prepare(`
1236
+ `).run(b,c,f,d)}function k(a,b,c,d){j(a,b,c,null,d)}function l(a,b,c,d){d?a.prepare(`
1196
1237
  DELETE FROM session_states
1197
1238
  WHERE worktree_id = ? AND instance_id = ?
1198
1239
  `).run(b,d):c?a.prepare(`
@@ -1201,26 +1242,26 @@
1201
1242
  `).run(b,c):a.prepare(`
1202
1243
  DELETE FROM session_states
1203
1244
  WHERE worktree_id = ?
1204
- `).run(b)}var l=c(28274),m=c(55511);class n extends Error{constructor(a,b,c){super(a),this.code=b,this.cause=c,this.name="MemoDbError"}}function o(a){return{id:a.id,worktreeId:a.worktree_id,title:a.title,content:a.content,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function p(a,b){return a.prepare(`
1245
+ `).run(b)}var m=c(28274),n=c(55511);class o extends Error{constructor(a,b,c){super(a),this.code=b,this.cause=c,this.name="MemoDbError"}}function p(a){return{id:a.id,worktreeId:a.worktree_id,title:a.title,content:a.content,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function q(a,b){return a.prepare(`
1205
1246
  SELECT id, worktree_id, title, content, position, created_at, updated_at
1206
1247
  FROM worktree_memos
1207
1248
  WHERE worktree_id = ?
1208
1249
  ORDER BY position ASC
1209
- `).all(b).map(o)}function q(a,b){let c=a.prepare(`
1250
+ `).all(b).map(p)}function r(a,b){let c=a.prepare(`
1210
1251
  SELECT id, worktree_id, title, content, position, created_at, updated_at
1211
1252
  FROM worktree_memos
1212
1253
  WHERE id = ?
1213
- `).get(b);return c?o(c):null}function r(a,b,c){let d=(0,m.randomUUID)(),e=Date.now(),f=c.title??"Memo",g=c.content??"",h=a.prepare(`
1254
+ `).get(b);return c?p(c):null}function s(a,b,c){let d=(0,n.randomUUID)(),e=Date.now(),f=c.title??"Memo",g=c.content??"",h=a.prepare(`
1214
1255
  INSERT INTO worktree_memos (id, worktree_id, title, content, position, created_at, updated_at)
1215
1256
  VALUES (?, ?, ?, ?, ?, ?, ?)
1216
- `);try{h.run(d,b,f,g,c.position,e,e)}catch(a){if(a instanceof Error&&a.message.includes("UNIQUE constraint"))throw new n(`Memo position ${c.position} is already in use for worktree "${b}"`,"DUPLICATE_POSITION",a);throw a}return{id:d,worktreeId:b,title:f,content:g,position:c.position,createdAt:new Date(e),updatedAt:new Date(e)}}function s(a,b,c){let d=Date.now(),e=["updated_at = ?"],f=[d];void 0!==c.title&&(e.push("title = ?"),f.push(c.title)),void 0!==c.content&&(e.push("content = ?"),f.push(c.content)),f.push(b),a.prepare(`
1257
+ `);try{h.run(d,b,f,g,c.position,e,e)}catch(a){if(a instanceof Error&&a.message.includes("UNIQUE constraint"))throw new o(`Memo position ${c.position} is already in use for worktree "${b}"`,"DUPLICATE_POSITION",a);throw a}return{id:d,worktreeId:b,title:f,content:g,position:c.position,createdAt:new Date(e),updatedAt:new Date(e)}}function t(a,b,c){let d=Date.now(),e=["updated_at = ?"],f=[d];void 0!==c.title&&(e.push("title = ?"),f.push(c.title)),void 0!==c.content&&(e.push("content = ?"),f.push(c.content)),f.push(b),a.prepare(`
1217
1258
  UPDATE worktree_memos
1218
1259
  SET ${e.join(", ")}
1219
1260
  WHERE id = ?
1220
- `).run(...f)}function t(a,b){a.prepare(`
1261
+ `).run(...f)}function u(a,b){a.prepare(`
1221
1262
  DELETE FROM worktree_memos
1222
1263
  WHERE id = ?
1223
- `).run(b)}function u(a,b,c){if(0===c.length)return;let d=Date.now();a.transaction(()=>{let b=a.prepare(`
1264
+ `).run(b)}function v(a,b,c){if(0===c.length)return;let d=Date.now();a.transaction(()=>{let b=a.prepare(`
1224
1265
  UPDATE worktree_memos
1225
1266
  SET position = -1 - position
1226
1267
  WHERE id = ?
@@ -1228,7 +1269,7 @@
1228
1269
  UPDATE worktree_memos
1229
1270
  SET position = ?, updated_at = ?
1230
1271
  WHERE id = ?
1231
- `);c.forEach((a,b)=>{e.run(b,d,a)})})()}let v=`
1272
+ `);c.forEach((a,b)=>{e.run(b,d,a)})})()}let w=`
1232
1273
  SELECT
1233
1274
  t.id,
1234
1275
  t.repository_id,
@@ -1241,50 +1282,50 @@
1241
1282
  t.updated_at
1242
1283
  FROM repository_todos t
1243
1284
  JOIN repositories r ON r.id = t.repository_id
1244
- `;function w(a){return{id:a.id,repositoryId:a.repository_id,repositoryName:a.repository_name,repositoryDisplayName:a.repository_display_name||void 0,content:a.content,done:1===a.done,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function x(a,b){return a.prepare(`
1245
- ${v}
1285
+ `;function x(a){return{id:a.id,repositoryId:a.repository_id,repositoryName:a.repository_name,repositoryDisplayName:a.repository_display_name||void 0,content:a.content,done:1===a.done,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function y(a,b){return a.prepare(`
1286
+ ${w}
1246
1287
  WHERE t.repository_id = ?
1247
1288
  ORDER BY t.position ASC, t.created_at ASC
1248
- `).all(b).map(w)}function y(a){return a.prepare(`
1249
- ${v}
1289
+ `).all(b).map(x)}function z(a){return a.prepare(`
1290
+ ${w}
1250
1291
  ORDER BY
1251
1292
  COALESCE(NULLIF(TRIM(r.display_name), ''), r.name) COLLATE NOCASE ASC,
1252
1293
  t.position ASC,
1253
1294
  t.created_at ASC,
1254
1295
  t.id ASC
1255
- `).all().map(w)}function z(a,b){let c=a.prepare(`
1256
- ${v}
1296
+ `).all().map(x)}function A(a,b){let c=a.prepare(`
1297
+ ${w}
1257
1298
  WHERE t.id = ?
1258
- `).get(b);return c?w(c):null}function A(a,b,c){let d=(0,m.randomUUID)(),e=Date.now();a.prepare(`
1299
+ `).get(b);return c?x(c):null}function B(a,b,c){let d=(0,n.randomUUID)(),e=Date.now();a.prepare(`
1259
1300
  INSERT INTO repository_todos (id, repository_id, content, done, position, created_at, updated_at)
1260
1301
  VALUES (?, ?, ?, 0, ?, ?, ?)
1261
- `).run(d,b,c.content,c.position,e,e);let f=z(a,d);if(!f)throw Error(`Failed to load created todo '${d}'`);return f}function B(a,b,c){let d=Date.now(),e=["updated_at = ?"],f=[d];void 0!==c.content&&(e.push("content = ?"),f.push(c.content)),void 0!==c.done&&(e.push("done = ?"),f.push(+!!c.done)),f.push(b),a.prepare(`
1302
+ `).run(d,b,c.content,c.position,e,e);let f=A(a,d);if(!f)throw Error(`Failed to load created todo '${d}'`);return f}function C(a,b,c){let d=Date.now(),e=["updated_at = ?"],f=[d];void 0!==c.content&&(e.push("content = ?"),f.push(c.content)),void 0!==c.done&&(e.push("done = ?"),f.push(+!!c.done)),f.push(b),a.prepare(`
1262
1303
  UPDATE repository_todos
1263
1304
  SET ${e.join(", ")}
1264
1305
  WHERE id = ?
1265
- `).run(...f)}function C(a,b){a.prepare(`
1306
+ `).run(...f)}function D(a,b){a.prepare(`
1266
1307
  DELETE FROM repository_todos
1267
1308
  WHERE id = ?
1268
- `).run(b)}let D=["todo","doing","done"];function E(a){return"todo"===a||"doing"===a||"done"===a}function F(a){var b,c;let d=(b=a.status,c=a.done,E(b)?b:1===c?"done":"todo");return{id:a.id,worktreeId:a.worktree_id,content:a.content,detail:a.detail??"",status:d,done:"done"===d,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function G(a,b){return a.prepare(`
1309
+ `).run(b)}let E=["todo","doing","done"];function F(a){return"todo"===a||"doing"===a||"done"===a}function G(a){var b,c;let d=(b=a.status,c=a.done,F(b)?b:1===c?"done":"todo");return{id:a.id,worktreeId:a.worktree_id,content:a.content,detail:a.detail??"",status:d,done:"done"===d,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function H(a,b){return a.prepare(`
1269
1310
  SELECT id, worktree_id, content, detail, done, status, position, created_at, updated_at
1270
1311
  FROM worktree_todos
1271
1312
  WHERE worktree_id = ?
1272
1313
  ORDER BY position ASC, created_at ASC
1273
- `).all(b).map(F)}function H(a,b){let c=a.prepare(`
1314
+ `).all(b).map(G)}function I(a,b){let c=a.prepare(`
1274
1315
  SELECT id, worktree_id, content, detail, done, status, position, created_at, updated_at
1275
1316
  FROM worktree_todos
1276
1317
  WHERE id = ?
1277
- `).get(b);return c?F(c):null}function I(a,b,c){let d=(0,m.randomUUID)(),e=Date.now(),f=c.status??"todo",g=c.detail??"";return a.prepare(`
1318
+ `).get(b);return c?G(c):null}function J(a,b,c){let d=(0,n.randomUUID)(),e=Date.now(),f=c.status??"todo",g=c.detail??"";return a.prepare(`
1278
1319
  INSERT INTO worktree_todos (id, worktree_id, content, detail, done, status, position, created_at, updated_at)
1279
1320
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
1280
- `).run(d,b,c.content,g,+("done"===f),f,c.position,e,e),{id:d,worktreeId:b,content:c.content,detail:g,status:f,done:"done"===f,position:c.position,createdAt:new Date(e),updatedAt:new Date(e)}}function J(a,b,c){let d,e=Date.now(),f=["updated_at = ?"],g=[e];void 0!==c.content&&(f.push("content = ?"),g.push(c.content)),void 0!==c.detail&&(f.push("detail = ?"),g.push(c.detail)),void 0!==c.status?d=c.status:void 0!==c.done&&(d=c.done?"done":"todo"),void 0!==d&&(f.push("status = ?"),g.push(d),f.push("done = ?"),g.push(+("done"===d))),g.push(b),a.prepare(`
1321
+ `).run(d,b,c.content,g,+("done"===f),f,c.position,e,e),{id:d,worktreeId:b,content:c.content,detail:g,status:f,done:"done"===f,position:c.position,createdAt:new Date(e),updatedAt:new Date(e)}}function K(a,b,c){let d,e=Date.now(),f=["updated_at = ?"],g=[e];void 0!==c.content&&(f.push("content = ?"),g.push(c.content)),void 0!==c.detail&&(f.push("detail = ?"),g.push(c.detail)),void 0!==c.status?d=c.status:void 0!==c.done&&(d=c.done?"done":"todo"),void 0!==d&&(f.push("status = ?"),g.push(d),f.push("done = ?"),g.push(+("done"===d))),g.push(b),a.prepare(`
1281
1322
  UPDATE worktree_todos
1282
1323
  SET ${f.join(", ")}
1283
1324
  WHERE id = ?
1284
- `).run(...g)}function K(a,b){a.prepare(`
1325
+ `).run(...g)}function L(a,b){a.prepare(`
1285
1326
  DELETE FROM worktree_todos
1286
1327
  WHERE id = ?
1287
- `).run(b)}function L(a,b,c){if(0===c.length)return;let d=Date.now();a.transaction(()=>{let e=a.prepare(`
1328
+ `).run(b)}function M(a,b,c){if(0===c.length)return;let d=Date.now();a.transaction(()=>{let e=a.prepare(`
1288
1329
  UPDATE worktree_todos
1289
1330
  SET position = -1 - position
1290
1331
  WHERE id = ? AND worktree_id = ?
@@ -1292,139 +1333,148 @@
1292
1333
  UPDATE worktree_todos
1293
1334
  SET position = ?, updated_at = ?
1294
1335
  WHERE id = ? AND worktree_id = ?
1295
- `);c.forEach((a,c)=>{f.run(c,d,a,b)})})()}function M(a,b){return Buffer.byteLength(a,"utf-8")<=b?a:Buffer.from(a,"utf-8").subarray(0,b).toString("utf-8")}function N(a){return{id:a.id,repositoryId:a.repository_id,cliToolId:a.cli_tool_id,workingDirectory:a.working_directory,executionMode:a.execution_mode??"interactive",resumeSessionId:a.resume_session_id??void 0,lastExecutionId:a.last_execution_id??void 0,sessionName:a.session_name??void 0,status:"idle"===a.status?"stopped":a.status,lastStartedAt:a.last_started_at?new Date(a.last_started_at):void 0,lastStoppedAt:a.last_stopped_at?new Date(a.last_stopped_at):void 0,contextSentAt:a.context_sent_at?new Date(a.context_sent_at):void 0,contextSnapshot:a.context_snapshot??void 0,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),archived:1===a.archived}}function O(a){return{id:a.id,conversationId:a.conversation_id,role:a.role,content:a.content,summary:a.summary??void 0,timestamp:new Date(a.timestamp),messageType:a.message_type,deliveryStatus:a.delivery_status??void 0,archived:1===a.archived}}function P(a){return{id:a.id,conversationId:a.conversation_id,cliToolId:a.cli_tool_id,status:a.status,pid:a.pid??void 0,commandLine:a.command_line,promptText:a.prompt_text,stdoutText:a.stdout_text??void 0,stderrText:a.stderr_text??void 0,finalMessageText:a.final_message_text??void 0,exitCode:a.exit_code,resumeSessionIdBefore:a.resume_session_id_before??void 0,resumeSessionIdAfter:a.resume_session_id_after??void 0,startedAt:a.started_at?new Date(a.started_at):void 0,finishedAt:a.finished_at?new Date(a.finished_at):void 0,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function Q(a,b,c){a.prepare(`
1336
+ `);c.forEach((a,c)=>{f.run(c,d,a,b)})})()}var N=c(34129),O=c(4868);function P(a,b){return Buffer.byteLength(a,"utf-8")<=b?a:Buffer.from(a,"utf-8").subarray(0,b).toString("utf-8")}function Q(a){return{id:a.id,repositoryId:a.repository_id,cliToolId:a.cli_tool_id,workingDirectory:a.working_directory,executionMode:a.execution_mode??"interactive",resumeSessionId:a.resume_session_id??void 0,lastExecutionId:a.last_execution_id??void 0,sessionName:a.session_name??void 0,status:"idle"===a.status?"stopped":a.status,lastStartedAt:a.last_started_at?new Date(a.last_started_at):void 0,lastStoppedAt:a.last_stopped_at?new Date(a.last_stopped_at):void 0,contextSentAt:a.context_sent_at?new Date(a.context_sent_at):void 0,contextSnapshot:a.context_snapshot??void 0,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),archived:1===a.archived}}function R(a){return{id:a.id,conversationId:a.conversation_id,role:a.role,content:a.content,summary:a.summary??void 0,timestamp:new Date(a.timestamp),messageType:a.message_type,deliveryStatus:a.delivery_status??void 0,archived:1===a.archived}}function S(a){return{id:a.id,conversationId:a.conversation_id,cliToolId:a.cli_tool_id,status:a.status,pid:a.pid??void 0,commandLine:a.command_line,promptText:a.prompt_text,stdoutText:a.stdout_text??void 0,stderrText:a.stderr_text??void 0,finalMessageText:a.final_message_text??void 0,exitCode:a.exit_code,resumeSessionIdBefore:a.resume_session_id_before??void 0,resumeSessionIdAfter:a.resume_session_id_after??void 0,startedAt:a.started_at?new Date(a.started_at):void 0,finishedAt:a.finished_at?new Date(a.finished_at):void 0,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function T(a,b,c){a.prepare(`
1296
1337
  UPDATE assistant_conversations
1297
1338
  SET updated_at = ?
1298
1339
  WHERE id = ?
1299
- `).run(c.getTime(),b)}function R(a,b,c={}){let d=`
1340
+ `).run(c.getTime(),b)}function U(a,b,c={}){let d=`
1300
1341
  SELECT *
1301
1342
  FROM assistant_conversations
1302
1343
  WHERE id = ?
1303
1344
  ${c.includeArchived?"":"AND archived = 0"}
1304
1345
  LIMIT 1
1305
- `,e=a.prepare(d).get(b);return e?N(e):null}function S(a,b,c,d={}){let e=`
1346
+ `,e=a.prepare(d).get(b);return e?Q(e):null}function V(a,b,c,d={}){let e=`
1306
1347
  SELECT *
1307
1348
  FROM assistant_conversations
1308
1349
  WHERE repository_id = ?
1309
1350
  AND cli_tool_id = ?
1310
1351
  ${d.includeArchived?"":"AND archived = 0"}
1311
1352
  LIMIT 1
1312
- `,f=a.prepare(e).get(b,c);return f?N(f):null}function T(a,b){let c=(0,m.randomUUID)(),d=Date.now();return a.prepare(`
1353
+ `,f=a.prepare(e).get(b,c);return f?Q(f):null}function W(a,b){let c=(0,n.randomUUID)(),d=Date.now();return a.prepare(`
1313
1354
  INSERT INTO assistant_conversations (
1314
1355
  id, repository_id, cli_tool_id, working_directory, execution_mode, resume_session_id,
1315
1356
  last_execution_id, session_name, status,
1316
1357
  last_started_at, last_stopped_at, context_sent_at, created_at, updated_at, archived
1317
1358
  )
1318
1359
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0)
1319
- `).run(c,b.repositoryId,b.cliToolId,b.workingDirectory,b.executionMode??"interactive",b.resumeSessionId??null,b.lastExecutionId??null,b.sessionName??null,b.status??"stopped",b.lastStartedAt?.getTime()??null,b.lastStoppedAt?.getTime()??null,b.contextSentAt?.getTime()??null,d,d),{id:c,repositoryId:b.repositoryId,cliToolId:b.cliToolId,workingDirectory:b.workingDirectory,executionMode:b.executionMode??"interactive",resumeSessionId:b.resumeSessionId,lastExecutionId:b.lastExecutionId,sessionName:b.sessionName,status:b.status??"stopped",contextSentAt:b.contextSentAt,lastStartedAt:b.lastStartedAt,lastStoppedAt:b.lastStoppedAt,createdAt:new Date(d),updatedAt:new Date(d),archived:!1}}function U(a,b,c){let d=[],e=[];void 0!==c.workingDirectory&&(d.push("working_directory = ?"),e.push(c.workingDirectory)),void 0!==c.executionMode&&(d.push("execution_mode = ?"),e.push(c.executionMode)),void 0!==c.resumeSessionId&&(d.push("resume_session_id = ?"),e.push(c.resumeSessionId)),void 0!==c.lastExecutionId&&(d.push("last_execution_id = ?"),e.push(c.lastExecutionId)),void 0!==c.sessionName&&(d.push("session_name = ?"),e.push(c.sessionName)),void 0!==c.status&&(d.push("status = ?"),e.push(c.status)),void 0!==c.lastStartedAt&&(d.push("last_started_at = ?"),e.push(c.lastStartedAt?.getTime()??null)),void 0!==c.lastStoppedAt&&(d.push("last_stopped_at = ?"),e.push(c.lastStoppedAt?.getTime()??null)),void 0!==c.contextSentAt&&(d.push("context_sent_at = ?"),e.push(c.contextSentAt?.getTime()??null)),void 0!==c.contextSnapshot&&(d.push("context_snapshot = ?"),e.push(c.contextSnapshot??null)),void 0!==c.archived&&(d.push("archived = ?"),e.push(+!!c.archived));let f=c.updatedAt??new Date;return d.push("updated_at = ?"),e.push(f.getTime()),e.push(b),a.prepare(`
1360
+ `).run(c,b.repositoryId,b.cliToolId,b.workingDirectory,b.executionMode??"interactive",b.resumeSessionId??null,b.lastExecutionId??null,b.sessionName??null,b.status??"stopped",b.lastStartedAt?.getTime()??null,b.lastStoppedAt?.getTime()??null,b.contextSentAt?.getTime()??null,d,d),{id:c,repositoryId:b.repositoryId,cliToolId:b.cliToolId,workingDirectory:b.workingDirectory,executionMode:b.executionMode??"interactive",resumeSessionId:b.resumeSessionId,lastExecutionId:b.lastExecutionId,sessionName:b.sessionName,status:b.status??"stopped",contextSentAt:b.contextSentAt,lastStartedAt:b.lastStartedAt,lastStoppedAt:b.lastStoppedAt,createdAt:new Date(d),updatedAt:new Date(d),archived:!1}}function X(a,b,c){let d=[],e=[];void 0!==c.workingDirectory&&(d.push("working_directory = ?"),e.push(c.workingDirectory)),void 0!==c.executionMode&&(d.push("execution_mode = ?"),e.push(c.executionMode)),void 0!==c.resumeSessionId&&(d.push("resume_session_id = ?"),e.push(c.resumeSessionId)),void 0!==c.lastExecutionId&&(d.push("last_execution_id = ?"),e.push(c.lastExecutionId)),void 0!==c.sessionName&&(d.push("session_name = ?"),e.push(c.sessionName)),void 0!==c.status&&(d.push("status = ?"),e.push(c.status)),void 0!==c.lastStartedAt&&(d.push("last_started_at = ?"),e.push(c.lastStartedAt?.getTime()??null)),void 0!==c.lastStoppedAt&&(d.push("last_stopped_at = ?"),e.push(c.lastStoppedAt?.getTime()??null)),void 0!==c.contextSentAt&&(d.push("context_sent_at = ?"),e.push(c.contextSentAt?.getTime()??null)),void 0!==c.contextSnapshot&&(d.push("context_snapshot = ?"),e.push(c.contextSnapshot??null)),void 0!==c.archived&&(d.push("archived = ?"),e.push(+!!c.archived));let f=c.updatedAt??new Date;return d.push("updated_at = ?"),e.push(f.getTime()),e.push(b),a.prepare(`
1320
1361
  UPDATE assistant_conversations
1321
1362
  SET ${d.join(", ")}
1322
1363
  WHERE id = ?
1323
- `).run(...e),R(a,b,{includeArchived:!0})}function V(a,b){let c=(0,m.randomUUID)();return a.prepare(`
1364
+ `).run(...e),U(a,b,{includeArchived:!0})}function Y(a,b){let c=(0,n.randomUUID)();return a.prepare(`
1324
1365
  INSERT INTO assistant_messages (
1325
1366
  id, conversation_id, role, content, summary, timestamp, message_type, delivery_status, archived
1326
1367
  )
1327
1368
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0)
1328
- `).run(c,b.conversationId,b.role,b.content,b.summary??null,b.timestamp.getTime(),b.messageType,b.deliveryStatus??null),Q(a,b.conversationId,b.timestamp),{id:c,...b,archived:!1}}function W(a,b,c){a.prepare(`
1369
+ `).run(c,b.conversationId,b.role,b.content,b.summary??null,b.timestamp.getTime(),b.messageType,b.deliveryStatus??null),T(a,b.conversationId,b.timestamp),{id:c,...b,archived:!1}}function Z(a,b,c){a.prepare(`
1329
1370
  UPDATE assistant_messages
1330
1371
  SET delivery_status = ?
1331
1372
  WHERE id = ?
1332
- `).run(c,b)}function X(a,b,c={}){let{limit:d=200,before:e,includeArchived:f=!1}=c,g=[b,e?.getTime()??null,e?.getTime()??null],h=`
1373
+ `).run(c,b)}function $(a,b,c={}){let{limit:d=200,before:e,includeArchived:f=!1}=c,g=[b,e?.getTime()??null,e?.getTime()??null],h=`
1333
1374
  SELECT *
1334
1375
  FROM assistant_messages
1335
1376
  WHERE conversation_id = ?
1336
1377
  AND (? IS NULL OR timestamp < ?)
1337
- `;return f||(h+=" AND archived = 0"),h+=" ORDER BY timestamp DESC LIMIT ?",g.push(d),a.prepare(h).all(...g).map(O)}function Y(a,b){return a.prepare(`
1378
+ `;return f||(h+=" AND archived = 0"),h+=" ORDER BY timestamp DESC LIMIT ?",g.push(d),a.prepare(h).all(...g).map(R)}function _(a,b){return a.prepare(`
1338
1379
  UPDATE assistant_messages
1339
1380
  SET archived = 1
1340
1381
  WHERE conversation_id = ?
1341
1382
  AND archived = 0
1342
- `).run(b).changes}function Z(a,b,c){return a.prepare(`
1383
+ `).run(b).changes}function aa(a,b,c){return a.prepare(`
1343
1384
  UPDATE assistant_messages
1344
1385
  SET archived = 1
1345
1386
  WHERE conversation_id = ?
1346
1387
  AND archived = 0
1347
1388
  AND timestamp >= ?
1348
- `).run(b,c).changes}function $(a,b){let c=a.prepare(`
1389
+ `).run(b,c).changes}function ab(a,b){let c=a.prepare(`
1349
1390
  SELECT * FROM assistant_messages WHERE id = ?
1350
- `).get(b);return c?O(c):null}function _(a,b){let c=(0,m.randomUUID)(),d=Date.now();return a.prepare(`
1391
+ `).get(b);return c?R(c):null}function ac(a,b){let c=(0,n.randomUUID)(),d=Date.now();return a.prepare(`
1351
1392
  INSERT INTO assistant_executions (
1352
1393
  id, conversation_id, cli_tool_id, status, pid, command_line, prompt_text,
1353
1394
  stdout_text, stderr_text, final_message_text, exit_code, resume_session_id_before,
1354
1395
  resume_session_id_after, started_at, finished_at, created_at, updated_at
1355
1396
  )
1356
1397
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
1357
- `).run(c,b.conversationId,b.cliToolId,b.status??"queued",b.pid??null,b.commandLine,M(b.promptText,65536),M(b.stdoutText??"",262144)||null,M(b.stderrText??"",262144)||null,b.finalMessageText?M(b.finalMessageText,65536):null,b.exitCode??null,b.resumeSessionIdBefore??null,b.resumeSessionIdAfter??null,b.startedAt?.getTime()??null,b.finishedAt?.getTime()??null,d,d),Q(a,b.conversationId,new Date(d)),{id:c,conversationId:b.conversationId,cliToolId:b.cliToolId,status:b.status??"queued",pid:b.pid,commandLine:b.commandLine,promptText:M(b.promptText,65536),stdoutText:b.stdoutText?M(b.stdoutText,262144):void 0,stderrText:b.stderrText?M(b.stderrText,262144):void 0,finalMessageText:b.finalMessageText?M(b.finalMessageText,65536):void 0,exitCode:b.exitCode,resumeSessionIdBefore:b.resumeSessionIdBefore,resumeSessionIdAfter:b.resumeSessionIdAfter,startedAt:b.startedAt,finishedAt:b.finishedAt,createdAt:new Date(d),updatedAt:new Date(d)}}function aa(a,b,c){let d=[],e=[];void 0!==c.status&&(d.push("status = ?"),e.push(c.status)),void 0!==c.pid&&(d.push("pid = ?"),e.push(c.pid)),void 0!==c.stdoutText&&(d.push("stdout_text = ?"),e.push(c.stdoutText?M(c.stdoutText,262144):null)),void 0!==c.stderrText&&(d.push("stderr_text = ?"),e.push(c.stderrText?M(c.stderrText,262144):null)),void 0!==c.finalMessageText&&(d.push("final_message_text = ?"),e.push(c.finalMessageText?M(c.finalMessageText,65536):null)),void 0!==c.exitCode&&(d.push("exit_code = ?"),e.push(c.exitCode)),void 0!==c.resumeSessionIdAfter&&(d.push("resume_session_id_after = ?"),e.push(c.resumeSessionIdAfter)),void 0!==c.startedAt&&(d.push("started_at = ?"),e.push(c.startedAt?.getTime()??null)),void 0!==c.finishedAt&&(d.push("finished_at = ?"),e.push(c.finishedAt?.getTime()??null));let f=c.updatedAt??new Date;return d.push("updated_at = ?"),e.push(f.getTime(),b),a.prepare(`
1398
+ `).run(c,b.conversationId,b.cliToolId,b.status??"queued",b.pid??null,b.commandLine,P(b.promptText,65536),P(b.stdoutText??"",262144)||null,P(b.stderrText??"",262144)||null,b.finalMessageText?P(b.finalMessageText,65536):null,b.exitCode??null,b.resumeSessionIdBefore??null,b.resumeSessionIdAfter??null,b.startedAt?.getTime()??null,b.finishedAt?.getTime()??null,d,d),T(a,b.conversationId,new Date(d)),{id:c,conversationId:b.conversationId,cliToolId:b.cliToolId,status:b.status??"queued",pid:b.pid,commandLine:b.commandLine,promptText:P(b.promptText,65536),stdoutText:b.stdoutText?P(b.stdoutText,262144):void 0,stderrText:b.stderrText?P(b.stderrText,262144):void 0,finalMessageText:b.finalMessageText?P(b.finalMessageText,65536):void 0,exitCode:b.exitCode,resumeSessionIdBefore:b.resumeSessionIdBefore,resumeSessionIdAfter:b.resumeSessionIdAfter,startedAt:b.startedAt,finishedAt:b.finishedAt,createdAt:new Date(d),updatedAt:new Date(d)}}function ad(a,b,c){let d=[],e=[];void 0!==c.status&&(d.push("status = ?"),e.push(c.status)),void 0!==c.pid&&(d.push("pid = ?"),e.push(c.pid)),void 0!==c.stdoutText&&(d.push("stdout_text = ?"),e.push(c.stdoutText?P(c.stdoutText,262144):null)),void 0!==c.stderrText&&(d.push("stderr_text = ?"),e.push(c.stderrText?P(c.stderrText,262144):null)),void 0!==c.finalMessageText&&(d.push("final_message_text = ?"),e.push(c.finalMessageText?P(c.finalMessageText,65536):null)),void 0!==c.exitCode&&(d.push("exit_code = ?"),e.push(c.exitCode)),void 0!==c.resumeSessionIdAfter&&(d.push("resume_session_id_after = ?"),e.push(c.resumeSessionIdAfter)),void 0!==c.startedAt&&(d.push("started_at = ?"),e.push(c.startedAt?.getTime()??null)),void 0!==c.finishedAt&&(d.push("finished_at = ?"),e.push(c.finishedAt?.getTime()??null));let f=c.updatedAt??new Date;return d.push("updated_at = ?"),e.push(f.getTime(),b),a.prepare(`
1358
1399
  UPDATE assistant_executions
1359
1400
  SET ${d.join(", ")}
1360
1401
  WHERE id = ?
1361
- `).run(...e),function(a,b){let c=a.prepare(`
1402
+ `).run(...e),ae(a,b)}function ae(a,b){let c=a.prepare(`
1362
1403
  SELECT *
1363
1404
  FROM assistant_executions
1364
1405
  WHERE id = ?
1365
1406
  LIMIT 1
1366
- `).get(b);return c?P(c):null}(a,b)}function ab(a,b){let c=a.prepare(`
1407
+ `).get(b);return c?S(c):null}function af(a,b){let c=a.prepare(`
1367
1408
  SELECT *
1368
1409
  FROM assistant_executions
1369
1410
  WHERE conversation_id = ?
1370
1411
  ORDER BY created_at DESC
1371
1412
  LIMIT 1
1372
- `).get(b);return c?P(c):null}function ac(a,b){let c=a.prepare(`
1413
+ `).get(b);return c?S(c):null}function ag(a,b){let c=a.prepare(`
1373
1414
  SELECT *
1374
1415
  FROM assistant_executions
1375
1416
  WHERE conversation_id = ?
1376
1417
  AND status = 'running'
1377
1418
  ORDER BY created_at DESC
1378
1419
  LIMIT 1
1379
- `).get(b);return c?P(c):null}function ad(a,b){let c=a.prepare(`
1420
+ `).get(b);return c?S(c):null}function ah(a){return a.prepare(`
1421
+ SELECT *
1422
+ FROM assistant_executions
1423
+ WHERE status = 'running'
1424
+ ORDER BY created_at DESC
1425
+ `).all().map(S)}function ai(a,b){let c=a.prepare(`
1380
1426
  SELECT conversation_id, last_captured_line, in_progress_message_id
1381
1427
  FROM assistant_session_states
1382
1428
  WHERE conversation_id = ?
1383
- `).get(b);return c?{conversationId:c.conversation_id,lastCapturedLine:c.last_captured_line,inProgressMessageId:c.in_progress_message_id}:null}function ae(a,b,c,d){a.prepare(`
1429
+ `).get(b);return c?{conversationId:c.conversation_id,lastCapturedLine:c.last_captured_line,inProgressMessageId:c.in_progress_message_id}:null}function aj(a,b,c,d){a.prepare(`
1384
1430
  INSERT INTO assistant_session_states (conversation_id, last_captured_line, in_progress_message_id)
1385
1431
  VALUES (?, ?, ?)
1386
1432
  ON CONFLICT(conversation_id) DO UPDATE SET
1387
1433
  last_captured_line = excluded.last_captured_line,
1388
1434
  in_progress_message_id = excluded.in_progress_message_id
1389
- `).run(b,c,d??null)}function af(a,b){a.prepare(`
1435
+ `).run(b,c,d??null)}function ak(a,b){a.prepare(`
1390
1436
  DELETE FROM assistant_session_states
1391
1437
  WHERE conversation_id = ?
1392
- `).run(b)}c(34129);var ag=c(43167);let ah=["manual","wait","api","task"],ai=`
1438
+ `).run(b)}var al=c(43167);let am=["manual","wait","api","task"],an=`
1393
1439
  id, worktree_id, instance_id, task_id, trigger, status, base_ref, started_at, finished_at
1394
- `,aj=`
1440
+ `,ao=`
1395
1441
  id, run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at
1396
- `;function ak(a){return{id:a.id,worktreeId:a.worktree_id,instanceId:a.instance_id,taskId:a.task_id,trigger:a.trigger,status:a.status,baseRef:a.base_ref,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function al(a){return{id:a.id,runId:a.run_id,gateId:a.gate_id,command:a.command,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms,logTail:a.log_tail,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at),timingsMeasured:null!==a.finished_at&&null!==a.duration_ms&&a.finished_at-a.started_at===a.duration_ms}}function am(a,b){let c=Date.now(),d=a.prepare(`
1442
+ `;function ap(a){return{id:a.id,worktreeId:a.worktree_id,instanceId:a.instance_id,taskId:a.task_id,trigger:a.trigger,status:a.status,baseRef:a.base_ref,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function aq(a){return{id:a.id,runId:a.run_id,gateId:a.gate_id,command:a.command,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms,logTail:a.log_tail,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at),timingsMeasured:null!==a.finished_at&&null!==a.duration_ms&&a.finished_at-a.started_at===a.duration_ms}}function ar(a,b){let c=Date.now(),d=a.prepare(`
1397
1443
  INSERT INTO verification_runs (
1398
1444
  worktree_id, instance_id, task_id, trigger, status, base_ref, started_at, finished_at
1399
1445
  )
1400
1446
  VALUES (?, ?, ?, ?, 'running', ?, ?, NULL)
1401
- `).run(b.worktreeId,b.instanceId??null,b.taskId??null,b.trigger,b.baseRef??null,c),e=a.prepare(`SELECT ${ai} FROM verification_runs WHERE id = ?`).get(Number(d.lastInsertRowid));if(!e)throw Error("Failed to persist verification run");return ak(e)}function an(a,b,c){if(0===a.prepare("UPDATE verification_runs SET status = ?, finished_at = ? WHERE id = ?").run(c,Date.now(),b).changes)throw Error(`Verification run ${b} not found`)}function ao(a,b,c){let d=Date.now(),e=a.prepare(`
1447
+ `).run(b.worktreeId,b.instanceId??null,b.taskId??null,b.trigger,b.baseRef??null,c),e=a.prepare(`SELECT ${an} FROM verification_runs WHERE id = ?`).get(Number(d.lastInsertRowid));if(!e)throw Error("Failed to persist verification run");return ap(e)}function as(a,b,c){if(0===a.prepare("UPDATE verification_runs SET status = ?, finished_at = ? WHERE id = ?").run(c,Date.now(),b).changes)throw Error(`Verification run ${b} not found`)}function at(a,b,c){let d=Date.now(),e=a.prepare(`
1402
1448
  INSERT INTO verification_gate_results (
1403
1449
  run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at
1404
1450
  )
1405
1451
  VALUES (?, ?, ?, 'running', NULL, NULL, NULL, ?, NULL)
1406
- `).run(b,c.gateId,c.command,d),f=a.prepare(`SELECT ${aj} FROM verification_gate_results WHERE id = ?`).get(Number(e.lastInsertRowid));if(!f)throw Error("Failed to persist verification gate result");return al(f)}function ap(a,b,c){if(0===a.prepare(`
1452
+ `).run(b,c.gateId,c.command,d),f=a.prepare(`SELECT ${ao} FROM verification_gate_results WHERE id = ?`).get(Number(e.lastInsertRowid));if(!f)throw Error("Failed to persist verification gate result");return aq(f)}function au(a,b,c){if(0===a.prepare(`
1407
1453
  UPDATE verification_gate_results
1408
1454
  SET status = ?, exit_code = ?, duration_ms = ?, log_tail = ?,
1409
1455
  started_at = COALESCE(?, started_at),
1410
1456
  finished_at = ?
1411
1457
  WHERE id = ?
1412
- `).run(c.status,c.exitCode??null,c.durationMs??null,c.logTail??null,c.executionWindow?.startedAt??null,c.executionWindow?.finishedAt??Date.now(),b).changes)throw Error(`Verification gate result ${b} not found`)}function aq(a,b){let c=a.prepare(`SELECT ${ai} FROM verification_runs WHERE id = ?`).get(b);if(!c)return null;let d=a.prepare(`
1413
- SELECT ${aj} FROM verification_gate_results
1458
+ `).run(c.status,c.exitCode??null,c.durationMs??null,c.logTail??null,c.executionWindow?.startedAt??null,c.executionWindow?.finishedAt??Date.now(),b).changes)throw Error(`Verification gate result ${b} not found`)}function av(a,b){let c=a.prepare(`SELECT ${an} FROM verification_runs WHERE id = ?`).get(b);if(!c)return null;let d=a.prepare(`
1459
+ SELECT ${ao} FROM verification_gate_results
1414
1460
  WHERE run_id = ?
1415
1461
  ORDER BY started_at ASC, id ASC
1416
- `).all(b);return{...ak(c),gates:d.map(al)}}function ar(a,b){let c=a.prepare(`
1417
- SELECT ${ai} FROM verification_runs
1462
+ `).all(b);return{...ap(c),gates:d.map(aq)}}function aw(a,b){let c=a.prepare(`
1463
+ SELECT ${an} FROM verification_runs
1418
1464
  WHERE worktree_id = ? AND status = 'running'
1419
1465
  ORDER BY id DESC
1420
1466
  LIMIT 1
1421
- `).get(b);return c?ak(c):null}function as(a,b,c=20){return a.prepare(`
1422
- SELECT ${ai} FROM verification_runs
1467
+ `).get(b);return c?ap(c):null}function ax(a){return a.prepare(`
1468
+ SELECT ${an} FROM verification_runs
1469
+ WHERE status = 'running'
1470
+ ORDER BY id ASC
1471
+ `).all().map(ap)}function ay(a,b,c=20){return a.prepare(`
1472
+ SELECT ${an} FROM verification_runs
1423
1473
  WHERE worktree_id = ?
1424
1474
  ORDER BY started_at DESC, id DESC
1425
1475
  LIMIT ?
1426
- `).all(b,c).map(ak)}let at=50,au=500,av=90;function aw(a,b,c,d){return void 0!==a&&Number.isFinite(a)?Math.min(Math.max(Math.trunc(a),c),d):b}function ax(a,b={}){let c=aw(b.limit,at,1,au),d=[],e=[];if(void 0!==b.worktreeId&&(d.push("worktree_id = ?"),e.push(b.worktreeId)),void 0!==b.days){let a=aw(b.days,av,1,av);d.push("started_at >= ?"),e.push(Date.now()-864e5*a)}let f=d.length>0?`WHERE ${d.join(" AND ")}`:"",g=a.prepare(`
1427
- SELECT ${ai} FROM verification_runs
1476
+ `).all(b,c).map(ap)}let az=50,aA=500,aB=90;function aC(a,b,c,d){return void 0!==a&&Number.isFinite(a)?Math.min(Math.max(Math.trunc(a),c),d):b}function aD(a,b={}){let c=aC(b.limit,az,1,aA),d=[],e=[];if(void 0!==b.worktreeId&&(d.push("worktree_id = ?"),e.push(b.worktreeId)),void 0!==b.days){let a=aC(b.days,aB,1,aB);d.push("started_at >= ?"),e.push(Date.now()-864e5*a)}let f=d.length>0?`WHERE ${d.join(" AND ")}`:"",g=a.prepare(`
1477
+ SELECT ${an} FROM verification_runs
1428
1478
  ${f}
1429
1479
  ORDER BY started_at DESC, id DESC
1430
1480
  LIMIT ?
@@ -1433,6 +1483,9 @@
1433
1483
  FROM verification_gate_results
1434
1484
  WHERE run_id IN (${h})
1435
1485
  ORDER BY started_at ASC, id ASC
1436
- `).all(...g.map(a=>a.id)),j=new Map;for(let a of i){let b={gateId:a.gate_id,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms},c=j.get(a.run_id);c?c.push(b):j.set(a.run_id,[b])}return g.map(a=>({...ak(a),gates:j.get(a.id)??[]}))}var ay=c(48524)},95506:(a,b,c)=>{function d(a){return void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get()}function e(a,b){if(!b)return null;if(a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return b;if(!d(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 f(a){return d(a)?a.prepare(`SELECT old_id, worktree_id, created_at
1486
+ `).all(...g.map(a=>a.id)),j=new Map;for(let a of i){let b={gateId:a.gate_id,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms},c=j.get(a.run_id);c?c.push(b):j.set(a.run_id,[b])}return g.map(a=>({...ap(a),gates:j.get(a.id)??[]}))}var aE=c(48524),aF=c(87009)},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
1487
+ FROM worktree_aliases
1488
+ WHERE worktree_id = ?
1489
+ 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
1437
1490
  FROM worktree_aliases
1438
- ORDER BY created_at ASC, old_id ASC`).all().map(a=>({oldId:a.old_id,worktreeId:a.worktree_id,createdAt:a.created_at})):[]}function g(a){return d(a)?a.prepare("SELECT old_id FROM worktree_aliases").all().map(a=>a.old_id):[]}c.d(b,{fX:()=>f,l0:()=>e,r3:()=>g})}};
1491
+ ORDER BY created_at ASC, old_id ASC`).all().map(a=>({oldId:a.old_id,worktreeId:a.worktree_id,createdAt:a.created_at})):[]}function j(a){return e(a)?a.prepare("SELECT old_id FROM worktree_aliases").all().map(a=>a.old_id):[]}}};