@axm.sh/cli 0.0.7 → 0.0.8

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 (401) hide show
  1. package/dist/src/agents/detection.d.ts +3 -16
  2. package/dist/src/agents/detection.d.ts.map +1 -1
  3. package/dist/src/agents/detection.js +4 -13
  4. package/dist/src/agents/detection.js.map +1 -1
  5. package/dist/src/agents/index.d.ts +1 -1
  6. package/dist/src/agents/index.d.ts.map +1 -1
  7. package/dist/src/agents/index.js +1 -1
  8. package/dist/src/agents/index.js.map +1 -1
  9. package/dist/src/cli-commands/init/handler.d.ts +1 -1
  10. package/dist/src/cli-commands/init/handler.d.ts.map +1 -1
  11. package/dist/src/cli-commands/init/handler.js +1 -1
  12. package/dist/src/cli-commands/init/handler.js.map +1 -1
  13. package/dist/src/cli-commands/skills/command.d.ts.map +1 -1
  14. package/dist/src/cli-commands/skills/command.js +6 -0
  15. package/dist/src/cli-commands/skills/command.js.map +1 -1
  16. package/dist/src/cli-commands/skills/constants.d.ts +9 -0
  17. package/dist/src/cli-commands/skills/constants.d.ts.map +1 -0
  18. package/dist/src/cli-commands/skills/constants.js +9 -0
  19. package/dist/src/cli-commands/skills/constants.js.map +1 -0
  20. package/dist/src/cli-commands/skills/copy-skill.d.ts +1 -1
  21. package/dist/src/cli-commands/skills/copy-skill.d.ts.map +1 -1
  22. package/dist/src/cli-commands/skills/copy-skill.js +11 -24
  23. package/dist/src/cli-commands/skills/copy-skill.js.map +1 -1
  24. package/dist/src/cli-commands/skills/disable/command.d.ts +15 -0
  25. package/dist/src/cli-commands/skills/disable/command.d.ts.map +1 -0
  26. package/dist/src/cli-commands/skills/disable/command.js +56 -0
  27. package/dist/src/cli-commands/skills/disable/command.js.map +1 -0
  28. package/dist/src/cli-commands/skills/disable/disable-skill.d.ts +25 -0
  29. package/dist/src/cli-commands/skills/disable/disable-skill.d.ts.map +1 -0
  30. package/dist/src/cli-commands/skills/disable/disable-skill.js +101 -0
  31. package/dist/src/cli-commands/skills/disable/disable-skill.js.map +1 -0
  32. package/dist/src/cli-commands/skills/disable/handler.d.ts +18 -0
  33. package/dist/src/cli-commands/skills/disable/handler.d.ts.map +1 -0
  34. package/dist/src/cli-commands/skills/disable/handler.js +72 -0
  35. package/dist/src/cli-commands/skills/disable/handler.js.map +1 -0
  36. package/dist/src/cli-commands/skills/enable/command.d.ts +15 -0
  37. package/dist/src/cli-commands/skills/enable/command.d.ts.map +1 -0
  38. package/dist/src/cli-commands/skills/enable/command.js +56 -0
  39. package/dist/src/cli-commands/skills/enable/command.js.map +1 -0
  40. package/dist/src/cli-commands/skills/enable/enable-skill.d.ts +26 -0
  41. package/dist/src/cli-commands/skills/enable/enable-skill.d.ts.map +1 -0
  42. package/dist/src/cli-commands/skills/enable/enable-skill.js +138 -0
  43. package/dist/src/cli-commands/skills/enable/enable-skill.js.map +1 -0
  44. package/dist/src/cli-commands/skills/enable/handler.d.ts +18 -0
  45. package/dist/src/cli-commands/skills/enable/handler.d.ts.map +1 -0
  46. package/dist/src/cli-commands/skills/enable/handler.js +72 -0
  47. package/dist/src/cli-commands/skills/enable/handler.js.map +1 -0
  48. package/dist/src/cli-commands/skills/fork/handler.d.ts +4 -13
  49. package/dist/src/cli-commands/skills/fork/handler.d.ts.map +1 -1
  50. package/dist/src/cli-commands/skills/fork/handler.js +37 -29
  51. package/dist/src/cli-commands/skills/fork/handler.js.map +1 -1
  52. package/dist/src/cli-commands/skills/fs-helpers.d.ts +12 -0
  53. package/dist/src/cli-commands/skills/fs-helpers.d.ts.map +1 -0
  54. package/dist/src/cli-commands/skills/fs-helpers.js +12 -0
  55. package/dist/src/cli-commands/skills/fs-helpers.js.map +1 -0
  56. package/dist/src/cli-commands/skills/install/discover-skills.d.ts +3 -18
  57. package/dist/src/cli-commands/skills/install/discover-skills.d.ts.map +1 -1
  58. package/dist/src/cli-commands/skills/install/discover-skills.js +7 -20
  59. package/dist/src/cli-commands/skills/install/discover-skills.js.map +1 -1
  60. package/dist/src/cli-commands/skills/install/handler.d.ts +1 -16
  61. package/dist/src/cli-commands/skills/install/handler.d.ts.map +1 -1
  62. package/dist/src/cli-commands/skills/install/handler.js +20 -27
  63. package/dist/src/cli-commands/skills/install/handler.js.map +1 -1
  64. package/dist/src/cli-commands/skills/install/install-skill.d.ts +1 -1
  65. package/dist/src/cli-commands/skills/install/install-skill.d.ts.map +1 -1
  66. package/dist/src/cli-commands/skills/install/install-skill.js +12 -18
  67. package/dist/src/cli-commands/skills/install/install-skill.js.map +1 -1
  68. package/dist/src/cli-commands/skills/install/select-skills.d.ts +4 -5
  69. package/dist/src/cli-commands/skills/install/select-skills.d.ts.map +1 -1
  70. package/dist/src/cli-commands/skills/install/select-skills.js +13 -13
  71. package/dist/src/cli-commands/skills/install/select-skills.js.map +1 -1
  72. package/dist/src/cli-commands/skills/install/skill-utils.d.ts +1 -6
  73. package/dist/src/cli-commands/skills/install/skill-utils.d.ts.map +1 -1
  74. package/dist/src/cli-commands/skills/install/skill-utils.js +8 -4
  75. package/dist/src/cli-commands/skills/install/skill-utils.js.map +1 -1
  76. package/dist/src/cli-commands/skills/list/handler.d.ts +1 -1
  77. package/dist/src/cli-commands/skills/list/handler.d.ts.map +1 -1
  78. package/dist/src/cli-commands/skills/list/handler.js +1 -1
  79. package/dist/src/cli-commands/skills/list/handler.js.map +1 -1
  80. package/dist/src/cli-commands/skills/naming.d.ts +17 -0
  81. package/dist/src/cli-commands/skills/naming.d.ts.map +1 -0
  82. package/dist/src/cli-commands/skills/naming.js +20 -0
  83. package/dist/src/cli-commands/skills/naming.js.map +1 -0
  84. package/dist/src/cli-commands/skills/operations.d.ts +25 -1
  85. package/dist/src/cli-commands/skills/operations.d.ts.map +1 -1
  86. package/dist/src/cli-commands/skills/publish/handler.d.ts +1 -10
  87. package/dist/src/cli-commands/skills/publish/handler.d.ts.map +1 -1
  88. package/dist/src/cli-commands/skills/publish/handler.js +31 -47
  89. package/dist/src/cli-commands/skills/publish/handler.js.map +1 -1
  90. package/dist/src/cli-commands/skills/publish-skill.d.ts +1 -1
  91. package/dist/src/cli-commands/skills/publish-skill.d.ts.map +1 -1
  92. package/dist/src/cli-commands/skills/publish-skill.js +37 -52
  93. package/dist/src/cli-commands/skills/publish-skill.js.map +1 -1
  94. package/dist/src/cli-commands/skills/rename/command.d.ts +16 -0
  95. package/dist/src/cli-commands/skills/rename/command.d.ts.map +1 -0
  96. package/dist/src/cli-commands/skills/rename/command.js +62 -0
  97. package/dist/src/cli-commands/skills/rename/command.js.map +1 -0
  98. package/dist/src/cli-commands/skills/rename/handler.d.ts +20 -0
  99. package/dist/src/cli-commands/skills/rename/handler.d.ts.map +1 -0
  100. package/dist/src/cli-commands/skills/rename/handler.js +77 -0
  101. package/dist/src/cli-commands/skills/rename/handler.js.map +1 -0
  102. package/dist/src/cli-commands/skills/rename/rename-skill.d.ts +25 -0
  103. package/dist/src/cli-commands/skills/rename/rename-skill.d.ts.map +1 -0
  104. package/dist/src/cli-commands/skills/rename/rename-skill.js +110 -0
  105. package/dist/src/cli-commands/skills/rename/rename-skill.js.map +1 -0
  106. package/dist/src/cli-commands/skills/uninstall/handler.d.ts +1 -1
  107. package/dist/src/cli-commands/skills/uninstall/handler.d.ts.map +1 -1
  108. package/dist/src/cli-commands/skills/uninstall/handler.js +12 -1
  109. package/dist/src/cli-commands/skills/uninstall/handler.js.map +1 -1
  110. package/dist/src/cli-commands/skills/uninstall/uninstall-skill.d.ts +1 -1
  111. package/dist/src/cli-commands/skills/uninstall/uninstall-skill.d.ts.map +1 -1
  112. package/dist/src/cli-commands/skills/uninstall/uninstall-skill.js +14 -23
  113. package/dist/src/cli-commands/skills/uninstall/uninstall-skill.js.map +1 -1
  114. package/dist/src/cli-commands/skills/update/build-plan.d.ts +7 -2
  115. package/dist/src/cli-commands/skills/update/build-plan.d.ts.map +1 -1
  116. package/dist/src/cli-commands/skills/update/build-plan.js +28 -20
  117. package/dist/src/cli-commands/skills/update/build-plan.js.map +1 -1
  118. package/dist/src/cli-commands/skills/update/handler.d.ts +11 -20
  119. package/dist/src/cli-commands/skills/update/handler.d.ts.map +1 -1
  120. package/dist/src/cli-commands/skills/update/handler.js +161 -90
  121. package/dist/src/cli-commands/skills/update/handler.js.map +1 -1
  122. package/dist/src/cli-commands/skills/utils.d.ts +2 -16
  123. package/dist/src/cli-commands/skills/utils.d.ts.map +1 -1
  124. package/dist/src/cli-commands/skills/utils.js +36 -20
  125. package/dist/src/cli-commands/skills/utils.js.map +1 -1
  126. package/dist/src/cli-error/cli-error.d.ts +21 -0
  127. package/dist/src/cli-error/cli-error.d.ts.map +1 -0
  128. package/dist/src/cli-error/cli-error.js +12 -0
  129. package/dist/src/cli-error/cli-error.js.map +1 -0
  130. package/dist/src/cli-error/index.d.ts +3 -0
  131. package/dist/src/cli-error/index.d.ts.map +1 -0
  132. package/dist/src/cli-error/index.js +3 -0
  133. package/dist/src/cli-error/index.js.map +1 -0
  134. package/dist/src/cli-error/render.d.ts +4 -0
  135. package/dist/src/cli-error/render.d.ts.map +1 -0
  136. package/dist/src/cli-error/render.js +25 -0
  137. package/dist/src/cli-error/render.js.map +1 -0
  138. package/dist/src/extensions/skills/index.d.ts +0 -5
  139. package/dist/src/extensions/skills/index.d.ts.map +1 -1
  140. package/dist/src/extensions/skills/index.js +1 -4
  141. package/dist/src/extensions/skills/index.js.map +1 -1
  142. package/dist/src/extensions/skills/state/index.d.ts +2 -2
  143. package/dist/src/extensions/skills/state/index.d.ts.map +1 -1
  144. package/dist/src/extensions/skills/state/index.js +1 -1
  145. package/dist/src/extensions/skills/state/index.js.map +1 -1
  146. package/dist/src/extensions/skills/state/pure-functions.d.ts +4 -29
  147. package/dist/src/extensions/skills/state/pure-functions.d.ts.map +1 -1
  148. package/dist/src/extensions/skills/state/pure-functions.js +4 -37
  149. package/dist/src/extensions/skills/state/pure-functions.js.map +1 -1
  150. package/dist/src/extensions/skills/state/types.d.ts +0 -1
  151. package/dist/src/extensions/skills/state/types.d.ts.map +1 -1
  152. package/dist/src/extensions/skills/state/types.js.map +1 -1
  153. package/dist/src/extensions/skills/types.d.ts +0 -40
  154. package/dist/src/extensions/skills/types.d.ts.map +1 -1
  155. package/dist/src/extensions/skills/types.js +0 -1
  156. package/dist/src/extensions/skills/types.js.map +1 -1
  157. package/dist/src/git/errors.d.ts +1 -2
  158. package/dist/src/git/errors.d.ts.map +1 -1
  159. package/dist/src/git/errors.js +0 -1
  160. package/dist/src/git/errors.js.map +1 -1
  161. package/dist/src/git/index.d.ts +0 -1
  162. package/dist/src/git/index.d.ts.map +1 -1
  163. package/dist/src/git/index.js +0 -1
  164. package/dist/src/git/index.js.map +1 -1
  165. package/dist/src/git/operations.d.ts +7 -7
  166. package/dist/src/git/operations.d.ts.map +1 -1
  167. package/dist/src/git/operations.js +22 -19
  168. package/dist/src/git/operations.js.map +1 -1
  169. package/dist/src/lockfile/index.d.ts +1 -2
  170. package/dist/src/lockfile/index.d.ts.map +1 -1
  171. package/dist/src/lockfile/index.js +2 -1
  172. package/dist/src/lockfile/index.js.map +1 -1
  173. package/dist/src/lockfile/lockfile.d.ts +77 -51
  174. package/dist/src/lockfile/lockfile.d.ts.map +1 -1
  175. package/dist/src/lockfile/lockfile.js +27 -51
  176. package/dist/src/lockfile/lockfile.js.map +1 -1
  177. package/dist/src/resolution/index.d.ts +0 -1
  178. package/dist/src/resolution/index.d.ts.map +1 -1
  179. package/dist/src/resolution/index.js +0 -2
  180. package/dist/src/resolution/index.js.map +1 -1
  181. package/dist/src/resolution/resolver.d.ts +2 -2
  182. package/dist/src/resolution/resolver.d.ts.map +1 -1
  183. package/dist/src/resolution/resolver.js +1 -1
  184. package/dist/src/resolution/resolver.js.map +1 -1
  185. package/dist/src/resolution/resolvers/ambiguous.js +1 -1
  186. package/dist/src/resolution/resolvers/ambiguous.js.map +1 -1
  187. package/dist/src/resolution/resolvers/axm-name.d.ts.map +1 -1
  188. package/dist/src/resolution/resolvers/axm-name.js +1 -1
  189. package/dist/src/resolution/resolvers/axm-name.js.map +1 -1
  190. package/dist/src/resolution/resolvers/bare-name.js +1 -1
  191. package/dist/src/resolution/resolvers/bare-name.js.map +1 -1
  192. package/dist/src/resolution/resolvers/explicit-source.d.ts.map +1 -1
  193. package/dist/src/resolution/resolvers/explicit-source.js +1 -1
  194. package/dist/src/resolution/resolvers/explicit-source.js.map +1 -1
  195. package/dist/src/resolution/resolvers/local-path.d.ts.map +1 -1
  196. package/dist/src/resolution/resolvers/local-path.js +1 -1
  197. package/dist/src/resolution/resolvers/local-path.js.map +1 -1
  198. package/dist/src/resolution/resolvers/url.d.ts.map +1 -1
  199. package/dist/src/resolution/resolvers/url.js +1 -1
  200. package/dist/src/resolution/resolvers/url.js.map +1 -1
  201. package/dist/src/runtime/error-handling.d.ts +10 -0
  202. package/dist/src/runtime/error-handling.d.ts.map +1 -0
  203. package/dist/src/runtime/error-handling.js +10 -0
  204. package/dist/src/runtime/error-handling.js.map +1 -0
  205. package/dist/src/runtime/index.d.ts +5 -4
  206. package/dist/src/runtime/index.d.ts.map +1 -1
  207. package/dist/src/runtime/index.js +11 -4
  208. package/dist/src/runtime/index.js.map +1 -1
  209. package/dist/src/settings/format-preserving-json.d.ts +1 -2
  210. package/dist/src/settings/format-preserving-json.d.ts.map +1 -1
  211. package/dist/src/settings/format-preserving-json.js +7 -7
  212. package/dist/src/settings/format-preserving-json.js.map +1 -1
  213. package/dist/src/settings/index.d.ts +5 -4
  214. package/dist/src/settings/index.d.ts.map +1 -1
  215. package/dist/src/settings/index.js +4 -2
  216. package/dist/src/settings/index.js.map +1 -1
  217. package/dist/src/settings/schema.d.ts +48 -8
  218. package/dist/src/settings/schema.d.ts.map +1 -1
  219. package/dist/src/settings/schema.js +26 -7
  220. package/dist/src/settings/schema.js.map +1 -1
  221. package/dist/src/settings/settings.d.ts +10 -52
  222. package/dist/src/settings/settings.d.ts.map +1 -1
  223. package/dist/src/settings/settings.js +22 -48
  224. package/dist/src/settings/settings.js.map +1 -1
  225. package/dist/src/settings/skill-entry.d.ts +44 -0
  226. package/dist/src/settings/skill-entry.d.ts.map +1 -0
  227. package/dist/src/settings/skill-entry.js +58 -0
  228. package/dist/src/settings/skill-entry.js.map +1 -0
  229. package/dist/src/sources/azurerepos/repo-exists.d.ts +2 -2
  230. package/dist/src/sources/azurerepos/repo-exists.d.ts.map +1 -1
  231. package/dist/src/sources/azurerepos/repo-exists.js +9 -7
  232. package/dist/src/sources/azurerepos/repo-exists.js.map +1 -1
  233. package/dist/src/sources/azurerepos/scp.d.ts +1 -2
  234. package/dist/src/sources/azurerepos/scp.d.ts.map +1 -1
  235. package/dist/src/sources/azurerepos/scp.js +6 -2
  236. package/dist/src/sources/azurerepos/scp.js.map +1 -1
  237. package/dist/src/sources/azurerepos/url.d.ts +1 -2
  238. package/dist/src/sources/azurerepos/url.d.ts.map +1 -1
  239. package/dist/src/sources/azurerepos/url.js +11 -3
  240. package/dist/src/sources/azurerepos/url.js.map +1 -1
  241. package/dist/src/sources/bitbucket/resolve-repo.d.ts +2 -2
  242. package/dist/src/sources/bitbucket/resolve-repo.d.ts.map +1 -1
  243. package/dist/src/sources/bitbucket/resolve-repo.js +5 -4
  244. package/dist/src/sources/bitbucket/resolve-repo.js.map +1 -1
  245. package/dist/src/sources/bitbucket/scp.d.ts +1 -2
  246. package/dist/src/sources/bitbucket/scp.d.ts.map +1 -1
  247. package/dist/src/sources/bitbucket/scp.js +6 -2
  248. package/dist/src/sources/bitbucket/scp.js.map +1 -1
  249. package/dist/src/sources/bitbucket/shorthand.d.ts +1 -1
  250. package/dist/src/sources/bitbucket/shorthand.d.ts.map +1 -1
  251. package/dist/src/sources/bitbucket/url.d.ts +1 -2
  252. package/dist/src/sources/bitbucket/url.d.ts.map +1 -1
  253. package/dist/src/sources/bitbucket/url.js +11 -3
  254. package/dist/src/sources/bitbucket/url.js.map +1 -1
  255. package/dist/src/sources/clone-url.d.ts +3 -4
  256. package/dist/src/sources/clone-url.d.ts.map +1 -1
  257. package/dist/src/sources/clone-url.js +6 -6
  258. package/dist/src/sources/clone-url.js.map +1 -1
  259. package/dist/src/sources/github/api.d.ts +3 -21
  260. package/dist/src/sources/github/api.d.ts.map +1 -1
  261. package/dist/src/sources/github/api.js +16 -28
  262. package/dist/src/sources/github/api.js.map +1 -1
  263. package/dist/src/sources/github/index.d.ts +1 -1
  264. package/dist/src/sources/github/index.d.ts.map +1 -1
  265. package/dist/src/sources/github/index.js +1 -1
  266. package/dist/src/sources/github/index.js.map +1 -1
  267. package/dist/src/sources/github/resolve-repo.d.ts +2 -2
  268. package/dist/src/sources/github/resolve-repo.d.ts.map +1 -1
  269. package/dist/src/sources/github/resolve-repo.js +5 -4
  270. package/dist/src/sources/github/resolve-repo.js.map +1 -1
  271. package/dist/src/sources/github/scp.d.ts +1 -2
  272. package/dist/src/sources/github/scp.d.ts.map +1 -1
  273. package/dist/src/sources/github/scp.js +6 -2
  274. package/dist/src/sources/github/scp.js.map +1 -1
  275. package/dist/src/sources/github/shorthand.d.ts +1 -1
  276. package/dist/src/sources/github/shorthand.d.ts.map +1 -1
  277. package/dist/src/sources/github/url.d.ts +1 -2
  278. package/dist/src/sources/github/url.d.ts.map +1 -1
  279. package/dist/src/sources/github/url.js +11 -3
  280. package/dist/src/sources/github/url.js.map +1 -1
  281. package/dist/src/sources/gitlab/resolve-repo.d.ts +2 -2
  282. package/dist/src/sources/gitlab/resolve-repo.d.ts.map +1 -1
  283. package/dist/src/sources/gitlab/resolve-repo.js +5 -4
  284. package/dist/src/sources/gitlab/resolve-repo.js.map +1 -1
  285. package/dist/src/sources/gitlab/scp.d.ts +1 -2
  286. package/dist/src/sources/gitlab/scp.d.ts.map +1 -1
  287. package/dist/src/sources/gitlab/scp.js +6 -2
  288. package/dist/src/sources/gitlab/scp.js.map +1 -1
  289. package/dist/src/sources/gitlab/shorthand.d.ts +1 -1
  290. package/dist/src/sources/gitlab/shorthand.d.ts.map +1 -1
  291. package/dist/src/sources/gitlab/url.d.ts +1 -2
  292. package/dist/src/sources/gitlab/url.d.ts.map +1 -1
  293. package/dist/src/sources/gitlab/url.js +11 -3
  294. package/dist/src/sources/gitlab/url.js.map +1 -1
  295. package/dist/src/sources/index.d.ts +0 -4
  296. package/dist/src/sources/index.d.ts.map +1 -1
  297. package/dist/src/sources/index.js +2 -3
  298. package/dist/src/sources/index.js.map +1 -1
  299. package/dist/src/sources/local/parser.d.ts +2 -2
  300. package/dist/src/sources/local/parser.d.ts.map +1 -1
  301. package/dist/src/sources/local/parser.js.map +1 -1
  302. package/dist/src/sources/parse-provider-shorthand.d.ts +2 -3
  303. package/dist/src/sources/parse-provider-shorthand.d.ts.map +1 -1
  304. package/dist/src/sources/parse-provider-shorthand.js +7 -3
  305. package/dist/src/sources/parse-provider-shorthand.js.map +1 -1
  306. package/dist/src/sources/provider.d.ts +5 -44
  307. package/dist/src/sources/provider.d.ts.map +1 -1
  308. package/dist/src/sources/provider.js +12 -26
  309. package/dist/src/sources/provider.js.map +1 -1
  310. package/dist/src/sources/providers/azurerepos.js +7 -7
  311. package/dist/src/sources/providers/azurerepos.js.map +1 -1
  312. package/dist/src/sources/providers/git-hosting.d.ts +3 -3
  313. package/dist/src/sources/providers/git-hosting.d.ts.map +1 -1
  314. package/dist/src/sources/providers/git-hosting.js +14 -33
  315. package/dist/src/sources/providers/git-hosting.js.map +1 -1
  316. package/dist/src/sources/providers/git.js +7 -7
  317. package/dist/src/sources/providers/git.js.map +1 -1
  318. package/dist/src/sources/providers/local.d.ts.map +1 -1
  319. package/dist/src/sources/providers/local.js +7 -18
  320. package/dist/src/sources/providers/local.js.map +1 -1
  321. package/dist/src/sources/providers/registry.d.ts +5 -5
  322. package/dist/src/sources/providers/registry.d.ts.map +1 -1
  323. package/dist/src/sources/providers/registry.js +136 -92
  324. package/dist/src/sources/providers/registry.js.map +1 -1
  325. package/dist/src/sources/registry-guard.d.ts +2 -3
  326. package/dist/src/sources/registry-guard.d.ts.map +1 -1
  327. package/dist/src/sources/registry-guard.js +8 -6
  328. package/dist/src/sources/registry-guard.js.map +1 -1
  329. package/dist/src/sources/resolve-source.d.ts +3 -3
  330. package/dist/src/sources/resolve-source.d.ts.map +1 -1
  331. package/dist/src/sources/resolve-source.js +83 -49
  332. package/dist/src/sources/resolve-source.js.map +1 -1
  333. package/dist/src/sources/service.d.ts +3 -4
  334. package/dist/src/sources/service.d.ts.map +1 -1
  335. package/dist/src/sources/service.js +8 -5
  336. package/dist/src/sources/service.js.map +1 -1
  337. package/dist/src/tui/confirm/service.d.ts +2 -2
  338. package/dist/src/tui/confirm/service.d.ts.map +1 -1
  339. package/dist/src/tui/confirm/service.js.map +1 -1
  340. package/dist/src/tui/errors.d.ts +0 -9
  341. package/dist/src/tui/errors.d.ts.map +1 -1
  342. package/dist/src/tui/errors.js +0 -2
  343. package/dist/src/tui/errors.js.map +1 -1
  344. package/dist/src/tui/index.d.ts +1 -1
  345. package/dist/src/tui/index.d.ts.map +1 -1
  346. package/dist/src/tui/index.js +1 -1
  347. package/dist/src/tui/index.js.map +1 -1
  348. package/dist/src/tui/multiselect/service.d.ts +3 -2
  349. package/dist/src/tui/multiselect/service.d.ts.map +1 -1
  350. package/dist/src/tui/multiselect/service.js +7 -5
  351. package/dist/src/tui/multiselect/service.js.map +1 -1
  352. package/dist/src/tui/password-input/service.d.ts +3 -2
  353. package/dist/src/tui/password-input/service.d.ts.map +1 -1
  354. package/dist/src/tui/password-input/service.js +7 -5
  355. package/dist/src/tui/password-input/service.js.map +1 -1
  356. package/dist/src/tui/select/service.d.ts +3 -2
  357. package/dist/src/tui/select/service.d.ts.map +1 -1
  358. package/dist/src/tui/select/service.js +5 -5
  359. package/dist/src/tui/select/service.js.map +1 -1
  360. package/dist/src/tui/spinner/index.d.ts +1 -1
  361. package/dist/src/tui/spinner/index.d.ts.map +1 -1
  362. package/dist/src/tui/spinner/service.d.ts +1 -5
  363. package/dist/src/tui/spinner/service.d.ts.map +1 -1
  364. package/dist/src/tui/spinner/service.js +25 -12
  365. package/dist/src/tui/spinner/service.js.map +1 -1
  366. package/dist/src/tui/spinner/test.d.ts +3 -0
  367. package/dist/src/tui/spinner/test.d.ts.map +1 -1
  368. package/dist/src/tui/spinner/test.js +9 -0
  369. package/dist/src/tui/spinner/test.js.map +1 -1
  370. package/dist/src/tui/spinner/types.d.ts +5 -0
  371. package/dist/src/tui/spinner/types.d.ts.map +1 -1
  372. package/dist/src/tui/text-input/service.d.ts +2 -2
  373. package/dist/src/tui/text-input/service.d.ts.map +1 -1
  374. package/dist/src/tui/text-input/service.js.map +1 -1
  375. package/dist/src/utils/create-symlink.d.ts +1 -14
  376. package/dist/src/utils/create-symlink.d.ts.map +1 -1
  377. package/dist/src/utils/create-symlink.js +17 -15
  378. package/dist/src/utils/create-symlink.js.map +1 -1
  379. package/dist/src/utils/index.d.ts +1 -2
  380. package/dist/src/utils/index.d.ts.map +1 -1
  381. package/dist/src/utils/index.js +1 -2
  382. package/dist/src/utils/index.js.map +1 -1
  383. package/dist/src/workspace/apply-plan.d.ts +5 -17
  384. package/dist/src/workspace/apply-plan.d.ts.map +1 -1
  385. package/dist/src/workspace/apply-plan.js +3 -12
  386. package/dist/src/workspace/apply-plan.js.map +1 -1
  387. package/dist/src/workspace/ensure-agents.d.ts +2 -15
  388. package/dist/src/workspace/ensure-agents.d.ts.map +1 -1
  389. package/dist/src/workspace/ensure-agents.js +7 -15
  390. package/dist/src/workspace/ensure-agents.js.map +1 -1
  391. package/dist/src/workspace/errors.d.ts +1 -1
  392. package/dist/src/workspace/errors.d.ts.map +1 -1
  393. package/dist/src/workspace/index.d.ts +1 -2
  394. package/dist/src/workspace/index.d.ts.map +1 -1
  395. package/dist/src/workspace/index.js +1 -2
  396. package/dist/src/workspace/index.js.map +1 -1
  397. package/dist/src/workspace/service.d.ts +30 -23
  398. package/dist/src/workspace/service.d.ts.map +1 -1
  399. package/dist/src/workspace/service.js +105 -38
  400. package/dist/src/workspace/service.js.map +1 -1
  401. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/settings/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/settings/schema.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  import * as FileSystem from "@effect/platform/FileSystem";
