commandmate 0.11.4 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (602) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +406 -314
  3. package/.next/app-path-routes-manifest.json +35 -26
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +15 -15
  6. package/.next/react-loadable-manifest.json +8 -6
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +66 -0
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.js +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/daily-summary/route.js +1 -1
  25. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  26. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  28. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  29. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  36. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  40. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  42. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/skills/[id]/route.js +1 -0
  52. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -0
  53. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -0
  54. package/.next/server/app/api/skills/route.js +1 -0
  55. package/.next/server/app/api/skills/route.js.nft.json +1 -0
  56. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
  57. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/todos/route.js +1 -1
  61. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  65. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  67. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  76. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  79. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  82. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  85. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  88. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  91. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  94. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  97. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  100. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  103. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  106. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  109. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  112. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  115. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  118. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  121. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  124. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  127. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  171. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -0
  173. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -0
  174. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -0
  176. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -0
  177. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -0
  178. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -0
  179. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -0
  180. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -0
  181. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -0
  182. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -0
  183. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -0
  184. package/.next/server/app/api/worktrees/[id]/skills/route.js +23 -0
  185. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -0
  186. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -0
  187. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  206. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  208. package/.next/server/app/chat/page.js +2 -2
  209. package/.next/server/app/chat/page.js.nft.json +1 -1
  210. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  211. package/.next/server/app/login/page.js.nft.json +1 -1
  212. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  213. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  214. package/.next/server/app/more/page.js +2 -2
  215. package/.next/server/app/more/page.js.nft.json +1 -1
  216. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  217. package/.next/server/app/offline/page.js.nft.json +1 -1
  218. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  219. package/.next/server/app/page.js +1 -1
  220. package/.next/server/app/page.js.nft.json +1 -1
  221. package/.next/server/app/page_client-reference-manifest.js +1 -1
  222. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  223. package/.next/server/app/repositories/page.js +1 -1
  224. package/.next/server/app/repositories/page.js.nft.json +1 -1
  225. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  226. package/.next/server/app/review/page.js +1 -1
  227. package/.next/server/app/review/page.js.nft.json +1 -1
  228. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  229. package/.next/server/app/sessions/page.js +1 -1
  230. package/.next/server/app/sessions/page.js.nft.json +1 -1
  231. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  232. package/.next/server/app/skills/[skillId]/page.js +2 -0
  233. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -0
  234. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -0
  235. package/.next/server/app/skills/page.js +2 -0
  236. package/.next/server/app/skills/page.js.nft.json +1 -0
  237. package/.next/server/app/skills/page_client-reference-manifest.js +1 -0
  238. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  239. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  240. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  241. package/.next/server/app/worktrees/[id]/page.js +9 -9
  242. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  243. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  244. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  245. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  246. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  247. package/.next/server/app-paths-manifest.json +35 -26
  248. package/.next/server/chunks/1117.js +1 -1
  249. package/.next/server/chunks/120.js +1 -0
  250. package/.next/server/chunks/1808.js +1 -0
  251. package/.next/server/chunks/186.js +1 -0
  252. package/.next/server/chunks/2119.js +1 -1
  253. package/.next/server/chunks/22.js +1 -0
  254. package/.next/server/chunks/2328.js +1 -0
  255. package/.next/server/chunks/2445.js +1 -1
  256. package/.next/server/chunks/3042.js +2 -0
  257. package/.next/server/chunks/3543.js +1 -1
  258. package/.next/server/chunks/3708.js +1 -0
  259. package/.next/server/chunks/3945.js +1 -1
  260. package/.next/server/chunks/5064.js +1 -0
  261. package/.next/server/chunks/5226.js +28 -0
  262. package/.next/server/chunks/5306.js +2 -0
  263. package/.next/server/chunks/5312.js +1 -0
  264. package/.next/server/chunks/5326.js +1 -0
  265. package/.next/server/chunks/5381.js +1 -1
  266. package/.next/server/chunks/5456.js +1 -0
  267. package/.next/server/chunks/5571.js +1 -1
  268. package/.next/server/chunks/5959.js +3 -3
  269. package/.next/server/chunks/6065.js +1 -0
  270. package/.next/server/chunks/6130.js +1 -0
  271. package/.next/server/chunks/6283.js +1 -1
  272. package/.next/server/chunks/6285.js +1 -1
  273. package/.next/server/chunks/646.js +6 -6
  274. package/.next/server/chunks/{9968.js → 7587.js} +1 -1
  275. package/.next/server/chunks/8584.js +1 -0
  276. package/.next/server/chunks/8681.js +1 -1
  277. package/.next/server/chunks/8807.js +950 -804
  278. package/.next/server/chunks/9123.js +1 -1
  279. package/.next/server/middleware-build-manifest.js +1 -1
  280. package/.next/server/middleware-manifest.json +5 -5
  281. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  282. package/.next/server/pages/500.html +1 -1
  283. package/.next/server/server-reference-manifest.json +1 -1
  284. package/.next/static/ZYti9g9gICKnjtmkfvvB2/_buildManifest.js +1 -0
  285. package/.next/static/chunks/1668-7484081c45a44f89.js +1 -0
  286. package/.next/static/chunks/3418-7e47651340d940b0.js +1 -0
  287. package/.next/static/chunks/4027-0c529b322be7d4d8.js +1 -0
  288. package/.next/static/chunks/{4560-64b1461fd996127a.js → 4560-04e5aebcab96bfa1.js} +1 -1
  289. package/.next/static/chunks/6007-de36119357dcd418.js +1 -0
  290. package/.next/static/chunks/{6488-76295bf0184b101f.js → 6488-624d4b6d2d4cc236.js} +1 -1
  291. package/.next/static/chunks/{8965-872d8de254196cec.js → 6497-dc26c6c6b0b15adf.js} +1 -1
  292. package/.next/static/chunks/790-d8e6acd26e03679c.js +1 -0
  293. package/.next/static/chunks/8361.4bf062be2d2962f4.js +1 -0
  294. package/.next/static/chunks/app/api/app/update/route-56dad0523d3c4a92.js +1 -0
  295. package/.next/static/chunks/app/api/app/update-check/route-56dad0523d3c4a92.js +1 -0
  296. package/.next/static/chunks/app/api/assistant/conversation/route-56dad0523d3c4a92.js +1 -0
  297. package/.next/static/chunks/app/api/assistant/current-output/route-56dad0523d3c4a92.js +1 -0
  298. package/.next/static/chunks/app/api/assistant/messages/route-56dad0523d3c4a92.js +1 -0
  299. package/.next/static/chunks/app/api/assistant/session/route-56dad0523d3c4a92.js +1 -0
  300. package/.next/static/chunks/app/api/assistant/start/route-56dad0523d3c4a92.js +1 -0
  301. package/.next/static/chunks/app/api/assistant/terminal/route-56dad0523d3c4a92.js +1 -0
  302. package/.next/static/chunks/app/api/assistant/tools/route-56dad0523d3c4a92.js +1 -0
  303. package/.next/static/chunks/app/api/auth/login/route-56dad0523d3c4a92.js +1 -0
  304. package/.next/static/chunks/app/api/auth/logout/route-56dad0523d3c4a92.js +1 -0
  305. package/.next/static/chunks/app/api/auth/status/route-56dad0523d3c4a92.js +1 -0
  306. package/.next/static/chunks/app/api/daily-summary/route-56dad0523d3c4a92.js +1 -0
  307. package/.next/static/chunks/app/api/daily-summary/status/route-56dad0523d3c4a92.js +1 -0
  308. package/.next/static/chunks/app/api/external-apps/[id]/health/route-56dad0523d3c4a92.js +1 -0
  309. package/.next/static/chunks/app/api/external-apps/[id]/route-56dad0523d3c4a92.js +1 -0
  310. package/.next/static/chunks/app/api/external-apps/route-56dad0523d3c4a92.js +1 -0
  311. package/.next/static/chunks/app/api/hooks/claude-done/route-56dad0523d3c4a92.js +1 -0
  312. package/.next/static/chunks/app/api/ollama/models/route-56dad0523d3c4a92.js +1 -0
  313. package/.next/static/chunks/app/api/push/subscriptions/route-56dad0523d3c4a92.js +1 -0
  314. package/.next/static/chunks/app/api/push/vapid/route-56dad0523d3c4a92.js +1 -0
  315. package/.next/static/chunks/app/api/repositories/[id]/route-56dad0523d3c4a92.js +1 -0
  316. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +1 -0
  317. package/.next/static/chunks/app/api/repositories/[id]/todos/route-56dad0523d3c4a92.js +1 -0
  318. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-56dad0523d3c4a92.js +1 -0
  319. package/.next/static/chunks/app/api/repositories/clone/route-56dad0523d3c4a92.js +1 -0
  320. package/.next/static/chunks/app/api/repositories/excluded/route-56dad0523d3c4a92.js +1 -0
  321. package/.next/static/chunks/app/api/repositories/restore/route-56dad0523d3c4a92.js +1 -0
  322. package/.next/static/chunks/app/api/repositories/route-56dad0523d3c4a92.js +1 -0
  323. package/.next/static/chunks/app/api/repositories/scan/route-56dad0523d3c4a92.js +1 -0
  324. package/.next/static/chunks/app/api/repositories/sync/route-56dad0523d3c4a92.js +1 -0
  325. package/.next/static/chunks/app/api/sidebar/group-order/route-56dad0523d3c4a92.js +1 -0
  326. package/.next/static/chunks/app/api/skills/[id]/route-56dad0523d3c4a92.js +1 -0
  327. package/.next/static/chunks/app/api/skills/route-56dad0523d3c4a92.js +1 -0
  328. package/.next/static/chunks/app/api/slash-commands/route-56dad0523d3c4a92.js +1 -0
  329. package/.next/static/chunks/app/api/templates/[id]/route-56dad0523d3c4a92.js +1 -0
  330. package/.next/static/chunks/app/api/templates/route-56dad0523d3c4a92.js +1 -0
  331. package/.next/static/chunks/app/api/todos/route-56dad0523d3c4a92.js +1 -0
  332. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-56dad0523d3c4a92.js +1 -0
  333. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-56dad0523d3c4a92.js +1 -0
  334. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-56dad0523d3c4a92.js +1 -0
  335. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-56dad0523d3c4a92.js +1 -0
  336. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-56dad0523d3c4a92.js +1 -0
  337. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-56dad0523d3c4a92.js +1 -0
  338. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-56dad0523d3c4a92.js +1 -0
  339. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-56dad0523d3c4a92.js +1 -0
  340. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-56dad0523d3c4a92.js +1 -0
  341. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-56dad0523d3c4a92.js +1 -0
  342. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-56dad0523d3c4a92.js +1 -0
  343. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-56dad0523d3c4a92.js +1 -0
  344. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-56dad0523d3c4a92.js +1 -0
  345. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-56dad0523d3c4a92.js +1 -0
  346. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-56dad0523d3c4a92.js +1 -0
  347. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-56dad0523d3c4a92.js +1 -0
  348. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-56dad0523d3c4a92.js +1 -0
  349. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-56dad0523d3c4a92.js +1 -0
  350. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-56dad0523d3c4a92.js +1 -0
  351. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-56dad0523d3c4a92.js +1 -0
  352. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-56dad0523d3c4a92.js +1 -0
  353. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-56dad0523d3c4a92.js +1 -0
  354. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-56dad0523d3c4a92.js +1 -0
  355. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-56dad0523d3c4a92.js +1 -0
  356. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-56dad0523d3c4a92.js +1 -0
  357. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-56dad0523d3c4a92.js +1 -0
  358. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-56dad0523d3c4a92.js +1 -0
  359. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-56dad0523d3c4a92.js +1 -0
  360. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-56dad0523d3c4a92.js +1 -0
  361. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-56dad0523d3c4a92.js +1 -0
  362. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-56dad0523d3c4a92.js +1 -0
  363. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-56dad0523d3c4a92.js +1 -0
  364. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-56dad0523d3c4a92.js +1 -0
  365. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-56dad0523d3c4a92.js +1 -0
  366. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-56dad0523d3c4a92.js +1 -0
  367. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-56dad0523d3c4a92.js +1 -0
  368. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-56dad0523d3c4a92.js +1 -0
  369. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-56dad0523d3c4a92.js +1 -0
  370. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-56dad0523d3c4a92.js +1 -0
  371. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-56dad0523d3c4a92.js +1 -0
  372. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-56dad0523d3c4a92.js +1 -0
  373. package/.next/static/chunks/app/api/worktrees/[id]/route-56dad0523d3c4a92.js +1 -0
  374. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-56dad0523d3c4a92.js +1 -0
  375. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-56dad0523d3c4a92.js +1 -0
  376. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-56dad0523d3c4a92.js +1 -0
  377. package/.next/static/chunks/app/api/worktrees/[id]/search/route-56dad0523d3c4a92.js +1 -0
  378. package/.next/static/chunks/app/api/worktrees/[id]/send/route-56dad0523d3c4a92.js +1 -0
  379. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-56dad0523d3c4a92.js +1 -0
  380. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-56dad0523d3c4a92.js +1 -0
  381. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-56dad0523d3c4a92.js +1 -0
  382. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-56dad0523d3c4a92.js +1 -0
  383. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-56dad0523d3c4a92.js +1 -0
  384. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-56dad0523d3c4a92.js +1 -0
  385. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-56dad0523d3c4a92.js +1 -0
  386. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-56dad0523d3c4a92.js +1 -0
  387. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-56dad0523d3c4a92.js +1 -0
  388. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-56dad0523d3c4a92.js +1 -0
  389. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-56dad0523d3c4a92.js +1 -0
  390. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +1 -0
  391. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-56dad0523d3c4a92.js +1 -0
  392. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-56dad0523d3c4a92.js +1 -0
  393. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-56dad0523d3c4a92.js +1 -0
  394. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-56dad0523d3c4a92.js +1 -0
  395. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-56dad0523d3c4a92.js +1 -0
  396. package/.next/static/chunks/app/api/worktrees/route-56dad0523d3c4a92.js +1 -0
  397. package/.next/static/chunks/app/chat/{page-9ed2ffd98eb4ae18.js → page-9cf4ba62e21d9074.js} +1 -1
  398. package/.next/static/chunks/app/manifest.webmanifest/route-56dad0523d3c4a92.js +1 -0
  399. package/.next/static/chunks/app/more/{page-a496425bba427b48.js → page-082d4ae496f9a36e.js} +1 -1
  400. package/.next/static/chunks/app/{page-15bfd76bcf65842d.js → page-af457ca5876ed616.js} +1 -1
  401. package/.next/static/chunks/app/proxy/[...path]/route-56dad0523d3c4a92.js +1 -0
  402. package/.next/static/chunks/app/repositories/{page-d214522ab8792ce7.js → page-75f0d70452c6b6c0.js} +1 -1
  403. package/.next/static/chunks/app/review/{page-1dadf0b5d7129598.js → page-f431d630097c2e85.js} +1 -1
  404. package/.next/static/chunks/app/sessions/{page-96f007d986c5f327.js → page-20f07a99db64d2ca.js} +1 -1
  405. package/.next/static/chunks/app/skills/[skillId]/page-68ed5e9186efe56d.js +1 -0
  406. package/.next/static/chunks/app/skills/page-46242c428ee8bccf.js +1 -0
  407. package/.next/static/chunks/app/worktrees/[id]/page-7dd929bfc978742e.js +1 -0
  408. package/.next/static/chunks/app/worktrees/[id]/terminal/page-a75fe180a7233b2b.js +1 -0
  409. package/.next/static/chunks/webpack-0f9275e279c058eb.js +1 -0
  410. package/.next/static/css/b4bdb1f3457fe9a7.css +1 -0
  411. package/.next/trace +11 -10
  412. package/.next/types/app/api/skills/[id]/route.ts +347 -0
  413. package/.next/types/app/api/skills/route.ts +347 -0
  414. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/install/route.ts +347 -0
  415. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/plan/route.ts +347 -0
  416. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.ts +347 -0
  417. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.ts +347 -0
  418. package/.next/types/app/api/worktrees/[id]/skills/route.ts +347 -0
  419. package/.next/types/app/skills/[skillId]/page.ts +84 -0
  420. package/.next/types/app/skills/page.ts +84 -0
  421. package/.next/types/routes.d.ts +11 -2
  422. package/.next/types/validator.ts +81 -0
  423. package/dist/cli/commands/skill-format.d.ts +28 -0
  424. package/dist/cli/commands/skill-format.d.ts.map +1 -0
  425. package/dist/cli/commands/skill-format.js +163 -0
  426. package/dist/cli/commands/skill-guards.d.ts +53 -0
  427. package/dist/cli/commands/skill-guards.d.ts.map +1 -0
  428. package/dist/cli/commands/skill-guards.js +188 -0
  429. package/dist/cli/commands/skill.d.ts +24 -0
  430. package/dist/cli/commands/skill.d.ts.map +1 -0
  431. package/dist/cli/commands/skill.js +365 -0
  432. package/dist/cli/docs/agent-operations.d.ts +1 -1
  433. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  434. package/dist/cli/docs/agent-operations.js +36 -0
  435. package/dist/cli/program.d.ts.map +1 -1
  436. package/dist/cli/program.js +11 -0
  437. package/dist/cli/types/api-responses.d.ts +215 -0
  438. package/dist/cli/types/api-responses.d.ts.map +1 -1
  439. package/dist/cli/types/index.d.ts +60 -0
  440. package/dist/cli/types/index.d.ts.map +1 -1
  441. package/dist/cli/types/index.js +23 -1
  442. package/dist/cli/utils/api-client.d.ts +19 -1
  443. package/dist/cli/utils/api-client.d.ts.map +1 -1
  444. package/dist/cli/utils/api-client.js +41 -4
  445. package/dist/server/server.js +57 -0
  446. package/dist/server/src/config/activity-bar-config.js +2 -0
  447. package/dist/server/src/config/git-status-config.js +83 -0
  448. package/dist/server/src/config/skill-security-config.js +139 -0
  449. package/dist/server/src/lib/cli-tools/antigravity.js +8 -13
  450. package/dist/server/src/lib/cli-tools/codex.js +8 -14
  451. package/dist/server/src/lib/cli-tools/copilot.js +12 -13
  452. package/dist/server/src/lib/cli-tools/gemini.js +8 -13
  453. package/dist/server/src/lib/cli-tools/opencode.js +8 -13
  454. package/dist/server/src/lib/cli-tools/submit-verified-sender.js +174 -0
  455. package/dist/server/src/lib/cli-tools/vibe-local.js +12 -17
  456. package/dist/server/src/lib/db/migrations/index.js +8 -0
  457. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  458. package/dist/server/src/lib/db/migrations/v44-skill-operations.js +81 -0
  459. package/dist/server/src/lib/db/migrations/v45-skill-installations.js +59 -0
  460. package/dist/server/src/lib/db/migrations/v46-skill-installations-cascade.js +107 -0
  461. package/dist/server/src/lib/db/migrations/v47-skill-installations-roots.js +70 -0
  462. package/dist/server/src/lib/db/worktree-db.js +9 -4
  463. package/dist/server/src/lib/git/git-errors.js +336 -0
  464. package/dist/server/src/lib/git/git-exec.js +285 -0
  465. package/dist/server/src/lib/session-key-sender.js +11 -9
  466. package/dist/server/src/lib/skills/compatibility.js +194 -0
  467. package/dist/server/src/lib/skills/constants.js +252 -0
  468. package/dist/server/src/lib/skills/errors.js +82 -0
  469. package/dist/server/src/lib/skills/index.js +91 -0
  470. package/dist/server/src/lib/skills/install-apply.js +670 -0
  471. package/dist/server/src/lib/skills/install-plan.js +582 -0
  472. package/dist/server/src/lib/skills/installed-state.js +127 -0
  473. package/dist/server/src/lib/skills/integrity.js +225 -0
  474. package/dist/server/src/lib/skills/json-schema.js +365 -0
  475. package/dist/server/src/lib/skills/operation-audit.js +120 -0
  476. package/dist/server/src/lib/skills/operation-journal.js +286 -0
  477. package/dist/server/src/lib/skills/operation-lock.js +339 -0
  478. package/dist/server/src/lib/skills/operation-reconciler.js +107 -0
  479. package/dist/server/src/lib/skills/operation-store.js +153 -0
  480. package/dist/server/src/lib/skills/package-reader.js +495 -0
  481. package/dist/server/src/lib/skills/package-validator.js +451 -0
  482. package/dist/server/src/lib/skills/preview-diff.js +627 -0
  483. package/dist/server/src/lib/skills/safe-yaml.js +593 -0
  484. package/dist/server/src/lib/skills/schema.js +1248 -0
  485. package/dist/server/src/lib/skills/semver.js +193 -0
  486. package/dist/server/src/lib/skills/snapshot-store.js +334 -0
  487. package/dist/server/src/lib/skills/startup-reconcile.js +138 -0
  488. package/dist/server/src/lib/skills/uninstall-apply.js +495 -0
  489. package/dist/server/src/lib/skills/uninstall-plan.js +479 -0
  490. package/dist/server/src/types/skills.js +17 -0
  491. package/package.json +1 -1
  492. package/.next/server/chunks/129.js +0 -1
  493. package/.next/server/chunks/2478.js +0 -1
  494. package/.next/server/chunks/9886.js +0 -1
  495. package/.next/static/0_lnKsT0DH-MnHhnV5n-l/_buildManifest.js +0 -1
  496. package/.next/static/chunks/3165-87bf884f7f3d15cf.js +0 -1
  497. package/.next/static/chunks/6416.6756b7ad06dd96f7.js +0 -1
  498. package/.next/static/chunks/8676.57260a06f6554e7e.js +0 -1
  499. package/.next/static/chunks/app/api/app/update/route-7536041a7a89616d.js +0 -1
  500. package/.next/static/chunks/app/api/app/update-check/route-7536041a7a89616d.js +0 -1
  501. package/.next/static/chunks/app/api/assistant/conversation/route-7536041a7a89616d.js +0 -1
  502. package/.next/static/chunks/app/api/assistant/current-output/route-7536041a7a89616d.js +0 -1
  503. package/.next/static/chunks/app/api/assistant/messages/route-7536041a7a89616d.js +0 -1
  504. package/.next/static/chunks/app/api/assistant/session/route-7536041a7a89616d.js +0 -1
  505. package/.next/static/chunks/app/api/assistant/start/route-7536041a7a89616d.js +0 -1
  506. package/.next/static/chunks/app/api/assistant/terminal/route-7536041a7a89616d.js +0 -1
  507. package/.next/static/chunks/app/api/assistant/tools/route-7536041a7a89616d.js +0 -1
  508. package/.next/static/chunks/app/api/auth/login/route-7536041a7a89616d.js +0 -1
  509. package/.next/static/chunks/app/api/auth/logout/route-7536041a7a89616d.js +0 -1
  510. package/.next/static/chunks/app/api/auth/status/route-7536041a7a89616d.js +0 -1
  511. package/.next/static/chunks/app/api/daily-summary/route-7536041a7a89616d.js +0 -1
  512. package/.next/static/chunks/app/api/daily-summary/status/route-7536041a7a89616d.js +0 -1
  513. package/.next/static/chunks/app/api/external-apps/[id]/health/route-7536041a7a89616d.js +0 -1
  514. package/.next/static/chunks/app/api/external-apps/[id]/route-7536041a7a89616d.js +0 -1
  515. package/.next/static/chunks/app/api/external-apps/route-7536041a7a89616d.js +0 -1
  516. package/.next/static/chunks/app/api/hooks/claude-done/route-7536041a7a89616d.js +0 -1
  517. package/.next/static/chunks/app/api/ollama/models/route-7536041a7a89616d.js +0 -1
  518. package/.next/static/chunks/app/api/push/subscriptions/route-7536041a7a89616d.js +0 -1
  519. package/.next/static/chunks/app/api/push/vapid/route-7536041a7a89616d.js +0 -1
  520. package/.next/static/chunks/app/api/repositories/[id]/route-7536041a7a89616d.js +0 -1
  521. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-7536041a7a89616d.js +0 -1
  522. package/.next/static/chunks/app/api/repositories/[id]/todos/route-7536041a7a89616d.js +0 -1
  523. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-7536041a7a89616d.js +0 -1
  524. package/.next/static/chunks/app/api/repositories/clone/route-7536041a7a89616d.js +0 -1
  525. package/.next/static/chunks/app/api/repositories/excluded/route-7536041a7a89616d.js +0 -1
  526. package/.next/static/chunks/app/api/repositories/restore/route-7536041a7a89616d.js +0 -1
  527. package/.next/static/chunks/app/api/repositories/route-7536041a7a89616d.js +0 -1
  528. package/.next/static/chunks/app/api/repositories/scan/route-7536041a7a89616d.js +0 -1
  529. package/.next/static/chunks/app/api/repositories/sync/route-7536041a7a89616d.js +0 -1
  530. package/.next/static/chunks/app/api/sidebar/group-order/route-7536041a7a89616d.js +0 -1
  531. package/.next/static/chunks/app/api/slash-commands/route-7536041a7a89616d.js +0 -1
  532. package/.next/static/chunks/app/api/templates/[id]/route-7536041a7a89616d.js +0 -1
  533. package/.next/static/chunks/app/api/templates/route-7536041a7a89616d.js +0 -1
  534. package/.next/static/chunks/app/api/todos/route-7536041a7a89616d.js +0 -1
  535. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-7536041a7a89616d.js +0 -1
  536. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-7536041a7a89616d.js +0 -1
  537. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-7536041a7a89616d.js +0 -1
  538. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-7536041a7a89616d.js +0 -1
  539. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-7536041a7a89616d.js +0 -1
  540. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-7536041a7a89616d.js +0 -1
  541. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-7536041a7a89616d.js +0 -1
  542. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-7536041a7a89616d.js +0 -1
  543. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-7536041a7a89616d.js +0 -1
  544. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-7536041a7a89616d.js +0 -1
  545. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-7536041a7a89616d.js +0 -1
  546. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-7536041a7a89616d.js +0 -1
  547. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-7536041a7a89616d.js +0 -1
  548. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-7536041a7a89616d.js +0 -1
  549. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-7536041a7a89616d.js +0 -1
  550. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-7536041a7a89616d.js +0 -1
  551. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-7536041a7a89616d.js +0 -1
  552. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-7536041a7a89616d.js +0 -1
  553. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-7536041a7a89616d.js +0 -1
  554. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-7536041a7a89616d.js +0 -1
  555. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-7536041a7a89616d.js +0 -1
  556. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-7536041a7a89616d.js +0 -1
  557. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-7536041a7a89616d.js +0 -1
  558. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-7536041a7a89616d.js +0 -1
  559. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-7536041a7a89616d.js +0 -1
  560. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-7536041a7a89616d.js +0 -1
  561. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-7536041a7a89616d.js +0 -1
  562. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-7536041a7a89616d.js +0 -1
  563. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-7536041a7a89616d.js +0 -1
  564. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-7536041a7a89616d.js +0 -1
  565. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-7536041a7a89616d.js +0 -1
  566. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-7536041a7a89616d.js +0 -1
  567. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-7536041a7a89616d.js +0 -1
  568. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-7536041a7a89616d.js +0 -1
  569. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-7536041a7a89616d.js +0 -1
  570. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-7536041a7a89616d.js +0 -1
  571. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-7536041a7a89616d.js +0 -1
  572. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-7536041a7a89616d.js +0 -1
  573. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-7536041a7a89616d.js +0 -1
  574. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-7536041a7a89616d.js +0 -1
  575. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-7536041a7a89616d.js +0 -1
  576. package/.next/static/chunks/app/api/worktrees/[id]/route-7536041a7a89616d.js +0 -1
  577. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-7536041a7a89616d.js +0 -1
  578. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-7536041a7a89616d.js +0 -1
  579. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-7536041a7a89616d.js +0 -1
  580. package/.next/static/chunks/app/api/worktrees/[id]/search/route-7536041a7a89616d.js +0 -1
  581. package/.next/static/chunks/app/api/worktrees/[id]/send/route-7536041a7a89616d.js +0 -1
  582. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-7536041a7a89616d.js +0 -1
  583. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-7536041a7a89616d.js +0 -1
  584. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-7536041a7a89616d.js +0 -1
  585. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-7536041a7a89616d.js +0 -1
  586. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-7536041a7a89616d.js +0 -1
  587. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-7536041a7a89616d.js +0 -1
  588. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-7536041a7a89616d.js +0 -1
  589. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-7536041a7a89616d.js +0 -1
  590. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-7536041a7a89616d.js +0 -1
  591. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-7536041a7a89616d.js +0 -1
  592. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-7536041a7a89616d.js +0 -1
  593. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-7536041a7a89616d.js +0 -1
  594. package/.next/static/chunks/app/api/worktrees/route-7536041a7a89616d.js +0 -1
  595. package/.next/static/chunks/app/manifest.webmanifest/route-7536041a7a89616d.js +0 -1
  596. package/.next/static/chunks/app/proxy/[...path]/route-7536041a7a89616d.js +0 -1
  597. package/.next/static/chunks/app/worktrees/[id]/page-9a4ce51e697baac6.js +0 -1
  598. package/.next/static/chunks/app/worktrees/[id]/terminal/page-ed4590b024edd8d6.js +0 -1
  599. package/.next/static/chunks/webpack-2e3739a831868daa.js +0 -1
  600. package/.next/static/css/d7e2e8d1b8d69d36.css +0 -1
  601. package/dist/server/src/lib/pasted-text-helper.js +0 -58
  602. /package/.next/static/{0_lnKsT0DH-MnHhnV5n-l → ZYti9g9gICKnjtmkfvvB2}/_ssgManifest.js +0 -0
