mewkit 1.6.8 → 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 (263) 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/index.js +48 -2
  10. package/dist/index.js.map +1 -1
  11. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts +2 -0
  12. package/dist/migrate/__tests__/frontmatter-parser.test.d.ts.map +1 -0
  13. package/dist/migrate/__tests__/frontmatter-parser.test.js +73 -0
  14. package/dist/migrate/__tests__/frontmatter-parser.test.js.map +1 -0
  15. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts +2 -0
  16. package/dist/migrate/__tests__/md-strip-mewkit.test.d.ts.map +1 -0
  17. package/dist/migrate/__tests__/md-strip-mewkit.test.js +55 -0
  18. package/dist/migrate/__tests__/md-strip-mewkit.test.js.map +1 -0
  19. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts +2 -0
  20. package/dist/migrate/__tests__/migrate-scope-resolver.test.d.ts.map +1 -0
  21. package/dist/migrate/__tests__/migrate-scope-resolver.test.js +53 -0
  22. package/dist/migrate/__tests__/migrate-scope-resolver.test.js.map +1 -0
  23. package/dist/migrate/__tests__/process-lock.test.d.ts +2 -0
  24. package/dist/migrate/__tests__/process-lock.test.d.ts.map +1 -0
  25. package/dist/migrate/__tests__/process-lock.test.js +63 -0
  26. package/dist/migrate/__tests__/process-lock.test.js.map +1 -0
  27. package/dist/migrate/__tests__/provider-registry.test.d.ts +2 -0
  28. package/dist/migrate/__tests__/provider-registry.test.d.ts.map +1 -0
  29. package/dist/migrate/__tests__/provider-registry.test.js +53 -0
  30. package/dist/migrate/__tests__/provider-registry.test.js.map +1 -0
  31. package/dist/migrate/__tests__/reconciler.test.d.ts +2 -0
  32. package/dist/migrate/__tests__/reconciler.test.d.ts.map +1 -0
  33. package/dist/migrate/__tests__/reconciler.test.js +180 -0
  34. package/dist/migrate/__tests__/reconciler.test.js.map +1 -0
  35. package/dist/migrate/codex-capabilities.d.ts +17 -0
  36. package/dist/migrate/codex-capabilities.d.ts.map +1 -0
  37. package/dist/migrate/codex-capabilities.js +95 -0
  38. package/dist/migrate/codex-capabilities.js.map +1 -0
  39. package/dist/migrate/config-merger/merge-single-sections.d.ts +20 -0
  40. package/dist/migrate/config-merger/merge-single-sections.d.ts.map +1 -0
  41. package/dist/migrate/config-merger/merge-single-sections.js +169 -0
  42. package/dist/migrate/config-merger/merge-single-sections.js.map +1 -0
  43. package/dist/migrate/converters/claude-to-codex-hooks.d.ts +23 -0
  44. package/dist/migrate/converters/claude-to-codex-hooks.d.ts.map +1 -0
  45. package/dist/migrate/converters/claude-to-codex-hooks.js +80 -0
  46. package/dist/migrate/converters/claude-to-codex-hooks.js.map +1 -0
  47. package/dist/migrate/converters/direct-copy.d.ts +3 -0
  48. package/dist/migrate/converters/direct-copy.d.ts.map +1 -0
  49. package/dist/migrate/converters/direct-copy.js +52 -0
  50. package/dist/migrate/converters/direct-copy.js.map +1 -0
  51. package/dist/migrate/converters/fm-strip.d.ts +4 -0
  52. package/dist/migrate/converters/fm-strip.d.ts.map +1 -0
  53. package/dist/migrate/converters/fm-strip.js +36 -0
  54. package/dist/migrate/converters/fm-strip.js.map +1 -0
  55. package/dist/migrate/converters/fm-to-codex-toml.d.ts +19 -0
  56. package/dist/migrate/converters/fm-to-codex-toml.d.ts.map +1 -0
  57. package/dist/migrate/converters/fm-to-codex-toml.js +93 -0
  58. package/dist/migrate/converters/fm-to-codex-toml.js.map +1 -0
  59. package/dist/migrate/converters/fm-to-fm.d.ts +3 -0
  60. package/dist/migrate/converters/fm-to-fm.d.ts.map +1 -0
  61. package/dist/migrate/converters/fm-to-fm.js +142 -0
  62. package/dist/migrate/converters/fm-to-fm.js.map +1 -0
  63. package/dist/migrate/converters/fm-to-json.d.ts +12 -0
  64. package/dist/migrate/converters/fm-to-json.d.ts.map +1 -0
  65. package/dist/migrate/converters/fm-to-json.js +55 -0
  66. package/dist/migrate/converters/fm-to-json.js.map +1 -0
  67. package/dist/migrate/converters/fm-to-yaml.d.ts +4 -0
  68. package/dist/migrate/converters/fm-to-yaml.d.ts.map +1 -0
  69. package/dist/migrate/converters/fm-to-yaml.js +62 -0
  70. package/dist/migrate/converters/fm-to-yaml.js.map +1 -0
  71. package/dist/migrate/converters/gemini-hook-event-map.d.ts +6 -0
  72. package/dist/migrate/converters/gemini-hook-event-map.d.ts.map +1 -0
  73. package/dist/migrate/converters/gemini-hook-event-map.js +41 -0
  74. package/dist/migrate/converters/gemini-hook-event-map.js.map +1 -0
  75. package/dist/migrate/converters/index.d.ts +12 -0
  76. package/dist/migrate/converters/index.d.ts.map +1 -0
  77. package/dist/migrate/converters/index.js +66 -0
  78. package/dist/migrate/converters/index.js.map +1 -0
  79. package/dist/migrate/converters/md-strip.d.ts +19 -0
  80. package/dist/migrate/converters/md-strip.d.ts.map +1 -0
  81. package/dist/migrate/converters/md-strip.js +290 -0
  82. package/dist/migrate/converters/md-strip.js.map +1 -0
  83. package/dist/migrate/converters/md-to-kiro-steering.d.ts +3 -0
  84. package/dist/migrate/converters/md-to-kiro-steering.d.ts.map +1 -0
  85. package/dist/migrate/converters/md-to-kiro-steering.js +90 -0
  86. package/dist/migrate/converters/md-to-kiro-steering.js.map +1 -0
  87. package/dist/migrate/converters/md-to-mdc.d.ts +3 -0
  88. package/dist/migrate/converters/md-to-mdc.d.ts.map +1 -0
  89. package/dist/migrate/converters/md-to-mdc.js +19 -0
  90. package/dist/migrate/converters/md-to-mdc.js.map +1 -0
  91. package/dist/migrate/converters/md-to-toml.d.ts +4 -0
  92. package/dist/migrate/converters/md-to-toml.d.ts.map +1 -0
  93. package/dist/migrate/converters/md-to-toml.js +25 -0
  94. package/dist/migrate/converters/md-to-toml.js.map +1 -0
  95. package/dist/migrate/converters/skill-md.d.ts +3 -0
  96. package/dist/migrate/converters/skill-md.d.ts.map +1 -0
  97. package/dist/migrate/converters/skill-md.js +18 -0
  98. package/dist/migrate/converters/skill-md.js.map +1 -0
  99. package/dist/migrate/discovery/agents-discovery.d.ts +3 -0
  100. package/dist/migrate/discovery/agents-discovery.d.ts.map +1 -0
  101. package/dist/migrate/discovery/agents-discovery.js +42 -0
  102. package/dist/migrate/discovery/agents-discovery.js.map +1 -0
  103. package/dist/migrate/discovery/commands-discovery.d.ts +3 -0
  104. package/dist/migrate/discovery/commands-discovery.d.ts.map +1 -0
  105. package/dist/migrate/discovery/commands-discovery.js +60 -0
  106. package/dist/migrate/discovery/commands-discovery.js.map +1 -0
  107. package/dist/migrate/discovery/config-discovery.d.ts +3 -0
  108. package/dist/migrate/discovery/config-discovery.d.ts.map +1 -0
  109. package/dist/migrate/discovery/config-discovery.js +17 -0
  110. package/dist/migrate/discovery/config-discovery.js.map +1 -0
  111. package/dist/migrate/discovery/exclusions.d.ts +5 -0
  112. package/dist/migrate/discovery/exclusions.d.ts.map +1 -0
  113. package/dist/migrate/discovery/exclusions.js +31 -0
  114. package/dist/migrate/discovery/exclusions.js.map +1 -0
  115. package/dist/migrate/discovery/handlers-json-filter.d.ts +17 -0
  116. package/dist/migrate/discovery/handlers-json-filter.d.ts.map +1 -0
  117. package/dist/migrate/discovery/handlers-json-filter.js +48 -0
  118. package/dist/migrate/discovery/handlers-json-filter.js.map +1 -0
  119. package/dist/migrate/discovery/hooks-discovery.d.ts +7 -0
  120. package/dist/migrate/discovery/hooks-discovery.d.ts.map +1 -0
  121. package/dist/migrate/discovery/hooks-discovery.js +45 -0
  122. package/dist/migrate/discovery/hooks-discovery.js.map +1 -0
  123. package/dist/migrate/discovery/index.d.ts +10 -0
  124. package/dist/migrate/discovery/index.d.ts.map +1 -0
  125. package/dist/migrate/discovery/index.js +10 -0
  126. package/dist/migrate/discovery/index.js.map +1 -0
  127. package/dist/migrate/discovery/rules-discovery.d.ts +3 -0
  128. package/dist/migrate/discovery/rules-discovery.d.ts.map +1 -0
  129. package/dist/migrate/discovery/rules-discovery.js +53 -0
  130. package/dist/migrate/discovery/rules-discovery.js.map +1 -0
  131. package/dist/migrate/discovery/skills-discovery.d.ts +5 -0
  132. package/dist/migrate/discovery/skills-discovery.d.ts.map +1 -0
  133. package/dist/migrate/discovery/skills-discovery.js +73 -0
  134. package/dist/migrate/discovery/skills-discovery.js.map +1 -0
  135. package/dist/migrate/discovery/source-paths.d.ts +13 -0
  136. package/dist/migrate/discovery/source-paths.d.ts.map +1 -0
  137. package/dist/migrate/discovery/source-paths.js +63 -0
  138. package/dist/migrate/discovery/source-paths.js.map +1 -0
  139. package/dist/migrate/frontmatter-parser.d.ts +4 -0
  140. package/dist/migrate/frontmatter-parser.d.ts.map +1 -0
  141. package/dist/migrate/frontmatter-parser.js +99 -0
  142. package/dist/migrate/frontmatter-parser.js.map +1 -0
  143. package/dist/migrate/hooks/codex-features-flag.d.ts +8 -0
  144. package/dist/migrate/hooks/codex-features-flag.d.ts.map +1 -0
  145. package/dist/migrate/hooks/codex-features-flag.js +146 -0
  146. package/dist/migrate/hooks/codex-features-flag.js.map +1 -0
  147. package/dist/migrate/hooks/codex-hook-wrapper.d.ts +10 -0
  148. package/dist/migrate/hooks/codex-hook-wrapper.d.ts.map +1 -0
  149. package/dist/migrate/hooks/codex-hook-wrapper.js +166 -0
  150. package/dist/migrate/hooks/codex-hook-wrapper.js.map +1 -0
  151. package/dist/migrate/hooks/codex-path-safety.d.ts +5 -0
  152. package/dist/migrate/hooks/codex-path-safety.d.ts.map +1 -0
  153. package/dist/migrate/hooks/codex-path-safety.js +99 -0
  154. package/dist/migrate/hooks/codex-path-safety.js.map +1 -0
  155. package/dist/migrate/hooks/codex-toml-installer.d.ts +15 -0
  156. package/dist/migrate/hooks/codex-toml-installer.d.ts.map +1 -0
  157. package/dist/migrate/hooks/codex-toml-installer.js +124 -0
  158. package/dist/migrate/hooks/codex-toml-installer.js.map +1 -0
  159. package/dist/migrate/hooks/hooks-settings-merger.d.ts +20 -0
  160. package/dist/migrate/hooks/hooks-settings-merger.d.ts.map +1 -0
  161. package/dist/migrate/hooks/hooks-settings-merger.js +273 -0
  162. package/dist/migrate/hooks/hooks-settings-merger.js.map +1 -0
  163. package/dist/migrate/hooks/index.d.ts +7 -0
  164. package/dist/migrate/hooks/index.d.ts.map +1 -0
  165. package/dist/migrate/hooks/index.js +7 -0
  166. package/dist/migrate/hooks/index.js.map +1 -0
  167. package/dist/migrate/hooks/opencode-config-installer.d.ts +31 -0
  168. package/dist/migrate/hooks/opencode-config-installer.d.ts.map +1 -0
  169. package/dist/migrate/hooks/opencode-config-installer.js +116 -0
  170. package/dist/migrate/hooks/opencode-config-installer.js.map +1 -0
  171. package/dist/migrate/index.d.ts +15 -0
  172. package/dist/migrate/index.d.ts.map +1 -0
  173. package/dist/migrate/index.js +15 -0
  174. package/dist/migrate/index.js.map +1 -0
  175. package/dist/migrate/migrate-discover.d.ts +28 -0
  176. package/dist/migrate/migrate-discover.d.ts.map +1 -0
  177. package/dist/migrate/migrate-discover.js +52 -0
  178. package/dist/migrate/migrate-discover.js.map +1 -0
  179. package/dist/migrate/migrate-mode-resolver.d.ts +10 -0
  180. package/dist/migrate/migrate-mode-resolver.d.ts.map +1 -0
  181. package/dist/migrate/migrate-mode-resolver.js +123 -0
  182. package/dist/migrate/migrate-mode-resolver.js.map +1 -0
  183. package/dist/migrate/migrate-orchestrator.d.ts +9 -0
  184. package/dist/migrate/migrate-orchestrator.d.ts.map +1 -0
  185. package/dist/migrate/migrate-orchestrator.js +204 -0
  186. package/dist/migrate/migrate-orchestrator.js.map +1 -0
  187. package/dist/migrate/migrate-scope-resolver.d.ts +19 -0
  188. package/dist/migrate/migrate-scope-resolver.d.ts.map +1 -0
  189. package/dist/migrate/migrate-scope-resolver.js +81 -0
  190. package/dist/migrate/migrate-scope-resolver.js.map +1 -0
  191. package/dist/migrate/migrate-ui-summary.d.ts +14 -0
  192. package/dist/migrate/migrate-ui-summary.d.ts.map +1 -0
  193. package/dist/migrate/migrate-ui-summary.js +65 -0
  194. package/dist/migrate/migrate-ui-summary.js.map +1 -0
  195. package/dist/migrate/model-taxonomy.d.ts +16 -0
  196. package/dist/migrate/model-taxonomy.d.ts.map +1 -0
  197. package/dist/migrate/model-taxonomy.js +58 -0
  198. package/dist/migrate/model-taxonomy.js.map +1 -0
  199. package/dist/migrate/portable-installer.d.ts +14 -0
  200. package/dist/migrate/portable-installer.d.ts.map +1 -0
  201. package/dist/migrate/portable-installer.js +159 -0
  202. package/dist/migrate/portable-installer.js.map +1 -0
  203. package/dist/migrate/provider-overrides.d.ts +8 -0
  204. package/dist/migrate/provider-overrides.d.ts.map +1 -0
  205. package/dist/migrate/provider-overrides.js +40 -0
  206. package/dist/migrate/provider-overrides.js.map +1 -0
  207. package/dist/migrate/provider-registry-utils.d.ts +23 -0
  208. package/dist/migrate/provider-registry-utils.d.ts.map +1 -0
  209. package/dist/migrate/provider-registry-utils.js +67 -0
  210. package/dist/migrate/provider-registry-utils.js.map +1 -0
  211. package/dist/migrate/provider-registry.d.ts +5 -0
  212. package/dist/migrate/provider-registry.d.ts.map +1 -0
  213. package/dist/migrate/provider-registry.js +327 -0
  214. package/dist/migrate/provider-registry.js.map +1 -0
  215. package/dist/migrate/reconcile/checksum-utils.d.ts +8 -0
  216. package/dist/migrate/reconcile/checksum-utils.d.ts.map +1 -0
  217. package/dist/migrate/reconcile/checksum-utils.js +32 -0
  218. package/dist/migrate/reconcile/checksum-utils.js.map +1 -0
  219. package/dist/migrate/reconcile/conflict-resolver.d.ts +8 -0
  220. package/dist/migrate/reconcile/conflict-resolver.d.ts.map +1 -0
  221. package/dist/migrate/reconcile/conflict-resolver.js +59 -0
  222. package/dist/migrate/reconcile/conflict-resolver.js.map +1 -0
  223. package/dist/migrate/reconcile/diff-display.d.ts +6 -0
  224. package/dist/migrate/reconcile/diff-display.d.ts.map +1 -0
  225. package/dist/migrate/reconcile/diff-display.js +40 -0
  226. package/dist/migrate/reconcile/diff-display.js.map +1 -0
  227. package/dist/migrate/reconcile/index.d.ts +10 -0
  228. package/dist/migrate/reconcile/index.d.ts.map +1 -0
  229. package/dist/migrate/reconcile/index.js +10 -0
  230. package/dist/migrate/reconcile/index.js.map +1 -0
  231. package/dist/migrate/reconcile/output-sanitizer.d.ts +3 -0
  232. package/dist/migrate/reconcile/output-sanitizer.d.ts.map +1 -0
  233. package/dist/migrate/reconcile/output-sanitizer.js +42 -0
  234. package/dist/migrate/reconcile/output-sanitizer.js.map +1 -0
  235. package/dist/migrate/reconcile/portable-registry.d.ts +142 -0
  236. package/dist/migrate/reconcile/portable-registry.d.ts.map +1 -0
  237. package/dist/migrate/reconcile/portable-registry.js +224 -0
  238. package/dist/migrate/reconcile/portable-registry.js.map +1 -0
  239. package/dist/migrate/reconcile/process-lock.d.ts +15 -0
  240. package/dist/migrate/reconcile/process-lock.d.ts.map +1 -0
  241. package/dist/migrate/reconcile/process-lock.js +77 -0
  242. package/dist/migrate/reconcile/process-lock.js.map +1 -0
  243. package/dist/migrate/reconcile/reconcile-state-builders.d.ts +24 -0
  244. package/dist/migrate/reconcile/reconcile-state-builders.d.ts.map +1 -0
  245. package/dist/migrate/reconcile/reconcile-state-builders.js +185 -0
  246. package/dist/migrate/reconcile/reconcile-state-builders.js.map +1 -0
  247. package/dist/migrate/reconcile/reconcile-types.d.ts +113 -0
  248. package/dist/migrate/reconcile/reconcile-types.d.ts.map +1 -0
  249. package/dist/migrate/reconcile/reconcile-types.js +42 -0
  250. package/dist/migrate/reconcile/reconcile-types.js.map +1 -0
  251. package/dist/migrate/reconcile/reconciler.d.ts +3 -0
  252. package/dist/migrate/reconcile/reconciler.d.ts.map +1 -0
  253. package/dist/migrate/reconcile/reconciler.js +445 -0
  254. package/dist/migrate/reconcile/reconciler.js.map +1 -0
  255. package/dist/migrate/skill-directory-installer.d.ts +23 -0
  256. package/dist/migrate/skill-directory-installer.d.ts.map +1 -0
  257. package/dist/migrate/skill-directory-installer.js +55 -0
  258. package/dist/migrate/skill-directory-installer.js.map +1 -0
  259. package/dist/migrate/types.d.ts +172 -0
  260. package/dist/migrate/types.d.ts.map +1 -0
  261. package/dist/migrate/types.js +45 -0
  262. package/dist/migrate/types.js.map +1 -0
  263. package/package.json +10 -2
