commandmate 0.14.1 → 0.16.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 (705) hide show
  1. package/.env.example +7 -0
  2. package/.next/BUILD_ID +1 -1
  3. package/.next/app-build-manifest.json +418 -354
  4. package/.next/app-path-routes-manifest.json +42 -34
  5. package/.next/build-manifest.json +5 -5
  6. package/.next/prerender-manifest.json +9 -9
  7. package/.next/react-loadable-manifest.json +22 -24
  8. package/.next/required-server-files.json +1 -1
  9. package/.next/routes-manifest.json +15 -0
  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.js +1 -1
  15. package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
  16. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/current-output/route.js +1 -1
  18. package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
  19. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/messages/route.js +1 -1
  21. package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
  22. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/assistant/session/route.js +1 -1
  24. package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
  25. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  26. package/.next/server/app/api/assistant/start/route.js +1 -1
  27. package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
  28. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  29. package/.next/server/app/api/assistant/terminal/route.js +1 -1
  30. package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
  31. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/assistant/tools/route.js +1 -1
  33. package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
  34. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  36. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/daily-summary/route.js +1 -1
  39. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  40. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  42. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  43. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
  45. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  46. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/external-apps/[id]/route.js +1 -1
  48. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  49. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/external-apps/route.js +1 -1
  51. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  52. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  53. package/.next/server/app/api/fs/browse/route.js +7 -0
  54. package/.next/server/app/api/fs/browse/route.js.nft.json +1 -0
  55. package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -0
  56. package/.next/server/app/api/fs/recent-paths/route.js +7 -0
  57. package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -0
  58. package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -0
  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/ollama/models/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  64. package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
  65. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/push/vapid/route.js +1 -1
  67. package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
  68. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/repositories/[id]/route.js +1 -1
  70. package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
  71. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  72. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  73. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
  74. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  75. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  76. package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
  77. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  78. package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
  79. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  80. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  81. package/.next/server/app/api/repositories/clone/route.js +1 -1
  82. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  83. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  84. package/.next/server/app/api/repositories/excluded/route.js +1 -1
  85. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  86. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  87. package/.next/server/app/api/repositories/restore/route.js +1 -1
  88. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  89. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  90. package/.next/server/app/api/repositories/route.js +1 -1
  91. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  92. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  93. package/.next/server/app/api/repositories/scan/route.js +1 -1
  94. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  95. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  96. package/.next/server/app/api/repositories/sync/route.js +1 -1
  97. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  98. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  99. package/.next/server/app/api/repositories/validate-path/route.js +1 -0
  100. package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -0
  101. package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -0
  102. package/.next/server/app/api/sidebar/group-order/route.js +2 -2
  103. package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
  104. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  105. package/.next/server/app/api/skills/[id]/route.js +1 -1
  106. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  107. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
  108. package/.next/server/app/api/skills/installations/route.js +23 -0
  109. package/.next/server/app/api/skills/installations/route.js.nft.json +1 -0
  110. package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -0
  111. package/.next/server/app/api/skills/operations/route.js +13 -0
  112. package/.next/server/app/api/skills/operations/route.js.nft.json +1 -0
  113. package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -0
  114. package/.next/server/app/api/skills/reindex/route.js +23 -0
  115. package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -0
  116. package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -0
  117. package/.next/server/app/api/skills/route.js +1 -1
  118. package/.next/server/app/api/skills/route.js.nft.json +1 -1
  119. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
  120. package/.next/server/app/api/slash-commands/route.js +1 -1
  121. package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
  122. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  123. package/.next/server/app/api/templates/[id]/route.js +1 -1
  124. package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
  125. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  126. package/.next/server/app/api/templates/route.js +1 -1
  127. package/.next/server/app/api/templates/route.js.nft.json +1 -1
  128. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/todos/route.js +1 -1
  130. package/.next/server/app/api/todos/route.js.nft.json +1 -1
  131. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  133. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  134. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
  136. package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
  137. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  139. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  140. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  142. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
  143. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  146. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
  149. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
  151. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
  152. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  155. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  158. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  164. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  167. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  170. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  171. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  173. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  174. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  175. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  176. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  177. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  178. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  179. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  180. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  181. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  182. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  183. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  184. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  185. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  186. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  187. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  188. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  191. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  194. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  197. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  200. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  203. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  206. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  208. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  209. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  210. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  211. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  212. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  214. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  215. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  216. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  217. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  218. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  219. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  220. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  221. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  223. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  224. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  225. package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
  226. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  227. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  228. package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
  229. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  230. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  231. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  232. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  233. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  234. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  235. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  236. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  237. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +2 -2
  238. package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
  239. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  240. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  241. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  242. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  243. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  244. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  245. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  246. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  247. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  248. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  249. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
  250. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  251. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  252. package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
  253. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  254. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  255. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  256. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  257. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  258. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  259. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
  260. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  261. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  262. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
  263. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  264. package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
  265. package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
  266. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  267. package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
  268. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  269. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  270. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  271. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  272. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  273. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +18 -0
  274. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -0
  275. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -0
  276. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
  277. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
  278. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
  279. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
  280. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
  281. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
  282. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
  283. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
  284. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
  285. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
  286. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
  287. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
  288. package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
  289. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
  290. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
  291. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  292. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  293. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  294. package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
  295. package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
  296. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  297. package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
  298. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  299. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  300. package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
  301. package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
  302. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  303. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  304. package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
  305. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  306. package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
  307. package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
  308. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  309. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  310. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
  311. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  312. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  313. package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
  314. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  315. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  316. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  317. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  318. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  319. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  320. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  321. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
  322. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  323. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  324. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  325. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  326. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  327. package/.next/server/app/api/worktrees/route.js +1 -1
  328. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  329. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  330. package/.next/server/app/chat/page.js +1 -1
  331. package/.next/server/app/chat/page.js.nft.json +1 -1
  332. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  333. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  334. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  335. package/.next/server/app/more/page.js +1 -1
  336. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  337. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  338. package/.next/server/app/page_client-reference-manifest.js +1 -1
  339. package/.next/server/app/proxy/[...path]/route.js +1 -1
  340. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  341. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  342. package/.next/server/app/repositories/page.js +2 -2
  343. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  344. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  345. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  346. package/.next/server/app/skills/[skillId]/page.js +2 -2
  347. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
  348. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
  349. package/.next/server/app/skills/installed/page.js +2 -0
  350. package/.next/server/app/skills/installed/page.js.nft.json +1 -0
  351. package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -0
  352. package/.next/server/app/skills/page.js +2 -2
  353. package/.next/server/app/skills/page.js.nft.json +1 -1
  354. package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  355. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  356. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  357. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  358. package/.next/server/app/worktrees/[id]/page.js +9 -9
  359. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  360. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  361. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  362. package/.next/server/app-paths-manifest.json +42 -34
  363. package/.next/server/chunks/1117.js +1 -1
  364. package/.next/server/chunks/1185.js +1 -0
  365. package/.next/server/chunks/1239.js +1 -0
  366. package/.next/server/chunks/1355.js +1 -0
  367. package/.next/server/chunks/2119.js +1 -1
  368. package/.next/server/chunks/22.js +1 -1
  369. package/.next/server/chunks/2328.js +1 -1
  370. package/.next/server/chunks/2445.js +1 -1
  371. package/.next/server/chunks/2710.js +2 -0
  372. package/.next/server/chunks/28.js +35 -0
  373. package/.next/server/chunks/3042.js +1 -2
  374. package/.next/server/chunks/3543.js +1 -1
  375. package/.next/server/chunks/3722.js +1 -1
  376. package/.next/server/chunks/3736.js +1 -1
  377. package/.next/server/chunks/3753.js +1 -1
  378. package/.next/server/chunks/3945.js +1 -1
  379. package/.next/server/chunks/4390.js +1 -0
  380. package/.next/server/chunks/4440.js +2 -0
  381. package/.next/server/chunks/4444.js +1 -1
  382. package/.next/server/chunks/4548.js +1 -0
  383. package/.next/server/chunks/5064.js +1 -1
  384. package/.next/server/chunks/5326.js +1 -1
  385. package/.next/server/chunks/5381.js +1 -1
  386. package/.next/server/chunks/5456.js +1 -1
  387. package/.next/server/chunks/5737.js +1 -0
  388. package/.next/server/chunks/5793.js +1 -0
  389. package/.next/server/chunks/5959.js +2 -2
  390. package/.next/server/chunks/6065.js +1 -1
  391. package/.next/server/chunks/6130.js +1 -1
  392. package/.next/server/chunks/646.js +2 -2
  393. package/.next/server/chunks/7593.js +1 -0
  394. package/.next/server/chunks/8356.js +1 -1
  395. package/.next/server/chunks/8681.js +1 -1
  396. package/.next/server/chunks/8807.js +66 -3
  397. package/.next/server/chunks/9051.js +1 -0
  398. package/.next/server/chunks/9123.js +1 -1
  399. package/.next/server/chunks/9687.js +1 -1
  400. package/.next/server/middleware-build-manifest.js +1 -1
  401. package/.next/server/middleware-manifest.json +5 -5
  402. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  403. package/.next/server/pages/500.html +1 -1
  404. package/.next/server/server-reference-manifest.json +1 -1
  405. package/.next/server/src/middleware.js.map +1 -1
  406. package/.next/static/AKqbAyuzbFfg05qpbCI_K/_buildManifest.js +1 -0
  407. package/.next/static/chunks/1191-b7dfdfe86b1d31d1.js +1 -0
  408. package/.next/static/chunks/2751-7fabd91275b14ca3.js +1 -0
  409. package/.next/static/chunks/{4459.03172449db395039.js → 4459.a94b52985a76509a.js} +1 -1
  410. package/.next/static/chunks/{4560-04e5aebcab96bfa1.js → 4560-8ffb0bb19f2ba998.js} +1 -1
  411. package/.next/static/chunks/530.e31cc754677fed0f.js +1 -0
  412. package/.next/static/chunks/5542-b6457f305d724a6b.js +1 -0
  413. package/.next/static/chunks/{6488-74d2f443e43c07b7.js → 6488-c2a968ec806975c2.js} +1 -1
  414. package/.next/static/chunks/{7485.43871aedf3dbb980.js → 7485.442b21101fca7257.js} +1 -1
  415. package/.next/static/chunks/8562-6e2ab32452f4fa5b.js +1 -0
  416. package/.next/static/chunks/8566-a6a7c70558927410.js +1 -0
  417. package/.next/static/chunks/9263.5259f73f89220d64.js +1 -0
  418. package/.next/static/chunks/9599-d29d2f8eeaf7c249.js +1 -0
  419. package/.next/static/chunks/app/api/app/update/route-55e398bd20e2d7a9.js +1 -0
  420. package/.next/static/chunks/app/api/app/update-check/route-55e398bd20e2d7a9.js +1 -0
  421. package/.next/static/chunks/app/api/assistant/conversation/route-55e398bd20e2d7a9.js +1 -0
  422. package/.next/static/chunks/app/api/assistant/current-output/route-55e398bd20e2d7a9.js +1 -0
  423. package/.next/static/chunks/app/api/assistant/messages/route-55e398bd20e2d7a9.js +1 -0
  424. package/.next/static/chunks/app/api/assistant/session/route-55e398bd20e2d7a9.js +1 -0
  425. package/.next/static/chunks/app/api/assistant/start/route-55e398bd20e2d7a9.js +1 -0
  426. package/.next/static/chunks/app/api/assistant/terminal/route-55e398bd20e2d7a9.js +1 -0
  427. package/.next/static/chunks/app/api/assistant/tools/route-55e398bd20e2d7a9.js +1 -0
  428. package/.next/static/chunks/app/api/auth/login/route-55e398bd20e2d7a9.js +1 -0
  429. package/.next/static/chunks/app/api/auth/logout/route-55e398bd20e2d7a9.js +1 -0
  430. package/.next/static/chunks/app/api/auth/status/route-55e398bd20e2d7a9.js +1 -0
  431. package/.next/static/chunks/app/api/daily-summary/route-55e398bd20e2d7a9.js +1 -0
  432. package/.next/static/chunks/app/api/daily-summary/status/route-55e398bd20e2d7a9.js +1 -0
  433. package/.next/static/chunks/app/api/external-apps/[id]/health/route-55e398bd20e2d7a9.js +1 -0
  434. package/.next/static/chunks/app/api/external-apps/[id]/route-55e398bd20e2d7a9.js +1 -0
  435. package/.next/static/chunks/app/api/external-apps/route-55e398bd20e2d7a9.js +1 -0
  436. package/.next/static/chunks/app/api/fs/browse/route-55e398bd20e2d7a9.js +1 -0
  437. package/.next/static/chunks/app/api/fs/recent-paths/route-55e398bd20e2d7a9.js +1 -0
  438. package/.next/static/chunks/app/api/hooks/claude-done/route-55e398bd20e2d7a9.js +1 -0
  439. package/.next/static/chunks/app/api/ollama/models/route-55e398bd20e2d7a9.js +1 -0
  440. package/.next/static/chunks/app/api/push/subscriptions/route-55e398bd20e2d7a9.js +1 -0
  441. package/.next/static/chunks/app/api/push/vapid/route-55e398bd20e2d7a9.js +1 -0
  442. package/.next/static/chunks/app/api/repositories/[id]/route-55e398bd20e2d7a9.js +1 -0
  443. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-55e398bd20e2d7a9.js +1 -0
  444. package/.next/static/chunks/app/api/repositories/[id]/todos/route-55e398bd20e2d7a9.js +1 -0
  445. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-55e398bd20e2d7a9.js +1 -0
  446. package/.next/static/chunks/app/api/repositories/clone/route-55e398bd20e2d7a9.js +1 -0
  447. package/.next/static/chunks/app/api/repositories/excluded/route-55e398bd20e2d7a9.js +1 -0
  448. package/.next/static/chunks/app/api/repositories/restore/route-55e398bd20e2d7a9.js +1 -0
  449. package/.next/static/chunks/app/api/repositories/route-55e398bd20e2d7a9.js +1 -0
  450. package/.next/static/chunks/app/api/repositories/scan/route-55e398bd20e2d7a9.js +1 -0
  451. package/.next/static/chunks/app/api/repositories/sync/route-55e398bd20e2d7a9.js +1 -0
  452. package/.next/static/chunks/app/api/repositories/validate-path/route-55e398bd20e2d7a9.js +1 -0
  453. package/.next/static/chunks/app/api/sidebar/group-order/route-55e398bd20e2d7a9.js +1 -0
  454. package/.next/static/chunks/app/api/skills/[id]/route-55e398bd20e2d7a9.js +1 -0
  455. package/.next/static/chunks/app/api/skills/installations/route-55e398bd20e2d7a9.js +1 -0
  456. package/.next/static/chunks/app/api/skills/operations/route-55e398bd20e2d7a9.js +1 -0
  457. package/.next/static/chunks/app/api/skills/reindex/route-55e398bd20e2d7a9.js +1 -0
  458. package/.next/static/chunks/app/api/skills/route-55e398bd20e2d7a9.js +1 -0
  459. package/.next/static/chunks/app/api/slash-commands/route-55e398bd20e2d7a9.js +1 -0
  460. package/.next/static/chunks/app/api/templates/[id]/route-55e398bd20e2d7a9.js +1 -0
  461. package/.next/static/chunks/app/api/templates/route-55e398bd20e2d7a9.js +1 -0
  462. package/.next/static/chunks/app/api/todos/route-55e398bd20e2d7a9.js +1 -0
  463. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-55e398bd20e2d7a9.js +1 -0
  464. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-55e398bd20e2d7a9.js +1 -0
  465. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-55e398bd20e2d7a9.js +1 -0
  466. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-55e398bd20e2d7a9.js +1 -0
  467. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-55e398bd20e2d7a9.js +1 -0
  468. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-55e398bd20e2d7a9.js +1 -0
  469. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-55e398bd20e2d7a9.js +1 -0
  470. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-55e398bd20e2d7a9.js +1 -0
  471. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-55e398bd20e2d7a9.js +1 -0
  472. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-55e398bd20e2d7a9.js +1 -0
  473. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-55e398bd20e2d7a9.js +1 -0
  474. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-55e398bd20e2d7a9.js +1 -0
  475. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-55e398bd20e2d7a9.js +1 -0
  476. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-55e398bd20e2d7a9.js +1 -0
  477. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-55e398bd20e2d7a9.js +1 -0
  478. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-55e398bd20e2d7a9.js +1 -0
  479. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-55e398bd20e2d7a9.js +1 -0
  480. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-55e398bd20e2d7a9.js +1 -0
  481. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-55e398bd20e2d7a9.js +1 -0
  482. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-55e398bd20e2d7a9.js +1 -0
  483. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-55e398bd20e2d7a9.js +1 -0
  484. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-55e398bd20e2d7a9.js +1 -0
  485. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-55e398bd20e2d7a9.js +1 -0
  486. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-55e398bd20e2d7a9.js +1 -0
  487. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-55e398bd20e2d7a9.js +1 -0
  488. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-55e398bd20e2d7a9.js +1 -0
  489. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-55e398bd20e2d7a9.js +1 -0
  490. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-55e398bd20e2d7a9.js +1 -0
  491. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-55e398bd20e2d7a9.js +1 -0
  492. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-55e398bd20e2d7a9.js +1 -0
  493. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-55e398bd20e2d7a9.js +1 -0
  494. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-55e398bd20e2d7a9.js +1 -0
  495. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-55e398bd20e2d7a9.js +1 -0
  496. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-55e398bd20e2d7a9.js +1 -0
  497. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-55e398bd20e2d7a9.js +1 -0
  498. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-55e398bd20e2d7a9.js +1 -0
  499. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-55e398bd20e2d7a9.js +1 -0
  500. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-55e398bd20e2d7a9.js +1 -0
  501. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-55e398bd20e2d7a9.js +1 -0
  502. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-55e398bd20e2d7a9.js +1 -0
  503. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-55e398bd20e2d7a9.js +1 -0
  504. package/.next/static/chunks/app/api/worktrees/[id]/route-55e398bd20e2d7a9.js +1 -0
  505. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-55e398bd20e2d7a9.js +1 -0
  506. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-55e398bd20e2d7a9.js +1 -0
  507. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-55e398bd20e2d7a9.js +1 -0
  508. package/.next/static/chunks/app/api/worktrees/[id]/search/route-55e398bd20e2d7a9.js +1 -0
  509. package/.next/static/chunks/app/api/worktrees/[id]/send/route-55e398bd20e2d7a9.js +1 -0
  510. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-55e398bd20e2d7a9.js +1 -0
  511. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-55e398bd20e2d7a9.js +1 -0
  512. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-55e398bd20e2d7a9.js +1 -0
  513. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-55e398bd20e2d7a9.js +1 -0
  514. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-55e398bd20e2d7a9.js +1 -0
  515. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-55e398bd20e2d7a9.js +1 -0
  516. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-55e398bd20e2d7a9.js +1 -0
  517. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-55e398bd20e2d7a9.js +1 -0
  518. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-55e398bd20e2d7a9.js +1 -0
  519. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-55e398bd20e2d7a9.js +1 -0
  520. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-55e398bd20e2d7a9.js +1 -0
  521. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-55e398bd20e2d7a9.js +1 -0
  522. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-55e398bd20e2d7a9.js +1 -0
  523. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-55e398bd20e2d7a9.js +1 -0
  524. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-55e398bd20e2d7a9.js +1 -0
  525. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-55e398bd20e2d7a9.js +1 -0
  526. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-55e398bd20e2d7a9.js +1 -0
  527. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-55e398bd20e2d7a9.js +1 -0
  528. package/.next/static/chunks/app/api/worktrees/route-55e398bd20e2d7a9.js +1 -0
  529. package/.next/static/chunks/app/chat/page-83a2238ab453afaa.js +1 -0
  530. package/.next/static/chunks/app/manifest.webmanifest/route-55e398bd20e2d7a9.js +1 -0
  531. package/.next/static/chunks/app/more/{page-082d4ae496f9a36e.js → page-1619018cac999bbc.js} +1 -1
  532. package/.next/static/chunks/app/proxy/[...path]/route-55e398bd20e2d7a9.js +1 -0
  533. package/.next/static/chunks/app/repositories/page-3c4fb889da48ce24.js +1 -0
  534. package/.next/static/chunks/app/skills/[skillId]/page-6008b904225ebb25.js +1 -0
  535. package/.next/static/chunks/app/skills/installed/page-6641f95e6a6e5f9d.js +1 -0
  536. package/.next/static/chunks/app/skills/page-184f8e23e31a3667.js +1 -0
  537. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-6a45f3744da50d95.js → page-6041d3c3db326317.js} +1 -1
  538. package/.next/static/chunks/app/worktrees/[id]/page-59a63a2c013ec1eb.js +1 -0
  539. package/.next/static/chunks/webpack-180bebdee221b6f4.js +1 -0
  540. package/.next/static/css/d3453a6876553d32.css +1 -0
  541. package/.next/trace +11 -11
  542. package/.next/types/app/api/fs/browse/route.ts +347 -0
  543. package/.next/types/app/api/fs/recent-paths/route.ts +347 -0
  544. package/.next/types/app/api/repositories/validate-path/route.ts +347 -0
  545. package/.next/types/app/api/skills/installations/route.ts +347 -0
  546. package/.next/types/app/api/skills/operations/route.ts +347 -0
  547. package/.next/types/app/api/skills/reindex/route.ts +347 -0
  548. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.ts +347 -0
  549. package/.next/types/app/skills/installed/page.ts +84 -0
  550. package/.next/types/routes.d.ts +10 -2
  551. package/.next/types/validator.ts +72 -0
  552. package/dist/cli/commands/init.d.ts.map +1 -1
  553. package/dist/cli/commands/init.js +15 -0
  554. package/dist/cli/commands/skill.d.ts +2 -1
  555. package/dist/cli/commands/skill.d.ts.map +1 -1
  556. package/dist/cli/commands/skill.js +136 -2
  557. package/dist/cli/types/api-responses.d.ts +40 -0
  558. package/dist/cli/types/api-responses.d.ts.map +1 -1
  559. package/dist/cli/types/index.d.ts +12 -0
  560. package/dist/cli/types/index.d.ts.map +1 -1
  561. package/dist/cli/utils/env-setup.d.ts +8 -0
  562. package/dist/cli/utils/env-setup.d.ts.map +1 -1
  563. package/dist/cli/utils/env-setup.js +23 -0
  564. package/dist/server/src/lib/db/migrations/index.js +2 -0
  565. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  566. package/dist/server/src/lib/db/migrations/v48-skill-operations-audit-index.js +117 -0
  567. package/dist/server/src/lib/git/git-exec.js +48 -1
  568. package/dist/server/src/lib/selected-agents-validator.js +3 -2
  569. package/dist/server/src/lib/skills/compatibility-matrix.js +256 -0
  570. package/dist/server/src/lib/skills/compatibility.js +132 -11
  571. package/dist/server/src/lib/skills/operation-audit.js +85 -15
  572. package/dist/server/src/lib/skills/operation-journal.js +14 -1
  573. package/dist/server/src/types/markdown-editor.js +13 -1
  574. package/package.json +1 -1
  575. package/.next/server/chunks/1808.js +0 -1
  576. package/.next/server/chunks/186.js +0 -1
  577. package/.next/server/chunks/5226.js +0 -28
  578. package/.next/server/chunks/5306.js +0 -2
  579. package/.next/server/chunks/7013.js +0 -1
  580. package/.next/server/chunks/9067.js +0 -1
  581. package/.next/server/chunks/9192.js +0 -1
  582. package/.next/static/1WyelLMRgPnhvA2HmhZmm/_buildManifest.js +0 -1
  583. package/.next/static/chunks/1668-e703b8b55775844b.js +0 -1
  584. package/.next/static/chunks/2069-c55de93eb6403961.js +0 -1
  585. package/.next/static/chunks/3418-7e47651340d940b0.js +0 -1
  586. package/.next/static/chunks/4027-000402aee1e3520b.js +0 -1
  587. package/.next/static/chunks/530.e377b0f1a7a89620.js +0 -1
  588. package/.next/static/chunks/6007-de36119357dcd418.js +0 -1
  589. package/.next/static/chunks/6497-ea466b22a6c1ae89.js +0 -1
  590. package/.next/static/chunks/8361.4bf062be2d2962f4.js +0 -1
  591. package/.next/static/chunks/8566-9da32e46c9d3fd54.js +0 -1
  592. package/.next/static/chunks/934-a37509667baa86ee.js +0 -1
  593. package/.next/static/chunks/app/api/app/update/route-56dad0523d3c4a92.js +0 -1
  594. package/.next/static/chunks/app/api/app/update-check/route-56dad0523d3c4a92.js +0 -1
  595. package/.next/static/chunks/app/api/assistant/conversation/route-56dad0523d3c4a92.js +0 -1
  596. package/.next/static/chunks/app/api/assistant/current-output/route-56dad0523d3c4a92.js +0 -1
  597. package/.next/static/chunks/app/api/assistant/messages/route-56dad0523d3c4a92.js +0 -1
  598. package/.next/static/chunks/app/api/assistant/session/route-56dad0523d3c4a92.js +0 -1
  599. package/.next/static/chunks/app/api/assistant/start/route-56dad0523d3c4a92.js +0 -1
  600. package/.next/static/chunks/app/api/assistant/terminal/route-56dad0523d3c4a92.js +0 -1
  601. package/.next/static/chunks/app/api/assistant/tools/route-56dad0523d3c4a92.js +0 -1
  602. package/.next/static/chunks/app/api/auth/login/route-56dad0523d3c4a92.js +0 -1
  603. package/.next/static/chunks/app/api/auth/logout/route-56dad0523d3c4a92.js +0 -1
  604. package/.next/static/chunks/app/api/auth/status/route-56dad0523d3c4a92.js +0 -1
  605. package/.next/static/chunks/app/api/daily-summary/route-56dad0523d3c4a92.js +0 -1
  606. package/.next/static/chunks/app/api/daily-summary/status/route-56dad0523d3c4a92.js +0 -1
  607. package/.next/static/chunks/app/api/external-apps/[id]/health/route-56dad0523d3c4a92.js +0 -1
  608. package/.next/static/chunks/app/api/external-apps/[id]/route-56dad0523d3c4a92.js +0 -1
  609. package/.next/static/chunks/app/api/external-apps/route-56dad0523d3c4a92.js +0 -1
  610. package/.next/static/chunks/app/api/hooks/claude-done/route-56dad0523d3c4a92.js +0 -1
  611. package/.next/static/chunks/app/api/ollama/models/route-56dad0523d3c4a92.js +0 -1
  612. package/.next/static/chunks/app/api/push/subscriptions/route-56dad0523d3c4a92.js +0 -1
  613. package/.next/static/chunks/app/api/push/vapid/route-56dad0523d3c4a92.js +0 -1
  614. package/.next/static/chunks/app/api/repositories/[id]/route-56dad0523d3c4a92.js +0 -1
  615. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +0 -1
  616. package/.next/static/chunks/app/api/repositories/[id]/todos/route-56dad0523d3c4a92.js +0 -1
  617. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-56dad0523d3c4a92.js +0 -1
  618. package/.next/static/chunks/app/api/repositories/clone/route-56dad0523d3c4a92.js +0 -1
  619. package/.next/static/chunks/app/api/repositories/excluded/route-56dad0523d3c4a92.js +0 -1
  620. package/.next/static/chunks/app/api/repositories/restore/route-56dad0523d3c4a92.js +0 -1
  621. package/.next/static/chunks/app/api/repositories/route-56dad0523d3c4a92.js +0 -1
  622. package/.next/static/chunks/app/api/repositories/scan/route-56dad0523d3c4a92.js +0 -1
  623. package/.next/static/chunks/app/api/repositories/sync/route-56dad0523d3c4a92.js +0 -1
  624. package/.next/static/chunks/app/api/sidebar/group-order/route-56dad0523d3c4a92.js +0 -1
  625. package/.next/static/chunks/app/api/skills/[id]/route-56dad0523d3c4a92.js +0 -1
  626. package/.next/static/chunks/app/api/skills/route-56dad0523d3c4a92.js +0 -1
  627. package/.next/static/chunks/app/api/slash-commands/route-56dad0523d3c4a92.js +0 -1
  628. package/.next/static/chunks/app/api/templates/[id]/route-56dad0523d3c4a92.js +0 -1
  629. package/.next/static/chunks/app/api/templates/route-56dad0523d3c4a92.js +0 -1
  630. package/.next/static/chunks/app/api/todos/route-56dad0523d3c4a92.js +0 -1
  631. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-56dad0523d3c4a92.js +0 -1
  632. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-56dad0523d3c4a92.js +0 -1
  633. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-56dad0523d3c4a92.js +0 -1
  634. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-56dad0523d3c4a92.js +0 -1
  635. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-56dad0523d3c4a92.js +0 -1
  636. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-56dad0523d3c4a92.js +0 -1
  637. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-56dad0523d3c4a92.js +0 -1
  638. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-56dad0523d3c4a92.js +0 -1
  639. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-56dad0523d3c4a92.js +0 -1
  640. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-56dad0523d3c4a92.js +0 -1
  641. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-56dad0523d3c4a92.js +0 -1
  642. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-56dad0523d3c4a92.js +0 -1
  643. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-56dad0523d3c4a92.js +0 -1
  644. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-56dad0523d3c4a92.js +0 -1
  645. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-56dad0523d3c4a92.js +0 -1
  646. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-56dad0523d3c4a92.js +0 -1
  647. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-56dad0523d3c4a92.js +0 -1
  648. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-56dad0523d3c4a92.js +0 -1
  649. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-56dad0523d3c4a92.js +0 -1
  650. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-56dad0523d3c4a92.js +0 -1
  651. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-56dad0523d3c4a92.js +0 -1
  652. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-56dad0523d3c4a92.js +0 -1
  653. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-56dad0523d3c4a92.js +0 -1
  654. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-56dad0523d3c4a92.js +0 -1
  655. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-56dad0523d3c4a92.js +0 -1
  656. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-56dad0523d3c4a92.js +0 -1
  657. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-56dad0523d3c4a92.js +0 -1
  658. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-56dad0523d3c4a92.js +0 -1
  659. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-56dad0523d3c4a92.js +0 -1
  660. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-56dad0523d3c4a92.js +0 -1
  661. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-56dad0523d3c4a92.js +0 -1
  662. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-56dad0523d3c4a92.js +0 -1
  663. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-56dad0523d3c4a92.js +0 -1
  664. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-56dad0523d3c4a92.js +0 -1
  665. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-56dad0523d3c4a92.js +0 -1
  666. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-56dad0523d3c4a92.js +0 -1
  667. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-56dad0523d3c4a92.js +0 -1
  668. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-56dad0523d3c4a92.js +0 -1
  669. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-56dad0523d3c4a92.js +0 -1
  670. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-56dad0523d3c4a92.js +0 -1
  671. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-56dad0523d3c4a92.js +0 -1
  672. package/.next/static/chunks/app/api/worktrees/[id]/route-56dad0523d3c4a92.js +0 -1
  673. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-56dad0523d3c4a92.js +0 -1
  674. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-56dad0523d3c4a92.js +0 -1
  675. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-56dad0523d3c4a92.js +0 -1
  676. package/.next/static/chunks/app/api/worktrees/[id]/search/route-56dad0523d3c4a92.js +0 -1
  677. package/.next/static/chunks/app/api/worktrees/[id]/send/route-56dad0523d3c4a92.js +0 -1
  678. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-56dad0523d3c4a92.js +0 -1
  679. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-56dad0523d3c4a92.js +0 -1
  680. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-56dad0523d3c4a92.js +0 -1
  681. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-56dad0523d3c4a92.js +0 -1
  682. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-56dad0523d3c4a92.js +0 -1
  683. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-56dad0523d3c4a92.js +0 -1
  684. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-56dad0523d3c4a92.js +0 -1
  685. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-56dad0523d3c4a92.js +0 -1
  686. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-56dad0523d3c4a92.js +0 -1
  687. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-56dad0523d3c4a92.js +0 -1
  688. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-56dad0523d3c4a92.js +0 -1
  689. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +0 -1
  690. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-56dad0523d3c4a92.js +0 -1
  691. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-56dad0523d3c4a92.js +0 -1
  692. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-56dad0523d3c4a92.js +0 -1
  693. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-56dad0523d3c4a92.js +0 -1
  694. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-56dad0523d3c4a92.js +0 -1
  695. package/.next/static/chunks/app/api/worktrees/route-56dad0523d3c4a92.js +0 -1
  696. package/.next/static/chunks/app/chat/page-623f5cb9040de639.js +0 -1
  697. package/.next/static/chunks/app/manifest.webmanifest/route-56dad0523d3c4a92.js +0 -1
  698. package/.next/static/chunks/app/proxy/[...path]/route-56dad0523d3c4a92.js +0 -1
  699. package/.next/static/chunks/app/repositories/page-70d4b997492884b8.js +0 -1
  700. package/.next/static/chunks/app/skills/[skillId]/page-68ed5e9186efe56d.js +0 -1
  701. package/.next/static/chunks/app/skills/page-46242c428ee8bccf.js +0 -1
  702. package/.next/static/chunks/app/worktrees/[id]/page-983a80ece6289026.js +0 -1
  703. package/.next/static/chunks/webpack-e655374fed175528.js +0 -1
  704. package/.next/static/css/b4bdb1f3457fe9a7.css +0 -1
  705. /package/.next/static/{1WyelLMRgPnhvA2HmhZmm → AKqbAyuzbFfg05qpbCI_K}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- "use strict";exports.id=1808,exports.ids=[1808],exports.modules={3805:(a,b,c)=>{c.d(b,{u:()=>k});var d=c(21124);c(38301);var e=c(71117),f=c(16945),g=c(93983),h=c(35595);let i={info:"bg-info-subtle border-info-border text-info-foreground",warning:"bg-warning-subtle border-warning-border text-warning-foreground",danger:"bg-danger-subtle border-danger-border text-danger-foreground",neutral:"bg-muted border-border text-muted-foreground"},j={info:e.A,warning:f.A,danger:g.A,neutral:e.A};function k({tone:a="neutral",children:b,className:c,"data-testid":e}){let f=j[a];return(0,d.jsxs)("div",{"data-testid":e,className:(0,h.cn)("flex items-start gap-2 rounded-md border px-3 py-2 text-xs leading-relaxed",i[a],c),children:[(0,d.jsx)(f,{size:14,"aria-hidden":"true",className:"mt-0.5 shrink-0"}),(0,d.jsx)("div",{className:"min-w-0",children:b})]})}},27884:(a,b,c)=>{c.d(b,{$d:()=>C,AJ:()=>D,AS:()=>k,Et:()=>h,FW:()=>s,H$:()=>d,IV:()=>z,KL:()=>l,Mj:()=>o,OV:()=>e,RG:()=>y,RO:()=>q,TE:()=>i,e5:()=>v,eK:()=>f,gh:()=>A,hJ:()=>p,kF:()=>n,pP:()=>g,pk:()=>u,r0:()=>B,tC:()=>j,z2:()=>m});let d={compatible:"success",incompatible:"error",unknown:"warning"},e={compatible:"compatibility.status.compatible",incompatible:"compatibility.status.incompatible",unknown:"compatibility.status.unknown"},f={low:"gray",moderate:"warning",high:"error"},g={low:"risk.level.low",moderate:"risk.level.moderate",high:"risk.level.high"},h={native:"success",commandmate_runtime:"info",unsupported:"error",unknown:"warning"},i={SKILL_RECOMMEND_HIGHEST_COMPATIBLE:"detail.recommendation.highestCompatible",SKILL_RECOMMEND_LATEST_UNVERIFIED:"detail.recommendation.latestUnverified",SKILL_RECOMMEND_NONE_COMPATIBLE:"detail.recommendation.noneCompatible",SKILL_RECOMMEND_NO_VERSIONS:"detail.recommendation.noVersions"},j={add:"info",modify:"warning",unchanged:"gray",conflict:"error",unmanaged:"error"},k={add:"plan.change.add",modify:"plan.change.modify",unchanged:"plan.change.unchanged",conflict:"plan.change.conflict",unmanaged:"plan.change.unmanaged"},l={SKILL_DIFF_NEW_FILE:"plan.diffReason.newFile",SKILL_DIFF_CONTENT_IDENTICAL:"plan.diffReason.contentIdentical",SKILL_DIFF_MANAGED_UPDATE:"plan.diffReason.managedUpdate",SKILL_DIFF_LOCAL_MODIFICATION:"plan.diffReason.localModification",SKILL_DIFF_UNMANAGED_SKILL:"plan.diffReason.unmanagedSkill",SKILL_DIFF_RECEIPT_ORPHAN:"plan.diffReason.receiptOrphan",SKILL_DIFF_NOT_A_REGULAR_FILE:"plan.diffReason.notARegularFile"},m={filesystem_read:"plan.permission.filesystemRead",filesystem_write:"plan.permission.filesystemWrite",network_access:"plan.permission.networkAccess",process_execution:"plan.permission.processExecution",environment_read:"plan.permission.environmentRead",credential_access:"plan.permission.credentialAccess"},n={attached:"plan.headState.attached",detached:"plan.headState.detached",unborn:"plan.headState.unborn",unknown:"plan.headState.unknown"},o={remove:"uninstall.disposition.remove",modified:"uninstall.disposition.modified",missing:"uninstall.disposition.missing",unknown:"uninstall.disposition.unknown",irregular:"uninstall.disposition.irregular"},p={SKILL_UNINSTALL_MANAGED_UNCHANGED:"uninstall.reason.managedUnchanged",SKILL_UNINSTALL_LOCAL_MODIFICATION:"uninstall.reason.localModification",SKILL_UNINSTALL_RECEIPT_ORPHAN:"uninstall.reason.receiptOrphan",SKILL_UNINSTALL_UNMANAGED_FILE:"uninstall.reason.unmanagedFile",SKILL_UNINSTALL_NOT_A_REGULAR_FILE:"uninstall.reason.notARegularFile",SKILL_UNINSTALL_NOT_INSTALLED:"uninstall.reason.notInstalled",SKILL_UNINSTALL_RECEIPT_MISSING:"uninstall.reason.receiptMissing",SKILL_UNINSTALL_RECEIPT_UNREADABLE:"uninstall.reason.receiptUnreadable",SKILL_UNINSTALL_RECEIPT_FOREIGN:"uninstall.reason.receiptForeign",SKILL_UNINSTALL_TREE_SCAN_TRUNCATED:"uninstall.reason.treeScanTruncated"},q={SKILL_PREVIEW_DETACHED_HEAD:"plan.warning.detachedHead",SKILL_PREVIEW_UNBORN_HEAD:"plan.warning.unbornHead",SKILL_PREVIEW_HEAD_UNRESOLVED:"plan.warning.headUnresolved",SKILL_PREVIEW_WORKING_TREE_DIRTY:"plan.warning.workingTreeDirty",SKILL_PREVIEW_PATH_GIT_IGNORED:"plan.warning.pathGitIgnored",SKILL_PREVIEW_DIFF_TRUNCATED:"plan.warning.diffTruncated",SKILL_PREVIEW_BINARY_CONTENT:"plan.warning.binaryContent",SKILL_PREVIEW_LINE_ENDING_CRLF:"plan.warning.lineEndingCrlf",SKILL_PREVIEW_TREE_SCAN_TRUNCATED:"plan.warning.treeScanTruncated"},r={SKILL_PLAN_STALE:"operation.error.planStale",SKILL_PLAN_EXPIRED:"operation.error.planExpired",SKILL_PLAN_CONSUMED:"operation.error.planConsumed",SKILL_PLAN_NOT_FOUND:"operation.error.planNotFound",SKILL_PLAN_BINDING_MISMATCH:"operation.error.planBindingMismatch",SKILL_PLAN_NOT_INSTALLABLE:"operation.error.planNotInstallable",SKILL_PLAN_RISK_NOT_ACKNOWLEDGED:"operation.error.planRiskNotAcknowledged",SKILL_INSTALL_LOCKED:"operation.error.installLocked",SKILL_INSTALL_IN_PROGRESS:"operation.error.installInProgress",SKILL_INSTALL_DESTINATION_EXISTS:"operation.error.installDestinationExists",SKILL_INSTALL_DESTINATION_UNMANAGED:"operation.error.installDestinationUnmanaged",SKILL_INSTALL_IDEMPOTENCY_CONFLICT:"operation.error.installIdempotencyConflict",SKILL_INSTALL_FAILED:"operation.error.installFailed",SKILL_UNINSTALL_LOCKED:"operation.error.uninstallLocked",SKILL_UNINSTALL_IN_PROGRESS:"operation.error.uninstallInProgress",SKILL_UNINSTALL_IDEMPOTENCY_CONFLICT:"operation.error.uninstallIdempotencyConflict",SKILL_UNINSTALL_NOT_INSTALLED:"operation.error.uninstallNotInstalled",SKILL_UNINSTALL_BLOCKED:"operation.error.uninstallBlocked",SKILL_UNINSTALL_DRIFT:"operation.error.uninstallDrift",SKILL_UNINSTALL_FILE_CHANGED:"operation.error.uninstallFileChanged",SKILL_UNINSTALL_FAILED:"operation.error.uninstallFailed",SKILL_REQUEST_FAILED:"operation.error.requestFailed"};function s(a){return r[a]??"operation.error.unexpected"}let t={SKILL_CATALOG_FETCH_FAILED:"catalog.reason.fetchFailed",SKILL_CATALOG_RATE_LIMITED:"catalog.reason.rateLimited",SKILL_CATALOG_OVERSIZED:"catalog.reason.oversized",SKILL_CATALOG_MALFORMED:"catalog.reason.malformed",SKILL_CATALOG_INVALID_SCHEMA:"catalog.reason.invalidSchema"};function u(a){return a&&t[a]||"catalog.reason.unknown"}function v(a){return a.startsWith("skills.")?a.slice(7):a}let w=/!\[([^\]]*)\]\([^)]*\)/g,x=/<\/?(?:img|picture|source|video|audio|iframe|embed|object|track)\b[^>]*>/gi;function y(a){return a.replace(w,"$1").replace(x,"")}let z={query:"",compatibility:"all",risk:"all",agent:"all"};function A(a){let b=a.versions.find(b=>b.version===a.recommendedVersion);return(b??a.versions[0])?.declaredRisk??null}function B(a){let b=new Set;for(let c of a.versions)for(let a of c.compatibility.agents)("native"===a.support||"commandmate_runtime"===a.support)&&b.add(a.agent);return[...b].sort()}function C(a,b){return a.filter(a=>!!function(a,b){let c=b.trim().toLowerCase();return 0===c.length||[a.name,a.summary,a.id,a.provider.name,...a.keywords].some(a=>a.toLowerCase().includes(c))}(a,b.query)&&("all"===b.compatibility||a.compatibility?.status===b.compatibility)&&("all"===b.risk||A(a)===b.risk)&&("all"===b.agent||!!B(a).includes(b.agent)))}function D(a){let b=new Set;for(let c of a)for(let a of c.versions)for(let c of a.compatibility.agents)b.add(c.agent);return[...b].sort()}},28593:(a,b,c)=>{c.d(b,{Xz:()=>j,qW:()=>k,uE:()=>l});var d=c(21124);c(38301);var e=c(20481),f=c(93983),g=c(73451),h=c(17252),i=c(27884);function j({status:a,className:b}){let c=(0,e.c)("skills");return(0,d.jsx)(g.Ex,{variant:i.H$[a],className:b,"data-testid":`skill-compatibility-${a}`,children:c(i.OV[a])})}function k({risk:a,className:b}){let c=(0,e.c)("skills");return(0,d.jsxs)(g.Ex,{variant:i.eK[a],className:b,"data-testid":`skill-declared-risk-${a}`,children:["high"===a&&(0,d.jsx)(f.A,{size:12,"aria-hidden":"true",className:"mr-1 shrink-0"}),c("risk.declaredLabel",{level:c(i.pP[a])})]})}function l({agent:a}){let b=(0,e.c)("skills");return(0,d.jsxs)(g.Ex,{variant:i.Et[a.support],"data-testid":`skill-agent-${a.agent}-${a.support}`,children:[(0,h.f_)(a.agent),": ",b((0,i.e5)(a.labelKey))]})}},30156:(a,b,c)=>{c.d(b,{Db:()=>k,E:()=>q,Gj:()=>l,Q6:()=>n,Xi:()=>o,hN:()=>p,s5:()=>j});let d="SKILL_CATALOG_UNREACHABLE",e="SKILL_REQUEST_FAILED";function f(a,b,c){let d=a&&"object"==typeof a?a:{},e={code:!function(a){if(!a||"object"!=typeof a)return!1;let{error:b,code:c}=a;return"string"==typeof b&&"string"==typeof c}(a)?c:a.code,message:"string"==typeof d.error?d.error:"",status:b};return Array.isArray(d.blockers)&&(e.blockers=d.blockers),"string"==typeof d.nextActionKey&&(e.nextActionKey=d.nextActionKey),e}async function g(a,b){let c=await fetch(a,{signal:b,headers:{Accept:"application/json"}}),e=await c.json().catch(()=>null);return c.ok?{ok:!0,data:e}:{ok:!1,failure:f(e,c.status,d)}}async function h(a,b,c){let d=await fetch(a,{method:"POST",signal:c,headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(b)}),g=await d.json().catch(()=>null);return d.ok?{ok:!0,data:g}:{ok:!1,failure:f(g,d.status,e)}}async function i(a,b,c){try{return await a()}catch(a){if(c?.aborted)throw a;return{ok:!1,failure:{code:b,message:a instanceof Error?a.message:"",status:null}}}}function j(a){return i(()=>g("/api/skills",a),d,a)}function k(a,b){return i(()=>g(`/api/skills/${encodeURIComponent(a)}`,b),d,b)}function l(a,b){return i(()=>g(`/api/worktrees/${encodeURIComponent(a)}/skills`,b),e,b)}function m(a,b,c){return`/api/worktrees/${encodeURIComponent(a)}/skills/${encodeURIComponent(b)}/${c}`}function n(a,b,c={},d){let f={};return c.version&&(f.version=c.version),c.acknowledgeRisk&&(f.acknowledgeRisk=!0),i(()=>h(m(a,b,"plan"),f,d),e,d)}function o(a,b,c,d){let f={planToken:c.planToken,version:c.version};return c.acknowledgeRisk&&(f.acknowledgeRisk=!0),c.idempotencyKey&&(f.idempotencyKey=c.idempotencyKey),i(()=>h(m(a,b,"install"),f,d),e,d)}function p(a,b,c){return i(()=>h(m(a,b,"uninstall-plan"),{},c),e,c)}function q(a,b,c,d){let f={planToken:c.planToken};return c.idempotencyKey&&(f.idempotencyKey=c.idempotencyKey),i(()=>h(m(a,b,"uninstall"),f,d),e,d)}},93983:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(23339).A)("shield-alert",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]])}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=186,exports.ids=[186],exports.modules={9815:(a,b,c)=>{c.d(b,{B:()=>A});var d=c(21124),e=c(38301),f=c(20481),g=c(73451),h=c(17252),i=c(90349),j=c(3805);let k={status:"loading",options:[]};function l({selectedWorktreeId:a,onSelect:b,disabled:c=!1}){let h=(0,f.c)("skills"),[i,l]=(0,e.useState)(k),[n,o]=(0,e.useState)(0),p=(0,e.useCallback)(()=>o(a=>a+1),[]);return"loading"===i.status?(0,d.jsxs)("div",{className:"space-y-2","data-testid":"skill-target-loading",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:h("target.loading")}),(0,d.jsx)(g.EA,{className:"h-24 w-full rounded-lg"})]}):"error"===i.status?(0,d.jsxs)(g.Zp,{className:"space-y-3","data-testid":"skill-target-error",children:[(0,d.jsx)(j.u,{tone:"danger",children:h("target.errorNotice")}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:p,"data-testid":"skill-target-retry",children:h("target.retry")})]}):0===i.options.length?(0,d.jsx)(g.Zp,{"data-testid":"skill-target-empty",children:(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:h("target.empty")})}):(0,d.jsxs)("div",{className:"space-y-3","data-testid":"skill-target-selector",children:[(0,d.jsx)("div",{role:"radiogroup","aria-label":h("target.heading"),className:"space-y-2",children:i.options.map(e=>(0,d.jsx)(m,{option:e,selected:e.id===a,disabled:c,onSelect:b},e.id))}),(0,d.jsx)(j.u,{tone:"neutral","data-testid":"skill-target-branch-notice",children:h("target.branchFreshnessNotice")})]})}function m({option:a,selected:b,disabled:c,onSelect:e}){let h=(0,f.c)("skills"),i=a.liveBranch??a.syncedBranch;return(0,d.jsxs)("button",{type:"button",role:"radio","aria-checked":b,disabled:c,onClick:()=>e(a.id),"data-testid":`skill-target-option-${a.id}`,className:`w-full rounded-lg border px-3 py-2.5 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-60 ${b?"border-accent-500 bg-accent-50 dark:bg-accent-950/40":"border-border bg-card hover:bg-muted"}`,children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-semibold text-foreground break-all",children:a.name}),b&&(0,d.jsx)(g.Ex,{variant:"info",children:h("target.selected")})]}),(0,d.jsxs)("dl",{className:"mt-1.5 grid grid-cols-1 gap-x-4 gap-y-1 sm:grid-cols-2",children:[(0,d.jsx)(n,{label:h("target.repository"),children:a.repositoryName}),(0,d.jsx)(n,{label:h("target.branch"),children:i??h("target.branchUnknown")}),(0,d.jsx)(n,{label:h("target.agents"),children:a.agents.length>0?a.agents.join(", "):h("target.agentsNone")}),(0,d.jsx)(n,{label:h("target.workingTree"),children:h(null===a.dirty?"target.workingTreeUnknown":a.dirty?"target.workingTreeDirty":"target.workingTreeClean")})]}),a.sessionRunning&&(0,d.jsx)("p",{className:"mt-1.5 text-xs text-muted-foreground","data-testid":`skill-target-session-${a.id}`,children:h("target.sessionRunning")})]})}function n({label:a,children:b}){return(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:a}),(0,d.jsx)("dd",{className:"text-xs text-foreground break-words",children:b})]})}var o=c(27884);function p({label:a,children:b}){return(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:a}),(0,d.jsx)("dd",{className:"mt-0.5 break-words text-sm text-foreground",children:b})]})}function q({level:a,kind:b,label:c}){let e=(0,f.c)("skills");return(0,d.jsxs)(g.Ex,{variant:o.eK[a],"data-testid":`skill-plan-risk-${b}-${a}`,children:[c,": ",e(o.pP[a])]})}function r({entry:a}){let b=(0,f.c)("skills"),c=o.KL[a.reason];return(0,d.jsxs)("li",{className:"space-y-1.5 rounded-md border border-border px-3 py-2","data-testid":`skill-plan-file-${a.path}`,children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)(g.Ex,{variant:o.tC[a.change],children:b(o.AS[a.change])}),(0,d.jsx)("span",{className:"break-all font-mono text-xs text-foreground",children:a.path}),a.generated&&(0,d.jsx)(g.Ex,{variant:"gray",children:b("plan.fileGenerated")})]}),c&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b(c)}),a.gitIgnored&&(0,d.jsx)("p",{className:"text-xs text-warning-foreground",children:b("plan.gitIgnored")}),a.binary?(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("plan.diffBinary")}):a.diff?(0,d.jsxs)("details",{children:[(0,d.jsx)("summary",{className:"cursor-pointer text-xs text-accent-600 dark:text-accent-400",children:b("plan.diffToggle",{additions:a.additions,deletions:a.deletions})}),(0,d.jsx)("pre",{className:"mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-[11px] leading-snug text-foreground",children:a.diff}),a.diffTruncated&&(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:b("plan.diffTruncated")})]}):null]})}function s({plan:a}){let b=(0,f.c)("skills"),{target:c,skill:e}=a,h=e.compatibility.commandmate;return(0,d.jsxs)(g.Zp,{className:"space-y-4","data-testid":"skill-install-plan",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:b("plan.heading")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("plan.expiresAt",{timestamp:a.expiresAt})})]}),(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.targetHeading")}),(0,d.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,d.jsx)(p,{label:b("target.repository"),children:c.repositoryName}),(0,d.jsx)(p,{label:b("target.heading"),children:c.worktreeName}),(0,d.jsx)(p,{label:b("target.branch"),children:c.branch??b("target.branchUnknown")}),(0,d.jsx)(p,{label:b("plan.headStateLabel"),children:b(o.kF[c.headState]??"plan.headState.unknown")}),(0,d.jsx)(p,{label:b("target.workingTree"),children:c.workingTreeDirty?b("target.workingTreeDirty"):b("target.workingTreeClean")}),(0,d.jsx)(p,{label:b("plan.installRoot"),children:(0,d.jsx)("span",{className:"break-all font-mono text-xs",children:(c.installRoots&&c.installRoots.length>0?c.installRoots:[c.installRoot]).map(a=>(0,d.jsx)("span",{className:"block",children:a},a))})}),(0,d.jsx)(p,{label:b("plan.existingInstall"),children:c.existingInstall?b("plan.existingInstallVersion",{version:c.existingInstall.version}):b("plan.existingInstallNone")}),(0,d.jsx)(p,{label:b("detail.recommendedVersion"),children:(0,d.jsx)("span",{className:"font-mono text-xs",children:e.version})})]})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-risk-section",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.riskHeading")}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,d.jsx)(q,{level:e.declaredRisk,kind:"declared",label:b("plan.riskDeclared")}),(0,d.jsx)(q,{level:e.computedRisk,kind:"computed",label:b("plan.riskComputed")}),(0,d.jsx)(q,{level:e.effectiveRisk,kind:"effective",label:b("plan.riskEffective")})]}),(0,d.jsx)("p",{className:"break-words text-sm text-foreground",children:e.riskRationale}),(0,d.jsx)(j.u,{tone:"neutral",children:b("plan.riskNotice")})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-permissions",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("permissions.heading")}),e.declaredPermissions.length>0?(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:e.declaredPermissions.map(a=>(0,d.jsx)(g.Ex,{variant:"warning",children:o.z2[a]?b(o.z2[a]):a},a))}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("plan.permissionsNone")}),(0,d.jsx)(j.u,{tone:"warning",children:b("permissions.declarationOnlyNotice")})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-requirements",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("requirements.heading")}),0===e.requirements.commands.length&&0===e.requirements.networkHosts.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("plan.requirementsNone")}):(0,d.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[e.requirements.commands.length>0&&(0,d.jsx)(p,{label:b("plan.requirementsCommands"),children:e.requirements.commands.map(a=>`${a.name} ${a.versionRange??b("plan.commandAnyVersion")}`).join(", ")}),e.requirements.networkHosts.length>0&&(0,d.jsx)(p,{label:b("plan.requirementsHosts"),children:e.requirements.networkHosts.join(", ")})]})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-scripts",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.scriptsHeading")}),0===e.executablePaths.length&&0===e.scriptPaths.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("plan.scriptsNone")}):(0,d.jsx)("ul",{className:"space-y-1",children:[...new Set([...e.scriptPaths,...e.executablePaths])].map(a=>(0,d.jsx)("li",{className:"break-all font-mono text-xs text-foreground",children:a},a))})]}),"compatible"!==h.status&&(0,d.jsx)(j.u,{tone:"warning","data-testid":"skill-plan-compatibility-notice",children:b((0,o.e5)(h.messageKey),{range:h.requiredRange,currentVersion:h.currentVersion??""})}),a.warnings.length>0&&(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-warnings",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.warningsHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:a.warnings.map(a=>(0,d.jsx)("li",{className:"text-xs text-warning-foreground",children:o.RO[a]?b(o.RO[a]):a},a))})]}),(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-files",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("plan.filesHeading")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-plan-stats",children:b("plan.stats",{added:a.stats.added,modified:a.stats.modified,unchanged:a.stats.unchanged,conflicted:a.stats.conflicted,unmanaged:a.stats.unmanaged})}),0===a.files.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("plan.filesEmpty")}):(0,d.jsx)("ul",{className:"space-y-2",children:a.files.map(a=>(0,d.jsx)(r,{entry:a},a.path))})]}),a.blockers.length>0&&(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-install-blockers",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-danger-foreground",children:b("plan.blockersHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:a.blockers.map(a=>(0,d.jsxs)("li",{className:"text-xs text-danger-foreground",children:[a.path&&(0,d.jsx)("span",{className:"mr-1 break-all font-mono",children:a.path}),a.code.startsWith("skills.")?b((0,o.e5)(a.code),{range:h.requiredRange,currentVersion:h.currentVersion??""}):o.KL[a.code]?b(o.KL[a.code]):a.code]},`${a.code}:${a.path??""}`))}),(0,d.jsx)(j.u,{tone:"danger",children:b("plan.blockedNotice")})]})]})}function t({entry:a}){let b=(0,f.c)("skills"),c=o.Mj[a.disposition],e=o.hJ[a.reason];return(0,d.jsxs)("li",{className:"flex flex-wrap items-center gap-2","data-testid":`skill-uninstall-file-${a.path}`,children:[(0,d.jsx)(g.Ex,{variant:"remove"===a.disposition?"info":"warning",children:c?b(c):a.disposition}),(0,d.jsx)("span",{className:"break-all font-mono text-xs text-foreground",children:a.path}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:b(e)})]})}function u({plan:a}){let b=(0,f.c)("skills"),{target:c,skill:e}=a;return(0,d.jsxs)(g.Zp,{className:"space-y-4","data-testid":"skill-uninstall-plan",children:[(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:b("uninstall.heading")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:b("uninstall.expiresAt",{timestamp:a.expiresAt})})]}),(0,d.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,d.jsx)(p,{label:b("target.repository"),children:c.repositoryName}),(0,d.jsx)(p,{label:b("target.heading"),children:c.worktreeName}),(0,d.jsx)(p,{label:b("target.branch"),children:c.branch??b("target.branchUnknown")}),(0,d.jsx)(p,{label:b("uninstall.installedVersion"),children:(0,d.jsx)("span",{className:"font-mono text-xs",children:e.version||b("uninstall.versionUnknown")})}),(0,d.jsx)(p,{label:b("plan.installRoot"),children:(0,d.jsx)("span",{className:"break-all font-mono text-xs",children:c.installRoot})}),(0,d.jsx)(p,{label:b("target.workingTree"),children:c.workingTreeDirty?b("target.workingTreeDirty"):b("target.workingTreeClean")})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-uninstall-stats",children:b("uninstall.stats",{removable:a.stats.removable,modified:a.stats.modified,missing:a.stats.missing,unknown:a.stats.unknown,irregular:a.stats.irregular})}),(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("uninstall.removalsHeading")}),0===a.removals.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("uninstall.removalsEmpty")}):(0,d.jsx)("ul",{className:"space-y-1.5",children:a.removals.map(a=>(0,d.jsx)(t,{entry:a},a.path))})]}),(0,d.jsxs)("section",{className:"space-y-2",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:b("uninstall.retainedHeading")}),0===a.retained.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:b("uninstall.retainedEmpty")}):(0,d.jsx)("ul",{className:"space-y-1.5",children:a.retained.map(a=>(0,d.jsx)(t,{entry:a},a.path))})]}),(0,d.jsxs)("div",{className:"space-y-2",children:[a.skill.agents.length>0&&(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5","data-testid":"skill-uninstall-agents",children:a.skill.agents.map(a=>(0,d.jsx)(g.Ex,{variant:"gray",children:(0,h.f_)(a.agent)},a.agent))}),(0,d.jsx)(j.u,{tone:"neutral",children:b((0,o.e5)(a.nextActionKey))})]}),a.blockers.length>0&&(0,d.jsxs)("section",{className:"space-y-2","data-testid":"skill-uninstall-blockers",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-danger-foreground",children:b("uninstall.blockersHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:a.blockers.map(a=>(0,d.jsxs)("li",{className:"text-xs text-danger-foreground",children:[a.path&&(0,d.jsx)("span",{className:"mr-1 break-all font-mono",children:a.path}),b((0,o.e5)(a.messageKey))]},`${a.code}:${a.path??""}`))})]})]})}var v=c(30156);let w={worktreeId:null,busy:null,installPlan:null,uninstallPlan:null,installResult:null,uninstallResult:null,riskAcknowledged:!1,failure:null};function x(a){return{...a,installPlan:null,uninstallPlan:null,installResult:null,uninstallResult:null,riskAcknowledged:!1,failure:null}}function y({failure:a}){let b=(0,f.c)("skills");return(0,d.jsxs)("div",{className:"space-y-2","data-testid":"skill-operation-error",children:[(0,d.jsxs)(j.u,{tone:"danger",children:[(0,d.jsx)("p",{className:"font-medium",children:b("operation.errorHeading")}),(0,d.jsx)("p",{className:"mt-1",children:b((0,o.FW)(a.code))}),(0,d.jsx)("p",{className:"mt-1 break-words",children:b("state.errorCode",{code:a.code})})]}),a.nextActionKey&&(0,d.jsx)(j.u,{tone:"warning",children:b((0,o.e5)(a.nextActionKey))}),a.blockers&&a.blockers.length>0&&(0,d.jsx)("ul",{className:"space-y-1","data-testid":"skill-operation-error-blockers",children:a.blockers.map(a=>(0,d.jsxs)("li",{className:"text-xs text-danger-foreground",children:[a.path&&(0,d.jsx)("span",{className:"mr-1 break-all font-mono",children:a.path}),b((0,o.e5)(a.messageKey))]},`${a.code}:${a.path??""}`))})]})}function z({agents:a,skillId:b,version:c}){let e=(0,f.c)("skills");return 0===a.length?null:(0,d.jsxs)("div",{className:"space-y-1","data-testid":"skill-operation-reload",children:[(0,d.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:e("operation.reloadHeading")}),(0,d.jsx)("ul",{className:"space-y-1",children:a.map(a=>(0,d.jsx)("li",{className:"text-xs text-muted-foreground",children:e((0,o.e5)(a.messageKey),{agent:(0,h.f_)(a.agent),skillId:b,version:c})},a.agent))})]})}function A({skillId:a,version:b,blockedReason:c,worktreeId:h}){let k=(0,f.c)("skills"),[m,n]=(0,e.useState)(()=>h?{...w,worktreeId:h}:w),p=(0,e.useCallback)(a=>{n(b=>b.worktreeId===a?b:x({...b,worktreeId:a,busy:null}))},[]),q=(0,e.useCallback)(async()=>{let c=m.worktreeId;if(!c)return;n(a=>({...x(a),busy:"install-plan"}));let d=await (0,v.Q6)(c,a,{version:b??void 0});n(a=>({...a,busy:null,installPlan:d.ok?d.data.plan:null,failure:d.ok?null:d.failure}))},[a,m.worktreeId,b]),r=(0,e.useCallback)(async()=>{var b;let c=m.worktreeId,d=m.installPlan;if(!c||!d||d.requiresRiskAcknowledgement&&!m.riskAcknowledged)return;n(a=>({...a,busy:"install-apply",failure:null}));let e=await (0,v.Xi)(c,a,{planToken:d.token,version:d.skill.version,acknowledgeRisk:!!d.requiresRiskAcknowledgement||void 0,idempotencyKey:(b=d.token,`skill-install-${b}`)});e.ok&&(0,i.k)(c),n(a=>({...a,busy:null,installPlan:e.ok?null:a.installPlan,installResult:e.ok?e.data:null,failure:e.ok?null:e.failure}))},[a,m.installPlan,m.riskAcknowledged,m.worktreeId]),t=(0,e.useCallback)(async()=>{let b=m.worktreeId;if(!b)return;n(a=>({...x(a),busy:"uninstall-plan"}));let c=await (0,v.hN)(b,a);n(a=>({...a,busy:null,uninstallPlan:c.ok?c.data.plan:null,failure:c.ok?null:c.failure}))},[a,m.worktreeId]),A=(0,e.useCallback)(async()=>{var b;let c=m.worktreeId,d=m.uninstallPlan;if(!c||!d)return;n(a=>({...a,busy:"uninstall-apply",failure:null}));let e=await (0,v.E)(c,a,{planToken:d.token,idempotencyKey:(b=d.token,`skill-uninstall-${b}`)});n(a=>({...a,busy:null,uninstallPlan:e.ok?null:a.uninstallPlan,uninstallResult:e.ok?e.data:null,failure:e.ok?null:e.failure}))},[a,m.uninstallPlan,m.worktreeId]),B=(0,e.useCallback)(()=>{n(a=>x(a))},[]),C=null!==m.busy,D=m.installPlan,E=m.uninstallPlan,F=c??k(m.worktreeId?"plan.ready":"plan.chooseTarget"),G=null!==D&&D.requiresRiskAcknowledgement&&!m.riskAcknowledged;return(0,d.jsxs)("div",{className:"space-y-3","data-testid":"skill-install-panel",children:[!h&&(0,d.jsx)(l,{selectedWorktreeId:m.worktreeId,onSelect:p,disabled:C}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{variant:"primary",disabled:C||null!==c||!m.worktreeId,onClick:q,"data-testid":"skill-install-action","aria-describedby":"skill-install-reason",children:k("install-plan"===m.busy?"plan.building":"plan.build")}),(0,d.jsx)(g.$n,{variant:"secondary",disabled:C||!m.worktreeId,onClick:t,"data-testid":"skill-uninstall-action",children:k("uninstall-plan"===m.busy?"uninstall.building":"uninstall.build")})]}),(0,d.jsx)("p",{id:"skill-install-reason",className:"text-sm text-muted-foreground","data-testid":"skill-install-reason",children:F}),m.failure&&(0,d.jsx)(y,{failure:m.failure}),D&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(s,{plan:D}),D.requiresRiskAcknowledgement&&(0,d.jsxs)(g.Zp,{className:"space-y-3","data-testid":"skill-install-risk-acknowledgement",children:[(0,d.jsx)(j.u,{tone:"danger",children:k((0,o.e5)(D.riskAcknowledgementMessageKey??"skills.plan.highRiskAcknowledgement"))}),(0,d.jsxs)("label",{className:"flex items-start gap-2 text-sm text-foreground",children:[(0,d.jsx)(g.Sc,{checked:m.riskAcknowledged,onCheckedChange:a=>n(b=>({...b,riskAcknowledged:!0===a})),disabled:C,"data-testid":"skill-install-risk-checkbox",className:"mt-0.5"}),(0,d.jsx)("span",{children:k("plan.acknowledgeLabel")})]})]}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{variant:D.requiresRiskAcknowledgement?"danger":"primary",disabled:C||!D.installable||G,onClick:r,"data-testid":"skill-install-confirm",children:k("install-apply"===m.busy?"plan.confirming":"plan.confirm")}),(0,d.jsx)(g.$n,{variant:"ghost",disabled:C,onClick:B,"data-testid":"skill-install-discard",children:k("plan.discard")})]})]}),E&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)(u,{plan:E}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(g.$n,{variant:"danger",disabled:C||!E.removable,onClick:A,"data-testid":"skill-uninstall-confirm",children:k("uninstall-apply"===m.busy?"uninstall.confirming":"uninstall.confirm")}),(0,d.jsx)(g.$n,{variant:"ghost",disabled:C,onClick:B,"data-testid":"skill-uninstall-discard",children:k("plan.discard")})]})]}),m.installResult&&(0,d.jsxs)(g.Zp,{className:"space-y-3","data-testid":"skill-install-result",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:k("operation.installedHeading")}),(0,d.jsx)(j.u,{tone:"info",children:k((0,o.e5)(m.installResult.operation.nextActionKey))}),m.installResult.operation.replayed&&(0,d.jsx)(j.u,{tone:"neutral","data-testid":"skill-operation-replayed",children:k("operation.replayNotice")}),m.installResult.install&&"files"in m.installResult.install&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:k("operation.filesWritten",{count:m.installResult.install.files.length})}),"reload"in m.installResult&&(0,d.jsx)(z,{agents:m.installResult.reload.agents,skillId:m.installResult.reload.skillId,version:m.installResult.reload.version}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:B,"data-testid":"skill-operation-reset",children:k("operation.startOver")})]}),m.uninstallResult&&(0,d.jsxs)(g.Zp,{className:"space-y-3","data-testid":"skill-uninstall-result",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:k("operation.uninstalledHeading")}),(0,d.jsx)(j.u,{tone:"info",children:k((0,o.e5)(m.uninstallResult.operation.nextActionKey))}),m.uninstallResult.operation.replayed&&(0,d.jsx)(j.u,{tone:"neutral","data-testid":"skill-operation-replayed",children:k("operation.replayNotice")}),m.uninstallResult.uninstall&&"removedFiles"in m.uninstallResult.uninstall&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:k("operation.filesRemoved",{count:m.uninstallResult.uninstall.removedFiles.length})}),"reload"in m.uninstallResult&&(0,d.jsx)(z,{agents:m.uninstallResult.reload.agents,skillId:m.uninstallResult.reload.skillId,version:m.uninstallResult.reload.version}),(0,d.jsx)(g.$n,{variant:"secondary",size:"sm",onClick:B,"data-testid":"skill-operation-reset",children:k("operation.startOver")})]})]})}},12894:(a,b,c)=>{c.d(b,{o:()=>d});function d(a){return a?a.split("/").map(encodeURIComponent).join("/"):""}},13973:(a,b,c)=>{c.d(b,{default:()=>e.a});var d=c(33540),e=c.n(d)},24207:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=c(84339);function e(a){let{reason:b,children:c}=a;throw Object.defineProperty(new d.BailoutToCSRError(b),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},33540:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return e}});let d=c(35288)._(c(43972));function e(a,b){var c;let e={};"function"==typeof a&&(e.loader=a);let f={...e,...b};return(0,d.default)({...f,modules:null==(c=f.loadableGenerated)?void 0:c.modules})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},43972:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return j}});let d=c(21124),e=c(38301),f=c(24207),g=c(52402);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},52402:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"PreloadChunks",{enumerable:!0,get:function(){return h}});let d=c(21124),e=c(23312),f=c(29294),g=c(61348);function h(a){let{moduleIds:b}=a,c=f.workAsyncStorage.getStore();if(void 0===c)return null;let h=[];if(c.reactLoadableManifest&&b){let a=c.reactLoadableManifest;for(let c of b){if(!a[c])continue;let b=a[c].files;h.push(...b)}}return 0===h.length?null:(0,d.jsx)(d.Fragment,{children:h.map(a=>{let b=c.assetPrefix+"/_next/"+(0,g.encodeURIPath)(a);return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:b,rel:"stylesheet",as:"style"},a):((0,e.preload)(b,{as:"script",fetchPriority:"low"}),null)})})}},61348:(a,b)=>{function c(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"encodeURIPath",{enumerable:!0,get:function(){return c}})},62484:(a,b,c)=>{c.d(b,{i:()=>j});var d=c(21124),e=c(38301),f=c(63156),g=c(58970);function h(){return(0,d.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function i(){return(0,d.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function j({text:a,className:b="",label:c="Copy"}){let[j,k]=(0,e.useState)(!1),l=(0,e.useRef)(null),m=(0,e.useCallback)(async()=>{try{await (0,f.l)(a),k(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>k(!1),g.s7)}catch{}},[a]);return(0,d.jsxs)("button",{type:"button",onClick:m,className:`inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ${b}`,"aria-label":j?"Copied":c,title:j?"Copied!":c,children:[j?(0,d.jsx)(i,{}):(0,d.jsx)(h,{}),(0,d.jsx)("span",{children:j?"Copied":c})]})}},63156:(a,b,c)=>{c.d(b,{l:()=>e});let d=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function e(a){if(!a||0===a.trim().length)return;let b=a.replace(d,"");if(navigator.clipboard?.writeText)try{await navigator.clipboard.writeText(b);return}catch{}let c=document.createElement("textarea");c.value=b,c.style.position="fixed",c.style.left="-9999px",c.style.top="-9999px",c.style.opacity="0",document.body.appendChild(c),c.focus(),c.select();try{document.execCommand("copy")}finally{document.body.removeChild(c)}}},79944:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(23339).A)("arrow-left",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},90349:(a,b,c)=>{c.d(b,{I:()=>d,k:()=>e});let d="skill:installed";function e(a){}}};
@@ -1,28 +0,0 @@
1
- "use strict";exports.id=5226,exports.ids=[5226],exports.modules={50300:(a,b,c)=>{c.d(b,{IF:()=>p,Pg:()=>o,Y9:()=>q,iZ:()=>r,mZ:()=>m});var d=c(29021),e=c(33873),f=c(55511),g=c(55926);let h=["PREPARING","FS_COMMITTED","INDEXED","SUCCEEDED","FAILED_RECONCILABLE"],i={PREPARING:["FS_COMMITTED","FAILED_RECONCILABLE"],FS_COMMITTED:["INDEXED","FAILED_RECONCILABLE"],INDEXED:["SUCCEEDED","FAILED_RECONCILABLE"],FAILED_RECONCILABLE:["INDEXED","SUCCEEDED","FAILED_RECONCILABLE"],SUCCEEDED:[]};class j extends Error{constructor(a,b,c){super(`Illegal Skill operation transition ${a} -> ${b}: ${c}`),this.from=a,this.to=b,this.name="SkillOperationTransitionError"}}function k(a){return(0,f.createHash)("sha256").update(function a(b){if(null===b||"object"!=typeof b)return JSON.stringify(b)??"null";if(Array.isArray(b))return`[${b.map(a).join(",")}]`;let c=Object.entries(b).filter(([,a])=>void 0!==a).sort(([a],[b])=>a<b?-1:+(a>b));return`{${c.map(([b,c])=>`${JSON.stringify(b)}:${a(c)}`).join(",")}}`}({actor:a.actor,operation:a.operation,target:a.target,planHash:a.planHash})).digest("hex")}function l(a,b){let c=(0,f.createHash)("sha256").update(a).digest("hex");return(0,e.join)((0,g.m_)(g.V8,b),`${c}.json`)}function m(a,b={}){let c=(0,g.dI)(l(a,b));return"object"==typeof c&&null!==c&&"string"==typeof c.operationId&&"string"==typeof c.idempotencyKey&&"string"==typeof c.bindingHash&&"string"==typeof c.state&&h.includes(c.state)?c:null}function n(a,b={}){(0,g.of)(l(a.idempotencyKey,b),a)}function o(a,b={}){try{(0,d.unlinkSync)(l(a,b))}catch{}}function p(a,b={}){let c=k(a.binding),d=a.idempotencyKey??k(a.binding),e=m(d,b);if(null!==e)return e.bindingHash!==c?{ok:!1,reason:"IDEMPOTENCY_KEY_CONFLICT",entry:e}:{ok:!0,entry:e,replayed:!0};let g=b.now??Date.now(),h={schemaVersion:1,operationId:(0,f.randomUUID)(),idempotencyKey:d,bindingHash:c,operation:a.binding.operation,state:"PREPARING",actor:a.binding.actor,target:a.binding.target,source:a.source??null,lockKey:a.lockKey,createdAt:g,updatedAt:g,fsCommittedAt:null,receiptDigest:null,error:null,history:[{state:"PREPARING",at:g}]};return n(h,b),{ok:!0,entry:h,replayed:!1}}function q(a,b,c={},d={}){if(!i[a.state].includes(b))throw new j(a.state,b,"edge is not defined");let e=d.now??Date.now(),f="FS_COMMITTED"===b?a.fsCommittedAt??e:a.fsCommittedAt;if(("INDEXED"===b||"SUCCEEDED"===b)&&null===f)throw new j(a.state,b,"no filesystem commit point was recorded");let h={...a,state:b,updatedAt:e,fsCommittedAt:f,source:void 0!==c.source?c.source:a.source,receiptDigest:void 0!==c.receiptDigest?c.receiptDigest:a.receiptDigest,error:void 0!==c.error?null===c.error?null:{code:c.error.code,message:(0,g.f$)(c.error.message)}:a.error,history:[...a.history,{state:b,at:e}]};return n(h,d),h}function r(a){return null!==a.fsCommittedAt}},55317:(a,b,c)=>{c.d(b,{Bv:()=>i,Tk:()=>g,c7:()=>h,fk:()=>j});var d=c(55511);let e=`
2
- id, worktree_id, skill_id, version, install_root, install_roots, receipt_sha256,
3
- source_repository, source_ref, source_commit, artifact_sha256,
4
- effective_risk, operation_id, installed_at, updated_at
5
- `;function f(a){return{id:a.id,worktreeId:a.worktree_id,skillId:a.skill_id,version:a.version,installRoot:a.install_root,installRoots:function(a,b){if(null===a)return[b];try{let b=JSON.parse(a);if(Array.isArray(b)&&b.length>0&&b.every(a=>"string"==typeof a))return b}catch{}return[b]}(a.install_roots,a.install_root),receiptSha256:a.receipt_sha256,sourceRepository:a.source_repository,sourceRef:a.source_ref,sourceCommit:a.source_commit,artifactSha256:a.artifact_sha256,effectiveRisk:a.effective_risk,operationId:a.operation_id,installedAt:a.installed_at,updatedAt:a.updated_at}}function g(a,b){let{receipt:c}=b,e=c.install_roots&&c.install_roots.length>0?c.install_roots:[c.install_root];a.prepare(`INSERT INTO skill_installations (
6
- id, worktree_id, skill_id, version, install_root, install_roots, receipt_sha256,
7
- source_repository, source_ref, source_commit, artifact_sha256,
8
- effective_risk, operation_id, installed_at, updated_at
9
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
10
- ON CONFLICT (worktree_id, skill_id) DO UPDATE SET
11
- version = excluded.version,
12
- install_root = excluded.install_root,
13
- install_roots = excluded.install_roots,
14
- receipt_sha256 = excluded.receipt_sha256,
15
- source_repository = excluded.source_repository,
16
- source_ref = excluded.source_ref,
17
- source_commit = excluded.source_commit,
18
- artifact_sha256 = excluded.artifact_sha256,
19
- effective_risk = excluded.effective_risk,
20
- operation_id = excluded.operation_id,
21
- updated_at = excluded.updated_at`).run((0,d.randomUUID)(),b.worktreeId,c.skill_id,c.version,c.install_root,JSON.stringify(e),b.receiptSha256,c.source.repository,c.source.ref,c.source.commit,c.artifact.sha256,c.effective_risk,b.operationId,b.installedAt,b.installedAt);let f=h(a,b.worktreeId,c.skill_id);if(null===f)throw Error("Skill installation row disappeared immediately after being written");return f}function h(a,b,c){let d=a.prepare(`SELECT ${e} FROM skill_installations
22
- WHERE worktree_id = ? AND skill_id = ?`).get(b,c);return d?f(d):null}function i(a,b){return a.prepare(`SELECT ${e} FROM skill_installations
23
- WHERE worktree_id = ? ORDER BY skill_id ASC`).all(b).map(f)}function j(a,b,c){return a.prepare("DELETE FROM skill_installations WHERE worktree_id = ? AND skill_id = ?").run(b,c).changes>0}},74516:(a,b,c)=>{c.d(b,{JM:()=>g,ek:()=>f});var d=c(55511),e=c(55926);function f(a,b,c){return{operationId:a.operationId,idempotencyKey:a.idempotencyKey,bindingHash:a.bindingHash,operation:a.operation,state:a.state,result:b,actorType:a.actor.type,actorId:a.actor.id,worktreeId:a.target.worktreeId,skillId:a.target.skillId,skillVersion:a.target.version,sourceOrigin:a.source?.origin??null,sourceRepository:a.source?.repository??null,sourceRef:a.source?.ref??null,sourceCommit:a.source?.commit??null,artifactSha256:a.source?.artifactSha256??null,errorCode:a.error?.code??null,errorMessage:a.error?.message??null,recordedAt:c}}function g(a,b){let c={...b,id:(0,d.randomUUID)(),errorMessage:null===b.errorMessage?null:(0,e.f$)(b.errorMessage),recordedAt:b.recordedAt??Date.now()};return a.prepare(`INSERT INTO skill_operations (
24
- id, operation_id, idempotency_key, binding_hash, operation, state, result,
25
- actor_type, actor_id, worktree_id, skill_id, skill_version,
26
- source_origin, source_repository, source_ref, source_commit, artifact_sha256,
27
- error_code, error_message, recorded_at
28
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(c.id,c.operationId,c.idempotencyKey,c.bindingHash,c.operation,c.state,c.result,c.actorType,c.actorId,c.worktreeId,c.skillId,c.skillVersion,c.sourceOrigin,c.sourceRepository,c.sourceRef,c.sourceCommit,c.artifactSha256,c.errorCode,c.errorMessage,c.recordedAt),c}},89476:(a,b,c)=>{c.d(b,{k8:()=>q,p8:()=>k,x3:()=>r});var d=c(29021),e=c(21820),f=c(33873),g=c(55511),h=c(55926);let i=(0,g.randomUUID)();function j(a){if(!Number.isInteger(a)||a<=0)return!1;try{return process.kill(a,0),!0}catch(a){return"EPERM"===a.code}}function k(a,b){return(0,g.createHash)("sha256").update(`${a}\0${b}`).digest("hex")}function l(a,b){return(0,f.join)((0,h.m_)(h.vg,b),`${a}.lock`)}function m(a){if("object"!=typeof a||null===a)return!1;let b=a.owner;return"string"==typeof a.key&&"string"==typeof a.operationId&&"number"==typeof a.leaseExpiresAt&&Number.isFinite(a.leaseExpiresAt)&&"object"==typeof b&&null!==b&&"string"==typeof b.nonce&&"number"==typeof b.pid&&"string"==typeof b.host}function n(a,b={}){let c=(0,h.dI)(l(a,b));return m(c)?c:null}function o(a,b={}){if(null===a)return"FREE";let c=b.now??Date.now();if(c<a.leaseExpiresAt)return"HELD";let d=b.isProcessAlive??j;return a.owner.host!==(0,e.hostname)()?c-a.leaseExpiresAt>6e5?"RECLAIMABLE":"HELD_UNVERIFIABLE_OWNER":d(a.owner.pid)?"HELD_BY_LIVE_OWNER":"RECLAIMABLE"}function p(a,b){let c;try{c=(0,d.openSync)(a,d.constants.O_CREAT|d.constants.O_EXCL|d.constants.O_WRONLY,h.Pq)}catch{return!1}try{return(0,d.writeSync)(c,JSON.stringify(b)),!0}finally{(0,d.closeSync)(c)}}function q(a,b={}){var c,f;let j=b.now??Date.now(),k=a.leaseMs??3e4,r=l(a.key,b),s=(c=a.key,f=a.operationId,{schemaVersion:1,key:c,operationId:f,owner:{nonce:(0,g.randomBytes)(24).toString("hex"),pid:process.pid,host:(0,e.hostname)(),processGeneration:i},acquiredAt:j,renewedAt:j,leaseExpiresAt:j+k});if(p(r,s))return{ok:!0,lock:s,reclaimed:!1};let t=n(a.key,b),u=null===t?(0,d.existsSync)(r)?"RECLAIMABLE":"FREE":o(t,b),v=t?{operationId:t.operationId,acquiredAt:t.acquiredAt,leaseExpiresAt:t.leaseExpiresAt}:null;if("HELD"===u||"HELD_BY_LIVE_OWNER"===u)return{ok:!1,reason:u,heldBy:v};if("HELD_UNVERIFIABLE_OWNER"===u)return{ok:!1,reason:"HELD_UNVERIFIABLE_OWNER",heldBy:v};if("FREE"===u)return p(r,s)?{ok:!0,lock:s,reclaimed:!1}:{ok:!1,reason:"RACE_LOST",heldBy:null};let w=function(a,b,c){let e=`${a}.reclaim-${(0,g.randomBytes)(8).toString("hex")}`;try{(0,d.renameSync)(a,e)}catch{return{ok:!1,reason:"RACE_LOST"}}let f=(0,h.dI)(e),i=m(f)?f:null;if(!(null===b?null===i:null===i||i.owner.nonce===b.owner.nonce&&"RECLAIMABLE"===o(i,c))){try{(0,d.renameSync)(e,a)}catch{}return{ok:!1,reason:"RACE_LOST"}}try{(0,d.unlinkSync)(e)}catch{}return{ok:!0}}(r,t,b);return w.ok?p(r,s)?{ok:!0,lock:s,reclaimed:!0}:{ok:!1,reason:"RACE_LOST",heldBy:null}:{ok:!1,reason:w.reason,heldBy:v}}function r(a,b={}){let c=n(a.key,b);if(null===c||c.owner.nonce!==a.owner.nonce)return!1;try{return(0,d.unlinkSync)(l(a.key,b)),!0}catch{return!1}}}};
@@ -1,2 +0,0 @@
1
- "use strict";exports.id=5306,exports.ids=[5306],exports.modules={55306:(a,b,c)=>{c.d(b,{uu:()=>v}),c(55511);var d=c(29021);c(33873),c(7956);var e=c(75359),f=c(93356),g=c(55927);let h={BYTES_LIMIT:"SKILL_YAML_BYTES_LIMIT",DEPTH_LIMIT:"SKILL_YAML_DEPTH_LIMIT",NODE_LIMIT:"SKILL_YAML_NODE_LIMIT",SCALAR_LIMIT:"SKILL_YAML_SCALAR_LIMIT",ALIAS_FORBIDDEN:"SKILL_YAML_ALIAS_FORBIDDEN",MERGE_KEY_FORBIDDEN:"SKILL_YAML_MERGE_KEY_FORBIDDEN",TAG_FORBIDDEN:"SKILL_YAML_TAG_FORBIDDEN",DUPLICATE_KEY:"SKILL_YAML_DUPLICATE_KEY",FORBIDDEN_KEY:"SKILL_YAML_FORBIDDEN_KEY",MULTIPLE_DOCUMENTS:"SKILL_YAML_MULTIPLE_DOCUMENTS",ENCODING:"SKILL_YAML_ENCODING",UNSUPPORTED:"SKILL_YAML_UNSUPPORTED",SYNTAX:"SKILL_YAML_SYNTAX"},i={[h.BYTES_LIMIT]:"YAML document exceeds the size limit",[h.DEPTH_LIMIT]:"YAML document is nested too deeply",[h.NODE_LIMIT]:"YAML document has too many nodes",[h.SCALAR_LIMIT]:"YAML scalar exceeds the length limit",[h.ALIAS_FORBIDDEN]:"YAML anchors and aliases are not accepted",[h.MERGE_KEY_FORBIDDEN]:"YAML merge keys are not accepted",[h.TAG_FORBIDDEN]:"YAML tags are not accepted",[h.DUPLICATE_KEY]:"YAML mapping declares the same key twice",[h.FORBIDDEN_KEY]:"YAML mapping uses a forbidden key",[h.MULTIPLE_DOCUMENTS]:"YAML stream carries more than one document",[h.ENCODING]:"YAML document is not valid UTF-8 text",[h.UNSUPPORTED]:"YAML document uses an unsupported construct",[h.SYNTAX]:"YAML document could not be parsed"};class j extends Error{constructor(a,b){super(i[a]),this.name="SkillYamlError",this.code=a,void 0!==b&&(this.line=b)}}function k(a){return a instanceof j}let l=/^(?:"(?:[^"\\]|\\.)*"|'(?:[^']|'')*'|[A-Za-z_][A-Za-z0-9_.-]*)[ \t]*:(?:[ \t]|$)/;function m(a){let b=null;for(let c=0;c<a.length;c++){let d=a[c];if('"'===b)"\\"===d?c++:'"'===d&&(b=null);else if("'"===b)"'"===d&&(b=null);else if('"'===d||"'"===d)b=d;else if("#"===d&&(0===c||" "===a[c-1]||" "===a[c-1]))return a.slice(0,c)}return a}class n{constructor(a,b){this.cursor=0,this.nodes=0,this.documentEnded=!1,this.documentStarted=!1,this.lines=a,this.profile=b}parseDocument(){let a=this.peek();if(!a)return null;if(0!==a.indent)throw new j(h.SYNTAX,a.number);let b=this.parseNode(0,1);this.skipToSignificant();let c=this.peek();if(c)throw new j(h.SYNTAX,c.number);return b}skipToSignificant(){for(;this.cursor<this.lines.length;){let a=this.lines[this.cursor];if(!a.significant){this.cursor++;continue}let b=a.content.trim();if("..."===b){this.documentEnded=!0,this.cursor++;continue}if("---"===b){if(this.documentStarted)throw new j(h.MULTIPLE_DOCUMENTS,a.number);this.documentStarted=!0,this.cursor++;continue}if(this.documentEnded)throw new j(h.MULTIPLE_DOCUMENTS,a.number);this.documentStarted=!0;return}}peek(){return this.skipToSignificant(),this.cursor<this.lines.length?this.lines[this.cursor]:null}countNode(a){if(this.nodes++,this.nodes>this.profile.maxNodes)throw new j(h.NODE_LIMIT,a.number)}checkDepth(a,b){if(a>this.profile.maxDepth)throw new j(h.DEPTH_LIMIT,b.number)}parseNode(a,b){let c=this.peek();return c?(this.checkDepth(b,c),this.isSequenceEntry(c.content)?this.parseSequence(a,b):this.parseMapping(a,b)):null}isSequenceEntry(a){return"-"===a||a.startsWith("- ")}parseMapping(a,b){let c=Object.create(null),d=new Set;for(;;){let e=this.peek();if(!e||e.indent<a)break;if(e.indent>a||this.isSequenceEntry(e.content))throw new j(h.SYNTAX,e.number);this.countNode(e);let f=this.readKey(e);if(d.has(f)&&!this.profile.allowDuplicateKeys)throw new j(h.DUPLICATE_KEY,e.number);d.add(f);let g=e.content.indexOf(":",this.keyTokenLength(e.content)),i=m(e.content.slice(g+1)).trim();this.cursor++,c[f]=this.parseValue(i,a,b,e)}return c}parseSequence(a,b){let c=[];for(;;){let d=this.peek();if(!d||d.indent<a)break;if(d.indent>a)throw new j(h.SYNTAX,d.number);if(!this.isSequenceEntry(d.content))break;this.countNode(d);let e="-"===d.content?"":d.content.slice(2),f=d.content.length-e.length,g=m(e).trim();if(""===g){this.cursor++,c.push(this.parseIndentedValue(a,b+1,d));continue}if(this.isSequenceEntry(g))throw new j(h.UNSUPPORTED,d.number);if(l.test(e.trimStart())){let g=a+f+(e.length-e.trimStart().length);d.indent=g,d.content=e.trimStart(),this.checkDepth(b+1,d),c.push(this.parseMapping(g,b+1));continue}this.cursor++,this.countNode(d),c.push(this.parseScalar(g,d))}return c}keyTokenLength(a){if(a.startsWith('"')||a.startsWith("'")){let b=a[0];for(let c=1;c<a.length;c++){if('"'===b&&"\\"===a[c]){c++;continue}if(a[c]===b)return c+1}}return 0}readKey(a){let b=a.content;if(b.startsWith("<<"))throw new j(h.MERGE_KEY_FORBIDDEN,a.number);if(b.startsWith("&")||b.startsWith("*"))throw new j(h.ALIAS_FORBIDDEN,a.number);if(b.startsWith("!"))throw new j(h.TAG_FORBIDDEN,a.number);if(b.startsWith("?")||b.startsWith("[")||b.startsWith("{"))throw new j(h.UNSUPPORTED,a.number);if(!l.test(b))throw new j(h.SYNTAX,a.number);let c=this.keyTokenLength(b),d=b.indexOf(":",c),e=b.slice(0,d).trim(),f=e.startsWith('"')||e.startsWith("'")?this.parseQuoted(e,a):e;if(f.length>this.profile.maxScalarLength)throw new j(h.SCALAR_LIMIT,a.number);if(this.profile.forbiddenKeys.includes(f))throw new j(h.FORBIDDEN_KEY,a.number);return f}parseValue(a,b,c,d){if(""===a){let a=this.peek();return a&&a.indent===b&&this.isSequenceEntry(a.content)?(this.checkDepth(c+1,a),this.parseSequence(b,c+1)):this.parseIndentedValue(b,c+1,d)}return"|"===a[0]||">"===a[0]?this.parseBlockScalar(a,b,d):(this.countNode(d),this.parseScalar(a,d))}parseIndentedValue(a,b,c){let d=this.peek();return!d||d.indent<=a?(this.countNode(c),null):(this.checkDepth(b,d),this.parseNode(d.indent,b))}parseScalar(a,b){if(a.startsWith("&")||a.startsWith("*"))throw new j(h.ALIAS_FORBIDDEN,b.number);if(a.startsWith("!"))throw new j(h.TAG_FORBIDDEN,b.number);if("[]"===a)return this.countNode(b),[];if("{}"===a)return this.countNode(b),Object.create(null);if(a.startsWith("[")||a.startsWith("{")||a.startsWith("%")||a.startsWith("`"))throw new j(h.UNSUPPORTED,b.number);if(a.startsWith('"')||a.startsWith("'")){let c=this.parseQuoted(a,b);return this.checkScalarLength(c,b),c}return this.checkScalarLength(a,b),this.resolvePlain(a)}checkScalarLength(a,b){if(a.length>this.profile.maxScalarLength)throw new j(h.SCALAR_LIMIT,b.number)}resolvePlain(a){if("~"===a||"null"===a||"Null"===a||"NULL"===a)return null;if("true"===a||"True"===a||"TRUE"===a)return!0;if("false"===a||"False"===a||"FALSE"===a)return!1;if(/^-?(?:0|[1-9][0-9]*)$/.test(a)){let b=Number(a);return Number.isSafeInteger(b)?b:a}return/^-?(?:0|[1-9][0-9]*)\.[0-9]+$/.test(a)?Number(a):a}parseQuoted(a,b){let c=a[0];if(a.length<2||!a.endsWith(c))throw new j(h.SYNTAX,b.number);let d=a.slice(1,-1);if("'"===c){let a="";for(let c=0;c<d.length;c++){if("'"===d[c]){if("'"!==d[c+1])throw new j(h.SYNTAX,b.number);c++}a+=d[c]}return a}let e="";for(let a=0;a<d.length;a++){let c=d[a];if("\\"!==c){if('"'===c)throw new j(h.SYNTAX,b.number);e+=c;continue}let f=d[++a];switch(f){case'"':case"\\":case"/":e+=f;break;case"n":e+="\n";break;case"t":e+=" ";break;case"r":e+="\r";break;case"u":{let c=d.slice(a+1,a+5);if(!/^[0-9a-fA-F]{4}$/.test(c))throw new j(h.SYNTAX,b.number);e+=String.fromCharCode(parseInt(c,16)),a+=4;break}default:throw new j(h.UNSUPPORTED,b.number)}}return e}parseBlockScalar(a,b,c){let d,e=/^([|>])([-+]?)$/.exec(a.trim());if(!e)throw new j(h.UNSUPPORTED,c.number);let[,f,g]=e,i=[],k=-1;for(;this.cursor<this.lines.length;){let a=this.lines[this.cursor],c=""===a.raw.trim();if(!c&&a.indent<=b)break;c||-1!==k||(k=a.indent),i.push(c?"":a.raw.slice(k)),this.cursor++}for(;i.length>0&&""===i[i.length-1];)i.pop();return this.countNode(c),d="|"===f?i.join("\n"):i.reduce((a,b,c)=>{if(0===c)return b;let d=i[c-1];return""===b||""===d?`${a}
2
- ${b}`:`${a} ${b}`},""),"-"!==g&&i.length>0&&(d+="\n"),this.checkScalarLength(d,c),d}}function o(a,b=e.WL){if(b.allowAliases||b.allowCustomTags)throw new j(h.UNSUPPORTED);return new n(function(a){if(a.includes("\uFEFF"))throw new j(h.ENCODING);let b=a.replace(/\r\n/g,"\n");if(b.includes("\r"))throw new j(h.ENCODING);let c=[],d=b.split("\n");for(let a=0;a<d.length;a++){let b=d[a],e=a+1;for(let a=0;a<b.length;a++){let c=b.charCodeAt(a);if(c<32&&9!==c||127===c)throw new j(h.ENCODING,e)}let f=0;for(;f<b.length&&" "===b[f];)f++;if(" "===b[f])throw new j(h.SYNTAX,e);let g=b.slice(f);c.push({number:e,raw:b,indent:f,content:g,significant:g.length>0&&!g.startsWith("#")})}return c}(function(a,b){if(("string"==typeof a?Buffer.byteLength(a,"utf8"):a.byteLength)>b)throw new j(h.BYTES_LIMIT);if("string"==typeof a)return a;try{return new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!1}).decode(a)}catch{throw new j(h.ENCODING)}}(a,b.maxBytes)),b).parseDocument()}d.constants.O_NOFOLLOW;let p=[".bash",".bat",".cjs",".cmd",".fish",".js",".lua",".mjs",".php",".pl",".ps1",".py",".rb",".sh",".ts",".zsh"],q=[".md",".markdown",".rst",".txt"];function r(a){let b=a.slice(a.lastIndexOf("/")+1),c=b.lastIndexOf(".");return c<=0?"":b.slice(c).toLowerCase()}function s(a,b){return!!p.includes(r(a))||b.length>=2&&35===b[0]&&33===b[1]}function t(a,b){throw new g.Om(a,b)}function u(a,b){return a.files.find(a=>a.path===b)}function v(a,b){return function(a,b){let c;for(let b of e.wD)u(a,b)||t(g.xC.LAYOUT_INVALID,{reason:"missing-required-entry",entry:b});let d=function(a){let b,c=u(a,e.KH);for(let b of(c||t(g.xC.MANIFEST_MISSING,{reason:"absent"}),a.files))b.path!==e.KH&&b.path.endsWith(`/${e.KH}`)&&t(g.xC.LAYOUT_INVALID,{reason:"nested-manifest",entry:(0,g.FC)(b.path)});try{b=o(c.bytes)}catch(a){throw k(a)&&t(g.xC.MANIFEST_INVALID,{reason:a.code}),a}let d=(0,e.bX)(b);if(!d.ok){let a=d.errors[0];t(g.xC.MANIFEST_INVALID,{reason:a.code,field:a.path})}return d.value}(a);d.id!==b.skillId&&t(g.xC.MANIFEST_MISMATCH,{reason:"id"}),d.version!==b.version&&t(g.xC.MANIFEST_MISMATCH,{reason:"version"});let h=u(a,e.Wr);h||t(g.xC.SKILL_MD_INVALID,{reason:"absent"});try{c=function(a,b=e.WL){let c=a.replace(/\r\n/g,"\n");if(!c.startsWith("---\n"))return null;let d=c.indexOf("\n---",3);return -1===d?null:o(c.slice(4,d+1),b)}(Buffer.from(h.bytes).toString("utf8"))}catch(a){throw k(a)&&t(g.xC.SKILL_MD_INVALID,{reason:a.code}),a}(null===c||"object"!=typeof c||Array.isArray(c))&&t(g.xC.SKILL_MD_INVALID,{reason:"frontmatter-missing"});let i=c.name;"string"!=typeof i&&t(g.xC.SKILL_MD_INVALID,{reason:"frontmatter-name-missing"});let j=(0,e.EU)({directoryName:d.id,skillMdName:i,manifestId:d.id,manifestName:d.name});j.ok||t(g.xC.SKILL_MD_INVALID,{reason:j.errors[0].code});let l=(0,e.Yz)(d,a.files.map(a=>a.path));if(!l.ok){let a=l.errors[0];t(g.xC.MANIFEST_MISMATCH,{reason:a.message,entry:(0,g.FC)(String(a.detail?.path??""))})}for(let b of a.files)b.path!==e.KH&&function(a,b){var c,d;let h=b.files.find(b=>b.path===a.path);h||t(g.xC.MANIFEST_MISMATCH,{reason:"undeclared-file",entry:(0,g.FC)(a.path)});let i={entry:(0,g.FC)(a.path)};h.size!==a.size&&t(g.xC.SIZE_MISMATCH,i),(0,f.U2)(h.sha256,a.sha256)||t(g.xC.DIGEST_MISMATCH,i);let j=(c=a.path,d=a.bytes,c===e.Wr?"skill_md":s(c,d)?"script":q.includes(r(c))?"instruction":"asset");s(a.path,a.bytes)&&(!h.script||"script"!==h.kind)&&t(g.xC.UNDECLARED_SCRIPT,i),"script"!==h.kind||h.script||t(g.xC.MANIFEST_MISMATCH,{...i,reason:"kind-script-not-declared"}),"skill_md"===j!=("skill_md"===h.kind)&&t(g.xC.MANIFEST_MISMATCH,{...i,reason:"kind-mismatch"}),a.executable&&!h.executable&&t(g.xC.UNDECLARED_EXECUTABLE,i),!a.executable&&h.executable&&t(g.xC.MANIFEST_MISMATCH,{...i,reason:"executable-not-present"})}(b,d);let m={executable_paths:d.files.filter(a=>a.executable).map(a=>a.path).sort(),script_paths:d.files.filter(a=>a.script).map(a=>a.path).sort(),network_hosts:[...d.requirements.network_hosts],declared_permissions:[...d.declared_permissions]},n=(0,e.MD)(m),p=new Map(a.files.map(a=>[a.path,a.bytes])),v=a.files.map(a=>({path:a.path,sha256:a.sha256,size:a.size,executable:a.executable})).sort((a,b)=>a.path<b.path?-1:+(a.path>b.path));return Object.freeze({skillId:b.skillId,version:b.version,manifest:d,files:Object.freeze(v),directories:Object.freeze([...a.directories].sort()),inspection:Object.freeze(m),declaredRisk:d.declared_risk,computedRisk:n,effectiveRisk:(0,e.qZ)(d.declared_risk,n),readFile(a){let b=p.get(a);return b||t(g.xC.MANIFEST_MISMATCH,{reason:"unknown-file",entry:(0,g.FC)(a)}),new Uint8Array(b)}})}((0,g.qt)(a,b),b)}},55927:(a,b,c)=>{c.d(b,{FC:()=>l,Om:()=>j,qt:()=>q,uI:()=>k,xC:()=>g});var d=c(74075),e=c(75359),f=c(93356);let g={ARCHIVE_FORMAT:"SKILL_PACKAGE_ARCHIVE_FORMAT",ARCHIVE_TRUNCATED:"SKILL_PACKAGE_ARCHIVE_TRUNCATED",ENTRY_TYPE_FORBIDDEN:"SKILL_PACKAGE_ENTRY_TYPE_FORBIDDEN",ENTRY_PATH_UNSAFE:"SKILL_PACKAGE_ENTRY_PATH_UNSAFE",ENTRY_DUPLICATE:"SKILL_PACKAGE_ENTRY_DUPLICATE",ENTRY_COLLISION:"SKILL_PACKAGE_ENTRY_COLLISION",ENTRY_MODE_FORBIDDEN:"SKILL_PACKAGE_ENTRY_MODE_FORBIDDEN",ENTRY_LIMIT_EXCEEDED:"SKILL_PACKAGE_ENTRY_LIMIT_EXCEEDED",SIZE_LIMIT_EXCEEDED:"SKILL_PACKAGE_SIZE_LIMIT_EXCEEDED",COMPRESSION_RATIO_EXCEEDED:"SKILL_PACKAGE_COMPRESSION_RATIO_EXCEEDED",LAYOUT_INVALID:"SKILL_PACKAGE_LAYOUT_INVALID",MANIFEST_MISSING:"SKILL_PACKAGE_MANIFEST_MISSING",MANIFEST_INVALID:"SKILL_PACKAGE_MANIFEST_INVALID",MANIFEST_MISMATCH:"SKILL_PACKAGE_MANIFEST_MISMATCH",UNDECLARED_EXECUTABLE:"SKILL_PACKAGE_UNDECLARED_EXECUTABLE",UNDECLARED_SCRIPT:"SKILL_PACKAGE_UNDECLARED_SCRIPT",DIGEST_MISMATCH:"SKILL_PACKAGE_DIGEST_MISMATCH",SIZE_MISMATCH:"SKILL_PACKAGE_SIZE_MISMATCH",SKILL_MD_INVALID:"SKILL_PACKAGE_SKILL_MD_INVALID",STAGING_IO:"SKILL_PACKAGE_STAGING_IO",ABORTED:"SKILL_PACKAGE_ABORTED"},h={[g.ARCHIVE_FORMAT]:"archive",[g.ARCHIVE_TRUNCATED]:"archive",[g.ENTRY_TYPE_FORBIDDEN]:"path",[g.ENTRY_PATH_UNSAFE]:"path",[g.ENTRY_DUPLICATE]:"path",[g.ENTRY_COLLISION]:"path",[g.ENTRY_MODE_FORBIDDEN]:"path",[g.ENTRY_LIMIT_EXCEEDED]:"limit",[g.SIZE_LIMIT_EXCEEDED]:"limit",[g.COMPRESSION_RATIO_EXCEEDED]:"limit",[g.LAYOUT_INVALID]:"manifest",[g.MANIFEST_MISSING]:"manifest",[g.MANIFEST_INVALID]:"manifest",[g.MANIFEST_MISMATCH]:"manifest",[g.UNDECLARED_EXECUTABLE]:"manifest",[g.UNDECLARED_SCRIPT]:"manifest",[g.DIGEST_MISMATCH]:"integrity",[g.SIZE_MISMATCH]:"integrity",[g.SKILL_MD_INVALID]:"manifest",[g.STAGING_IO]:"staging",[g.ABORTED]:"staging"},i={[g.ARCHIVE_FORMAT]:"Skill package is not a readable tar.gz archive",[g.ARCHIVE_TRUNCATED]:"Skill package archive is truncated",[g.ENTRY_TYPE_FORBIDDEN]:"Skill package contains a forbidden entry type",[g.ENTRY_PATH_UNSAFE]:"Skill package contains an unsafe entry path",[g.ENTRY_DUPLICATE]:"Skill package declares the same entry twice",[g.ENTRY_COLLISION]:"Skill package contains colliding entry paths",[g.ENTRY_MODE_FORBIDDEN]:"Skill package entry carries forbidden mode bits",[g.ENTRY_LIMIT_EXCEEDED]:"Skill package contains too many entries",[g.SIZE_LIMIT_EXCEEDED]:"Skill package exceeds a size limit",[g.COMPRESSION_RATIO_EXCEEDED]:"Skill package decompression ratio exceeds the limit",[g.LAYOUT_INVALID]:"Skill package layout does not match the contract",[g.MANIFEST_MISSING]:"Skill package manifest is missing or misplaced",[g.MANIFEST_INVALID]:"Skill package manifest is not valid",[g.MANIFEST_MISMATCH]:"Skill package manifest does not match the package",[g.UNDECLARED_EXECUTABLE]:"Skill package contains an undeclared executable",[g.UNDECLARED_SCRIPT]:"Skill package contains an undeclared script",[g.DIGEST_MISMATCH]:"Skill package file digest does not match the manifest",[g.SIZE_MISMATCH]:"Skill package file size does not match the manifest",[g.SKILL_MD_INVALID]:"Skill package SKILL.md is missing or inconsistent",[g.STAGING_IO]:"Skill package staging could not be prepared",[g.ABORTED]:"Skill package processing was aborted"};class j extends Error{constructor(a,b){super(i[a]),this.name="SkillPackageError",this.code=a,this.category=h[a],b&&(this.detail=b)}}function k(a){return a instanceof j}function l(a){let b=a.replace(/[^A-Za-z0-9._/-]/g,a=>[...a].map(a=>`%${a.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`).join(""));return b.length>120?`${b.slice(0,120)}…`:b}function m(a,b){throw new j(a,b)}let n=new Set(["0","\0"]);function o(a,b,c){let d=a.subarray(b,b+c),e=d.indexOf(0);-1===e&&(e=d.length);for(let a=e;a<d.length;a++)0!==d[a]&&m(g.ARCHIVE_FORMAT,{field:"padding"});let f=Buffer.from(d.subarray(0,e)),h=f.toString("utf8");return Buffer.from(h,"utf8").equals(f)||m(g.ARCHIVE_FORMAT,{field:"encoding"}),h}function p(a,b,c){(128&a[b])!=0&&m(g.ARCHIVE_FORMAT,{field:"numeric-encoding"});let d="";for(let e=b;e<b+c;e++){let b=a[e];0!==b&&32!==b&&((b<48||b>55)&&m(g.ARCHIVE_FORMAT,{field:"numeric"}),d+=String.fromCharCode(b))}if(""===d)return 0;let e=parseInt(d,8);return Number.isSafeInteger(e)||m(g.ARCHIVE_FORMAT,{field:"numeric-range"}),e}function q(a,b){let c;(a.byteLength<2||31!==a[0]||139!==a[1])&&m(g.ARCHIVE_FORMAT,{field:"gzip-magic"});try{c=(0,d.gunzipSync)(a,{maxOutputLength:0x4000000})}catch(a){"ERR_BUFFER_TOO_LARGE"===a?.code&&m(g.SIZE_LIMIT_EXCEEDED,{limit:0x4000000}),m(g.ARCHIVE_FORMAT,{field:"gzip"})}c.byteLength>1048576&&c.byteLength/a.byteLength>200&&m(g.COMPRESSION_RATIO_EXCEEDED,{limit:200});let h=(function(a){(0===a.byteLength||a.byteLength%512!=0)&&m(g.ARCHIVE_TRUNCATED,{field:"alignment"});let b=[],c=0;for(;c+512<=a.byteLength;){let d=a.subarray(c,c+512);if(function(a){for(let b=0;b<a.length;b++)if(0!==a[b])return!1;return!0}(d)){for(let b=c;b<a.byteLength;b++)0!==a[b]&&m(g.ARCHIVE_FORMAT,{field:"trailer"});return b}!function(a,b){let c=0,d=0;for(let b=0;b<512;b++){let e=b>=148&&b<156?32:a[b];c+=e,d+=e>127?e-256:e}b!==c&&b!==d&&m(g.ARCHIVE_FORMAT,{field:"checksum"})}(d,p(d,148,8)),"ustar"!==o(d,257,6).trim()&&m(g.ARCHIVE_FORMAT,{field:"magic"});let f=o(d,156,1)||"\0",h="5"===f;h||n.has(f)||m(g.ENTRY_TYPE_FORBIDDEN,{typeflag:l(f)}),""!==o(d,157,100)&&m(g.ENTRY_TYPE_FORBIDDEN,{typeflag:"link"});let i=p(d,100,8);(3584&i)!=0&&m(g.ENTRY_MODE_FORBIDDEN,{bits:(3584&i).toString(8)});let j=o(d,345,155),k=o(d,0,100),q=""===j?k:`${j}/${k}`,r=p(d,124,12);h&&0!==r&&m(g.ARCHIVE_FORMAT,{field:"directory-size"}),r>e.em&&m(g.SIZE_LIMIT_EXCEEDED,{limit:e.em});let s=c+512,t=s+r;t>a.byteLength&&m(g.ARCHIVE_TRUNCATED),b.push({name:q,isDirectory:h,mode:i,size:r,bytes:h?new Uint8Array(0):a.subarray(s,t)}),b.length>1e3&&m(g.ENTRY_LIMIT_EXCEEDED,{limit:1e3}),c=s+512*Math.ceil(r/512)}return m(g.ARCHIVE_TRUNCATED,{field:"trailer"})})(c).map(a=>({entry:a,...function(a){let b=a;b.startsWith("./")&&(b=b.slice(2));let c=b.endsWith("/");return c&&(b=b.slice(0,-1)),""===b&&m(g.ENTRY_PATH_UNSAFE,{reason:"empty"}),{path:b,trailingSlash:c}}(a.name)})),i=function(a,b){let c=[b.skillId,`${b.skillId}-${b.version}`],d=new Set(a.map(a=>a.split("/")[0]));if(1!==d.size)return null;let e=[...d][0];return a.some(a=>a.startsWith(`${e}/`))?(c.includes(e)||m(g.LAYOUT_INVALID,{reason:"root-directory",entry:l(e)}),e):null}(h.map(a=>a.path),b),j=[],k=[],q=new Map,r=new Map,s=0;for(let a of h){let b=a.path;if(null!==i){if(b===i)continue;b=b.slice(i.length+1)}let c=a.entry.isDirectory||a.trailingSlash,d=(0,e.r5)(b,"/entry");d.ok||m(g.ENTRY_PATH_UNSAFE,{entry:l(b),reason:d.errors[0].message}),q.has(b)&&m(g.ENTRY_DUPLICATE,{entry:l(b)});let h=b.split("/").map(a=>(0,e.vy)(a)).join("/");if(void 0!==r.get(h)&&m(g.ENTRY_COLLISION,{entry:l(b)}),q.set(b,c),r.set(h,b),c){k.push(b);continue}(s+=a.entry.size)>0x4000000&&m(g.SIZE_LIMIT_EXCEEDED,{limit:0x4000000});let n=new Uint8Array(a.entry.bytes);j.push({path:b,size:a.entry.size,sha256:(0,f.Q_)(n),executable:(73&a.entry.mode)!=0,bytes:n})}for(let a of(j.filter(a=>a.path!==e.KH).length>e.xP&&m(g.ENTRY_LIMIT_EXCEEDED,{limit:e.xP}),k))j.some(b=>b.path===a)&&m(g.ENTRY_DUPLICATE,{entry:l(a)});for(let a of j){let b=a.path.split("/").slice(0,-1),c="";for(let d of b)c=""===c?d:`${c}/${d}`,j.some(a=>a.path===c)&&m(g.ENTRY_PATH_UNSAFE,{entry:l(a.path),reason:"parent-is-file"})}return{rootName:i,files:j,directories:k,compressedSize:a.byteLength,decompressedSize:c.byteLength}}}};
@@ -1 +0,0 @@
1
- exports.id=7013,exports.ids=[7013],exports.modules={27013:a=>{class b{constructor(a){void 0===a.data&&(a.data={}),this.data=a.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function c(a){return a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function d(a,...b){let c=Object.create(null);for(let b in a)c[b]=a[b];return b.forEach(function(a){for(let b in a)c[b]=a[b]}),c}class e{constructor(a,b){this.buffer="",this.classPrefix=b.classPrefix,a.walk(this)}addText(a){this.buffer+=c(a)}openNode(a){if(!a.scope)return;let b=((a,{prefix:b})=>{if(a.startsWith("language:"))return a.replace("language:","language-");if(a.includes(".")){let c=a.split(".");return[`${b}${c.shift()}`,...c.map((a,b)=>`${a}${"_".repeat(b+1)}`)].join(" ")}return`${b}${a}`})(a.scope,{prefix:this.classPrefix});this.span(b)}closeNode(a){a.scope&&(this.buffer+="</span>")}value(){return this.buffer}span(a){this.buffer+=`<span class="${a}">`}}let f=(a={})=>{let b={children:[]};return Object.assign(b,a),b};class g{constructor(){this.rootNode=f(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(a){this.top.children.push(a)}openNode(a){let b=f({scope:a});this.add(b),this.stack.push(b)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(a){return this.constructor._walk(a,this.rootNode)}static _walk(a,b){return"string"==typeof b?a.addText(b):b.children&&(a.openNode(b),b.children.forEach(b=>this._walk(a,b)),a.closeNode(b)),a}static _collapse(a){"string"!=typeof a&&a.children&&(a.children.every(a=>"string"==typeof a)?a.children=[a.children.join("")]:a.children.forEach(a=>{g._collapse(a)}))}}class h extends g{constructor(a){super(),this.options=a}addText(a){""!==a&&this.add(a)}startScope(a){this.openNode(a)}endScope(){this.closeNode()}__addSublanguage(a,b){let c=a.root;b&&(c.scope=`language:${b}`),this.add(c)}toHTML(){return new e(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function i(a){return a?"string"==typeof a?a:a.source:null}function j(a){return m("(?=",a,")")}function k(a){return m("(?:",a,")*")}function l(a){return m("(?:",a,")?")}function m(...a){return a.map(a=>i(a)).join("")}function n(...a){return"("+(function(a){let b=a[a.length-1];return"object"==typeof b&&b.constructor===Object?(a.splice(a.length-1,1),b):{}}(a).capture?"":"?:")+a.map(a=>i(a)).join("|")+")"}function o(a){return RegExp(a.toString()+"|").exec("").length-1}let p=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function q(a,{joinWith:b}){let c=0;return a.map(a=>{let b=c+=1,d=i(a),e="";for(;d.length>0;){let a=p.exec(d);if(!a){e+=d;break}e+=d.substring(0,a.index),d=d.substring(a.index+a[0].length),"\\"===a[0][0]&&a[1]?e+="\\"+String(Number(a[1])+b):(e+=a[0],"("===a[0]&&c++)}return e}).map(a=>`(${a})`).join(b)}let r="[a-zA-Z]\\w*",s="[a-zA-Z_]\\w*",t="\\b\\d+(\\.\\d+)?",u="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",v="\\b(0b[01]+)",w={begin:"\\\\[\\s\\S]",relevance:0},x=function(a,b,c={}){let e=d({scope:"comment",begin:a,end:b,contains:[]},c);e.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let f=n("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return e.contains.push({begin:m(/[ ]+/,"(",f,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),e},y=x("//","$"),z=x("/\\*","\\*/"),A=x("#","$");var B=Object.freeze({__proto__:null,APOS_STRING_MODE:{scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[w]},BACKSLASH_ESCAPE:w,BINARY_NUMBER_MODE:{scope:"number",begin:v,relevance:0},BINARY_NUMBER_RE:v,COMMENT:x,C_BLOCK_COMMENT_MODE:z,C_LINE_COMMENT_MODE:y,C_NUMBER_MODE:{scope:"number",begin:u,relevance:0},C_NUMBER_RE:u,END_SAME_AS_BEGIN:function(a){return Object.assign(a,{"on:begin":(a,b)=>{b.data._beginMatch=a[1]},"on:end":(a,b)=>{b.data._beginMatch!==a[1]&&b.ignoreMatch()}})},HASH_COMMENT_MODE:A,IDENT_RE:r,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+s,relevance:0},NUMBER_MODE:{scope:"number",begin:t,relevance:0},NUMBER_RE:t,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:{scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[w]},REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[w,{begin:/\[/,end:/\]/,relevance:0,contains:[w]}]},RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(a={})=>{let b=/^#![ ]*\//;return a.binary&&(a.begin=m(b,/.*\b/,a.binary,/\b.*/)),d({scope:"meta",begin:b,end:/$/,relevance:0,"on:begin":(a,b)=>{0!==a.index&&b.ignoreMatch()}},a)},TITLE_MODE:{scope:"title",begin:r,relevance:0},UNDERSCORE_IDENT_RE:s,UNDERSCORE_TITLE_MODE:{scope:"title",begin:s,relevance:0}});function C(a,b){"."===a.input[a.index-1]&&b.ignoreMatch()}function D(a,b){void 0!==a.className&&(a.scope=a.className,delete a.className)}function E(a,b){b&&a.beginKeywords&&(a.begin="\\b("+a.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",a.__beforeBegin=C,a.keywords=a.keywords||a.beginKeywords,delete a.beginKeywords,void 0===a.relevance&&(a.relevance=0))}function F(a,b){Array.isArray(a.illegal)&&(a.illegal=n(...a.illegal))}function G(a,b){if(a.match){if(a.begin||a.end)throw Error("begin & end are not supported with match");a.begin=a.match,delete a.match}}function H(a,b){void 0===a.relevance&&(a.relevance=1)}let I=(a,b)=>{if(!a.beforeMatch)return;if(a.starts)throw Error("beforeMatch cannot be used with starts");let c=Object.assign({},a);Object.keys(a).forEach(b=>{delete a[b]}),a.keywords=c.keywords,a.begin=m(c.beforeMatch,j(c.begin)),a.starts={relevance:0,contains:[Object.assign(c,{endsParent:!0})]},a.relevance=0,delete c.beforeMatch},J=["of","and","for","in","not","or","if","then","parent","list","value"],K={},L=a=>{console.error(a)},M=(a,...b)=>{console.log(`WARN: ${a}`,...b)},N=(a,b)=>{K[`${a}/${b}`]||(console.log(`Deprecated as of ${a}. ${b}`),K[`${a}/${b}`]=!0)},O=Error();function P(a,b,{key:c}){let d=0,e=a[c],f={},g={};for(let a=1;a<=b.length;a++)g[a+d]=e[a],f[a+d]=!0,d+=o(b[a-1]);a[c]=g,a[c]._emit=f,a[c]._multi=!0}function Q(a){if(a.scope&&"object"==typeof a.scope&&null!==a.scope&&(a.beginScope=a.scope,delete a.scope),"string"==typeof a.beginScope&&(a.beginScope={_wrap:a.beginScope}),"string"==typeof a.endScope&&(a.endScope={_wrap:a.endScope}),Array.isArray(a.begin)){if(a.skip||a.excludeBegin||a.returnBegin)throw L("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),O;if("object"!=typeof a.beginScope||null===a.beginScope)throw L("beginScope must be object"),O;P(a,a.begin,{key:"beginScope"}),a.begin=q(a.begin,{joinWith:""})}if(Array.isArray(a.end)){if(a.skip||a.excludeEnd||a.returnEnd)throw L("skip, excludeEnd, returnEnd not compatible with endScope: {}"),O;if("object"!=typeof a.endScope||null===a.endScope)throw L("endScope must be object"),O;P(a,a.end,{key:"endScope"}),a.end=q(a.end,{joinWith:""})}}class R extends Error{constructor(a,b){super(a),this.name="HTMLInjectionError",this.html=b}}let S=Symbol("nomatch"),T=function(a){let e=Object.create(null),f=Object.create(null),g=[],p=!0,r="Could not find the language '{}', did you forget to load/include a language module?",s={disableAutodetect:!0,name:"Plain text",contains:[]},t={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:h};function u(a){return t.noHighlightRe.test(a)}function v(a,b,c){let d="",e="";"object"==typeof b?(d=a,c=b.ignoreIllegals,e=b.language):(N("10.7.0","highlight(lang, code, ...args) has been deprecated."),N("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),e=a,d=b),void 0===c&&(c=!0);let f={code:d,language:e};P("before:highlight",f);let g=f.result?f.result:w(f.language,f.code,c);return g.code=f.code,P("after:highlight",g),g}function w(a,f,g,h){let j=Object.create(null);function k(){if(!B.keywords)return void M.addText(O);let a=0;B.keywordPatternRe.lastIndex=0;let b=B.keywordPatternRe.exec(O),c="";for(;b;){c+=O.substring(a,b.index);let d=y.case_insensitive?b[0].toLowerCase():b[0],e=B.keywords[d];if(e){let[a,f]=e;if(M.addText(c),c="",j[d]=(j[d]||0)+1,j[d]<=7&&(P+=f),a.startsWith("_"))c+=b[0];else{let c=y.classNameAliases[a]||a;m(b[0],c)}}else c+=b[0];a=B.keywordPatternRe.lastIndex,b=B.keywordPatternRe.exec(O)}c+=O.substring(a),M.addText(c)}function l(){null!=B.subLanguage?function(){if(""===O)return;let a=null;if("string"==typeof B.subLanguage){if(!e[B.subLanguage])return M.addText(O);a=w(B.subLanguage,O,!0,K[B.subLanguage]),K[B.subLanguage]=a._top}else a=x(O,B.subLanguage.length?B.subLanguage:null);B.relevance>0&&(P+=a.relevance),M.__addSublanguage(a._emitter,a.language)}():k(),O=""}function m(a,b){""!==a&&(M.startScope(b),M.addText(a),M.endScope())}function n(a,b){let c=1,d=b.length-1;for(;c<=d;){if(!a._emit[c]){c++;continue}let d=y.classNameAliases[a[c]]||a[c],e=b[c];d?m(e,d):(O=e,k(),O=""),c++}}function s(a,b){return a.scope&&"string"==typeof a.scope&&M.openNode(y.classNameAliases[a.scope]||a.scope),a.beginScope&&(a.beginScope._wrap?(m(O,y.classNameAliases[a.beginScope._wrap]||a.beginScope._wrap),O=""):a.beginScope._multi&&(n(a.beginScope,b),O="")),B=Object.create(a,{parent:{value:B}})}let u={};function v(c,d){let e=d&&d[0];if(O+=c,null==e)return l(),0;if("begin"===u.type&&"end"===d.type&&u.index===d.index&&""===e){if(O+=f.slice(d.index,d.index+1),!p){let b=Error(`0 width match regex (${a})`);throw b.languageName=a,b.badRule=u.rule,b}return 1}if(u=d,"begin"===d.type){let a=d[0],c=d.rule,e=new b(c);for(let b of[c.__beforeBegin,c["on:begin"]])if(b&&(b(d,e),e.isMatchIgnored))return 0===B.matcher.regexIndex?(O+=a[0],1):(U=!0,0);return c.skip?O+=a:(c.excludeBegin&&(O+=a),l(),c.returnBegin||c.excludeBegin||(O=a)),s(c,d),c.returnBegin?0:a.length}if("illegal"!==d.type||g){if("end"===d.type){let a=function(a){let c=a[0],d=f.substring(a.index),e=function a(c,d,e){let f=function(a,b){let c=a&&a.exec(b);return c&&0===c.index}(c.endRe,e);if(f){if(c["on:end"]){let a=new b(c);c["on:end"](d,a),a.isMatchIgnored&&(f=!1)}if(f){for(;c.endsParent&&c.parent;)c=c.parent;return c}}if(c.endsWithParent)return a(c.parent,d,e)}(B,a,d);if(!e)return S;let g=B;B.endScope&&B.endScope._wrap?(l(),m(c,B.endScope._wrap)):B.endScope&&B.endScope._multi?(l(),n(B.endScope,a)):g.skip?O+=c:(g.returnEnd||g.excludeEnd||(O+=c),l(),g.excludeEnd&&(O=c));do B.scope&&M.closeNode(),B.skip||B.subLanguage||(P+=B.relevance),B=B.parent;while(B!==e.parent);return e.starts&&s(e.starts,a),g.returnEnd?0:c.length}(d);if(a!==S)return a}}else{let a=Error('Illegal lexeme "'+e+'" for mode "'+(B.scope||"<unnamed>")+'"');throw a.mode=B,a}if("illegal"===d.type&&""===e)return O+="\n",1;if(T>1e5&&T>3*d.index)throw Error("potential infinite loop, way more iterations than matches");return O+=e,e.length}let y=C(a);if(!y)throw L(r.replace("{}",a)),Error('Unknown language: "'+a+'"');let z=function(a){function b(b,c){return RegExp(i(b),"m"+(a.case_insensitive?"i":"")+(a.unicodeRegex?"u":"")+(c?"g":""))}class c{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,b){b.position=this.position++,this.matchIndexes[this.matchAt]=b,this.regexes.push([b,a]),this.matchAt+=o(a)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);let a=this.regexes.map(a=>a[1]);this.matcherRe=b(q(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;let b=this.matcherRe.exec(a);if(!b)return null;let c=b.findIndex((a,b)=>b>0&&void 0!==a),d=this.matchIndexes[c];return b.splice(0,c),Object.assign(b,d)}}class e{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];let b=new c;return this.rules.slice(a).forEach(([a,c])=>b.addRule(a,c)),b.compile(),this.multiRegexes[a]=b,b}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(a,b){this.rules.push([a,b]),"begin"===b.type&&this.count++}exec(a){let b=this.getMatcher(this.regexIndex);b.lastIndex=this.lastIndex;let c=b.exec(a);if(this.resumingScanAtSamePosition())if(c&&c.index===this.lastIndex);else{let b=this.getMatcher(0);b.lastIndex=this.lastIndex+1,c=b.exec(a)}return c&&(this.regexIndex+=c.position+1,this.regexIndex===this.count&&this.considerAll()),c}}if(a.compilerExtensions||(a.compilerExtensions=[]),a.contains&&a.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return a.classNameAliases=d(a.classNameAliases||{}),function c(f,g){if(f.isCompiled)return f;[D,G,Q,I].forEach(a=>a(f,g)),a.compilerExtensions.forEach(a=>a(f,g)),f.__beforeBegin=null,[E,F,H].forEach(a=>a(f,g)),f.isCompiled=!0;let h=null;return"object"==typeof f.keywords&&f.keywords.$pattern&&(f.keywords=Object.assign({},f.keywords),h=f.keywords.$pattern,delete f.keywords.$pattern),h=h||/\w+/,f.keywords&&(f.keywords=function a(b,c,d="keyword"){let e=Object.create(null);return"string"==typeof b?f(d,b.split(" ")):Array.isArray(b)?f(d,b):Object.keys(b).forEach(function(d){Object.assign(e,a(b[d],c,d))}),e;function f(a,b){c&&(b=b.map(a=>a.toLowerCase())),b.forEach(function(b){var c,d,f;let g=b.split("|");e[g[0]]=[a,(c=g[0],(d=g[1])?Number(d):+(f=c,!J.includes(f.toLowerCase())))]})}}(f.keywords,a.case_insensitive)),f.keywordPatternRe=b(h,!0),g&&(f.begin||(f.begin=/\B|\b/),f.beginRe=b(f.begin),f.end||f.endsWithParent||(f.end=/\B|\b/),f.end&&(f.endRe=b(f.end)),f.terminatorEnd=i(f.end)||"",f.endsWithParent&&g.terminatorEnd&&(f.terminatorEnd+=(f.end?"|":"")+g.terminatorEnd)),f.illegal&&(f.illegalRe=b(f.illegal)),f.contains||(f.contains=[]),f.contains=[].concat(...f.contains.map(function(a){var b;return((b="self"===a?f:a).variants&&!b.cachedVariants&&(b.cachedVariants=b.variants.map(function(a){return d(b,{variants:null},a)})),b.cachedVariants)?b.cachedVariants:!function a(b){return!!b&&(b.endsWithParent||a(b.starts))}(b)?Object.isFrozen(b)?d(b):b:d(b,{starts:b.starts?d(b.starts):null})})),f.contains.forEach(function(a){c(a,f)}),f.starts&&c(f.starts,g),f.matcher=function(a){let b=new e;return a.contains.forEach(a=>b.addRule(a.begin,{rule:a,type:"begin"})),a.terminatorEnd&&b.addRule(a.terminatorEnd,{type:"end"}),a.illegal&&b.addRule(a.illegal,{type:"illegal"}),b}(f),f}(a)}(y),A="",B=h||z,K={},M=new t.__emitter(t),N=[];for(let a=B;a!==y;a=a.parent)a.scope&&N.unshift(a.scope);N.forEach(a=>M.openNode(a));let O="",P=0,R=0,T=0,U=!1;try{if(y.__emitTokens)y.__emitTokens(f,M);else{for(B.matcher.considerAll();;){T++,U?U=!1:B.matcher.considerAll(),B.matcher.lastIndex=R;let a=B.matcher.exec(f);if(!a)break;let b=f.substring(R,a.index),c=v(b,a);R=a.index+c}v(f.substring(R))}return M.finalize(),A=M.toHTML(),{language:a,value:A,relevance:P,illegal:!1,_emitter:M,_top:B}}catch(b){if(b.message&&b.message.includes("Illegal"))return{language:a,value:c(f),illegal:!0,relevance:0,_illegalBy:{message:b.message,index:R,context:f.slice(R-100,R+100),mode:b.mode,resultSoFar:A},_emitter:M};if(p)return{language:a,value:c(f),illegal:!1,relevance:0,errorRaised:b,_emitter:M,_top:B};throw b}}function x(a,b){b=b||t.languages||Object.keys(e);let d=function(a){let b={value:c(a),illegal:!1,relevance:0,_top:s,_emitter:new t.__emitter(t)};return b._emitter.addText(a),b}(a),f=b.filter(C).filter(O).map(b=>w(b,a,!1));f.unshift(d);let[g,h]=f.sort((a,b)=>{if(a.relevance!==b.relevance)return b.relevance-a.relevance;if(a.language&&b.language){if(C(a.language).supersetOf===b.language)return 1;else if(C(b.language).supersetOf===a.language)return -1}return 0});return g.secondBest=h,g}function y(a){let b=function(a){let b=a.className+" ";b+=a.parentNode?a.parentNode.className:"";let c=t.languageDetectRe.exec(b);if(c){let b=C(c[1]);return b||(M(r.replace("{}",c[1])),M("Falling back to no-highlight mode for this block.",a)),b?c[1]:"no-highlight"}return b.split(/\s+/).find(a=>u(a)||C(a))}(a);if(u(b))return;if(P("before:highlightElement",{el:a,language:b}),a.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",a);if(a.children.length>0&&(t.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(a)),t.throwUnescapedHTML))throw new R("One of your code blocks includes unescaped HTML.",a.innerHTML);let c=a.textContent,d=b?v(c,{language:b,ignoreIllegals:!0}):x(c);a.innerHTML=d.value,a.dataset.highlighted="yes";var e=d.language;let g=b&&f[b]||e;a.classList.add("hljs"),a.classList.add(`language-${g}`),a.result={language:d.language,re:d.relevance,relevance:d.relevance},d.secondBest&&(a.secondBest={language:d.secondBest.language,relevance:d.secondBest.relevance}),P("after:highlightElement",{el:a,result:d,text:c})}let z=!1;function A(){if("loading"===document.readyState){z||window.addEventListener("DOMContentLoaded",function(){A()},!1),z=!0;return}document.querySelectorAll(t.cssSelector).forEach(y)}function C(a){return e[a=(a||"").toLowerCase()]||e[f[a]]}function K(a,{languageName:b}){"string"==typeof a&&(a=[a]),a.forEach(a=>{f[a.toLowerCase()]=b})}function O(a){let b=C(a);return b&&!b.disableAutodetect}function P(a,b){g.forEach(function(c){c[a]&&c[a](b)})}for(let b in Object.assign(a,{highlight:v,highlightAuto:x,highlightAll:A,highlightElement:y,highlightBlock:function(a){return N("10.7.0","highlightBlock will be removed entirely in v12.0"),N("10.7.0","Please use highlightElement now."),y(a)},configure:function(a){t=d(t,a)},initHighlighting:()=>{A(),N("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){A(),N("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(b,c){let d=null;try{d=c(a)}catch(a){if(L("Language definition for '{}' could not be registered.".replace("{}",b)),p)L(a);else throw a;d=s}d.name||(d.name=b),e[b]=d,d.rawDefinition=c.bind(null,a),d.aliases&&K(d.aliases,{languageName:b})},unregisterLanguage:function(a){for(let b of(delete e[a],Object.keys(f)))f[b]===a&&delete f[b]},listLanguages:function(){return Object.keys(e)},getLanguage:C,registerAliases:K,autoDetection:O,inherit:d,addPlugin:function(a){var b;(b=a)["before:highlightBlock"]&&!b["before:highlightElement"]&&(b["before:highlightElement"]=a=>{b["before:highlightBlock"](Object.assign({block:a.el},a))}),b["after:highlightBlock"]&&!b["after:highlightElement"]&&(b["after:highlightElement"]=a=>{b["after:highlightBlock"](Object.assign({block:a.el},a))}),g.push(a)},removePlugin:function(a){let b=g.indexOf(a);-1!==b&&g.splice(b,1)}}),a.debugMode=function(){p=!1},a.safeMode=function(){p=!0},a.versionString="11.11.1",a.regex={concat:m,lookahead:j,either:n,optional:l,anyNumberOfTimes:k},B)"object"==typeof B[b]&&function a(b){return b instanceof Map?b.clear=b.delete=b.set=function(){throw Error("map is read-only")}:b instanceof Set&&(b.add=b.clear=b.delete=function(){throw Error("set is read-only")}),Object.freeze(b),Object.getOwnPropertyNames(b).forEach(c=>{let d=b[c],e=typeof d;"object"!==e&&"function"!==e||Object.isFrozen(d)||a(d)}),b}(B[b]);return Object.assign(a,B),a},U=T({});U.newInstance=()=>T({}),a.exports=U,U.HighlightJS=U,U.default=U}};
@@ -1 +0,0 @@
1
- exports.id=9067,exports.ids=[9067],exports.modules={7956:(a,b,c)=>{"use strict";c.d(b,{ZU:()=>i,fW:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f);let h=["/etc","/usr","/bin","/sbin","/var","/tmp","/dev","/sys","/proc"];function i(a,b){let c=b.endsWith("/")?b.slice(0,-1):b;return a===c||a.startsWith(c+"/")}let j=null;function k(a){let b=g().resolve(a),c=function(a){let b=[],c=a;for(;;)try{let a=e().realpathSync(c);return b.length>0?g().join(a,...b):a}catch{let d=g().dirname(c);if(d===c)return a;b.unshift(g().basename(c)),c=d}}(b);return(function(){if(null!==j)return j;let a=new Set;for(let b of h){a.add(b);try{a.add(e().realpathSync(b))}catch{}}return j=Array.from(a)})().some(a=>i(b,a)||i(c,a))}},15194:(a,b,c)=>{"use strict";c.d(b,{Ab:()=>g,FV:()=>s,NL:()=>r,QP:()=>t,Sj:()=>k,VA:()=>f,XH:()=>d,_J:()=>u,ef:()=>m,hR:()=>n,lu:()=>p,n6:()=>j,oo:()=>o,pL:()=>l,pQ:()=>h,vz:()=>q});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity"],e=new Set(["claude","opencode","copilot"]);function f(a){return e.has(a)}let g=10,h=50,i=/^[a-zA-Z0-9_-]+$/;function j(a){return"string"==typeof a&&a.length>0&&a.length<=64&&i.test(a)}function k(a,b){return!a||a===b}function l(a,b){let c=`${b}-`;return a.startsWith(c)?a.slice(c.length):a}let m={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity"};function n(a){return d.includes(a)}function o(a){return m[a]??a}function p(a){return a.map((a,b)=>({id:a,cliTool:a,alias:o(a),order:b}))}let q=128,r=2097152;function s(a){return"number"==typeof a&&Number.isInteger(a)&&a>=q&&a<=r}let t=/^[a-zA-Z0-9][a-zA-Z0-9._:/-]*$/;function u(a){return"function"==typeof a.supportsImage&&!0===a.supportsImage()}},20416:(a,b,c)=>{"use strict";c.d(b,{$b:()=>i,Sv:()=>j});var d=c(33873),e=c.n(d),f=c(21820),g=c(48870),h=c(7956);function i(){return(0,g.TJ)()?e().join((0,f.homedir)(),".commandmate","data","cm.db"):e().resolve(process.cwd(),"data","cm.db")}function j(a){let b=e().resolve(a);if((0,g.TJ)()){let a=(0,f.homedir)();if(!(0,h.ZU)(b,a))throw Error(`Security error: DB path must be within home directory: ${b}`)}else if((0,h.fW)(b))throw Error(`Security error: DB path cannot be in system directory: ${b}`);return b}},48870:(a,b,c)=>{"use strict";c.d(b,{GQ:()=>j,TJ:()=>g,Tf:()=>h,WI:()=>i});var d=c(29021),e=c(33873),f=c(21820);function g(){let a=(0,e.dirname)(__dirname);return a.includes("/lib/node_modules/")||a.includes("\\node_modules\\")||a.includes("/node_modules/commandmate")}function h(){let a=(0,e.dirname)(__dirname);return a.includes("/_npx/")||a.includes("\\_npx\\")}function i(){if(g()){let a=(0,e.join)((0,f.homedir)(),".commandmate");if((0,d.existsSync)(a)){let b=(0,d.realpathSync)(a),c=(0,d.realpathSync)((0,f.homedir)());if(!b.startsWith(c))throw Error(`Security error: Config directory ${a} is outside home directory`);return b}return a}let a=process.cwd();return(0,d.realpathSync)(a)}function j(){let a=g()?(0,e.join)((0,f.homedir)(),".commandmate"):process.cwd();return(0,d.existsSync)(a)||(0,d.mkdirSync)(a,{recursive:!0,mode:448}),i()}},72626:(a,b,c)=>{"use strict";c.d(b,{K:()=>i,h:()=>j});var d=c(87447);let e=[{pattern:/Bearer\s+[A-Za-z0-9\-._~+/]+=*/gi,replacement:"Bearer [REDACTED]"},{pattern:/(password|passwd|pwd)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/(token|secret|api_key|apikey|auth)[=:]\s*\S+/gi,replacement:"$1=[REDACTED]"},{pattern:/Authorization:\s*\S+/gi,replacement:"Authorization: [REDACTED]"},{pattern:/-----BEGIN\s+\w+\s+PRIVATE\s+KEY-----[\s\S]*?-----END\s+\w+\s+PRIVATE\s+KEY-----/g,replacement:"[SSH_KEY_REDACTED]"},{pattern:/(\w+:\/\/)[^/@\s]+@/g,replacement:"$1[REDACTED]@"}],f=/password|secret|token|key|auth/i,g={debug:0,info:1,warn:2,error:3};function h(a,b,c,h,i){let j=(0,d.nR)().level;if(g[a]<g[j])return;let k=h?function a(b){if("string"==typeof b){let a=b;for(let{pattern:b,replacement:c}of e)a=a.replace(b,c);return a}if("object"==typeof b&&null!==b){if(Array.isArray(b))return b.map(a);let c={};for(let[d,e]of Object.entries(b))f.test(d)?c[d]="[REDACTED]":c[d]=a(e);return c}return b}(h):void 0,l=function(a){if("json"===(0,d.nR)().format)return JSON.stringify(a);let{timestamp:b,level:c,module:e,action:f,data:g,worktreeId:h,cliToolId:i,requestId:j}=a,k=[h,i].filter(Boolean),l=k.length>0?` [${k.join(":")}]`:"",m=j?` (${j.slice(0,8)})`:"",n=g?` ${JSON.stringify(g)}`:"";return`[${b}] [${c.toUpperCase()}] [${e}]${l}${m} ${f}${n}`}({level:a,module:b,action:c,timestamp:new Date().toISOString(),...i,...k&&{data:k}});switch(a){case"error":console.error(l);break;case"warn":console.warn(l);break;default:console.log(l)}}function i(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let b=16*Math.random()|0;return("x"===a?b:3&b|8).toString(16)})}function j(a){let b=c=>({debug:(b,d)=>h("debug",a,b,d,c),info:(b,d)=>h("info",a,b,d,c),warn:(b,d)=>h("warn",a,b,d,c),error:(b,d)=>h("error",a,b,d,c),withContext:a=>b({...c,...a})});return b()}},78335:()=>{},87447:(a,b,c)=>{"use strict";c.d(b,{_$:()=>l,_p:()=>i,nR:()=>k});var d=c(33873),e=c.n(d),f=c(20416);let g={CM_ROOT_DIR:"MCBD_ROOT_DIR",CM_PORT:"MCBD_PORT",CM_BIND:"MCBD_BIND",CM_LOG_LEVEL:"MCBD_LOG_LEVEL",CM_LOG_FORMAT:"MCBD_LOG_FORMAT",CM_LOG_DIR:"MCBD_LOG_DIR",CM_DB_PATH:"MCBD_DB_PATH"},h=new Set;function i(a){var b=g[a];let c=process.env[a];if(void 0!==c)return c;let d=process.env[b];return void 0!==d?(h.has(b)||(console.warn(`[DEPRECATED] ${b} is deprecated, use ${a} instead`),h.add(b)),d):void 0}let j=!1;function k(){let a=i("CM_LOG_LEVEL")?.toLowerCase(),b=i("CM_LOG_FORMAT")?.toLowerCase();return{level:void 0!==a&&["debug","info","warn","error"].includes(a)?a:"info",format:"json"===b?"json":"text"}}function l(){let a,b=i("CM_ROOT_DIR")||process.cwd(),c=parseInt(i("CM_PORT")||"3000",10),d=i("CM_BIND")||"127.0.0.1",g=i("CM_DB_PATH"),h=g||function(){let a=process.env.DATABASE_PATH;return a&&!j&&(console.warn("[DEPRECATED] DATABASE_PATH is deprecated. Use CM_DB_PATH instead."),j=!0),a}()||(0,f.$b)();if(!b)throw Error("CM_ROOT_DIR (or MCBD_ROOT_DIR) is required");if(isNaN(c)||c<1||c>65535)throw Error(`Invalid CM_PORT: ${i("CM_PORT")}. Must be between 1 and 65535.`);if("127.0.0.1"!==d&&"0.0.0.0"!==d&&"localhost"!==d)throw Error(`Invalid CM_BIND: ${d}. Must be '127.0.0.1', '0.0.0.0', or 'localhost'.`);try{a=(0,f.Sv)(h)}catch(b){if(void 0!==g){let a=b instanceof Error?b.message:String(b);throw Error(`Invalid CM_DB_PATH: ${a}. Set CM_DB_PATH to an allowed location, or unset it to use the default (${(0,f.$b)()}).`)}console.warn(`[Security] Invalid DB path "${h}", using default.`),a=(0,f.Sv)((0,f.$b)())}return{CM_ROOT_DIR:e().resolve(b),CM_PORT:c,CM_BIND:d,CM_DB_PATH:a}}},96487:()=>{}};
@@ -1 +0,0 @@
1
- "use strict";exports.id=9192,exports.ids=[9192],exports.modules={2412:(a,b,c)=>{c.d(b,{Qb:()=>f,tR:()=>g});var d=c(46065);let e=Symbol("default-branch-unresolved");async function f(a){let b=await (0,d.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a);if(null===b)return e;let c=b.trim();return c.startsWith("origin/")?c.slice(7):null}async function g(a){let b=await f(a);return"string"==typeof b?b:null}},59082:(a,b,c)=>{c.d(b,{C4:()=>l,FW:()=>j,Iz:()=>k,Z3:()=>m});var d=c(65417),e=c(72626),f=c(46065),g=c(2412),h=c(63271);let i=(0,e.h)("git-remote");async function j(a,b){let{remote:c="origin",prune:e}=b,g=["fetch"];e&&g.push("--prune"),g.push(c,"--"),await (0,f.sl)(g,a,d.dw)}async function k(a,b,c){await (0,f.rS)(["remote","add",b,c],a,5e3)}async function l(a,b){let{remote:c="origin",branch:e,rebase:g,ffOnly:h}=b;return(0,f.dX)(a,async()=>{let b=["pull"];return g&&b.push("--rebase"),h&&b.push("--ff-only"),b.push(c),e&&b.push(e),b.push("--"),(0,f.mY)(b,a,d.A$,!0)})}async function m(a,b){let{remote:c="origin",branch:e,force:j,forceWithLease:k,setUpstream:l}=b;if(j||k){let b=await (0,g.tR)(a);if(null!==b&&b===e)throw new h.rm;i.warn("git:danger:force-push",{operation:"push",worktreePath:a,branch:e,forceWithLease:!0===k,timestamp:new Date().toISOString()})}await (0,f.dX)(a,async()=>{let b=["push"];k?b.push("--force-with-lease"):j&&b.push("--force"),l&&b.push("-u"),b.push(c,`${e}:refs/heads/${e}`,"--"),await (0,f.sl)(b,a,d.fL)})}},99192:(a,b,c)=>{c.d(b,{nX:()=>H,z0:()=>u,lY:()=>I,SN:()=>J,Pt:()=>w,ID:()=>i,Wz:()=>y,NM:()=>r,ac:()=>s,$G:()=>h,t$:()=>m,mk:()=>M,Lz:()=>z,om:()=>C,FW:()=>V.FW,C4:()=>V.C4,Z3:()=>V.Z3,S7:()=>T,lw:()=>U,x7:()=>d.x7,jr:()=>E,pc:()=>A,Ey:()=>P,X_:()=>Q,VM:()=>O,oC:()=>N,X0:()=>B});var d=c(63271),e=c(46065),f=c(2412),g=c(65417);async function h(a,b){let c,[d,f,g]=await Promise.all([(0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a),(0,e.Bc)(["rev-parse","--short","HEAD"],a),(0,e.Bc)(["status","--porcelain"],a)]);return c=null===d?"(unknown)":"HEAD"===d?"(detached HEAD)":d,{currentBranch:c,initialBranch:b,isBranchMismatch:null!==b&&"(unknown)"!==c&&"(detached HEAD)"!==c&&c!==b,commitHash:f??"(unknown)",isDirty:null!==g&&g.length>0}}async function i(a){let b=await (0,e.Bc)(["rev-list","--left-right","--count","@{upstream}...HEAD"],a);if(null===b)return null;let c=b.split(" ");if(2!==c.length)return null;let d=parseInt(c[0],10),f=parseInt(c[1],10);return Number.isInteger(d)&&Number.isInteger(f)?{ahead:f,behind:d}:null}function j(a){switch(a){case"A":return"added";case"D":return"deleted";case"R":case"C":return"renamed";default:return"modified"}}let k=new Set(["DD","AU","UD","UA","DU","AA","UU"]);function l(a){let b=a.indexOf(" -> ");return -1!==b?a.slice(b+4):a}async function m(a){return function(a){let b=[],c=[],d=[];if(!a)return{staged:b,unstaged:c,untracked:d};for(let e of a.split("\n")){if(e.length<4)continue;let a=e[0],f=e[1],g=e.slice(3);if(!g)continue;if("?"===a&&"?"===f){d.push({path:l(g),status:"untracked"});continue}let h=l(g);if("U"===a||"U"===f||k.has(`${a}${f}`)){c.push({path:h,status:"unmerged"});continue}" "!==a&&"?"!==a&&b.push({path:h,status:j(a)})," "!==f&&"?"!==f&&c.push({path:h,status:j(f)})}return{staged:b,unstaged:c,untracked:d}}(await (0,e.rS)(["status","--porcelain"],a,g.Ev))}var n=c(29021),o=c.n(n),p=c(72626);let q=(0,p.h)("git-log");async function r(a,b=50,c=0){let d=(await (0,e.rS)(["log",`--max-count=${b}`,`--skip=${c}`,"--format=%H%n%h%n%s%n%an%n%aI","--"],a,e.t1)).trim();if(!d)return[];let f=d.split("\n"),g=[];for(let a=0;a+4<f.length;a+=5)g.push({hash:f[a],shortHash:f[a+1],message:f[a+2],author:f[a+3],date:f[a+4]});return g}async function s(a,b){try{let c=(await (0,e.rS)(["log","-1","--format=%H%n%h%n%s%n%an%n%aI",b,"--"],a,e.t1)).trim().split("\n");if(c.length<5)return null;let d={hash:c[0],shortHash:c[1],message:c[2],author:c[3],date:c[4]},f=await (0,e.rS)(["diff-tree","--no-commit-id","-r","--name-status",b,"--"],a,e.t1),g=function(a){let b=[];for(let c of a.trim().split("\n")){if(!c.trim())continue;let a=c.split(" ");if(a.length<2)continue;let d=a[0].trim(),e=a[a.length-1].trim();d.startsWith("R")?b.push({path:e,status:"renamed"}):"A"===d?b.push({path:e,status:"added"}):"D"===d?b.push({path:e,status:"deleted"}):b.push({path:e,status:"modified"})}return b}(f);return{commit:d,files:g}}catch(b){if(b instanceof d.y0||b instanceof d.wo)throw b;let a=b instanceof Error?b.message:"";if(a.includes("unknown revision")||a.includes("bad object"))return null;throw b}}async function t(a,b,c){if(!o().existsSync(a))return[];try{let{stdout:d}=await (0,e.mf)("git",["log","--all",`--since=${b}`,`--until=${c}`,`--format=%h\x1f%s\x1f%an`,"--"],{cwd:a,timeout:5e3}),f=d.trim();if(!f)return[];let g=[];for(let a of f.split("\n")){let b=a.split("\x1f");3===b.length&&g.push({shortHash:b[0],message:b[1],author:b[2]})}return g}catch(b){return q.error("git:commit-log-failed",{repoPath:a,error:b instanceof Error?b.message:"Unknown error"}),[]}}async function u(a,b,c){let d=await Promise.allSettled(a.map(async a=>({id:a.id,name:a.name,commits:await t(a.path,b,c)}))),e=new Map;for(let a of d)"fulfilled"===a.status&&a.value.commits.length>0&&e.set(a.value.id,{name:a.value.name,commits:a.value.commits});return e}let v=/(?:(?:closes|fixes|resolves)\s+)?#(\d+)/gi;function w(a){let b=new Set;for(let c of a){let a;for(v.lastIndex=0;null!==(a=v.exec(c));)b.add(parseInt(a[1],10))}return Array.from(b).sort((a,b)=>a-b)}let x=(0,p.h)("git-diff");async function y(a,b,c){try{return(await (0,e.rS)(["show",b,"--",c],a,e.t1)).trim()||null}catch(a){if(a instanceof d.y0||a instanceof d.wo)throw a;return null}}async function z(a,b,c){let f=function(a,b){switch(b){case"staged":return["diff","--cached","--",a];case"untracked":return["diff","--no-index","--","/dev/null",a];default:return["diff","--",a]}}(b,c);try{let{stdout:b}=await (0,e.mf)("git",f,{cwd:a,timeout:e.t1});return b.trim()||null}catch(a){if(a.killed||"ERR_CHILD_PROCESS_EXEC_TIMEOUT"===a.code||"ETIMEDOUT"===a.code)throw new d.y0(`Git command timed out after ${e.t1}ms`);if((a.stderr||a.message||"").includes("not a git repository"))throw new d.wo("Not a git repository");if("string"==typeof a.stdout)return a.stdout.trim()||null;throw x.error("git:working-diff-failed",{args:f.join(" "),error:a.message}),Error("Failed to execute git command")}}async function A(a,b){await (0,e.dX)(a,async()=>{await (0,e.rS)(["add","--",...b],a,g.Ev)})}async function B(a,b){await (0,e.dX)(a,async()=>{await (0,e.rS)(["restore","--staged","--",...b],a,g.Ev)})}async function C(a,b,c){await (0,e.dX)(a,async()=>{let f=["commit","-m",b];c&&f.push("--amend"),f.push("--");try{await (0,e.rS)(f,a,g.Ev)}catch(b){let a=b instanceof Error?b.message:"";if(/nothing to commit|no changes added to commit|nothing added to commit/i.test(a))throw new d.mZ("Nothing to commit");throw b}})}function D(a){let b=new Map;if(!a)return b;let c=null;for(let d of a.split("\n")){let a=d.trimEnd();if(a.startsWith("worktree "))c=a.slice(9).trim();else if(a.startsWith("branch ")&&c){let d=a.slice(7).trim(),e=d.startsWith("refs/heads/")?d.slice(11):d;e&&b.set(e,c)}else""===a&&(c=null)}return b}async function E(a,b="local"){let c="local"===b||"all"===b,d="remote"===b||"all"===b,[f,g,h,i,j]=await Promise.all([c?(0,e.Bc)(["branch","--list"],a):Promise.resolve(""),d?(0,e.Bc)(["branch","-r"],a):Promise.resolve(""),(0,e.Bc)(["symbolic-ref","refs/remotes/origin/HEAD","--short"],a),(0,e.Bc)(["worktree","list","--porcelain"],a),(0,e.Bc)(["for-each-ref","--format=%(refname:short)%09%(upstream:short)%09%(upstream:track)","refs/heads"],a)]),k=h?h.trim():null,l=D(i??""),m=function(a){let b=new Map;if(!a)return b;for(let c of a.split("\n")){if(!c.trim())continue;let[a,d="",e=""]=c.split(" ");if(!a)continue;let f=d.trim()||null,g=null;if(f){let a=e.match(/ahead (\d+)/),b=e.match(/behind (\d+)/);a||b?g={ahead:a?parseInt(a[1],10):0,behind:b?parseInt(b[1],10):0}:/gone/.test(e)||(g={ahead:0,behind:0})}b.set(a,{upstream:f,aheadBehind:g})}return b}(j??""),n=[];if(c)for(let{name:a,isCurrent:b}of function(a){let b=[];if(!a)return b;for(let c of a.split("\n")){let a=c.trimEnd();if(!a.trim())continue;let d=a.startsWith("* "),e=a.replace(/^[*+]?\s+/,"").trim();!e||e.startsWith("(")||b.push({name:e,isCurrent:d})}return b}(f??"")){let c=m.get(a);n.push({name:a,isCurrent:b,isRemote:!1,isDefault:null!==k&&k===`origin/${a}`,upstream:c?.upstream??null,aheadBehind:c?.aheadBehind??null,checkedOutWorktreePath:l.get(a)??null})}if(d)for(let a of function(a){let b=[];if(!a)return b;for(let c of a.split("\n")){let a=c.trim();a&&(a.includes("->")||b.push(a))}return b}(g??""))n.push({name:a,isCurrent:!1,isRemote:!0,isDefault:null!==k&&k===a,upstream:null,aheadBehind:null,checkedOutWorktreePath:null});return n}async function F(a,b){let c=await (0,e.Bc)(["worktree","list","--porcelain"],a);if(null===c)return null;let d=D(c).get(b);return d&&d!==a?d:null}function G(a){if(a instanceof d.y0||a instanceof d.wo||a instanceof d.rI)throw a;let b=a instanceof Error?a.message:String(a),c=a?.stderr??"",e=`${c} ${b}`;if(/did not match|not a valid ref|not found|unknown revision|invalid reference|couldn't find remote ref/i.test(e))throw new d.ur("Branch not found");throw a}async function H(a,b){let{branch:c,createIfMissing:f=!1,from:h,force:i=!1}=b,j=await F(a,c);if(j)throw new d.oK("Branch is checked out in another worktree",j);if(!i){let b=await (0,e.Bc)(["status","--porcelain"],a);if(null!==b&&b.length>0)throw new d.d_("Working tree has uncommitted changes")}await (0,e.dX)(a,async()=>{let b;f?(b=["switch","-c",c],h&&b.push(h),b.push("--")):b=c.startsWith("origin/")?["switch","-c",c.slice(7),"--track",c,"--"]:i?["checkout","-f",c,"--"]:["switch",c,"--"];try{await (0,e.rS)(b,a,g.Ev)}catch(a){G(a)}})}async function I(a,b){let{name:c,from:d}=b;await (0,e.dX)(a,async()=>{let b=["branch",c];d&&b.push(d),b.push("--");try{await (0,e.rS)(b,a,g.Ev)}catch(a){G(a)}})}async function J(a,b){let{name:c,force:h=!1}=b,i=await (0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a);if(null!==i&&i.trim()===c)throw new d.MC("Cannot delete the current branch");let j=await (0,f.tR)(a);if(null!==j&&j===c)throw new d.qb("Cannot delete the default branch");await (0,e.dX)(a,async()=>{try{await (0,e.rS)(["branch",h?"-D":"-d",c,"--"],a,g.Ev)}catch(e){let a=e instanceof Error?e.message:String(e),b=e?.stderr??"",c=`${b} ${a}`;if(/not fully merged/i.test(c))throw new d.A6("Branch is not fully merged");G(e)}})}let K=(0,p.h)("git-stash"),L=/^stash@\{(\d+)\}$/;async function M(a){let b=await (0,e.Bc)(["stash","list","--format=%gd%x09%s%x09%cI%x09%H"],a);if(null===b)return[];let c=[];if(!b||!b.trim())return c;for(let a of b.split("\n")){if(!a.trim())continue;let[b="",d="",e="",f=""]=a.split(" "),g=b.match(L);g&&c.push({index:parseInt(g[1],10),message:d,branch:function(a){let b=a.match(/^WIP on ([^:]+):/);if(b)return b[1].trim()||null;let c=a.match(/^On ([^:]+):/);return c&&c[1].trim()||null}(d),date:e,sha:f})}return c}async function N(a,b){let{message:c,includeUntracked:f}=b;await (0,e.dX)(a,async()=>{let b=["stash","push"];f&&b.push("--include-untracked"),c&&b.push("-m",c),b.push("--");try{await (0,e.rS)(b,a,g.Ev)}catch(c){let a=c instanceof Error?c.message:"",b=c?.stderr??"";if(/No local changes to save|No stash entries|No local changes/i.test(`${b} ${a}`))throw new d.s$("No local changes to stash");throw c}})}async function O(a,b){return(0,e.dX)(a,async()=>{let c=await (0,e.mY)(["stash","pop","--",`stash@{${b}}`],a);return c.conflict?{...c,stashRetained:!0}:c})}async function P(a,b){return(0,e.dX)(a,async()=>(0,e.mY)(["stash","apply","--",`stash@{${b}}`],a))}async function Q(a,b){K.warn("git:danger:stash-drop",{operation:"stash-drop",worktreePath:a,index:b,timestamp:new Date().toISOString()}),await (0,e.dX)(a,async()=>{await (0,e.rS)(["stash","drop","--",`stash@{${b}}`],a,g.Ev)})}let R=(0,p.h)("git-reset");async function S(a){let b=await (0,e.Bc)(["rev-parse","--abbrev-ref","HEAD"],a);if(null===b)return!1;let c=b.trim(),d=await (0,f.Qb)(a);return"string"==typeof d?d===c:null!==d&&("main"===c||"master"===c)}async function T(a,b){let{target:c,mode:f}=b;if("hard"===f){if(await S(a))throw R.warn("git:danger:hard-reset-blocked",{operation:"reset",worktreePath:a,target:c,mode:f,timestamp:new Date().toISOString()}),new d.BN("Cannot hard-reset the default branch");R.warn("git:danger:hard-reset",{operation:"reset",worktreePath:a,target:c,mode:f,timestamp:new Date().toISOString()})}await (0,e.dX)(a,async()=>{await (0,e.rS)(["reset",`--${f}`,c,"--"],a,g.Ev)})}async function U(a,b){let{commitHash:c,noCommit:d}=b;return R.warn("git:danger:revert",{operation:"revert",worktreePath:a,commitHash:c,noCommit:!0===d,timestamp:new Date().toISOString()}),(0,e.dX)(a,async()=>{let b=["revert"];return d&&b.push("--no-commit"),b.push(c,"--"),(0,e.mY)(b,a)})}var V=c(59082)}};
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:46,errorRate:1e-4,numBits:882,numHashes:14,bitArray:[0,1,1,e,e,e,0,r,e,r,e,r,r,e,e,r,e,r,r,e,e,e,r,e,e,r,r,e,e,e,e,r,e,r,e,e,r,r,r,r,r,r,e,e,e,e,r,e,r,e,r,e,r,r,r,e,r,r,r,e,r,e,r,e,r,r,e,e,e,r,r,e,r,r,r,e,r,e,e,e,e,e,e,e,e,e,r,e,e,r,r,r,e,r,e,e,e,e,e,r,e,e,e,e,r,e,r,e,r,r,r,r,e,e,e,r,r,r,e,r,e,r,r,e,e,r,e,e,e,e,r,r,r,e,r,r,r,e,e,r,r,r,e,e,e,r,r,e,r,r,r,e,e,e,r,e,e,r,e,r,e,e,e,e,r,e,e,e,r,e,e,r,e,r,r,e,e,r,r,e,e,r,e,r,r,r,r,r,r,e,e,r,r,r,r,e,r,e,e,r,r,r,r,e,r,e,e,r,e,e,e,e,e,r,e,e,r,r,e,e,e,e,r,r,r,r,e,r,r,e,r,e,r,r,e,r,r,e,r,e,r,r,e,r,e,r,r,r,r,r,r,e,r,r,r,r,r,r,e,r,e,e,r,e,r,e,r,r,r,r,r,r,e,r,e,r,e,r,r,r,e,r,r,r,r,e,r,e,r,e,e,e,r,r,e,e,e,e,r,e,e,r,e,r,r,e,e,r,r,r,e,e,e,e,e,r,r,r,e,r,e,e,r,e,e,r,e,e,r,e,r,r,r,e,e,r,r,e,r,e,e,r,e,e,e,r,e,e,e,r,r,r,r,e,r,e,r,e,r,e,r,e,r,r,r,e,r,e,e,e,r,e,e,e,r,e,e,r,r,e,e,r,r,r,e,r,r,e,e,e,r,r,e,e,e,e,e,e,r,e,e,e,r,r,e,r,r,r,r,e,e,e,r,e,e,r,e,e,r,r,e,e,r,r,r,e,e,e,e,e,e,r,e,r,e,r,e,r,e,r,r,e,r,e,r,e,r,e,e,e,e,e,e,r,r,e,e,e,e,e,r,e,r,r,r,r,e,e,e,r,r,e,e,e,e,e,e,e,r,r,r,r,r,e,r,e,r,e,r,r,e,e,r,e,r,e,e,e,r,e,r,r,r,e,e,e,e,e,r,r,e,r,r,e,e,r,e,e,r,e,e,e,e,r,e,e,r,e,e,r,r,r,e,e,e,r,e,e,r,r,e,e,e,e,r,r,r,r,e,r,e,e,e,e,r,e,r,r,r,r,r,r,r,e,r,r,e,r,e,e,r,e,e,e,e,e,r,r,e,e,r,e,e,e,e,r,e,e,r,e,r,r,r,e,e,e,r,r,e,e,r,r,r,r,e,r,e,r,e,r,e,e,r,r,e,e,e,r,r,r,r,r,e,r,e,e,e,r,r,e,e,r,r,e,e,e,e,e,e,r,e,r,r,e,e,e,e,e,e,e,e,e,e,r,r,e,r,r,r,e,r,r,r,r,e,e,r,r,e,r,e,r,r,r,e,e,r,e,e,e,e,r,e,e,r,r,e,r,r,e,r,e,e,r,e,e,r,r,r,r,r,r,e,e,r,r,r,e,e,r,r,r,r,e,r,e,r,e,r,r,e,e,r,e,e,r,e,r,e,r,e,e,e,e,e,e,r,r,r,e,r,r,e,r,e,r,e,e,e,e,e,e,r,e,e,e,r,r,e,e,e,r,e,r,r,r,r,r,r,r,r,r,e,e,r,e,e,r,r,r,e,e,r,e,r,r,r,e,e,r,r,r,e,e,r,r,e,e,e,r,r,e,e,r,r,r,r,e,e,r,e,e,e,r,r,r,e,e,r,e,r,r,e,r,e,r,e,e,r,r,r,e,r,r,e,e,r,r,e,r,e,e,r,r,e,e,e,r,e,r,e,r,e,r,e,r,e,e,r,e,e,r,e,r,e,e,r,e,e,e,r,r,e,r,r,e,e,r,e,r,e,r]},__routerFilterDynamic:{numItems:9,errorRate:1e-4,numBits:173,numHashes:14,bitArray:[e,r,e,e,r,r,e,e,e,r,r,e,e,e,e,r,e,e,e,e,e,r,e,r,r,e,r,e,e,e,r,e,e,e,r,e,e,e,r,r,r,e,e,e,e,r,e,e,e,e,e,e,e,r,r,e,r,r,r,r,e,r,e,r,e,e,r,r,e,e,r,e,e,e,r,e,r,r,r,r,r,e,r,r,r,e,e,e,e,r,e,e,r,e,r,r,e,e,e,r,e,r,r,e,e,r,e,r,e,r,r,r,r,r,r,e,r,r,e,r,e,e,e,e,r,r,e,r,r,r,r,r,r,e,r,r,r,r,r,e,r,e,r,e,e,e,e,r,e,r,e,e,r,r,e,e,e,e,e,e,e,r,r,e,r,e,e,r,r,e,r,e,e]},"/_error":["static/chunks/pages/_error-c970d8b55ace1b48.js"],sortedPages:["/_app","/_error"]}}(1,0,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1668],{34380:(e,s,l)=>{l.d(s,{B:()=>T});var t=l(95155),n=l(12115),a=l(18955),r=l(744),i=l(54014),d=l(74385),o=l(37381);function c(e){var s,l,t,n,a;let r=e.agentInstances&&e.agentInstances.length>0?e.agentInstances.map(e=>e.alias||e.cliTool):null!=(l=e.selectedAgents)?l:e.cliToolId?[e.cliToolId]:[];return{id:e.id,name:e.name,repositoryName:null!=(t=e.repositoryDisplayName)?t:e.repositoryName,syncedBranch:null!=(n=e.branch)?n:null,liveBranch:null!=(a=null==(s=e.gitStatus)?void 0:s.currentBranch)?a:null,dirty:e.gitStatus?e.gitStatus.isDirty:null,agents:[...new Set(r)],sessionRunning:!0===e.isSessionRunning}}let u={status:"loading",options:[]};async function x(e){let s=await fetch("/api/worktrees",{signal:e,headers:{Accept:"application/json"}});if(!s.ok)throw Error("HTTP ".concat(s.status));let l=await s.json(),t=null==l?void 0:l.worktrees;if(!Array.isArray(t))throw Error("Malformed worktree list");return t.map(c)}function m(e){let{selectedWorktreeId:s,onSelect:l,disabled:i=!1}=e,d=(0,a.c)("skills"),[c,m]=(0,n.useState)(u),[g,h]=(0,n.useState)(0);(0,n.useEffect)(()=>{let e=new AbortController;return m(u),x(e.signal).then(s=>{e.signal.aborted||m({status:"loaded",options:s})}).catch(()=>{e.signal.aborted||m({status:"error",options:[]})}),()=>e.abort()},[g]);let k=(0,n.useCallback)(()=>h(e=>e+1),[]);return"loading"===c.status?(0,t.jsxs)("div",{className:"space-y-2","data-testid":"skill-target-loading",children:[(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:d("target.loading")}),(0,t.jsx)(r.EA,{className:"h-24 w-full rounded-lg"})]}):"error"===c.status?(0,t.jsxs)(r.Zp,{className:"space-y-3","data-testid":"skill-target-error",children:[(0,t.jsx)(o.u,{tone:"danger",children:d("target.errorNotice")}),(0,t.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:k,"data-testid":"skill-target-retry",children:d("target.retry")})]}):0===c.options.length?(0,t.jsx)(r.Zp,{"data-testid":"skill-target-empty",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:d("target.empty")})}):(0,t.jsxs)("div",{className:"space-y-3","data-testid":"skill-target-selector",children:[(0,t.jsx)("div",{role:"radiogroup","aria-label":d("target.heading"),className:"space-y-2",children:c.options.map(e=>(0,t.jsx)(p,{option:e,selected:e.id===s,disabled:i,onSelect:l},e.id))}),(0,t.jsx)(o.u,{tone:"neutral","data-testid":"skill-target-branch-notice",children:d("target.branchFreshnessNotice")})]})}function p(e){var s;let{option:l,selected:n,disabled:i,onSelect:d}=e,o=(0,a.c)("skills"),c=null!=(s=l.liveBranch)?s:l.syncedBranch;return(0,t.jsxs)("button",{type:"button",role:"radio","aria-checked":n,disabled:i,onClick:()=>d(l.id),"data-testid":"skill-target-option-".concat(l.id),className:"w-full rounded-lg border px-3 py-2.5 text-left transition-colors disabled:cursor-not-allowed disabled:opacity-60 ".concat(n?"border-accent-500 bg-accent-50 dark:bg-accent-950/40":"border-border bg-card hover:bg-muted"),children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm font-semibold text-foreground break-all",children:l.name}),n&&(0,t.jsx)(r.Ex,{variant:"info",children:o("target.selected")})]}),(0,t.jsxs)("dl",{className:"mt-1.5 grid grid-cols-1 gap-x-4 gap-y-1 sm:grid-cols-2",children:[(0,t.jsx)(g,{label:o("target.repository"),children:l.repositoryName}),(0,t.jsx)(g,{label:o("target.branch"),children:null!=c?c:o("target.branchUnknown")}),(0,t.jsx)(g,{label:o("target.agents"),children:l.agents.length>0?l.agents.join(", "):o("target.agentsNone")}),(0,t.jsx)(g,{label:o("target.workingTree"),children:o(null===l.dirty?"target.workingTreeUnknown":l.dirty?"target.workingTreeDirty":"target.workingTreeClean")})]}),l.sessionRunning&&(0,t.jsx)("p",{className:"mt-1.5 text-xs text-muted-foreground","data-testid":"skill-target-session-".concat(l.id),children:o("target.sessionRunning")})]})}function g(e){let{label:s,children:l}=e;return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:s}),(0,t.jsx)("dd",{className:"text-xs text-foreground break-words",children:l})]})}var h=l(95584);function k(e){let{label:s,children:l}=e;return(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("dt",{className:"text-xs font-medium text-muted-foreground",children:s}),(0,t.jsx)("dd",{className:"mt-0.5 break-words text-sm text-foreground",children:l})]})}function f(e){let{level:s,kind:l,label:n}=e,i=(0,a.c)("skills");return(0,t.jsxs)(r.Ex,{variant:h.eK[s],"data-testid":"skill-plan-risk-".concat(l,"-").concat(s),children:[n,": ",i(h.pP[s])]})}function j(e){let{entry:s}=e,l=(0,a.c)("skills"),n=h.KL[s.reason];return(0,t.jsxs)("li",{className:"space-y-1.5 rounded-md border border-border px-3 py-2","data-testid":"skill-plan-file-".concat(s.path),children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(r.Ex,{variant:h.tC[s.change],children:l(h.AS[s.change])}),(0,t.jsx)("span",{className:"break-all font-mono text-xs text-foreground",children:s.path}),s.generated&&(0,t.jsx)(r.Ex,{variant:"gray",children:l("plan.fileGenerated")})]}),n&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:l(n)}),s.gitIgnored&&(0,t.jsx)("p",{className:"text-xs text-warning-foreground",children:l("plan.gitIgnored")}),s.binary?(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:l("plan.diffBinary")}):s.diff?(0,t.jsxs)("details",{children:[(0,t.jsx)("summary",{className:"cursor-pointer text-xs text-accent-600 dark:text-accent-400",children:l("plan.diffToggle",{additions:s.additions,deletions:s.deletions})}),(0,t.jsx)("pre",{className:"mt-1 overflow-x-auto rounded bg-muted p-2 font-mono text-[11px] leading-snug text-foreground",children:s.diff}),s.diffTruncated&&(0,t.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:l("plan.diffTruncated")})]}):null]})}function b(e){var s,l,n;let{plan:i}=e,d=(0,a.c)("skills"),{target:c,skill:u}=i,x=u.compatibility.commandmate;return(0,t.jsxs)(r.Zp,{className:"space-y-4","data-testid":"skill-install-plan",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:d("plan.heading")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:d("plan.expiresAt",{timestamp:i.expiresAt})})]}),(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.targetHeading")}),(0,t.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,t.jsx)(k,{label:d("target.repository"),children:c.repositoryName}),(0,t.jsx)(k,{label:d("target.heading"),children:c.worktreeName}),(0,t.jsx)(k,{label:d("target.branch"),children:null!=(s=c.branch)?s:d("target.branchUnknown")}),(0,t.jsx)(k,{label:d("plan.headStateLabel"),children:d(null!=(l=h.kF[c.headState])?l:"plan.headState.unknown")}),(0,t.jsx)(k,{label:d("target.workingTree"),children:c.workingTreeDirty?d("target.workingTreeDirty"):d("target.workingTreeClean")}),(0,t.jsx)(k,{label:d("plan.installRoot"),children:(0,t.jsx)("span",{className:"break-all font-mono text-xs",children:(c.installRoots&&c.installRoots.length>0?c.installRoots:[c.installRoot]).map(e=>(0,t.jsx)("span",{className:"block",children:e},e))})}),(0,t.jsx)(k,{label:d("plan.existingInstall"),children:c.existingInstall?d("plan.existingInstallVersion",{version:c.existingInstall.version}):d("plan.existingInstallNone")}),(0,t.jsx)(k,{label:d("detail.recommendedVersion"),children:(0,t.jsx)("span",{className:"font-mono text-xs",children:u.version})})]})]}),(0,t.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-risk-section",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.riskHeading")}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-1.5",children:[(0,t.jsx)(f,{level:u.declaredRisk,kind:"declared",label:d("plan.riskDeclared")}),(0,t.jsx)(f,{level:u.computedRisk,kind:"computed",label:d("plan.riskComputed")}),(0,t.jsx)(f,{level:u.effectiveRisk,kind:"effective",label:d("plan.riskEffective")})]}),(0,t.jsx)("p",{className:"break-words text-sm text-foreground",children:u.riskRationale}),(0,t.jsx)(o.u,{tone:"neutral",children:d("plan.riskNotice")})]}),(0,t.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-permissions",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("permissions.heading")}),u.declaredPermissions.length>0?(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:u.declaredPermissions.map(e=>(0,t.jsx)(r.Ex,{variant:"warning",children:h.z2[e]?d(h.z2[e]):e},e))}):(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:d("plan.permissionsNone")}),(0,t.jsx)(o.u,{tone:"warning",children:d("permissions.declarationOnlyNotice")})]}),(0,t.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-requirements",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("requirements.heading")}),0===u.requirements.commands.length&&0===u.requirements.networkHosts.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:d("plan.requirementsNone")}):(0,t.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[u.requirements.commands.length>0&&(0,t.jsx)(k,{label:d("plan.requirementsCommands"),children:u.requirements.commands.map(e=>{var s;return"".concat(e.name," ").concat(null!=(s=e.versionRange)?s:d("plan.commandAnyVersion"))}).join(", ")}),u.requirements.networkHosts.length>0&&(0,t.jsx)(k,{label:d("plan.requirementsHosts"),children:u.requirements.networkHosts.join(", ")})]})]}),(0,t.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-scripts",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.scriptsHeading")}),0===u.executablePaths.length&&0===u.scriptPaths.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:d("plan.scriptsNone")}):(0,t.jsx)("ul",{className:"space-y-1",children:[...new Set([...u.scriptPaths,...u.executablePaths])].map(e=>(0,t.jsx)("li",{className:"break-all font-mono text-xs text-foreground",children:e},e))})]}),"compatible"!==x.status&&(0,t.jsx)(o.u,{tone:"warning","data-testid":"skill-plan-compatibility-notice",children:d((0,h.e5)(x.messageKey),{range:x.requiredRange,currentVersion:null!=(n=x.currentVersion)?n:""})}),i.warnings.length>0&&(0,t.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-warnings",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.warningsHeading")}),(0,t.jsx)("ul",{className:"space-y-1",children:i.warnings.map(e=>(0,t.jsx)("li",{className:"text-xs text-warning-foreground",children:h.RO[e]?d(h.RO[e]):e},e))})]}),(0,t.jsxs)("section",{className:"space-y-2","data-testid":"skill-plan-files",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:d("plan.filesHeading")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-plan-stats",children:d("plan.stats",{added:i.stats.added,modified:i.stats.modified,unchanged:i.stats.unchanged,conflicted:i.stats.conflicted,unmanaged:i.stats.unmanaged})}),0===i.files.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:d("plan.filesEmpty")}):(0,t.jsx)("ul",{className:"space-y-2",children:i.files.map(e=>(0,t.jsx)(j,{entry:e},e.path))})]}),i.blockers.length>0&&(0,t.jsxs)("section",{className:"space-y-2","data-testid":"skill-install-blockers",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-danger-foreground",children:d("plan.blockersHeading")}),(0,t.jsx)("ul",{className:"space-y-1",children:i.blockers.map(e=>{var s,l;return(0,t.jsxs)("li",{className:"text-xs text-danger-foreground",children:[e.path&&(0,t.jsx)("span",{className:"mr-1 break-all font-mono",children:e.path}),e.code.startsWith("skills.")?d((0,h.e5)(e.code),{range:x.requiredRange,currentVersion:null!=(s=x.currentVersion)?s:""}):h.KL[e.code]?d(h.KL[e.code]):e.code]},"".concat(e.code,":").concat(null!=(l=e.path)?l:""))})}),(0,t.jsx)(o.u,{tone:"danger",children:d("plan.blockedNotice")})]})]})}function y(e){let{entry:s}=e,l=(0,a.c)("skills"),n=h.Mj[s.disposition],i=h.hJ[s.reason];return(0,t.jsxs)("li",{className:"flex flex-wrap items-center gap-2","data-testid":"skill-uninstall-file-".concat(s.path),children:[(0,t.jsx)(r.Ex,{variant:"remove"===s.disposition?"info":"warning",children:n?l(n):s.disposition}),(0,t.jsx)("span",{className:"break-all font-mono text-xs text-foreground",children:s.path}),i&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:l(i)})]})}function N(e){var s;let{plan:l}=e,n=(0,a.c)("skills"),{target:d,skill:c}=l;return(0,t.jsxs)(r.Zp,{className:"space-y-4","data-testid":"skill-uninstall-plan",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:n("uninstall.heading")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:n("uninstall.expiresAt",{timestamp:l.expiresAt})})]}),(0,t.jsxs)("dl",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[(0,t.jsx)(k,{label:n("target.repository"),children:d.repositoryName}),(0,t.jsx)(k,{label:n("target.heading"),children:d.worktreeName}),(0,t.jsx)(k,{label:n("target.branch"),children:null!=(s=d.branch)?s:n("target.branchUnknown")}),(0,t.jsx)(k,{label:n("uninstall.installedVersion"),children:(0,t.jsx)("span",{className:"font-mono text-xs",children:c.version||n("uninstall.versionUnknown")})}),(0,t.jsx)(k,{label:n("plan.installRoot"),children:(0,t.jsx)("span",{className:"break-all font-mono text-xs",children:d.installRoot})}),(0,t.jsx)(k,{label:n("target.workingTree"),children:d.workingTreeDirty?n("target.workingTreeDirty"):n("target.workingTreeClean")})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"skill-uninstall-stats",children:n("uninstall.stats",{removable:l.stats.removable,modified:l.stats.modified,missing:l.stats.missing,unknown:l.stats.unknown,irregular:l.stats.irregular})}),(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:n("uninstall.removalsHeading")}),0===l.removals.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:n("uninstall.removalsEmpty")}):(0,t.jsx)("ul",{className:"space-y-1.5",children:l.removals.map(e=>(0,t.jsx)(y,{entry:e},e.path))})]}),(0,t.jsxs)("section",{className:"space-y-2",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:n("uninstall.retainedHeading")}),0===l.retained.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:n("uninstall.retainedEmpty")}):(0,t.jsx)("ul",{className:"space-y-1.5",children:l.retained.map(e=>(0,t.jsx)(y,{entry:e},e.path))})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[l.skill.agents.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5","data-testid":"skill-uninstall-agents",children:l.skill.agents.map(e=>(0,t.jsx)(r.Ex,{variant:"gray",children:(0,i.f_)(e.agent)},e.agent))}),(0,t.jsx)(o.u,{tone:"neutral",children:n((0,h.e5)(l.nextActionKey))})]}),l.blockers.length>0&&(0,t.jsxs)("section",{className:"space-y-2","data-testid":"skill-uninstall-blockers",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-danger-foreground",children:n("uninstall.blockersHeading")}),(0,t.jsx)("ul",{className:"space-y-1",children:l.blockers.map(e=>{var s;return(0,t.jsxs)("li",{className:"text-xs text-danger-foreground",children:[e.path&&(0,t.jsx)("span",{className:"mr-1 break-all font-mono",children:e.path}),n((0,h.e5)(e.messageKey))]},"".concat(e.code,":").concat(null!=(s=e.path)?s:""))})})]})]})}var w=l(80130);let v={worktreeId:null,busy:null,installPlan:null,uninstallPlan:null,installResult:null,uninstallResult:null,riskAcknowledged:!1,failure:null};function R(e){return{...e,installPlan:null,uninstallPlan:null,installResult:null,uninstallResult:null,riskAcknowledged:!1,failure:null}}function C(e,s){return"".concat(e,"-").concat(s)}function I(e){let{failure:s}=e,l=(0,a.c)("skills");return(0,t.jsxs)("div",{className:"space-y-2","data-testid":"skill-operation-error",children:[(0,t.jsxs)(o.u,{tone:"danger",children:[(0,t.jsx)("p",{className:"font-medium",children:l("operation.errorHeading")}),(0,t.jsx)("p",{className:"mt-1",children:l((0,h.FW)(s.code))}),(0,t.jsx)("p",{className:"mt-1 break-words",children:l("state.errorCode",{code:s.code})})]}),s.nextActionKey&&(0,t.jsx)(o.u,{tone:"warning",children:l((0,h.e5)(s.nextActionKey))}),s.blockers&&s.blockers.length>0&&(0,t.jsx)("ul",{className:"space-y-1","data-testid":"skill-operation-error-blockers",children:s.blockers.map(e=>{var s;return(0,t.jsxs)("li",{className:"text-xs text-danger-foreground",children:[e.path&&(0,t.jsx)("span",{className:"mr-1 break-all font-mono",children:e.path}),l((0,h.e5)(e.messageKey))]},"".concat(e.code,":").concat(null!=(s=e.path)?s:""))})})]})}function A(e){let{agents:s,skillId:l,version:n}=e,r=(0,a.c)("skills");return 0===s.length?null:(0,t.jsxs)("div",{className:"space-y-1","data-testid":"skill-operation-reload",children:[(0,t.jsx)("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:r("operation.reloadHeading")}),(0,t.jsx)("ul",{className:"space-y-1",children:s.map(e=>(0,t.jsx)("li",{className:"text-xs text-muted-foreground",children:r((0,h.e5)(e.messageKey),{agent:(0,i.f_)(e.agent),skillId:l,version:n})},e.agent))})]})}function T(e){var s;let{skillId:l,version:i,blockedReason:c,worktreeId:u}=e,x=(0,a.c)("skills"),[p,g]=(0,n.useState)(()=>u?{...v,worktreeId:u}:v),k=(0,n.useCallback)(e=>{g(s=>s.worktreeId===e?s:R({...s,worktreeId:e,busy:null}))},[]);(0,n.useEffect)(()=>{u&&k(u)},[u,k]);let f=(0,n.useCallback)(async()=>{let e=p.worktreeId;if(!e)return;g(e=>({...R(e),busy:"install-plan"}));let s=await (0,w.Q6)(e,l,{version:null!=i?i:void 0});g(e=>({...e,busy:null,installPlan:s.ok?s.data.plan:null,failure:s.ok?null:s.failure}))},[l,p.worktreeId,i]),j=(0,n.useCallback)(async()=>{let e=p.worktreeId,s=p.installPlan;if(!e||!s||s.requiresRiskAcknowledgement&&!p.riskAcknowledged)return;g(e=>({...e,busy:"install-apply",failure:null}));let t=await (0,w.Xi)(e,l,{planToken:s.token,version:s.skill.version,acknowledgeRisk:!!s.requiresRiskAcknowledgement||void 0,idempotencyKey:C("skill-install",s.token)});t.ok&&(0,d.k)(e),g(e=>({...e,busy:null,installPlan:t.ok?null:e.installPlan,installResult:t.ok?t.data:null,failure:t.ok?null:t.failure}))},[l,p.installPlan,p.riskAcknowledged,p.worktreeId]),y=(0,n.useCallback)(async()=>{let e=p.worktreeId;if(!e)return;g(e=>({...R(e),busy:"uninstall-plan"}));let s=await (0,w.hN)(e,l);g(e=>({...e,busy:null,uninstallPlan:s.ok?s.data.plan:null,failure:s.ok?null:s.failure}))},[l,p.worktreeId]),T=(0,n.useCallback)(async()=>{let e=p.worktreeId,s=p.uninstallPlan;if(!e||!s)return;g(e=>({...e,busy:"uninstall-apply",failure:null}));let t=await (0,w.E)(e,l,{planToken:s.token,idempotencyKey:C("skill-uninstall",s.token)});g(e=>({...e,busy:null,uninstallPlan:t.ok?null:e.uninstallPlan,uninstallResult:t.ok?t.data:null,failure:t.ok?null:t.failure}))},[l,p.uninstallPlan,p.worktreeId]),P=(0,n.useCallback)(()=>{g(e=>R(e))},[]),E=null!==p.busy,H=p.installPlan,q=p.uninstallPlan,S=null!=c?c:x(p.worktreeId?"plan.ready":"plan.chooseTarget"),K=null!==H&&H.requiresRiskAcknowledgement&&!p.riskAcknowledged;return(0,t.jsxs)("div",{className:"space-y-3","data-testid":"skill-install-panel",children:[!u&&(0,t.jsx)(m,{selectedWorktreeId:p.worktreeId,onSelect:k,disabled:E}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(r.$n,{variant:"primary",disabled:E||null!==c||!p.worktreeId,onClick:f,"data-testid":"skill-install-action","aria-describedby":"skill-install-reason",children:x("install-plan"===p.busy?"plan.building":"plan.build")}),(0,t.jsx)(r.$n,{variant:"secondary",disabled:E||!p.worktreeId,onClick:y,"data-testid":"skill-uninstall-action",children:x("uninstall-plan"===p.busy?"uninstall.building":"uninstall.build")})]}),(0,t.jsx)("p",{id:"skill-install-reason",className:"text-sm text-muted-foreground","data-testid":"skill-install-reason",children:S}),p.failure&&(0,t.jsx)(I,{failure:p.failure}),H&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(b,{plan:H}),H.requiresRiskAcknowledgement&&(0,t.jsxs)(r.Zp,{className:"space-y-3","data-testid":"skill-install-risk-acknowledgement",children:[(0,t.jsx)(o.u,{tone:"danger",children:x((0,h.e5)(null!=(s=H.riskAcknowledgementMessageKey)?s:"skills.plan.highRiskAcknowledgement"))}),(0,t.jsxs)("label",{className:"flex items-start gap-2 text-sm text-foreground",children:[(0,t.jsx)(r.Sc,{checked:p.riskAcknowledged,onCheckedChange:e=>g(s=>({...s,riskAcknowledged:!0===e})),disabled:E,"data-testid":"skill-install-risk-checkbox",className:"mt-0.5"}),(0,t.jsx)("span",{children:x("plan.acknowledgeLabel")})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(r.$n,{variant:H.requiresRiskAcknowledgement?"danger":"primary",disabled:E||!H.installable||K,onClick:j,"data-testid":"skill-install-confirm",children:x("install-apply"===p.busy?"plan.confirming":"plan.confirm")}),(0,t.jsx)(r.$n,{variant:"ghost",disabled:E,onClick:P,"data-testid":"skill-install-discard",children:x("plan.discard")})]})]}),q&&(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(N,{plan:q}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsx)(r.$n,{variant:"danger",disabled:E||!q.removable,onClick:T,"data-testid":"skill-uninstall-confirm",children:x("uninstall-apply"===p.busy?"uninstall.confirming":"uninstall.confirm")}),(0,t.jsx)(r.$n,{variant:"ghost",disabled:E,onClick:P,"data-testid":"skill-uninstall-discard",children:x("plan.discard")})]})]}),p.installResult&&(0,t.jsxs)(r.Zp,{className:"space-y-3","data-testid":"skill-install-result",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:x("operation.installedHeading")}),(0,t.jsx)(o.u,{tone:"info",children:x((0,h.e5)(p.installResult.operation.nextActionKey))}),p.installResult.operation.replayed&&(0,t.jsx)(o.u,{tone:"neutral","data-testid":"skill-operation-replayed",children:x("operation.replayNotice")}),p.installResult.install&&"files"in p.installResult.install&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:x("operation.filesWritten",{count:p.installResult.install.files.length})}),"reload"in p.installResult&&(0,t.jsx)(A,{agents:p.installResult.reload.agents,skillId:p.installResult.reload.skillId,version:p.installResult.reload.version}),(0,t.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:P,"data-testid":"skill-operation-reset",children:x("operation.startOver")})]}),p.uninstallResult&&(0,t.jsxs)(r.Zp,{className:"space-y-3","data-testid":"skill-uninstall-result",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:x("operation.uninstalledHeading")}),(0,t.jsx)(o.u,{tone:"info",children:x((0,h.e5)(p.uninstallResult.operation.nextActionKey))}),p.uninstallResult.operation.replayed&&(0,t.jsx)(o.u,{tone:"neutral","data-testid":"skill-operation-replayed",children:x("operation.replayNotice")}),p.uninstallResult.uninstall&&"removedFiles"in p.uninstallResult.uninstall&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:x("operation.filesRemoved",{count:p.uninstallResult.uninstall.removedFiles.length})}),"reload"in p.uninstallResult&&(0,t.jsx)(A,{agents:p.uninstallResult.reload.agents,skillId:p.uninstallResult.reload.skillId,version:p.uninstallResult.reload.version}),(0,t.jsx)(r.$n,{variant:"secondary",size:"sm",onClick:P,"data-testid":"skill-operation-reset",children:x("operation.startOver")})]})]})}},53482:(e,s,l)=>{l.d(s,{i:()=>o});var t=l(95155),n=l(12115),a=l(60322),r=l(9900);function i(){return(0,t.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function d(){return(0,t.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function o(e){let{text:s,className:l="",label:o="Copy"}=e,[c,u]=(0,n.useState)(!1),x=(0,n.useRef)(null);(0,n.useEffect)(()=>()=>{x.current&&clearTimeout(x.current)},[]);let m=(0,n.useCallback)(async()=>{try{await (0,a.l)(s),u(!0),x.current&&clearTimeout(x.current),x.current=setTimeout(()=>u(!1),r.s7)}catch(e){}},[s]);return(0,t.jsxs)("button",{type:"button",onClick:m,className:"inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ".concat(l),"aria-label":c?"Copied":o,title:c?"Copied!":o,children:[c?(0,t.jsx)(d,{}):(0,t.jsx)(i,{}),(0,t.jsx)("span",{children:c?"Copied":o})]})}},60322:(e,s,l)=>{l.d(s,{l:()=>n});let t=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function n(e){var s;if(!e||0===e.trim().length)return;let l=e.replace(t,"");if(null==(s=navigator.clipboard)?void 0:s.writeText)try{await navigator.clipboard.writeText(l);return}catch(e){}let n=document.createElement("textarea");n.value=l,n.style.position="fixed",n.style.left="-9999px",n.style.top="-9999px",n.style.opacity="0",document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy")}finally{document.body.removeChild(n)}}},74385:(e,s,l)=>{l.d(s,{I:()=>t,k:()=>n});let t="skill:installed";function n(e){window.dispatchEvent(new CustomEvent(t,{detail:{worktreeId:e}}))}},76246:(e,s,l)=>{l.d(s,{o:()=>t});function t(e){return e?e.split("/").map(encodeURIComponent).join("/"):""}}}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2069],{32069:e=>{class t{constructor(e){void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function n(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function i(e,...t){let n=Object.create(null);for(let t in e)n[t]=e[t];return t.forEach(function(e){for(let t in e)n[t]=e[t]}),n}class r{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=n(e)}openNode(e){if(!e.scope)return;let t=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let n=e.split(".");return[`${t}${n.shift()}`,...n.map((e,t)=>`${e}${"_".repeat(t+1)}`)].join(" ")}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}closeNode(e){e.scope&&(this.buffer+="</span>")}value(){return this.buffer}span(e){this.buffer+=`<span class="${e}">`}}let o=(e={})=>{let t={children:[]};return Object.assign(t,e),t};class s{constructor(){this.rootNode=o(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){let t=o({scope:e});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{s._collapse(e)}))}}class a extends s{constructor(e){super(),this.options=e}addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){this.closeNode()}__addSublanguage(e,t){let n=e.root;t&&(n.scope=`language:${t}`),this.add(n)}toHTML(){return new r(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function l(e){return e?"string"==typeof e?e:e.source:null}function c(e){return d("(?=",e,")")}function u(e){return d("(?:",e,")*")}function g(e){return d("(?:",e,")?")}function d(...e){return e.map(e=>l(e)).join("")}function h(...e){return"("+(function(e){let t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e).capture?"":"?:")+e.map(e=>l(e)).join("|")+")"}function f(e){return RegExp(e.toString()+"|").exec("").length-1}let p=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function b(e,{joinWith:t}){let n=0;return e.map(e=>{let t=n+=1,i=l(e),r="";for(;i.length>0;){let e=p.exec(i);if(!e){r+=i;break}r+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+String(Number(e[1])+t):(r+=e[0],"("===e[0]&&n++)}return r}).map(e=>`(${e})`).join(t)}let m="[a-zA-Z]\\w*",E="[a-zA-Z_]\\w*",x="\\b\\d+(\\.\\d+)?",_="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",w="\\b(0b[01]+)",y={begin:"\\\\[\\s\\S]",relevance:0},O=function(e,t,n={}){let r=i({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let o=h("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:d(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},k=O("//","$"),S=O("/\\*","\\*/"),v=O("#","$");var N=Object.freeze({__proto__:null,APOS_STRING_MODE:{scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[y]},BACKSLASH_ESCAPE:y,BINARY_NUMBER_MODE:{scope:"number",begin:w,relevance:0},BINARY_NUMBER_RE:w,COMMENT:O,C_BLOCK_COMMENT_MODE:S,C_LINE_COMMENT_MODE:k,C_NUMBER_MODE:{scope:"number",begin:_,relevance:0},C_NUMBER_RE:_,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})},HASH_COMMENT_MODE:v,IDENT_RE:m,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+E,relevance:0},NUMBER_MODE:{scope:"number",begin:x,relevance:0},NUMBER_RE:x,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:{scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[y]},REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[y,{begin:/\[/,end:/\]/,relevance:0,contains:[y]}]},RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{let t=/^#![ ]*\//;return e.binary&&(e.begin=d(t,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},TITLE_MODE:{scope:"title",begin:m,relevance:0},UNDERSCORE_IDENT_RE:E,UNDERSCORE_TITLE_MODE:{scope:"title",begin:E,relevance:0}});function M(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function R(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function j(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=M,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function A(e,t){Array.isArray(e.illegal)&&(e.illegal=h(...e.illegal))}function I(e,t){if(e.match){if(e.begin||e.end)throw Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function T(e,t){void 0===e.relevance&&(e.relevance=1)}let L=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw Error("beforeMatch cannot be used with starts");let n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t]}),e.keywords=n.keywords,e.begin=d(n.beforeMatch,c(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},B=["of","and","for","in","not","or","if","then","parent","list","value"],H={},P=e=>{console.error(e)},C=(e,...t)=>{console.log(`WARN: ${e}`,...t)},D=(e,t)=>{H[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),H[`${e}/${t}`]=!0)},$=Error();function U(e,t,{key:n}){let i=0,r=e[n],o={},s={};for(let e=1;e<=t.length;e++)s[e+i]=r[e],o[e+i]=!0,i+=f(t[e-1]);e[n]=s,e[n]._emit=o,e[n]._multi=!0}function z(e){if(e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw P("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),$;if("object"!=typeof e.beginScope||null===e.beginScope)throw P("beginScope must be object"),$;U(e,e.begin,{key:"beginScope"}),e.begin=b(e.begin,{joinWith:""})}if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw P("skip, excludeEnd, returnEnd not compatible with endScope: {}"),$;if("object"!=typeof e.endScope||null===e.endScope)throw P("endScope must be object"),$;U(e,e.end,{key:"endScope"}),e.end=b(e.end,{joinWith:""})}}class W extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}}let X=Symbol("nomatch"),G=function(e){let r=Object.create(null),o=Object.create(null),s=[],p=!0,m="Could not find the language '{}', did you forget to load/include a language module?",E={disableAutodetect:!0,name:"Plain text",contains:[]},x={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:a};function _(e){return x.noHighlightRe.test(e)}function w(e,t,n){let i="",r="";"object"==typeof t?(i=e,n=t.ignoreIllegals,r=t.language):(D("10.7.0","highlight(lang, code, ...args) has been deprecated."),D("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),r=e,i=t),void 0===n&&(n=!0);let o={code:i,language:r};U("before:highlight",o);let s=o.result?o.result:y(o.language,o.code,n);return s.code=o.code,U("after:highlight",s),s}function y(e,o,s,a){let c=Object.create(null);function u(){if(!N.keywords)return void C.addText($);let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec($),n="";for(;t;){n+=$.substring(e,t.index);let i=k.case_insensitive?t[0].toLowerCase():t[0],r=N.keywords[i];if(r){let[e,o]=r;if(C.addText(n),n="",c[i]=(c[i]||0)+1,c[i]<=7&&(U+=o),e.startsWith("_"))n+=t[0];else{let n=k.classNameAliases[e]||e;d(t[0],n)}}else n+=t[0];e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec($)}n+=$.substring(e),C.addText(n)}function g(){null!=N.subLanguage?function(){if(""===$)return;let e=null;if("string"==typeof N.subLanguage){if(!r[N.subLanguage])return C.addText($);e=y(N.subLanguage,$,!0,H[N.subLanguage]),H[N.subLanguage]=e._top}else e=O($,N.subLanguage.length?N.subLanguage:null);N.relevance>0&&(U+=e.relevance),C.__addSublanguage(e._emitter,e.language)}():u(),$=""}function d(e,t){""!==e&&(C.startScope(t),C.addText(e),C.endScope())}function h(e,t){let n=1,i=t.length-1;for(;n<=i;){if(!e._emit[n]){n++;continue}let i=k.classNameAliases[e[n]]||e[n],r=t[n];i?d(r,i):($=r,u(),$=""),n++}}function E(e,t){return e.scope&&"string"==typeof e.scope&&C.openNode(k.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(d($,k.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),$=""):e.beginScope._multi&&(h(e.beginScope,t),$="")),N=Object.create(e,{parent:{value:N}})}let _={};function w(n,i){let r=i&&i[0];if($+=n,null==r)return g(),0;if("begin"===_.type&&"end"===i.type&&_.index===i.index&&""===r){if($+=o.slice(i.index,i.index+1),!p){let t=Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=_.rule,t}return 1}if(_=i,"begin"===i.type){let e=i[0],n=i.rule,r=new t(n);for(let t of[n.__beforeBegin,n["on:begin"]])if(t&&(t(i,r),r.isMatchIgnored))return 0===N.matcher.regexIndex?($+=e[0],1):(K=!0,0);return n.skip?$+=e:(n.excludeBegin&&($+=e),g(),n.returnBegin||n.excludeBegin||($=e)),E(n,i),n.returnBegin?0:e.length}if("illegal"!==i.type||s){if("end"===i.type){let e=function(e){let n=e[0],i=o.substring(e.index),r=function e(n,i,r){let o=function(e,t){let n=e&&e.exec(t);return n&&0===n.index}(n.endRe,r);if(o){if(n["on:end"]){let e=new t(n);n["on:end"](i,e),e.isMatchIgnored&&(o=!1)}if(o){for(;n.endsParent&&n.parent;)n=n.parent;return n}}if(n.endsWithParent)return e(n.parent,i,r)}(N,e,i);if(!r)return X;let s=N;N.endScope&&N.endScope._wrap?(g(),d(n,N.endScope._wrap)):N.endScope&&N.endScope._multi?(g(),h(N.endScope,e)):s.skip?$+=n:(s.returnEnd||s.excludeEnd||($+=n),g(),s.excludeEnd&&($=n));do N.scope&&C.closeNode(),N.skip||N.subLanguage||(U+=N.relevance),N=N.parent;while(N!==r.parent);return r.starts&&E(r.starts,e),s.returnEnd?0:n.length}(i);if(e!==X)return e}}else{let e=Error('Illegal lexeme "'+r+'" for mode "'+(N.scope||"<unnamed>")+'"');throw e.mode=N,e}if("illegal"===i.type&&""===r)return $+="\n",1;if(G>1e5&&G>3*i.index)throw Error("potential infinite loop, way more iterations than matches");return $+=r,r.length}let k=M(e);if(!k)throw P(m.replace("{}",e)),Error('Unknown language: "'+e+'"');let S=function(e){function t(t,n){return RegExp(l(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=f(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);let e=this.regexes.map(e=>e[1]);this.matcherRe=t(b(e,{joinWith:"|"}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;let t=this.matcherRe.exec(e);if(!t)return null;let n=t.findIndex((e,t)=>t>0&&void 0!==e),i=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,i)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];let t=new n;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){let t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{let t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=i(e.classNameAliases||{}),function n(o,s){if(o.isCompiled)return o;[R,I,z,L].forEach(e=>e(o,s)),e.compilerExtensions.forEach(e=>e(o,s)),o.__beforeBegin=null,[j,A,T].forEach(e=>e(o,s)),o.isCompiled=!0;let a=null;return"object"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),a=o.keywords.$pattern,delete o.keywords.$pattern),a=a||/\w+/,o.keywords&&(o.keywords=function e(t,n,i="keyword"){let r=Object.create(null);return"string"==typeof t?o(i,t.split(" ")):Array.isArray(t)?o(i,t):Object.keys(t).forEach(function(i){Object.assign(r,e(t[i],n,i))}),r;function o(e,t){n&&(t=t.map(e=>e.toLowerCase())),t.forEach(function(t){var n,i,o;let s=t.split("|");r[s[0]]=[e,(n=s[0],(i=s[1])?Number(i):+(o=n,!B.includes(o.toLowerCase())))]})}}(o.keywords,e.case_insensitive)),o.keywordPatternRe=t(a,!0),s&&(o.begin||(o.begin=/\B|\b/),o.beginRe=t(o.begin),o.end||o.endsWithParent||(o.end=/\B|\b/),o.end&&(o.endRe=t(o.end)),o.terminatorEnd=l(o.end)||"",o.endsWithParent&&s.terminatorEnd&&(o.terminatorEnd+=(o.end?"|":"")+s.terminatorEnd)),o.illegal&&(o.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(e){var t;return((t="self"===e?o:e).variants&&!t.cachedVariants&&(t.cachedVariants=t.variants.map(function(e){return i(t,{variants:null},e)})),t.cachedVariants)?t.cachedVariants:!function e(t){return!!t&&(t.endsWithParent||e(t.starts))}(t)?Object.isFrozen(t)?i(t):t:i(t,{starts:t.starts?i(t.starts):null})})),o.contains.forEach(function(e){n(e,o)}),o.starts&&n(o.starts,s),o.matcher=function(e){let t=new r;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(o),o}(e)}(k),v="",N=a||S,H={},C=new x.__emitter(x),D=[];for(let e=N;e!==k;e=e.parent)e.scope&&D.unshift(e.scope);D.forEach(e=>C.openNode(e));let $="",U=0,W=0,G=0,K=!1;try{if(k.__emitTokens)k.__emitTokens(o,C);else{for(N.matcher.considerAll();;){G++,K?K=!1:N.matcher.considerAll(),N.matcher.lastIndex=W;let e=N.matcher.exec(o);if(!e)break;let t=o.substring(W,e.index),n=w(t,e);W=e.index+n}w(o.substring(W))}return C.finalize(),v=C.toHTML(),{language:e,value:v,relevance:U,illegal:!1,_emitter:C,_top:N}}catch(t){if(t.message&&t.message.includes("Illegal"))return{language:e,value:n(o),illegal:!0,relevance:0,_illegalBy:{message:t.message,index:W,context:o.slice(W-100,W+100),mode:t.mode,resultSoFar:v},_emitter:C};if(p)return{language:e,value:n(o),illegal:!1,relevance:0,errorRaised:t,_emitter:C,_top:N};throw t}}function O(e,t){t=t||x.languages||Object.keys(r);let i=function(e){let t={value:n(e),illegal:!1,relevance:0,_top:E,_emitter:new x.__emitter(x)};return t._emitter.addText(e),t}(e),o=t.filter(M).filter($).map(t=>y(t,e,!1));o.unshift(i);let[s,a]=o.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(M(e.language).supersetOf===t.language)return 1;else if(M(t.language).supersetOf===e.language)return -1}return 0});return s.secondBest=a,s}function k(e){let t=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";let n=x.languageDetectRe.exec(t);if(n){let t=M(n[1]);return t||(C(m.replace("{}",n[1])),C("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>_(e)||M(e))}(e);if(_(t))return;if(U("before:highlightElement",{el:e,language:t}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);if(e.children.length>0&&(x.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),x.throwUnescapedHTML))throw new W("One of your code blocks includes unescaped HTML.",e.innerHTML);let n=e.textContent,i=t?w(n,{language:t,ignoreIllegals:!0}):O(n);e.innerHTML=i.value,e.dataset.highlighted="yes";var r=i.language;let s=t&&o[t]||r;e.classList.add("hljs"),e.classList.add(`language-${s}`),e.result={language:i.language,re:i.relevance,relevance:i.relevance},i.secondBest&&(e.secondBest={language:i.secondBest.language,relevance:i.secondBest.relevance}),U("after:highlightElement",{el:e,result:i,text:n})}let S=!1;function v(){if("loading"===document.readyState){S||window.addEventListener("DOMContentLoaded",function(){v()},!1),S=!0;return}document.querySelectorAll(x.cssSelector).forEach(k)}function M(e){return r[e=(e||"").toLowerCase()]||r[o[e]]}function H(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach(e=>{o[e.toLowerCase()]=t})}function $(e){let t=M(e);return t&&!t.disableAutodetect}function U(e,t){s.forEach(function(n){n[e]&&n[e](t)})}for(let t in Object.assign(e,{highlight:w,highlightAuto:O,highlightAll:v,highlightElement:k,highlightBlock:function(e){return D("10.7.0","highlightBlock will be removed entirely in v12.0"),D("10.7.0","Please use highlightElement now."),k(e)},configure:function(e){x=i(x,e)},initHighlighting:()=>{v(),D("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function(){v(),D("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function(t,n){let i=null;try{i=n(e)}catch(e){if(P("Language definition for '{}' could not be registered.".replace("{}",t)),p)P(e);else throw e;i=E}i.name||(i.name=t),r[t]=i,i.rawDefinition=n.bind(null,e),i.aliases&&H(i.aliases,{languageName:t})},unregisterLanguage:function(e){for(let t of(delete r[e],Object.keys(o)))o[t]===e&&delete o[t]},listLanguages:function(){return Object.keys(r)},getLanguage:M,registerAliases:H,autoDetection:$,inherit:i,addPlugin:function(e){var t;(t=e)["before:highlightBlock"]&&!t["before:highlightElement"]&&(t["before:highlightElement"]=e=>{t["before:highlightBlock"](Object.assign({block:e.el},e))}),t["after:highlightBlock"]&&!t["after:highlightElement"]&&(t["after:highlightElement"]=e=>{t["after:highlightBlock"](Object.assign({block:e.el},e))}),s.push(e)},removePlugin:function(e){let t=s.indexOf(e);-1!==t&&s.splice(t,1)}}),e.debugMode=function(){p=!1},e.safeMode=function(){p=!0},e.versionString="11.11.1",e.regex={concat:d,lookahead:c,either:h,optional:g,anyNumberOfTimes:u},N)"object"==typeof N[t]&&function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(n=>{let i=t[n],r=typeof i;"object"!==r&&"function"!==r||Object.isFrozen(i)||e(i)}),t}(N[t]);return Object.assign(e,N),e},K=G({});K.newInstance=()=>G({}),e.exports=K,K.HighlightJS=K,K.default=K}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3418],{37381:(n,e,t)=>{t.d(e,{u:()=>c});var a=t(95155);t(12115);var r=t(23327),i=t(52056),o=t(77801),l=t(87531);let s={info:"bg-info-subtle border-info-border text-info-foreground",warning:"bg-warning-subtle border-warning-border text-warning-foreground",danger:"bg-danger-subtle border-danger-border text-danger-foreground",neutral:"bg-muted border-border text-muted-foreground"},L={info:r.A,warning:i.A,danger:o.A,neutral:r.A};function c(n){let{tone:e="neutral",children:t,className:r,"data-testid":i}=n,o=L[e];return(0,a.jsxs)("div",{"data-testid":i,className:(0,l.cn)("flex items-start gap-2 rounded-md border px-3 py-2 text-xs leading-relaxed",s[e],r),children:[(0,a.jsx)(o,{size:14,"aria-hidden":"true",className:"mt-0.5 shrink-0"}),(0,a.jsx)("div",{className:"min-w-0",children:t})]})}},75333:(n,e,t)=>{t.d(e,{Xz:()=>L,qW:()=>c,uE:()=>d});var a=t(95155);t(12115);var r=t(18955),i=t(77801),o=t(744),l=t(54014),s=t(95584);function L(n){let{status:e,className:t}=n,i=(0,r.c)("skills");return(0,a.jsx)(o.Ex,{variant:s.H$[e],className:t,"data-testid":"skill-compatibility-".concat(e),children:i(s.OV[e])})}function c(n){let{risk:e,className:t}=n,l=(0,r.c)("skills");return(0,a.jsxs)(o.Ex,{variant:s.eK[e],className:t,"data-testid":"skill-declared-risk-".concat(e),children:["high"===e&&(0,a.jsx)(i.A,{size:12,"aria-hidden":"true",className:"mr-1 shrink-0"}),l("risk.declaredLabel",{level:l(s.pP[e])})]})}function d(n){let{agent:e}=n,t=(0,r.c)("skills");return(0,a.jsxs)(o.Ex,{variant:s.Et[e.support],"data-testid":"skill-agent-".concat(e.agent,"-").concat(e.support),children:[(0,l.f_)(e.agent),": ",t((0,s.e5)(e.labelKey))]})}},80130:(n,e,t)=>{t.d(e,{Db:()=>c,E:()=>E,Gj:()=>d,Q6:()=>I,Xi:()=>u,hN:()=>p,s5:()=>L});let a="SKILL_CATALOG_UNREACHABLE",r="SKILL_REQUEST_FAILED";function i(n,e,t){let a=n&&"object"==typeof n?n:{},r={code:!function(n){if(!n||"object"!=typeof n)return!1;let{error:e,code:t}=n;return"string"==typeof e&&"string"==typeof t}(n)?t:n.code,message:"string"==typeof a.error?a.error:"",status:e};return Array.isArray(a.blockers)&&(r.blockers=a.blockers),"string"==typeof a.nextActionKey&&(r.nextActionKey=a.nextActionKey),r}async function o(n,e){let t=await fetch(n,{signal:e,headers:{Accept:"application/json"}}),r=await t.json().catch(()=>null);return t.ok?{ok:!0,data:r}:{ok:!1,failure:i(r,t.status,a)}}async function l(n,e,t){let a=await fetch(n,{method:"POST",signal:t,headers:{Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify(e)}),o=await a.json().catch(()=>null);return a.ok?{ok:!0,data:o}:{ok:!1,failure:i(o,a.status,r)}}async function s(n,e,t){try{return await n()}catch(n){if(null==t?void 0:t.aborted)throw n;return{ok:!1,failure:{code:e,message:n instanceof Error?n.message:"",status:null}}}}function L(n){return s(()=>o("/api/skills",n),a,n)}function c(n,e){return s(()=>o("/api/skills/".concat(encodeURIComponent(n)),e),a,e)}function d(n,e){return s(()=>o("/api/worktrees/".concat(encodeURIComponent(n),"/skills"),e),r,e)}function _(n,e,t){return"/api/worktrees/".concat(encodeURIComponent(n),"/skills/").concat(encodeURIComponent(e),"/").concat(t)}function I(n,e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments.length>3?arguments[3]:void 0,i={};return t.version&&(i.version=t.version),t.acknowledgeRisk&&(i.acknowledgeRisk=!0),s(()=>l(_(n,e,"plan"),i,a),r,a)}function u(n,e,t,a){let i={planToken:t.planToken,version:t.version};return t.acknowledgeRisk&&(i.acknowledgeRisk=!0),t.idempotencyKey&&(i.idempotencyKey=t.idempotencyKey),s(()=>l(_(n,e,"install"),i,a),r,a)}function p(n,e,t){return s(()=>l(_(n,e,"uninstall-plan"),{},t),r,t)}function E(n,e,t,a){let i={planToken:t.planToken};return t.idempotencyKey&&(i.idempotencyKey=t.idempotencyKey),s(()=>l(_(n,e,"uninstall"),i,a),r,a)}},95584:(n,e,t)=>{t.d(e,{$d:()=>C,AJ:()=>h,AS:()=>c,Et:()=>l,FW:()=>S,H$:()=>a,IV:()=>R,KL:()=>d,Mj:()=>u,OV:()=>r,RG:()=>K,RO:()=>E,TE:()=>s,e5:()=>g,eK:()=>i,gh:()=>k,hJ:()=>p,kF:()=>I,pP:()=>o,pk:()=>m,r0:()=>D,tC:()=>L,z2:()=>_});let a={compatible:"success",incompatible:"error",unknown:"warning"},r={compatible:"compatibility.status.compatible",incompatible:"compatibility.status.incompatible",unknown:"compatibility.status.unknown"},i={low:"gray",moderate:"warning",high:"error"},o={low:"risk.level.low",moderate:"risk.level.moderate",high:"risk.level.high"},l={native:"success",commandmate_runtime:"info",unsupported:"error",unknown:"warning"},s={SKILL_RECOMMEND_HIGHEST_COMPATIBLE:"detail.recommendation.highestCompatible",SKILL_RECOMMEND_LATEST_UNVERIFIED:"detail.recommendation.latestUnverified",SKILL_RECOMMEND_NONE_COMPATIBLE:"detail.recommendation.noneCompatible",SKILL_RECOMMEND_NO_VERSIONS:"detail.recommendation.noVersions"},L={add:"info",modify:"warning",unchanged:"gray",conflict:"error",unmanaged:"error"},c={add:"plan.change.add",modify:"plan.change.modify",unchanged:"plan.change.unchanged",conflict:"plan.change.conflict",unmanaged:"plan.change.unmanaged"},d={SKILL_DIFF_NEW_FILE:"plan.diffReason.newFile",SKILL_DIFF_CONTENT_IDENTICAL:"plan.diffReason.contentIdentical",SKILL_DIFF_MANAGED_UPDATE:"plan.diffReason.managedUpdate",SKILL_DIFF_LOCAL_MODIFICATION:"plan.diffReason.localModification",SKILL_DIFF_UNMANAGED_SKILL:"plan.diffReason.unmanagedSkill",SKILL_DIFF_RECEIPT_ORPHAN:"plan.diffReason.receiptOrphan",SKILL_DIFF_NOT_A_REGULAR_FILE:"plan.diffReason.notARegularFile"},_={filesystem_read:"plan.permission.filesystemRead",filesystem_write:"plan.permission.filesystemWrite",network_access:"plan.permission.networkAccess",process_execution:"plan.permission.processExecution",environment_read:"plan.permission.environmentRead",credential_access:"plan.permission.credentialAccess"},I={attached:"plan.headState.attached",detached:"plan.headState.detached",unborn:"plan.headState.unborn",unknown:"plan.headState.unknown"},u={remove:"uninstall.disposition.remove",modified:"uninstall.disposition.modified",missing:"uninstall.disposition.missing",unknown:"uninstall.disposition.unknown",irregular:"uninstall.disposition.irregular"},p={SKILL_UNINSTALL_MANAGED_UNCHANGED:"uninstall.reason.managedUnchanged",SKILL_UNINSTALL_LOCAL_MODIFICATION:"uninstall.reason.localModification",SKILL_UNINSTALL_RECEIPT_ORPHAN:"uninstall.reason.receiptOrphan",SKILL_UNINSTALL_UNMANAGED_FILE:"uninstall.reason.unmanagedFile",SKILL_UNINSTALL_NOT_A_REGULAR_FILE:"uninstall.reason.notARegularFile",SKILL_UNINSTALL_NOT_INSTALLED:"uninstall.reason.notInstalled",SKILL_UNINSTALL_RECEIPT_MISSING:"uninstall.reason.receiptMissing",SKILL_UNINSTALL_RECEIPT_UNREADABLE:"uninstall.reason.receiptUnreadable",SKILL_UNINSTALL_RECEIPT_FOREIGN:"uninstall.reason.receiptForeign",SKILL_UNINSTALL_TREE_SCAN_TRUNCATED:"uninstall.reason.treeScanTruncated"},E={SKILL_PREVIEW_DETACHED_HEAD:"plan.warning.detachedHead",SKILL_PREVIEW_UNBORN_HEAD:"plan.warning.unbornHead",SKILL_PREVIEW_HEAD_UNRESOLVED:"plan.warning.headUnresolved",SKILL_PREVIEW_WORKING_TREE_DIRTY:"plan.warning.workingTreeDirty",SKILL_PREVIEW_PATH_GIT_IGNORED:"plan.warning.pathGitIgnored",SKILL_PREVIEW_DIFF_TRUNCATED:"plan.warning.diffTruncated",SKILL_PREVIEW_BINARY_CONTENT:"plan.warning.binaryContent",SKILL_PREVIEW_LINE_ENDING_CRLF:"plan.warning.lineEndingCrlf",SKILL_PREVIEW_TREE_SCAN_TRUNCATED:"plan.warning.treeScanTruncated"},N={SKILL_PLAN_STALE:"operation.error.planStale",SKILL_PLAN_EXPIRED:"operation.error.planExpired",SKILL_PLAN_CONSUMED:"operation.error.planConsumed",SKILL_PLAN_NOT_FOUND:"operation.error.planNotFound",SKILL_PLAN_BINDING_MISMATCH:"operation.error.planBindingMismatch",SKILL_PLAN_NOT_INSTALLABLE:"operation.error.planNotInstallable",SKILL_PLAN_RISK_NOT_ACKNOWLEDGED:"operation.error.planRiskNotAcknowledged",SKILL_INSTALL_LOCKED:"operation.error.installLocked",SKILL_INSTALL_IN_PROGRESS:"operation.error.installInProgress",SKILL_INSTALL_DESTINATION_EXISTS:"operation.error.installDestinationExists",SKILL_INSTALL_DESTINATION_UNMANAGED:"operation.error.installDestinationUnmanaged",SKILL_INSTALL_IDEMPOTENCY_CONFLICT:"operation.error.installIdempotencyConflict",SKILL_INSTALL_FAILED:"operation.error.installFailed",SKILL_UNINSTALL_LOCKED:"operation.error.uninstallLocked",SKILL_UNINSTALL_IN_PROGRESS:"operation.error.uninstallInProgress",SKILL_UNINSTALL_IDEMPOTENCY_CONFLICT:"operation.error.uninstallIdempotencyConflict",SKILL_UNINSTALL_NOT_INSTALLED:"operation.error.uninstallNotInstalled",SKILL_UNINSTALL_BLOCKED:"operation.error.uninstallBlocked",SKILL_UNINSTALL_DRIFT:"operation.error.uninstallDrift",SKILL_UNINSTALL_FILE_CHANGED:"operation.error.uninstallFileChanged",SKILL_UNINSTALL_FAILED:"operation.error.uninstallFailed",SKILL_REQUEST_FAILED:"operation.error.requestFailed"};function S(n){var e;return null!=(e=N[n])?e:"operation.error.unexpected"}let A={SKILL_CATALOG_FETCH_FAILED:"catalog.reason.fetchFailed",SKILL_CATALOG_RATE_LIMITED:"catalog.reason.rateLimited",SKILL_CATALOG_OVERSIZED:"catalog.reason.oversized",SKILL_CATALOG_MALFORMED:"catalog.reason.malformed",SKILL_CATALOG_INVALID_SCHEMA:"catalog.reason.invalidSchema"};function m(n){return n&&A[n]||"catalog.reason.unknown"}function g(n){return n.startsWith("skills.")?n.slice(7):n}let f=/!\[([^\]]*)\]\([^)]*\)/g,T=/<\/?(?:img|picture|source|video|audio|iframe|embed|object|track)\b[^>]*>/gi;function K(n){return n.replace(f,"$1").replace(T,"")}let R={query:"",compatibility:"all",risk:"all",agent:"all"};function k(n){var e,t;let a=n.versions.find(e=>e.version===n.recommendedVersion);return null!=(t=null==(e=null!=a?a:n.versions[0])?void 0:e.declaredRisk)?t:null}function D(n){let e=new Set;for(let t of n.versions)for(let n of t.compatibility.agents)("native"===n.support||"commandmate_runtime"===n.support)&&e.add(n.agent);return[...e].sort()}function C(n,e){return n.filter(n=>{var t;return!!function(n,e){let t=e.trim().toLowerCase();return 0===t.length||[n.name,n.summary,n.id,n.provider.name,...n.keywords].some(n=>n.toLowerCase().includes(t))}(n,e.query)&&("all"===e.compatibility||(null==(t=n.compatibility)?void 0:t.status)===e.compatibility)&&("all"===e.risk||k(n)===e.risk)&&("all"===e.agent||!!D(n).includes(e.agent))})}function h(n){let e=new Set;for(let t of n)for(let n of t.versions)for(let t of n.compatibility.agents)e.add(t.agent);return[...e].sort()}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4027],{24027:(e,t,r)=>{r.d(t,{Uc:()=>C,G8:()=>N,OJ:()=>W,RF:()=>A});var n=r(95155),i=r(12115),l=r(18955),a=r(51238),s=r(22133),o=r(89451),c=r(10934),d=r(92254),u=r(5225);r(1226);var m=r(89715),h=r(57828),f=r(52056),p=r(65229),x=r(67909),g=r(3005);let w=(0,x.default)(()=>Promise.all([r.e(221),r.e(7485),r.e(953)]).then(r.bind(r,90953)).then(e=>({default:e.MermaidDiagram})),{loadableGenerated:{webpack:()=>[90953]},ssr:!1,loading:function(){let e=(0,l.c)("worktree");return(0,n.jsxs)("div",{className:"mermaid-loading flex items-center gap-2 text-muted-foreground p-4",children:[(0,n.jsx)(g.y,{size:"sm"}),(0,n.jsx)("span",{children:e("mermaid.loading")})]})}});function b(e){let{className:t,children:r}=e;if(t&&t.split(" ").includes("language-mermaid")){let e=null==r?"":"string"==typeof r?r:Array.isArray(r)?r.map(e=>"string"==typeof e?e:"").join(""):String(r);return(0,n.jsx)(w,{code:e})}return(0,n.jsx)("code",{className:t,children:r})}var j=r(50666),k=r(69352),v=r(76246);function y(e){let{apiUrl:t,alt:r,width:a,height:s}=e,o=(0,l.c)("worktree"),[c,d]=(0,i.useState)(null);return((0,i.useEffect)(()=>{let e=!1;return fetch(t).then(e=>e.ok?e.json():null).then(t=>{!e&&(null==t?void 0:t.content)&&d(t.content)}).catch(()=>{}),()=>{e=!0}},[t]),c)?(0,n.jsx)("img",{src:c,alt:r,width:a,height:s,style:{maxWidth:a||"100%"}}):(0,n.jsx)("span",{style:{color:"#999"},children:o("markdownPreview.loadingImage")})}let N=(0,i.memo)(function(e){let{content:t,onOpenFile:r,currentFilePath:l,worktreeId:m}=e,h=(0,i.useRef)(r);h.current=r;let f=(0,i.useRef)(l);f.current=l;let p=(0,i.useRef)(m);p.current=m;let x=(0,i.useCallback)((e,t)=>{let r=(0,k.d3)(t);if(r)switch((0,k.dj)(r)){case"anchor":break;case"external":e.preventDefault(),window.open(r,"_blank","noopener,noreferrer");break;case"relative":{e.preventDefault();let t=f.current,n=h.current;if(t&&n){let e=(0,k.WU)(t,r);e&&n(e)}}}},[]),g=(0,i.useMemo)(()=>({code:b,pre:e=>{let{children:t}=e;return!function(e){let t=i.Children.toArray(e)[0];if(!i.isValidElement(t))return!1;let r=t.props.className;return"string"==typeof r&&r.split(" ").includes("language-mermaid")}(t)?(0,n.jsx)(j.Ck,{children:(0,n.jsx)("pre",{className:"overflow-x-auto",children:t})}):(0,n.jsx)("pre",{children:t})},img:e=>{var t,r,i,l;let{src:a,alt:s,width:o,height:c,...d}=e,u=null!=o?o:null==(r=d.node)||null==(t=r.properties)?void 0:t.width,m=null!=c?c:null==(l=d.node)||null==(i=l.properties)?void 0:i.height;if("string"==typeof a&&!a.startsWith("http://")&&!a.startsWith("https://")&&!a.startsWith("data:")){let e=f.current,t=p.current;if(e&&t){let r=(0,k.WU)(e,a);if(r){let e="/api/worktrees/".concat(t,"/files/").concat((0,v.o)(r));return(0,n.jsx)(y,{apiUrl:e,alt:null!=s?s:"",width:u,height:m})}}}return(0,n.jsx)("img",{src:a,alt:null!=s?s:"",width:u,height:m,style:{maxWidth:u||"100%"}})},a:e=>{let{href:t,children:r,...i}=e;return t?(0,n.jsx)("a",{...i,href:t,onClick:e=>x(e,t),children:r}):(0,n.jsx)("a",{...i,children:r})}}),[x]),w=(0,i.useMemo)(()=>[s.A],[]),N=(0,i.useMemo)(()=>[o.A,[c.A,k.uO],d.A,u.A],[]);return(0,n.jsx)(a.oz,{remarkPlugins:w,rehypePlugins:N,components:g,children:t})}),A=(0,i.memo)(function(e){let{mobileTab:t,onTabChange:r}=e,i=(0,l.c)("worktree");return(0,n.jsxs)("div",{className:"flex border-b border-border",children:[(0,n.jsxs)("button",{"data-testid":"mobile-tab-editor",onClick:()=>r("editor"),className:"flex-1 py-2 text-sm font-medium ".concat("editor"===t?"text-accent-600 dark:text-accent-400 border-b-2 border-accent-600 dark:border-accent-400":"text-muted-foreground"),children:[(0,n.jsx)(m.A,{className:"h-4 w-4 inline-block mr-1"}),i("markdownPreview.editor")]}),(0,n.jsxs)("button",{"data-testid":"mobile-tab-preview",onClick:()=>r("preview"),className:"flex-1 py-2 text-sm font-medium ".concat("preview"===t?"text-accent-600 dark:text-accent-400 border-b-2 border-accent-600 dark:border-accent-400":"text-muted-foreground"),children:[(0,n.jsx)(h.A,{className:"h-4 w-4 inline-block mr-1"}),i("markdownPreview.preview")]})]})}),W=(0,i.memo)(function(e){let{isMobile:t}=e,r=(0,l.c)("worktree");return(0,n.jsxs)("div",{"data-testid":"maximize-hint",className:"flex items-center justify-center px-4 py-1 bg-muted text-muted-foreground text-xs",children:[r("markdownPreview.exitFullscreenHint")," ",t&&r("markdownPreview.exitFullscreenHintSwipe")]})}),C=(0,i.memo)(function(e){let{onDismiss:t}=e,r=(0,l.c)("worktree");return(0,n.jsxs)("div",{"data-testid":"large-file-warning",className:"flex items-center gap-2 px-4 py-2 bg-warning-subtle border-b border-warning-border text-warning-foreground text-sm",children:[(0,n.jsx)(f.A,{className:"h-4 w-4"}),r("markdownPreview.largeFileWarning"),(0,n.jsx)("button",{onClick:t,className:"ml-auto text-warning hover:text-warning",children:(0,n.jsx)(p.A,{className:"h-4 w-4"})})]})})},50666:(e,t,r)=>{r.d(t,{Ck:()=>a});var n=r(95155),i=r(12115),l=r(53482);function a(e){let{children:t,as:r="div",className:a=""}=e,s=function e(t){return null==t||"boolean"==typeof t?"":"string"==typeof t?t:"number"==typeof t?String(t):Array.isArray(t)?t.map(e).join(""):i.isValidElement(t)?e(t.props.children):""}(t);if(!s||0===s.trim().length)return(0,n.jsx)(r,{className:a||void 0,children:t});let o="relative group ".concat("span"===r?"block ":"").concat(a).trim();return(0,n.jsxs)(r,{className:o,"data-testid":"code-block-with-copy",children:[t,(0,n.jsx)(l.i,{text:s,className:"absolute right-2 top-2 z-10 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 focus:opacity-100"})]})}},69352:(e,t,r)=>{r.d(t,{WU:()=>c,d3:()=>d,dj:()=>o,uO:()=>u});var n,i,l,a,s=r(9567);function o(e){return e.startsWith("#")?"anchor":e.startsWith("http://")||e.startsWith("https://")||e.startsWith("mailto:")||e.startsWith("tel:")?"external":"relative"}function c(e,t){if(!t)return null;let r=e.substring(0,e.lastIndexOf("/")+1);try{let e=new URL(r,"file:///"),n=new URL(t,e),i=decodeURIComponent(n.pathname);if(i.startsWith("/")){let e=i.substring(1);if(e.length>0)return e}}catch(e){}return null}function d(e){return!e||0===e.length||e.length>2048||/[\x00-\x1f\x7f]/.test(e)?null:e}let u={...s.j,attributes:{...s.j.attributes,a:[...(null!=(l=null==(n=s.j.attributes)?void 0:n.a)?l:[]).filter(e=>"href"!==e),["href",/^(?:#|mailto:|tel:|https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/]],img:[...(null!=(a=null==(i=s.j.attributes)?void 0:i.img)?a:[]).filter(e=>"src"!==e),["src",/^(?:https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/],"alt","width","height"]}}}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[530],{530:(e,t,r)=>{r.r(t),r.d(t,{HtmlPreview:()=>p});var a=r(95155),s=r(12115),l=r(18955),n=r(36402),i=r(11063),o=r(69352),c=r(90487);r(1226);let d="\n<script>\ndocument.addEventListener('click', function(e) {\n var target = e.target;\n while (target && target.tagName !== 'A') {\n target = target.parentElement;\n }\n if (target && target.href) {\n e.preventDefault();\n parent.postMessage({\n type: 'commandmate:link-click',\n href: target.getAttribute('href')\n }, '*');\n }\n});\n<\/script>",h={source:"htmlPreview.modeSource",preview:"htmlPreview.modePreview",split:"htmlPreview.modeSplit"};function u(e){let{content:t}=e,r=(0,s.useMemo)(()=>{try{return c.A.highlight(t,{language:"html",ignoreIllegals:!0}).value}catch(e){return c.A.highlightAuto(t).value}},[t]),l=(0,s.useMemo)(()=>r.split("\n"),[r]),n=(0,s.useMemo)(()=>Array.from({length:t.split("\n").length},(e,t)=>t+1),[t]);return(0,a.jsx)("div",{className:"overflow-auto h-full","data-testid":"html-source-viewer",children:(0,a.jsx)("table",{className:"text-sm w-full border-collapse",children:(0,a.jsx)("tbody",{children:n.map(e=>{var t;let r=e-1;return(0,a.jsxs)("tr",{"data-line":e,children:[(0,a.jsx)("td",{className:"pl-3 pr-2 text-right select-none font-mono border-r border-border bg-muted dark:bg-muted/50 sticky left-0 align-top whitespace-nowrap text-muted-foreground",children:e}),(0,a.jsx)("td",{className:"px-4 text-foreground align-top",children:(0,a.jsx)("pre",{className:"m-0 whitespace-pre-wrap break-words font-mono",style:{lineHeight:"1.5rem"},children:(0,a.jsx)("code",{className:"hljs",style:{padding:0,background:"transparent"},dangerouslySetInnerHTML:{__html:null!=(t=l[r])?t:""}})})})]},e)})})})})}function m(e){let{htmlContent:t,sandboxLevel:r,filePath:s}=e,n=(0,l.c)("worktree");return(0,a.jsx)("iframe",{srcDoc:t,sandbox:i.Ko[r],title:n("htmlPreview.title",{path:s}),className:"w-full h-full border-0 bg-white","data-testid":"html-iframe-preview"},"".concat(s,"-").concat(r))}function p(e){let{filePath:t,htmlContent:r,onOpenFile:i}=e,[c,p]=(0,s.useState)("preview"),[f,b]=(0,s.useState)("safe"),g=(0,s.useRef)(new Set),x=(0,l.c)("worktree"),v=(0,n.SC)(),w=(0,s.useCallback)(async e=>{if("interactive"===e&&!g.current.has(t)){if(!await v({description:x("htmlPreview.interactiveModeConfirm")}))return;g.current.add(t)}b(e)},[t,v,x]),y=(0,s.useCallback)(e=>{if(!e||"string"!=typeof e)return;let r=(0,o.d3)(e);if(r)switch((0,o.dj)(r)){case"external":window.open(r,"_blank","noopener,noreferrer");break;case"relative":{let e=(0,o.WU)(t,r);e&&i&&i(e)}}},[t,i]);(0,s.useEffect)(()=>{if("interactive"!==f)return;let e=e=>{if("null"!==e.origin)return;let t=e.data;t&&"object"==typeof t&&"commandmate:link-click"===t.type&&"string"==typeof t.href&&y(t.href)};return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[f,y]);let k=(0,s.useMemo)(()=>"interactive"===f?r.includes("</body>")?r.replace("</body>","".concat(d,"</body>")):r+d:r,[r,f]);return(0,a.jsxs)("div",{className:"h-full flex flex-col","data-testid":"html-preview",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between p-1 border-b border-border bg-muted flex-shrink-0",children:[(0,a.jsx)("div",{className:"flex gap-1",children:["source","preview","split"].map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>p(e),className:"px-3 py-1 text-xs font-medium rounded-md transition-colors ".concat(c===e?"bg-accent-100 dark:bg-accent-900/50 text-accent-700 dark:text-accent-300":"text-muted-foreground hover:bg-muted"),children:x(h[e])},e))}),(0,a.jsx)("div",{className:"flex gap-1",children:["safe","interactive"].map(e=>(0,a.jsx)("button",{type:"button",onClick:()=>w(e),className:"px-3 py-1 text-xs font-medium rounded-md transition-colors ".concat(f===e?"safe"===e?"bg-success-subtle text-success-foreground":"bg-warning-subtle text-warning-foreground":"text-muted-foreground hover:bg-muted"),children:"safe"===e?x("htmlPreview.sandboxSafe"):x("htmlPreview.sandboxInteractive")},e))})]}),(0,a.jsxs)("div",{className:"flex-1 min-h-0 overflow-hidden",children:["source"===c&&(0,a.jsx)(u,{content:r}),"preview"===c&&(0,a.jsx)(m,{htmlContent:k,sandboxLevel:f,filePath:t}),"split"===c&&(0,a.jsxs)("div",{className:"flex h-full",children:[(0,a.jsx)("div",{className:"w-1/2 border-r border-border overflow-hidden",children:(0,a.jsx)(u,{content:r})}),(0,a.jsx)("div",{className:"w-1/2 overflow-hidden",children:(0,a.jsx)(m,{htmlContent:k,sandboxLevel:f,filePath:t})})]})]})]})}},9567:(e,t,r)=>{r.d(t,{j:()=>s});let a=["ariaDescribedBy","ariaLabel","ariaLabelledBy"],s={ancestors:{tbody:["table"],td:["table"],th:["table"],thead:["table"],tfoot:["table"],tr:["table"]},attributes:{a:[...a,"dataFootnoteBackref","dataFootnoteRef",["className","data-footnote-backref"],"href"],blockquote:["cite"],code:[["className",/^language-./]],del:["cite"],div:["itemScope","itemType"],dl:[...a],h2:[["className","sr-only"]],img:[...a,"longDesc","src"],input:[["disabled",!0],["type","checkbox"]],ins:["cite"],li:[["className","task-list-item"]],ol:[...a,["className","contains-task-list"]],q:["cite"],section:["dataFootnotes",["className","footnotes"]],source:["srcSet"],summary:[...a],table:[...a],ul:[...a,["className","contains-task-list"]],"*":["abbr","accept","acceptCharset","accessKey","action","align","alt","axis","border","cellPadding","cellSpacing","char","charOff","charSet","checked","clear","colSpan","color","cols","compact","coords","dateTime","dir","encType","frame","hSpace","headers","height","hrefLang","htmlFor","id","isMap","itemProp","label","lang","maxLength","media","method","multiple","name","noHref","noShade","noWrap","open","prompt","readOnly","rev","rowSpan","rows","rules","scope","selected","shape","size","span","start","summary","tabIndex","title","useMap","vAlign","value","width"]},clobber:["ariaDescribedBy","ariaLabelledBy","id","name"],clobberPrefix:"user-content-",protocols:{cite:["http","https"],href:["http","https","irc","ircs","mailto","xmpp"],longDesc:["http","https"],src:["http","https"]},required:{input:{disabled:!0,type:"checkbox"}},strip:["script"],tagNames:["a","b","blockquote","br","code","dd","del","details","div","dl","dt","em","h1","h2","h3","h4","h5","h6","hr","i","img","input","ins","kbd","li","ol","p","picture","pre","q","rp","rt","ruby","s","samp","section","source","span","strike","strong","sub","summary","sup","table","tbody","td","tfoot","th","thead","tr","tt","ul","var"]}},69352:(e,t,r)=>{r.d(t,{WU:()=>c,d3:()=>d,dj:()=>o,uO:()=>h});var a,s,l,n,i=r(9567);function o(e){return e.startsWith("#")?"anchor":e.startsWith("http://")||e.startsWith("https://")||e.startsWith("mailto:")||e.startsWith("tel:")?"external":"relative"}function c(e,t){if(!t)return null;let r=e.substring(0,e.lastIndexOf("/")+1);try{let e=new URL(r,"file:///"),a=new URL(t,e),s=decodeURIComponent(a.pathname);if(s.startsWith("/")){let e=s.substring(1);if(e.length>0)return e}}catch(e){}return null}function d(e){return!e||0===e.length||e.length>2048||/[\x00-\x1f\x7f]/.test(e)?null:e}let h={...i.j,attributes:{...i.j.attributes,a:[...(null!=(l=null==(a=i.j.attributes)?void 0:a.a)?l:[]).filter(e=>"href"!==e),["href",/^(?:#|mailto:|tel:|https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/]],img:[...(null!=(n=null==(s=i.j.attributes)?void 0:s.img)?n:[]).filter(e=>"src"!==e),["src",/^(?:https?:\/\/|(?![a-zA-Z][a-zA-Z0-9+.-]*:))/],"alt","width","height"]}}}}]);