@@ -27,6 +27,10 @@ const v40_timer_error_1 = require("./v40-timer-error");
27
27
  const v41_push_subscriptions_1 = require("./v41-push-subscriptions");
28
28
  const v42_push_subscription_locale_1 = require("./v42-push-subscription-locale");
29
29
  const v43_remove_cm_root_dir_ghost_repository_1 = require("./v43-remove-cm-root-dir-ghost-repository");
30
+ const v44_skill_operations_1 = require("./v44-skill-operations");
31
+ const v45_skill_installations_1 = require("./v45-skill-installations");
32
+ const v46_skill_installations_cascade_1 = require("./v46-skill-installations-cascade");
33
+ const v47_skill_installations_roots_1 = require("./v47-skill-installations-roots");
30
34
  /**
31
35
  * Complete ordered list of all migrations.
32
36
  * Used internally by the barrel file (db-migrations.ts); NOT exported from the barrel (DR2-004).
@@ -57,4 +61,8 @@ exports.migrations = [
57
61
  ...v41_push_subscriptions_1.v41_migrations,
58
62
  ...v42_push_subscription_locale_1.v42_migrations,
59
63
  ...v43_remove_cm_root_dir_ghost_repository_1.v43_migrations,
64
+ ...v44_skill_operations_1.v44_migrations,
65
+ ...v45_skill_installations_1.v45_migrations,
66
+ ...v46_skill_installations_cascade_1.v46_migrations,
67
+ ...v47_skill_installations_roots_1.v47_migrations,
60
68
  ];
@@ -17,7 +17,7 @@ const path_1 = __importDefault(require("path"));
17
17
  * Current schema version
18
18
  * Increment this when adding new migrations
19
19
  */
