mewkit 1.13.0 → 1.14.1

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 (223) hide show
  1. package/README.md +37 -0
  2. package/dist/commands/migrate.d.ts +2 -0
  3. package/dist/commands/migrate.d.ts.map +1 -1
  4. package/dist/commands/migrate.js +2 -0
  5. package/dist/commands/migrate.js.map +1 -1
  6. package/dist/commands/validate.js +14 -7
  7. package/dist/commands/validate.js.map +1 -1
  8. package/dist/index.js +11 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/migrate/apply-env-var-rewrites.d.ts +15 -0
  11. package/dist/migrate/apply-env-var-rewrites.d.ts.map +1 -0
  12. package/dist/migrate/apply-env-var-rewrites.js +26 -0
  13. package/dist/migrate/apply-env-var-rewrites.js.map +1 -0
  14. package/dist/migrate/config-merger/merge-single-sections.d.ts.map +1 -1
  15. package/dist/migrate/config-merger/merge-single-sections.js +4 -2
  16. package/dist/migrate/config-merger/merge-single-sections.js.map +1 -1
  17. package/dist/migrate/converters/command-to-codex-skill.d.ts +10 -0
  18. package/dist/migrate/converters/command-to-codex-skill.d.ts.map +1 -0
  19. package/dist/migrate/converters/command-to-codex-skill.js +88 -0
  20. package/dist/migrate/converters/command-to-codex-skill.js.map +1 -0
  21. package/dist/migrate/converters/direct-copy.d.ts +4 -1
  22. package/dist/migrate/converters/direct-copy.d.ts.map +1 -1
  23. package/dist/migrate/converters/direct-copy.js +19 -22
  24. package/dist/migrate/converters/direct-copy.js.map +1 -1
  25. package/dist/migrate/converters/fm-strip.d.ts.map +1 -1
  26. package/dist/migrate/converters/fm-strip.js +5 -1
  27. package/dist/migrate/converters/fm-strip.js.map +1 -1
  28. package/dist/migrate/converters/fm-to-codex-toml.d.ts +4 -1
  29. package/dist/migrate/converters/fm-to-codex-toml.d.ts.map +1 -1
  30. package/dist/migrate/converters/fm-to-codex-toml.js +8 -3
  31. package/dist/migrate/converters/fm-to-codex-toml.js.map +1 -1
  32. package/dist/migrate/converters/fm-to-fm.js +4 -4
  33. package/dist/migrate/converters/fm-to-fm.js.map +1 -1
  34. package/dist/migrate/converters/fm-to-json.d.ts.map +1 -1
  35. package/dist/migrate/converters/fm-to-json.js +2 -1
  36. package/dist/migrate/converters/fm-to-json.js.map +1 -1
  37. package/dist/migrate/converters/fm-to-yaml.js +1 -1
  38. package/dist/migrate/converters/fm-to-yaml.js.map +1 -1
  39. package/dist/migrate/converters/index.d.ts +7 -2
  40. package/dist/migrate/converters/index.d.ts.map +1 -1
  41. package/dist/migrate/converters/index.js +8 -8
  42. package/dist/migrate/converters/index.js.map +1 -1
  43. package/dist/migrate/converters/mcp-json-to-codex-toml.d.ts +8 -0
  44. package/dist/migrate/converters/mcp-json-to-codex-toml.d.ts.map +1 -0
  45. package/dist/migrate/converters/mcp-json-to-codex-toml.js +65 -0
  46. package/dist/migrate/converters/mcp-json-to-codex-toml.js.map +1 -0
  47. package/dist/migrate/converters/md-strip.d.ts +10 -1
  48. package/dist/migrate/converters/md-strip.d.ts.map +1 -1
  49. package/dist/migrate/converters/md-strip.js +27 -70
  50. package/dist/migrate/converters/md-strip.js.map +1 -1
  51. package/dist/migrate/converters/md-to-kiro-steering.js +1 -1
  52. package/dist/migrate/converters/md-to-kiro-steering.js.map +1 -1
  53. package/dist/migrate/converters/md-to-mdc.js +1 -1
  54. package/dist/migrate/converters/md-to-mdc.js.map +1 -1
  55. package/dist/migrate/converters/md-to-toml.js +1 -1
  56. package/dist/migrate/converters/md-to-toml.js.map +1 -1
  57. package/dist/migrate/discovery/config-discovery.d.ts +29 -0
  58. package/dist/migrate/discovery/config-discovery.d.ts.map +1 -1
  59. package/dist/migrate/discovery/config-discovery.js +45 -0
  60. package/dist/migrate/discovery/config-discovery.js.map +1 -1
  61. package/dist/migrate/discovery/handlers-json-filter.d.ts.map +1 -1
  62. package/dist/migrate/discovery/handlers-json-filter.js +4 -2
  63. package/dist/migrate/discovery/handlers-json-filter.js.map +1 -1
  64. package/dist/migrate/discovery/hooks-discovery.d.ts +5 -0
  65. package/dist/migrate/discovery/hooks-discovery.d.ts.map +1 -1
  66. package/dist/migrate/discovery/hooks-discovery.js +21 -5
  67. package/dist/migrate/discovery/hooks-discovery.js.map +1 -1
  68. package/dist/migrate/hooks/codex-features-flag.d.ts.map +1 -1
  69. package/dist/migrate/hooks/codex-features-flag.js +21 -6
  70. package/dist/migrate/hooks/codex-features-flag.js.map +1 -1
  71. package/dist/migrate/hooks/codex-hook-wrapper.d.ts +15 -1
  72. package/dist/migrate/hooks/codex-hook-wrapper.d.ts.map +1 -1
  73. package/dist/migrate/hooks/codex-hook-wrapper.js +79 -8
  74. package/dist/migrate/hooks/codex-hook-wrapper.js.map +1 -1
  75. package/dist/migrate/hooks/codex-mcp-installer.d.ts +9 -0
  76. package/dist/migrate/hooks/codex-mcp-installer.d.ts.map +1 -0
  77. package/dist/migrate/hooks/codex-mcp-installer.js +65 -0
  78. package/dist/migrate/hooks/codex-mcp-installer.js.map +1 -0
  79. package/dist/migrate/hooks/codex-path-safety.d.ts +29 -0
  80. package/dist/migrate/hooks/codex-path-safety.d.ts.map +1 -1
  81. package/dist/migrate/hooks/codex-path-safety.js +36 -1
  82. package/dist/migrate/hooks/codex-path-safety.js.map +1 -1
  83. package/dist/migrate/hooks/codex-sh-wrapper-script.d.ts +8 -0
  84. package/dist/migrate/hooks/codex-sh-wrapper-script.d.ts.map +1 -0
  85. package/dist/migrate/hooks/codex-sh-wrapper-script.js +118 -0
  86. package/dist/migrate/hooks/codex-sh-wrapper-script.js.map +1 -0
  87. package/dist/migrate/hooks/codex-shell-env-installer.d.ts +14 -0
  88. package/dist/migrate/hooks/codex-shell-env-installer.d.ts.map +1 -0
  89. package/dist/migrate/hooks/codex-shell-env-installer.js +82 -0
  90. package/dist/migrate/hooks/codex-shell-env-installer.js.map +1 -0
  91. package/dist/migrate/hooks/codex-toml-installer.d.ts +2 -0
  92. package/dist/migrate/hooks/codex-toml-installer.d.ts.map +1 -1
  93. package/dist/migrate/hooks/codex-toml-installer.js +18 -7
  94. package/dist/migrate/hooks/codex-toml-installer.js.map +1 -1
  95. package/dist/migrate/hooks/hooks-settings-merger.d.ts +3 -0
  96. package/dist/migrate/hooks/hooks-settings-merger.d.ts.map +1 -1
  97. package/dist/migrate/hooks/hooks-settings-merger.js +157 -21
  98. package/dist/migrate/hooks/hooks-settings-merger.js.map +1 -1
  99. package/dist/migrate/migrate-orchestrator.d.ts +19 -0
  100. package/dist/migrate/migrate-orchestrator.d.ts.map +1 -1
  101. package/dist/migrate/migrate-orchestrator.js +233 -26
  102. package/dist/migrate/migrate-orchestrator.js.map +1 -1
  103. package/dist/migrate/migrate-ui-summary.d.ts +25 -0
  104. package/dist/migrate/migrate-ui-summary.d.ts.map +1 -1
  105. package/dist/migrate/migrate-ui-summary.js +50 -0
  106. package/dist/migrate/migrate-ui-summary.js.map +1 -1
  107. package/dist/migrate/model-routing-config.d.ts +3 -1
  108. package/dist/migrate/model-routing-config.d.ts.map +1 -1
  109. package/dist/migrate/model-routing-config.js +28 -0
  110. package/dist/migrate/model-routing-config.js.map +1 -1
  111. package/dist/migrate/portability-policy.d.ts +3 -1
  112. package/dist/migrate/portability-policy.d.ts.map +1 -1
  113. package/dist/migrate/portability-policy.js +5 -31
  114. package/dist/migrate/portability-policy.js.map +1 -1
  115. package/dist/migrate/portable-installer.d.ts +17 -1
  116. package/dist/migrate/portable-installer.d.ts.map +1 -1
  117. package/dist/migrate/portable-installer.js +171 -9
  118. package/dist/migrate/portable-installer.js.map +1 -1
  119. package/dist/migrate/provider-registry-utils.d.ts.map +1 -1
  120. package/dist/migrate/provider-registry-utils.js +5 -0
  121. package/dist/migrate/provider-registry-utils.js.map +1 -1
  122. package/dist/migrate/providers/codex/capabilities.d.ts +6 -1
  123. package/dist/migrate/providers/codex/capabilities.d.ts.map +1 -1
  124. package/dist/migrate/providers/codex/capabilities.js +87 -0
  125. package/dist/migrate/providers/codex/capabilities.js.map +1 -1
  126. package/dist/migrate/providers/codex/config.d.ts.map +1 -1
  127. package/dist/migrate/providers/codex/config.js +27 -8
  128. package/dist/migrate/providers/codex/config.js.map +1 -1
  129. package/dist/migrate/providers/codex/contract.d.ts.map +1 -1
  130. package/dist/migrate/providers/codex/contract.js +4 -3
  131. package/dist/migrate/providers/codex/contract.js.map +1 -1
  132. package/dist/migrate/providers/codex/shell-env-policy-emitter.d.ts +27 -0
  133. package/dist/migrate/providers/codex/shell-env-policy-emitter.d.ts.map +1 -0
  134. package/dist/migrate/providers/codex/shell-env-policy-emitter.js +86 -0
  135. package/dist/migrate/providers/codex/shell-env-policy-emitter.js.map +1 -0
  136. package/dist/migrate/providers/provider-config-types.d.ts +1 -1
  137. package/dist/migrate/providers/provider-config-types.d.ts.map +1 -1
  138. package/dist/migrate/reconcile/index.d.ts +1 -1
  139. package/dist/migrate/reconcile/index.d.ts.map +1 -1
  140. package/dist/migrate/reconcile/index.js +1 -1
  141. package/dist/migrate/reconcile/index.js.map +1 -1
  142. package/dist/migrate/reconcile/portable-manifest.d.ts +18 -12
  143. package/dist/migrate/reconcile/portable-manifest.d.ts.map +1 -1
  144. package/dist/migrate/reconcile/portable-manifest.js +23 -0
  145. package/dist/migrate/reconcile/portable-manifest.js.map +1 -1
  146. package/dist/migrate/reconcile/portable-registry.d.ts +30 -30
  147. package/dist/migrate/reconcile/process-lock.d.ts.map +1 -1
  148. package/dist/migrate/reconcile/process-lock.js +10 -1
  149. package/dist/migrate/reconcile/process-lock.js.map +1 -1
  150. package/dist/migrate/reconcile/reconcile-state-builders.d.ts +12 -5
  151. package/dist/migrate/reconcile/reconcile-state-builders.d.ts.map +1 -1
  152. package/dist/migrate/reconcile/reconcile-state-builders.js +2 -2
  153. package/dist/migrate/reconcile/reconcile-state-builders.js.map +1 -1
  154. package/dist/migrate/references/codex-command-skill-path.d.ts +12 -0
  155. package/dist/migrate/references/codex-command-skill-path.d.ts.map +1 -0
  156. package/dist/migrate/references/codex-command-skill-path.js +27 -0
  157. package/dist/migrate/references/codex-command-skill-path.js.map +1 -0
  158. package/dist/migrate/references/env-var-rewrite-table.d.ts +36 -0
  159. package/dist/migrate/references/env-var-rewrite-table.d.ts.map +1 -0
  160. package/dist/migrate/references/env-var-rewrite-table.js +97 -0
  161. package/dist/migrate/references/env-var-rewrite-table.js.map +1 -0
  162. package/dist/migrate/references/fence-aware-reference-rewriter.d.ts +30 -0
  163. package/dist/migrate/references/fence-aware-reference-rewriter.d.ts.map +1 -0
  164. package/dist/migrate/references/fence-aware-reference-rewriter.js +182 -0
  165. package/dist/migrate/references/fence-aware-reference-rewriter.js.map +1 -0
  166. package/dist/migrate/references/reference-classifier.d.ts +27 -0
  167. package/dist/migrate/references/reference-classifier.d.ts.map +1 -0
  168. package/dist/migrate/references/reference-classifier.js +177 -0
  169. package/dist/migrate/references/reference-classifier.js.map +1 -0
  170. package/dist/migrate/references/reference-target-registry.d.ts +42 -0
  171. package/dist/migrate/references/reference-target-registry.d.ts.map +1 -0
  172. package/dist/migrate/references/reference-target-registry.js +100 -0
  173. package/dist/migrate/references/reference-target-registry.js.map +1 -0
  174. package/dist/migrate/references/reference-types.d.ts +23 -0
  175. package/dist/migrate/references/reference-types.d.ts.map +1 -0
  176. package/dist/migrate/references/reference-types.js +5 -0
  177. package/dist/migrate/references/reference-types.js.map +1 -0
  178. package/dist/migrate/runtime-compat-audit.d.ts +3 -1
  179. package/dist/migrate/runtime-compat-audit.d.ts.map +1 -1
  180. package/dist/migrate/runtime-compat-audit.js +10 -5
  181. package/dist/migrate/runtime-compat-audit.js.map +1 -1
  182. package/dist/migrate/runtime-coupling-patterns.d.ts +32 -3
  183. package/dist/migrate/runtime-coupling-patterns.d.ts.map +1 -1
  184. package/dist/migrate/runtime-coupling-patterns.js +51 -8
  185. package/dist/migrate/runtime-coupling-patterns.js.map +1 -1
  186. package/dist/migrate/skill-directory-audit.d.ts +17 -0
  187. package/dist/migrate/skill-directory-audit.d.ts.map +1 -1
  188. package/dist/migrate/skill-directory-audit.js +70 -11
  189. package/dist/migrate/skill-directory-audit.js.map +1 -1
  190. package/dist/migrate/skill-directory-installer.d.ts +5 -0
  191. package/dist/migrate/skill-directory-installer.d.ts.map +1 -1
  192. package/dist/migrate/skill-directory-installer.js +115 -9
  193. package/dist/migrate/skill-directory-installer.js.map +1 -1
  194. package/dist/migrate/state-changing-script-detector.d.ts +16 -0
  195. package/dist/migrate/state-changing-script-detector.d.ts.map +1 -0
  196. package/dist/migrate/state-changing-script-detector.js +144 -0
  197. package/dist/migrate/state-changing-script-detector.js.map +1 -0
  198. package/dist/migrate/types.d.ts +20 -10
  199. package/dist/migrate/types.d.ts.map +1 -1
  200. package/dist/migrate/types.js +4 -0
  201. package/dist/migrate/types.js.map +1 -1
  202. package/dist/migrate/validation/migrate-conversion-report.d.ts +48 -0
  203. package/dist/migrate/validation/migrate-conversion-report.d.ts.map +1 -0
  204. package/dist/migrate/validation/migrate-conversion-report.js +146 -0
  205. package/dist/migrate/validation/migrate-conversion-report.js.map +1 -0
  206. package/dist/migrate/validation/migration-ledger-inputs.d.ts +56 -0
  207. package/dist/migrate/validation/migration-ledger-inputs.d.ts.map +1 -0
  208. package/dist/migrate/validation/migration-ledger-inputs.js +160 -0
  209. package/dist/migrate/validation/migration-ledger-inputs.js.map +1 -0
  210. package/dist/migrate/validation/migration-record-types.d.ts +38 -0
  211. package/dist/migrate/validation/migration-record-types.d.ts.map +1 -0
  212. package/dist/migrate/validation/migration-record-types.js +12 -0
  213. package/dist/migrate/validation/migration-record-types.js.map +1 -0
  214. package/dist/migrate/validation/migration-report-writer.d.ts +98 -0
  215. package/dist/migrate/validation/migration-report-writer.d.ts.map +1 -0
  216. package/dist/migrate/validation/migration-report-writer.js +0 -0
  217. package/dist/migrate/validation/migration-report-writer.js.map +1 -0
  218. package/dist/migrate/validation/unresolved-reference-scanner.d.ts +18 -0
  219. package/dist/migrate/validation/unresolved-reference-scanner.d.ts.map +1 -0
  220. package/dist/migrate/validation/unresolved-reference-scanner.js +47 -0
  221. package/dist/migrate/validation/unresolved-reference-scanner.js.map +1 -0
  222. package/package.json +1 -1
  223. package/portable-manifest.json +10 -2