8
8
  import * as Path from "@effect/platform/Path";
9
9
  import * as Effect from "effect/Effect";
10
+ import * as Option from "effect/Option";
10
11
  import { type Settings } from "./schema.js";
11
12
  /**
12
13
  * Filename for the settings file.
@@ -20,53 +21,6 @@ export declare const SETTINGS_FILENAME = "settings.json";
20
21
  * @experimental This API is unstable and may change without notice.
21
22
  */
22
23
  export declare const DEFAULT_SCOPE = "@community";
23
- declare const SettingsNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
24
- readonly _tag: "SettingsNotFoundError";
25
- } & Readonly<A>;
26
- /**
27
- * Settings file not found.
28
- *
29
- * @experimental This API is unstable and may change without notice.
30
- */
31
- export declare class SettingsNotFoundError extends SettingsNotFoundError_base<{
32
- readonly path: string;
33
- readonly message: string;
34
- }> {
35
- }
36
- declare const SettingsParseError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
37
- readonly _tag: "SettingsParseError";
38
- } & Readonly<A>;
39
- /**
40
- * Failed to parse settings JSON.
41
- *
42
- * @experimental This API is unstable and may change without notice.
43
- */
44
- export declare class SettingsParseError extends SettingsParseError_base<{
45
- readonly path: string;
46
- readonly message: string;
47
- readonly cause: unknown;
48
- }> {
49
- }
50
- declare const SettingsWriteError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").Equals<A, {}> extends true ? void : { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }) => import("effect/Cause").YieldableError & {
51
- readonly _tag: "SettingsWriteError";
52
- } & Readonly<A>;
53
- /**
54
- * Failed to write settings file.
55
- *
56
- * @experimental This API is unstable and may change without notice.
57
- */
58
- export declare class SettingsWriteError extends SettingsWriteError_base<{
59
- readonly path: string;
60
- readonly message: string;
61
- readonly cause: unknown;
62
- }> {
63
- }
64
- /**
65
- * Union of all settings errors.
66
- *
67
- * @experimental This API is unstable and may change without notice.
68
- */
69
- export type SettingsError = SettingsNotFoundError | SettingsParseError | SettingsWriteError;
70
24
  /**
71
25
  * Create default settings object.
72
26
  *
@@ -90,7 +44,7 @@ export declare const orderSettingsKeys: (settings: Settings) => Settings;
90
44
  *
91
45
  * @experimental This API is unstable and may change without notice.
92
46
  */
