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.
- package/dist/migrate/apply-env-var-rewrites.d.ts +15 -0
- package/dist/migrate/apply-env-var-rewrites.d.ts.map +1 -0
- package/dist/migrate/apply-env-var-rewrites.js +26 -0
- package/dist/migrate/apply-env-var-rewrites.js.map +1 -0
- package/dist/migrate/converters/command-to-codex-skill.d.ts.map +1 -1
- package/dist/migrate/converters/command-to-codex-skill.js +15 -5
- package/dist/migrate/converters/command-to-codex-skill.js.map +1 -1
- package/dist/migrate/converters/fm-to-codex-toml.d.ts +4 -1
- package/dist/migrate/converters/fm-to-codex-toml.d.ts.map +1 -1
- package/dist/migrate/converters/fm-to-codex-toml.js +7 -2
- package/dist/migrate/converters/fm-to-codex-toml.js.map +1 -1
- package/dist/migrate/converters/index.js +1 -1
- package/dist/migrate/converters/index.js.map +1 -1
- package/dist/migrate/discovery/config-discovery.d.ts +29 -0
- package/dist/migrate/discovery/config-discovery.d.ts.map +1 -1
- package/dist/migrate/discovery/config-discovery.js +45 -0
- package/dist/migrate/discovery/config-discovery.js.map +1 -1
- package/dist/migrate/discovery/handlers-json-filter.d.ts.map +1 -1
- package/dist/migrate/discovery/handlers-json-filter.js +4 -2
- package/dist/migrate/discovery/handlers-json-filter.js.map +1 -1
- package/dist/migrate/discovery/hooks-discovery.d.ts +5 -0
- package/dist/migrate/discovery/hooks-discovery.d.ts.map +1 -1
- package/dist/migrate/discovery/hooks-discovery.js +21 -5
- package/dist/migrate/discovery/hooks-discovery.js.map +1 -1
- package/dist/migrate/hooks/codex-hook-wrapper.d.ts +15 -1
- package/dist/migrate/hooks/codex-hook-wrapper.d.ts.map +1 -1
- package/dist/migrate/hooks/codex-hook-wrapper.js +78 -7
- package/dist/migrate/hooks/codex-hook-wrapper.js.map +1 -1
- package/dist/migrate/hooks/codex-path-safety.d.ts +29 -0
- package/dist/migrate/hooks/codex-path-safety.d.ts.map +1 -1
- package/dist/migrate/hooks/codex-path-safety.js +36 -1
- package/dist/migrate/hooks/codex-path-safety.js.map +1 -1
- package/dist/migrate/hooks/codex-sh-wrapper-script.d.ts +8 -0
- package/dist/migrate/hooks/codex-sh-wrapper-script.d.ts.map +1 -0
- package/dist/migrate/hooks/codex-sh-wrapper-script.js +118 -0
- package/dist/migrate/hooks/codex-sh-wrapper-script.js.map +1 -0
- package/dist/migrate/hooks/codex-shell-env-installer.d.ts +14 -0
- package/dist/migrate/hooks/codex-shell-env-installer.d.ts.map +1 -0
- package/dist/migrate/hooks/codex-shell-env-installer.js +82 -0
- package/dist/migrate/hooks/codex-shell-env-installer.js.map +1 -0
- package/dist/migrate/hooks/codex-toml-installer.d.ts +2 -0
- package/dist/migrate/hooks/codex-toml-installer.d.ts.map +1 -1
- package/dist/migrate/hooks/codex-toml-installer.js +3 -1
- package/dist/migrate/hooks/codex-toml-installer.js.map +1 -1
- package/dist/migrate/hooks/hooks-settings-merger.d.ts +3 -0
- package/dist/migrate/hooks/hooks-settings-merger.d.ts.map +1 -1
- package/dist/migrate/hooks/hooks-settings-merger.js +152 -20
- package/dist/migrate/hooks/hooks-settings-merger.js.map +1 -1
- package/dist/migrate/migrate-orchestrator.d.ts +19 -0
- package/dist/migrate/migrate-orchestrator.d.ts.map +1 -1
- package/dist/migrate/migrate-orchestrator.js +154 -24
- package/dist/migrate/migrate-orchestrator.js.map +1 -1
- package/dist/migrate/migrate-ui-summary.d.ts +23 -0
- package/dist/migrate/migrate-ui-summary.d.ts.map +1 -1
- package/dist/migrate/migrate-ui-summary.js +24 -0
- package/dist/migrate/migrate-ui-summary.js.map +1 -1
- package/dist/migrate/model-routing-config.d.ts +3 -1
- package/dist/migrate/model-routing-config.d.ts.map +1 -1
- package/dist/migrate/model-routing-config.js +28 -0
- package/dist/migrate/model-routing-config.js.map +1 -1
- package/dist/migrate/portable-installer.d.ts +14 -1
- package/dist/migrate/portable-installer.d.ts.map +1 -1
- package/dist/migrate/portable-installer.js +110 -9
- package/dist/migrate/portable-installer.js.map +1 -1
- package/dist/migrate/providers/codex/capabilities.d.ts +5 -0
- package/dist/migrate/providers/codex/capabilities.d.ts.map +1 -1
- package/dist/migrate/providers/codex/capabilities.js +31 -0
- package/dist/migrate/providers/codex/capabilities.js.map +1 -1
- package/dist/migrate/providers/codex/config.d.ts.map +1 -1
- package/dist/migrate/providers/codex/config.js +8 -2
- package/dist/migrate/providers/codex/config.js.map +1 -1
- package/dist/migrate/providers/codex/shell-env-policy-emitter.d.ts +27 -0
- package/dist/migrate/providers/codex/shell-env-policy-emitter.d.ts.map +1 -0
- package/dist/migrate/providers/codex/shell-env-policy-emitter.js +86 -0
- package/dist/migrate/providers/codex/shell-env-policy-emitter.js.map +1 -0
- package/dist/migrate/reconcile/index.d.ts +1 -1
- package/dist/migrate/reconcile/index.d.ts.map +1 -1
- package/dist/migrate/reconcile/index.js +1 -1
- package/dist/migrate/reconcile/index.js.map +1 -1
- package/dist/migrate/reconcile/portable-manifest.d.ts +6 -0
- package/dist/migrate/reconcile/portable-manifest.d.ts.map +1 -1
- package/dist/migrate/reconcile/portable-manifest.js +23 -0
- package/dist/migrate/reconcile/portable-manifest.js.map +1 -1
- package/dist/migrate/reconcile/portable-registry.d.ts +18 -18
- package/dist/migrate/reconcile/reconcile-state-builders.d.ts +12 -5
- package/dist/migrate/reconcile/reconcile-state-builders.d.ts.map +1 -1
- package/dist/migrate/reconcile/reconcile-state-builders.js +2 -2
- package/dist/migrate/reconcile/reconcile-state-builders.js.map +1 -1
- package/dist/migrate/references/env-var-rewrite-table.d.ts +36 -0
- package/dist/migrate/references/env-var-rewrite-table.d.ts.map +1 -0
- package/dist/migrate/references/env-var-rewrite-table.js +97 -0
- package/dist/migrate/references/env-var-rewrite-table.js.map +1 -0
- package/dist/migrate/references/reference-classifier.d.ts +15 -0
- package/dist/migrate/references/reference-classifier.d.ts.map +1 -1
- package/dist/migrate/references/reference-classifier.js +33 -0
- package/dist/migrate/references/reference-classifier.js.map +1 -1
- package/dist/migrate/runtime-compat-audit.d.ts +1 -0
- package/dist/migrate/runtime-compat-audit.d.ts.map +1 -1
- package/dist/migrate/runtime-compat-audit.js +8 -3
- package/dist/migrate/runtime-compat-audit.js.map +1 -1
- package/dist/migrate/runtime-coupling-patterns.d.ts +30 -2
- package/dist/migrate/runtime-coupling-patterns.d.ts.map +1 -1
- package/dist/migrate/runtime-coupling-patterns.js +36 -8
- package/dist/migrate/runtime-coupling-patterns.js.map +1 -1
- package/dist/migrate/skill-directory-audit.d.ts +14 -0
- package/dist/migrate/skill-directory-audit.d.ts.map +1 -1
- package/dist/migrate/skill-directory-audit.js +68 -10
- package/dist/migrate/skill-directory-audit.js.map +1 -1
- package/dist/migrate/skill-directory-installer.d.ts +3 -0
- package/dist/migrate/skill-directory-installer.d.ts.map +1 -1
- package/dist/migrate/skill-directory-installer.js +98 -1
- package/dist/migrate/skill-directory-installer.js.map +1 -1
- package/dist/migrate/state-changing-script-detector.d.ts +16 -0
- package/dist/migrate/state-changing-script-detector.d.ts.map +1 -0
- package/dist/migrate/state-changing-script-detector.js +144 -0
- package/dist/migrate/state-changing-script-detector.js.map +1 -0
- package/dist/migrate/validation/migrate-conversion-report.d.ts +28 -0
- package/dist/migrate/validation/migrate-conversion-report.d.ts.map +1 -1
- package/dist/migrate/validation/migrate-conversion-report.js +48 -7
- package/dist/migrate/validation/migrate-conversion-report.js.map +1 -1
- package/dist/migrate/validation/migration-ledger-inputs.d.ts +56 -0
- package/dist/migrate/validation/migration-ledger-inputs.d.ts.map +1 -0
- package/dist/migrate/validation/migration-ledger-inputs.js +160 -0
- package/dist/migrate/validation/migration-ledger-inputs.js.map +1 -0
- package/dist/migrate/validation/migration-record-types.d.ts +38 -0
- package/dist/migrate/validation/migration-record-types.d.ts.map +1 -0
- package/dist/migrate/validation/migration-record-types.js +12 -0
- package/dist/migrate/validation/migration-record-types.js.map +1 -0
- package/dist/migrate/validation/migration-report-writer.d.ts +98 -0
- package/dist/migrate/validation/migration-report-writer.d.ts.map +1 -0
- package/dist/migrate/validation/migration-report-writer.js +0 -0
- package/dist/migrate/validation/migration-report-writer.js.map +1 -0
- package/package.json +1 -1
- package/portable-manifest.json +10 -2
|
@@ -19,32 +19,32 @@ declare const PortableInstallationSchemaV3: z.ZodObject<{
|
|
|
19
19
|
}, "strip", z.ZodTypeAny, {
|
|
20
20
|
path: string;
|
|
21
21
|
type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
|
|
22
|
-
|
|
22
|
+
global: boolean;
|
|
23
23
|
item: string;
|
|
24
24
|
provider: string;
|
|
25
|
-
|
|
25
|
+
installedAt: string;
|
|
26
26
|
sourcePath: string;
|
|
27
27
|
sourceChecksum: string;
|
|
28
28
|
targetChecksum: string;
|
|
29
29
|
installSource: "kit" | "manual";
|
|
30
|
-
installedVersion?: string | undefined;
|
|
31
30
|
cliVersion?: string | undefined;
|
|
32
31
|
ownedSections?: string[] | undefined;
|
|
32
|
+
installedVersion?: string | undefined;
|
|
33
33
|
installedChecksum?: string | undefined;
|
|
34
34
|
}, {
|
|
35
35
|
path: string;
|
|
36
36
|
type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
|
|
37
|
-
|
|
37
|
+
global: boolean;
|
|
38
38
|
item: string;
|
|
39
39
|
provider: string;
|
|
40
|
-
|
|
40
|
+
installedAt: string;
|
|
41
41
|
sourcePath: string;
|
|
42
42
|
sourceChecksum: string;
|
|
43
43
|
targetChecksum: string;
|
|
44
44
|
installSource: "kit" | "manual";
|
|
45
|
-
installedVersion?: string | undefined;
|
|
46
45
|
cliVersion?: string | undefined;
|
|
47
46
|
ownedSections?: string[] | undefined;
|
|
47
|
+
installedVersion?: string | undefined;
|
|
48
48
|
installedChecksum?: string | undefined;
|
|
49
49
|
}>;
|
|
50
50
|
export type PortableInstallationV3 = z.infer<typeof PortableInstallationSchemaV3>;
|
|
@@ -68,32 +68,32 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
|
|
|
68
68
|
}, "strip", z.ZodTypeAny, {
|
|
69
69
|
path: string;
|
|
70
70
|
type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
|
|
71
|
-
|
|
71
|
+
global: boolean;
|
|
72
72
|
item: string;
|
|
73
73
|
provider: string;
|
|
74
|
-
|
|
74
|
+
installedAt: string;
|
|
75
75
|
sourcePath: string;
|
|
76
76
|
sourceChecksum: string;
|
|
77
77
|
targetChecksum: string;
|
|
78
78
|
installSource: "kit" | "manual";
|
|
79
|
-
installedVersion?: string | undefined;
|
|
80
79
|
cliVersion?: string | undefined;
|
|
81
80
|
ownedSections?: string[] | undefined;
|
|
81
|
+
installedVersion?: string | undefined;
|
|
82
82
|
installedChecksum?: string | undefined;
|
|
83
83
|
}, {
|
|
84
84
|
path: string;
|
|
85
85
|
type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
|
|
86
|
-
|
|
86
|
+
global: boolean;
|
|
87
87
|
item: string;
|
|
88
88
|
provider: string;
|
|
89
|
-
|
|
89
|
+
installedAt: string;
|
|
90
90
|
sourcePath: string;
|
|
91
91
|
sourceChecksum: string;
|
|
92
92
|
targetChecksum: string;
|
|
93
93
|
installSource: "kit" | "manual";
|
|
94
|
-
installedVersion?: string | undefined;
|
|
95
94
|
cliVersion?: string | undefined;
|
|
96
95
|
ownedSections?: string[] | undefined;
|
|
96
|
+
installedVersion?: string | undefined;
|
|
97
97
|
installedChecksum?: string | undefined;
|
|
98
98
|
}>, "many">;
|
|
99
99
|
lastReconciled: z.ZodOptional<z.ZodString>;
|
|
@@ -103,17 +103,17 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
|
|
|
103
103
|
installations: {
|
|
104
104
|
path: string;
|
|
105
105
|
type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
|
|
106
|
-
|
|
106
|
+
global: boolean;
|
|
107
107
|
item: string;
|
|
108
108
|
provider: string;
|
|
109
|
-
|
|
109
|
+
installedAt: string;
|
|
110
110
|
sourcePath: string;
|
|
111
111
|
sourceChecksum: string;
|
|
112
112
|
targetChecksum: string;
|
|
113
113
|
installSource: "kit" | "manual";
|
|
114
|
-
installedVersion?: string | undefined;
|
|
115
114
|
cliVersion?: string | undefined;
|
|
116
115
|
ownedSections?: string[] | undefined;
|
|
116
|
+
installedVersion?: string | undefined;
|
|
117
117
|
installedChecksum?: string | undefined;
|
|
118
118
|
}[];
|
|
119
119
|
lastReconciled?: string | undefined;
|
|
@@ -123,17 +123,17 @@ declare const PortableRegistrySchemaV3: z.ZodObject<{
|
|
|
123
123
|
installations: {
|
|
124
124
|
path: string;
|
|
125
125
|
type: "agent" | "command" | "skill" | "config" | "rules" | "hooks";
|
|
126
|
-
|
|
126
|
+
global: boolean;
|
|
127
127
|
item: string;
|
|
128
128
|
provider: string;
|
|
129
|
-
|
|
129
|
+
installedAt: string;
|
|
130
130
|
sourcePath: string;
|
|
131
131
|
sourceChecksum: string;
|
|
132
132
|
targetChecksum: string;
|
|
133
133
|
installSource: "kit" | "manual";
|
|
134
|
-
installedVersion?: string | undefined;
|
|
135
134
|
cliVersion?: string | undefined;
|
|
136
135
|
ownedSections?: string[] | undefined;
|
|
136
|
+
installedVersion?: string | undefined;
|
|
137
137
|
installedChecksum?: string | undefined;
|
|
138
138
|
}[];
|
|
139
139
|
lastReconciled?: string | undefined;
|
|
@@ -8,12 +8,19 @@ export interface ConversionFallbackWarning {
|
|
|
8
8
|
format: string;
|
|
9
9
|
error: string;
|
|
10
10
|
}
|
|
11
|
-
|
|
11
|
+
/** Optional shared conversion inputs so PREVIEW output matches INSTALL output. */
|
|
12
|
+
export interface StateBuilderConversionOptions {
|
|
12
13
|
onConversionFallback?: (warning: ConversionFallbackWarning) => void;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Migration-set membership index. Threaded into convertItem so the reconcile
|
|
16
|
+
* PREVIEW checksum for codex agents matches the actual INSTALL output (the
|
|
17
|
+
* install path already passes migratedRefs; omitting it here made the upgrade
|
|
18
|
+
* path see a phantom diff). Non-codex providers ignore it (identity).
|
|
19
|
+
*/
|
|
20
|
+
migratedRefs?: import("../references/fence-aware-reference-rewriter.js").ReferenceIntegrityIndex | null;
|
|
21
|
+
}
|
|
22
|
+
export declare function buildConvertedChecksums(item: PortableItem, type: PortableType, selectedProviders: ProviderType[], options?: StateBuilderConversionOptions): Record<string, string>;
|
|
23
|
+
export declare function buildSourceItemState(item: PortableItem, type: PortableType, selectedProviders: ProviderType[], options?: StateBuilderConversionOptions): SourceItemState;
|
|
17
24
|
export declare function buildTypeDirectoryStates(providerConfigs: Array<{
|
|
18
25
|
provider: ProviderType;
|
|
19
26
|
global: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-state-builders.d.ts","sourceRoot":"","sources":["../../../src/migrate/reconcile/reconcile-state-builders.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAOrE,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEnG,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,iBAAiB,EAAE,YAAY,EAAE,EACjC,OAAO,CAAC,EAAE
|
|
1
|
+
{"version":3,"file":"reconcile-state-builders.d.ts","sourceRoot":"","sources":["../../../src/migrate/reconcile/reconcile-state-builders.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAOrE,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEnG,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACd;AAED,kFAAkF;AAClF,MAAM,WAAW,6BAA6B;IAC7C,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACpE;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,iDAAiD,EAAE,uBAAuB,GAAG,IAAI,CAAC;CACxG;AAED,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,iBAAiB,EAAE,YAAY,EAAE,EACjC,OAAO,CAAC,EAAE,6BAA6B,GACrC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA4BxB;AAED,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,YAAY,EAClB,iBAAiB,EAAE,YAAY,EAAE,EACjC,OAAO,CAAC,EAAE,6BAA6B,GACrC,eAAe,CA6BjB;AAED,wBAAgB,wBAAwB,CACvC,eAAe,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC,EACnE,KAAK,EAAE,YAAY,EAAE,GACnB,oBAAoB,EAAE,CAkGxB;AAED,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,sBAAsB,EAAE,EACjC,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,GAClE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CA+BvC"}
|
|
@@ -16,7 +16,7 @@ export function buildConvertedChecksums(item, type, selectedProviders, options)
|
|
|
16
16
|
convertedChecksums[provider] = rawChecksum;
|
|
17
17
|
continue;
|
|
18
18
|
}
|
|
19
|
-
const result = convertItem(item, pathConfig.format, provider);
|
|
19
|
+
const result = convertItem(item, pathConfig.format, provider, { migratedRefs: options?.migratedRefs });
|
|
20
20
|
if (result.error) {
|
|
21
21
|
options?.onConversionFallback?.({
|
|
22
22
|
item: item.name,
|
|
@@ -42,7 +42,7 @@ export function buildSourceItemState(item, type, selectedProviders, options) {
|
|
|
42
42
|
targetChecksums[provider] = rawChecksum;
|
|
43
43
|
continue;
|
|
44
44
|
}
|
|
45
|
-
const result = convertItem(item, pathConfig.format, provider);
|
|
45
|
+
const result = convertItem(item, pathConfig.format, provider, { migratedRefs: options?.migratedRefs });
|
|
46
46
|
if (result.error) {
|
|
47
47
|
targetChecksums[provider] = rawChecksum;
|
|
48
48
|
continue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconcile-state-builders.js","sourceRoot":"","sources":["../../../src/migrate/reconcile/reconcile-state-builders.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,+FAA+F;AAC/F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,iCAAiC,EACjC,wBAAwB,GACxB,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"reconcile-state-builders.js","sourceRoot":"","sources":["../../../src/migrate/reconcile/reconcile-state-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Allowlist for any emitted rewrite value — mirrors the plan's injection guard. */
|
|
2
|
+
export declare const SAFE_REWRITE_OUTPUT: RegExp;
|
|
3
|
+
/** How a matched env-var token is handled by the audit/rewrite pass. */
|
|
4
|
+
export type EnvVarDisposition = "rewrite" | "neutralize";
|
|
5
|
+
export interface EnvVarRewriteEntry {
|
|
6
|
+
/** Exact source token variants this entry matches (with and without braces). */
|
|
7
|
+
readonly tokens: readonly string[];
|
|
8
|
+
/** rewrite = replace with `rewriteTo`; neutralize = keep token, warn + annotate. */
|
|
9
|
+
readonly disposition: EnvVarDisposition;
|
|
10
|
+
/** Present only when disposition === "rewrite". Static literal — never content-derived. */
|
|
11
|
+
readonly rewriteTo?: string;
|
|
12
|
+
/** Human-readable annotation injected into the migrated file and the record. */
|
|
13
|
+
readonly annotation: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Ordered rewrite table. Specific tokens come before the catch-all classes so the
|
|
17
|
+
* first matching entry wins. Every `rewriteTo` is a fixed literal validated below.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ENV_VAR_REWRITE_TABLE: readonly EnvVarRewriteEntry[];
|
|
20
|
+
export interface EnvVarResolution {
|
|
21
|
+
disposition: EnvVarDisposition;
|
|
22
|
+
/** Present when disposition === "rewrite" — the validated static literal. */
|
|
23
|
+
rewriteTo?: string;
|
|
24
|
+
annotation: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Resolve one matched env-var token to a disposition. Pure lookup: the input token
|
|
28
|
+
* selects an entry but NEVER contributes to the output string.
|
|
29
|
+
*
|
|
30
|
+
* @throws if a table entry's `rewriteTo` fails the SAFE_REWRITE_OUTPUT allowlist —
|
|
31
|
+
* a fail-closed guard against a future unsafe table edit.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveEnvVar(token: string): EnvVarResolution | null;
|
|
34
|
+
/** Match every Claude/Anthropic env-var token in a piece of content (fresh state). */
|
|
35
|
+
export declare function envVarTokenPattern(): RegExp;
|
|
36
|
+
//# sourceMappingURL=env-var-rewrite-table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-var-rewrite-table.d.ts","sourceRoot":"","sources":["../../../src/migrate/references/env-var-rewrite-table.ts"],"names":[],"mappings":"AA+BA,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,QAA4B,CAAC;AAE7D,wEAAwE;AACxE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IAClC,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,oFAAoF;IACpF,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;IACxC,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,gFAAgF;IAChF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAmB9D,CAAC;AAMF,MAAM,WAAW,gBAAgB;IAChC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAyBpE;AAED,sFAAsF;AACtF,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// Single source of truth for neutralizing / rewriting Claude-runtime environment
|
|
2
|
+
// variables when migrating a skill to a non-Claude provider.
|
|
3
|
+
//
|
|
4
|
+
// SECURITY CONTRACT (never-weaken):
|
|
5
|
+
// Every entry here is a STATIC literal-table lookup. A rewrite value is NEVER
|
|
6
|
+
// constructed from, interpolated with, or derived from file content. The
|
|
7
|
+
// matched source token is discarded; only the fixed `rewriteTo` string (or a
|
|
8
|
+
// fixed neutralization phrase) is emitted. Output is validated against
|
|
9
|
+
// SAFE_REWRITE_OUTPUT before use so a table typo can never introduce a shell
|
|
10
|
+
// metacharacter. This is the property that keeps the rewrite path from
|
|
11
|
+
// becoming an injection vector (see the migration completeness plan, Phase 3
|
|
12
|
+
// risk row "Rewrite output becomes an injection vector").
|
|
13
|
+
//
|
|
14
|
+
// MAPPING DECISIONS (recorded here because they are policy, not code):
|
|
15
|
+
// - $CLAUDE_PROJECT_DIR -> "$PROJECT_ROOT"
|
|
16
|
+
// Codex exposes the working project root to hooks/skills; a provider-neutral
|
|
17
|
+
// "$PROJECT_ROOT" placeholder is the documented convention. Downstream skills
|
|
18
|
+
// that read it must define PROJECT_ROOT (Codex sets its own equivalent).
|
|
19
|
+
// - $CLAUDE_PLUGIN_DATA / ${CLAUDE_PLUGIN_DATA}
|
|
20
|
+
// UNMAPPED in Codex docs (verified against the Codex capability surface —
|
|
21
|
+
// Codex has no documented plugin-scoped persistent-data variable). The
|
|
22
|
+
// nearest documented state dir is $CODEX_HOME (default ~/.codex), so the
|
|
23
|
+
// convention emitted here is "${CODEX_HOME:-$HOME/.codex}/plugin_data". This
|
|
24
|
+
// is OUR convention, stated as such; REVISIT once Codex documents a
|
|
25
|
+
// plugin-data equivalent.
|
|
26
|
+
// - $CLAUDE_MODEL -> neutralized (no provider-portable literal). Annotated only.
|
|
27
|
+
// - All other $CLAUDE_* / $ANTHROPIC_* -> neutralized + annotated, never rewritten
|
|
28
|
+
// to a fabricated value. Neutralization means: the audit downgrades the match
|
|
29
|
+
// to a warning and injects an annotation, but the literal token is preserved
|
|
30
|
+
// so the migrated author can wire it to the provider manually.
|
|
31
|
+
/** Allowlist for any emitted rewrite value — mirrors the plan's injection guard. */
|
|
32
|
+
export const SAFE_REWRITE_OUTPUT = /^[A-Za-z0-9_/.${}:~-]+$/;
|
|
33
|
+
/**
|
|
34
|
+
* Ordered rewrite table. Specific tokens come before the catch-all classes so the
|
|
35
|
+
* first matching entry wins. Every `rewriteTo` is a fixed literal validated below.
|
|
36
|
+
*/
|
|
37
|
+
export const ENV_VAR_REWRITE_TABLE = [
|
|
38
|
+
{
|
|
39
|
+
tokens: ["$CLAUDE_PROJECT_DIR", "${CLAUDE_PROJECT_DIR}"],
|
|
40
|
+
disposition: "rewrite",
|
|
41
|
+
rewriteTo: "$PROJECT_ROOT",
|
|
42
|
+
annotation: "was $CLAUDE_PROJECT_DIR; rewritten to the provider-neutral $PROJECT_ROOT convention",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
tokens: ["$CLAUDE_PLUGIN_DATA", "${CLAUDE_PLUGIN_DATA}"],
|
|
46
|
+
disposition: "rewrite",
|
|
47
|
+
rewriteTo: "${CODEX_HOME:-$HOME/.codex}/plugin_data",
|
|
48
|
+
annotation: "was ${CLAUDE_PLUGIN_DATA}; UNMAPPED in Codex docs — rewritten to the provider-neutral ${CODEX_HOME:-$HOME/.codex}/plugin_data convention (revisit if Codex documents a plugin-data variable)",
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
tokens: ["$CLAUDE_MODEL", "${CLAUDE_MODEL}"],
|
|
52
|
+
disposition: "neutralize",
|
|
53
|
+
annotation: "references $CLAUDE_MODEL, which has no provider-portable value — wire it to the provider's model variable manually",
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
/** Fallback classes for any Claude/Anthropic env var not named above. */
|
|
57
|
+
const CLAUDE_ENV_CLASS = /^\$\{?CLAUDE_[A-Z0-9_]+\}?$/;
|
|
58
|
+
const ANTHROPIC_ENV_CLASS = /^\$\{?ANTHROPIC_[A-Z0-9_]+\}?$/;
|
|
59
|
+
/**
|
|
60
|
+
* Resolve one matched env-var token to a disposition. Pure lookup: the input token
|
|
61
|
+
* selects an entry but NEVER contributes to the output string.
|
|
62
|
+
*
|
|
63
|
+
* @throws if a table entry's `rewriteTo` fails the SAFE_REWRITE_OUTPUT allowlist —
|
|
64
|
+
* a fail-closed guard against a future unsafe table edit.
|
|
65
|
+
*/
|
|
66
|
+
export function resolveEnvVar(token) {
|
|
67
|
+
for (const entry of ENV_VAR_REWRITE_TABLE) {
|
|
68
|
+
if (!entry.tokens.includes(token))
|
|
69
|
+
continue;
|
|
70
|
+
if (entry.disposition === "rewrite") {
|
|
71
|
+
const value = entry.rewriteTo ?? "";
|
|
72
|
+
if (!SAFE_REWRITE_OUTPUT.test(value)) {
|
|
73
|
+
throw new Error(`env-var rewrite table produced an unsafe value for ${token}`);
|
|
74
|
+
}
|
|
75
|
+
return { disposition: "rewrite", rewriteTo: value, annotation: entry.annotation };
|
|
76
|
+
}
|
|
77
|
+
return { disposition: "neutralize", annotation: entry.annotation };
|
|
78
|
+
}
|
|
79
|
+
if (CLAUDE_ENV_CLASS.test(token)) {
|
|
80
|
+
return {
|
|
81
|
+
disposition: "neutralize",
|
|
82
|
+
annotation: `references ${token}, a Claude-specific environment variable with no provider equivalent — wire it manually`,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (ANTHROPIC_ENV_CLASS.test(token)) {
|
|
86
|
+
return {
|
|
87
|
+
disposition: "neutralize",
|
|
88
|
+
annotation: `references ${token}, an Anthropic-specific environment variable with no provider equivalent — wire it manually`,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
/** Match every Claude/Anthropic env-var token in a piece of content (fresh state). */
|
|
94
|
+
export function envVarTokenPattern() {
|
|
95
|
+
return /\$\{?(?:CLAUDE|ANTHROPIC)_[A-Z0-9_]+\}?/g;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=env-var-rewrite-table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-var-rewrite-table.js","sourceRoot":"","sources":["../../../src/migrate/references/env-var-rewrite-table.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,6DAA6D;AAC7D,EAAE;AACF,oCAAoC;AACpC,gFAAgF;AAChF,2EAA2E;AAC3E,+EAA+E;AAC/E,yEAAyE;AACzE,+EAA+E;AAC/E,yEAAyE;AACzE,+EAA+E;AAC/E,4DAA4D;AAC5D,EAAE;AACF,uEAAuE;AACvE,8CAA8C;AAC9C,mFAAmF;AACnF,oFAAoF;AACpF,+EAA+E;AAC/E,kDAAkD;AAClD,gFAAgF;AAChF,6EAA6E;AAC7E,+EAA+E;AAC/E,mFAAmF;AACnF,0EAA0E;AAC1E,gCAAgC;AAChC,mFAAmF;AACnF,qFAAqF;AACrF,oFAAoF;AACpF,mFAAmF;AACnF,qEAAqE;AAErE,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAgB7D;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAkC;IACnE;QACC,MAAM,EAAE,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;QACxD,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,eAAe;QAC1B,UAAU,EAAE,qFAAqF;KACjG;IACD;QACC,MAAM,EAAE,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;QACxD,WAAW,EAAE,SAAS;QACtB,SAAS,EAAE,yCAAyC;QACpD,UAAU,EACT,8LAA8L;KAC/L;IACD;QACC,MAAM,EAAE,CAAC,eAAe,EAAE,iBAAiB,CAAC;QAC5C,WAAW,EAAE,YAAY;QACzB,UAAU,EAAE,oHAAoH;KAChI;CACD,CAAC;AAEF,yEAAyE;AACzE,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AACvD,MAAM,mBAAmB,GAAG,gCAAgC,CAAC;AAS7D;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IAC1C,KAAK,MAAM,KAAK,IAAI,qBAAqB,EAAE,CAAC;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAC5C,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,KAAK,CAAC,sDAAsD,KAAK,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;QACnF,CAAC;QACD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO;YACN,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,cAAc,KAAK,yFAAyF;SACxH,CAAC;IACH,CAAC;IACD,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO;YACN,WAAW,EAAE,YAAY;YACzB,UAAU,EAAE,cAAc,KAAK,6FAA6F;SAC5H,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,kBAAkB;IACjC,OAAO,0CAA0C,CAAC;AACnD,CAAC"}
|
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
import type { ReferenceSpan } from "./reference-types.js";
|
|
2
|
+
export interface EnvReferenceClassification {
|
|
3
|
+
/** Provider-neutral replacement phrase pointing at the emitted policy scaffold. */
|
|
4
|
+
neutral: string;
|
|
5
|
+
/** Human-readable reason for the migration report (supersedes "no equivalent"). */
|
|
6
|
+
reason: string;
|
|
7
|
+
}
|
|
8
|
+
/** True when `path` is a `.claude/.env` (or `.env.*`) source reference. */
|
|
9
|
+
export declare function isEnvReference(path: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Classify a `.claude/.env` reference to point at the emitted Codex
|
|
12
|
+
* `[shell_environment_policy]` scaffold, replacing the old "no provider
|
|
13
|
+
* equivalent" classification. Returns null for any non-`.env` path so callers
|
|
14
|
+
* can fall through to their existing classification.
|
|
15
|
+
*/
|
|
16
|
+
export declare function classifyEnvReference(path: string): EnvReferenceClassification | null;
|
|
2
17
|
export declare function isCitationLine(line: string): boolean;
|
|
3
18
|
export interface MarkdownSpanMap {
|
|
4
19
|
/** Span type at a byte offset in the original content */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-classifier.d.ts","sourceRoot":"","sources":["../../../src/migrate/references/reference-classifier.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"reference-classifier.d.ts","sourceRoot":"","sources":["../../../src/migrate/references/reference-classifier.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkB1D,MAAM,WAAW,0BAA0B;IAC1C,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,MAAM,EAAE,MAAM,CAAC;CACf;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,0BAA0B,GAAG,IAAI,CAQpF;AAcD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKpD;AAID,MAAM,WAAW,eAAe;IAC/B,yDAAyD;IACzD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IACtC,2CAA2C;IAC3C,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,4EAA4E;IAC5E,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CACtC;AAuFD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAkCrE"}
|
|
@@ -2,6 +2,39 @@
|
|
|
2
2
|
// Span resolution is line-based (frontmatter / fenced) with per-line inline-code
|
|
3
3
|
// detection. Ambiguous structures (unclosed fences) resolve to "fenced" so the
|
|
4
4
|
// rewriter stays conservative — never rewrite on uncertainty.
|
|
5
|
+
// --- .claude/.env reference classification --------------------------------
|
|
6
|
+
//
|
|
7
|
+
// A `.claude/.env` reference used to fall into the generic "no provider
|
|
8
|
+
// equivalent for this source runtime path" bucket. That is now outdated at the
|
|
9
|
+
// CONFIG level: Codex's documented `[shell_environment_policy]` is the analogue
|
|
10
|
+
// for passing environment into shell subprocesses, and the migration emits a
|
|
11
|
+
// keys-only scaffold for it (see shell-env-policy-emitter). This helper lets the
|
|
12
|
+
// reference rewriter reclassify `.claude/.env` occurrences to POINT AT that
|
|
13
|
+
// scaffold instead of the dead-end "no equivalent" phrase.
|
|
14
|
+
//
|
|
15
|
+
// SECURITY: this helper deals only with the reference PATH text (e.g. the string
|
|
16
|
+
// ".claude/.env"), never with env values.
|
|
17
|
+
/** Matches a source `.claude/.env` (optionally `.env.<suffix>`) path reference. */
|
|
18
|
+
const ENV_REFERENCE = /^\.claude\/\.env(\.[A-Za-z0-9_.-]+)?$/i;
|
|
19
|
+
/** True when `path` is a `.claude/.env` (or `.env.*`) source reference. */
|
|
20
|
+
export function isEnvReference(path) {
|
|
21
|
+
return ENV_REFERENCE.test(path.replace(/\\/g, "/").trim());
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Classify a `.claude/.env` reference to point at the emitted Codex
|
|
25
|
+
* `[shell_environment_policy]` scaffold, replacing the old "no provider
|
|
26
|
+
* equivalent" classification. Returns null for any non-`.env` path so callers
|
|
27
|
+
* can fall through to their existing classification.
|
|
28
|
+
*/
|
|
29
|
+
export function classifyEnvReference(path) {
|
|
30
|
+
if (!isEnvReference(path))
|
|
31
|
+
return null;
|
|
32
|
+
return {
|
|
33
|
+
neutral: "the generated [shell_environment_policy] scaffold in config.toml",
|
|
34
|
+
reason: "environment variables now map to the Codex [shell_environment_policy] scaffold " +
|
|
35
|
+
"(keys-only, placeholder values); fill values from your environment — do not paste secrets",
|
|
36
|
+
};
|
|
37
|
+
}
|
|
5
38
|
const FENCE_OPEN = /^ {0,3}(`{3,}|~{3,})/;
|
|
6
39
|
const FRONTMATTER_DELIMITER = /^---\s*$/;
|
|
7
40
|
// A line is a citation when it leads with an attribution verb, or is a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reference-classifier.js","sourceRoot":"","sources":["../../../src/migrate/references/reference-classifier.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,iFAAiF;AACjF,+EAA+E;AAC/E,8DAA8D;AAI9D,MAAM,UAAU,GAAG,sBAAsB,CAAC;AAC1C,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAEzC,uEAAuE;AACvE,kFAAkF;AAClF,MAAM,aAAa,GAAG,4CAA4C,CAAC;AACnE,MAAM,UAAU,GAAG,OAAO,CAAC;AAC3B,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,8FAA8F;AAC9F,MAAM,SAAS,GAAG,uDAAuD,CAAC;AAC1E,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC,MAAM,UAAU,cAAc,CAAC,IAAY;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAClG,CAAC;AAaD,SAAS,eAAe,CAAC,OAAe;IACvC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,UAAoB,EAAE,MAAc;IACxD,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM;YAAE,EAAE,GAAG,GAAG,CAAC;;YACnC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,EAAE,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,KAAe;IACrC,MAAM,KAAK,GAAe,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhE,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE;gBAAE,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;YAC1D,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACf,CAAC;IACF,CAAC;IAED,IAAI,WAAW,GAA4C,IAAI,CAAC;IAChE,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,WAAW,EAAE,CAAC;YACjB,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/H,WAAW,GAAG,IAAI,CAAC;YACpB,CAAC;YACD,SAAS;QACV,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YACpB,WAAW,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC;IACF,CAAC;IACD,0EAA0E;IAC1E,uEAAuE;IACvE,OAAO,KAAK,CAAC;AACd,CAAC;AAED,kFAAkF;AAClF,SAAS,gBAAgB,CAAC,IAAY;IACrC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YACrB,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QACD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,GAAG;YAAE,OAAO,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC;QAC5B,yCAAyC;QACzC,IAAI,CAAC,GAAG,OAAO,CAAC;QAChB,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACrB,CAAC,EAAE,CAAC;gBACJ,SAAS;YACV,CAAC;YACD,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,OAAO,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG;gBAAE,MAAM,EAAE,CAAC;YAC1C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;gBAC7B,MAAM;YACP,CAAC;YACD,CAAC,IAAI,MAAM,CAAC;QACb,CAAC;QACD,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7C,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe;IACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmB,CAAC;IACjD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAmC,CAAC;IAE/D,OAAO;QACN,MAAM,CAAC,MAAc;YACpB,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,IAAI,KAAK,aAAa;gBAAE,OAAO,aAAa,CAAC;YACjD,IAAI,IAAI,KAAK,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YACvC,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC1C,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,KAAK,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;QACjG,CAAC;QACD,YAAY,CAAC,MAAc;YAC1B,OAAO,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,CAAC;QACD,YAAY,CAAC,MAAc;YAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"reference-classifier.js","sourceRoot":"","sources":["../../../src/migrate/references/reference-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { PortableItem, ProviderType } from "./types.js";
|
|
|
2
2
|
import type { ReferenceOccurrence } from "./references/reference-types.js";
|
|
3
3
|
export interface RuntimeCompatAuditResult {
|
|
4
4
|
errors: string[];
|
|
5
|
+
warnings: string[];
|
|
5
6
|
}
|
|
6
7
|
export declare function auditRuntimeCompatibility(content: string, item: Pick<PortableItem, "name" | "type">, targetProvider: ProviderType, occurrences?: ReferenceOccurrence[]): RuntimeCompatAuditResult;
|
|
7
8
|
//# sourceMappingURL=runtime-compat-audit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-compat-audit.d.ts","sourceRoot":"","sources":["../../src/migrate/runtime-compat-audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-compat-audit.d.ts","sourceRoot":"","sources":["../../src/migrate/runtime-compat-audit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACnB;AAID,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,EACzC,cAAc,EAAE,YAAY,EAC5B,WAAW,GAAE,mBAAmB,EAAO,GACrC,wBAAwB,CAe1B"}
|
|
@@ -2,13 +2,18 @@ import { findRuntimeCouplingMatches } from "./runtime-coupling-patterns.js";
|
|
|
2
2
|
const AUDITED_TYPES = new Set(["agent", "command", "config", "rules", "hooks"]);
|
|
3
3
|
export function auditRuntimeCompatibility(content, item, targetProvider, occurrences = []) {
|
|
4
4
|
if (targetProvider === "claude-code")
|
|
5
|
-
return { errors: [] };
|
|
5
|
+
return { errors: [], warnings: [] };
|
|
6
6
|
if (!AUDITED_TYPES.has(item.type))
|
|
7
|
-
return { errors: [] };
|
|
7
|
+
return { errors: [], warnings: [] };
|
|
8
8
|
const errors = [];
|
|
9
|
+
const warnings = [];
|
|
9
10
|
for (const match of findRuntimeCouplingMatches(content, occurrences)) {
|
|
11
|
+
if ((item.type === "rules" || item.type === "config") && match.cls === "claude-env-var" && match.rewrite) {
|
|
12
|
+
warnings.push(`${item.type}/${item.name} ${match.message} (${match.rewrite.annotation})`);
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
10
15
|
errors.push(`${item.type}/${item.name} ${match.message}`);
|
|
11
16
|
}
|
|
12
|
-
return { errors };
|
|
17
|
+
return { errors, warnings };
|
|
13
18
|
}
|
|
14
19
|
//# sourceMappingURL=runtime-compat-audit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-compat-audit.js","sourceRoot":"","sources":["../../src/migrate/runtime-compat-audit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-compat-audit.js","sourceRoot":"","sources":["../../src/migrate/runtime-compat-audit.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAO5E,MAAM,aAAa,GAAG,IAAI,GAAG,CAAe,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAE9F,MAAM,UAAU,yBAAyB,CACxC,OAAe,EACf,IAAyC,EACzC,cAA4B,EAC5B,cAAqC,EAAE;IAEvC,IAAI,cAAc,KAAK,aAAa;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC1E,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAEvE,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,gBAAgB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1G,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;YAC1F,SAAS;QACV,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -1,10 +1,38 @@
|
|
|
1
1
|
import type { ReferenceOccurrence } from "./references/reference-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Coarse pattern class of a runtime-coupling match. Downstream verdict logic keys
|
|
4
|
+
* off this to decide rewrite vs downgrade vs fail — the class is metadata, it does
|
|
5
|
+
* NOT itself relax the fail-closed default.
|
|
6
|
+
*/
|
|
7
|
+
export type RuntimeCouplingClass = "claude-env-var" | "claude-cli" | "claude-path" | "claude-config-token";
|
|
2
8
|
export interface RuntimeCouplingMatch {
|
|
3
9
|
message: string;
|
|
10
|
+
/** Pattern class, used by the audit to select severity/rewrite handling. */
|
|
11
|
+
cls: RuntimeCouplingClass;
|
|
12
|
+
/**
|
|
13
|
+
* When the match is a table-known env var, this is the disposition + static
|
|
14
|
+
* rewrite/annotation from env-var-rewrite-table.ts. Absent for other classes.
|
|
15
|
+
* The value is ALWAYS a literal-table lookup — never derived from `content`.
|
|
16
|
+
*/
|
|
17
|
+
rewrite?: {
|
|
18
|
+
token: string;
|
|
19
|
+
disposition: "rewrite" | "neutralize";
|
|
20
|
+
rewriteTo?: string;
|
|
21
|
+
annotation: string;
|
|
22
|
+
};
|
|
4
23
|
}
|
|
5
|
-
|
|
24
|
+
interface CouplingRule {
|
|
6
25
|
pattern: RegExp;
|
|
7
26
|
message: string;
|
|
8
|
-
|
|
27
|
+
cls: RuntimeCouplingClass;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Literal command/env patterns. `$CLAUDE_*` / `$ANTHROPIC_*` are handled via the
|
|
31
|
+
* env-var table below (so each occurrence carries a rewrite disposition); the two
|
|
32
|
+
* CLI patterns stay detect-only (no safe portable rewrite exists for a command
|
|
33
|
+
* assumption — it is neutralized or fails per file class).
|
|
34
|
+
*/
|
|
35
|
+
export declare const RUNTIME_COUPLING_PATTERNS: ReadonlyArray<CouplingRule>;
|
|
9
36
|
export declare function findRuntimeCouplingMatches(content: string, occurrences?: ReferenceOccurrence[]): RuntimeCouplingMatch[];
|
|
37
|
+
export {};
|
|
10
38
|
//# sourceMappingURL=runtime-coupling-patterns.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-coupling-patterns.d.ts","sourceRoot":"","sources":["../../src/migrate/runtime-coupling-patterns.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime-coupling-patterns.d.ts","sourceRoot":"","sources":["../../src/migrate/runtime-coupling-patterns.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC7B,gBAAgB,GAChB,YAAY,GACZ,aAAa,GACb,qBAAqB,CAAC;AAEzB,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,GAAG,EAAE,oBAAoB,CAAC;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,SAAS,GAAG,YAAY,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3G;AAED,UAAU,YAAY;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,oBAAoB,CAAC;CAC1B;AAED;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,YAAY,CAOjE,CAAC;AAUF,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,mBAAmB,EAAO,GACrC,oBAAoB,EAAE,CAiCxB"}
|
|
@@ -1,28 +1,56 @@
|
|
|
1
1
|
import { isExplainedReference } from "./validation/unresolved-reference-scanner.js";
|
|
2
2
|
import { sourceConfigTokenPattern, sourceReferencePattern } from "./references/reference-target-registry.js";
|
|
3
|
+
import { envVarTokenPattern, resolveEnvVar } from "./references/env-var-rewrite-table.js";
|
|
4
|
+
/**
|
|
5
|
+
* Literal command/env patterns. `$CLAUDE_*` / `$ANTHROPIC_*` are handled via the
|
|
6
|
+
* env-var table below (so each occurrence carries a rewrite disposition); the two
|
|
7
|
+
* CLI patterns stay detect-only (no safe portable rewrite exists for a command
|
|
8
|
+
* assumption — it is neutralized or fails per file class).
|
|
9
|
+
*/
|
|
3
10
|
export const RUNTIME_COUPLING_PATTERNS = [
|
|
4
|
-
{ pattern:
|
|
5
|
-
{
|
|
6
|
-
|
|
7
|
-
|
|
11
|
+
{ pattern: /\bnpx\s+claude\b/i, message: "contains a Claude Code command assumption", cls: "claude-cli" },
|
|
12
|
+
{
|
|
13
|
+
pattern: /\bclaude\s+(?:--|mcp|doctor|update)\b/i,
|
|
14
|
+
message: "contains a Claude Code command assumption",
|
|
15
|
+
cls: "claude-cli",
|
|
16
|
+
},
|
|
8
17
|
];
|
|
9
18
|
// Source references are only coupling errors when the fence-aware classifier
|
|
10
19
|
// did NOT deliberately decide to keep them (citation, fenced runtime command,
|
|
11
20
|
// merged/non-directory target). Unexplained ones still hard-fail.
|
|
12
21
|
const SOURCE_REFERENCE_CHECKS = [
|
|
13
|
-
{ makePattern: sourceReferencePattern, message: "contains a .claude/ path reference" },
|
|
14
|
-
{ makePattern: sourceConfigTokenPattern, message: "contains a CLAUDE.md reference" },
|
|
22
|
+
{ makePattern: sourceReferencePattern, message: "contains a .claude/ path reference", cls: "claude-path" },
|
|
23
|
+
{ makePattern: sourceConfigTokenPattern, message: "contains a CLAUDE.md reference", cls: "claude-config-token" },
|
|
15
24
|
];
|
|
16
25
|
export function findRuntimeCouplingMatches(content, occurrences = []) {
|
|
17
26
|
const matches = [];
|
|
27
|
+
// Env vars: one match per DISTINCT token so per-pattern verdicts stay granular.
|
|
28
|
+
const seenTokens = new Set();
|
|
29
|
+
for (const found of content.matchAll(envVarTokenPattern())) {
|
|
30
|
+
const token = found[0];
|
|
31
|
+
if (seenTokens.has(token))
|
|
32
|
+
continue;
|
|
33
|
+
seenTokens.add(token);
|
|
34
|
+
const resolution = resolveEnvVar(token);
|
|
35
|
+
if (!resolution)
|
|
36
|
+
continue;
|
|
37
|
+
const isAnthropic = /^\$\{?ANTHROPIC_/.test(token);
|
|
38
|
+
matches.push({
|
|
39
|
+
message: isAnthropic
|
|
40
|
+
? "contains an Anthropic-specific environment variable"
|
|
41
|
+
: "contains a Claude-specific environment variable",
|
|
42
|
+
cls: "claude-env-var",
|
|
43
|
+
rewrite: { token, ...resolution },
|
|
44
|
+
});
|
|
45
|
+
}
|
|
18
46
|
for (const rule of RUNTIME_COUPLING_PATTERNS) {
|
|
19
47
|
if (rule.pattern.test(content))
|
|
20
|
-
matches.push({ message: rule.message });
|
|
48
|
+
matches.push({ message: rule.message, cls: rule.cls });
|
|
21
49
|
}
|
|
22
50
|
for (const check of SOURCE_REFERENCE_CHECKS) {
|
|
23
51
|
for (const match of content.matchAll(check.makePattern())) {
|
|
24
52
|
if (!isExplainedReference(match[0], occurrences)) {
|
|
25
|
-
matches.push({ message: check.message });
|
|
53
|
+
matches.push({ message: check.message, cls: check.cls });
|
|
26
54
|
break;
|
|
27
55
|
}
|
|
28
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-coupling-patterns.js","sourceRoot":"","sources":["../../src/migrate/runtime-coupling-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-coupling-patterns.js","sourceRoot":"","sources":["../../src/migrate/runtime-coupling-patterns.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAC7G,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAgC1F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAgC;IACrE,EAAE,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,2CAA2C,EAAE,GAAG,EAAE,YAAY,EAAE;IACzG;QACC,OAAO,EAAE,wCAAwC;QACjD,OAAO,EAAE,2CAA2C;QACpD,GAAG,EAAE,YAAY;KACjB;CACD,CAAC;AAEF,6EAA6E;AAC7E,8EAA8E;AAC9E,kEAAkE;AAClE,MAAM,uBAAuB,GAAqF;IACjH,EAAE,WAAW,EAAE,sBAAsB,EAAE,OAAO,EAAE,oCAAoC,EAAE,GAAG,EAAE,aAAa,EAAE;IAC1G,EAAE,WAAW,EAAE,wBAAwB,EAAE,OAAO,EAAE,gCAAgC,EAAE,GAAG,EAAE,qBAAqB,EAAE;CAChH,CAAC;AAEF,MAAM,UAAU,0BAA0B,CACzC,OAAe,EACf,cAAqC,EAAE;IAEvC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,gFAAgF;IAChF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU;YAAE,SAAS;QAC1B,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC;YACZ,OAAO,EAAE,WAAW;gBACnB,CAAC,CAAC,qDAAqD;gBACvD,CAAC,CAAC,iDAAiD;YACpD,GAAG,EAAE,gBAAgB;YACrB,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE;SACjC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,yBAAyB,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;QAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzD,MAAM;YACP,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}
|