mewkit 1.14.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 (134) hide show
  1. package/dist/migrate/apply-env-var-rewrites.d.ts +15 -0
  2. package/dist/migrate/apply-env-var-rewrites.d.ts.map +1 -0
  3. package/dist/migrate/apply-env-var-rewrites.js +26 -0
  4. package/dist/migrate/apply-env-var-rewrites.js.map +1 -0
  5. package/dist/migrate/converters/command-to-codex-skill.d.ts.map +1 -1
  6. package/dist/migrate/converters/command-to-codex-skill.js +15 -5
  7. package/dist/migrate/converters/command-to-codex-skill.js.map +1 -1
  8. package/dist/migrate/converters/fm-to-codex-toml.d.ts +4 -1
  9. package/dist/migrate/converters/fm-to-codex-toml.d.ts.map +1 -1
  10. package/dist/migrate/converters/fm-to-codex-toml.js +7 -2
  11. package/dist/migrate/converters/fm-to-codex-toml.js.map +1 -1
  12. package/dist/migrate/converters/index.js +1 -1
  13. package/dist/migrate/converters/index.js.map +1 -1
  14. package/dist/migrate/discovery/config-discovery.d.ts +29 -0
  15. package/dist/migrate/discovery/config-discovery.d.ts.map +1 -1
  16. package/dist/migrate/discovery/config-discovery.js +45 -0
  17. package/dist/migrate/discovery/config-discovery.js.map +1 -1
  18. package/dist/migrate/discovery/handlers-json-filter.d.ts.map +1 -1
  19. package/dist/migrate/discovery/handlers-json-filter.js +4 -2
  20. package/dist/migrate/discovery/handlers-json-filter.js.map +1 -1
  21. package/dist/migrate/discovery/hooks-discovery.d.ts +5 -0
  22. package/dist/migrate/discovery/hooks-discovery.d.ts.map +1 -1
  23. package/dist/migrate/discovery/hooks-discovery.js +21 -5
  24. package/dist/migrate/discovery/hooks-discovery.js.map +1 -1
  25. package/dist/migrate/hooks/codex-hook-wrapper.d.ts +15 -1
  26. package/dist/migrate/hooks/codex-hook-wrapper.d.ts.map +1 -1
  27. package/dist/migrate/hooks/codex-hook-wrapper.js +78 -7
  28. package/dist/migrate/hooks/codex-hook-wrapper.js.map +1 -1
  29. package/dist/migrate/hooks/codex-path-safety.d.ts +29 -0
  30. package/dist/migrate/hooks/codex-path-safety.d.ts.map +1 -1
  31. package/dist/migrate/hooks/codex-path-safety.js +36 -1
  32. package/dist/migrate/hooks/codex-path-safety.js.map +1 -1
  33. package/dist/migrate/hooks/codex-sh-wrapper-script.d.ts +8 -0
  34. package/dist/migrate/hooks/codex-sh-wrapper-script.d.ts.map +1 -0
  35. package/dist/migrate/hooks/codex-sh-wrapper-script.js +118 -0
  36. package/dist/migrate/hooks/codex-sh-wrapper-script.js.map +1 -0
  37. package/dist/migrate/hooks/codex-shell-env-installer.d.ts +14 -0
  38. package/dist/migrate/hooks/codex-shell-env-installer.d.ts.map +1 -0
  39. package/dist/migrate/hooks/codex-shell-env-installer.js +82 -0
  40. package/dist/migrate/hooks/codex-shell-env-installer.js.map +1 -0
  41. package/dist/migrate/hooks/codex-toml-installer.d.ts +2 -0
  42. package/dist/migrate/hooks/codex-toml-installer.d.ts.map +1 -1
  43. package/dist/migrate/hooks/codex-toml-installer.js +3 -1
  44. package/dist/migrate/hooks/codex-toml-installer.js.map +1 -1
  45. package/dist/migrate/hooks/hooks-settings-merger.d.ts +3 -0
  46. package/dist/migrate/hooks/hooks-settings-merger.d.ts.map +1 -1
  47. package/dist/migrate/hooks/hooks-settings-merger.js +152 -20
  48. package/dist/migrate/hooks/hooks-settings-merger.js.map +1 -1
  49. package/dist/migrate/migrate-orchestrator.d.ts +19 -0
  50. package/dist/migrate/migrate-orchestrator.d.ts.map +1 -1
  51. package/dist/migrate/migrate-orchestrator.js +154 -24
  52. package/dist/migrate/migrate-orchestrator.js.map +1 -1
  53. package/dist/migrate/migrate-ui-summary.d.ts +23 -0
  54. package/dist/migrate/migrate-ui-summary.d.ts.map +1 -1
  55. package/dist/migrate/migrate-ui-summary.js +24 -0
  56. package/dist/migrate/migrate-ui-summary.js.map +1 -1
  57. package/dist/migrate/model-routing-config.d.ts +3 -1
  58. package/dist/migrate/model-routing-config.d.ts.map +1 -1
  59. package/dist/migrate/model-routing-config.js +28 -0
  60. package/dist/migrate/model-routing-config.js.map +1 -1
  61. package/dist/migrate/portable-installer.d.ts +14 -1
  62. package/dist/migrate/portable-installer.d.ts.map +1 -1
  63. package/dist/migrate/portable-installer.js +110 -9
  64. package/dist/migrate/portable-installer.js.map +1 -1
  65. package/dist/migrate/providers/codex/capabilities.d.ts +5 -0
  66. package/dist/migrate/providers/codex/capabilities.d.ts.map +1 -1
  67. package/dist/migrate/providers/codex/capabilities.js +31 -0
  68. package/dist/migrate/providers/codex/capabilities.js.map +1 -1
  69. package/dist/migrate/providers/codex/config.d.ts.map +1 -1
  70. package/dist/migrate/providers/codex/config.js +8 -2
  71. package/dist/migrate/providers/codex/config.js.map +1 -1
  72. package/dist/migrate/providers/codex/shell-env-policy-emitter.d.ts +27 -0
  73. package/dist/migrate/providers/codex/shell-env-policy-emitter.d.ts.map +1 -0
  74. package/dist/migrate/providers/codex/shell-env-policy-emitter.js +86 -0
  75. package/dist/migrate/providers/codex/shell-env-policy-emitter.js.map +1 -0
  76. package/dist/migrate/reconcile/index.d.ts +1 -1
  77. package/dist/migrate/reconcile/index.d.ts.map +1 -1
  78. package/dist/migrate/reconcile/index.js +1 -1
  79. package/dist/migrate/reconcile/index.js.map +1 -1
  80. package/dist/migrate/reconcile/portable-manifest.d.ts +6 -0
  81. package/dist/migrate/reconcile/portable-manifest.d.ts.map +1 -1
  82. package/dist/migrate/reconcile/portable-manifest.js +23 -0
  83. package/dist/migrate/reconcile/portable-manifest.js.map +1 -1
  84. package/dist/migrate/reconcile/portable-registry.d.ts +18 -18
  85. package/dist/migrate/reconcile/reconcile-state-builders.d.ts +12 -5
  86. package/dist/migrate/reconcile/reconcile-state-builders.d.ts.map +1 -1
  87. package/dist/migrate/reconcile/reconcile-state-builders.js +2 -2
  88. package/dist/migrate/reconcile/reconcile-state-builders.js.map +1 -1
  89. package/dist/migrate/references/env-var-rewrite-table.d.ts +36 -0
  90. package/dist/migrate/references/env-var-rewrite-table.d.ts.map +1 -0
  91. package/dist/migrate/references/env-var-rewrite-table.js +97 -0
  92. package/dist/migrate/references/env-var-rewrite-table.js.map +1 -0
  93. package/dist/migrate/references/reference-classifier.d.ts +15 -0
  94. package/dist/migrate/references/reference-classifier.d.ts.map +1 -1
  95. package/dist/migrate/references/reference-classifier.js +33 -0
  96. package/dist/migrate/references/reference-classifier.js.map +1 -1
  97. package/dist/migrate/runtime-compat-audit.d.ts +1 -0
  98. package/dist/migrate/runtime-compat-audit.d.ts.map +1 -1
  99. package/dist/migrate/runtime-compat-audit.js +8 -3
  100. package/dist/migrate/runtime-compat-audit.js.map +1 -1
  101. package/dist/migrate/runtime-coupling-patterns.d.ts +30 -2
  102. package/dist/migrate/runtime-coupling-patterns.d.ts.map +1 -1
  103. package/dist/migrate/runtime-coupling-patterns.js +36 -8
  104. package/dist/migrate/runtime-coupling-patterns.js.map +1 -1
  105. package/dist/migrate/skill-directory-audit.d.ts +14 -0
  106. package/dist/migrate/skill-directory-audit.d.ts.map +1 -1
  107. package/dist/migrate/skill-directory-audit.js +68 -10
  108. package/dist/migrate/skill-directory-audit.js.map +1 -1
  109. package/dist/migrate/skill-directory-installer.d.ts +3 -0
  110. package/dist/migrate/skill-directory-installer.d.ts.map +1 -1
  111. package/dist/migrate/skill-directory-installer.js +98 -1
  112. package/dist/migrate/skill-directory-installer.js.map +1 -1
  113. package/dist/migrate/state-changing-script-detector.d.ts +16 -0
  114. package/dist/migrate/state-changing-script-detector.d.ts.map +1 -0
  115. package/dist/migrate/state-changing-script-detector.js +144 -0
  116. package/dist/migrate/state-changing-script-detector.js.map +1 -0
  117. package/dist/migrate/validation/migrate-conversion-report.d.ts +28 -0
  118. package/dist/migrate/validation/migrate-conversion-report.d.ts.map +1 -1
  119. package/dist/migrate/validation/migrate-conversion-report.js +48 -7
  120. package/dist/migrate/validation/migrate-conversion-report.js.map +1 -1
  121. package/dist/migrate/validation/migration-ledger-inputs.d.ts +56 -0
  122. package/dist/migrate/validation/migration-ledger-inputs.d.ts.map +1 -0
  123. package/dist/migrate/validation/migration-ledger-inputs.js +160 -0
  124. package/dist/migrate/validation/migration-ledger-inputs.js.map +1 -0
  125. package/dist/migrate/validation/migration-record-types.d.ts +38 -0
  126. package/dist/migrate/validation/migration-record-types.d.ts.map +1 -0
  127. package/dist/migrate/validation/migration-record-types.js +12 -0
  128. package/dist/migrate/validation/migration-record-types.js.map +1 -0
  129. package/dist/migrate/validation/migration-report-writer.d.ts +98 -0
  130. package/dist/migrate/validation/migration-report-writer.d.ts.map +1 -0
  131. package/dist/migrate/validation/migration-report-writer.js +0 -0
  132. package/dist/migrate/validation/migration-report-writer.js.map +1 -0
  133. package/package.json +1 -1
  134. package/portable-manifest.json +10 -2
