commandmate 0.11.4 → 0.12.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 (591) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +395 -303
  3. package/.next/app-path-routes-manifest.json +31 -22
  4. package/.next/build-manifest.json +5 -5
  5. package/.next/prerender-manifest.json +12 -12
  6. package/.next/react-loadable-manifest.json +8 -6
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/routes-manifest.json +66 -0
  9. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  10. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
  12. package/.next/server/app/api/app/update-check/route.js +1 -1
  13. package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
  14. package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
  15. package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
  16. package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
  17. package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
  18. package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
  19. package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
  20. package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
  21. package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  23. package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  24. package/.next/server/app/api/daily-summary/route.js +1 -1
  25. package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
  26. package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
  27. package/.next/server/app/api/daily-summary/status/route.js +1 -1
  28. package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
  29. package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
  30. package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
  31. package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
  32. package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
  33. package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
  34. package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
  35. package/.next/server/app/api/push/subscriptions/route.js +1 -1
  36. package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
  37. package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
  38. package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
  39. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
  40. package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  41. package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
  42. package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
  43. package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
  44. package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
  45. package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
  46. package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
  47. package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
  48. package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
  49. package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
  50. package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
  51. package/.next/server/app/api/skills/[id]/route.js +1 -0
  52. package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -0
  53. package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -0
  54. package/.next/server/app/api/skills/route.js +1 -0
  55. package/.next/server/app/api/skills/route.js.nft.json +1 -0
  56. package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -0
  57. package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
  58. package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
  59. package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
  60. package/.next/server/app/api/todos/route.js +1 -1
  61. package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
  62. package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
  63. package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
  64. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
  65. package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
  66. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
  67. package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
  68. package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
  69. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
  70. package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
  71. package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
  72. package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
  73. package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
  74. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
  75. package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
  76. package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
  77. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
  78. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
  79. package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
  80. package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
  81. package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
  82. package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
  83. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
  84. package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
  85. package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
  86. package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
  87. package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
  88. package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
  89. package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
  90. package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
  91. package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
  92. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
  93. package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
  94. package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
  95. package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
  96. package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
  97. package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
  98. package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
  99. package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
  100. package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
  101. package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
  102. package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
  103. package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
  104. package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
  105. package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
  106. package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
  107. package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
  108. package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
  109. package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
  110. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
  111. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
  112. package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
  113. package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
  114. package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
  115. package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
  116. package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
  117. package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
  118. package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
  119. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
  120. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
  121. package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
  122. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
  123. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
  124. package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
  125. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
  126. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
  127. package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
  128. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
  129. package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
  130. package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
  131. package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
  132. package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
  133. package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
  134. package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
  135. package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
  136. package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
  137. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
  138. package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
  139. package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
  140. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
  141. package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
  142. package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
  143. package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
  144. package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
  145. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  146. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
  147. package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
  148. package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
  149. package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
  150. package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
  151. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
  152. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
  153. package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
  154. package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
  155. package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
  156. package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
  157. package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
  158. package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
  159. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  160. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  161. package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
  162. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
  163. package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
  164. package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
  165. package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
  166. package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
  167. package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
  168. package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
  169. package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
  170. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  171. package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
  172. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -0
  173. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -0
  174. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -0
  175. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -0
  176. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -0
  177. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -0
  178. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -0
  179. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -0
  180. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -0
  181. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -0
  182. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -0
  183. package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -0
  184. package/.next/server/app/api/worktrees/[id]/skills/route.js +23 -0
  185. package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -0
  186. package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -0
  187. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
  188. package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
  189. package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
  190. package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
  191. package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
  192. package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
  193. package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
  194. package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
  195. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
  196. package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
  197. package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
  198. package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
  199. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
  200. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
  201. package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
  202. package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
  203. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
  204. package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
  205. package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
  206. package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
  207. package/.next/server/app/chat/page.js +2 -2
  208. package/.next/server/app/chat/page.js.nft.json +1 -1
  209. package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
  210. package/.next/server/app/login/page.js.nft.json +1 -1
  211. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  212. package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
  213. package/.next/server/app/more/page.js +2 -2
  214. package/.next/server/app/more/page.js.nft.json +1 -1
  215. package/.next/server/app/more/page_client-reference-manifest.js +1 -1
  216. package/.next/server/app/offline/page.js.nft.json +1 -1
  217. package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  218. package/.next/server/app/page.js +1 -1
  219. package/.next/server/app/page.js.nft.json +1 -1
  220. package/.next/server/app/page_client-reference-manifest.js +1 -1
  221. package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
  222. package/.next/server/app/repositories/page.js +1 -1
  223. package/.next/server/app/repositories/page.js.nft.json +1 -1
  224. package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
  225. package/.next/server/app/review/page.js +1 -1
  226. package/.next/server/app/review/page.js.nft.json +1 -1
  227. package/.next/server/app/review/page_client-reference-manifest.js +1 -1
  228. package/.next/server/app/sessions/page.js +1 -1
  229. package/.next/server/app/sessions/page.js.nft.json +1 -1
  230. package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
  231. package/.next/server/app/skills/[skillId]/page.js +2 -0
  232. package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -0
  233. package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -0
  234. package/.next/server/app/skills/page.js +2 -0
  235. package/.next/server/app/skills/page.js.nft.json +1 -0
  236. package/.next/server/app/skills/page_client-reference-manifest.js +1 -0
  237. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
  238. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  239. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  240. package/.next/server/app/worktrees/[id]/page.js +9 -9
  241. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  242. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  243. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  244. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  245. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  246. package/.next/server/app-paths-manifest.json +31 -22
  247. package/.next/server/chunks/1117.js +1 -1
  248. package/.next/server/chunks/120.js +1 -0
  249. package/.next/server/chunks/1808.js +1 -0
  250. package/.next/server/chunks/186.js +1 -0
  251. package/.next/server/chunks/2119.js +1 -1
  252. package/.next/server/chunks/22.js +1 -0
  253. package/.next/server/chunks/2328.js +1 -0
  254. package/.next/server/chunks/2445.js +1 -1
  255. package/.next/server/chunks/3042.js +2 -0
  256. package/.next/server/chunks/3543.js +1 -1
  257. package/.next/server/chunks/3708.js +1 -0
  258. package/.next/server/chunks/3945.js +1 -1
  259. package/.next/server/chunks/5064.js +1 -0
  260. package/.next/server/chunks/5226.js +28 -0
  261. package/.next/server/chunks/5306.js +2 -0
  262. package/.next/server/chunks/5312.js +1 -0
  263. package/.next/server/chunks/5326.js +1 -0
  264. package/.next/server/chunks/5381.js +1 -1
  265. package/.next/server/chunks/5456.js +1 -0
  266. package/.next/server/chunks/5571.js +1 -1
  267. package/.next/server/chunks/5959.js +2 -2
  268. package/.next/server/chunks/6065.js +1 -0
  269. package/.next/server/chunks/6130.js +1 -0
  270. package/.next/server/chunks/6285.js +1 -1
  271. package/.next/server/chunks/646.js +6 -6
  272. package/.next/server/chunks/{9968.js → 7587.js} +1 -1
  273. package/.next/server/chunks/8584.js +1 -0
  274. package/.next/server/chunks/8681.js +1 -1
  275. package/.next/server/chunks/8807.js +950 -804
  276. package/.next/server/chunks/9123.js +1 -1
  277. package/.next/server/middleware-build-manifest.js +1 -1
  278. package/.next/server/middleware-manifest.json +5 -5
  279. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  280. package/.next/server/pages/500.html +1 -1
  281. package/.next/server/server-reference-manifest.json +1 -1
  282. package/.next/static/D-aoE4gWfuCUN0GqEPIX3/_buildManifest.js +1 -0
  283. package/.next/static/chunks/1668-7484081c45a44f89.js +1 -0
  284. package/.next/static/chunks/3418-7e47651340d940b0.js +1 -0
  285. package/.next/static/chunks/4027-0c529b322be7d4d8.js +1 -0
  286. package/.next/static/chunks/{4560-64b1461fd996127a.js → 4560-04e5aebcab96bfa1.js} +1 -1
  287. package/.next/static/chunks/6007-de36119357dcd418.js +1 -0
  288. package/.next/static/chunks/{6488-76295bf0184b101f.js → 6488-e257111ca7389d05.js} +1 -1
  289. package/.next/static/chunks/{8965-872d8de254196cec.js → 6497-dc26c6c6b0b15adf.js} +1 -1
  290. package/.next/static/chunks/790-d8e6acd26e03679c.js +1 -0
  291. package/.next/static/chunks/8361.4bf062be2d2962f4.js +1 -0
  292. package/.next/static/chunks/app/api/app/update/route-56dad0523d3c4a92.js +1 -0
  293. package/.next/static/chunks/app/api/app/update-check/route-56dad0523d3c4a92.js +1 -0
  294. package/.next/static/chunks/app/api/assistant/conversation/route-56dad0523d3c4a92.js +1 -0
  295. package/.next/static/chunks/app/api/assistant/current-output/route-56dad0523d3c4a92.js +1 -0
  296. package/.next/static/chunks/app/api/assistant/messages/route-56dad0523d3c4a92.js +1 -0
  297. package/.next/static/chunks/app/api/assistant/session/route-56dad0523d3c4a92.js +1 -0
  298. package/.next/static/chunks/app/api/assistant/start/route-56dad0523d3c4a92.js +1 -0
  299. package/.next/static/chunks/app/api/assistant/terminal/route-56dad0523d3c4a92.js +1 -0
  300. package/.next/static/chunks/app/api/assistant/tools/route-56dad0523d3c4a92.js +1 -0
  301. package/.next/static/chunks/app/api/auth/login/route-56dad0523d3c4a92.js +1 -0
  302. package/.next/static/chunks/app/api/auth/logout/route-56dad0523d3c4a92.js +1 -0
  303. package/.next/static/chunks/app/api/auth/status/route-56dad0523d3c4a92.js +1 -0
  304. package/.next/static/chunks/app/api/daily-summary/route-56dad0523d3c4a92.js +1 -0
  305. package/.next/static/chunks/app/api/daily-summary/status/route-56dad0523d3c4a92.js +1 -0
  306. package/.next/static/chunks/app/api/external-apps/[id]/health/route-56dad0523d3c4a92.js +1 -0
  307. package/.next/static/chunks/app/api/external-apps/[id]/route-56dad0523d3c4a92.js +1 -0
  308. package/.next/static/chunks/app/api/external-apps/route-56dad0523d3c4a92.js +1 -0
  309. package/.next/static/chunks/app/api/hooks/claude-done/route-56dad0523d3c4a92.js +1 -0
  310. package/.next/static/chunks/app/api/ollama/models/route-56dad0523d3c4a92.js +1 -0
  311. package/.next/static/chunks/app/api/push/subscriptions/route-56dad0523d3c4a92.js +1 -0
  312. package/.next/static/chunks/app/api/push/vapid/route-56dad0523d3c4a92.js +1 -0
  313. package/.next/static/chunks/app/api/repositories/[id]/route-56dad0523d3c4a92.js +1 -0
  314. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +1 -0
  315. package/.next/static/chunks/app/api/repositories/[id]/todos/route-56dad0523d3c4a92.js +1 -0
  316. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-56dad0523d3c4a92.js +1 -0
  317. package/.next/static/chunks/app/api/repositories/clone/route-56dad0523d3c4a92.js +1 -0
  318. package/.next/static/chunks/app/api/repositories/excluded/route-56dad0523d3c4a92.js +1 -0
  319. package/.next/static/chunks/app/api/repositories/restore/route-56dad0523d3c4a92.js +1 -0
  320. package/.next/static/chunks/app/api/repositories/route-56dad0523d3c4a92.js +1 -0
  321. package/.next/static/chunks/app/api/repositories/scan/route-56dad0523d3c4a92.js +1 -0
  322. package/.next/static/chunks/app/api/repositories/sync/route-56dad0523d3c4a92.js +1 -0
  323. package/.next/static/chunks/app/api/sidebar/group-order/route-56dad0523d3c4a92.js +1 -0
  324. package/.next/static/chunks/app/api/skills/[id]/route-56dad0523d3c4a92.js +1 -0
  325. package/.next/static/chunks/app/api/skills/route-56dad0523d3c4a92.js +1 -0
  326. package/.next/static/chunks/app/api/slash-commands/route-56dad0523d3c4a92.js +1 -0
  327. package/.next/static/chunks/app/api/templates/[id]/route-56dad0523d3c4a92.js +1 -0
  328. package/.next/static/chunks/app/api/templates/route-56dad0523d3c4a92.js +1 -0
  329. package/.next/static/chunks/app/api/todos/route-56dad0523d3c4a92.js +1 -0
  330. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-56dad0523d3c4a92.js +1 -0
  331. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-56dad0523d3c4a92.js +1 -0
  332. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-56dad0523d3c4a92.js +1 -0
  333. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-56dad0523d3c4a92.js +1 -0
  334. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-56dad0523d3c4a92.js +1 -0
  335. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-56dad0523d3c4a92.js +1 -0
  336. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-56dad0523d3c4a92.js +1 -0
  337. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-56dad0523d3c4a92.js +1 -0
  338. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-56dad0523d3c4a92.js +1 -0
  339. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-56dad0523d3c4a92.js +1 -0
  340. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-56dad0523d3c4a92.js +1 -0
  341. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-56dad0523d3c4a92.js +1 -0
  342. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-56dad0523d3c4a92.js +1 -0
  343. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-56dad0523d3c4a92.js +1 -0
  344. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-56dad0523d3c4a92.js +1 -0
  345. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-56dad0523d3c4a92.js +1 -0
  346. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-56dad0523d3c4a92.js +1 -0
  347. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-56dad0523d3c4a92.js +1 -0
  348. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-56dad0523d3c4a92.js +1 -0
  349. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-56dad0523d3c4a92.js +1 -0
  350. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-56dad0523d3c4a92.js +1 -0
  351. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-56dad0523d3c4a92.js +1 -0
  352. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-56dad0523d3c4a92.js +1 -0
  353. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-56dad0523d3c4a92.js +1 -0
  354. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-56dad0523d3c4a92.js +1 -0
  355. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-56dad0523d3c4a92.js +1 -0
  356. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-56dad0523d3c4a92.js +1 -0
  357. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-56dad0523d3c4a92.js +1 -0
  358. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-56dad0523d3c4a92.js +1 -0
  359. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-56dad0523d3c4a92.js +1 -0
  360. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-56dad0523d3c4a92.js +1 -0
  361. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-56dad0523d3c4a92.js +1 -0
  362. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-56dad0523d3c4a92.js +1 -0
  363. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-56dad0523d3c4a92.js +1 -0
  364. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-56dad0523d3c4a92.js +1 -0
  365. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-56dad0523d3c4a92.js +1 -0
  366. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-56dad0523d3c4a92.js +1 -0
  367. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-56dad0523d3c4a92.js +1 -0
  368. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-56dad0523d3c4a92.js +1 -0
  369. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-56dad0523d3c4a92.js +1 -0
  370. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-56dad0523d3c4a92.js +1 -0
  371. package/.next/static/chunks/app/api/worktrees/[id]/route-56dad0523d3c4a92.js +1 -0
  372. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-56dad0523d3c4a92.js +1 -0
  373. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-56dad0523d3c4a92.js +1 -0
  374. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-56dad0523d3c4a92.js +1 -0
  375. package/.next/static/chunks/app/api/worktrees/[id]/search/route-56dad0523d3c4a92.js +1 -0
  376. package/.next/static/chunks/app/api/worktrees/[id]/send/route-56dad0523d3c4a92.js +1 -0
  377. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-56dad0523d3c4a92.js +1 -0
  378. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-56dad0523d3c4a92.js +1 -0
  379. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-56dad0523d3c4a92.js +1 -0
  380. package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-56dad0523d3c4a92.js +1 -0
  381. package/.next/static/chunks/app/api/worktrees/[id]/skills/route-56dad0523d3c4a92.js +1 -0
  382. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-56dad0523d3c4a92.js +1 -0
  383. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-56dad0523d3c4a92.js +1 -0
  384. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-56dad0523d3c4a92.js +1 -0
  385. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-56dad0523d3c4a92.js +1 -0
  386. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-56dad0523d3c4a92.js +1 -0
  387. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-56dad0523d3c4a92.js +1 -0
  388. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-56dad0523d3c4a92.js +1 -0
  389. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-56dad0523d3c4a92.js +1 -0
  390. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-56dad0523d3c4a92.js +1 -0
  391. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-56dad0523d3c4a92.js +1 -0
  392. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-56dad0523d3c4a92.js +1 -0
  393. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-56dad0523d3c4a92.js +1 -0
  394. package/.next/static/chunks/app/api/worktrees/route-56dad0523d3c4a92.js +1 -0
  395. package/.next/static/chunks/app/chat/{page-9ed2ffd98eb4ae18.js → page-9cf4ba62e21d9074.js} +1 -1
  396. package/.next/static/chunks/app/manifest.webmanifest/route-56dad0523d3c4a92.js +1 -0
  397. package/.next/static/chunks/app/more/{page-a496425bba427b48.js → page-082d4ae496f9a36e.js} +1 -1
  398. package/.next/static/chunks/app/{page-15bfd76bcf65842d.js → page-af457ca5876ed616.js} +1 -1
  399. package/.next/static/chunks/app/proxy/[...path]/route-56dad0523d3c4a92.js +1 -0
  400. package/.next/static/chunks/app/repositories/{page-d214522ab8792ce7.js → page-75f0d70452c6b6c0.js} +1 -1
  401. package/.next/static/chunks/app/review/{page-1dadf0b5d7129598.js → page-f431d630097c2e85.js} +1 -1
  402. package/.next/static/chunks/app/sessions/{page-96f007d986c5f327.js → page-20f07a99db64d2ca.js} +1 -1
  403. package/.next/static/chunks/app/skills/[skillId]/page-68ed5e9186efe56d.js +1 -0
  404. package/.next/static/chunks/app/skills/page-46242c428ee8bccf.js +1 -0
  405. package/.next/static/chunks/app/worktrees/[id]/page-bf811e793052c917.js +1 -0
  406. package/.next/static/chunks/app/worktrees/[id]/terminal/page-a75fe180a7233b2b.js +1 -0
  407. package/.next/static/chunks/webpack-0f9275e279c058eb.js +1 -0
  408. package/.next/static/css/b4bdb1f3457fe9a7.css +1 -0
  409. package/.next/trace +11 -10
  410. package/.next/types/app/api/skills/[id]/route.ts +347 -0
  411. package/.next/types/app/api/skills/route.ts +347 -0
  412. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/install/route.ts +347 -0
  413. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/plan/route.ts +347 -0
  414. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.ts +347 -0
  415. package/.next/types/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.ts +347 -0
  416. package/.next/types/app/api/worktrees/[id]/skills/route.ts +347 -0
  417. package/.next/types/app/skills/[skillId]/page.ts +84 -0
  418. package/.next/types/app/skills/page.ts +84 -0
  419. package/.next/types/routes.d.ts +11 -2
  420. package/.next/types/validator.ts +81 -0
  421. package/dist/cli/commands/skill-format.d.ts +28 -0
  422. package/dist/cli/commands/skill-format.d.ts.map +1 -0
  423. package/dist/cli/commands/skill-format.js +163 -0
  424. package/dist/cli/commands/skill-guards.d.ts +53 -0
  425. package/dist/cli/commands/skill-guards.d.ts.map +1 -0
  426. package/dist/cli/commands/skill-guards.js +188 -0
  427. package/dist/cli/commands/skill.d.ts +24 -0
  428. package/dist/cli/commands/skill.d.ts.map +1 -0
  429. package/dist/cli/commands/skill.js +365 -0
  430. package/dist/cli/docs/agent-operations.d.ts +1 -1
  431. package/dist/cli/docs/agent-operations.d.ts.map +1 -1
  432. package/dist/cli/docs/agent-operations.js +36 -0
  433. package/dist/cli/program.d.ts.map +1 -1
  434. package/dist/cli/program.js +11 -0
  435. package/dist/cli/types/api-responses.d.ts +215 -0
  436. package/dist/cli/types/api-responses.d.ts.map +1 -1
  437. package/dist/cli/types/index.d.ts +60 -0
  438. package/dist/cli/types/index.d.ts.map +1 -1
  439. package/dist/cli/types/index.js +23 -1
  440. package/dist/cli/utils/api-client.d.ts +19 -1
  441. package/dist/cli/utils/api-client.d.ts.map +1 -1
  442. package/dist/cli/utils/api-client.js +41 -4
  443. package/dist/server/server.js +57 -0
  444. package/dist/server/src/config/activity-bar-config.js +2 -0
  445. package/dist/server/src/config/git-status-config.js +83 -0
  446. package/dist/server/src/config/skill-security-config.js +139 -0
  447. package/dist/server/src/lib/db/migrations/index.js +8 -0
  448. package/dist/server/src/lib/db/migrations/runner.js +1 -1
  449. package/dist/server/src/lib/db/migrations/v44-skill-operations.js +81 -0
  450. package/dist/server/src/lib/db/migrations/v45-skill-installations.js +59 -0
  451. package/dist/server/src/lib/db/migrations/v46-skill-installations-cascade.js +107 -0
  452. package/dist/server/src/lib/db/migrations/v47-skill-installations-roots.js +70 -0
  453. package/dist/server/src/lib/db/worktree-db.js +9 -4
  454. package/dist/server/src/lib/git/git-errors.js +336 -0
  455. package/dist/server/src/lib/git/git-exec.js +285 -0
  456. package/dist/server/src/lib/skills/compatibility.js +194 -0
  457. package/dist/server/src/lib/skills/constants.js +252 -0
  458. package/dist/server/src/lib/skills/errors.js +82 -0
  459. package/dist/server/src/lib/skills/index.js +91 -0
  460. package/dist/server/src/lib/skills/install-apply.js +670 -0
  461. package/dist/server/src/lib/skills/install-plan.js +582 -0
  462. package/dist/server/src/lib/skills/installed-state.js +127 -0
  463. package/dist/server/src/lib/skills/integrity.js +225 -0
  464. package/dist/server/src/lib/skills/json-schema.js +365 -0
  465. package/dist/server/src/lib/skills/operation-audit.js +120 -0
  466. package/dist/server/src/lib/skills/operation-journal.js +286 -0
  467. package/dist/server/src/lib/skills/operation-lock.js +339 -0
  468. package/dist/server/src/lib/skills/operation-reconciler.js +107 -0
  469. package/dist/server/src/lib/skills/operation-store.js +153 -0
  470. package/dist/server/src/lib/skills/package-reader.js +495 -0
  471. package/dist/server/src/lib/skills/package-validator.js +451 -0
  472. package/dist/server/src/lib/skills/preview-diff.js +627 -0
  473. package/dist/server/src/lib/skills/safe-yaml.js +593 -0
  474. package/dist/server/src/lib/skills/schema.js +1248 -0
  475. package/dist/server/src/lib/skills/semver.js +193 -0
  476. package/dist/server/src/lib/skills/snapshot-store.js +334 -0
  477. package/dist/server/src/lib/skills/startup-reconcile.js +138 -0
  478. package/dist/server/src/lib/skills/uninstall-apply.js +495 -0
  479. package/dist/server/src/lib/skills/uninstall-plan.js +479 -0
  480. package/dist/server/src/types/skills.js +17 -0
  481. package/package.json +1 -1
  482. package/.next/server/chunks/129.js +0 -1
  483. package/.next/server/chunks/2478.js +0 -1
  484. package/.next/server/chunks/9886.js +0 -1
  485. package/.next/static/0_lnKsT0DH-MnHhnV5n-l/_buildManifest.js +0 -1
  486. package/.next/static/chunks/3165-87bf884f7f3d15cf.js +0 -1
  487. package/.next/static/chunks/6416.6756b7ad06dd96f7.js +0 -1
  488. package/.next/static/chunks/8676.57260a06f6554e7e.js +0 -1
  489. package/.next/static/chunks/app/api/app/update/route-7536041a7a89616d.js +0 -1
  490. package/.next/static/chunks/app/api/app/update-check/route-7536041a7a89616d.js +0 -1
  491. package/.next/static/chunks/app/api/assistant/conversation/route-7536041a7a89616d.js +0 -1
  492. package/.next/static/chunks/app/api/assistant/current-output/route-7536041a7a89616d.js +0 -1
  493. package/.next/static/chunks/app/api/assistant/messages/route-7536041a7a89616d.js +0 -1
  494. package/.next/static/chunks/app/api/assistant/session/route-7536041a7a89616d.js +0 -1
  495. package/.next/static/chunks/app/api/assistant/start/route-7536041a7a89616d.js +0 -1
  496. package/.next/static/chunks/app/api/assistant/terminal/route-7536041a7a89616d.js +0 -1
  497. package/.next/static/chunks/app/api/assistant/tools/route-7536041a7a89616d.js +0 -1
  498. package/.next/static/chunks/app/api/auth/login/route-7536041a7a89616d.js +0 -1
  499. package/.next/static/chunks/app/api/auth/logout/route-7536041a7a89616d.js +0 -1
  500. package/.next/static/chunks/app/api/auth/status/route-7536041a7a89616d.js +0 -1
  501. package/.next/static/chunks/app/api/daily-summary/route-7536041a7a89616d.js +0 -1
  502. package/.next/static/chunks/app/api/daily-summary/status/route-7536041a7a89616d.js +0 -1
  503. package/.next/static/chunks/app/api/external-apps/[id]/health/route-7536041a7a89616d.js +0 -1
  504. package/.next/static/chunks/app/api/external-apps/[id]/route-7536041a7a89616d.js +0 -1
  505. package/.next/static/chunks/app/api/external-apps/route-7536041a7a89616d.js +0 -1
  506. package/.next/static/chunks/app/api/hooks/claude-done/route-7536041a7a89616d.js +0 -1
  507. package/.next/static/chunks/app/api/ollama/models/route-7536041a7a89616d.js +0 -1
  508. package/.next/static/chunks/app/api/push/subscriptions/route-7536041a7a89616d.js +0 -1
  509. package/.next/static/chunks/app/api/push/vapid/route-7536041a7a89616d.js +0 -1
  510. package/.next/static/chunks/app/api/repositories/[id]/route-7536041a7a89616d.js +0 -1
  511. package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-7536041a7a89616d.js +0 -1
  512. package/.next/static/chunks/app/api/repositories/[id]/todos/route-7536041a7a89616d.js +0 -1
  513. package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-7536041a7a89616d.js +0 -1
  514. package/.next/static/chunks/app/api/repositories/clone/route-7536041a7a89616d.js +0 -1
  515. package/.next/static/chunks/app/api/repositories/excluded/route-7536041a7a89616d.js +0 -1
  516. package/.next/static/chunks/app/api/repositories/restore/route-7536041a7a89616d.js +0 -1
  517. package/.next/static/chunks/app/api/repositories/route-7536041a7a89616d.js +0 -1
  518. package/.next/static/chunks/app/api/repositories/scan/route-7536041a7a89616d.js +0 -1
  519. package/.next/static/chunks/app/api/repositories/sync/route-7536041a7a89616d.js +0 -1
  520. package/.next/static/chunks/app/api/sidebar/group-order/route-7536041a7a89616d.js +0 -1
  521. package/.next/static/chunks/app/api/slash-commands/route-7536041a7a89616d.js +0 -1
  522. package/.next/static/chunks/app/api/templates/[id]/route-7536041a7a89616d.js +0 -1
  523. package/.next/static/chunks/app/api/templates/route-7536041a7a89616d.js +0 -1
  524. package/.next/static/chunks/app/api/todos/route-7536041a7a89616d.js +0 -1
  525. package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-7536041a7a89616d.js +0 -1
  526. package/.next/static/chunks/app/api/worktrees/[id]/capture/route-7536041a7a89616d.js +0 -1
  527. package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-7536041a7a89616d.js +0 -1
  528. package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-7536041a7a89616d.js +0 -1
  529. package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-7536041a7a89616d.js +0 -1
  530. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-7536041a7a89616d.js +0 -1
  531. package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-7536041a7a89616d.js +0 -1
  532. package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-7536041a7a89616d.js +0 -1
  533. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-7536041a7a89616d.js +0 -1
  534. package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-7536041a7a89616d.js +0 -1
  535. package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-7536041a7a89616d.js +0 -1
  536. package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-7536041a7a89616d.js +0 -1
  537. package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-7536041a7a89616d.js +0 -1
  538. package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-7536041a7a89616d.js +0 -1
  539. package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-7536041a7a89616d.js +0 -1
  540. package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-7536041a7a89616d.js +0 -1
  541. package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-7536041a7a89616d.js +0 -1
  542. package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-7536041a7a89616d.js +0 -1
  543. package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-7536041a7a89616d.js +0 -1
  544. package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-7536041a7a89616d.js +0 -1
  545. package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-7536041a7a89616d.js +0 -1
  546. package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-7536041a7a89616d.js +0 -1
  547. package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-7536041a7a89616d.js +0 -1
  548. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-7536041a7a89616d.js +0 -1
  549. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-7536041a7a89616d.js +0 -1
  550. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-7536041a7a89616d.js +0 -1
  551. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-7536041a7a89616d.js +0 -1
  552. package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-7536041a7a89616d.js +0 -1
  553. package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-7536041a7a89616d.js +0 -1
  554. package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-7536041a7a89616d.js +0 -1
  555. package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-7536041a7a89616d.js +0 -1
  556. package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-7536041a7a89616d.js +0 -1
  557. package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-7536041a7a89616d.js +0 -1
  558. package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-7536041a7a89616d.js +0 -1
  559. package/.next/static/chunks/app/api/worktrees/[id]/logs/route-7536041a7a89616d.js +0 -1
  560. package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-7536041a7a89616d.js +0 -1
  561. package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-7536041a7a89616d.js +0 -1
  562. package/.next/static/chunks/app/api/worktrees/[id]/memos/route-7536041a7a89616d.js +0 -1
  563. package/.next/static/chunks/app/api/worktrees/[id]/messages/route-7536041a7a89616d.js +0 -1
  564. package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-7536041a7a89616d.js +0 -1
  565. package/.next/static/chunks/app/api/worktrees/[id]/respond/route-7536041a7a89616d.js +0 -1
  566. package/.next/static/chunks/app/api/worktrees/[id]/route-7536041a7a89616d.js +0 -1
  567. package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-7536041a7a89616d.js +0 -1
  568. package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-7536041a7a89616d.js +0 -1
  569. package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-7536041a7a89616d.js +0 -1
  570. package/.next/static/chunks/app/api/worktrees/[id]/search/route-7536041a7a89616d.js +0 -1
  571. package/.next/static/chunks/app/api/worktrees/[id]/send/route-7536041a7a89616d.js +0 -1
  572. package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-7536041a7a89616d.js +0 -1
  573. package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-7536041a7a89616d.js +0 -1
  574. package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-7536041a7a89616d.js +0 -1
  575. package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-7536041a7a89616d.js +0 -1
  576. package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-7536041a7a89616d.js +0 -1
  577. package/.next/static/chunks/app/api/worktrees/[id]/timers/route-7536041a7a89616d.js +0 -1
  578. package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-7536041a7a89616d.js +0 -1
  579. package/.next/static/chunks/app/api/worktrees/[id]/todos/route-7536041a7a89616d.js +0 -1
  580. package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-7536041a7a89616d.js +0 -1
  581. package/.next/static/chunks/app/api/worktrees/[id]/tree/route-7536041a7a89616d.js +0 -1
  582. package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-7536041a7a89616d.js +0 -1
  583. package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-7536041a7a89616d.js +0 -1
  584. package/.next/static/chunks/app/api/worktrees/route-7536041a7a89616d.js +0 -1
  585. package/.next/static/chunks/app/manifest.webmanifest/route-7536041a7a89616d.js +0 -1
  586. package/.next/static/chunks/app/proxy/[...path]/route-7536041a7a89616d.js +0 -1
  587. package/.next/static/chunks/app/worktrees/[id]/page-9a4ce51e697baac6.js +0 -1
  588. package/.next/static/chunks/app/worktrees/[id]/terminal/page-ed4590b024edd8d6.js +0 -1
  589. package/.next/static/chunks/webpack-2e3739a831868daa.js +0 -1
  590. package/.next/static/css/d7e2e8d1b8d69d36.css +0 -1
  591. /package/.next/static/{0_lnKsT0DH-MnHhnV5n-l → D-aoE4gWfuCUN0GqEPIX3}/_ssgManifest.js +0 -0
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * CommandMate compatibility judgement and version resolution (Issue #1231)
4
+ *
5
+ * Pure functions: no filesystem, no network, no process state. The host version
6
+ * is always an explicit argument so UI, API and CLI can evaluate the same
7
+ * Catalog against the same rules and reach the same verdict.
8
+ *
9
+ * Every verdict carries a stable machine code *and* a human-readable message
10
+ * (受入条件: "互換性NGの理由がmachine-readable codeとhuman-readable messageで返る").
11
+ * Messages are built from the code, the declared range and the host version
12
+ * only — never from a path, token or URL.
13
+ *
14
+ * @module lib/skills/compatibility
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.SkillRecommendationReason = exports.UNKNOWN_HOST_VERSION_SENTINEL = exports.SKILL_COMPATIBILITY_MESSAGE_KEYS = exports.SkillCompatibilityReason = void 0;
18
+ exports.normalizeHostVersion = normalizeHostVersion;
19
+ exports.evaluateCommandMateCompatibility = evaluateCommandMateCompatibility;
20
+ exports.evaluateVersionCompatibility = evaluateVersionCompatibility;
21
+ exports.describeAgentCompatibility = describeAgentCompatibility;
22
+ exports.resolveSkillVersions = resolveSkillVersions;
23
+ exports.findSkillCatalogEntry = findSkillCatalogEntry;
24
+ // Sibling modules of the same package are imported directly rather than through
25
+ // the `@/lib/skills` barrel, so adding this module to the barrel later can never
26
+ // introduce an import cycle. External callers still go through the barrel.
27
+ const constants_1 = require("../../lib/skills/constants");
28
+ const semver_1 = require("../../lib/skills/semver");
29
+ /** Stable reason codes for a CommandMate compatibility verdict. */
30
+ exports.SkillCompatibilityReason = {
31
+ /** Host version satisfies the declared range. */
32
+ SATISFIED: 'SKILL_COMPAT_SATISFIED',
33
+ /** Host version is valid but outside the declared range. */
34
+ HOST_VERSION_OUT_OF_RANGE: 'SKILL_COMPAT_HOST_VERSION_OUT_OF_RANGE',
35
+ /** The running CommandMate version could not be determined. */
36
+ HOST_VERSION_UNKNOWN: 'SKILL_COMPAT_HOST_VERSION_UNKNOWN',
37
+ /** The publisher's range is not expressible in the supported grammar. */
38
+ RANGE_UNSUPPORTED: 'SKILL_COMPAT_RANGE_UNSUPPORTED',
39
+ };
40
+ /** i18n keys paired with each reason code, so UI and CLI share one vocabulary. */
41
+ exports.SKILL_COMPATIBILITY_MESSAGE_KEYS = {
42
+ [exports.SkillCompatibilityReason.SATISFIED]: 'skills.compatibility.reason.satisfied',
43
+ [exports.SkillCompatibilityReason.HOST_VERSION_OUT_OF_RANGE]: 'skills.compatibility.reason.hostVersionOutOfRange',
44
+ [exports.SkillCompatibilityReason.HOST_VERSION_UNKNOWN]: 'skills.compatibility.reason.hostVersionUnknown',
45
+ [exports.SkillCompatibilityReason.RANGE_UNSUPPORTED]: 'skills.compatibility.reason.rangeUnsupported',
46
+ };
47
+ // =============================================================================
48
+ // Host version
49
+ // =============================================================================
50
+ /**
51
+ * Sentinel `getServerVersion()` returns when it cannot read a real version.
52
+ *
53
+ * It is syntactically valid SemVer, so without this guard an unreadable
54
+ * package.json would silently produce a confident "incompatible" verdict
55
+ * instead of the honest "unknown".
56
+ */
57
+ exports.UNKNOWN_HOST_VERSION_SENTINEL = '0.0.0';
58
+ /**
59
+ * Normalize a raw CommandMate version into a strict SemVer 2.0 string.
60
+ *
61
+ * @returns The version, or null when it is absent, the unknown sentinel, or not
62
+ * strict SemVer 2.0 (the Skill contract rejects the `v` prefix).
63
+ */
64
+ function normalizeHostVersion(raw) {
65
+ if (typeof raw !== 'string')
66
+ return null;
67
+ const trimmed = raw.trim();
68
+ if (trimmed.length === 0)
69
+ return null;
70
+ if (trimmed === exports.UNKNOWN_HOST_VERSION_SENTINEL)
71
+ return null;
72
+ return (0, semver_1.parseSemVer)(trimmed) === null ? null : trimmed;
73
+ }
74
+ // =============================================================================
75
+ // Compatibility
76
+ // =============================================================================
77
+ function buildMessage(reasonCode, requiredRange, currentVersion) {
78
+ switch (reasonCode) {
79
+ case exports.SkillCompatibilityReason.SATISFIED:
80
+ return `CommandMate ${currentVersion} satisfies the required range "${requiredRange}".`;
81
+ case exports.SkillCompatibilityReason.HOST_VERSION_OUT_OF_RANGE:
82
+ return `This Skill requires CommandMate "${requiredRange}", but CommandMate ${currentVersion} is running.`;
83
+ case exports.SkillCompatibilityReason.HOST_VERSION_UNKNOWN:
84
+ return `The running CommandMate version could not be determined, so compatibility with "${requiredRange}" is unverified.`;
85
+ case exports.SkillCompatibilityReason.RANGE_UNSUPPORTED:
86
+ return `This Skill declares the unsupported CommandMate version range "${requiredRange}", so compatibility is unverified.`;
87
+ }
88
+ }
89
+ function verdict(status, reasonCode, requiredRange, currentVersion) {
90
+ return {
91
+ status,
92
+ reasonCode,
93
+ messageKey: exports.SKILL_COMPATIBILITY_MESSAGE_KEYS[reasonCode],
94
+ message: buildMessage(reasonCode, requiredRange, currentVersion),
95
+ requiredRange,
96
+ currentVersion,
97
+ };
98
+ }
99
+ /**
100
+ * Judge whether the running CommandMate satisfies a declared version range.
101
+ *
102
+ * Fails closed in both directions: an unparsable range and an undeterminable
103
+ * host version both yield `unknown`, never `compatible`.
104
+ *
105
+ * @param requiredRange - Range declared in `compatibility.commandmate`
106
+ * @param currentVersion - Host version, already passed through {@link normalizeHostVersion}
107
+ */
108
+ function evaluateCommandMateCompatibility(requiredRange, currentVersion) {
109
+ const range = typeof requiredRange === 'string' ? requiredRange : '';
110
+ if (!(0, semver_1.isValidSkillVersionRange)(range)) {
111
+ return verdict('unknown', exports.SkillCompatibilityReason.RANGE_UNSUPPORTED, range, currentVersion ?? null);
112
+ }
113
+ if (currentVersion === null) {
114
+ return verdict('unknown', exports.SkillCompatibilityReason.HOST_VERSION_UNKNOWN, range, null);
115
+ }
116
+ if (!(0, semver_1.satisfiesSkillVersionRange)(currentVersion, range)) {
117
+ return verdict('incompatible', exports.SkillCompatibilityReason.HOST_VERSION_OUT_OF_RANGE, range, currentVersion);
118
+ }
119
+ return verdict('compatible', exports.SkillCompatibilityReason.SATISFIED, range, currentVersion);
120
+ }
121
+ /** Judge one Catalog version against the running CommandMate. */
122
+ function evaluateVersionCompatibility(version, currentVersion) {
123
+ return evaluateCommandMateCompatibility(version.compatibility.commandmate, currentVersion);
124
+ }
125
+ /** Attach the shared i18n label key to each Agent support claim. */
126
+ function describeAgentCompatibility(agents) {
127
+ return agents.map((entry) => ({
128
+ agent: entry.agent,
129
+ support: entry.support,
130
+ labelKey: constants_1.AGENT_SUPPORT_LABEL_KEYS[entry.support],
131
+ evidence: entry.evidence,
132
+ }));
133
+ }
134
+ // =============================================================================
135
+ // Version resolution
136
+ // =============================================================================
137
+ /** Why a particular version was recommended, or why none was. */
138
+ exports.SkillRecommendationReason = {
139
+ /** Highest listed version that is compatible with the running CommandMate. */
140
+ HIGHEST_COMPATIBLE: 'SKILL_RECOMMEND_HIGHEST_COMPATIBLE',
141
+ /** Host version is unknown, so the publisher's `latest` is offered unverified. */
142
+ LATEST_UNVERIFIED: 'SKILL_RECOMMEND_LATEST_UNVERIFIED',
143
+ /** Every listed version is incompatible with the running CommandMate. */
144
+ NONE_COMPATIBLE: 'SKILL_RECOMMEND_NONE_COMPATIBLE',
145
+ /** No version survived filtering (e.g. prerelease-only entry without opt-in). */
146
+ NO_VERSIONS: 'SKILL_RECOMMEND_NO_VERSIONS',
147
+ };
148
+ function isPrerelease(version) {
149
+ const parsed = (0, semver_1.parseSemVer)(version);
150
+ return parsed !== null && parsed.prerelease.length > 0;
151
+ }
152
+ /**
153
+ * Sort, filter and pick a default version for one Catalog entry.
154
+ *
155
+ * Prereleases are excluded unless explicitly requested. Versions the Catalog
156
+ * validator already accepted are strict SemVer 2.0, so ordering is total.
157
+ */
158
+ function resolveSkillVersions(entry, options) {
159
+ const { currentVersion, includePrerelease = false } = options;
160
+ const versions = entry.versions
161
+ .map((version) => ({
162
+ version,
163
+ prerelease: isPrerelease(version.version),
164
+ compatibility: evaluateVersionCompatibility(version, currentVersion),
165
+ }))
166
+ .filter((candidate) => includePrerelease || !candidate.prerelease)
167
+ .sort((a, b) => ((0, semver_1.compareSemVer)(b.version.version, a.version.version) ?? 0));
168
+ if (versions.length === 0) {
169
+ return { versions, recommended: null, reasonCode: exports.SkillRecommendationReason.NO_VERSIONS };
170
+ }
171
+ const compatible = versions.find((candidate) => candidate.compatibility.status === 'compatible');
172
+ if (compatible) {
173
+ return {
174
+ versions,
175
+ recommended: compatible,
176
+ reasonCode: exports.SkillRecommendationReason.HIGHEST_COMPATIBLE,
177
+ };
178
+ }
179
+ // Host version unknown: nothing can be *proven* compatible, so the publisher's
180
+ // `latest` is offered with an explicit unverified reason rather than hidden.
181
+ if (currentVersion === null) {
182
+ const latest = versions.find((candidate) => candidate.version.version === entry.latest) ?? versions[0];
183
+ return {
184
+ versions,
185
+ recommended: latest,
186
+ reasonCode: exports.SkillRecommendationReason.LATEST_UNVERIFIED,
187
+ };
188
+ }
189
+ return { versions, recommended: null, reasonCode: exports.SkillRecommendationReason.NONE_COMPATIBLE };
190
+ }
191
+ /** Find one entry by exact Skill ID. Returns null when absent. */
192
+ function findSkillCatalogEntry(catalog, id) {
193
+ return catalog.entries.find((entry) => entry.id === id) ?? null;
194
+ }
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ /**
3
+ * Agent Skills distribution contract constants (Issue #1228)
4
+ *
5
+ * Single source of truth for every limit, pattern and layout rule referenced by
6
+ * docs/design/agent-skills-distribution.md. Downstream issues (#1229 catalog,
7
+ * #1231 install, #1234 audit) must import from here rather than re-deriving
8
+ * values, so a contract change is a one-line change.
9
+ *
10
+ * @module lib/skills/constants
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.PERMISSION_DECLARATION_NOTICE_KEY = exports.HTTPS_URL_PREFIX = exports.NETWORK_HOST_PATTERN = exports.COMMAND_NAME_PATTERN = exports.SPDX_LICENSE_PATTERN = exports.RFC3339_UTC_PATTERN = exports.GIT_REF_PATTERN = exports.REPOSITORY_SLUG_PATTERN = exports.GIT_COMMIT_SHA_PATTERN = exports.SHA256_HEX_PATTERN = exports.SKILL_FILE_KINDS = exports.SKILL_DECLARED_PERMISSIONS = exports.SKILL_RISK_ORDER = exports.SKILL_RISK_LEVELS = exports.SKILL_AGENT_SUPPORT_VALUES = exports.SKILL_YAML_SAFE_PROFILE = exports.SKILL_CATALOG_VERSIONS_MAX_COUNT = exports.SKILL_CATALOG_ENTRIES_MAX_COUNT = exports.SKILL_NETWORK_HOSTS_MAX_COUNT = exports.SKILL_COMMANDS_MAX_COUNT = exports.SKILL_RATIONALE_MAX_LENGTH = exports.SKILL_EVIDENCE_MAX_LENGTH = exports.SKILL_CHANGELOG_MAX_LENGTH = exports.SKILL_KEYWORD_MAX_LENGTH = exports.SKILL_KEYWORDS_MAX_COUNT = exports.SKILL_BULLET_MAX_COUNT = exports.SKILL_BULLET_MAX_LENGTH = exports.SKILL_DESCRIPTION_MAX_LENGTH = exports.SKILL_SUMMARY_MAX_LENGTH = exports.SKILL_NAME_MAX_LENGTH = exports.SKILL_PATH_MAX_LENGTH = exports.SKILL_PATH_MAX_DEPTH = exports.SKILL_PATH_SEGMENT_MAX_LENGTH = exports.SKILL_FILES_MAX_COUNT = exports.SKILL_FILE_MAX_SIZE = exports.SKILL_ARTIFACT_MAX_SIZE = exports.SKILL_ARTIFACT_CONTENT_TYPE = exports.SKILL_ARTIFACT_FORMAT = exports.REQUIRED_PACKAGE_ENTRIES = exports.SKILL_STAGING_DIRNAME = exports.SKILL_MD_FILENAME = exports.SKILL_MANIFEST_FILENAME = exports.SKILL_PRIMARY_INSTALL_ROOT_PREFIX = exports.SKILL_INSTALL_ROOT_PREFIXES = exports.SKILL_CLAUDE_INSTALL_ROOT_PREFIX = exports.SKILL_INSTALL_ROOT_PREFIX = exports.RESERVED_SKILL_IDS = exports.SKILL_ID_MAX_LENGTH = exports.SKILL_ID_PATTERN = exports.SKILL_SCHEMA_VERSION = void 0;
14
+ exports.AGENT_SUPPORT_LABEL_KEYS = void 0;
15
+ exports.isKnownSkillInstallRootPrefix = isKnownSkillInstallRootPrefix;
16
+ exports.buildSkillAssetName = buildSkillAssetName;
17
+ // =============================================================================
18
+ // Schema version
19
+ // =============================================================================
20
+ /** The only schema version this build understands. Anything else fails closed. */
21
+ exports.SKILL_SCHEMA_VERSION = 1;
22
+ // =============================================================================
23
+ // Skill ID
24
+ // =============================================================================
25
+ /**
26
+ * Skill ID grammar: ASCII lowercase slug.
27
+ *
28
+ * Anchored and ASCII-only by construction, so uppercase, Unicode homoglyphs,
29
+ * leading/trailing hyphens and dot-prefixed names are all rejected here rather
30
+ * than by a later, easier-to-forget check.
31
+ */
32
+ exports.SKILL_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
33
+ /** Maximum Skill ID length in characters. */
34
+ exports.SKILL_ID_MAX_LENGTH = 64;
35
+ /**
36
+ * IDs that may never be used as a Skill directory name.
37
+ *
38
+ * Covers Windows reserved device names (which resolve to devices regardless of
39
+ * the directory they appear in) and names CommandMate claims for itself.
40
+ */
41
+ exports.RESERVED_SKILL_IDS = [
42
+ 'commandmate',
43
+ 'system',
44
+ 'con',
45
+ 'prn',
46
+ 'aux',
47
+ 'nul',
48
+ 'com1',
49
+ 'com2',
50
+ 'com3',
51
+ 'com4',
52
+ 'com5',
53
+ 'com6',
54
+ 'com7',
55
+ 'com8',
56
+ 'com9',
57
+ 'lpt1',
58
+ 'lpt2',
59
+ 'lpt3',
60
+ 'lpt4',
61
+ 'lpt5',
62
+ 'lpt6',
63
+ 'lpt7',
64
+ 'lpt8',
65
+ 'lpt9',
66
+ ];
67
+ // =============================================================================
68
+ // Layout
69
+ // =============================================================================
70
+ /** Skill payload root inside a worktree, resolved from a registered worktree ID. */
71
+ exports.SKILL_INSTALL_ROOT_PREFIX = '.agents/skills';
72
+ /**
73
+ * Claude Code Skill discovery root inside a worktree (Issue #1460).
74
+ *
75
+ * The counterpart of {@link SKILL_INSTALL_ROOT_PREFIX}: Claude reads
76
+ * `.claude/skills/<id>/SKILL.md` (#343) where Codex reads `.agents/skills`
77
+ * (#1165). Placing a package into both makes the same install discoverable by
78
+ * both Agents.
79
+ */
80
+ exports.SKILL_CLAUDE_INSTALL_ROOT_PREFIX = '.claude/skills';
81
+ /**
82
+ * Ordered set of roots an official Skill is placed into by default (#1460).
83
+ *
84
+ * Order is significant. `.agents/skills` is first and is the *primary* root: it
85
+ * remains the single atomic-rename commit point and the backward-compatible
86
+ * anchor every legacy single-root receipt names. `.claude/skills` is a
87
+ * *secondary* root, converged forward from the primary by reconciliation if a
88
+ * crash lands only one of the two renames. Adding an Agent (Gemini, OpenCode …)
89
+ * is a one-line addition here.
90
+ */
91
+ exports.SKILL_INSTALL_ROOT_PREFIXES = [
92
+ exports.SKILL_INSTALL_ROOT_PREFIX,
93
+ exports.SKILL_CLAUDE_INSTALL_ROOT_PREFIX,
94
+ ];
95
+ /** The primary root that stays the commit point and the receipt's `install_root`. */
96
+ exports.SKILL_PRIMARY_INSTALL_ROOT_PREFIX = exports.SKILL_INSTALL_ROOT_PREFIX;
97
+ /** Whether a repository-relative root prefix is one CommandMate installs into. */
98
+ function isKnownSkillInstallRootPrefix(prefix) {
99
+ return exports.SKILL_INSTALL_ROOT_PREFIXES.includes(prefix);
100
+ }
101
+ /** Manifest filename, placed at the Skill root next to SKILL.md. */
102
+ exports.SKILL_MANIFEST_FILENAME = 'commandmate.skill.yaml';
103
+ /** Standard Agent Skills authoring file, required in every package. */
104
+ exports.SKILL_MD_FILENAME = 'SKILL.md';
105
+ /**
106
+ * Reserved private namespace for install-commit staging.
107
+ *
108
+ * Lives under the target `.agents/skills` so the atomic rename stays on one
109
+ * filesystem. Excluded from Skill discovery because the leading dot is outside
110
+ * {@link SKILL_ID_PATTERN}.
111
+ */
112
+ exports.SKILL_STAGING_DIRNAME = '.commandmate-staging';
113
+ /** Entries every valid package must contain, relative to the archive root directory. */
114
+ exports.REQUIRED_PACKAGE_ENTRIES = [
115
+ exports.SKILL_MD_FILENAME,
116
+ exports.SKILL_MANIFEST_FILENAME,
117
+ ];
118
+ // =============================================================================
119
+ // Artifact
120
+ // =============================================================================
121
+ /** The only artifact format accepted in schema_version 1. */
122
+ exports.SKILL_ARTIFACT_FORMAT = 'tar.gz';
123
+ /** Required Content-Type of a release asset. */
124
+ exports.SKILL_ARTIFACT_CONTENT_TYPE = 'application/gzip';
125
+ /** Maximum artifact size in bytes (16 MiB). */
126
+ exports.SKILL_ARTIFACT_MAX_SIZE = 16 * 1024 * 1024;
127
+ /** Maximum size of a single payload file in bytes (4 MiB). */
128
+ exports.SKILL_FILE_MAX_SIZE = 4 * 1024 * 1024;
129
+ /** Maximum number of payload files declared in a manifest. */
130
+ exports.SKILL_FILES_MAX_COUNT = 500;
131
+ /** Build the required release asset name for a version. */
132
+ function buildSkillAssetName(skillId, version) {
133
+ return `${skillId}-${version}.tar.gz`;
134
+ }
135
+ // =============================================================================
136
+ // Payload paths
137
+ // =============================================================================
138
+ /** Maximum length of a single path segment. */
139
+ exports.SKILL_PATH_SEGMENT_MAX_LENGTH = 100;
140
+ /** Maximum number of path segments in a payload path. */
141
+ exports.SKILL_PATH_MAX_DEPTH = 8;
142
+ /** Maximum total length of a payload path. */
143
+ exports.SKILL_PATH_MAX_LENGTH = 255;
144
+ // =============================================================================
145
+ // Text limits
146
+ // =============================================================================
147
+ exports.SKILL_NAME_MAX_LENGTH = 100;
148
+ exports.SKILL_SUMMARY_MAX_LENGTH = 200;
149
+ exports.SKILL_DESCRIPTION_MAX_LENGTH = 2000;
150
+ exports.SKILL_BULLET_MAX_LENGTH = 200;
151
+ exports.SKILL_BULLET_MAX_COUNT = 10;
152
+ exports.SKILL_KEYWORDS_MAX_COUNT = 20;
153
+ exports.SKILL_KEYWORD_MAX_LENGTH = 40;
154
+ exports.SKILL_CHANGELOG_MAX_LENGTH = 4000;
155
+ exports.SKILL_EVIDENCE_MAX_LENGTH = 300;
156
+ exports.SKILL_RATIONALE_MAX_LENGTH = 500;
157
+ exports.SKILL_COMMANDS_MAX_COUNT = 20;
158
+ exports.SKILL_NETWORK_HOSTS_MAX_COUNT = 20;
159
+ exports.SKILL_CATALOG_ENTRIES_MAX_COUNT = 500;
160
+ exports.SKILL_CATALOG_VERSIONS_MAX_COUNT = 100;
161
+ // =============================================================================
162
+ // Safe YAML parse profile
163
+ // =============================================================================
164
+ /**
165
+ * Limits any manifest YAML parser must enforce.
166
+ *
167
+ * The contract (not the parser) lives here: #1229/#1231 pick an implementation
168
+ * but must reject aliases, anchors, merge keys, custom tags, duplicate keys and
169
+ * prototype-polluting keys, and must apply these bounds.
170
+ */
171
+ exports.SKILL_YAML_SAFE_PROFILE = {
172
+ maxBytes: 64 * 1024,
173
+ maxDepth: 16,
174
+ maxNodes: 5000,
175
+ maxScalarLength: 8192,
176
+ allowAliases: false,
177
+ allowCustomTags: false,
178
+ allowDuplicateKeys: false,
179
+ /** Keys rejected outright to prevent prototype pollution through parsed objects. */
180
+ forbiddenKeys: ['__proto__', 'constructor', 'prototype'],
181
+ };
182
+ // =============================================================================
183
+ // Enumerations
184
+ // =============================================================================
185
+ exports.SKILL_AGENT_SUPPORT_VALUES = [
186
+ 'native',
187
+ 'commandmate_runtime',
188
+ 'unsupported',
189
+ 'unknown',
190
+ ];
191
+ exports.SKILL_RISK_LEVELS = ['low', 'moderate', 'high'];
192
+ /** Ordering used to resolve the effective risk. Higher index wins. */
193
+ exports.SKILL_RISK_ORDER = {
194
+ low: 0,
195
+ moderate: 1,
196
+ high: 2,
197
+ };
198
+ exports.SKILL_DECLARED_PERMISSIONS = [
199
+ 'filesystem_read',
200
+ 'filesystem_write',
201
+ 'network_access',
202
+ 'process_execution',
203
+ 'environment_read',
204
+ 'credential_access',
205
+ ];
206
+ exports.SKILL_FILE_KINDS = [
207
+ 'skill_md',
208
+ 'instruction',
209
+ 'script',
210
+ 'asset',
211
+ ];
212
+ // =============================================================================
213
+ // Formats
214
+ // =============================================================================
215
+ /** Lowercase hex SHA-256. Uppercase is rejected so digests compare byte-wise. */
216
+ exports.SHA256_HEX_PATTERN = /^[0-9a-f]{64}$/;
217
+ /** Resolved git commit SHA-1, full 40 hex digits. Abbreviations are rejected. */
218
+ exports.GIT_COMMIT_SHA_PATTERN = /^[0-9a-f]{40}$/;
219
+ /** `owner/name` source repository coordinate. */
220
+ exports.REPOSITORY_SLUG_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._-]*\/[A-Za-z0-9][A-Za-z0-9._-]*$/;
221
+ /** Human-facing git ref (tag or branch). `..` is rejected separately. */
222
+ exports.GIT_REF_PATTERN = /^[A-Za-z0-9][A-Za-z0-9._/-]{0,99}$/;
223
+ /** RFC 3339 UTC instant, `Z` suffix only, so published_at compares lexicographically. */
224
+ exports.RFC3339_UTC_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;
225
+ /** SPDX license identifier shape (expressions are out of scope for schema_version 1). */
226
+ exports.SPDX_LICENSE_PATTERN = /^[A-Za-z0-9][A-Za-z0-9.+-]{0,63}$/;
227
+ /** External command name a Skill may require. */
228
+ exports.COMMAND_NAME_PATTERN = /^[a-zA-Z0-9][a-zA-Z0-9._-]{0,63}$/;
229
+ /** Network host: DNS hostname, optionally a leading `*.` wildcard label. */
230
+ exports.NETWORK_HOST_PATTERN = /^(?:\*\.)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/;
231
+ /** Artifact and homepage URLs must be HTTPS. */
232
+ exports.HTTPS_URL_PREFIX = 'https://';
233
+ // =============================================================================
234
+ // UI vocabulary
235
+ // =============================================================================
236
+ /**
237
+ * Wording that must accompany any permission display.
238
+ *
239
+ * Prevents the declaration from being read as enforcement (see the ADR's
240
+ * "declaration is not enforcement" decision).
241
+ */
242
+ exports.PERMISSION_DECLARATION_NOTICE_KEY = 'skills.permissions.declarationOnlyNotice';
243
+ /**
244
+ * Labels for {@link SkillAgentSupport}, so UI and CLI use one vocabulary (UX-05).
245
+ * Values are i18n message keys, not user-visible strings.
246
+ */
247
+ exports.AGENT_SUPPORT_LABEL_KEYS = {
248
+ native: 'skills.compatibility.native',
249
+ commandmate_runtime: 'skills.compatibility.commandmateRuntime',
250
+ unsupported: 'skills.compatibility.unsupported',
251
+ unknown: 'skills.compatibility.unknown',
252
+ };
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ /**
3
+ * Typed errors for the Agent Skills distribution contract (Issue #1228)
4
+ *
5
+ * Every rejection carries a stable machine code plus a JSON-Pointer-like path,
6
+ * so callers can branch on the reason and localize the message without parsing
7
+ * prose. Messages are built from the code and the document path only: they
8
+ * never embed a token, signed URL, secret or machine-absolute path.
9
+ *
10
+ * @module lib/skills/errors
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.SkillContractErrorCode = void 0;
14
+ exports.skillError = skillError;
15
+ exports.skillOk = skillOk;
16
+ exports.skillFail = skillFail;
17
+ exports.joinPath = joinPath;
18
+ /** Stable, client-safe reason codes for contract validation failures. */
19
+ exports.SkillContractErrorCode = {
20
+ /** Document is not a plain object. */
21
+ NOT_AN_OBJECT: 'SKILL_NOT_AN_OBJECT',
22
+ /** `schema_version` is missing, malformed, or newer than this build supports. */
23
+ SCHEMA_VERSION_UNSUPPORTED: 'SKILL_SCHEMA_VERSION_UNSUPPORTED',
24
+ /** A required field is absent. */
25
+ MISSING_FIELD: 'SKILL_MISSING_FIELD',
26
+ /** A field exists but has the wrong JSON type. */
27
+ INVALID_TYPE: 'SKILL_INVALID_TYPE',
28
+ /** A field carries a value outside its enumeration. */
29
+ INVALID_ENUM: 'SKILL_INVALID_ENUM',
30
+ /** A field is syntactically wrong (pattern mismatch). */
31
+ INVALID_FORMAT: 'SKILL_INVALID_FORMAT',
32
+ /** A numeric or length bound was exceeded. */
33
+ LIMIT_EXCEEDED: 'SKILL_LIMIT_EXCEEDED',
34
+ /** An unspecified field is present; schema_version 1 is closed. */
35
+ UNKNOWN_FIELD: 'SKILL_UNKNOWN_FIELD',
36
+ /** Skill ID does not match the slug grammar. */
37
+ ID_INVALID: 'SKILL_ID_INVALID',
38
+ /** Skill ID is reserved by CommandMate or by the host filesystem. */
39
+ ID_RESERVED: 'SKILL_ID_RESERVED',
40
+ /** Skill ID collides with an existing name under case/Unicode folding. */
41
+ ID_COLLISION: 'SKILL_ID_COLLISION',
42
+ /** Directory name, SKILL.md name and manifest id disagree. */
43
+ ID_MISMATCH: 'SKILL_ID_MISMATCH',
44
+ /** Version is not valid SemVer 2.0. */
45
+ VERSION_INVALID: 'SKILL_VERSION_INVALID',
46
+ /** Version range is not expressible in the supported range grammar. */
47
+ VERSION_RANGE_INVALID: 'SKILL_VERSION_RANGE_INVALID',
48
+ /** Digest is not lowercase hex SHA-256. */
49
+ DIGEST_INVALID: 'SKILL_DIGEST_INVALID',
50
+ /** Payload path escapes the Skill root or is otherwise unsafe. */
51
+ FILE_PATH_UNSAFE: 'SKILL_FILE_PATH_UNSAFE',
52
+ /** Two entries declare the same payload path (possibly after folding). */
53
+ FILE_PATH_DUPLICATE: 'SKILL_FILE_PATH_DUPLICATE',
54
+ /** Declared file set does not match the package's payload file set. */
55
+ FILE_SET_MISMATCH: 'SKILL_FILE_SET_MISMATCH',
56
+ /** Artifact name, format or Content-Type violates the packaging rule. */
57
+ ARTIFACT_INVALID: 'SKILL_ARTIFACT_INVALID',
58
+ /** Source ref is present but the resolved commit SHA is missing or malformed. */
59
+ SOURCE_COMMIT_INVALID: 'SKILL_SOURCE_COMMIT_INVALID',
60
+ /** Catalog `latest` does not resolve to a listed version. */
61
+ CATALOG_LATEST_UNRESOLVED: 'SKILL_CATALOG_LATEST_UNRESOLVED',
62
+ /** The same identity is declared twice within one document. */
63
+ DUPLICATE_ENTRY: 'SKILL_DUPLICATE_ENTRY',
64
+ /** Two fields that must agree do not. */
65
+ INCONSISTENT_VALUE: 'SKILL_INCONSISTENT_VALUE',
66
+ };
67
+ /** Build a validation failure. */
68
+ function skillError(code, path, message, detail) {
69
+ return detail ? { code, path, message, detail } : { code, path, message };
70
+ }
71
+ /** Wrap a validated document as a success result. */
72
+ function skillOk(value) {
73
+ return { ok: true, value, errors: [] };
74
+ }
75
+ /** Wrap one or more failures as a failure result. */
76
+ function skillFail(errors) {
77
+ return { ok: false, value: null, errors };
78
+ }
79
+ /** Append a segment to a JSON-Pointer-like path. */
80
+ function joinPath(base, segment) {
81
+ return `${base}/${segment}`;
82
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ /**
3
+ * Public API of the Agent Skills distribution contract (Issue #1228)
4
+ *
5
+ * This barrel is the *contract* surface only: schema, types, constants, error
6
+ * codes, and SemVer. It is isomorphic — it pulls in no Node builtin — so client
7
+ * components can import from it safely.
8
+ *
9
+ * Deliberately NOT re-exported here (import the concrete module instead):
10
+ *
11
+ * | module | why it stays out of the barrel |
12
+ * | --- | --- |
13
+ * | `artifact-downloader`, `snapshot-store`, `integrity` (#1229) | `fs` / `crypto`, transitively `version-checker` (`fs`, `path`) |
14
+ * | `package-reader`, `package-validator` (#1230) | `zlib` / `fs` |
15
+ * | `operation-lock`, `operation-journal`, `operation-store`, `operation-audit`, `operation-reconciler` (#1234) | `fs` / `os`, service-owned state root |
16
+ * | `catalog-client`, `compatibility` (#1231) | server-side cache ownership; `compatibility` is pure but is paired with the client |
17
+ * | `safe-yaml` (#1230) | pure, but only meaningful together with `package-reader` |
18
+ *
19
+ * Re-exporting those would drag `fs` / `zlib` into any consumer of
20
+ * `@/lib/skills`, including the `use client` components under
21
+ * `src/components/skills/`. Keep server-only modules concrete:
22
+ * `import { … } from '../../lib/skills/snapshot-store'`.
23
+ *
24
+ * @module lib/skills
25
+ */
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.validateSkillCatalog = exports.validateManifestFileSet = exports.resolveEffectiveSkillRisk = exports.foldSkillIdForCollision = exports.detectSkillIdCollision = exports.computeSkillRisk = exports.canonicalizeSkillReceipt = exports.SKILL_OPTIONAL_FIELDS = exports.SKILL_DOCUMENT_FIELDS = exports.satisfiesSkillVersionRange = exports.parseSkillVersionRange = exports.parseSemVer = exports.isValidSkillVersionRange = exports.isValidSemVer = exports.compareSemVer = exports.compareParsedSemVer = exports.SEMVER_2_PATTERN = exports.skillOk = exports.skillFail = exports.skillError = exports.joinSkillErrorPath = exports.SkillContractErrorCode = exports.buildSkillAssetName = exports.REQUIRED_PACKAGE_ENTRIES = exports.SKILL_YAML_SAFE_PROFILE = exports.SKILL_STAGING_DIRNAME = exports.SKILL_SCHEMA_VERSION = exports.SKILL_RISK_ORDER = exports.SKILL_RISK_LEVELS = exports.SKILL_MD_FILENAME = exports.SKILL_MANIFEST_FILENAME = exports.SKILL_INSTALL_ROOT_PREFIX = exports.SKILL_ID_PATTERN = exports.SKILL_ID_MAX_LENGTH = exports.SKILL_FILES_MAX_COUNT = exports.SKILL_FILE_MAX_SIZE = exports.SKILL_FILE_KINDS = exports.SKILL_DECLARED_PERMISSIONS = exports.SKILL_ARTIFACT_MAX_SIZE = exports.SKILL_ARTIFACT_FORMAT = exports.SKILL_ARTIFACT_CONTENT_TYPE = exports.SKILL_AGENT_SUPPORT_VALUES = exports.SHA256_HEX_PATTERN = exports.RFC3339_UTC_PATTERN = exports.RESERVED_SKILL_IDS = exports.REPOSITORY_SLUG_PATTERN = exports.PERMISSION_DECLARATION_NOTICE_KEY = exports.GIT_REF_PATTERN = exports.GIT_COMMIT_SHA_PATTERN = exports.AGENT_SUPPORT_LABEL_KEYS = void 0;
28
+ exports.SKILL_RECEIPT_JSON_SCHEMA = exports.SKILL_MANIFEST_JSON_SCHEMA = exports.SKILL_CATALOG_JSON_SCHEMA = exports.validateSkillPayloadPath = exports.validateSkillManifest = exports.validateSkillInstallReceipt = exports.validateSkillIdentityConsistency = exports.validateSkillId = void 0;
29
+ var constants_1 = require("../../lib/skills/constants");
30
+ Object.defineProperty(exports, "AGENT_SUPPORT_LABEL_KEYS", { enumerable: true, get: function () { return constants_1.AGENT_SUPPORT_LABEL_KEYS; } });
31
+ Object.defineProperty(exports, "GIT_COMMIT_SHA_PATTERN", { enumerable: true, get: function () { return constants_1.GIT_COMMIT_SHA_PATTERN; } });
32
+ Object.defineProperty(exports, "GIT_REF_PATTERN", { enumerable: true, get: function () { return constants_1.GIT_REF_PATTERN; } });
33
+ Object.defineProperty(exports, "PERMISSION_DECLARATION_NOTICE_KEY", { enumerable: true, get: function () { return constants_1.PERMISSION_DECLARATION_NOTICE_KEY; } });
34
+ Object.defineProperty(exports, "REPOSITORY_SLUG_PATTERN", { enumerable: true, get: function () { return constants_1.REPOSITORY_SLUG_PATTERN; } });
35
+ Object.defineProperty(exports, "RESERVED_SKILL_IDS", { enumerable: true, get: function () { return constants_1.RESERVED_SKILL_IDS; } });
36
+ Object.defineProperty(exports, "RFC3339_UTC_PATTERN", { enumerable: true, get: function () { return constants_1.RFC3339_UTC_PATTERN; } });
37
+ Object.defineProperty(exports, "SHA256_HEX_PATTERN", { enumerable: true, get: function () { return constants_1.SHA256_HEX_PATTERN; } });
38
+ Object.defineProperty(exports, "SKILL_AGENT_SUPPORT_VALUES", { enumerable: true, get: function () { return constants_1.SKILL_AGENT_SUPPORT_VALUES; } });
39
+ Object.defineProperty(exports, "SKILL_ARTIFACT_CONTENT_TYPE", { enumerable: true, get: function () { return constants_1.SKILL_ARTIFACT_CONTENT_TYPE; } });
40
+ Object.defineProperty(exports, "SKILL_ARTIFACT_FORMAT", { enumerable: true, get: function () { return constants_1.SKILL_ARTIFACT_FORMAT; } });
41
+ Object.defineProperty(exports, "SKILL_ARTIFACT_MAX_SIZE", { enumerable: true, get: function () { return constants_1.SKILL_ARTIFACT_MAX_SIZE; } });
42
+ Object.defineProperty(exports, "SKILL_DECLARED_PERMISSIONS", { enumerable: true, get: function () { return constants_1.SKILL_DECLARED_PERMISSIONS; } });
43
+ Object.defineProperty(exports, "SKILL_FILE_KINDS", { enumerable: true, get: function () { return constants_1.SKILL_FILE_KINDS; } });
44
+ Object.defineProperty(exports, "SKILL_FILE_MAX_SIZE", { enumerable: true, get: function () { return constants_1.SKILL_FILE_MAX_SIZE; } });
45
+ Object.defineProperty(exports, "SKILL_FILES_MAX_COUNT", { enumerable: true, get: function () { return constants_1.SKILL_FILES_MAX_COUNT; } });
46
+ Object.defineProperty(exports, "SKILL_ID_MAX_LENGTH", { enumerable: true, get: function () { return constants_1.SKILL_ID_MAX_LENGTH; } });
47
+ Object.defineProperty(exports, "SKILL_ID_PATTERN", { enumerable: true, get: function () { return constants_1.SKILL_ID_PATTERN; } });
48
+ Object.defineProperty(exports, "SKILL_INSTALL_ROOT_PREFIX", { enumerable: true, get: function () { return constants_1.SKILL_INSTALL_ROOT_PREFIX; } });
49
+ Object.defineProperty(exports, "SKILL_MANIFEST_FILENAME", { enumerable: true, get: function () { return constants_1.SKILL_MANIFEST_FILENAME; } });
50
+ Object.defineProperty(exports, "SKILL_MD_FILENAME", { enumerable: true, get: function () { return constants_1.SKILL_MD_FILENAME; } });
51
+ Object.defineProperty(exports, "SKILL_RISK_LEVELS", { enumerable: true, get: function () { return constants_1.SKILL_RISK_LEVELS; } });
52
+ Object.defineProperty(exports, "SKILL_RISK_ORDER", { enumerable: true, get: function () { return constants_1.SKILL_RISK_ORDER; } });
53
+ Object.defineProperty(exports, "SKILL_SCHEMA_VERSION", { enumerable: true, get: function () { return constants_1.SKILL_SCHEMA_VERSION; } });
54
+ Object.defineProperty(exports, "SKILL_STAGING_DIRNAME", { enumerable: true, get: function () { return constants_1.SKILL_STAGING_DIRNAME; } });
55
+ Object.defineProperty(exports, "SKILL_YAML_SAFE_PROFILE", { enumerable: true, get: function () { return constants_1.SKILL_YAML_SAFE_PROFILE; } });
56
+ Object.defineProperty(exports, "REQUIRED_PACKAGE_ENTRIES", { enumerable: true, get: function () { return constants_1.REQUIRED_PACKAGE_ENTRIES; } });
57
+ Object.defineProperty(exports, "buildSkillAssetName", { enumerable: true, get: function () { return constants_1.buildSkillAssetName; } });
58
+ var errors_1 = require("../../lib/skills/errors");
59
+ Object.defineProperty(exports, "SkillContractErrorCode", { enumerable: true, get: function () { return errors_1.SkillContractErrorCode; } });
60
+ Object.defineProperty(exports, "joinSkillErrorPath", { enumerable: true, get: function () { return errors_1.joinPath; } });
61
+ Object.defineProperty(exports, "skillError", { enumerable: true, get: function () { return errors_1.skillError; } });
62
+ Object.defineProperty(exports, "skillFail", { enumerable: true, get: function () { return errors_1.skillFail; } });
63
+ Object.defineProperty(exports, "skillOk", { enumerable: true, get: function () { return errors_1.skillOk; } });
64
+ var semver_1 = require("../../lib/skills/semver");
65
+ Object.defineProperty(exports, "SEMVER_2_PATTERN", { enumerable: true, get: function () { return semver_1.SEMVER_2_PATTERN; } });
66
+ Object.defineProperty(exports, "compareParsedSemVer", { enumerable: true, get: function () { return semver_1.compareParsedSemVer; } });
67
+ Object.defineProperty(exports, "compareSemVer", { enumerable: true, get: function () { return semver_1.compareSemVer; } });
68
+ Object.defineProperty(exports, "isValidSemVer", { enumerable: true, get: function () { return semver_1.isValidSemVer; } });
69
+ Object.defineProperty(exports, "isValidSkillVersionRange", { enumerable: true, get: function () { return semver_1.isValidSkillVersionRange; } });
70
+ Object.defineProperty(exports, "parseSemVer", { enumerable: true, get: function () { return semver_1.parseSemVer; } });
71
+ Object.defineProperty(exports, "parseSkillVersionRange", { enumerable: true, get: function () { return semver_1.parseSkillVersionRange; } });
72
+ Object.defineProperty(exports, "satisfiesSkillVersionRange", { enumerable: true, get: function () { return semver_1.satisfiesSkillVersionRange; } });
73
+ var schema_1 = require("../../lib/skills/schema");
74
+ Object.defineProperty(exports, "SKILL_DOCUMENT_FIELDS", { enumerable: true, get: function () { return schema_1.SKILL_DOCUMENT_FIELDS; } });
75
+ Object.defineProperty(exports, "SKILL_OPTIONAL_FIELDS", { enumerable: true, get: function () { return schema_1.SKILL_OPTIONAL_FIELDS; } });
76
+ Object.defineProperty(exports, "canonicalizeSkillReceipt", { enumerable: true, get: function () { return schema_1.canonicalizeSkillReceipt; } });
77
+ Object.defineProperty(exports, "computeSkillRisk", { enumerable: true, get: function () { return schema_1.computeSkillRisk; } });
78
+ Object.defineProperty(exports, "detectSkillIdCollision", { enumerable: true, get: function () { return schema_1.detectSkillIdCollision; } });
79
+ Object.defineProperty(exports, "foldSkillIdForCollision", { enumerable: true, get: function () { return schema_1.foldSkillIdForCollision; } });
80
+ Object.defineProperty(exports, "resolveEffectiveSkillRisk", { enumerable: true, get: function () { return schema_1.resolveEffectiveSkillRisk; } });
81
+ Object.defineProperty(exports, "validateManifestFileSet", { enumerable: true, get: function () { return schema_1.validateManifestFileSet; } });
82
+ Object.defineProperty(exports, "validateSkillCatalog", { enumerable: true, get: function () { return schema_1.validateSkillCatalog; } });
83
+ Object.defineProperty(exports, "validateSkillId", { enumerable: true, get: function () { return schema_1.validateSkillId; } });
84
+ Object.defineProperty(exports, "validateSkillIdentityConsistency", { enumerable: true, get: function () { return schema_1.validateSkillIdentityConsistency; } });
85
+ Object.defineProperty(exports, "validateSkillInstallReceipt", { enumerable: true, get: function () { return schema_1.validateSkillInstallReceipt; } });
86
+ Object.defineProperty(exports, "validateSkillManifest", { enumerable: true, get: function () { return schema_1.validateSkillManifest; } });
87
+ Object.defineProperty(exports, "validateSkillPayloadPath", { enumerable: true, get: function () { return schema_1.validateSkillPayloadPath; } });
88
+ var json_schema_1 = require("../../lib/skills/json-schema");
89
+ Object.defineProperty(exports, "SKILL_CATALOG_JSON_SCHEMA", { enumerable: true, get: function () { return json_schema_1.SKILL_CATALOG_JSON_SCHEMA; } });
90
+ Object.defineProperty(exports, "SKILL_MANIFEST_JSON_SCHEMA", { enumerable: true, get: function () { return json_schema_1.SKILL_MANIFEST_JSON_SCHEMA; } });
91
+ Object.defineProperty(exports, "SKILL_RECEIPT_JSON_SCHEMA", { enumerable: true, get: function () { return json_schema_1.SKILL_RECEIPT_JSON_SCHEMA; } });