@@ -1,7 +1,7 @@
1
1
  // Main migration orchestrator. Composes all phases into runMigrate(options).
2
2
  import { existsSync } from "node:fs";
3
3
  import { readFile } from "node:fs/promises";
4
- import { join } from "node:path";
4
+ import { join, relative } from "node:path";
5
5
  import * as p from "@clack/prompts";
6
6
  import pc from "picocolors";
7
7
  import { applyMewkitOverrides } from "./provider-overrides.js";
@@ -12,13 +12,25 @@ import { providers } from "./provider-registry.js";
12
12
  import { detectProviderPathCollisions, getPortableInstallPath } from "./provider-registry-utils.js";
13
13
  import { acquireMigrationLock, buildSourceItemState, buildTargetStates, buildTypeDirectoryStates, generateDiff, loadPortableEvolutionManifest, readPortableRegistry, reconcile, releaseMigrationLock, resolveConflict, updateAppliedManifestVersion, } from "./reconcile/index.js";
14
14
  import { convertItem } from "./converters/index.js";
15
+ import { buildConversionReport, MigrationLedger } from "./validation/migrate-conversion-report.js";
16
+ import { buildRunRecords } from "./validation/migration-ledger-inputs.js";
17
+ import { buildMigrationReport, writeMigrationReport } from "./validation/migration-report-writer.js";
18
+ import { discoverEnvKeys } from "./discovery/config-discovery.js";
19
+ import { emitShellEnvPolicyScaffold } from "./providers/codex/shell-env-policy-emitter.js";
20
+ import { getCodexRoot } from "./hooks/codex-path-safety.js";
21
+ import { formatMcpIncludeRerunCommand } from "./migrate-ui-summary.js";
22
+ import { convertMcpJsonToCodexToml } from "./converters/mcp-json-to-codex-toml.js";
23
+ import { installCodexMcpServers } from "./hooks/codex-mcp-installer.js";
24
+ import { installCodexShellEnvPolicy } from "./hooks/codex-shell-env-installer.js";
25
+ import { CODEX_MIN_SUPPORTED_VERSION } from "./providers/codex/capabilities.js";
26
+ import { createReferenceIntegrityIndex, } from "./references/fence-aware-reference-rewriter.js";
15
27
  import { codexBulkActionShim, providerKey, skillActionShim } from "./migrate-action-shims.js";