@@ -0,0 +1,327 @@
1
+ // Vendored from claudekit-cli (MIT). Source: src/commands/portable/provider-registry.ts
2
+ // This file is the declarative capability matrix for all 16 providers (claude-code source + 15 targets).
3
+ // Helpers split into provider-registry-utils.ts. Override patches in provider-overrides.ts.
4
+ // File length exceeds the 200-line house style intentionally — splitting the data table fragments
5
+ // the capability matrix and makes audits harder. The file is a single declarative record.
6
+ import { execFileSync } from "node:child_process";
7
+ import { existsSync, readdirSync, statSync } from "node:fs";
8
+ import { homedir, platform } from "node:os";
9
+ import { join } from "node:path";
10
+ const home = homedir();
11
+ const cwd = process.cwd();
12
+ const isWin = platform() === "win32";
13
+ const OPENCODE_BINARY_NAME = isWin ? "opencode.exe" : "opencode";
14
+ function hasInstallSignal(path) {
15
+ if (!path || !existsSync(path))
16
+ return false;
17
+ try {
18
+ const stat = statSync(path);
19
+ if (stat.isDirectory())
20
+ return readdirSync(path).length > 0;
21
+ if (stat.isFile())
22
+ return true;
23
+ return false;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }
29
+ function hasAnyInstallSignal(paths) {
30
+ return paths.some((path) => hasInstallSignal(path));
31
+ }
32
+ export const binaryCache = new Map();
33
+ export function hasBinaryInPath(name) {
34
+ const cached = binaryCache.get(name);
35
+ if (cached !== undefined)
36
+ return cached;
37
+ try {
38
+ execFileSync(isWin ? "where" : "which", [name], { stdio: "pipe", timeout: 3000 });
39
+ binaryCache.set(name, true);
40
+ return true;
41
+ }
42
+ catch {
43
+ binaryCache.set(name, false);
44
+ return false;
45
+ }
46
+ }
47
+ function hasOpenCodeInstallSignal() {
48
+ return (hasBinaryInPath("opencode") ||
49
+ hasAnyInstallSignal([
50
+ join(cwd, "opencode.json"),
51
+ join(cwd, "opencode.jsonc"),
52
+ join(cwd, ".opencode/agents"),
53
+ join(cwd, ".opencode/commands"),
54
+ join(home, ".config/opencode/AGENTS.md"),
55
+ join(home, ".config/opencode/agents"),
56
+ join(home, ".config/opencode/commands"),
57
+ join(home, ".opencode/bin", OPENCODE_BINARY_NAME),
58
+ ]));
59
+ }
60
+ export const providers = {
61
+ "claude-code": {
62
+ name: "claude-code",
63
+ displayName: "Claude Code",
64
+ subagents: "full",
65
+ agents: { projectPath: ".claude/agents", globalPath: join(home, ".claude/agents"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
66
+ commands: { projectPath: ".claude/commands", globalPath: join(home, ".claude/commands"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
67
+ skills: { projectPath: ".claude/skills", globalPath: join(home, ".claude/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
68
+ config: { projectPath: "CLAUDE.md", globalPath: join(home, ".claude/CLAUDE.md"), format: "direct-copy", writeStrategy: "single-file", fileExtension: ".md" },
69
+ rules: { projectPath: ".claude/rules", globalPath: join(home, ".claude/rules"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
70
+ hooks: { projectPath: ".claude/hooks", globalPath: join(home, ".claude/hooks"), format: "direct-copy", writeStrategy: "per-file", fileExtension: "" },
71
+ settingsJsonPath: { projectPath: ".claude/settings.json", globalPath: join(home, ".claude/settings.json") },
72
+ detect: async () => hasBinaryInPath("claude") ||
73
+ hasAnyInstallSignal([
74
+ join(cwd, ".claude/agents"), join(cwd, ".claude/commands"), join(cwd, ".claude/skills"),
75
+ join(cwd, ".claude/rules"), join(cwd, ".claude/hooks"), join(cwd, "CLAUDE.md"),
76
+ join(home, ".claude/agents"), join(home, ".claude/commands"), join(home, ".claude/skills"),
77
+ join(home, ".claude/rules"), join(home, ".claude/hooks"), join(home, ".claude/CLAUDE.md"),
78
+ ]),
79
+ },
80
+ opencode: {
81
+ name: "opencode",
82
+ displayName: "OpenCode",
83
+ subagents: "full",
84
+ agents: { projectPath: ".opencode/agents", globalPath: join(home, ".config/opencode/agents"), format: "fm-to-fm", writeStrategy: "per-file", fileExtension: ".md" },
85
+ commands: { projectPath: ".opencode/commands", globalPath: join(home, ".config/opencode/commands"), format: "fm-to-fm", writeStrategy: "per-file", fileExtension: ".md" },
86
+ skills: { projectPath: ".claude/skills", globalPath: join(home, ".claude/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
87
+ config: { projectPath: "AGENTS.md", globalPath: join(home, ".config/opencode/AGENTS.md"), format: "md-strip", writeStrategy: "merge-single", fileExtension: ".md" },
88
+ rules: { projectPath: "AGENTS.md", globalPath: join(home, ".config/opencode/AGENTS.md"), format: "md-strip", writeStrategy: "merge-single", fileExtension: ".md" },
89
+ hooks: null,
90
+ settingsJsonPath: null,
91
+ detect: async () => hasOpenCodeInstallSignal(),
92
+ },
93
+ "github-copilot": {
94
+ name: "github-copilot",
95
+ displayName: "GitHub Copilot",
96
+ subagents: "full",
97
+ agents: { projectPath: ".github/agents", globalPath: null, format: "fm-to-fm", writeStrategy: "per-file", fileExtension: ".agent.md" },
98
+ commands: null,
99
+ skills: { projectPath: ".github/skills", globalPath: null, format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
100
+ config: { projectPath: ".github/copilot-instructions.md", globalPath: null, format: "md-strip", writeStrategy: "single-file", fileExtension: ".md" },
101
+ rules: { projectPath: ".github/instructions", globalPath: null, format: "md-strip", writeStrategy: "per-file", fileExtension: ".instructions.md" },
102
+ hooks: null,
103
+ settingsJsonPath: null,
104
+ detect: async () => hasAnyInstallSignal([
105
+ join(cwd, ".github/agents"), join(cwd, ".github/skills"),
106
+ join(cwd, ".github/instructions"), join(cwd, ".github/copilot-instructions.md"),
107
+ ]),
108
+ },
109
+ codex: {
110
+ name: "codex",
111
+ displayName: "Codex",
112
+ subagents: "full",
113
+ agents: { projectPath: ".codex/agents", globalPath: join(home, ".codex/agents"), format: "fm-to-codex-toml", writeStrategy: "codex-toml", fileExtension: ".toml" },
114
+ commands: { projectPath: null, globalPath: join(home, ".codex/prompts"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md", nestedCommands: false },
115
+ skills: { projectPath: ".agents/skills", globalPath: join(home, ".agents/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
116
+ config: { projectPath: "AGENTS.md", globalPath: join(home, ".codex/AGENTS.md"), format: "md-strip", writeStrategy: "merge-single", fileExtension: ".md" },
117
+ rules: { projectPath: "AGENTS.md", globalPath: join(home, ".codex/AGENTS.md"), format: "md-strip", writeStrategy: "merge-single", fileExtension: ".md" },
118
+ hooks: { projectPath: ".codex/hooks", globalPath: join(home, ".codex/hooks"), format: "direct-copy", writeStrategy: "codex-hooks", fileExtension: "" },
119
+ settingsJsonPath: { projectPath: ".codex/hooks.json", globalPath: join(home, ".codex/hooks.json") },
120
+ detect: async () => hasBinaryInPath("codex") ||
121
+ hasAnyInstallSignal([
122
+ join(cwd, ".codex/config.toml"), join(cwd, ".codex/agents"), join(cwd, ".codex/prompts"),
123
+ join(cwd, ".codex/hooks.json"), join(home, ".codex/config.toml"), join(home, ".codex/agents"),
124
+ join(home, ".codex/AGENTS.md"), join(home, ".codex/instructions.md"),
125
+ join(home, ".codex/prompts"), join(home, ".codex/hooks.json"),
126
+ ]),
127
+ },
128
+ droid: {
129
+ name: "droid",
130
+ displayName: "Droid",
131
+ subagents: "full",
132
+ agents: { projectPath: ".factory/droids", globalPath: join(home, ".factory/droids"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
133
+ commands: { projectPath: ".factory/commands", globalPath: join(home, ".factory/commands"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
134
+ skills: { projectPath: ".factory/skills", globalPath: join(home, ".factory/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
135
+ config: { projectPath: "AGENTS.md", globalPath: join(home, ".factory/AGENTS.md"), format: "md-strip", writeStrategy: "single-file", fileExtension: ".md" },
136
+ rules: { projectPath: ".factory/rules", globalPath: join(home, ".factory/rules"), format: "md-strip", writeStrategy: "per-file", fileExtension: ".md" },
137
+ hooks: { projectPath: ".factory/hooks", globalPath: join(home, ".factory/hooks"), format: "direct-copy", writeStrategy: "per-file", fileExtension: "" },
138
+ settingsJsonPath: { projectPath: ".factory/settings.json", globalPath: join(home, ".factory/settings.json") },
139
+ detect: async () => hasBinaryInPath("droid") ||
140
+ hasAnyInstallSignal([
141
+ join(cwd, ".factory/droids"), join(cwd, ".factory/commands"), join(cwd, ".factory/skills"),
142
+ join(cwd, ".factory/rules"), join(cwd, ".factory/hooks"), join(cwd, ".factory/settings.json"),
143
+ join(home, ".factory/droids"), join(home, ".factory/commands"), join(home, ".factory/skills"),
144
+ join(home, ".factory/rules"), join(home, ".factory/hooks"), join(home, ".factory/AGENTS.md"),
145
+ join(home, ".factory/settings.json"),
146
+ ]),
147
+ },
148
+ cursor: {
149
+ name: "cursor",
150
+ displayName: "Cursor",
151
+ subagents: "full",
152
+ agents: { projectPath: ".cursor/rules", globalPath: join(home, ".cursor/rules"), format: "fm-to-fm", writeStrategy: "per-file", fileExtension: ".mdc" },
153
+ commands: null,
154
+ skills: { projectPath: ".agents/skills", globalPath: join(home, ".cursor/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
155
+ config: { projectPath: ".cursor/rules/project-config.mdc", globalPath: join(home, ".cursor/rules/project-config.mdc"), format: "md-to-mdc", writeStrategy: "single-file", fileExtension: ".mdc" },
156
+ rules: { projectPath: ".cursor/rules", globalPath: join(home, ".cursor/rules"), format: "md-to-mdc", writeStrategy: "per-file", fileExtension: ".mdc" },
157
+ hooks: null,
158
+ settingsJsonPath: null,
159
+ // Cursor v2.2+ moves toward .cursor/rules/<name>/RULE.md folder format. Per-file .mdc still works as of 2026-04. Track via drift detection.
160
+ detect: async () => hasBinaryInPath("cursor") ||
161
+ hasAnyInstallSignal([join(cwd, ".cursor/rules"), join(home, ".cursor/rules"), join(home, ".cursor/skills")]),
162
+ },
163
+ roo: {
164
+ name: "roo",
165
+ displayName: "Roo Code",
166
+ subagents: "full",
167
+ agents: { projectPath: ".roomodes", globalPath: join(home, ".roo/custom_modes.yaml"), format: "fm-to-yaml", writeStrategy: "yaml-merge", fileExtension: ".yaml" },
168
+ commands: null,
169
+ skills: { projectPath: ".roo/skills", globalPath: join(home, ".roo/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
170
+ config: { projectPath: ".roo/rules/project-config.md", globalPath: join(home, ".roo/rules/project-config.md"), format: "md-strip", writeStrategy: "single-file", fileExtension: ".md" },
171
+ rules: { projectPath: ".roo/rules", globalPath: join(home, ".roo/rules"), format: "md-strip", writeStrategy: "per-file", fileExtension: ".md" },
172
+ hooks: null,
173
+ settingsJsonPath: null,
174
+ detect: async () => hasAnyInstallSignal([
175
+ join(cwd, ".roomodes"), join(cwd, ".roo/rules"), join(cwd, ".roo/skills"),
176
+ join(home, ".roo/custom_modes.yaml"), join(home, ".roo/rules"), join(home, ".roo/skills"),
177
+ ]),
178
+ },
179
+ kilo: {
180
+ name: "kilo",
181
+ displayName: "Kilo Code",
182
+ subagents: "full",
183
+ agents: { projectPath: ".kilocodemodes", globalPath: join(home, ".kilocode/custom_modes.yaml"), format: "fm-to-yaml", writeStrategy: "yaml-merge", fileExtension: ".yaml" },
184
+ commands: null,
185
+ skills: { projectPath: ".kilocode/skills", globalPath: join(home, ".kilocode/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
186
+ config: { projectPath: ".kilocode/rules/project-config.md", globalPath: join(home, ".kilocode/rules/project-config.md"), format: "md-strip", writeStrategy: "single-file", fileExtension: ".md" },
187
+ rules: { projectPath: ".kilocode/rules", globalPath: join(home, ".kilocode/rules"), format: "md-strip", writeStrategy: "per-file", fileExtension: ".md" },
188
+ hooks: null,
189
+ settingsJsonPath: null,
190
+ detect: async () => hasAnyInstallSignal([
191
+ join(cwd, ".kilocodemodes"), join(cwd, ".kilocode/rules"), join(cwd, ".kilocode/skills"),
192
+ join(home, ".kilocode/custom_modes.yaml"), join(home, ".kilocode/rules"), join(home, ".kilocode/skills"),
193
+ ]),
194
+ },
195
+ kiro: {
196
+ name: "kiro",
197
+ displayName: "Kiro IDE",
198
+ subagents: "none",
199
+ agents: { projectPath: ".kiro/steering", globalPath: null, format: "md-to-kiro-steering", writeStrategy: "per-file", fileExtension: ".md" },
200
+ commands: null,
201
+ skills: { projectPath: ".kiro/skills", globalPath: null, format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
202
+ config: { projectPath: ".kiro/steering/project.md", globalPath: null, format: "md-to-kiro-steering", writeStrategy: "single-file", fileExtension: ".md" },
203
+ rules: { projectPath: ".kiro/steering", globalPath: null, format: "md-to-kiro-steering", writeStrategy: "per-file", fileExtension: ".md" },
204
+ hooks: null,
205
+ settingsJsonPath: null,
206
+ detect: async () => hasAnyInstallSignal([
207
+ join(cwd, ".kiro/steering"), join(cwd, ".kiro/skills"), join(cwd, ".kiro/hooks"),
208
+ join(cwd, ".kiro/agents"), join(cwd, ".kiro/settings/mcp.json"),
209
+ ]),
210
+ },
211
+ windsurf: {
212
+ name: "windsurf",
213
+ displayName: "Windsurf",
214
+ subagents: "none",
215
+ agents: { projectPath: ".windsurf/rules", globalPath: join(home, ".codeium/windsurf/rules"), format: "fm-strip", writeStrategy: "per-file", fileExtension: ".md", charLimit: 12000 },
216
+ commands: { projectPath: ".windsurf/workflows", globalPath: join(home, ".codeium/windsurf/workflows"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md", nestedCommands: false },
217
+ skills: { projectPath: ".agents/skills", globalPath: join(home, ".agents/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
218
+ config: { projectPath: ".windsurf/rules/rules.md", globalPath: join(home, ".codeium/windsurf/rules/rules.md"), format: "md-strip", writeStrategy: "single-file", fileExtension: ".md", charLimit: 6000 },
219
+ rules: { projectPath: ".windsurf/rules", globalPath: join(home, ".codeium/windsurf/rules"), format: "md-strip", writeStrategy: "per-file", fileExtension: ".md", charLimit: 6000, totalCharLimit: 12000 },
220
+ hooks: null,
221
+ settingsJsonPath: null,
222
+ detect: async () => hasBinaryInPath("windsurf") ||
223
+ hasAnyInstallSignal([
224
+ join(cwd, ".windsurf/rules"), join(cwd, ".windsurf/workflows"),
225
+ join(home, ".codeium/windsurf/rules"), join(home, ".codeium/windsurf/workflows"),
226
+ ]),
227
+ },
228
+ goose: {
229
+ name: "goose",
230
+ displayName: "Goose",
231
+ subagents: "full",
232
+ agents: { projectPath: "AGENTS.md", globalPath: null, format: "fm-strip", writeStrategy: "merge-single", fileExtension: ".md" },
233
+ commands: null,
234
+ skills: { projectPath: ".goose/skills", globalPath: join(home, ".config/goose/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
235
+ config: { projectPath: ".goosehints", globalPath: join(home, ".config/goose/.goosehints"), format: "md-strip", writeStrategy: "merge-single", fileExtension: "" },
236
+ rules: { projectPath: ".goosehints", globalPath: join(home, ".config/goose/.goosehints"), format: "md-strip", writeStrategy: "merge-single", fileExtension: "" },
237
+ hooks: null,
238
+ settingsJsonPath: null,
239
+ detect: async () => hasBinaryInPath("goose") ||
240
+ hasAnyInstallSignal([
241
+ join(cwd, ".goosehints"), join(cwd, ".goose/skills"),
242
+ join(home, ".config/goose/.goosehints"), join(home, ".config/goose/skills"),
243
+ ]),
244
+ },
245
+ "gemini-cli": {
246
+ name: "gemini-cli",
247
+ displayName: "Gemini CLI",
248
+ subagents: "planned",
249
+ agents: { projectPath: "AGENTS.md", globalPath: join(home, ".gemini/GEMINI.md"), format: "fm-strip", writeStrategy: "merge-single", fileExtension: ".md" },
250
+ commands: { projectPath: ".gemini/commands", globalPath: join(home, ".gemini/commands"), format: "md-to-toml", writeStrategy: "per-file", fileExtension: ".toml" },
251
+ skills: { projectPath: ".agents/skills", globalPath: join(home, ".agents/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
252
+ config: { projectPath: "GEMINI.md", globalPath: join(home, ".gemini/GEMINI.md"), format: "md-strip", writeStrategy: "merge-single", fileExtension: ".md" },
253
+ rules: { projectPath: "GEMINI.md", globalPath: join(home, ".gemini/GEMINI.md"), format: "md-strip", writeStrategy: "merge-single", fileExtension: ".md" },
254
+ hooks: { projectPath: ".gemini/hooks", globalPath: join(home, ".gemini/hooks"), format: "direct-copy", writeStrategy: "per-file", fileExtension: "" },
255
+ settingsJsonPath: { projectPath: ".gemini/settings.json", globalPath: join(home, ".gemini/settings.json") },
256
+ detect: async () => hasBinaryInPath("gemini") ||
257
+ hasAnyInstallSignal([
258
+ join(cwd, ".gemini/commands"), join(cwd, "GEMINI.md"),
259
+ join(home, ".gemini/commands"), join(home, ".gemini/GEMINI.md"),
260
+ ]),
261
+ },
262
+ amp: {
263
+ name: "amp",
264
+ displayName: "Amp",
265
+ subagents: "full",
266
+ agents: { projectPath: "AGENT.md", globalPath: join(home, ".config/AGENT.md"), format: "fm-strip", writeStrategy: "merge-single", fileExtension: ".md" },
267
+ commands: null,
268
+ skills: { projectPath: ".agents/skills", globalPath: join(home, ".config/agents/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
269
+ config: { projectPath: "AGENT.md", globalPath: join(home, ".config/AGENT.md"), format: "md-strip", writeStrategy: "merge-single", fileExtension: ".md" },
270
+ rules: { projectPath: ".amp/rules", globalPath: join(home, ".config/amp/rules"), format: "md-strip", writeStrategy: "per-file", fileExtension: ".md" },
271
+ hooks: null,
272
+ settingsJsonPath: null,
273
+ detect: async () => hasBinaryInPath("amp") ||
274
+ hasAnyInstallSignal([
275
+ join(cwd, ".amp/rules"), join(cwd, "AGENT.md"),
276
+ join(home, ".config/amp/rules"), join(home, ".config/AGENT.md"),
277
+ ]),
278
+ },
279
+ antigravity: {
280
+ name: "antigravity",
281
+ displayName: "Antigravity",
282
+ subagents: "full",
283
+ agents: null,
284
+ commands: { projectPath: ".agent/workflows", globalPath: null, format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md", nestedCommands: false },
285
+ skills: { projectPath: ".agent/skills", globalPath: join(home, ".gemini/antigravity/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
286
+ config: { projectPath: "GEMINI.md", globalPath: join(home, ".gemini/GEMINI.md"), format: "md-strip", writeStrategy: "single-file", fileExtension: ".md" },
287
+ rules: { projectPath: ".agent/rules", globalPath: null, format: "md-strip", writeStrategy: "per-file", fileExtension: ".md" },
288
+ hooks: null,
289
+ settingsJsonPath: null,
290
+ detect: async () => hasBinaryInPath("agy") ||
291
+ hasBinaryInPath("antigravity") ||
292
+ hasAnyInstallSignal([
293
+ join(cwd, ".agent/rules"), join(cwd, ".agent/skills"), join(cwd, ".agent/workflows"),
294
+ join(cwd, "GEMINI.md"), join(home, ".gemini/antigravity"), join(home, ".gemini/antigravity/skills"),
295
+ ]),
296
+ },
297
+ cline: {
298
+ name: "cline",
299
+ displayName: "Cline",
300
+ subagents: "full",
301
+ agents: { projectPath: ".clinerules", globalPath: null, format: "fm-strip", writeStrategy: "per-file", fileExtension: ".md" },
302
+ commands: null,
303
+ skills: { projectPath: ".cline/skills", globalPath: join(home, ".cline/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
304
+ config: { projectPath: ".clinerules/project-config.md", globalPath: null, format: "md-strip", writeStrategy: "single-file", fileExtension: ".md" },
305
+ rules: { projectPath: ".clinerules", globalPath: null, format: "md-strip", writeStrategy: "per-file", fileExtension: ".md" },
306
+ hooks: null,
307
+ settingsJsonPath: null,
308
+ detect: async () => hasAnyInstallSignal([join(cwd, ".clinerules"), join(cwd, ".cline/skills"), join(home, ".cline/skills")]),
309
+ },
310
+ openhands: {
311
+ name: "openhands",
312
+ displayName: "OpenHands",
313
+ subagents: "full",
314
+ agents: { projectPath: ".openhands/skills", globalPath: join(home, ".openhands/skills"), format: "skill-md", writeStrategy: "per-file", fileExtension: ".md" },
315
+ commands: null,
316
+ skills: { projectPath: ".openhands/skills", globalPath: join(home, ".openhands/skills"), format: "direct-copy", writeStrategy: "per-file", fileExtension: ".md" },
317
+ config: { projectPath: ".openhands/instructions.md", globalPath: join(home, ".openhands/instructions.md"), format: "md-strip", writeStrategy: "single-file", fileExtension: ".md" },
318
+ rules: { projectPath: ".openhands/rules", globalPath: join(home, ".openhands/rules"), format: "md-strip", writeStrategy: "per-file", fileExtension: ".md" },
319
+ hooks: null,
320
+ settingsJsonPath: null,
321
+ detect: async () => hasAnyInstallSignal([
322
+ join(cwd, ".openhands/skills"), join(cwd, ".openhands/rules"), join(cwd, ".openhands/instructions.md"),
323
+ join(home, ".openhands/skills"), join(home, ".openhands/rules"), join(home, ".openhands/instructions.md"),
324
+ ]),
325
+ },
326
+ };
327
+ //# sourceMappingURL=provider-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-registry.js","sourceRoot":"","sources":["../../src/migrate/provider-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export declare function computeContentChecksum(content: string): string;
2
+ export declare function isBinaryContent(buffer: Buffer): boolean;
3
+ export declare function computeFileChecksum(filePath: string): Promise<string>;
4
+ export declare function computeSectionChecksums(sections: Array<{
5
+ name: string;
6
+ content: string;
7
+ }>): Record<string, string>;
8
+ //# sourceMappingURL=checksum-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksum-utils.d.ts","sourceRoot":"","sources":["../../../src/migrate/reconcile/checksum-utils.ts"],"names":[],"mappings":"AAcA,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG3E;AAED,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAChD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB"}
@@ -0,0 +1,32 @@
1
+ // Vendored from claudekit-cli (MIT). Source: src/commands/portable/checksum-utils.ts
2
+ import { createHash } from "node:crypto";
3
+ import { readFile } from "node:fs/promises";
4
+ const CHECKSUM_HEX_LENGTH = 64;
5
+ const BINARY_DETECTION_SAMPLE_BYTES = 8 * 1024;
6
+ function computeSha256Hex(input) {
7
+ const hash = createHash("sha256");
8
+ if (typeof input === "string")
9
+ hash.update(input, "utf-8");
10
+ else
11
+ hash.update(input);
12
+ return hash.digest("hex").slice(0, CHECKSUM_HEX_LENGTH);
13
+ }
14
+ export function computeContentChecksum(content) {
15
+ return computeSha256Hex(content);
16
+ }
17
+ export function isBinaryContent(buffer) {
18
+ const sample = buffer.subarray(0, BINARY_DETECTION_SAMPLE_BYTES);
19
+ return sample.includes(0);
20
+ }
21
+ export async function computeFileChecksum(filePath) {
22
+ const buffer = await readFile(filePath);
23
+ return computeSha256Hex(buffer);
24
+ }
25
+ export function computeSectionChecksums(sections) {
26
+ const checksums = {};
27
+ for (const section of sections) {
28
+ checksums[section.name] = computeContentChecksum(section.content);
29
+ }
30
+ return checksums;
31
+ }
32
+ //# sourceMappingURL=checksum-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksum-utils.js","sourceRoot":"","sources":["../../../src/migrate/reconcile/checksum-utils.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,6BAA6B,GAAG,CAAC,GAAG,IAAI,CAAC;AAE/C,SAAS,gBAAgB,CAAC,KAAsB;IAC/C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACrD,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;IACjE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,QAAgB;IACzD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,QAAkD;IAElD,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ConflictResolution, ReconcileAction } from "./reconcile-types.js";
2
+ export type NonInteractiveConflictPolicy = "keep" | "overwrite" | "skip";
3
+ export declare function resolveConflict(action: ReconcileAction, options: {
4
+ interactive: boolean;
5
+ color: boolean;
6
+ nonInteractivePolicy?: NonInteractiveConflictPolicy | string;
7
+ }): Promise<ConflictResolution>;
8
+ //# sourceMappingURL=conflict-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-resolver.d.ts","sourceRoot":"","sources":["../../../src/migrate/reconcile/conflict-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGhF,MAAM,MAAM,4BAA4B,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AASzE,wBAAsB,eAAe,CACpC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE;IACR,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,oBAAoB,CAAC,EAAE,4BAA4B,GAAG,MAAM,CAAC;CAC7D,GACC,OAAO,CAAC,kBAAkB,CAAC,CAqD7B"}
@@ -0,0 +1,59 @@
1
+ // Vendored from claudekit-cli (MIT). Source: src/commands/portable/conflict-resolver.ts
2
+ import * as p from "@clack/prompts";
3
+ import { displayDiff } from "./diff-display.js";
4
+ import { sanitizeSingleLineTerminalText } from "./output-sanitizer.js";
5
+ const MAX_SHOW_DIFF_ATTEMPTS = 5;
6
+ function resolveNonInteractiveConflict(policy) {
7
+ if (policy === "overwrite")
8
+ return { type: "overwrite" };
9
+ return { type: "keep" };
10
+ }
11
+ export async function resolveConflict(action, options) {
12
+ if (!options.interactive)
13
+ return resolveNonInteractiveConflict(options.nonInteractivePolicy);
14
+ const conflictKey = sanitizeSingleLineTerminalText(`${action.provider}/${action.type}/${action.item}`);
15
+ console.log("\n+---------------------------------------------+");
16
+ console.log(`| [!] Conflict: ${conflictKey}`);
17
+ console.log("+---------------------------------------------+");
18
+ console.log(" mewkit updated source since last install");
19
+ console.log(" Target file was also modified (user edits detected)");
20
+ console.log();
21
+ const choices = [
22
+ { value: "overwrite", label: "Overwrite with mewkit version (lose your edits)" },
23
+ { value: "keep", label: "Keep your version (skip mewkit update)" },
24
+ ];
25
+ if (action.ownedSections && action.ownedSections.length > 0) {
26
+ choices.push({
27
+ value: "smart-merge",
28
+ label: "Smart merge (update mewkit sections, preserve your additions)",
29
+ });
30
+ }
31
+ choices.push({ value: "show-diff", label: "Show diff" });
32
+ let showDiffAttempts = 0;
33
+ while (true) {
34
+ const choice = await p.select({ message: "How to resolve?", options: choices });
35
+ if (p.isCancel(choice))
36
+ return { type: "keep" };
37
+ if (choice === "show-diff") {
38
+ showDiffAttempts += 1;
39
+ if (action.diff)
40
+ displayDiff(action.diff, options);
41
+ else
42
+ console.log(" [i] Diff not available (target content not loaded)");
43
+ if (showDiffAttempts >= MAX_SHOW_DIFF_ATTEMPTS) {
44
+ console.log(" [!] Diff view limit reached, keeping your version for safety.");
45
+ return { type: "keep" };
46
+ }
47
+ console.log();
48
+ continue;
49
+ }
50
+ if (choice === "overwrite")
51
+ return { type: "overwrite" };
52
+ if (choice === "keep")
53
+ return { type: "keep" };
54
+ if (choice === "smart-merge")
55
+ return { type: "smart-merge" };
56
+ return { type: "keep" };
57
+ }
58
+ }
59
+ //# sourceMappingURL=conflict-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conflict-resolver.js","sourceRoot":"","sources":["../../../src/migrate/reconcile/conflict-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function generateDiff(oldContent: string, newContent: string, fileName: string): string;
2
+ export declare function displayDiff(diff: string, options: {
3
+ color: boolean;
4
+ maxLines?: number;
5
+ }): void;
6
+ //# sourceMappingURL=diff-display.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-display.d.ts","sourceRoot":"","sources":["../../../src/migrate/reconcile/diff-display.ts"],"names":[],"mappings":"AAMA,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAU7F;AAUD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAwB9F"}
@@ -0,0 +1,40 @@
1
+ // Vendored from claudekit-cli (MIT). Source: src/commands/portable/diff-display.ts
2
+ import { createTwoFilesPatch } from "diff";
3
+ import { sanitizeTerminalText } from "./output-sanitizer.js";
4
+ const DEFAULT_MAX_DIFF_PREVIEW_LINES = 200;
5
+ export function generateDiff(oldContent, newContent, fileName) {
6
+ return createTwoFilesPatch(`a/${fileName}`, `b/${fileName}`, oldContent, newContent, "registered version", "current version", { context: 3 });
7
+ }
8
+ const ESC = "\x1b";
9
+ function resolveMaxDiffPreviewLines(options) {
10
+ const { maxLines } = options;
11
+ if (typeof maxLines === "number" && Number.isInteger(maxLines) && maxLines > 0)
12
+ return maxLines;
13
+ return DEFAULT_MAX_DIFF_PREVIEW_LINES;
14
+ }
15
+ export function displayDiff(diff, options) {
16
+ const maxLines = resolveMaxDiffPreviewLines(options);
17
+ const lines = diff.split("\n");
18
+ const preview = lines.slice(0, maxLines);
19
+ for (const line of preview) {
20
+ const sanitized = sanitizeTerminalText(line);
21
+ if (options.color) {
22
+ if (sanitized.startsWith("+"))
23
+ console.log(`${ESC}[32m${sanitized}${ESC}[0m`);
24
+ else if (sanitized.startsWith("-"))
25
+ console.log(`${ESC}[31m${sanitized}${ESC}[0m`);
26
+ else if (sanitized.startsWith("@@"))
27
+ console.log(`${ESC}[36m${sanitized}${ESC}[0m`);
28
+ else
29
+ console.log(sanitized);
30
+ }
31
+ else {
32
+ console.log(sanitized);
33
+ }
34
+ }
35
+ if (lines.length > preview.length) {
36
+ const hiddenCount = lines.length - preview.length;
37
+ console.log(` [i] Diff preview truncated (${hiddenCount} more line(s); showing first ${preview.length})`);
38
+ }
39
+ }
40
+ //# sourceMappingURL=diff-display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-display.js","sourceRoot":"","sources":["../../../src/migrate/reconcile/diff-display.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAE3C,MAAM,UAAU,YAAY,CAAC,UAAkB,EAAE,UAAkB,EAAE,QAAgB;IACpF,OAAO,mBAAmB,CACzB,KAAK,QAAQ,EAAE,EACf,KAAK,QAAQ,EAAE,EACf,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,EAAE,OAAO,EAAE,CAAC,EAAE,CACd,CAAC;AACH,CAAC;AAED,MAAM,GAAG,GAAG,MAAM,CAAC;AAEnB,SAAS,0BAA0B,CAAC,OAA8B;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC7B,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChG,OAAO,8BAA8B,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,OAA8C;IACvF,MAAM,QAAQ,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC;iBACzE,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC;iBAC9E,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC;;gBAC/E,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;IACF,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAClD,OAAO,CAAC,GAAG,CACV,iCAAiC,WAAW,gCAAgC,OAAO,CAAC,MAAM,GAAG,CAC7F,CAAC;IACH,CAAC;AACF,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from "./reconcile-types.js";
2
+ export { computeContentChecksum, computeFileChecksum, computeSectionChecksums, isBinaryContent, } from "./checksum-utils.js";
3
+ export { REGISTRY_PATH, addPortableInstallation, findPortableInstallations, getInstallationsByType, readPortableRegistry, removePortableInstallation, syncPortableRegistry, writePortableRegistry, type PortableInstallationV3, type PortableRegistryV3, } from "./portable-registry.js";
4
+ export { buildConvertedChecksums, buildSourceItemState, buildTargetStates, buildTypeDirectoryStates, type ConversionFallbackWarning, } from "./reconcile-state-builders.js";
5
+ export { reconcile } from "./reconciler.js";
6
+ export { displayDiff, generateDiff } from "./diff-display.js";
7
+ export { resolveConflict, type NonInteractiveConflictPolicy, } from "./conflict-resolver.js";
8
+ export { sanitizeSingleLineTerminalText, sanitizeTerminalText, } from "./output-sanitizer.js";
9
+ export { acquireMigrationLock, releaseMigrationLock, type AcquireLockResult, type ProcessLockOptions, } from "./process-lock.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrate/reconcile/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,EACxB,KAAK,yBAAyB,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EACN,eAAe,EACf,KAAK,4BAA4B,GACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,8BAA8B,EAC9B,oBAAoB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACvB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export * from "./reconcile-types.js";
2
+ export { computeContentChecksum, computeFileChecksum, computeSectionChecksums, isBinaryContent, } from "./checksum-utils.js";
3
+ export { REGISTRY_PATH, addPortableInstallation, findPortableInstallations, getInstallationsByType, readPortableRegistry, removePortableInstallation, syncPortableRegistry, writePortableRegistry, } from "./portable-registry.js";
4
+ export { buildConvertedChecksums, buildSourceItemState, buildTargetStates, buildTypeDirectoryStates, } from "./reconcile-state-builders.js";
5
+ export { reconcile } from "./reconciler.js";
6
+ export { displayDiff, generateDiff } from "./diff-display.js";
7
+ export { resolveConflict, } from "./conflict-resolver.js";
8
+ export { sanitizeSingleLineTerminalText, sanitizeTerminalText, } from "./output-sanitizer.js";
9
+ export { acquireMigrationLock, releaseMigrationLock, } from "./process-lock.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrate/reconcile/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,OAAO,EACN,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACN,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GAGrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GAExB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EACN,eAAe,GAEf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACN,8BAA8B,EAC9B,oBAAoB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACN,oBAAoB,EACpB,oBAAoB,GAGpB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function sanitizeTerminalText(value: string): string;
2
+ export declare function sanitizeSingleLineTerminalText(value: string): string;
3
+ //# sourceMappingURL=output-sanitizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-sanitizer.d.ts","sourceRoot":"","sources":["../../../src/migrate/reconcile/output-sanitizer.ts"],"names":[],"mappings":"AAgCA,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKpE"}