93
- export declare const readSettings: (axmDir: string) => Effect.Effect<{
47
+ export declare const readSettings: (axmDir: string) => Effect.Effect<Option.Option<{
94
48
  readonly scope?: string | undefined;
95
49
  readonly sources?: readonly ({
96
50
  readonly type: "github";
@@ -116,7 +70,12 @@ export declare const readSettings: (axmDir: string) => Effect.Effect<{
116
70
  })[] | undefined;
117
71
  readonly agents?: readonly ("cursor" | "adal" | "amp" | "antigravity" | "augment" | "claude-code" | "cline" | "codebuddy" | "codex" | "command-code" | "continue" | "crush" | "droid" | "gemini-cli" | "github-copilot" | "goose" | "iflow-cli" | "junie" | "kilo" | "kimi-cli" | "kiro-cli" | "kode" | "mcpjam" | "mistral-vibe" | "mux" | "neovate" | "openclaw" | "opencode" | "openhands" | "pi" | "pochi" | "qoder" | "qwen-code" | "replit" | "roo" | "trae" | "trae-cn" | "windsurf" | "zencoder")[] | undefined;
118
72
  readonly skills?: {
119
- readonly [x: string]: string;
73
+ readonly [x: string]: string | {
74
+ readonly source: string;
75
+ readonly enabled?: boolean | undefined;
76
+ } | {
77
+ readonly managed: false;
78
+ };
120
79
  } | undefined;
121
80
  readonly commands?: {
122
81
  readonly [x: string]: string;
@@ -127,7 +86,7 @@ export declare const readSettings: (axmDir: string) => Effect.Effect<{
127
86
  readonly "mcp-servers"?: {
128
87
  readonly [x: string]: string;
129
88
  } | undefined;
130
- }, SettingsNotFoundError | SettingsParseError, Path.Path | FileSystem.FileSystem>;
89
+ }>, import("../cli-error/cli-error.js").CliError, FileSystem.FileSystem | Path.Path>;
131
90
  /**
132
91
  * Write settings to .axm/settings.json.
133
92
  *
@@ -138,6 +97,5 @@ export declare const readSettings: (axmDir: string) => Effect.Effect<{
138
97
  *
139
98
  * @experimental This API is unstable and may change without notice.
140
99
  */
141
- export declare const writeSettings: (axmDir: string, settings: Settings) => Effect.Effect<void, SettingsWriteError, Path.Path | FileSystem.FileSystem>;
142
- export {};
100
+ export declare const writeSettings: (axmDir: string, settings: Settings) => Effect.Effect<void, import("../cli-error/cli-error.js").CliError, FileSystem.FileSystem | Path.Path>;
143
101
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/settings/settings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAE9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAsB,KAAK,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAMhF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,aAAa,eAAe,CAAC;;;;AAM1C;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,2BAA0C;IACnF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;;;;AAEL;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB,CAAC;CAAG;AAEL;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,qBAAqB,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAM5F;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAO,QAAgB,CAAC;AAM1D;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,QAAQ,KAAG,QAQtD,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFA4DvC,CAAC;AAEL;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,UAAU,QAAQ,+EAgC5D,CAAC"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../../src/settings/settings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,EAAsB,KAAK,QAAQ,EAAkB,MAAM,aAAa,CAAC;AAMhF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAEjD;;;;GAIG;AACH,eAAO,MAAM,aAAa,eAAe,CAAC;AAM1C;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAAO,QAAgB,CAAC;AAM1D;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,GAAI,UAAU,QAAQ,KAAG,QAQtD,CAAC;AAMF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oFAsDvC,CAAC;AAEL;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,EAAE,UAAU,QAAQ,yGA8B5D,CAAC"}
@@ -6,9 +6,10 @@
6
6
  */
7
7
  import * as FileSystem from "@effect/platform/FileSystem";
8
8
  import * as Path from "@effect/platform/Path";
9
- import * as Data from "effect/Data";
10
9
  import * as Effect from "effect/Effect";
10
+ import * as Option from "effect/Option";
11
11
  import * as Schema from "effect/Schema";
12
+ import { makeCliError } from "../cli-error/index.js";
12
13
  import { SETTINGS_KEY_ORDER, SettingsSchema } from "./schema.js";
13
14
  // -----------------------------------------------------------------------------
14
15
  // Constants
@@ -26,30 +27,6 @@ export const SETTINGS_FILENAME = "settings.json";
26
27
  */
27
28
  export const DEFAULT_SCOPE = "@community";
28
29
  // -----------------------------------------------------------------------------
29
- // Error Types
30
- // -----------------------------------------------------------------------------
31
- /**
32
- * Settings file not found.
33
- *
34
- * @experimental This API is unstable and may change without notice.
35
- */
36
- export class SettingsNotFoundError extends Data.TaggedError("SettingsNotFoundError") {
37
- }
38
- /**
39
- * Failed to parse settings JSON.
40
- *
41
- * @experimental This API is unstable and may change without notice.
42
- */
43
- export class SettingsParseError extends Data.TaggedError("SettingsParseError") {
44
- }
45
- /**
46
- * Failed to write settings file.
47
- *
48
- * @experimental This API is unstable and may change without notice.
49
- */
50
- export class SettingsWriteError extends Data.TaggedError("SettingsWriteError") {
51
- }
52
- // -----------------------------------------------------------------------------
53
30
  // Default Settings
54
31
  // -----------------------------------------------------------------------------
55
32
  /**
@@ -94,39 +71,36 @@ export const readSettings = (axmDir) => Effect.gen(function* () {
94
71
  const path = yield* Path.Path;
95
72
  const settingsPath = path.join(axmDir, SETTINGS_FILENAME);
96
73
  // Check if file exists
97
- const exists = yield* fs.exists(settingsPath).pipe(Effect.mapError((error) => new SettingsParseError({
98
- path: settingsPath,
99
- message: `Failed to check if settings file exists: ${settingsPath}`,
74
+ const exists = yield* fs.exists(settingsPath).pipe(Effect.mapError((error) => makeCliError({
75
+ code: "SETTINGS_PARSE_FAILED",
76
+ what: `Failed to check if settings file exists: ${settingsPath}`,
100
77
  cause: error,
101
78
  })));
102
79
  if (!exists) {
103
- return yield* new SettingsNotFoundError({
104
- path: settingsPath,
105
- message: `Settings file not found: ${settingsPath}`,
106
- });
80
+ return Option.none();
107
81
  }
108
82
  // Read file contents
109
- const content = yield* fs.readFileString(settingsPath).pipe(Effect.mapError((error) => new SettingsParseError({
110
- path: settingsPath,
111
- message: `Failed to read settings file: ${settingsPath}`,
83
+ const content = yield* fs.readFileString(settingsPath).pipe(Effect.mapError((error) => makeCliError({
84
+ code: "SETTINGS_PARSE_FAILED",
85
+ what: `Failed to read settings file: ${settingsPath}`,
112
86
  cause: error,
113
87
  })));
114
88
  // Parse JSON
115
89
  const json = yield* Effect.try({
116
90
  try: () => JSON.parse(content),
117
- catch: (error) => new SettingsParseError({
118
- path: settingsPath,
119
- message: `Failed to parse settings JSON: ${String(error)}`,
91
+ catch: (error) => makeCliError({
92
+ code: "SETTINGS_PARSE_FAILED",
93
+ what: `Failed to parse settings JSON: ${String(error)}`,
120
94
  cause: error,
121
95
  }),
122
96
  });
123
97
  // Validate schema
124
- const parsed = yield* Schema.decodeUnknown(SettingsSchema)(json).pipe(Effect.mapError((error) => new SettingsParseError({
125
- path: settingsPath,
126
- message: `Invalid settings format: ${error.message}`,
98
+ const parsed = yield* Schema.decodeUnknown(SettingsSchema)(json).pipe(Effect.mapError((error) => makeCliError({
99
+ code: "SETTINGS_PARSE_FAILED",
100
+ what: `Invalid settings format: ${error.message}`,
127
101
  cause: error,
128
102
  })));
129
- return parsed;
103
+ return Option.some(parsed);
130
104
  });
131
105
  /**
132
106
  * Write settings to .axm/settings.json.
@@ -143,17 +117,17 @@ export const writeSettings = (axmDir, settings) => Effect.gen(function* () {
143
117
  const path = yield* Path.Path;
144
118
  const settingsPath = path.join(axmDir, SETTINGS_FILENAME);
145
119
  // Ensure directory exists
146
- yield* fs.makeDirectory(axmDir, { recursive: true }).pipe(Effect.mapError((error) => new SettingsWriteError({
147
- path: settingsPath,
148
- message: `Failed to create directory: ${axmDir}`,
120
+ yield* fs.makeDirectory(axmDir, { recursive: true }).pipe(Effect.mapError((error) => makeCliError({
121
+ code: "SETTINGS_WRITE_FAILED",
122
+ what: `Failed to create directory: ${axmDir}`,
149
123
  cause: error,
150
124
  })));
151
125
  // Serialize to JSON with pretty printing and trailing newline
152
126
  const content = JSON.stringify(orderSettingsKeys(settings), null, 2) + "\n";
153
127
  // Write file
154
- yield* fs.writeFileString(settingsPath, content).pipe(Effect.mapError((error) => new SettingsWriteError({
155
- path: settingsPath,
156
- message: `Failed to write settings file: ${settingsPath}`,
128
+ yield* fs.writeFileString(settingsPath, content).pipe(Effect.mapError((error) => makeCliError({
129
+ code: "SETTINGS_WRITE_FAILED",
130
+ what: `Failed to write settings file: ${settingsPath}`,
157
131
  cause: error,
158
132
  })));
159
133
  });
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/settings/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/settings/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Normalization and collapse functions for skill entries.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ * @packageDocumentation
6
+ */
7
+ import * as Option from "effect/Option";
8
+ import type { SkillEntry } from "./schema.js";
9
+ /**
10
+ * Canonical internal representation of a skill entry.
11
+ *
12
+ * All handler and service code works with this form.
13
+ *
14
+ * @experimental This API is unstable and may change without notice.
15
+ */
16
+ export interface NormalizedSkillEntry {
17
+ readonly source: Option.Option<string>;
18
+ readonly enabled: boolean;
19
+ readonly managed: boolean;
20
+ }
21
+ /**
22
+ * Normalize a parsed SkillEntry to its canonical internal form.
23
+ *
24
+ * @experimental This API is unstable and may change without notice.
25
+ */
26
+ export declare const normalizeSkillEntry: (entry: SkillEntry) => NormalizedSkillEntry;
27
+ /**
28
+ * Collapse a NormalizedSkillEntry to the most compact settings representation.
29
+ *
30
+ * @experimental This API is unstable and may change without notice.
31
+ */
32
+ /**
33
+ * Extract the source string from a SkillEntry, or undefined for unmanaged entries.
34
+ *
35
+ * @experimental This API is unstable and may change without notice.
36
+ */
37
+ export declare const getSkillEntrySource: (entry: SkillEntry) => string | undefined;
38
+ /**
39
+ * Collapse a NormalizedSkillEntry to the most compact settings representation.
40
+ *
41
+ * @experimental This API is unstable and may change without notice.
42
+ */
43
+ export declare const collapseSkillEntry: (entry: NormalizedSkillEntry) => SkillEntry;
44
+ //# sourceMappingURL=skill-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-entry.d.ts","sourceRoot":"","sources":["../../../src/settings/skill-entry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,oBAYvD,CAAC;AAEF;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,OAAO,UAAU,KAAG,MAAM,GAAG,SAIhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,OAAO,oBAAoB,KAAG,UAShE,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Normalization and collapse functions for skill entries.
3
+ *
4
+ * @experimental This API is unstable and may change without notice.
5
+ * @packageDocumentation
6
+ */
7
+ import * as Option from "effect/Option";
8
+ /**
9
+ * Normalize a parsed SkillEntry to its canonical internal form.
10
+ *
11
+ * @experimental This API is unstable and may change without notice.
12
+ */
13
+ export const normalizeSkillEntry = (entry) => {
14
+ if (typeof entry === "string") {
15
+ return { source: Option.some(entry), enabled: true, managed: true };
16
+ }
17
+ if ("managed" in entry) {
18
+ return { source: Option.none(), enabled: true, managed: false };
19
+ }
20
+ return {
21
+ source: Option.some(entry.source),
22
+ enabled: entry.enabled ?? true,
23
+ managed: true,
24
+ };
25
+ };
26
+ /**
27
+ * Collapse a NormalizedSkillEntry to the most compact settings representation.
28
+ *
29
+ * @experimental This API is unstable and may change without notice.
30
+ */
31
+ /**
32
+ * Extract the source string from a SkillEntry, or undefined for unmanaged entries.
33
+ *
34
+ * @experimental This API is unstable and may change without notice.
35
+ */
36
+ export const getSkillEntrySource = (entry) => {
37
+ if (typeof entry === "string")
38
+ return entry;
39
+ if ("source" in entry)
40
+ return entry.source;
41
+ return undefined;
42
+ };
43
+ /**
44
+ * Collapse a NormalizedSkillEntry to the most compact settings representation.
45
+ *
46
+ * @experimental This API is unstable and may change without notice.
47
+ */
48
+ export const collapseSkillEntry = (entry) => {
49
+ if (!entry.managed) {
50
+ return { managed: false };
51
+ }
52
+ const source = Option.getOrThrow(entry.source);
53
+ if (entry.enabled) {
54
+ return source;
55
+ }
56
+ return { source, enabled: false };
57
+ };
58
+ //# sourceMappingURL=skill-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-entry.js","sourceRoot":"","sources":["../../../src/settings/skill-entry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAgBxC;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAiB,EAAwB,EAAE;IAC7E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtE,CAAC;IACD,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClE,CAAC;IACD,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAiB,EAAsB,EAAE;IAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,QAAQ,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,MAAM,CAAC;IAC3C,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAA2B,EAAc,EAAE;IAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,EAAE,OAAO,EAAE,KAAc,EAAE,CAAC;IACrC,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { ParseError } from "../errors.js";
3
- export declare const checkAzureReposRepoExists: (organization: string, project: string, repo: string) => Effect.Effect<void, ParseError>;
2
+ import { type CliError } from "../../cli-error/index.js";
3
+ export declare const checkAzureReposRepoExists: (organization: string, project: string, repo: string) => Effect.Effect<void, CliError>;
4
4
  //# sourceMappingURL=repo-exists.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"repo-exists.d.ts","sourceRoot":"","sources":["../../../../src/sources/azurerepos/repo-exists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,eAAO,MAAM,yBAAyB,GACpC,cAAc,MAAM,EACpB,SAAS,MAAM,EACf,MAAM,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAoB9B,CAAC"}
1
+ {"version":3,"file":"repo-exists.d.ts","sourceRoot":"","sources":["../../../../src/sources/azurerepos/repo-exists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEvE,eAAO,MAAM,yBAAyB,GACpC,cAAc,MAAM,EACpB,SAAS,MAAM,EACf,MAAM,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAsB5B,CAAC"}
@@ -1,15 +1,17 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { ParseError } from "../errors.js";
2
+ import { makeCliError } from "../../cli-error/index.js";
3
3
  export const checkAzureReposRepoExists = (organization, project, repo) => Effect.tryPromise({
4
4
  try: () => fetch(`https://dev.azure.com/${organization}/${project}/_git/${repo}`, { method: "HEAD" }),
5
- catch: (error) => new ParseError({
6
- message: `Failed to check Azure Repos: ${error instanceof Error ? error.message : String(error)}`,
7
- input: `${organization}/${project}/${repo}`,
5
+ catch: (error) => makeCliError({
6
+ code: "SOURCE_PARSE_FAILED",
7
+ what: `Failed to check Azure Repos: ${error instanceof Error ? error.message : String(error)}`,
8
+ details: [`${organization}/${project}/${repo}`],
8
9
  }),
9
10
  }).pipe(Effect.flatMap((response) => response.ok
10
11
  ? Effect.void
11
- : Effect.fail(new ParseError({
12
- message: `Not found on Azure Repos`,
13
- input: `${organization}/${project}/${repo}`,
12
+ : Effect.fail(makeCliError({
13
+ code: "SOURCE_PARSE_FAILED",
14
+ what: `Not found on Azure Repos`,
15
+ details: [`${organization}/${project}/${repo}`],
14
16
  }))));
15
17
  //# sourceMappingURL=repo-exists.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repo-exists.js","sourceRoot":"","sources":["../../../../src/sources/azurerepos/repo-exists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,YAAoB,EACpB,OAAe,EACf,IAAY,EACqB,EAAE,CACnC,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,GAAG,EAAE,CACR,KAAK,CAAC,yBAAyB,YAAY,IAAI,OAAO,SAAS,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5F,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,UAAU,CAAC;QACb,OAAO,EAAE,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACjG,KAAK,EAAE,GAAG,YAAY,IAAI,OAAO,IAAI,IAAI,EAAE;KAC5C,CAAC;CACL,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,QAAQ,CAAC,EAAE;IACT,CAAC,CAAC,MAAM,CAAC,IAAI;IACb,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,IAAI,UAAU,CAAC;QACb,OAAO,EAAE,0BAA0B;QACnC,KAAK,EAAE,GAAG,YAAY,IAAI,OAAO,IAAI,IAAI,EAAE;KAC5C,CAAC,CACH,CACN,CACF,CAAC"}
1
+ {"version":3,"file":"repo-exists.js","sourceRoot":"","sources":["../../../../src/sources/azurerepos/repo-exists.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AAEvE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,YAAoB,EACpB,OAAe,EACf,IAAY,EACmB,EAAE,CACjC,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,GAAG,EAAE,CACR,KAAK,CAAC,yBAAyB,YAAY,IAAI,OAAO,SAAS,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5F,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,YAAY,CAAC;QACX,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC9F,OAAO,EAAE,CAAC,GAAG,YAAY,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;KAChD,CAAC;CACL,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC1B,QAAQ,CAAC,EAAE;IACT,CAAC,CAAC,MAAM,CAAC,IAAI;IACb,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,YAAY,CAAC;QACX,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,0BAA0B;QAChC,OAAO,EAAE,CAAC,GAAG,YAAY,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;KAChD,CAAC,CACH,CACN,CACF,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
- import { ParseError } from "../errors.js";
4
- export declare const parseScp: (input: string, hostname?: string) => Effect.Effect<never, ParseError, never> | Effect.Effect<{
3
+ export declare const parseScp: (input: string, hostname?: string) => Effect.Effect<never, import("../../cli-error/cli-error.js").CliError, never> | Effect.Effect<{
5
4
  type: "azurerepos";
6
5
  organization: string;
7
6
  project: string;
@@ -1 +1 @@
1
- {"version":3,"file":"scp.d.ts","sourceRoot":"","sources":["../../../../src/sources/azurerepos/scp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAQ1C,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,WAAU,MAA+B;;;;;;;gBAahF,CAAC"}
1
+ {"version":3,"file":"scp.d.ts","sourceRoot":"","sources":["../../../../src/sources/azurerepos/scp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAUxC,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,WAAU,MAA+B;;;;;;;gBAmBhF,CAAC"}
@@ -1,13 +1,17 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
- import { ParseError } from "../errors.js";
3
+ import { makeCliError } from "../../cli-error/index.js";
4
4
  const CANONICAL_SSH_HOSTNAME = "ssh.dev.azure.com";
5
5
  /** Matches: git@{hostname}:v3/{org}/{project}/{repo} */
6
6
  const SCP_PATTERN = /^git@([^:]+):v3\/([^/]+)\/([^/]+)\/([^/]+?)(?:\.git)?$/;
7
7
  export const parseScp = (input, hostname = CANONICAL_SSH_HOSTNAME) => {
8
8
  const match = input.match(SCP_PATTERN);
9
9
  if (!match || !match[1] || !match[2] || !match[3] || !match[4] || match[1] !== hostname) {
10
- return Effect.fail(new ParseError({ message: "Invalid Azure Repos SSH URL format", input }));
10
+ return Effect.fail(makeCliError({
11
+ code: "SOURCE_PARSE_FAILED",
12
+ what: "Invalid Azure Repos SSH URL format",
13
+ details: [input],
14
+ }));
11
15
  }
12
16
  return Effect.succeed({
13
17
  type: "azurerepos",
@@ -1 +1 @@
1
- {"version":3,"file":"scp.js","sourceRoot":"","sources":["../../../../src/sources/azurerepos/scp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAEnD,wDAAwD;AACxD,MAAM,WAAW,GAAG,wDAAwD,CAAC;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,WAAmB,sBAAsB,EAAE,EAAE;IACnF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,oCAAoC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACtB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;KACS,CAAC,CAAC;AACrC,CAAC,CAAC"}
1
+ {"version":3,"file":"scp.js","sourceRoot":"","sources":["../../../../src/sources/azurerepos/scp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAEnD,wDAAwD;AACxD,MAAM,WAAW,GAAG,wDAAwD,CAAC;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,WAAmB,sBAAsB,EAAE,EAAE;IACnF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxF,OAAO,MAAM,CAAC,IAAI,CAChB,YAAY,CAAC;YACX,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,oCAAoC;YAC1C,OAAO,EAAE,CAAC,KAAK,CAAC;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACtB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;KACS,CAAC,CAAC;AACrC,CAAC,CAAC"}
@@ -1,8 +1,7 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
- import { ParseError } from "../errors.js";
4
3
  export declare const CANONICAL_HOSTNAME = "dev.azure.com";
5
- export declare const parseUrl: (url: URL, hostname?: string) => Effect.Effect<never, ParseError, never> | Effect.Effect<{
4
+ export declare const parseUrl: (url: URL, hostname?: string) => Effect.Effect<never, import("../../cli-error/cli-error.js").CliError, never> | Effect.Effect<{
6
5
  type: "azurerepos";
7
6
  organization: string;
8
7
  project: string;
@@ -1 +1 @@
1
- {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../../src/sources/azurerepos/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAKlD,eAAO,MAAM,QAAQ,GAAI,KAAK,GAAG,EAAE,WAAU,MAA2B;;;;;;;gBAoBvE,CAAC"}
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../../src/sources/azurerepos/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAKxC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAKlD,eAAO,MAAM,QAAQ,GAAI,KAAK,GAAG,EAAE,WAAU,MAA2B;;;;;;;gBA4BvE,CAAC"}
@@ -1,16 +1,24 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
- import { ParseError } from "../errors.js";
3
+ import { makeCliError } from "../../cli-error/index.js";
4
4
  export const CANONICAL_HOSTNAME = "dev.azure.com";
5
5
  /** Matches: /{org}/{project}/_git/{repo} */
6
6
  const AZUREREPOS_PATH_PATTERN = /^\/([^/]+)\/([^/]+)\/_git\/([^/]+?)(?:\.git)?$/;
7
7
  export const parseUrl = (url, hostname = CANONICAL_HOSTNAME) => {
8
8
  if (url.hostname !== hostname) {
9
- return Effect.fail(new ParseError({ message: "Invalid Azure Repos URL format", input: url.href }));
9
+ return Effect.fail(makeCliError({
10
+ code: "SOURCE_PARSE_FAILED",
11
+ what: "Invalid Azure Repos URL format",
12
+ details: [url.href],
13
+ }));
10
14
  }
11
15
  const match = url.pathname.match(AZUREREPOS_PATH_PATTERN);
12
16
  if (!match || !match[1] || !match[2] || !match[3]) {
13
- return Effect.fail(new ParseError({ message: "Invalid Azure Repos URL format", input: url.href }));
17
+ return Effect.fail(makeCliError({
18
+ code: "SOURCE_PARSE_FAILED",
19
+ what: "Invalid Azure Repos URL format",
20
+ details: [url.href],
21
+ }));
14
22
  }
15
23
  return Effect.succeed({
16
24
  type: "azurerepos",
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../src/sources/azurerepos/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,4CAA4C;AAC5C,MAAM,uBAAuB,GAAG,gDAAgD,CAAC;AAEjF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAE,WAAmB,kBAAkB,EAAE,EAAE;IAC1E,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAC/E,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,gCAAgC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAC/E,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACtB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;KACS,CAAC,CAAC;AACrC,CAAC,CAAC"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../src/sources/azurerepos/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,4CAA4C;AAC5C,MAAM,uBAAuB,GAAG,gDAAgD,CAAC;AAEjF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAQ,EAAE,WAAmB,kBAAkB,EAAE,EAAE;IAC1E,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,IAAI,CAChB,YAAY,CAAC;YACX,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,IAAI,CAChB,YAAY,CAAC;YACX,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,YAAY;QAClB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACtB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACjB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACd,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;KACS,CAAC,CAAC;AACrC,CAAC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
- import { ParseError } from "../errors.js";
3
+ import { type CliError } from "../../cli-error/index.js";
4
4
  import type { BitbucketSourceInput } from "../types.js";
5
5
  export declare const resolveRepo: (args: {
6
6
  readonly owner: string;
7
7
  readonly repo: string;
8
8
  readonly subPath: Option.Option<string>;
9
- }) => Effect.Effect<Option.Option<BitbucketSourceInput>, ParseError>;
9
+ }) => Effect.Effect<Option.Option<BitbucketSourceInput>, CliError>;
10
10
  //# sourceMappingURL=resolve-repo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-repo.d.ts","sourceRoot":"","sources":["../../../../src/sources/bitbucket/resolve-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAYxD,eAAO,MAAM,WAAW,GAAI,MAAM;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACzC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,UAAU,CAsB7D,CAAC"}
1
+ {"version":3,"file":"resolve-repo.d.ts","sourceRoot":"","sources":["../../../../src/sources/bitbucket/resolve-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAaxD,eAAO,MAAM,WAAW,GAAI,MAAM;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CACzC,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,QAAQ,CAsB3D,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
- import { ParseError } from "../errors.js";
3
+ import { makeCliError } from "../../cli-error/index.js";
4
4
  const headRequest = (url, input) => Effect.tryPromise({
5
5
  try: () => fetch(url, { method: "HEAD" }),
6
- catch: (error) => new ParseError({
7
- message: `Failed to check Bitbucket: ${error instanceof Error ? error.message : String(error)}`,
8
- input,
6
+ catch: (error) => makeCliError({
7
+ code: "SOURCE_PARSE_FAILED",
8
+ what: `Failed to check Bitbucket: ${error instanceof Error ? error.message : String(error)}`,
9
+ details: [input],
9
10
  }),
10
11
  });
11
12
  export const resolveRepo = (args) => Effect.gen(function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-repo.js","sourceRoot":"","sources":["../../../../src/sources/bitbucket/resolve-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CACjD,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,UAAU,CAAC;QACb,OAAO,EAAE,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC/F,KAAK;KACN,CAAC;CACL,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAI3B,EAAkE,EAAE,CACnE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,yBAAyB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,YAAY,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,OAAO,aAAa,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/D,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,WAAW,CACxC,UAAU,EACV,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CACnD,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,IAAI,CAAC,OAAO;KACS,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"resolve-repo.js","sourceRoot":"","sources":["../../../../src/sources/bitbucket/resolve-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,YAAY,EAAiB,MAAM,0BAA0B,CAAC;AAGvE,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CACjD,MAAM,CAAC,UAAU,CAAC;IAChB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACzC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,YAAY,CAAC;QACX,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAC5F,OAAO,EAAE,CAAC,KAAK,CAAC;KACjB,CAAC;CACL,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAI3B,EAAgE,EAAE,CACjE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,OAAO,GAAG,yBAAyB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC/E,IAAI,CAAC,YAAY,CAAC,EAAE;QAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IAE3C,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,OAAO,aAAa,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/D,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,WAAW,CACxC,UAAU,EACV,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CACnD,CAAC;QACF,IAAI,CAAC,eAAe,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE;QAClB,OAAO,EAAE,IAAI,CAAC,OAAO;KACS,CAAC,CAAC;AACpC,CAAC,CAAC,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
- import { ParseError } from "../errors.js";
4
- export declare const parseScp: (input: string, hostname?: string) => Effect.Effect<never, ParseError, never> | Effect.Effect<{
3
+ export declare const parseScp: (input: string, hostname?: string) => Effect.Effect<never, import("../../cli-error/cli-error.js").CliError, never> | Effect.Effect<{
5
4
  type: "bitbucket";
6
5
  owner: string;
7
6
  repo: string;
@@ -1 +1 @@
1
- {"version":3,"file":"scp.d.ts","sourceRoot":"","sources":["../../../../src/sources/bitbucket/scp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAO1C,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,WAAU,MAA2B;;;;;;gBAY5E,CAAC"}
1
+ {"version":3,"file":"scp.d.ts","sourceRoot":"","sources":["../../../../src/sources/bitbucket/scp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AASxC,eAAO,MAAM,QAAQ,GAAI,OAAO,MAAM,EAAE,WAAU,MAA2B;;;;;;gBAkB5E,CAAC"}
@@ -1,13 +1,17 @@
1
1
  import * as Effect from "effect/Effect";
2
2
  import * as Option from "effect/Option";
3
- import { ParseError } from "../errors.js";
3
+ import { makeCliError } from "../../cli-error/index.js";
4
4
  import { CANONICAL_HOSTNAME } from "./url.js";
5
5
  /** Matches: git@{hostname}:owner/repo.git */
6
6
  const SCP_PATTERN = /^git@([^:]+):([^/]+)\/([^/]+?)(?:\.git)?$/;
7
7
  export const parseScp = (input, hostname = CANONICAL_HOSTNAME) => {
8
8
  const match = input.match(SCP_PATTERN);
9
9
  if (!match || !match[1] || !match[2] || !match[3] || match[1] !== hostname) {
10
- return Effect.fail(new ParseError({ message: "Invalid Bitbucket SSH URL format", input }));
10
+ return Effect.fail(makeCliError({
11
+ code: "SOURCE_PARSE_FAILED",
12
+ what: "Invalid Bitbucket SSH URL format",
13
+ details: [input],
14
+ }));
11
15
  }
12
16
  return Effect.succeed({
13
17
  type: "bitbucket",