16
28
  import { executeDeleteAction, executeInstallAction } from "./portable-installer.js";
17
29
  import { installSkillDirectory } from "./skill-directory-installer.js";
18
30
  import { buildInstalledBackRef } from "../core/install-metadata-backref.js";
19
31
  import { installCodexAgents, mergeHooksSettings } from "./hooks/index.js";
20
32
  import { loadModelRoutingConfig } from "./model-routing-config.js";
21
- import { printActionDetails, printFinalSummary, printPreflight } from "./migrate-ui-summary.js";
33
+ import { printActionDetails, printFinalSummary, printPreflight, printReportPath } from "./migrate-ui-summary.js";
22
34
  import { collectProviderContractDiagnostics, summarizeProviderContractDiagnostics, } from "./provider-contract-diagnostics.js";
23
35
  import { buildPortableSkillsByProvider, buildSkillDryRunMessages, filterPlanForPortability, summarizeRuleMigrationByProvider, } from "./portability-policy.js";
24
36
  export async function runMigrate(options, ctx) {
@@ -54,7 +66,10 @@ async function runMigrateUnderLock(options, ctx, scope, targets, isGlobal, model
54
66
  bundledKitDir: ctx.bundledKitDir,
55
67
  });
56
68
  spinner?.stop("Discovery complete.");