@@ -0,0 +1,15 @@
1
+ export interface EnvVarRewriteApplication {
2
+ content: string;
3
+ /** Distinct tokens that were substituted, with their annotation. */
4
+ applied: Array<{
5
+ token: string;
6
+ rewrittenTo: string;
7
+ annotation: string;
8
+ }>;
9
+ }
10
+ /**
11
+ * Rewrite every table-known env-var token whose disposition is "rewrite".
12
+ * Returns the new content plus one annotation per distinct rewritten token.
13
+ */
14
+ export declare function applyEnvVarRewrites(content: string): EnvVarRewriteApplication;
15
+ //# sourceMappingURL=apply-env-var-rewrites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-env-var-rewrites.d.ts","sourceRoot":"","sources":["../../src/migrate/apply-env-var-rewrites.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,CAW7E"}
@@ -0,0 +1,26 @@
1
+ // Applies the static env-var rewrite table to a file's content BEFORE the audit.
2
+ // Only "rewrite"-disposition tokens are substituted (a fixed literal replaces the
3
+ // token); "neutralize" tokens are left in place for the audit to warn+annotate.
4
+ //
5
+ // SECURITY: the replacement string comes ONLY from the static table (validated by
6
+ // resolveEnvVar against SAFE_REWRITE_OUTPUT). The matched token selects the entry
7
+ // but never contributes to the output — no content-derived interpolation.
8
+ import { envVarTokenPattern, resolveEnvVar } from "./references/env-var-rewrite-table.js";
9
+ /**
10
+ * Rewrite every table-known env-var token whose disposition is "rewrite".
11
+ * Returns the new content plus one annotation per distinct rewritten token.
12
+ */
13
+ export function applyEnvVarRewrites(content) {
14
+ const appliedByToken = new Map();
15
+ const next = content.replace(envVarTokenPattern(), (token) => {
16
+ const resolution = resolveEnvVar(token);
17
+ if (!resolution || resolution.disposition !== "rewrite" || !resolution.rewriteTo)
18
+ return token;
19
+ if (!appliedByToken.has(token)) {
20
+ appliedByToken.set(token, { token, rewrittenTo: resolution.rewriteTo, annotation: resolution.annotation });
21
+ }
22
+ return resolution.rewriteTo;
23
+ });
24
+ return { content: next, applied: [...appliedByToken.values()] };
25
+ }
26
+ //# sourceMappingURL=apply-env-var-rewrites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-env-var-rewrites.js","sourceRoot":"","sources":["../../src/migrate/apply-env-var-rewrites.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAChF,EAAE;AACF,kFAAkF;AAClF,kFAAkF;AAClF,0EAA0E;AAE1E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAQ1F;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IAClD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAsE,CAAC;IACrG,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAC/F,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO,UAAU,CAAC,SAAS,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"command-to-codex-skill.d.ts","sourceRoot":"","sources":["../../../src/migrate/converters/command-to-codex-skill.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AACpH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,CAAC;AAenE,yEAAyE;AACzE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjE;AAMD,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;CAAE,GACzD,gBAAgB,CAoElB"}
1
+ {"version":3,"file":"command-to-codex-skill.d.ts","sourceRoot":"","sources":["../../../src/migrate/converters/command-to-codex-skill.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,2CAA2C,CAAC;AACpH,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,CAAC;AAenE,yEAAyE;AACzE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEjE;AAMD,wBAAgB,0BAA0B,CACzC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;CAAE,GACzD,gBAAgB,CAsElB"}
@@ -1,9 +1,17 @@
1
1
  // Converts a source command template into a Codex Agent Skill
2
2
  // (.agents/skills/<dir>/SKILL.md). Codex has no command-template surface —
3
- // custom prompts gave way to skills so each command becomes a skill whose
4
- // body carries the original template. Dynamic template syntax has no skill
5
- // equivalent: it is kept verbatim and surfaced as a manual-adaptation warning,
6
- // never silently stripped.
3
+ // custom prompts are deprecated in favor of skills, which validates converting
4
+ // each command into a skill whose body carries the original template
5
+ // (source: https://developers.openai.com/codex/changelog). Dynamic template
6
+ // syntax has no skill equivalent: it is kept verbatim and surfaced as a
7
+ // manual-adaptation warning, never silently stripped.
8
+ //
9
+ // Positional-argument policy (verified 2026-07 via Context7): the custom-prompt
10
+ // argument/placeholder syntax ($1–$9 / $ARGUMENTS) is NOT surfaced in Codex docs
11
+ // (https://developers.openai.com/codex/import), and custom prompts are deprecated
12
+ // anyway. We therefore do NOT emit native positional args — status quo is kept:
13
+ // placeholders are preserved verbatim and flagged for manual adaptation. Recorded
14
+ // as UNKNOWN.
7
15
  import { codexCommandSkillDirName, codexCommandSkillRelativePath } from "../references/codex-command-skill-path.js";
8
16
  import { stripClaudeRefs } from "./md-strip.js";
9
17
  export { codexCommandSkillDirName, codexCommandSkillRelativePath };
@@ -37,7 +45,9 @@ export function convertCommandToCodexSkill(item, context) {
37
45
  warnings.push(...stripped.warnings);
38
46
  const dynamicSyntax = detectDynamicCommandSyntax(item.body);
39
47
  if (dynamicSyntax.length > 0) {
40
- warnings.push(`Command "${commandName}" uses dynamic template syntax with no Codex skill equivalent (${dynamicSyntax.join("; ")}). The template is migrated verbatim manual adaptation needed.`);
48
+ warnings.push(`Command "${commandName}" uses dynamic template syntax with no Codex skill equivalent (${dynamicSyntax.join("; ")}). Codex custom-prompt argument syntax is unconfirmed in its docs, and custom prompts are ` +
49
+ `deprecated in favor of skills (https://developers.openai.com/codex/changelog). The template is ` +
50
+ `migrated verbatim — manual adaptation needed.`);
41
51
  }
42
52
  // Command frontmatter that has no SKILL.md equivalent becomes plain guidance text.
43
53
  const guidance = [];
@@ -1 +1 @@
1
- {"version":3,"file":"command-to-codex-skill.js","sourceRoot":"","sources":["../../../src/migrate/converters/command-to-codex-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-to-codex-skill.js","sourceRoot":"","sources":["../../../src/migrate/converters/command-to-codex-skill.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { ReferenceIntegrityIndex } from "../references/fence-aware-reference-rewriter.js";
1
2
  import type { ConversionResult, PortableItem } from "../types.js";
2
3
  /**
3
4
  * Codex TOML field contract — these are the field names the converter emits.
@@ -17,6 +18,8 @@ export interface CodexConfigEntry {
17
18
  configFile: string;
18
19
  }
19
20
  export declare function toCodexSlug(name: string): string;
20
- export declare function convertFmToCodexToml(item: PortableItem): ConversionResult;
21
+ export declare function convertFmToCodexToml(item: PortableItem, context?: {
22
+ migratedRefs?: ReferenceIntegrityIndex | null;
23
+ }): ConversionResult;
21
24
  export declare function buildCodexConfigEntry(name: string, description?: string): string;
22
25
  //# sourceMappingURL=fm-to-codex-toml.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fm-to-codex-toml.d.ts","sourceRoot":"","sources":["../../../src/migrate/converters/fm-to-codex-toml.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMlE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAehD;AAoCD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,gBAAgB,CAuCzE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAMhF"}
1
+ {"version":3,"file":"fm-to-codex-toml.d.ts","sourceRoot":"","sources":["../../../src/migrate/converters/fm-to-codex-toml.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMlE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAehD;AAoCD,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAA;CAAE,GACzD,gBAAgB,CA4ClB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAMhF"}
@@ -54,7 +54,7 @@ function deriveSandboxMode(tools) {
54
54
  warning: `No known read/write tool found in tools frontmatter: "${tools}"`,
55
55
  };
56
56
  }
57
- export function convertFmToCodexToml(item) {
57
+ export function convertFmToCodexToml(item, context) {
58
58
  const warnings = [];
59
59
  const slug = toCodexSlug(item.name);
60
60
  const lines = [];
@@ -81,7 +81,12 @@ export function convertFmToCodexToml(item) {
81
81
  warnings.push(sandboxResult.warning);
82
82
  if (sandboxResult.sandboxMode)
83
83
  lines.push(`sandbox_mode = "${sandboxResult.sandboxMode}"`);
84
- const stripped = stripClaudeRefs(item.body, { provider: "codex", targetName: providers.codex.displayName });
84
+ const stripped = stripClaudeRefs(item.body, {
85
+ provider: "codex",
86
+ targetName: providers.codex.displayName,
87
+ file: `${slug}.toml`,
88
+ migratedRefs: context?.migratedRefs,
89
+ });
85
90
  warnings.push(...stripped.warnings);
86
91
  const body = stripped.content.trim();
87
92
  if (body.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"fm-to-codex-toml.js","sourceRoot":"","sources":["../../../src/migrate/converters/fm-to-codex-toml.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fm-to-codex-toml.js","sourceRoot":"","sources":["../../../src/migrate/converters/fm-to-codex-toml.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,2EAA2E;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAqBjC,SAAS,SAAS,CAAC,KAAa;IAC/B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACvC,wGAAwG;IACxG,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEhE,IAAI,IAAI,GAAG,UAAU;SACnB,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;IAEhB,IAAI,CAAC,IAAI;QAAE,IAAI,GAAG,SAAS,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,IAAI,IAAI,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QACzC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACxE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACN,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,yCAAyC,OAAO,KAAK,+BAA+B;SAC7F,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAEhD,MAAM,QAAQ,GAAG,KAAK;SACpB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACV,CAAC;SACC,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CACxB;SACA,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACpC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACzF,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F,IAAI,QAAQ;QAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACxD,IAAI,OAAO;QAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;IAEjD,OAAO;QACN,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,yDAAyD,KAAK,GAAG;KAC1E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,IAAkB,EAClB,OAA2D;IAE3D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;IAElF,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAE3D,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAClE,IAAI,WAAW,CAAC,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpE,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvF,CAAC;IACF,CAAC;SAAM,IACN,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,KAAK,QAAQ;QAC1C,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,SAAS,EAC1C,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,aAAa,CAAC,OAAO;QAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,aAAa,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;IAE3F,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE;QAC3C,QAAQ,EAAE,OAAO;QACjB,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,WAAW;QACvC,IAAI,EAAE,GAAG,IAAI,OAAO;QACpB,YAAY,EAAE,OAAO,EAAE,YAAY;KACnC,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,wDAAwD,CAAC,CAAC;IAC5F,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iCAAiC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE9E,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC7G,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,WAAoB;IACvE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,WAAW,IAAI,IAAI,CAAC;IACjC,OAAO,CAAC,WAAW,IAAI,GAAG,EAAE,iBAAiB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,IAAI,QAAQ,CAAC,CAAC,IAAI,CAC/G,IAAI,CACJ,CAAC;AACH,CAAC"}
@@ -34,7 +34,7 @@ export function convertItem(item, format, provider, context) {
34
34
  case "md-to-kiro-steering":
35
35
  return convertMdToKiroSteering(item, provider);
36
36
  case "fm-to-codex-toml":
37
- return convertFmToCodexToml(item);
37
+ return convertFmToCodexToml(item, context);
38
38
  case "command-to-codex-skill":
39
39
  return convertCommandToCodexSkill(item, context);
40
40
  default: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrate/converters/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/migrate/converters/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,32 @@
1
1
  import type { PortableItem } from "../types.js";
2
2
  export declare function discoverConfig(configPath: string): Promise<PortableItem | null>;
3
+ /**
4
+ * Result of scanning `.claude/.env` for key NAMES.
5
+ *
6
+ * The shape deliberately holds ONLY key names — there is no place for a value.
7
+ * A unit test asserts a sentinel value from the source file is absent from
8
+ * every field of this structure.
9
+ */
10
+ export interface EnvKeyDiscovery {
11
+ /** Absolute path scanned (present even when the file has no keys) */
12
+ sourcePath: string;
13
+ /** Distinct key NAMES in first-seen order — never values */
14
+ readonly keys: readonly string[];
15
+ }
16
+ /**
17
+ * Parse ONLY the key names out of `.env` text. The value side of each line is
18
+ * split off on the first `=` and discarded immediately — it is never returned,
19
+ * stored, or included in any structure. `export FOO=bar` and `FOO=bar` both
20
+ * yield the key `FOO`. Blank lines, comments, and malformed keys are skipped.
21
+ *
22
+ * This is the input-side hard gate that makes value leakage impossible: the
23
+ * function's return type (`readonly string[]`) cannot express a value.
24
+ */
25
+ export declare function parseEnvKeyNames(content: string): string[];
26
+ /**
27
+ * Discover the KEY NAMES declared in a source `.claude/.env` file. Returns null
28
+ * when the file does not exist. Values are never read into memory beyond the
29
+ * per-line key split (see module header).
30
+ */
31
+ export declare function discoverEnvKeys(envPath: string): Promise<EnvKeyDiscovery | null>;
3
32
  //# sourceMappingURL=config-discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-discovery.d.ts","sourceRoot":"","sources":["../../../src/migrate/discovery/config-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAYrF"}
1
+ {"version":3,"file":"config-discovery.d.ts","sourceRoot":"","sources":["../../../src/migrate/discovery/config-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAYrF;AAeD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC/B,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC;AAKD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiB1D;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAKtF"}
@@ -14,4 +14,49 @@ export async function discoverConfig(configPath) {
14
14
  body: content,
15
15
  };
16
16
  }
17
+ /** A valid POSIX-ish env key: letters/digits/underscore, not leading with a digit. */
18
+ const ENV_KEY = /^[A-Za-z_][A-Za-z0-9_]*$/;
19
+ /**
20
+ * Parse ONLY the key names out of `.env` text. The value side of each line is
21
+ * split off on the first `=` and discarded immediately — it is never returned,
22
+ * stored, or included in any structure. `export FOO=bar` and `FOO=bar` both
23
+ * yield the key `FOO`. Blank lines, comments, and malformed keys are skipped.
24
+ *
25
+ * This is the input-side hard gate that makes value leakage impossible: the
26
+ * function's return type (`readonly string[]`) cannot express a value.
27
+ */
28
+ export function parseEnvKeyNames(content) {
29
+ const keys = [];
30
+ const seen = new Set();
31
+ for (const rawLine of content.split(/\r?\n/)) {
32
+ const line = rawLine.trim();
33
+ if (!line || line.startsWith("#"))
34
+ continue;
35
+ const eq = line.indexOf("=");
36
+ if (eq <= 0)
37
+ continue;
38
+ // Split on the FIRST `=` and DISCARD the remainder before anything else.
39
+ let key = line.slice(0, eq).trim();
40
+ // `line.slice(eq + 1)` (the value) is intentionally never bound.
41
+ if (key.startsWith("export "))
42
+ key = key.slice("export ".length).trim();
43
+ if (!ENV_KEY.test(key) || seen.has(key))
44
+ continue;
45
+ seen.add(key);
46
+ keys.push(key);
47
+ }
48
+ return keys;
49
+ }
50
+ /**
51
+ * Discover the KEY NAMES declared in a source `.claude/.env` file. Returns null
52
+ * when the file does not exist. Values are never read into memory beyond the
53
+ * per-line key split (see module header).
54
+ */
55
+ export async function discoverEnvKeys(envPath) {
56
+ if (!existsSync(envPath))
57
+ return null;
58
+ const content = await readFile(envPath, "utf-8");
59
+ const keys = parseEnvKeyNames(content);
60
+ return { sourcePath: envPath, keys };
61
+ }
17
62
  //# sourceMappingURL=config-discovery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-discovery.js","sourceRoot":"","sources":["../../../src/migrate/discovery/config-discovery.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAC7G,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB;IACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,OAAO;KACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config-discovery.js","sourceRoot":"","sources":["../../../src/migrate/discovery/config-discovery.ts"],"names":[],"mappings":"AAAA,6GAA6G;AAC7G,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB;IACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,uBAAuB;QACpC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,UAAU;QACtB,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,OAAO;KACb,CAAC;AACH,CAAC;AA6BD,sFAAsF;AACtF,MAAM,OAAO,GAAG,0BAA0B,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC/C,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,EAAE,IAAI,CAAC;YAAE,SAAS;QACtB,yEAAyE;QACzE,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,iEAAiE;QACjE,IAAI,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACxE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACpD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handlers-json-filter.d.ts","sourceRoot":"","sources":["../../../src/migrate/discovery/handlers-json-filter.ts"],"names":[],"mappings":"AAMA,UAAU,YAAY;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC;CAChG;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AASD,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoCjH"}
1
+ {"version":3,"file":"handlers-json-filter.d.ts","sourceRoot":"","sources":["../../../src/migrate/discovery/handlers-json-filter.ts"],"names":[],"mappings":"AAQA,UAAU,YAAY;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC;CAChG;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5D;AASD,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoCjH"}
@@ -1,5 +1,7 @@
1
- // Filter handlers.json: drop entries pointing at filtered-out shell hooks so target dispatcher
2
- // doesn't reference non-existent files at runtime (Red Team Finding 6).
1
+ // Filter handlers.json: drop entries pointing at handlers that have NO portable execution
2
+ // path on the target (.ps1/.bat/.cmd/.py) so the target dispatcher doesn't reference a
3
+ // non-existent file at runtime. `.sh` handlers are NOT dropped — they migrate via a copied
4
+ // script + generated .cjs wrapper, so their handlers.json entries are kept.
3
5
  import { existsSync } from "node:fs";
4
6
  import { readFile } from "node:fs/promises";
5
7
  import { join } from "node:path";
@@ -1 +1 @@
1
- {"version":3,"file":"handlers-json-filter.js","sourceRoot":"","sources":["../../../src/migrate/discovery/handlers-json-filter.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,wEAAwE;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWjC,SAAS,gBAAgB,CAAC,KAA4C;IACrE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;IAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,iBAA2B;IACrF,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAEzE,IAAI,GAAiB,CAAC;IACtB,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,cAAc,GAAuC,EAAE,CAAC;IAC9D,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YACxB,SAAS;QACV,CAAC;QAED,MAAM,IAAI,GAAI,KAAsD,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrF,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3E,IAAI,OAAO,EAAE,CAAC;gBACb,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"handlers-json-filter.js","sourceRoot":"","sources":["../../../src/migrate/discovery/handlers-json-filter.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,uFAAuF;AACvF,2FAA2F;AAC3F,4EAA4E;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAWjC,SAAS,gBAAgB,CAAC,KAA4C;IACrE,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;IAC1C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACjD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB,EAAE,iBAA2B;IACrF,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAEzE,IAAI,GAAiB,CAAC;IACtB,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACtD,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,cAAc,GAAuC,EAAE,CAAC;IAC9D,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAElC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YACxB,SAAS;QACV,CAAC;QAED,MAAM,IAAI,GAAI,KAAsD,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YACrF,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3E,IAAI,OAAO,EAAE,CAAC;gBACb,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC/C,OAAO,KAAK,CAAC;YACd,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAC7C,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC3C,CAAC"}
@@ -1,7 +1,12 @@
1
1
  import type { PortableItem } from "../types.js";
2
+ /** Runtime classification of a hook handler, consumed by the wrapper generator. */
3
+ export type HookHandlerType = "js" | "sh";
2
4
  export interface HookDiscoveryResult {
3
5
  items: PortableItem[];
6
+ /** Handlers with no portable execution path (.ps1/.bat/.cmd/.py) — reported, not migrated. */
4
7
  skippedShellHooks: string[];
5
8
  }
9
+ /** Classify a hook filename into a runtime handler type, or null if unsupported. */
10
+ export declare function classifyHookHandler(fileName: string): HookHandlerType | null;
6
11
  export declare function discoverHooks(sourcePath: string): Promise<HookDiscoveryResult>;
7
12
  //# sourceMappingURL=hooks-discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-discovery.d.ts","sourceRoot":"","sources":["../../../src/migrate/discovery/hooks-discovery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAqCpF"}
1
+ {"version":3,"file":"hooks-discovery.d.ts","sourceRoot":"","sources":["../../../src/migrate/discovery/hooks-discovery.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAQhD,mFAAmF;AACnF,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,8FAA8F;IAC9F,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAK5E;AAED,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwCpF"}
@@ -1,9 +1,24 @@
1
1
  // Vendored from claudekit-cli (MIT). Source: src/commands/portable/config-discovery.ts (discoverHooks variant)
2
- // MeowKit-specific: filters shell hooks (.sh/.ps1/.bat/.cmd) and reports them separately so user is informed.
2
+ // MeowKit-specific: classifies every hook handler by runtime type (js | sh). `.sh` handlers
3
+ // are NOT skipped — they migrate through a copy-script + generated .cjs wrapper (see
4
+ // hooks/codex-hook-wrapper.ts). Truly-unrunnable-on-a-node/sh-wrapper types (.ps1/.bat/.cmd/.py)
5
+ // are reported as skipped with a structured record rather than dropped silently.
3
6
  import { readdir, readFile } from "node:fs/promises";
4
7
  import { extname, join } from "node:path";
5
8
  const NODE_RUNNABLE = new Set([".js", ".cjs", ".mjs", ".ts"]);
6
- const SHELL_HOOK_EXT = new Set([".sh", ".ps1", ".bat", ".cmd", ".py"]);
9
+ // Shell scripts that a portable node wrapper can shell out to via /bin/sh.
10
+ const SHELL_RUNNABLE = new Set([".sh"]);
11
+ // Handler types with no portable execution path on the codex output tree.
12
+ const UNSUPPORTED_HANDLER_EXT = new Set([".ps1", ".bat", ".cmd", ".py"]);
13
+ /** Classify a hook filename into a runtime handler type, or null if unsupported. */
14
+ export function classifyHookHandler(fileName) {
15
+ const ext = extname(fileName).toLowerCase();
16
+ if (NODE_RUNNABLE.has(ext))
17
+ return "js";
18
+ if (SHELL_RUNNABLE.has(ext))
19
+ return "sh";
20
+ return null;
21
+ }
7
22
  export async function discoverHooks(sourcePath) {
8
23
  let entries;
9
24
  try {
@@ -18,11 +33,12 @@ export async function discoverHooks(sourcePath) {
18
33
  if (!entry.isFile() || entry.name.startsWith("."))
19
34
  continue;
20
35
  const ext = extname(entry.name).toLowerCase();
21
- if (SHELL_HOOK_EXT.has(ext)) {
36
+ if (UNSUPPORTED_HANDLER_EXT.has(ext)) {
22
37
  skippedShellHooks.push(entry.name);
23
38
  continue;
24
39
  }
25
- if (!NODE_RUNNABLE.has(ext))
40
+ const handlerType = classifyHookHandler(entry.name);
41
+ if (!handlerType)
26
42
  continue;
27
43
  const fullPath = join(sourcePath, entry.name);
28
44
  try {
@@ -32,7 +48,7 @@ export async function discoverHooks(sourcePath) {
32
48
  description: `Hook: ${entry.name}`,
33
49
  type: "hooks",
34
50
  sourcePath: fullPath,
35
- frontmatter: {},
51
+ frontmatter: { handlerType },
36
52
  body: content,
37
53
  });
38
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-discovery.js","sourceRoot":"","sources":["../../../src/migrate/discovery/hooks-discovery.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,8GAA8G;AAC9G,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAOvE,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB;IACrD,IAAI,OAAmC,CAAC;IACxC,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC9C,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,SAAS;QACV,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAEtC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE;gBAClC,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,EAAE;gBACf,IAAI,EAAE,OAAO;aACb,CAAC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACR,mBAAmB;QACpB,CAAC;IACF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"hooks-discovery.js","sourceRoot":"","sources":["../../../src/migrate/discovery/hooks-discovery.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAC/G,4FAA4F;AAC5F,qFAAqF;AACrF,iGAAiG;AACjG,iFAAiF;AACjF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9D,2EAA2E;AAC3E,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACxC,0EAA0E;AAC1E,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAWzE,oFAAoF;AACpF,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAkB;IACrD,IAAI,OAAmC,CAAC;IACxC,IAAI,CAAC;QACJ,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IAED,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAE9C,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,SAAS;QACV,CAAC;QAED,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,WAAW,EAAE,SAAS,KAAK,CAAC,IAAI,EAAE;gBAClC,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,QAAQ;gBACpB,WAAW,EAAE,EAAE,WAAW,EAAE;gBAC5B,IAAI,EAAE,OAAO;aACb,CAAC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACR,mBAAmB;QACpB,CAAC;IACF,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;AACrC,CAAC"}
@@ -2,9 +2,23 @@ import type { CodexCapabilities } from "../codex-capabilities.js";
2
2
  export interface WrapperGenerateResult {
3
3
  wrapperPath: string;
4
4
  originalPath: string;
5
+ /** Handler runtime type this wrapper was generated for. */
6
+ handlerType: "js" | "sh";
7
+ /** For sh handlers: the copied script under the wrapper tree (self-contained). */
8
+ copiedScriptPath?: string;
5
9
  success: boolean;
6
10
  error?: string;
7
11
  }
8
- export declare function generateCodexHookWrappers(originalPaths: string[], wrapperDir: string, capabilities: CodexCapabilities, timeoutsByPath?: Record<string, number>): WrapperGenerateResult[];
12
+ /** Per-original wrapper generation input. */
13
+ export interface WrapperGenerateInput {
14
+ originalPath: string;
15
+ handlerType: "js" | "sh";
16
+ }
17
+ /**
18
+ * Generate one wrapper per handler. Accepts either the legacy string[] form
19
+ * (all treated as `js`) or the richer WrapperGenerateInput[] form that carries
20
+ * each handler's runtime type so `.sh` handlers get the copy-script + sh wrapper.
21
+ */
22
+ export declare function generateCodexHookWrappers(originals: string[] | WrapperGenerateInput[], wrapperDir: string, capabilities: CodexCapabilities, timeoutsByPath?: Record<string, number>): WrapperGenerateResult[];
9
23
  export declare function buildWrapperScript(originalPath: string, capabilities: CodexCapabilities, hookTimeoutMs?: number): string;
10
24
  //# sourceMappingURL=codex-hook-wrapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex-hook-wrapper.d.ts","sourceRoot":"","sources":["../../../src/migrate/hooks/codex-hook-wrapper.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,WAAW,qBAAqB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AASD,wBAAgB,yBAAyB,CACxC,aAAa,EAAE,MAAM,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,iBAAiB,EAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,qBAAqB,EAAE,CAoCzB;AAOD,wBAAgB,kBAAkB,CACjC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,iBAAiB,EAC/B,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CA0HR"}
1
+ {"version":3,"file":"codex-hook-wrapper.d.ts","sourceRoot":"","sources":["../../../src/migrate/hooks/codex-hook-wrapper.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,MAAM,WAAW,qBAAqB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,2DAA2D;IAC3D,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;IACzB,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,6CAA6C;AAC7C,MAAM,WAAW,oBAAoB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAiCD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACxC,SAAS,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAE,EAC5C,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,iBAAiB,EAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACrC,qBAAqB,EAAE,CAgEzB;AAgBD,wBAAgB,kBAAkB,CACjC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,iBAAiB,EAC/B,aAAa,CAAC,EAAE,MAAM,GACpB,MAAM,CA0HR"}
@@ -1,26 +1,61 @@
1
1
  // Vendored from claudekit-cli (MIT). Source: src/commands/portable/codex-hook-wrapper.ts
2
2
  // Generates per-hook .cjs wrapper that scrubs Claude-only fields from hook stdout
3
3
  // before re-emitting to Codex stdout. Wrapper is self-contained — no mewkit imports at runtime.
4
+ //
5
+ // `.sh` handlers additionally get their script COPIED under the wrapper tree
6
+ // (`scripts/`) so the migrated hook has no dependency on the source `.claude/`
7
+ // tree remaining in place (self-contained migration). See codex-sh-wrapper-script.ts.
4
8
  import { createHash } from "node:crypto";
5
- import { mkdirSync, writeFileSync } from "node:fs";
6
- import { dirname, join, resolve } from "node:path";
9
+ import { chmodSync, copyFileSync, mkdirSync, statSync, writeFileSync } from "node:fs";
10
+ import { basename, dirname, extname, join, resolve } from "node:path";
11
+ import { buildShWrapperScript } from "./codex-sh-wrapper-script.js";
7
12
  import { isPathWithinBoundary } from "./codex-path-safety.js";
8
13
  function wrapperFilename(originalPath) {
9
14
  const abs = resolve(originalPath);
10
15
  const hash = createHash("sha256").update(abs).digest("hex").slice(0, 8);
11
16
  const base = abs.split(/[\\/]/).pop() ?? "hook.cjs";
17
+ // Shell handlers get a .cjs wrapper filename (the node wrapper), not .sh.
18
+ if (extname(base).toLowerCase() === ".sh") {
19
+ return `${hash}-${base.slice(0, -3)}.cjs`;
20
+ }
12
21
  return `${hash}-${base}`;
13
22
  }
14
- export function generateCodexHookWrappers(originalPaths, wrapperDir, capabilities, timeoutsByPath) {
23
+ function copiedScriptFilename(originalPath) {
24
+ const abs = resolve(originalPath);
25
+ const hash = createHash("sha256").update(abs).digest("hex").slice(0, 8);
26
+ return `${hash}-${basename(abs)}`;
27
+ }
28
+ /** Build the delete/permission scrub rules table shared by js + sh wrappers. */
29
+ function buildScrubRules(capabilities) {
30
+ const scrubRules = {};
31
+ for (const [event, caps] of Object.entries(capabilities.events)) {
32
+ const deleteFields = [];
33
+ if (!caps.supportsAdditionalContext)
34
+ deleteFields.push("additionalContext");
35
+ const allowedPermissionValues = caps.permissionDecisionValues ?? null;
36
+ if (deleteFields.length > 0 || allowedPermissionValues !== null) {
37
+ scrubRules[event] = { deleteFields, allowedPermissionValues };
38
+ }
39
+ }
40
+ return scrubRules;
41
+ }
42
+ /**
43
+ * Generate one wrapper per handler. Accepts either the legacy string[] form
44
+ * (all treated as `js`) or the richer WrapperGenerateInput[] form that carries
45
+ * each handler's runtime type so `.sh` handlers get the copy-script + sh wrapper.
46
+ */
47
+ export function generateCodexHookWrappers(originals, wrapperDir, capabilities, timeoutsByPath) {
15
48
  const results = [];
16
49
  const resolvedWrapperDir = resolve(wrapperDir);
17
- for (const originalPath of originalPaths) {
50
+ const inputs = normalizeInputs(originals);
51
+ for (const { originalPath, handlerType } of inputs) {
18
52
  const filename = wrapperFilename(originalPath);
19
53
  const wrapperPath = join(resolvedWrapperDir, filename);
20
54
  if (!isPathWithinBoundary(wrapperPath, resolvedWrapperDir)) {
21
55
  results.push({
22
56
  wrapperPath,
23
57
  originalPath,
58
+ handlerType,
24
59
  success: false,
25
60
  error: `Unsafe wrapper path: ${wrapperPath} escapes ${resolvedWrapperDir}`,
26
61
  });
@@ -30,14 +65,42 @@ export function generateCodexHookWrappers(originalPaths, wrapperDir, capabilitie
30
65
  mkdirSync(dirname(wrapperPath), { recursive: true });
31
66
  const resolvedPath = resolve(originalPath);
32
67
  const hookTimeoutMs = timeoutsByPath?.[resolvedPath] ?? timeoutsByPath?.[originalPath];
33
- const content = buildWrapperScript(originalPath, capabilities, hookTimeoutMs);
34
- writeFileSync(wrapperPath, content, { mode: 0o755 });
35
- results.push({ wrapperPath, originalPath, success: true });
68
+ if (handlerType === "sh") {
69
+ const scriptsDir = join(resolvedWrapperDir, "scripts");
70
+ const copiedScriptPath = join(scriptsDir, copiedScriptFilename(originalPath));
71
+ if (!isPathWithinBoundary(copiedScriptPath, resolvedWrapperDir)) {
72
+ throw new Error(`Unsafe copied-script path: ${copiedScriptPath} escapes ${resolvedWrapperDir}`);
73
+ }
74
+ mkdirSync(scriptsDir, { recursive: true });
75
+ copyFileSync(resolvedPath, copiedScriptPath);
76
+ try {
77
+ // Preserve the original script's executable bits where present.
78
+ const mode = statSync(resolvedPath).mode & 0o777;
79
+ if (mode & 0o100)
80
+ chmodSync(copiedScriptPath, mode);
81
+ }
82
+ catch {
83
+ /* best-effort mode copy */
84
+ }
85
+ const content = buildShWrapperScript(originalPath, {
86
+ copiedScriptPath,
87
+ scrubRulesJson: JSON.stringify(buildScrubRules(capabilities)),
88
+ timeoutMs: hookTimeoutMs ?? 30000,
89
+ });
90
+ writeFileSync(wrapperPath, content, { mode: 0o755 });
91
+ results.push({ wrapperPath, originalPath, handlerType, copiedScriptPath, success: true });
92
+ }
93
+ else {
94
+ const content = buildWrapperScript(originalPath, capabilities, hookTimeoutMs);
95
+ writeFileSync(wrapperPath, content, { mode: 0o755 });
96
+ results.push({ wrapperPath, originalPath, handlerType, success: true });
97
+ }
36
98
  }
37
99
  catch (err) {
38
100
  results.push({
39
101
  wrapperPath,
40
102
  originalPath,
103
+ handlerType,
41
104
  success: false,
42
105
  error: err instanceof Error ? err.message : String(err),
43
106
  });
@@ -45,6 +108,14 @@ export function generateCodexHookWrappers(originalPaths, wrapperDir, capabilitie
45
108
  }
46
109
  return results;
47
110
  }
111
+ function normalizeInputs(originals) {
112
+ return originals.map((entry) => {
113
+ if (typeof entry === "string") {
114
+ return { originalPath: entry, handlerType: extname(entry).toLowerCase() === ".sh" ? "sh" : "js" };
115
+ }
116
+ return entry;
117
+ });
118
+ }
48
119
  export function buildWrapperScript(originalPath, capabilities, hookTimeoutMs) {
49
120
  const scrubRules = {};
50
121
  for (const [event, caps] of Object.entries(capabilities.events)) {
@@ -1 +1 @@
1
- {"version":3,"file":"codex-hook-wrapper.js","sourceRoot":"","sources":["../../../src/migrate/hooks/codex-hook-wrapper.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,kFAAkF;AAClF,gGAAgG;AAChG,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAS9D,SAAS,eAAe,CAAC,YAAoB;IAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,UAAU,CAAC;IACpD,OAAO,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,yBAAyB,CACxC,aAAuB,EACvB,UAAkB,EAClB,YAA+B,EAC/B,cAAuC;IAEvC,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAE/C,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC;gBACZ,WAAW;gBACX,YAAY;gBACZ,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,wBAAwB,WAAW,YAAY,kBAAkB,EAAE;aAC1E,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QAED,IAAI,CAAC;YACJ,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YAC3C,MAAM,aAAa,GAAG,cAAc,EAAE,CAAC,YAAY,CAAC,IAAI,cAAc,EAAE,CAAC,YAAY,CAAC,CAAC;YACvF,MAAM,OAAO,GAAG,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;YAC9E,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC;gBACZ,WAAW;gBACX,YAAY;gBACZ,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACvD,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAOD,MAAM,UAAU,kBAAkB,CACjC,YAAoB,EACpB,YAA+B,EAC/B,aAAsB;IAEtB,MAAM,UAAU,GAAoC,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACjE,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,CAAC,yBAAyB;YAAE,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC5E,MAAM,uBAAuB,GAAG,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC;QACtE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB,KAAK,IAAI,EAAE,CAAC;YACjE,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,YAAY,EAAE,uBAAuB,EAAE,CAAC;QAC/D,CAAC;IACF,CAAC;IAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACzD,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,aAAa,IAAI,KAAK,CAAC;IAEhD,OAAO;;;OAGD,YAAY;;;;;wBAKK,mBAAmB;sBACrB,cAAc;0BACV,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgGzC,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"codex-hook-wrapper.js","sourceRoot":"","sources":["../../../src/migrate/hooks/codex-hook-wrapper.ts"],"names":[],"mappings":"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"}