20
- exports.CURRENT_SCHEMA_VERSION = 43;
20
+ exports.CURRENT_SCHEMA_VERSION = 47;
21
21
  /**
22
22
  * Get current schema version from database
23
23
  */
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /**
3
+ * Migration v44: append-only skill_operations audit log (Issue #1234).
4
+ *
5
+ * One row per audit event, not per operation: a single operationId appends a row
6
+ * when it fails and another when reconciliation converges it, so the sequence of
7
+ * events survives instead of being overwritten. Append-only is enforced in the
8
+ * database by BEFORE UPDATE/DELETE triggers rather than by convention, so a bug
9
+ * or a direct sqlite3 session cannot silently rewrite history.
10
+ *
11
+ * Source coordinates (repository/ref/resolved commit/artifact digest) are stored
12
+ * as separate columns so an install can be traced back to an immutable source
13
+ * without parsing a blob. No column holds a URL, token or machine-absolute path.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.v44_migrations = void 0;
17
+ exports.v44_migrations = [
18
+ {
19
+ version: 44,
20
+ name: 'add-skill-operations',
21
+ up: (db) => {
22
+ db.exec(`
23
+ CREATE TABLE IF NOT EXISTS skill_operations (
24
+ id TEXT PRIMARY KEY,
25
+ operation_id TEXT NOT NULL,
26
+ idempotency_key TEXT NOT NULL,
27
+ binding_hash TEXT NOT NULL,
28
+ operation TEXT NOT NULL,
29
+ state TEXT NOT NULL,
30
+ result TEXT NOT NULL,
31
+ actor_type TEXT NOT NULL,
32
+ actor_id TEXT,
33
+ worktree_id TEXT NOT NULL,
34
+ skill_id TEXT NOT NULL,
35
+ skill_version TEXT,
36
+ source_origin TEXT,
37
+ source_repository TEXT,
38
+ source_ref TEXT,
39
+ source_commit TEXT,
40
+ artifact_sha256 TEXT,
41
+ error_code TEXT,
42
+ error_message TEXT,
43
+ recorded_at INTEGER NOT NULL
44
+ );
45
+ `);
46
+ db.exec(`
47
+ CREATE INDEX IF NOT EXISTS idx_skill_operations_operation_id
48
+ ON skill_operations(operation_id);
49
+ `);
50
+ db.exec(`
51
+ CREATE INDEX IF NOT EXISTS idx_skill_operations_idempotency_key
52
+ ON skill_operations(idempotency_key);
53
+ `);
54
+ db.exec(`
55
+ CREATE INDEX IF NOT EXISTS idx_skill_operations_target
56
+ ON skill_operations(worktree_id, skill_id, recorded_at);
57
+ `);
58
+ db.exec(`
59
+ CREATE TRIGGER IF NOT EXISTS skill_operations_no_update
60
+ BEFORE UPDATE ON skill_operations
61
+ BEGIN
62
+ SELECT RAISE(ABORT, 'skill_operations is append-only');
63
+ END;
64
+ `);
65
+ db.exec(`
66
+ CREATE TRIGGER IF NOT EXISTS skill_operations_no_delete
67
+ BEFORE DELETE ON skill_operations
68
+ BEGIN
69
+ SELECT RAISE(ABORT, 'skill_operations is append-only');
70
+ END;
71
+ `);
72
+ },
73
+ down: (db) => {
74
+ // Triggers first: the delete guard would otherwise be the only thing
75
+ // standing between a rollback and an ABORT on any later cleanup.
76
+ db.exec('DROP TRIGGER IF EXISTS skill_operations_no_delete;');
77
+ db.exec('DROP TRIGGER IF EXISTS skill_operations_no_update;');
78
+ db.exec('DROP TABLE IF EXISTS skill_operations;');
79
+ },
80
+ },
81
+ ];
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * Migration v45: `skill_installations` index (Issue #1235).
4
+ *
5
+ * One row per (worktree, skill): the index answers "what is installed here"
6
+ * without walking every worktree on disk. It is an *index*, not the truth — the
7
+ * receipt inside `.agents/skills/<id>/` is. That ordering is what lets a crash
8
+ * between the atomic rename and this row be reconciled forward (#1234) instead
9
+ * of being reported as a rollback that the filesystem contradicts.
10
+ *
11
+ * `receipt_sha256` is the join back to the payload: reconciliation compares it
12
+ * against the receipt actually on disk, so a row that describes a different
13
+ * install than the one present is detectable rather than merely stale.
14
+ *
15
+ * No column holds a URL, a token or a machine-absolute path; `install_root` is
16
+ * repository-relative by construction.
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.v45_migrations = void 0;
20
+ exports.v45_migrations = [
21
+ {
22
+ version: 45,
23
+ name: 'add-skill-installations',
24
+ up: (db) => {
25
+ db.exec(`
26
+ CREATE TABLE IF NOT EXISTS skill_installations (
27
+ id TEXT PRIMARY KEY,
28
+ worktree_id TEXT NOT NULL,
29
+ skill_id TEXT NOT NULL,
30
+ version TEXT NOT NULL,
31
+ install_root TEXT NOT NULL,
32
+ receipt_sha256 TEXT NOT NULL,
33
+ source_repository TEXT NOT NULL,
34
+ source_ref TEXT NOT NULL,
35
+ source_commit TEXT NOT NULL,
36
+ artifact_sha256 TEXT NOT NULL,
37
+ effective_risk TEXT NOT NULL,
38
+ operation_id TEXT NOT NULL,
39
+ installed_at INTEGER NOT NULL,
40
+ updated_at INTEGER NOT NULL,
41
+ UNIQUE (worktree_id, skill_id)
42
+ );
43
+ `);
44
+ db.exec(`
45
+ CREATE INDEX IF NOT EXISTS idx_skill_installations_worktree
46
+ ON skill_installations(worktree_id);
47
+ `);
48
+ db.exec(`
49
+ CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
50
+ ON skill_installations(skill_id, version);
51
+ `);
52
+ },
53
+ down: (db) => {
54
+ db.exec('DROP INDEX IF EXISTS idx_skill_installations_skill;');
55
+ db.exec('DROP INDEX IF EXISTS idx_skill_installations_worktree;');
56
+ db.exec('DROP TABLE IF EXISTS skill_installations;');
57
+ },
58
+ },
59
+ ];
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Migration v46: `skill_installations` follows the worktree it belongs to (Issue #1430).
4
+ *
5
+ * v45 created the table with `worktree_id TEXT NOT NULL` and no foreign key, so
6
+ * deleting a worktree left its install rows behind forever (`UNIQUE(worktree_id,
7
+ * skill_id)` keeps them). Recreating a worktree at the same path mints a new
8
+ * UUID, so the UI reports "not installed" while the payload and receipt are
9
+ * still on disk: re-install fails with SKILL_INSTALL_DESTINATION_EXISTS and
10
+ * uninstall has no record to act on.
11
+ *
12
+ * The fix follows the convention every other worktree-scoped table already uses
13
+ * — `ON DELETE CASCADE` — rather than an explicit DELETE at one call site. Two
14
+ * reasons beyond consistency: `deleteWorktreesByIds` is not the only path that
15
+ * removes a worktree row, and `migrateWorktreeIdPreservingChildren` (#1151)
16
+ * discovers child tables through `PRAGMA foreign_key_list`, so the constraint is
17
+ * also what makes a same-directory branch switch *carry* installs forward
18
+ * instead of orphaning them.
19
+ *
20
+ * SQLite cannot add a constraint in place, so the table is rebuilt (same pattern
21
+ * as v33). Rows whose worktree is already gone are dropped by the copy filter,
22
+ * which is what clears the dangling rows existing databases have accumulated —
23
+ * `PRAGMA foreign_keys` cannot be toggled inside the migration transaction, so
24
+ * the filter must be in the SELECT rather than deferred to the constraint.
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.v46_migrations = void 0;
28
+ const COLUMNS = `
29
+ id, worktree_id, skill_id, version, install_root, receipt_sha256,
30
+ source_repository, source_ref, source_commit, artifact_sha256,
31
+ effective_risk, operation_id, installed_at, updated_at
32
+ `;
33
+ const COLUMN_DEFINITIONS = `
34
+ id TEXT PRIMARY KEY,
35
+ worktree_id TEXT NOT NULL,
36
+ skill_id TEXT NOT NULL,
37
+ version TEXT NOT NULL,
38
+ install_root TEXT NOT NULL,
39
+ receipt_sha256 TEXT NOT NULL,
40
+ source_repository TEXT NOT NULL,
41
+ source_ref TEXT NOT NULL,
42
+ source_commit TEXT NOT NULL,
43
+ artifact_sha256 TEXT NOT NULL,
44
+ effective_risk TEXT NOT NULL,
45
+ operation_id TEXT NOT NULL,
46
+ installed_at INTEGER NOT NULL,
47
+ updated_at INTEGER NOT NULL,
48
+ UNIQUE (worktree_id, skill_id)
49
+ `;
50
+ function createIndexes(db) {
51
+ db.exec(`
52
+ CREATE INDEX IF NOT EXISTS idx_skill_installations_worktree
53
+ ON skill_installations(worktree_id);
54
+ `);
55
+ db.exec(`
56
+ CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
57
+ ON skill_installations(skill_id, version);
58
+ `);
59
+ }
60
+ exports.v46_migrations = [
61
+ {
62
+ version: 46,
63
+ name: 'skill-installations-worktree-cascade',
64
+ up: (db) => {
65
+ db.exec(`
66
+ CREATE TABLE skill_installations_new (
67
+ ${COLUMN_DEFINITIONS},
68
+ FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
69
+ );
70
+ `);
71
+ // The WHERE clause is the dangling-row sweep: rows pointing at a worktree
72
+ // that no longer exists are not carried over.
73
+ db.exec(`
74
+ INSERT INTO skill_installations_new (${COLUMNS})
75
+ SELECT ${COLUMNS} FROM skill_installations
76
+ WHERE worktree_id IN (SELECT id FROM worktrees);
77
+ `);
78
+ const dangling = db
79
+ .prepare(`SELECT COUNT(*) AS n FROM skill_installations
80
+ WHERE worktree_id NOT IN (SELECT id FROM worktrees)`)
81
+ .get();
82
+ // Dropping the table drops its indexes too; recreate them on the new one.
83
+ db.exec('DROP TABLE skill_installations;');
84
+ db.exec('ALTER TABLE skill_installations_new RENAME TO skill_installations;');
85
+ createIndexes(db);
86
+ if (dangling.n > 0) {
87
+ console.log(`Removed ${dangling.n} skill_installations row(s) with no worktree`);
88
+ }
89
+ console.log('skill_installations now cascades with its worktree');
90
+ },
91
+ down: (db) => {
92
+ db.exec(`
93
+ CREATE TABLE skill_installations_old (
94
+ ${COLUMN_DEFINITIONS}
95
+ );
96
+ `);
97
+ db.exec(`
98
+ INSERT INTO skill_installations_old (${COLUMNS})
99
+ SELECT ${COLUMNS} FROM skill_installations;
100
+ `);
101
+ db.exec('DROP TABLE skill_installations;');
102
+ db.exec('ALTER TABLE skill_installations_old RENAME TO skill_installations;');
103
+ createIndexes(db);
104
+ console.log('Rolled back skill_installations cascade (v46)');
105
+ },
106
+ },
107
+ ];
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ /**
3
+ * Migration v47: `skill_installations.install_roots` (Issue #1460).
4
+ *
5
+ * A package is now placed into more than one discovery root — `.agents/skills`
6
+ * (Codex) and `.claude/skills` (Claude) — so the index needs to record the full
7
+ * set, not just the primary `install_root`. The column is a JSON array of
8
+ * repository-relative roots, primary first.
9
+ *
10
+ * Nullable and added by `ALTER TABLE`, so it is backward compatible: rows written
11
+ * before this migration keep `install_root` and read back as the single root they
12
+ * name. The on-disk receipt remains the source of truth; this column, like the
13
+ * rest of the row, is a rebuildable index over it (#1235).
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.v47_migrations = void 0;
17
+ exports.v47_migrations = [
18
+ {
19
+ version: 47,
20
+ name: 'add-skill-installations-roots',
21
+ up: (db) => {
22
+ db.exec('ALTER TABLE skill_installations ADD COLUMN install_roots TEXT;');
23
+ },
24
+ down: (db) => {
25
+ // SQLite < 3.35 cannot DROP COLUMN; rebuild the table without it. The
26
+ // column is nullable and index-only, so no data of record is lost.
27
+ db.exec(`
28
+ CREATE TABLE skill_installations__v46 (
29
+ id TEXT PRIMARY KEY,
30
+ worktree_id TEXT NOT NULL,
31
+ skill_id TEXT NOT NULL,
32
+ version TEXT NOT NULL,
33
+ install_root TEXT NOT NULL,
34
+ receipt_sha256 TEXT NOT NULL,
35
+ source_repository TEXT NOT NULL,
36
+ source_ref TEXT NOT NULL,
37
+ source_commit TEXT NOT NULL,
38
+ artifact_sha256 TEXT NOT NULL,
39
+ effective_risk TEXT NOT NULL,
40
+ operation_id TEXT NOT NULL,
41
+ installed_at INTEGER NOT NULL,
42
+ updated_at INTEGER NOT NULL,
43
+ UNIQUE (worktree_id, skill_id)
44
+ );
45
+ `);
46
+ db.exec(`
47
+ INSERT INTO skill_installations__v46 (
48
+ id, worktree_id, skill_id, version, install_root, receipt_sha256,
49
+ source_repository, source_ref, source_commit, artifact_sha256,
50
+ effective_risk, operation_id, installed_at, updated_at
51
+ )
52
+ SELECT
53
+ id, worktree_id, skill_id, version, install_root, receipt_sha256,
54
+ source_repository, source_ref, source_commit, artifact_sha256,
55
+ effective_risk, operation_id, installed_at, updated_at
56
+ FROM skill_installations;
57
+ `);
58
+ db.exec('DROP TABLE skill_installations;');
59
+ db.exec('ALTER TABLE skill_installations__v46 RENAME TO skill_installations;');
60
+ db.exec(`
61
+ CREATE INDEX IF NOT EXISTS idx_skill_installations_worktree
62
+ ON skill_installations(worktree_id);
63
+ `);
64
+ db.exec(`
65
+ CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
66
+ ON skill_installations(skill_id, version);
67
+ `);
68
+ },
69
+ },
70
+ ];
@@ -523,8 +523,11 @@ function getWorktreesByRepository(db, repositoryPath) {
523
523
  }
524
524
  /**
525
525
  * Delete all worktrees for a given repository path
526
- * Related data (chat_messages, session_states, worktree_memos, worktree_todos)
527
- * will be automatically deleted via CASCADE foreign key constraints.
526
+ * Related data is automatically deleted via ON DELETE CASCADE in every table
527
+ * holding a foreign key to worktrees(id) chat_messages, session_states,
528
+ * worktree_memos, worktree_todos, agent_instances, scheduled_executions,
529
+ * execution_logs, timer_messages and skill_installations (#1430). The live list
530
+ * is whatever `PRAGMA foreign_key_list` reports; see getWorktreeChildTables.
528
531
  *
529
532
  * @param db - Database instance
530
533
  * @param repositoryPath - Path of the repository to delete
@@ -539,8 +542,10 @@ function deleteRepositoryWorktrees(db, repositoryPath) {
539
542
  }
540
543
  /**
541
544
  * Delete worktrees by their IDs
542
- * Related data (chat_messages, session_states, worktree_memos, worktree_todos)
543
- * will be automatically deleted via CASCADE foreign key constraints.
545
+ * Related data is automatically deleted via ON DELETE CASCADE in every table
546
+ * holding a foreign key to worktrees(id) including skill_installations, whose
547
+ * rows used to survive the worktree and make a re-created worktree at the same
548
+ * path un-installable (#1430). See getWorktreeChildTables for the live list.
544
549
  *
545
550
  * @param db - Database instance
546
551
  * @param worktreeIds - Array of worktree IDs to delete