57
- const sourceItems = flattenForReconcile(discovered).map((item) => buildSourceItemState(item, item.type, targets));
69
+ // Built once, up front: threaded into BOTH the reconcile preview (buildSourceItemState)
70
+ // and the install path so the codex-agent preview checksum matches install output.
71
+ const migratedRefs = buildMigratedRefsIndex(discovered);
72
+ const sourceItems = flattenForReconcile(discovered).map((item) => buildSourceItemState(item, item.type, targets, { migratedRefs }));
58
73
  const registry = await readPortableRegistry();
59
74
  const manifest = await loadPortableEvolutionManifest(ctx.bundledKitDir, registry);
60
75
  const targetStates = await buildTargetStates(registry.installations);
@@ -70,7 +85,7 @@ async function runMigrateUnderLock(options, ctx, scope, targets, isGlobal, model
70
85
  respectDeletions: options.respectDeletions,
71
86
  });
72
87
  const itemsByT = itemsByType(discovered);
73
- const portabilityFiltered = filterPlanForPortability(plan, itemsByT);
88
+ const portabilityFiltered = filterPlanForPortability(plan, itemsByT, { allRules: options.allRules });
74
89
  const portableSkills = await buildPortableSkillsByProvider(discovered.skills, targets);
75
90
  const ruleSummaries = summarizeRuleMigrationByProvider(discovered.rules, targets);
76
91
  const skillDryRunMessages = buildSkillDryRunMessages(portableSkills.skillsByProvider, targets);
@@ -85,6 +100,32 @@ async function runMigrateUnderLock(options, ctx, scope, targets, isGlobal, model
85
100
  }) ?? "";
86
101
  }
87
102
  }
103
+ const mcpSourcePath = join(process.cwd(), ".mcp.json");
104
+ const mcpApplicable = targets.includes("codex") && existsSync(mcpSourcePath);
105
+ const mcpBanners = [];
106
+ if (mcpApplicable) {
107
+ mcpBanners.push(options.includeMcp
108
+ ? ".mcp.json will be merged into .codex/config.toml [mcp_servers] (--include-mcp)"
109
+ : ".mcp.json detected but not migrated — opt in with --include-mcp");
110
+ }
111
+ // When .mcp.json exists but --include-mcp is off, surface the exact re-run command
112
+ // (Phase 5 field on PreflightContext); undefined otherwise.
113
+ const mcpIncludeAdvisory = mcpApplicable && !options.includeMcp
114
+ ? { rerunCommand: formatMcpIncludeRerunCommand(["mewkit", ...ctx.argv]) }
115
+ : undefined;
116
+ // Phase 5 shell-env scaffold: from .claude/.env KEY NAMES only (no values). The
117
+ // scaffold text is emitted into the codex config output; the aggregate count of
118
+ // secret-like key names omitted is recorded in the report (names never surface).
119
+ let secretKeysOmitted = 0;
120
+ let shellEnvScaffold = "";
121
+ if (targets.includes("codex")) {
122
+ const envKeys = await discoverEnvKeys(join(discovered.source.root, ".env"));
123
+ const scaffold = emitShellEnvPolicyScaffold(envKeys);
124
+ secretKeysOmitted = scaffold.omittedSecretCount;
125
+ shellEnvScaffold = scaffold.content;
126
+ for (const warning of scaffold.warnings)
127
+ mcpBanners.push(warning);
128
+ }
88
129
  const collisions = detectProviderPathCollisions(targets, { global: isGlobal });
