mewkit 1.6.7 → 1.7.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 (266) hide show
  1. package/dist/commands/init.d.ts +6 -0
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +45 -0
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/migrate.d.ts +21 -0
  6. package/dist/commands/migrate.d.ts.map +1 -0
  7. package/dist/commands/migrate.js +42 -0
  8. package/dist/commands/migrate.js.map +1 -0
  9. package/dist/commands/setup.d.ts.map +1 -1
  10. package/dist/commands/setup.js +23 -0
  11. package/dist/commands/setup.js.map +1 -1
  12. package/dist/index.js +48 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts +2 -0
  15. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts.map +1 -0
  16. package/dist/migrate/__tests__/frontmatter-parser.test.js +73 -0
  17. package/dist/migrate/__tests__/frontmatter-parser.test.js.map +1 -0
  18. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts +2 -0
  19. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts.map +1 -0
  20. package/dist/migrate/__tests__/md-strip-mewkit.test.js +55 -0
  21. package/dist/migrate/__tests__/md-strip-mewkit.test.js.map +1 -0
  22. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts +2 -0
  23. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts.map +1 -0
  24. package/dist/migrate/__tests__/migrate-scope-resolver.test.js +53 -0
  25. package/dist/migrate/__tests__/migrate-scope-resolver.test.js.map +1 -0
  26. package/dist/migrate/__tests__/process-lock.test.d.ts +2 -0
  27. package/dist/migrate/__tests__/process-lock.test.d.ts.map +1 -0
  28. package/dist/migrate/__tests__/process-lock.test.js +63 -0
  29. package/dist/migrate/__tests__/process-lock.test.js.map +1 -0
  30. package/dist/migrate/__tests__/provider-registry.test.d.ts +2 -0
  31. package/dist/migrate/__tests__/provider-registry.test.d.ts.map +1 -0
  32. package/dist/migrate/__tests__/provider-registry.test.js +53 -0
  33. package/dist/migrate/__tests__/provider-registry.test.js.map +1 -0
  34. package/dist/migrate/__tests__/reconciler.test.d.ts +2 -0
  35. package/dist/migrate/__tests__/reconciler.test.d.ts.map +1 -0
  36. package/dist/migrate/__tests__/reconciler.test.js +180 -0
  37. package/dist/migrate/__tests__/reconciler.test.js.map +1 -0
  38. package/dist/migrate/codex-capabilities.d.ts +17 -0
  39. package/dist/migrate/codex-capabilities.d.ts.map +1 -0
  40. package/dist/migrate/codex-capabilities.js +95 -0
  41. package/dist/migrate/codex-capabilities.js.map +1 -0
  42. package/dist/migrate/config-merger/merge-single-sections.d.ts +20 -0
  43. package/dist/migrate/config-merger/merge-single-sections.d.ts.map +1 -0
  44. package/dist/migrate/config-merger/merge-single-sections.js +169 -0
  45. package/dist/migrate/config-merger/merge-single-sections.js.map +1 -0
  46. package/dist/migrate/converters/claude-to-codex-hooks.d.ts +23 -0
  47. package/dist/migrate/converters/claude-to-codex-hooks.d.ts.map +1 -0
  48. package/dist/migrate/converters/claude-to-codex-hooks.js +80 -0
  49. package/dist/migrate/converters/claude-to-codex-hooks.js.map +1 -0
  50. package/dist/migrate/converters/direct-copy.d.ts +3 -0
  51. package/dist/migrate/converters/direct-copy.d.ts.map +1 -0
  52. package/dist/migrate/converters/direct-copy.js +52 -0
  53. package/dist/migrate/converters/direct-copy.js.map +1 -0
  54. package/dist/migrate/converters/fm-strip.d.ts +4 -0
  55. package/dist/migrate/converters/fm-strip.d.ts.map +1 -0
  56. package/dist/migrate/converters/fm-strip.js +36 -0
  57. package/dist/migrate/converters/fm-strip.js.map +1 -0
  58. package/dist/migrate/converters/fm-to-codex-toml.d.ts +19 -0
  59. package/dist/migrate/converters/fm-to-codex-toml.d.ts.map +1 -0
  60. package/dist/migrate/converters/fm-to-codex-toml.js +93 -0
  61. package/dist/migrate/converters/fm-to-codex-toml.js.map +1 -0
  62. package/dist/migrate/converters/fm-to-fm.d.ts +3 -0
  63. package/dist/migrate/converters/fm-to-fm.d.ts.map +1 -0
  64. package/dist/migrate/converters/fm-to-fm.js +142 -0
  65. package/dist/migrate/converters/fm-to-fm.js.map +1 -0
  66. package/dist/migrate/converters/fm-to-json.d.ts +12 -0
  67. package/dist/migrate/converters/fm-to-json.d.ts.map +1 -0
  68. package/dist/migrate/converters/fm-to-json.js +55 -0
  69. package/dist/migrate/converters/fm-to-json.js.map +1 -0
  70. package/dist/migrate/converters/fm-to-yaml.d.ts +4 -0
  71. package/dist/migrate/converters/fm-to-yaml.d.ts.map +1 -0
  72. package/dist/migrate/converters/fm-to-yaml.js +62 -0
  73. package/dist/migrate/converters/fm-to-yaml.js.map +1 -0
  74. package/dist/migrate/converters/gemini-hook-event-map.d.ts +6 -0
  75. package/dist/migrate/converters/gemini-hook-event-map.d.ts.map +1 -0
  76. package/dist/migrate/converters/gemini-hook-event-map.js +41 -0
  77. package/dist/migrate/converters/gemini-hook-event-map.js.map +1 -0
  78. package/dist/migrate/converters/index.d.ts +12 -0
  79. package/dist/migrate/converters/index.d.ts.map +1 -0
  80. package/dist/migrate/converters/index.js +66 -0
  81. package/dist/migrate/converters/index.js.map +1 -0
  82. package/dist/migrate/converters/md-strip.d.ts +19 -0
  83. package/dist/migrate/converters/md-strip.d.ts.map +1 -0
  84. package/dist/migrate/converters/md-strip.js +290 -0
  85. package/dist/migrate/converters/md-strip.js.map +1 -0
  86. package/dist/migrate/converters/md-to-kiro-steering.d.ts +3 -0
  87. package/dist/migrate/converters/md-to-kiro-steering.d.ts.map +1 -0
  88. package/dist/migrate/converters/md-to-kiro-steering.js +90 -0
  89. package/dist/migrate/converters/md-to-kiro-steering.js.map +1 -0
  90. package/dist/migrate/converters/md-to-mdc.d.ts +3 -0
  91. package/dist/migrate/converters/md-to-mdc.d.ts.map +1 -0
  92. package/dist/migrate/converters/md-to-mdc.js +19 -0
  93. package/dist/migrate/converters/md-to-mdc.js.map +1 -0
  94. package/dist/migrate/converters/md-to-toml.d.ts +4 -0
  95. package/dist/migrate/converters/md-to-toml.d.ts.map +1 -0
  96. package/dist/migrate/converters/md-to-toml.js +25 -0
  97. package/dist/migrate/converters/md-to-toml.js.map +1 -0
  98. package/dist/migrate/converters/skill-md.d.ts +3 -0
  99. package/dist/migrate/converters/skill-md.d.ts.map +1 -0
  100. package/dist/migrate/converters/skill-md.js +18 -0
  101. package/dist/migrate/converters/skill-md.js.map +1 -0
  102. package/dist/migrate/discovery/agents-discovery.d.ts +3 -0
  103. package/dist/migrate/discovery/agents-discovery.d.ts.map +1 -0
  104. package/dist/migrate/discovery/agents-discovery.js +42 -0
  105. package/dist/migrate/discovery/agents-discovery.js.map +1 -0
  106. package/dist/migrate/discovery/commands-discovery.d.ts +3 -0
  107. package/dist/migrate/discovery/commands-discovery.d.ts.map +1 -0
  108. package/dist/migrate/discovery/commands-discovery.js +60 -0
  109. package/dist/migrate/discovery/commands-discovery.js.map +1 -0
  110. package/dist/migrate/discovery/config-discovery.d.ts +3 -0
  111. package/dist/migrate/discovery/config-discovery.d.ts.map +1 -0
  112. package/dist/migrate/discovery/config-discovery.js +17 -0
  113. package/dist/migrate/discovery/config-discovery.js.map +1 -0
  114. package/dist/migrate/discovery/exclusions.d.ts +5 -0
  115. package/dist/migrate/discovery/exclusions.d.ts.map +1 -0
  116. package/dist/migrate/discovery/exclusions.js +31 -0
  117. package/dist/migrate/discovery/exclusions.js.map +1 -0
  118. package/dist/migrate/discovery/handlers-json-filter.d.ts +17 -0
  119. package/dist/migrate/discovery/handlers-json-filter.d.ts.map +1 -0
  120. package/dist/migrate/discovery/handlers-json-filter.js +48 -0
  121. package/dist/migrate/discovery/handlers-json-filter.js.map +1 -0
  122. package/dist/migrate/discovery/hooks-discovery.d.ts +7 -0
  123. package/dist/migrate/discovery/hooks-discovery.d.ts.map +1 -0
  124. package/dist/migrate/discovery/hooks-discovery.js +45 -0
  125. package/dist/migrate/discovery/hooks-discovery.js.map +1 -0
  126. package/dist/migrate/discovery/index.d.ts +10 -0
  127. package/dist/migrate/discovery/index.d.ts.map +1 -0
  128. package/dist/migrate/discovery/index.js +10 -0
  129. package/dist/migrate/discovery/index.js.map +1 -0
  130. package/dist/migrate/discovery/rules-discovery.d.ts +3 -0
  131. package/dist/migrate/discovery/rules-discovery.d.ts.map +1 -0
  132. package/dist/migrate/discovery/rules-discovery.js +53 -0
  133. package/dist/migrate/discovery/rules-discovery.js.map +1 -0
  134. package/dist/migrate/discovery/skills-discovery.d.ts +5 -0
  135. package/dist/migrate/discovery/skills-discovery.d.ts.map +1 -0
  136. package/dist/migrate/discovery/skills-discovery.js +73 -0
  137. package/dist/migrate/discovery/skills-discovery.js.map +1 -0
  138. package/dist/migrate/discovery/source-paths.d.ts +13 -0
  139. package/dist/migrate/discovery/source-paths.d.ts.map +1 -0
  140. package/dist/migrate/discovery/source-paths.js +63 -0
  141. package/dist/migrate/discovery/source-paths.js.map +1 -0
  142. package/dist/migrate/frontmatter-parser.d.ts +4 -0
  143. package/dist/migrate/frontmatter-parser.d.ts.map +1 -0
  144. package/dist/migrate/frontmatter-parser.js +99 -0
  145. package/dist/migrate/frontmatter-parser.js.map +1 -0
  146. package/dist/migrate/hooks/codex-features-flag.d.ts +8 -0
  147. package/dist/migrate/hooks/codex-features-flag.d.ts.map +1 -0
  148. package/dist/migrate/hooks/codex-features-flag.js +146 -0
  149. package/dist/migrate/hooks/codex-features-flag.js.map +1 -0
  150. package/dist/migrate/hooks/codex-hook-wrapper.d.ts +10 -0
  151. package/dist/migrate/hooks/codex-hook-wrapper.d.ts.map +1 -0
  152. package/dist/migrate/hooks/codex-hook-wrapper.js +166 -0
  153. package/dist/migrate/hooks/codex-hook-wrapper.js.map +1 -0
  154. package/dist/migrate/hooks/codex-path-safety.d.ts +5 -0
  155. package/dist/migrate/hooks/codex-path-safety.d.ts.map +1 -0
  156. package/dist/migrate/hooks/codex-path-safety.js +99 -0
  157. package/dist/migrate/hooks/codex-path-safety.js.map +1 -0
  158. package/dist/migrate/hooks/codex-toml-installer.d.ts +15 -0
  159. package/dist/migrate/hooks/codex-toml-installer.d.ts.map +1 -0
  160. package/dist/migrate/hooks/codex-toml-installer.js +124 -0
  161. package/dist/migrate/hooks/codex-toml-installer.js.map +1 -0
  162. package/dist/migrate/hooks/hooks-settings-merger.d.ts +20 -0
  163. package/dist/migrate/hooks/hooks-settings-merger.d.ts.map +1 -0
  164. package/dist/migrate/hooks/hooks-settings-merger.js +273 -0
  165. package/dist/migrate/hooks/hooks-settings-merger.js.map +1 -0
  166. package/dist/migrate/hooks/index.d.ts +7 -0
  167. package/dist/migrate/hooks/index.d.ts.map +1 -0
  168. package/dist/migrate/hooks/index.js +7 -0
  169. package/dist/migrate/hooks/index.js.map +1 -0
  170. package/dist/migrate/hooks/opencode-config-installer.d.ts +31 -0
  171. package/dist/migrate/hooks/opencode-config-installer.d.ts.map +1 -0
  172. package/dist/migrate/hooks/opencode-config-installer.js +116 -0
  173. package/dist/migrate/hooks/opencode-config-installer.js.map +1 -0
  174. package/dist/migrate/index.d.ts +15 -0
  175. package/dist/migrate/index.d.ts.map +1 -0
  176. package/dist/migrate/index.js +15 -0
  177. package/dist/migrate/index.js.map +1 -0
  178. package/dist/migrate/migrate-discover.d.ts +28 -0
  179. package/dist/migrate/migrate-discover.d.ts.map +1 -0
  180. package/dist/migrate/migrate-discover.js +52 -0
  181. package/dist/migrate/migrate-discover.js.map +1 -0
  182. package/dist/migrate/migrate-mode-resolver.d.ts +10 -0
  183. package/dist/migrate/migrate-mode-resolver.d.ts.map +1 -0
  184. package/dist/migrate/migrate-mode-resolver.js +123 -0
  185. package/dist/migrate/migrate-mode-resolver.js.map +1 -0
  186. package/dist/migrate/migrate-orchestrator.d.ts +9 -0
  187. package/dist/migrate/migrate-orchestrator.d.ts.map +1 -0
  188. package/dist/migrate/migrate-orchestrator.js +204 -0
  189. package/dist/migrate/migrate-orchestrator.js.map +1 -0
  190. package/dist/migrate/migrate-scope-resolver.d.ts +19 -0
  191. package/dist/migrate/migrate-scope-resolver.d.ts.map +1 -0
  192. package/dist/migrate/migrate-scope-resolver.js +81 -0
  193. package/dist/migrate/migrate-scope-resolver.js.map +1 -0
  194. package/dist/migrate/migrate-ui-summary.d.ts +14 -0
  195. package/dist/migrate/migrate-ui-summary.d.ts.map +1 -0
  196. package/dist/migrate/migrate-ui-summary.js +65 -0
  197. package/dist/migrate/migrate-ui-summary.js.map +1 -0
  198. package/dist/migrate/model-taxonomy.d.ts +16 -0
  199. package/dist/migrate/model-taxonomy.d.ts.map +1 -0
  200. package/dist/migrate/model-taxonomy.js +58 -0
  201. package/dist/migrate/model-taxonomy.js.map +1 -0
  202. package/dist/migrate/portable-installer.d.ts +14 -0
  203. package/dist/migrate/portable-installer.d.ts.map +1 -0
  204. package/dist/migrate/portable-installer.js +159 -0
  205. package/dist/migrate/portable-installer.js.map +1 -0
  206. package/dist/migrate/provider-overrides.d.ts +8 -0
  207. package/dist/migrate/provider-overrides.d.ts.map +1 -0
  208. package/dist/migrate/provider-overrides.js +40 -0
  209. package/dist/migrate/provider-overrides.js.map +1 -0
  210. package/dist/migrate/provider-registry-utils.d.ts +23 -0
  211. package/dist/migrate/provider-registry-utils.d.ts.map +1 -0
  212. package/dist/migrate/provider-registry-utils.js +67 -0
  213. package/dist/migrate/provider-registry-utils.js.map +1 -0
  214. package/dist/migrate/provider-registry.d.ts +5 -0
  215. package/dist/migrate/provider-registry.d.ts.map +1 -0
  216. package/dist/migrate/provider-registry.js +327 -0
  217. package/dist/migrate/provider-registry.js.map +1 -0
  218. package/dist/migrate/reconcile/checksum-utils.d.ts +8 -0
  219. package/dist/migrate/reconcile/checksum-utils.d.ts.map +1 -0
  220. package/dist/migrate/reconcile/checksum-utils.js +32 -0
  221. package/dist/migrate/reconcile/checksum-utils.js.map +1 -0
  222. package/dist/migrate/reconcile/conflict-resolver.d.ts +8 -0
  223. package/dist/migrate/reconcile/conflict-resolver.d.ts.map +1 -0
  224. package/dist/migrate/reconcile/conflict-resolver.js +59 -0
  225. package/dist/migrate/reconcile/conflict-resolver.js.map +1 -0
  226. package/dist/migrate/reconcile/diff-display.d.ts +6 -0
  227. package/dist/migrate/reconcile/diff-display.d.ts.map +1 -0
  228. package/dist/migrate/reconcile/diff-display.js +40 -0
  229. package/dist/migrate/reconcile/diff-display.js.map +1 -0
  230. package/dist/migrate/reconcile/index.d.ts +10 -0
  231. package/dist/migrate/reconcile/index.d.ts.map +1 -0
  232. package/dist/migrate/reconcile/index.js +10 -0
  233. package/dist/migrate/reconcile/index.js.map +1 -0
  234. package/dist/migrate/reconcile/output-sanitizer.d.ts +3 -0
  235. package/dist/migrate/reconcile/output-sanitizer.d.ts.map +1 -0
  236. package/dist/migrate/reconcile/output-sanitizer.js +42 -0
  237. package/dist/migrate/reconcile/output-sanitizer.js.map +1 -0
  238. package/dist/migrate/reconcile/portable-registry.d.ts +142 -0
  239. package/dist/migrate/reconcile/portable-registry.d.ts.map +1 -0
  240. package/dist/migrate/reconcile/portable-registry.js +224 -0
  241. package/dist/migrate/reconcile/portable-registry.js.map +1 -0
  242. package/dist/migrate/reconcile/process-lock.d.ts +15 -0
  243. package/dist/migrate/reconcile/process-lock.d.ts.map +1 -0
  244. package/dist/migrate/reconcile/process-lock.js +77 -0
  245. package/dist/migrate/reconcile/process-lock.js.map +1 -0
  246. package/dist/migrate/reconcile/reconcile-state-builders.d.ts +24 -0
  247. package/dist/migrate/reconcile/reconcile-state-builders.d.ts.map +1 -0
  248. package/dist/migrate/reconcile/reconcile-state-builders.js +185 -0
  249. package/dist/migrate/reconcile/reconcile-state-builders.js.map +1 -0
  250. package/dist/migrate/reconcile/reconcile-types.d.ts +113 -0
  251. package/dist/migrate/reconcile/reconcile-types.d.ts.map +1 -0
  252. package/dist/migrate/reconcile/reconcile-types.js +42 -0
  253. package/dist/migrate/reconcile/reconcile-types.js.map +1 -0
  254. package/dist/migrate/reconcile/reconciler.d.ts +3 -0
  255. package/dist/migrate/reconcile/reconciler.d.ts.map +1 -0
  256. package/dist/migrate/reconcile/reconciler.js +445 -0
  257. package/dist/migrate/reconcile/reconciler.js.map +1 -0
  258. package/dist/migrate/skill-directory-installer.d.ts +23 -0
  259. package/dist/migrate/skill-directory-installer.d.ts.map +1 -0
  260. package/dist/migrate/skill-directory-installer.js +55 -0
  261. package/dist/migrate/skill-directory-installer.js.map +1 -0
  262. package/dist/migrate/types.d.ts +172 -0
  263. package/dist/migrate/types.d.ts.map +1 -0
  264. package/dist/migrate/types.js +45 -0
  265. package/dist/migrate/types.js.map +1 -0
  266. package/package.json +10 -2
@@ -0,0 +1,15 @@
1
+ export * from "./types.js";
2
+ export * from "./frontmatter-parser.js";
3
+ export * from "./migrate-scope-resolver.js";
4
+ export * from "./provider-registry.js";
5
+ export * from "./provider-registry-utils.js";
6
+ export * from "./provider-overrides.js";
7
+ export * from "./model-taxonomy.js";
8
+ export * from "./codex-capabilities.js";
9
+ export * as discovery from "./discovery/index.js";
10
+ export { convertItem } from "./converters/index.js";
11
+ export * as converters from "./converters/index.js";
12
+ export * as reconcile from "./reconcile/index.js";
13
+ export * as hooks from "./hooks/index.js";
14
+ export { buildMergeSectionContent, computeManagedSectionChecksums, getMergeSectionKey, parseMergedSections, type MergeSectionKind, type ParsedSection, } from "./config-merger/merge-single-sections.js";
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACN,wBAAwB,EACxB,8BAA8B,EAC9B,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,aAAa,GAClB,MAAM,0CAA0C,CAAC"}
@@ -0,0 +1,15 @@
1
+ export * from "./types.js";
2
+ export * from "./frontmatter-parser.js";
3
+ export * from "./migrate-scope-resolver.js";
4
+ export * from "./provider-registry.js";
5
+ export * from "./provider-registry-utils.js";
6
+ export * from "./provider-overrides.js";
7
+ export * from "./model-taxonomy.js";
8
+ export * from "./codex-capabilities.js";
9
+ export * as discovery from "./discovery/index.js";
10
+ export { convertItem } from "./converters/index.js";
11
+ export * as converters from "./converters/index.js";
12
+ export * as reconcile from "./reconcile/index.js";
13
+ export * as hooks from "./hooks/index.js";
14
+ export { buildMergeSectionContent, computeManagedSectionChecksums, getMergeSectionKey, parseMergedSections, } from "./config-merger/merge-single-sections.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACN,wBAAwB,EACxB,8BAA8B,EAC9B,kBAAkB,EAClB,mBAAmB,GAGnB,MAAM,0CAA0C,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { type SourcePaths } from "./discovery/index.js";
2
+ import type { MigrationScope } from "./migrate-scope-resolver.js";
3
+ import type { PortableItem, PortableType, SkillInfo } from "./types.js";
4
+ export interface DiscoveredItems {
5
+ agents: PortableItem[];
6
+ commands: PortableItem[];
7
+ skills: SkillInfo[];
8
+ config: PortableItem | null;
9
+ rules: PortableItem[];
10
+ hooks: PortableItem[];
11
+ skippedShellHooks: string[];
12
+ source: SourcePaths;
13
+ }
14
+ /**
15
+ * Resolve source paths and walk every enabled type.
16
+ * Returns empty arrays for types disabled by the resolved scope.
17
+ */
18
+ export declare function discoverAll(scope: MigrationScope, options: {
19
+ source?: string;
20
+ bundledKitDir: string;
21
+ }): Promise<DiscoveredItems>;
22
+ /**
23
+ * Flatten discovered items into a single PortableItem array (for source-state building).
24
+ * Skill directories are NOT included — they go through installSkillDirectory directly.
25
+ */
26
+ export declare function flattenForReconcile(d: DiscoveredItems): PortableItem[];
27
+ export declare function itemsByType(d: DiscoveredItems): Record<PortableType, PortableItem[]>;
28
+ //# sourceMappingURL=migrate-discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-discover.d.ts","sourceRoot":"","sources":["../../src/migrate/migrate-discover.ts"],"names":[],"mappings":"AAEA,OAAO,EAQN,KAAK,WAAW,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExE,MAAM,WAAW,eAAe;IAC/B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAChC,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAAC,eAAe,CAAC,CAsB1B;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,eAAe,GAAG,YAAY,EAAE,CAQtE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,CAAC,CASpF"}
@@ -0,0 +1,52 @@
1
+ // Discovery wrapper for orchestrator: walks .claude/ for all enabled types.
2
+ import { discoverAgents, discoverCommands, discoverConfig, discoverHooks, discoverRules, discoverSkills, resolveSourcePaths, } from "./discovery/index.js";
3
+ /**
4
+ * Resolve source paths and walk every enabled type.
5
+ * Returns empty arrays for types disabled by the resolved scope.
6
+ */
7
+ export async function discoverAll(scope, options) {
8
+ const source = resolveSourcePaths(options.source, options.bundledKitDir);
9
+ const agents = scope.agents ? await discoverAgents(source.agents) : [];
10
+ const commands = scope.commands ? await discoverCommands(source.commands) : [];
11
+ const skills = scope.skills ? await discoverSkills(source.skills) : [];
12
+ const config = scope.config ? await discoverConfig(source.configFile) : null;
13
+ const rules = scope.rules ? await discoverRules(source.rules) : [];
14
+ const hookResult = scope.hooks
15
+ ? await discoverHooks(source.hooks)
16
+ : { items: [], skippedShellHooks: [] };
17
+ return {
18
+ agents,
19
+ commands,
20
+ skills,
21
+ config,
22
+ rules,
23
+ hooks: hookResult.items,
24
+ skippedShellHooks: hookResult.skippedShellHooks,
25
+ source,
26
+ };
27
+ }
28
+ /**
29
+ * Flatten discovered items into a single PortableItem array (for source-state building).
30
+ * Skill directories are NOT included — they go through installSkillDirectory directly.
31
+ */
32
+ export function flattenForReconcile(d) {
33
+ const items = [];
34
+ items.push(...d.agents);
35
+ items.push(...d.commands);
36
+ items.push(...d.rules);
37
+ items.push(...d.hooks);
38
+ if (d.config)
39
+ items.push(d.config);
40
+ return items;
41
+ }
42
+ export function itemsByType(d) {
43
+ return {
44
+ agent: d.agents,
45
+ command: d.commands,
46
+ skill: [],
47
+ config: d.config ? [d.config] : [],
48
+ rules: d.rules,
49
+ hooks: d.hooks,
50
+ };
51
+ }
52
+ //# sourceMappingURL=migrate-discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-discover.js","sourceRoot":"","sources":["../../src/migrate/migrate-discover.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAE5E,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,GAElB,MAAM,sBAAsB,CAAC;AAe9B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,KAAqB,EACrB,OAAmD;IAEnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEzE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK;QAC7B,CAAC,CAAC,MAAM,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC;QACnC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IAExC,OAAO;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;QAC/C,MAAM;KACN,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAkB;IACrD,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnC,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAkB;IAC7C,OAAO;QACN,KAAK,EAAE,CAAC,CAAC,MAAM;QACf,OAAO,EAAE,CAAC,CAAC,QAAQ;QACnB,KAAK,EAAE,EAAE;QACT,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QAClC,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;KACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { MigrateOptions, ProviderType } from "./types.js";
2
+ export declare class MewkitMigrateError extends Error {
3
+ exitCode: number;
4
+ constructor(message: string, exitCode?: number);
5
+ }
6
+ export declare function validateFlags(options: MigrateOptions, argv: string[]): void;
7
+ export declare function selectProviders(options: MigrateOptions): Promise<ProviderType[]>;
8
+ export declare function selectScope(options: MigrateOptions): Promise<boolean>;
9
+ export declare function warnUnverifiedProviders(providers_: ProviderType[]): void;
10
+ //# sourceMappingURL=migrate-mode-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-mode-resolver.d.ts","sourceRoot":"","sources":["../../src/migrate/migrate-mode-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ/D,qBAAa,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,EAAE,MAAM,CAAC;gBACL,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI;CAIzC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAiB3E;AAED,wBAAsB,eAAe,CACpC,OAAO,EAAE,cAAc,GACrB,OAAO,CAAC,YAAY,EAAE,CAAC,CAqEzB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAe3E;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAQxE"}
@@ -0,0 +1,123 @@
1
+ // Validate flag combinations and resolve provider selection for `mewkit migrate`.
2
+ import * as p from "@clack/prompts";
3
+ import { detectInstalledProviders, getAllProviderTypes } from "./provider-registry-utils.js";
4
+ import { providers } from "./provider-registry.js";
5
+ const ALL_TARGET_TYPES = getAllProviderTypes().filter((t) => t !== "claude-code");
6
+ export class MewkitMigrateError extends Error {
7
+ exitCode;
8
+ constructor(message, exitCode = 1) {
9
+ super(message);
10
+ this.exitCode = exitCode;
11
+ }
12
+ }
13
+ export function validateFlags(options, argv) {
14
+ if (options.install && options.reconcile) {
15
+ throw new MewkitMigrateError("--install and --reconcile are mutually exclusive", 2);
16
+ }
17
+ if (options.reinstallEmptyDirs && options.respectDeletions) {
18
+ throw new MewkitMigrateError("--reinstall-empty-dirs and --respect-deletions are mutually exclusive", 2);
19
+ }
20
+ if (options.tool === "claude-code") {
21
+ throw new MewkitMigrateError("claude-code is mewkit's source format, not a migration target. Use 'mewkit init' to scaffold .claude/.", 2);
22
+ }
23
+ void argv;
24
+ }
25
+ export async function selectProviders(options) {
26
+ if (options.tools && options.tools.length > 0) {
27
+ const unknown = [];
28
+ const valid = [];
29
+ for (const t of options.tools) {
30
+ if (ALL_TARGET_TYPES.includes(t))
31
+ valid.push(t);
32
+ else
33
+ unknown.push(t);
34
+ }
35
+ if (unknown.length > 0) {
36
+ throw new MewkitMigrateError(`Unknown tool(s): ${unknown.join(", ")}`, 2);
37
+ }
38
+ if (valid.length === 0) {
39
+ throw new MewkitMigrateError("No valid tools in --migrate-to list", 2);
40
+ }
41
+ return valid;
42
+ }
43
+ if (options.tool) {
44
+ const tool = options.tool;
45
+ if (!ALL_TARGET_TYPES.includes(tool)) {
46
+ throw new MewkitMigrateError(`Unknown tool: ${options.tool}`, 2);
47
+ }
48
+ return [tool];
49
+ }
50
+ if (options.all)
51
+ return [...ALL_TARGET_TYPES];
52
+ if (options.yes) {
53
+ const result = await safeDetectInstalledTargets();
54
+ if (result.failed) {
55
+ throw new MewkitMigrateError(`Provider detection failed (${result.error ?? "unknown error"}). Pass --all or specify a tool explicitly to proceed in non-interactive mode.`, 2);
56
+ }
57
+ if (result.installed.length === 0) {
58
+ console.log("[i] No installed providers detected; defaulting to all 15 targets.");
59
+ return [...ALL_TARGET_TYPES];
60
+ }
61
+ return result.installed;
62
+ }
63
+ if (!process.stdout.isTTY) {
64
+ throw new MewkitMigrateError("Non-TTY environment without --yes/--all. Specify a tool or pass --yes for non-interactive auto-detect.", 2);
65
+ }
66
+ // Interactive mode tolerates detection failure — picker still works without hints.
67
+ const detectionResult = await safeDetectInstalledTargets();
68
+ if (detectionResult.failed) {
69
+ console.log(`[!] Provider detection failed: ${detectionResult.error ?? "unknown error"}. Continuing without detection hints.`);
70
+ }
71
+ const detected = detectionResult.installed;
72
+ const choice = await p.multiselect({
73
+ message: "Select providers to migrate to:",
74
+ options: ALL_TARGET_TYPES.map((t) => ({
75
+ value: t,
76
+ label: providers[t].displayName,
77
+ hint: detected.includes(t) ? "(installed)" : undefined,
78
+ })),
79
+ required: true,
80
+ initialValues: detected.length > 0 ? detected : ALL_TARGET_TYPES,
81
+ });
82
+ if (p.isCancel(choice))
83
+ throw new MewkitMigrateError("Cancelled", 130);
84
+ return choice;
85
+ }
86
+ export async function selectScope(options) {
87
+ if (options.global)
88
+ return true;
89
+ if (options.yes || !process.stdout.isTTY)
90
+ return false;
91
+ const choice = await p.select({
92
+ message: "Installation scope:",
93
+ options: [
94
+ { value: "project", label: "Project (./.cursor/, etc.)" },
95
+ { value: "global", label: "Global (~/.cursor/, etc.)" },
96
+ ],
97
+ initialValue: "project",
98
+ });
99
+ if (p.isCancel(choice))
100
+ throw new MewkitMigrateError("Cancelled", 130);
101
+ return choice === "global";
102
+ }
103
+ export function warnUnverifiedProviders(providers_) {
104
+ for (const p of providers_) {
105
+ if (providers[p]._unverified) {
106
+ console.log(`[!] ${providers[p].displayName} support is UNVERIFIED. Migration may produce broken output. Report issues at <repo>/issues if it fails.`);
107
+ }
108
+ }
109
+ }
110
+ /** Detect installed providers, catching probe failures separately from genuine
111
+ * empty results. Callers in non-interactive mode should treat failures as fatal. */
112
+ async function safeDetectInstalledTargets() {
113
+ try {
114
+ const list = await detectInstalledProviders();
115
+ const installed = list.filter((t) => t !== "claude-code");
116
+ return { installed, failed: false };
117
+ }
118
+ catch (err) {
119
+ const msg = err instanceof Error ? err.message : String(err);
120
+ return { installed: [], failed: true, error: msg };
121
+ }
122
+ }
123
+ //# sourceMappingURL=migrate-mode-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-mode-resolver.js","sourceRoot":"","sources":["../../src/migrate/migrate-mode-resolver.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,gBAAgB,GAAoB,mBAAmB,EAAqB,CAAC,MAAM,CACxF,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,aAAa,CAC7C,CAAC;AAEF,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC5C,QAAQ,CAAS;IACjB,YAAY,OAAe,EAAE,QAAQ,GAAG,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;CACD;AAED,MAAM,UAAU,aAAa,CAAC,OAAuB,EAAE,IAAc;IACpE,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC1C,MAAM,IAAI,kBAAkB,CAAC,kDAAkD,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC5D,MAAM,IAAI,kBAAkB,CAC3B,uEAAuE,EACvE,CAAC,CACD,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACpC,MAAM,IAAI,kBAAkB,CAC3B,wGAAwG,EACxG,CAAC,CACD,CAAC;IACH,CAAC;IACD,KAAK,IAAI,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACpC,OAAuB;IAEvB,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAiB,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAiB,CAAC,CAAC;;gBAC3E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,kBAAkB,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAoB,CAAC;QAC1C,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,GAAG;QAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAE9C,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,MAAM,0BAA0B,EAAE,CAAC;QAClD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,IAAI,kBAAkB,CAC3B,8BAA8B,MAAM,CAAC,KAAK,IAAI,eAAe,gFAAgF,EAC7I,CAAC,CACD,CAAC;QACH,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;YAClF,OAAO,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,MAAM,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,kBAAkB,CAC3B,wGAAwG,EACxG,CAAC,CACD,CAAC;IACH,CAAC;IAED,mFAAmF;IACnF,MAAM,eAAe,GAAG,MAAM,0BAA0B,EAAE,CAAC;IAC3D,IAAI,eAAe,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kCAAkC,eAAe,CAAC,KAAK,IAAI,eAAe,uCAAuC,CAAC,CAAC;IAChI,CAAC;IACD,MAAM,QAAQ,GAAmB,eAAe,CAAC,SAAS,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC;QAClC,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW;YAC/B,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;SACtD,CAAC,CAAC;QACH,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB;KAChE,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvE,OAAO,MAAwB,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAuB;IACxD,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEvD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;QAC7B,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE;YACR,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,4BAA4B,EAAE;YACzD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,2BAA2B,EAAE;SACvD;QACD,YAAY,EAAE,SAAS;KACvB,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvE,OAAO,MAAM,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAA0B;IACjE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC5B,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CACV,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,0GAA0G,CACzI,CAAC;QACH,CAAC;IACF,CAAC;AACF,CAAC;AAUD;qFACqF;AACrF,KAAK,UAAU,0BAA0B;IACxC,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,MAAM,wBAAwB,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAmB,CAAC;QAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IACpD,CAAC;AACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { MewkitMigrateError } from "./migrate-mode-resolver.js";
2
+ import type { MigrateOptions } from "./types.js";
3
+ export interface RunMigrateContext {
4
+ bundledKitDir: string;
5
+ argv: string[];
6
+ }
7
+ export declare function runMigrate(options: MigrateOptions, ctx: RunMigrateContext): Promise<number>;
8
+ export { MewkitMigrateError };
9
+ //# sourceMappingURL=migrate-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-orchestrator.d.ts","sourceRoot":"","sources":["../../src/migrate/migrate-orchestrator.ts"],"names":[],"mappings":"AASA,OAAO,EACN,kBAAkB,EAKlB,MAAM,4BAA4B,CAAC;AAmBpC,OAAO,KAAK,EAAE,cAAc,EAAuD,MAAM,YAAY,CAAC;AAEtG,MAAM,WAAW,iBAAiB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;CACf;AAED,wBAAsB,UAAU,CAC/B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAE,iBAAiB,GACpB,OAAO,CAAC,MAAM,CAAC,CA4BjB;AA0MD,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,204 @@
1
+ // Main migration orchestrator. Composes all phases into runMigrate(options).
2
+ import { existsSync } from "node:fs";
3
+ import { readFile } from "node:fs/promises";
4
+ import * as p from "@clack/prompts";
5
+ import pc from "picocolors";
6
+ import { applyMewkitOverrides } from "./provider-overrides.js";
7
+ import { resolveMigrationScope } from "./migrate-scope-resolver.js";
8
+ import { discoverAll, flattenForReconcile, itemsByType } from "./migrate-discover.js";
9
+ import { MewkitMigrateError, selectProviders, selectScope, validateFlags, warnUnverifiedProviders, } from "./migrate-mode-resolver.js";
10
+ import { providers } from "./provider-registry.js";
11
+ import { detectProviderPathCollisions, getPortableInstallPath } from "./provider-registry-utils.js";
12
+ import { acquireMigrationLock, buildSourceItemState, buildTargetStates, buildTypeDirectoryStates, generateDiff, readPortableRegistry, reconcile, releaseMigrationLock, resolveConflict, } from "./reconcile/index.js";
13
+ import { convertItem } from "./converters/index.js";
14
+ import { executeDeleteAction, executeInstallAction } from "./portable-installer.js";
15
+ import { installSkillDirectory } from "./skill-directory-installer.js";
16
+ import { printActionDetails, printFinalSummary, printPreflight } from "./migrate-ui-summary.js";
17
+ export async function runMigrate(options, ctx) {
18
+ applyMewkitOverrides({ preferAgentsMd: options.preferAgentsMd });
19
+ validateFlags(options, ctx.argv);
20
+ const scope = resolveMigrationScope(ctx.argv, {
21
+ only: options.only,
22
+ skipConfig: options.skipConfig,
23
+ skipRules: options.skipRules,
24
+ skipHooks: options.skipHooks,
25
+ });
26
+ const targets = await selectProviders(options);
27
+ warnUnverifiedProviders(targets);
28
+ const isGlobal = await selectScope(options);
29
+ const lockResult = await acquireMigrationLock({ scope: isGlobal ? "global" : "project" });
30
+ if (!lockResult.acquired) {
31
+ console.error(pc.red(`Another mewkit migrate is in progress (PID ${lockResult.heldBy ?? "unknown"})`));
32
+ return 1;
33
+ }
34
+ try {
35
+ return await runMigrateUnderLock(options, ctx, scope, targets, isGlobal);
36
+ }
37
+ finally {
38
+ await releaseMigrationLock(lockResult.lockPath);
39
+ }
40
+ }
41
+ async function runMigrateUnderLock(options, ctx, scope, targets, isGlobal) {
42
+ const spinner = process.stdout.isTTY ? p.spinner() : null;
43
+ spinner?.start("Discovering portable items...");
44
+ const discovered = await discoverAll(scope, {
45
+ source: options.source,
46
+ bundledKitDir: ctx.bundledKitDir,
47
+ });
48
+ spinner?.stop("Discovery complete.");
49
+ const sourceItems = flattenForReconcile(discovered).map((item) => buildSourceItemState(item, item.type, targets));
50
+ const registry = await readPortableRegistry();
51
+ const targetStates = await buildTargetStates(registry.installations);
52
+ const typeDirectoryStates = buildTypeDirectoryStates(targets.map((provider) => ({ provider, global: isGlobal })), ["agent", "command", "skill", "config", "rules", "hooks"]);
53
+ const plan = reconcile({
54
+ sourceItems,
55
+ registry,
56
+ targetStates,
57
+ providerConfigs: targets.map((provider) => ({ provider, global: isGlobal })),
58
+ typeDirectoryStates,
59
+ force: options.force,
60
+ respectDeletions: options.respectDeletions,
61
+ });
62
+ for (const action of plan.actions) {
63
+ if (!action.targetPath) {
64
+ action.targetPath =
65
+ getPortableInstallPath(action.item, action.provider, providerKey(action.type), { global: action.global }) ??
66
+ "";
67
+ }
68
+ }
69
+ const collisions = detectProviderPathCollisions(targets, { global: isGlobal });
70
+ const collisionBanners = collisions.map((c) => `Shared target: ${c.path} (${c.portableType}) used by ${c.providers.join(" + ")} — each provider writes the same content here`);
71
+ printPreflight(plan, {
72
+ source: { root: discovered.source.root, origin: discovered.source.origin },
73
+ skippedShellHooks: discovered.skippedShellHooks.length,
74
+ bannerExtras: collisionBanners,
75
+ });
76
+ if (options.dryRun) {
77
+ printActionDetails(plan.actions);
78
+ console.log();
79
+ console.log(pc.dim("(dry run — no files written)"));
80
+ return 0;
81
+ }
82
+ const itemsByT = itemsByType(discovered);
83
+ // Compute diffs lazily for conflicting actions so the "Show diff" prompt has data.
84
+ for (const action of plan.actions) {
85
+ if (action.action !== "conflict")
86
+ continue;
87
+ await attachConflictDiff(action, itemsByT);
88
+ const policy = options.force ? "overwrite" : "keep";
89
+ const resolution = await resolveConflict(action, {
90
+ interactive: !!process.stdout.isTTY && !options.yes,
91
+ color: !!process.stdout.isTTY,
92
+ nonInteractivePolicy: policy,
93
+ });
94
+ action.resolution = resolution;
95
+ }
96
+ const confirmed = options.yes || !process.stdout.isTTY ||
97
+ (await confirmExecution(plan.summary.install + plan.summary.update + plan.summary.delete));
98
+ if (!confirmed)
99
+ return 130;
100
+ const results = await executePlan(plan.actions, { allItems: itemsByT }, discovered.skills, targets, isGlobal, scope.skills);
101
+ printFinalSummary(results);
102
+ return results.some((r) => !r.success) ? 1 : 0;
103
+ }
104
+ async function confirmExecution(count) {
105
+ const choice = await p.confirm({
106
+ message: `Execute ${count} action(s)?`,
107
+ initialValue: true,
108
+ });
109
+ if (p.isCancel(choice))
110
+ return false;
111
+ return choice === true;
112
+ }
113
+ async function executePlan(actions, ctx, skills, targets, isGlobal, skillsScopeEnabled) {
114
+ const results = [];
115
+ for (const action of actions) {
116
+ if (action.action === "skip")
117
+ continue;
118
+ if (action.action === "conflict" && action.resolution?.type === "keep")
119
+ continue;
120
+ try {
121
+ if (action.action === "delete") {
122
+ results.push(await executeDeleteAction(action));
123
+ }
124
+ else {
125
+ results.push(await executeInstallAction(action, ctx));
126
+ }
127
+ }
128
+ catch (err) {
129
+ results.push({
130
+ action,
131
+ success: false,
132
+ error: err instanceof Error ? err.message : String(err),
133
+ });
134
+ }
135
+ }
136
+ if (skillsScopeEnabled && skills.length > 0) {
137
+ for (const target of targets) {
138
+ if (!providers[target].skills)
139
+ continue;
140
+ for (const skill of skills) {
141
+ const r = await installSkillDirectory(skill, target, { global: isGlobal });
142
+ results.push({
143
+ action: skillActionShim(skill, target, isGlobal, r.path ?? ""),
144
+ success: r.success,
145
+ error: r.error,
146
+ });
147
+ }
148
+ }
149
+ }
150
+ return results;
151
+ }
152
+ function skillActionShim(skill, provider, global, path) {
153
+ return {
154
+ action: "install",
155
+ item: skill.name,
156
+ type: "skill",
157
+ provider,
158
+ global,
159
+ targetPath: path,
160
+ reason: "Skill directory install",
161
+ isDirectoryItem: true,
162
+ };
163
+ }
164
+ function providerKey(type) {
165
+ switch (type) {
166
+ case "agent": return "agents";
167
+ case "command": return "commands";
168
+ case "skill": return "skills";
169
+ case "config": return "config";
170
+ case "rules": return "rules";
171
+ case "hooks": return "hooks";
172
+ }
173
+ }
174
+ /**
175
+ * Read the on-disk target file, run the converter against the matching source item,
176
+ * and attach a unified diff to the action so the conflict resolver's "Show diff" UI
177
+ * has real content. Best-effort — silent failures leave action.diff undefined and
178
+ * the resolver will display "[i] Diff not available."
179
+ */
180
+ async function attachConflictDiff(action, itemsByT) {
181
+ if (action.diff)
182
+ return;
183
+ if (!action.targetPath || !existsSync(action.targetPath))
184
+ return;
185
+ const sourceItem = itemsByT[action.type]?.find((i) => i.name === action.item);
186
+ if (!sourceItem)
187
+ return;
188
+ const providerConfig = providers[action.provider];
189
+ const pathConfig = providerConfig?.[providerKey(action.type)];
190
+ if (!pathConfig)
191
+ return;
192
+ try {
193
+ const targetContent = await readFile(action.targetPath, "utf-8");
194
+ const conversion = convertItem(sourceItem, pathConfig.format, action.provider);
195
+ if (conversion.error)
196
+ return;
197
+ action.diff = generateDiff(targetContent, conversion.content, action.item);
198
+ }
199
+ catch {
200
+ // Read or convert failed — leave diff undefined; resolver handles the missing case.
201
+ }
202
+ }
203
+ export { MewkitMigrateError };
204
+ //# sourceMappingURL=migrate-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-orchestrator.js","sourceRoot":"","sources":["../../src/migrate/migrate-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export interface MigrateScopeOptions {
2
+ config?: boolean;
3
+ rules?: boolean;
4
+ hooks?: boolean;
5
+ skipConfig?: boolean;
6
+ skipRules?: boolean;
7
+ skipHooks?: boolean;
8
+ only?: string;
9
+ }
10
+ export interface MigrationScope {
11
+ agents: boolean;
12
+ commands: boolean;
13
+ skills: boolean;
14
+ config: boolean;
15
+ rules: boolean;
16
+ hooks: boolean;
17
+ }
18
+ export declare function resolveMigrationScope(argv: string[], options: MigrateScopeOptions): MigrationScope;
19
+ //# sourceMappingURL=migrate-scope-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-scope-resolver.d.ts","sourceRoot":"","sources":["../../src/migrate/migrate-scope-resolver.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CACf;AAkBD,wBAAgB,qBAAqB,CACpC,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,mBAAmB,GAC1B,cAAc,CAsEhB"}
@@ -0,0 +1,81 @@
1
+ // Vendored from claudekit-cli (MIT). Source: src/commands/migrate/migrate-scope-resolver.ts
2
+ // Pure logic — no I/O. Resolves which content types to migrate from CLI flags.
3
+ const ALL_TYPES = ["agents", "commands", "skills", "config", "rules", "hooks"];
4
+ function parseOnly(only) {
5
+ if (!only)
6
+ return null;
7
+ const parts = only
8
+ .split(",")
9
+ .map((s) => s.trim().toLowerCase())
10
+ .filter(Boolean);
11
+ const set = new Set();
12
+ for (const part of parts) {
13
+ if (ALL_TYPES.includes(part))
14
+ set.add(part);
15
+ }
16
+ return set;
17
+ }
18
+ export function resolveMigrationScope(argv, options) {
19
+ const argSet = new Set(argv);
20
+ const onlySet = parseOnly(options.only);
21
+ if (onlySet && onlySet.size > 0) {
22
+ const skipConflict = options.skipConfig === true ||
23
+ options.skipRules === true ||
24
+ options.skipHooks === true ||
25
+ argSet.has("--skip-config") ||
26
+ argSet.has("--skip-rules") ||
27
+ argSet.has("--skip-hooks") ||
28
+ argSet.has("--no-config") ||
29
+ argSet.has("--no-rules") ||
30
+ argSet.has("--no-hooks");
31
+ if (skipConflict) {
32
+ throw new Error("--only is mutually exclusive with --skip-* flags");
33
+ }
34
+ return {
35
+ agents: onlySet.has("agents"),
36
+ commands: onlySet.has("commands"),
37
+ skills: onlySet.has("skills"),
38
+ config: onlySet.has("config"),
39
+ rules: onlySet.has("rules"),
40
+ hooks: onlySet.has("hooks"),
41
+ };
42
+ }
43
+ const hasConfigArg = argSet.has("--config");
44
+ const hasRulesArg = argSet.has("--rules");
45
+ const hasHooksArg = argSet.has("--hooks");
46
+ const hasAgentsArg = argSet.has("--agents");
47
+ const hasCommandsArg = argSet.has("--commands");
48
+ const hasSkillsArg = argSet.has("--skills");
49
+ const hasNoConfigArg = argSet.has("--no-config") || argSet.has("--skip-config");
50
+ const hasNoRulesArg = argSet.has("--no-rules") || argSet.has("--skip-rules");
51
+ const hasNoHooksArg = argSet.has("--no-hooks") || argSet.has("--skip-hooks");
52
+ // "Only" mode: any positive --type flag was specified
53
+ const hasOnlyFlag = hasConfigArg ||
54
+ hasRulesArg ||
55
+ hasHooksArg ||
56
+ hasAgentsArg ||
57
+ hasCommandsArg ||
58
+ hasSkillsArg;
59
+ const skipConfig = hasNoConfigArg || options.skipConfig === true || options.config === false;
60
+ const skipRules = hasNoRulesArg || options.skipRules === true || options.rules === false;
61
+ const skipHooks = hasNoHooksArg || options.skipHooks === true || options.hooks === false;
62
+ if (hasOnlyFlag) {
63
+ return {
64
+ agents: hasAgentsArg,
65
+ commands: hasCommandsArg,
66
+ skills: hasSkillsArg,
67
+ config: hasConfigArg && !skipConfig,
68
+ rules: hasRulesArg && !skipRules,
69
+ hooks: hasHooksArg && !skipHooks,
70
+ };
71
+ }
72
+ return {
73
+ agents: true,
74
+ commands: true,
75
+ skills: true,
76
+ config: !skipConfig,
77
+ rules: !skipRules,
78
+ hooks: !skipHooks,
79
+ };
80
+ }
81
+ //# sourceMappingURL=migrate-scope-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-scope-resolver.js","sourceRoot":"","sources":["../../src/migrate/migrate-scope-resolver.ts"],"names":[],"mappings":"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"}