89
130
  const collisionBanners = collisions.map((c) => `Shared target: ${c.path} (${c.portableType}) used by ${c.providers.join(" + ")} — each provider writes the same content here`);
90
131
  const modelRoutingBanners = modelRoutingWarnings.map((warning) => `Model routing: ${warning}`);
@@ -92,6 +133,14 @@ async function runMigrateUnderLock(options, ctx, scope, targets, isGlobal, model
92
133
  const manifestBanners = manifest && manifestCleanupCount > 0
93
134
  ? [`Portable manifest ${manifest.mewkitVersion}: ${manifestCleanupCount} cleanup action(s) planned`]
94
135
  : [];
136
+ // In-memory conversion pass: classifier decisions, budget projections, and
137
+ // the unresolved-reference invariant check all land in the preflight report.
138
+ const conversionReport = buildConversionReport({
139
+ actions: portabilityFiltered.plan.actions,
140
+ itemsByType: itemsByT,
141
+ skillsByProvider: portableSkills.skillsByProvider,
142
+ migratedRefs,
143
+ });
95
144
  printPreflight(portabilityFiltered.plan, {
96
145
  source: { root: discovered.source.root, origin: discovered.source.origin },
97
146
  skippedShellHooks: discovered.skippedShellHooks.length,
@@ -99,24 +148,31 @@ async function runMigrateUnderLock(options, ctx, scope, targets, isGlobal, model
99
148
  ...collisionBanners,
100
149
  ...modelRoutingBanners,
101
150
  ...manifestBanners,
151
+ ...mcpBanners,
102
152
  ...portabilityFiltered.skipMessages,
103
153
  ...portableSkills.skipMessages,
104
154
  ...providerDiagnosticMessages,
105
155
  ...ruleSummaries.flatMap((summary) => summary.messages),
106
156
  ...skillDryRunMessages,
107
157
  ],
158
+ conversionReport,
159
+ mcpIncludeAdvisory,
108
160
  });
109
161
  if (options.dryRun) {
110
162
  printActionDetails(portabilityFiltered.plan.actions);
111
163
  console.log();
112
164
  console.log(pc.dim("(dry run — no files written)"));
113
- return 0;
165
+ return conversionReport.validationErrors.length > 0 ? 1 : 0;
166
+ }
167
+ if (conversionReport.validationErrors.length > 0) {
168
+ console.error(pc.red("Aborting before install: the reference rewriter left unexplained source references (see above)."));
169
+ return 1;
114
170
  }
115
171
  // Compute diffs lazily for conflicting actions so the "Show diff" prompt has data.
116
172
  for (const action of portabilityFiltered.plan.actions) {
117
173
  if (action.action !== "conflict")
118
174
  continue;
119
- await attachConflictDiff(action, itemsByT);
175
+ await attachConflictDiff(action, itemsByT, migratedRefs);
120
176
  const policy = options.force ? "overwrite" : "keep";
121
177
  const resolution = await resolveConflict(action, {
122
178
  interactive: !!process.stdout.isTTY && !options.yes,
@@ -135,13 +191,92 @@ async function runMigrateUnderLock(options, ctx, scope, targets, isGlobal, model
135
191
  // One-way bridge: link exported assets back to the installed metadata they
136
192
  // came from. Absent installed metadata yields null and the bridge is omitted.
137
193
  const installedBackRef = buildInstalledBackRef(discovered.source.root);
138
- const results = await executePlan(portabilityFiltered.plan.actions, { allItems: itemsByT, installedBackRef }, portableSkills.skillsByProvider, targets, isGlobal, scope.skills, join(discovered.source.root, "settings.json"));
139
- printFinalSummary(results);
140
- const hasFailures = results.some((r) => !r.success);
141
- if (!hasFailures && manifest) {
142
- await updateAppliedManifestVersion(manifest.mewkitVersion);
194
+ // The ledger accumulates every run-time decision; it is serialized in the
195
+ // finally-path below so the outcome is persisted even on a partial failure.
196
+ const ledger = new MigrationLedger();
197
+ const reportProvider = targets.includes("codex") ? "codex" : targets[0];
198
+ const reportVersion = manifest?.mewkitVersion ?? "unknown";
199
+ // Orchestrator-owned accumulators: retained by the finally-path even if
200
+ // executePlan throws mid-run, so the report captures what happened up to then.
201
+ const sink = { results: [], outcomes: new Map(), phaseRecords: [] };
202
+ try {
203
+ const executed = await executePlan(portabilityFiltered.plan.actions, { allItems: itemsByT, installedBackRef, migratedRefs }, portableSkills.skillsByProvider, targets, isGlobal, scope.skills, join(discovered.source.root, "settings.json"), sink);
204
+ // Emit the [shell_environment_policy] scaffold into the codex config output
205
+ // (real run, idempotent managed block). Failure is non-fatal but recorded.
206
+ if (targets.includes("codex") && shellEnvScaffold.length > 0) {
207
+ const envResult = await installCodexShellEnvPolicy(shellEnvScaffold, { global: isGlobal });
208
+ if (!envResult.success) {
209
+ console.error(pc.red(`[x] shell_environment_policy scaffold write failed: ${envResult.error}`));
210
+ }
211
+ }
212
+ let mcpFailed = false;
213
+ if (mcpApplicable && options.includeMcp) {
214
+ mcpFailed = !(await migrateMcpServers(mcpSourcePath, isGlobal));
215
+ }
216
+ printFinalSummary(executed.results);
217
+ const hasFailures = executed.results.some((r) => !r.success);
218
+ if (!hasFailures && manifest) {
219
+ await updateAppliedManifestVersion(manifest.mewkitVersion);
220
+ }
221
+ return hasFailures || mcpFailed ? 1 : 0;
222
+ }
223
+ finally {
224
+ // Persist what happened — even on partial failure. A failed report write is
225
+ // logged but NEVER masks the original run exception (it is re-thrown by the
226
+ // finally semantics because we do not swallow it). The sink holds outcomes
227
+ // accumulated up to a mid-run throw. The report is provider-parameterized but
228
+ // codex is the first (and today only) consumer with a resolved output dir, so
229
+ // non-codex runs are left byte-for-byte unchanged.
230
+ if (targets.includes("codex")) {
231
+ ledger.addAll(buildRunRecords({
232
+ discovered,
233
+ provider: reportProvider,
234
+ outcomes: sink.outcomes,
235
+ phaseRecords: sink.phaseRecords,
236
+ preservedOccurrences: conversionReport.preservedOccurrences,
237
+ }));
238
+ const report = buildMigrationReport({
239
+ provider: reportProvider,
240
+ version: reportVersion,
241
+ records: ledger.all(),
242
+ budgetLines: conversionReport.budgetLines,
243
+ secretKeysOmitted,
244
+ codexMinSupportedVersion: CODEX_MIN_SUPPORTED_VERSION,
245
+ });
246
+ try {
247
+ const outputDir = getCodexRoot({ global: isGlobal });
248
+ const written = await writeMigrationReport(report, outputDir);
249
+ printReportPath(written.verdictLine);
250
+ }
251
+ catch (writeErr) {
252
+ // Log the write failure without masking whatever the run was already doing.
253
+ console.error(pc.red(`[x] Failed to write migration report: ${writeErr instanceof Error ? writeErr.message : String(writeErr)}`));
254
+ }
255
+ }
256
+ }
257
+ }
258
+ /** Opt-in .mcp.json → config.toml [mcp_servers] migration for the Codex target. */
259
+ async function migrateMcpServers(mcpSourcePath, isGlobal) {
260
+ try {
261
+ const raw = await readFile(mcpSourcePath, "utf-8");
262
+ const converted = convertMcpJsonToCodexToml(raw);
263
+ for (const warning of converted.warnings) {
264
+ console.log(pc.yellow(`[!] ${warning}`));
265
+ }
266
+ if (!converted.content)
267
+ return true;
268
+ const result = await installCodexMcpServers(converted.content, { global: isGlobal });
269
+ if (!result.success) {
270
+ console.error(pc.red(`[x] MCP server merge failed: ${result.error}`));
271
+ return false;
272
+ }
273
+ console.log(pc.green(`[+] Merged ${converted.serverNames.length} MCP server(s) into ${result.configPath}`));
274
+ return true;
275
+ }
276
+ catch (err) {
277
+ console.error(pc.red(`[x] MCP migration failed: ${err instanceof Error ? err.message : String(err)}`));
278
+ return false;
143
279
  }
144
- return hasFailures ? 1 : 0;
145
280
  }
146
281
  async function confirmExecution(count) {
147
282
  const choice = await p.confirm({
@@ -152,8 +287,32 @@ async function confirmExecution(count) {
152
287
  return false;
153
288
  return choice === true;
154
289
  }
155
- async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, skillsScopeEnabled, sourceSettingsPath) {
156
- const results = [];
290
+ /**
291
+ * Build the migration-set membership index used by the fenced-reference
292
+ * integrity check: source-relative reference forms of every discovered item.
293
+ */
294
+ function buildMigratedRefsIndex(discovered) {
295
+ const entries = [];
296
+ const root = discovered.source.root;
297
+ for (const item of [...discovered.agents, ...discovered.commands, ...discovered.rules, ...discovered.hooks]) {
298
+ const rel = relative(root, item.sourcePath).replace(/\\/g, "/");
299
+ if (!rel.startsWith(".."))
300
+ entries.push(`.claude/${rel}`);
301
+ }
302
+ if (discovered.config)
303
+ entries.push("CLAUDE.md");
304
+ for (const skill of discovered.skills) {
305
+ entries.push(`.claude/skills/${skill.dirName}/`);
306
+ }
307
+ return createReferenceIntegrityIndex(entries);
308
+ }
309
+ function recordOutcome(outcomes, type, source, outcome) {
310
+ outcomes.set(`${type}:${source}`, outcome);
311
+ }
312
+ async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, skillsScopeEnabled, sourceSettingsPath, sink) {
313
+ const results = sink.results;
314
+ const outcomes = sink.outcomes;
315
+ const phaseRecords = sink.phaseRecords;
157
316
  const codexAgentActions = new Set();
158
317
  const codexHookActions = new Set();
159
318
  const hookTargetPathsByProvider = new Map();
@@ -170,10 +329,21 @@ async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, sk
170
329
  hookTargetPathsByProvider.set(target, providerMap);
171
330
  }
172
331
  for (const action of actions) {
173
- if (action.action === "skip")
332
+ if (action.action === "skip") {
333
+ // A no-op skip means the artifact is already present on the target — it is
334
+ // migrated (installed), not absent. Only a user-deleted-respected skip
335
+ // leaves the target absent. Recording this keeps re-run reports honest and
336
+ // the migrated/skipped identity stable across idempotent runs.
337
+ if (action.reasonCode !== "user-deleted-respected" && action.reasonCode !== "source-removed-orphan") {
338
+ recordOutcome(outcomes, action.type, action.item, { outcome: "migrated", target: action.targetPath || undefined });
339
+ }
174
340
  continue;
175
- if (action.action === "conflict" && action.resolution?.type === "keep")
341
+ }
342
+ if (action.action === "conflict" && action.resolution?.type === "keep") {
343
+ // User kept their edited target — the artifact is still installed (migrated).
344
+ recordOutcome(outcomes, action.type, action.item, { outcome: "migrated", target: action.targetPath || undefined });
176
345
  continue;
346
+ }
177
347
  if (action.provider === "codex" && action.type === "agent") {
178
348
  if (action.action !== "delete") {
179
349
  codexAgentActions.add(action.item);
@@ -193,6 +363,15 @@ async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, sk
193
363
  else {
194
364
  const result = await executeInstallAction(action, ctx);
195
365
  results.push(result);
366
+ phaseRecords.push(...(result.records ?? []));
367
+ if (result.success) {
368
+ recordOutcome(outcomes, action.type, action.item, { outcome: "migrated", target: action.targetPath });
369
+ }
370
+ else {
371
+ // executeInstallAction returns audit failures as structured errors; treat
372
+ // any non-success as a failed outcome (audit vs conversion reason is on the record).
373
+ recordOutcome(outcomes, action.type, action.item, { outcome: "failed", error: result.error });
374
+ }
196
375
  if (result.success && action.type === "hooks") {
197
376
  const provider = action.provider;
198
377
  const providerMap = hookTargetPathsByProvider.get(provider) ?? new Map();
@@ -202,21 +381,36 @@ async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, sk
202
381
  }
203
382
  }
204
383
  catch (err) {
205
- results.push({
206
- action,
207
- success: false,
208
- error: err instanceof Error ? err.message : String(err),
209
- });
384
+ // An internal (non-audit) installer exception: record as failed with an
385
+ // internal-error reason rather than letting the artifact vanish silently.
386
+ const message = err instanceof Error ? err.message : String(err);
387
+ results.push({ action, success: false, error: message });
388
+ if (action.action !== "delete") {
389
+ recordOutcome(outcomes, action.type, action.item, {
390
+ outcome: "failed",
391
+ error: message,
392
+ internalError: true,
393
+ });
394
+ }
210
395
  }
211
396
  }
212
397
  if (targets.includes("codex") && codexAgentActions.size > 0) {
213
398
  const agentsToWrite = ctx.allItems.agent.filter((agent) => codexAgentActions.has(agent.name));
214
- const result = await installCodexAgents(agentsToWrite, { global: isGlobal, configAgents: agentsToWrite });
399
+ const result = await installCodexAgents(agentsToWrite, {
400
+ global: isGlobal,
401
+ configAgents: agentsToWrite,
402
+ migratedRefs: ctx.migratedRefs,
403
+ });
215
404
  results.push({
216
405
  action: codexBulkActionShim("agent", "codex", isGlobal, result.written),
217
406
  success: result.success,
218
407
  error: result.error,
219
408
  });
409
+ // The bulk install is all-or-nothing; record each batched agent's outcome so the
410
+ // per-artifact report is not left blank for the 24 codex agents.
411
+ for (const agent of agentsToWrite) {
412
+ recordOutcome(outcomes, "agent", agent.name, result.success ? { outcome: "migrated" } : { outcome: "failed", error: result.error });
413
+ }
220
414
  }
221
415
  const hookProviders = targets.filter((target) => providers[target].hooks);
222
416
  if (ctx.allItems.hooks.length > 0 && hookProviders.length > 0) {
@@ -235,6 +429,12 @@ async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, sk
235
429
  success: result.success,
236
430
  error: result.error,
237
431
  });
432
+ // Thread the Phase 2 per-hook decision records (codex today) into the ledger,
433
+ // and record a baseline migrated/failed outcome per hook item in the batch.
434
+ phaseRecords.push(...(result.records ?? []));
435
+ for (const hook of hookItems) {
436
+ recordOutcome(outcomes, "hooks", hook.name, result.success ? { outcome: "migrated" } : { outcome: "failed", error: result.error });
437
+ }
238
438
  }
239
439
  }
240
440
  if (skillsScopeEnabled) {
@@ -243,16 +443,23 @@ async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, sk
243
443
  continue;
244
444
  const skills = skillsByProvider.get(target) ?? [];
245
445
  for (const skill of skills) {
246
- const r = await installSkillDirectory(skill, target, { global: isGlobal, installedBackRef: ctx.installedBackRef });
446
+ const r = await installSkillDirectory(skill, target, {
447
+ global: isGlobal,
448
+ installedBackRef: ctx.installedBackRef,
449
+ migratedRefs: ctx.migratedRefs,
450
+ });
247
451
  results.push({
248
452
  action: skillActionShim(skill, target, isGlobal, r.path ?? ""),
249
453
  success: r.success,
250
454
  error: r.error,
455
+ records: r.records,
251
456
  });
457
+ phaseRecords.push(...(r.records ?? []));
458
+ recordOutcome(outcomes, "skill", skill.name, r.success ? { outcome: "migrated", target: r.path } : { outcome: "failed", error: r.error });
252
459
  }
253
460
  }
254
461
  }
255
- return results;
462
+ return { results, outcomes, phaseRecords };
256
463
  }
257
464
  /**
258
465
  * Read the on-disk target file, run the converter against the matching source item,
@@ -260,7 +467,7 @@ async function executePlan(actions, ctx, skillsByProvider, targets, isGlobal, sk
260
467
  * has real content. Best-effort — silent failures leave action.diff undefined and
261
468
  * the resolver will display "[i] Diff not available."
262
469
  */
263
- async function attachConflictDiff(action, itemsByT) {
470
+ async function attachConflictDiff(action, itemsByT, migratedRefs) {
264
471
  if (action.diff)
265
472
  return;
266
473
  if (!action.targetPath || !existsSync(action.targetPath))
@@ -274,7 +481,7 @@ async function attachConflictDiff(action, itemsByT) {
274
481
  return;
275
482
  try {
276
483
  const targetContent = await readFile(action.targetPath, "utf-8");
277
- const conversion = convertItem(sourceItem, pathConfig.format, action.provider);
484
+ const conversion = convertItem(sourceItem, pathConfig.format, action.provider, { migratedRefs });
278
485
  if (conversion.error)
279
486
  return;
280
487
  action.diff = generateDiff(targetContent, conversion.content, action.item);
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-orchestrator.js","sourceRoot":"","sources":["../../src/migrate/migrate-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate-orchestrator.js","sourceRoot":"","sources":["../../src/migrate/migrate-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ReconcileAction, ReconcilePlan } from "./reconcile/reconcile-types.js";
2
2
  import type { InstallResult } from "./portable-installer.js";
3
+ import type { ConversionReport } from "./validation/migrate-conversion-report.js";
3
4
  export interface PreflightContext {
4
5
  source: {
5
6
  root: string;
@@ -7,8 +8,32 @@ export interface PreflightContext {
7
8
  };
8
9
  skippedShellHooks: number;
9
10
  bannerExtras: string[];
11
+ conversionReport?: ConversionReport;
12
+ /**
13
+ * When `.mcp.json` was detected but `--include-mcp` is off, this carries the
14
+ * advisory so the preflight can print the exact re-run command. Undefined when
15
+ * not applicable (no .mcp.json, or the flag is already on).
16
+ */
17
+ mcpIncludeAdvisory?: McpIncludeAdvisory;
10
18
  }
19
+ /** Advisory that `.mcp.json` exists but is not being migrated (flag off). */
20
+ export interface McpIncludeAdvisory {
21
+ /** The exact command the user should re-run to include MCP servers. */
22
+ rerunCommand: string;
23
+ }
24
+ /**
25
+ * Build the exact `--include-mcp` re-run command from the original argv. The
26
+ * command is normalized to a `mewkit migrate ... --include-mcp` invocation so the
27
+ * user can copy-paste it verbatim. `--include-mcp` is appended only when absent.
28
+ */
29
+ export declare function formatMcpIncludeRerunCommand(argv: readonly string[]): string;
11
30
  export declare function printPreflight(plan: ReconcilePlan, ctx: PreflightContext): void;
12
31
  export declare function printActionDetails(actions: ReconcileAction[]): void;
32
+ /**
33
+ * Print the persisted migration-report path + verdict line at the end of a run.
34
+ * The verdict line already embeds the path; this keeps report presentation in the
35
+ * UI layer alongside the other run printers.
36
+ */
37
+ export declare function printReportPath(verdictLine: string): void;
13
38
  export declare function printFinalSummary(results: InstallResult[]): void;
14
39
  //# sourceMappingURL=migrate-ui-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-ui-summary.d.ts","sourceRoot":"","sources":["../../src/migrate/migrate-ui-summary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,eAAe,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA4B/E;AAOD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CAoBnE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAehE"}
1
+ {"version":3,"file":"migrate-ui-summary.d.ts","sourceRoot":"","sources":["../../src/migrate/migrate-ui-summary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,eAAe,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACtG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAElF,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACxC;AAED,6EAA6E;AAC7E,MAAM,WAAW,kBAAkB;IAClC,uEAAuE;IACvE,YAAY,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAG5E;AAgBD,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,EAAE,gBAAgB,GAAG,IAAI,CA6C/E;AAOD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CAoBnE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAGzD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAqBhE"}
@@ -1,5 +1,27 @@
1
1
  // Preflight + final-summary printers for `mewkit migrate`. Console output only.
2
2
  import pc from "picocolors";
3
+ /**
4
+ * Build the exact `--include-mcp` re-run command from the original argv. The
5
+ * command is normalized to a `mewkit migrate ... --include-mcp` invocation so the
6
+ * user can copy-paste it verbatim. `--include-mcp` is appended only when absent.
7
+ */
8
+ export function formatMcpIncludeRerunCommand(argv) {
9
+ const args = argv.filter((a) => a !== "--include-mcp");
10
+ return `${args.join(" ")} --include-mcp`.trim();
11
+ }
12
+ const SECTION_DETAIL_CAP = 20;
13
+ function printCappedSection(title, lines, paint) {
14
+ if (lines.length === 0)
15
+ return;
16
+ console.log();
17
+ console.log(pc.bold(`${title} (${lines.length}):`));
18
+ for (const line of lines.slice(0, SECTION_DETAIL_CAP)) {
19
+ console.log(` ${paint(line)}`);
20
+ }
21
+ if (lines.length > SECTION_DETAIL_CAP) {
22
+ console.log(pc.dim(` … and ${lines.length - SECTION_DETAIL_CAP} more`));
23
+ }
24
+ }
3
25
  export function printPreflight(plan, ctx) {
4
26
  console.log();
5
27
  console.log(pc.bold("Migrate plan"));
@@ -23,6 +45,19 @@ export function printPreflight(plan, ctx) {
23
45
  for (const extra of ctx.bannerExtras) {
24
46
  console.log(pc.dim(`[i] ${extra}`));
25
47
  }
48
+ if (ctx.mcpIncludeAdvisory) {
49
+ console.log();
50
+ console.log(pc.cyan("[i] .mcp.json detected but not migrated. Re-run with --include-mcp to convert it into"));
51
+ console.log(pc.cyan(" .codex/config.toml [mcp_servers]:"));
52
+ console.log(` ${pc.bold(ctx.mcpIncludeAdvisory.rerunCommand)}`);
53
+ }
54
+ const report = ctx.conversionReport;
55
+ if (report) {
56
+ printCappedSection("Preserved references (need attention)", report.warnedReferences, (l) => pc.yellow(`[!] ${l}`));
57
+ printCappedSection("Conversion notes", report.conversionWarnings, (l) => pc.dim(`[i] ${l}`));
58
+ printCappedSection("Instruction-file budget", report.budgetLines, (l) => l.includes("OVER") ? pc.yellow(`[!] ${l}`) : pc.dim(`[i] ${l}`));
59
+ printCappedSection("Validation errors", report.validationErrors, (l) => pc.red(`[x] ${l}`));
60
+ }
26
61
  }
27
62
  function printBanner(banner) {
28
63
  if (banner.kind === "empty-dir")
@@ -49,12 +84,27 @@ export function printActionDetails(actions) {
49
84
  console.log(pc.dim(` … and ${list.length - 10} more`));
50
85
  }
51
86
  }
87
+ /**
88
+ * Print the persisted migration-report path + verdict line at the end of a run.
89
+ * The verdict line already embeds the path; this keeps report presentation in the
90
+ * UI layer alongside the other run printers.
91
+ */
92
+ export function printReportPath(verdictLine) {
93
+ console.log();
94
+ console.log(pc.bold(verdictLine));
95
+ }
52
96
  export function printFinalSummary(results) {
53
97
  const succeeded = results.filter((r) => r.success).length;
54
98
  const failed = results.filter((r) => !r.success);
55
99
  console.log();
56
100
  console.log(pc.bold("Migration complete"));
57
101
  console.log(` ${pc.green(`${succeeded} succeeded`)}`);
102
+ const warned = results.filter((r) => r.warnings && r.warnings.length > 0);
103
+ for (const result of warned.slice(0, SECTION_DETAIL_CAP)) {
104
+ for (const warning of result.warnings ?? []) {
105
+ console.log(` ${pc.yellow(`[!] ${result.action.provider}/${result.action.type}/${result.action.item}: ${warning}`)}`);
106
+ }
107
+ }
58
108
  if (failed.length > 0) {
59
109
  console.log(` ${pc.red(`${failed.length} failed`)}`);
60
110
  for (const result of failed.slice(0, 5)) {
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-ui-summary.js","sourceRoot":"","sources":["../../src/migrate/migrate-ui-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate-ui-summary.js","sourceRoot":"","sources":["../../src/migrate/migrate-ui-summary.ts"],"names":[],"mappings":"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"}