@zigrivers/mmr 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +422 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +4 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/ack.d.ts +11 -0
  6. package/dist/commands/ack.d.ts.map +1 -0
  7. package/dist/commands/ack.js +123 -0
  8. package/dist/commands/ack.js.map +1 -0
  9. package/dist/commands/config.d.ts +5 -0
  10. package/dist/commands/config.d.ts.map +1 -1
  11. package/dist/commands/config.js +248 -14
  12. package/dist/commands/config.js.map +1 -1
  13. package/dist/commands/jobs.d.ts.map +1 -1
  14. package/dist/commands/jobs.js +3 -4
  15. package/dist/commands/jobs.js.map +1 -1
  16. package/dist/commands/reconcile.d.ts.map +1 -1
  17. package/dist/commands/reconcile.js +12 -5
  18. package/dist/commands/reconcile.js.map +1 -1
  19. package/dist/commands/results.d.ts.map +1 -1
  20. package/dist/commands/results.js +13 -5
  21. package/dist/commands/results.js.map +1 -1
  22. package/dist/commands/review.d.ts +25 -0
  23. package/dist/commands/review.d.ts.map +1 -1
  24. package/dist/commands/review.js +457 -44
  25. package/dist/commands/review.js.map +1 -1
  26. package/dist/commands/sessions.d.ts +58 -0
  27. package/dist/commands/sessions.d.ts.map +1 -0
  28. package/dist/commands/sessions.js +266 -0
  29. package/dist/commands/sessions.js.map +1 -0
  30. package/dist/commands/status.d.ts.map +1 -1
  31. package/dist/commands/status.js +2 -3
  32. package/dist/commands/status.js.map +1 -1
  33. package/dist/config/defaults.d.ts +2 -2
  34. package/dist/config/defaults.d.ts.map +1 -1
  35. package/dist/config/defaults.js +66 -0
  36. package/dist/config/defaults.js.map +1 -1
  37. package/dist/config/loader.d.ts +22 -0
  38. package/dist/config/loader.d.ts.map +1 -1
  39. package/dist/config/loader.js +279 -36
  40. package/dist/config/loader.js.map +1 -1
  41. package/dist/config/schema.d.ts +869 -53
  42. package/dist/config/schema.d.ts.map +1 -1
  43. package/dist/config/schema.js +151 -4
  44. package/dist/config/schema.js.map +1 -1
  45. package/dist/core/ack-store.d.ts +109 -0
  46. package/dist/core/ack-store.d.ts.map +1 -0
  47. package/dist/core/ack-store.js +363 -0
  48. package/dist/core/ack-store.js.map +1 -0
  49. package/dist/core/auth.d.ts +10 -1
  50. package/dist/core/auth.d.ts.map +1 -1
  51. package/dist/core/auth.js +65 -2
  52. package/dist/core/auth.js.map +1 -1
  53. package/dist/core/compensator.d.ts +32 -4
  54. package/dist/core/compensator.d.ts.map +1 -1
  55. package/dist/core/compensator.js +118 -15
  56. package/dist/core/compensator.js.map +1 -1
  57. package/dist/core/diff-introspect.d.ts +21 -0
  58. package/dist/core/diff-introspect.d.ts.map +1 -0
  59. package/dist/core/diff-introspect.js +42 -0
  60. package/dist/core/diff-introspect.js.map +1 -0
  61. package/dist/core/dispatcher.d.ts +7 -0
  62. package/dist/core/dispatcher.d.ts.map +1 -1
  63. package/dist/core/dispatcher.js +21 -3
  64. package/dist/core/dispatcher.js.map +1 -1
  65. package/dist/core/git-show.d.ts +31 -0
  66. package/dist/core/git-show.d.ts.map +1 -0
  67. package/dist/core/git-show.js +72 -0
  68. package/dist/core/git-show.js.map +1 -0
  69. package/dist/core/http-dispatcher.d.ts +20 -0
  70. package/dist/core/http-dispatcher.d.ts.map +1 -0
  71. package/dist/core/http-dispatcher.js +125 -0
  72. package/dist/core/http-dispatcher.js.map +1 -0
  73. package/dist/core/job-store.d.ts +7 -1
  74. package/dist/core/job-store.d.ts.map +1 -1
  75. package/dist/core/job-store.js +21 -1
  76. package/dist/core/job-store.js.map +1 -1
  77. package/dist/core/jsonpath.d.ts +15 -0
  78. package/dist/core/jsonpath.d.ts.map +1 -0
  79. package/dist/core/jsonpath.js +63 -0
  80. package/dist/core/jsonpath.js.map +1 -0
  81. package/dist/core/oss-examples.d.ts +18 -0
  82. package/dist/core/oss-examples.d.ts.map +1 -0
  83. package/dist/core/oss-examples.js +66 -0
  84. package/dist/core/oss-examples.js.map +1 -0
  85. package/dist/core/parser.d.ts +8 -3
  86. package/dist/core/parser.d.ts.map +1 -1
  87. package/dist/core/parser.js +157 -6
  88. package/dist/core/parser.js.map +1 -1
  89. package/dist/core/project-root.d.ts +10 -0
  90. package/dist/core/project-root.d.ts.map +1 -0
  91. package/dist/core/project-root.js +23 -0
  92. package/dist/core/project-root.js.map +1 -0
  93. package/dist/core/reconciler.d.ts +1 -1
  94. package/dist/core/reconciler.d.ts.map +1 -1
  95. package/dist/core/reconciler.js +100 -18
  96. package/dist/core/reconciler.js.map +1 -1
  97. package/dist/core/redact.d.ts +17 -0
  98. package/dist/core/redact.d.ts.map +1 -0
  99. package/dist/core/redact.js +140 -0
  100. package/dist/core/redact.js.map +1 -0
  101. package/dist/core/results-pipeline.d.ts +8 -2
  102. package/dist/core/results-pipeline.d.ts.map +1 -1
  103. package/dist/core/results-pipeline.js +50 -3
  104. package/dist/core/results-pipeline.js.map +1 -1
  105. package/dist/core/runtime-probe.d.ts +14 -0
  106. package/dist/core/runtime-probe.d.ts.map +1 -0
  107. package/dist/core/runtime-probe.js +57 -0
  108. package/dist/core/runtime-probe.js.map +1 -0
  109. package/dist/core/stable-id.d.ts +19 -0
  110. package/dist/core/stable-id.d.ts.map +1 -0
  111. package/dist/core/stable-id.js +148 -0
  112. package/dist/core/stable-id.js.map +1 -0
  113. package/dist/core/trust-mode.d.ts +29 -0
  114. package/dist/core/trust-mode.d.ts.map +1 -0
  115. package/dist/core/trust-mode.js +103 -0
  116. package/dist/core/trust-mode.js.map +1 -0
  117. package/dist/formatters/markdown.d.ts.map +1 -1
  118. package/dist/formatters/markdown.js +9 -0
  119. package/dist/formatters/markdown.js.map +1 -1
  120. package/dist/formatters/text.d.ts.map +1 -1
  121. package/dist/formatters/text.js +9 -0
  122. package/dist/formatters/text.js.map +1 -1
  123. package/dist/types.d.ts +44 -1
  124. package/dist/types.d.ts.map +1 -1
  125. package/dist/types.js.map +1 -1
  126. package/package.json +2 -2
@@ -4,6 +4,8 @@ import os from 'node:os';
4
4
  import yaml from 'js-yaml';
5
5
  import { MmrConfigSchema } from './schema.js';
6
6
  import { DEFAULT_CONFIG } from './defaults.js';
7
+ import { isSecretKey } from '../core/redact.js';
8
+ import { readFileAtRef } from '../core/git-show.js';
7
9
  /**
8
10
  * Deep-merge two plain objects. Arrays replace (not concat).
9
11
  * Primitives from `overlay` win over `base`.
@@ -29,6 +31,41 @@ function deepMerge(base, overlay) {
29
31
  }
30
32
  return result;
31
33
  }
34
+ function resetExtendingChannelBases(base, overlay) {
35
+ if (!isPlainRecord(base.channels) || !isPlainRecord(overlay.channels))
36
+ return;
37
+ for (const [name, channel] of Object.entries(overlay.channels)) {
38
+ if (isPlainRecord(channel) && typeof channel.extends === 'string') {
39
+ base.channels[name] = {};
40
+ }
41
+ }
42
+ }
43
+ function resetExtendingChannelProvenance(baseChannels, overlay) {
44
+ if (!isPlainRecord(overlay.channels))
45
+ return;
46
+ for (const [name, channel] of Object.entries(overlay.channels)) {
47
+ if (isPlainRecord(channel) && typeof channel.extends === 'string') {
48
+ baseChannels[name] = {};
49
+ }
50
+ }
51
+ }
52
+ /**
53
+ * Try to read and parse a YAML file; returns undefined if missing.
54
+ */
55
+ function parseYamlConfig(raw, label) {
56
+ let parsed;
57
+ try {
58
+ parsed = yaml.load(raw);
59
+ }
60
+ catch (err) {
61
+ const msg = err instanceof Error ? err.message : String(err);
62
+ throw new Error(`Failed to parse ${label}: ${msg}`);
63
+ }
64
+ if (parsed === null || parsed === undefined || typeof parsed !== 'object' || Array.isArray(parsed)) {
65
+ throw new Error(`Invalid config in ${label}: expected an object, got ${typeof parsed}`);
66
+ }
67
+ return parsed;
68
+ }
32
69
  /**
33
70
  * Try to read and parse a YAML file; returns undefined if missing.
34
71
  */
@@ -42,18 +79,167 @@ function loadYaml(filePath) {
42
79
  catch {
43
80
  return undefined;
44
81
  }
45
- let parsed;
46
- try {
47
- parsed = yaml.load(raw);
82
+ return parseYamlConfig(raw, filePath);
83
+ }
84
+ function loadProjectYaml(opts) {
85
+ if (opts.skipProjectConfig === true) {
86
+ // Default-deny: untrusted tree with no opt-in → no project config.
87
+ return undefined;
48
88
  }
49
- catch (err) {
50
- const msg = err instanceof Error ? err.message : String(err);
51
- throw new Error(`Failed to parse ${filePath}: ${msg}`);
89
+ // Precedence note: trustProjectConfig:true intentionally overrides
90
+ // configBaseRef (it means "trust the working tree"). The review handler never
91
+ // passes both it sends exactly one of { configBaseRef } / { trustProjectConfig }
92
+ // / { skipProjectConfig } per trust mode — so this combination only arises for
93
+ // other direct callers, who get the documented working-tree behavior.
94
+ if (opts.configBaseRef !== undefined && opts.trustProjectConfig !== true) {
95
+ // Trust boundary (§5 decision 1): read .mmr.yaml from the trusted base ref
96
+ // via the shared git-show helper, never from the (possibly untrusted)
97
+ // working tree. Missing file/ref → no project config (built-in defaults).
98
+ const raw = readFileAtRef({ cwd: opts.projectRoot, ref: opts.configBaseRef, filePath: './.mmr.yaml' });
99
+ if (raw === undefined)
100
+ return undefined;
101
+ return parseYamlConfig(raw, `${opts.configBaseRef}:.mmr.yaml`);
52
102
  }
53
- if (parsed === null || parsed === undefined || typeof parsed !== 'object' || Array.isArray(parsed)) {
54
- throw new Error(`Invalid config in ${filePath}: expected an object, got ${typeof parsed}`);
103
+ return loadYaml(path.join(opts.projectRoot, '.mmr.yaml'));
104
+ }
105
+ const MAX_EXTENDS_DEPTH = 4;
106
+ function isPlainRecord(value) {
107
+ return (value !== null
108
+ && typeof value === 'object'
109
+ && !Array.isArray(value));
110
+ }
111
+ function resolveChannelExtends(name, channels, stack = []) {
112
+ if (stack.includes(name)) {
113
+ throw new Error(`Channel extends cycle detected: ${[...stack, name].join(' -> ')}`);
114
+ }
115
+ if (stack.length > MAX_EXTENDS_DEPTH) {
116
+ throw new Error(`Channel extends depth exceeds max (${MAX_EXTENDS_DEPTH}) at ${[...stack, name].join(' -> ')}`);
117
+ }
118
+ const channel = channels[name];
119
+ if (!channel) {
120
+ throw new Error(`Channel "${name}" referenced by extends not found`);
121
+ }
122
+ const parentName = channel.extends;
123
+ if (typeof parentName !== 'string')
124
+ return channel;
125
+ const parentResolved = resolveChannelExtends(parentName, channels, [...stack, name]);
126
+ const childWithoutExtends = { ...channel };
127
+ delete childWithoutExtends.extends;
128
+ const childDefinesAbstract = Object.prototype.hasOwnProperty.call(channel, 'abstract');
129
+ const parentBase = structuredClone(parentResolved);
130
+ const merged = deepMerge(parentBase, childWithoutExtends);
131
+ if (!childDefinesAbstract) {
132
+ delete merged.abstract;
133
+ }
134
+ return merged;
135
+ }
136
+ function resolveExtendsAcrossChannels(channels) {
137
+ if (!channels)
138
+ return {};
139
+ const resolved = {};
140
+ for (const name of Object.keys(channels)) {
141
+ resolved[name] = resolveChannelExtends(name, channels);
142
+ }
143
+ return resolved;
144
+ }
145
+ function validateRunnableChannels(config) {
146
+ for (const [name, channel] of Object.entries(config.channels)) {
147
+ if (channel.abstract)
148
+ continue;
149
+ // http channels are runnable via endpoint/model (schema-required), not a
150
+ // command — only subprocess channels must define one after inheritance.
151
+ if (channel.kind === 'http')
152
+ continue;
153
+ if (!channel.command) {
154
+ throw new Error(`Channel "${name}" must define command after inheritance unless abstract is set`);
155
+ }
156
+ }
157
+ }
158
+ function validateCompensatorReference(config) {
159
+ const compensator = config.defaults.compensator;
160
+ if (!compensator)
161
+ return;
162
+ const ref = compensator.channel;
163
+ if (ref === undefined)
164
+ return;
165
+ if (ref.trim().length === 0) {
166
+ throw new Error('defaults.compensator.channel cannot be empty. '
167
+ + 'Configure a concrete channel name in the channels: section, or remove the compensator block.');
168
+ }
169
+ const hasTarget = Object.prototype.hasOwnProperty.call(config.channels, ref);
170
+ const target = config.channels[ref];
171
+ if (!hasTarget || !target) {
172
+ throw new Error(`defaults.compensator.channel references unknown channel "${ref}". `
173
+ + 'Configure a channel with this name in the channels: section, or remove the compensator block.');
174
+ }
175
+ // Abstract channels (v3.28 T1-A) are templates only: they cannot be
176
+ // dispatched directly and therefore cannot serve as a compensator target.
177
+ if (target.abstract === true) {
178
+ throw new Error(`defaults.compensator.channel "${ref}" is marked abstract: true (T1-A). `
179
+ + 'Abstract channels are non-dispatchable templates; reference a concrete channel that extends it instead.');
180
+ }
181
+ // http channels are concrete via endpoint/model rather than command.
182
+ if (target.kind !== 'http' && !target.command) {
183
+ throw new Error(`defaults.compensator.channel "${ref}" is missing command. `
184
+ + 'Compensator channels must be concrete dispatch targets.');
55
185
  }
56
- return parsed;
186
+ }
187
+ function warnOnInlineSecretHeaders(config, warn) {
188
+ for (const [name, channel] of Object.entries(config.channels)) {
189
+ const headers = channel.headers;
190
+ if (!headers)
191
+ continue;
192
+ for (const headerKey of Object.keys(headers)) {
193
+ if (isSecretKey(headerKey, { exemptEnvNameKeys: false })) {
194
+ warn(`[mmr] warning: channel "${name}" has a literal "${headerKey}" header. ` +
195
+ 'For HTTP channels in v3.30, move the secret to an env var and reference it via api_key_env.');
196
+ }
197
+ }
198
+ }
199
+ }
200
+ function loadConfigLayers(opts) {
201
+ const { cliOverrides } = opts;
202
+ const userHome = opts.userHome ?? os.homedir();
203
+ let merged = structuredClone(DEFAULT_CONFIG);
204
+ const userConfigPath = path.join(userHome, '.mmr', 'config.yaml');
205
+ const userConfig = loadYaml(userConfigPath) ?? {};
206
+ if (Object.keys(userConfig).length > 0) {
207
+ resetExtendingChannelBases(merged, userConfig);
208
+ merged = deepMerge(merged, userConfig);
209
+ }
210
+ const projectConfig = loadProjectYaml(opts) ?? {};
211
+ if (Object.keys(projectConfig).length > 0) {
212
+ resetExtendingChannelBases(merged, projectConfig);
213
+ merged = deepMerge(merged, projectConfig);
214
+ }
215
+ const cliConfig = cliOverridesToConfig(cliOverrides);
216
+ if (Object.keys(cliConfig).length > 0) {
217
+ merged = deepMerge(merged, cliConfig);
218
+ }
219
+ return { merged, userConfig, projectConfig, cliConfig };
220
+ }
221
+ function cliOverridesToConfig(cliOverrides) {
222
+ if (!cliOverrides)
223
+ return {};
224
+ const overrideDefaults = {};
225
+ if (cliOverrides.fix_threshold !== undefined)
226
+ overrideDefaults.fix_threshold = cliOverrides.fix_threshold;
227
+ if (cliOverrides.timeout !== undefined)
228
+ overrideDefaults.timeout = cliOverrides.timeout;
229
+ if (cliOverrides.format !== undefined)
230
+ overrideDefaults.format = cliOverrides.format;
231
+ return Object.keys(overrideDefaults).length > 0 ? { defaults: overrideDefaults } : {};
232
+ }
233
+ function parseMergedConfig(mergedRaw, warn = console.warn) {
234
+ const merged = structuredClone(mergedRaw);
235
+ if (isPlainRecord(merged.channels)) {
236
+ merged.channels = resolveExtendsAcrossChannels(merged.channels);
237
+ }
238
+ const config = MmrConfigSchema.parse(merged);
239
+ warnOnInlineSecretHeaders(config, warn);
240
+ validateCompensatorReference(config);
241
+ validateRunnableChannels(config);
242
+ return config;
57
243
  }
58
244
  /**
59
245
  * Load and merge configuration from multiple sources.
@@ -67,36 +253,93 @@ function loadYaml(filePath) {
67
253
  * The merged result is validated through MmrConfigSchema.parse().
68
254
  */
69
255
  export function loadConfig(opts) {
70
- const { projectRoot, cliOverrides } = opts;
71
- const userHome = opts.userHome ?? os.homedir();
72
- // Start with defaults
73
- let merged = structuredClone(DEFAULT_CONFIG);
74
- // Layer 2: user config
75
- const userConfigPath = path.join(userHome, '.mmr', 'config.yaml');
76
- const userConfig = loadYaml(userConfigPath);
77
- if (userConfig) {
78
- merged = deepMerge(merged, userConfig);
256
+ const { merged } = loadConfigLayers(opts);
257
+ return parseMergedConfig(merged, opts.onWarning);
258
+ }
259
+ function provenanceForRecord(overlay, source) {
260
+ const result = {};
261
+ for (const [k, v] of Object.entries(overlay)) {
262
+ if (isPlainRecord(v)) {
263
+ result[k] = provenanceForRecord(v, source);
264
+ }
265
+ else {
266
+ result[k] = source;
267
+ }
79
268
  }
80
- // Layer 3: project config
81
- const projectConfigPath = path.join(projectRoot, '.mmr.yaml');
82
- const projectConfig = loadYaml(projectConfigPath);
83
- if (projectConfig) {
84
- merged = deepMerge(merged, projectConfig);
269
+ return result;
270
+ }
271
+ function applyProvenanceLayer(base, overlay, source) {
272
+ if (isPlainRecord(overlay.defaults)) {
273
+ base.defaults = deepMerge(base.defaults, provenanceForRecord(overlay.defaults, source));
85
274
  }
86
- // Layer 4: CLI overrides (applied to defaults sub-object)
87
- if (cliOverrides) {
88
- const overrideDefaults = {};
89
- if (cliOverrides.fix_threshold !== undefined)
90
- overrideDefaults.fix_threshold = cliOverrides.fix_threshold;
91
- if (cliOverrides.timeout !== undefined)
92
- overrideDefaults.timeout = cliOverrides.timeout;
93
- if (cliOverrides.format !== undefined)
94
- overrideDefaults.format = cliOverrides.format;
95
- if (Object.keys(overrideDefaults).length > 0) {
96
- merged = deepMerge(merged, { defaults: overrideDefaults });
275
+ resetExtendingChannelProvenance(base.channels, overlay);
276
+ if (!isPlainRecord(overlay.channels))
277
+ return;
278
+ for (const [name, channel] of Object.entries(overlay.channels)) {
279
+ if (!isPlainRecord(channel))
280
+ continue;
281
+ base.channels[name] = deepMerge(base.channels[name] ?? {}, provenanceForRecord(channel, source));
282
+ }
283
+ }
284
+ function resolveChannelProvenanceExtends(name, channels, provenance, stack = []) {
285
+ if (stack.includes(name)) {
286
+ throw new Error(`Channel extends cycle detected: ${[...stack, name].join(' -> ')}`);
287
+ }
288
+ if (stack.length > MAX_EXTENDS_DEPTH) {
289
+ throw new Error(`Channel extends depth exceeds max (${MAX_EXTENDS_DEPTH}) at ${[...stack, name].join(' -> ')}`);
290
+ }
291
+ const channel = channels[name];
292
+ if (!channel) {
293
+ throw new Error(`Channel "${name}" referenced by extends not found`);
294
+ }
295
+ const ownProvenance = structuredClone(provenance[name] ?? {});
296
+ const parentName = channel.extends;
297
+ if (typeof parentName !== 'string')
298
+ return ownProvenance;
299
+ const parentResolved = resolveChannelProvenanceExtends(parentName, channels, provenance, [...stack, name]);
300
+ delete ownProvenance.extends;
301
+ const childDefinesAbstract = Object.prototype.hasOwnProperty.call(channel, 'abstract');
302
+ const merged = deepMerge(structuredClone(parentResolved), ownProvenance);
303
+ if (!childDefinesAbstract) {
304
+ delete merged.abstract;
305
+ }
306
+ return merged;
307
+ }
308
+ function fillDefaultProvenance(finalValue, provenance) {
309
+ if (!isPlainRecord(finalValue))
310
+ return;
311
+ for (const [field, value] of Object.entries(finalValue)) {
312
+ if (isPlainRecord(value)) {
313
+ const existing = provenance[field];
314
+ const nested = isPlainRecord(existing) ? existing : {};
315
+ provenance[field] = nested;
316
+ fillDefaultProvenance(value, nested);
317
+ }
318
+ else if (provenance[field] === undefined) {
319
+ provenance[field] = 'default';
97
320
  }
98
321
  }
99
- // Validate through Zod schema
100
- return MmrConfigSchema.parse(merged);
322
+ }
323
+ export function loadConfigWithProvenance(opts) {
324
+ const { merged: mergedRaw, userConfig, projectConfig, cliConfig } = loadConfigLayers(opts);
325
+ const rawProvenance = { defaults: {}, channels: {} };
326
+ applyProvenanceLayer(rawProvenance, DEFAULT_CONFIG, 'default');
327
+ if (Object.keys(userConfig).length > 0)
328
+ applyProvenanceLayer(rawProvenance, userConfig, 'user');
329
+ if (Object.keys(projectConfig).length > 0)
330
+ applyProvenanceLayer(rawProvenance, projectConfig, 'project');
331
+ if (Object.keys(cliConfig).length > 0)
332
+ applyProvenanceLayer(rawProvenance, cliConfig, 'cli');
333
+ const config = parseMergedConfig(mergedRaw, opts.onWarning);
334
+ const provenance = { defaults: rawProvenance.defaults, channels: {} };
335
+ fillDefaultProvenance(config.defaults, provenance.defaults);
336
+ const mergedChannels = isPlainRecord(mergedRaw.channels)
337
+ ? mergedRaw.channels
338
+ : {};
339
+ for (const name of Object.keys(config.channels)) {
340
+ provenance.channels[name] = resolveChannelProvenanceExtends(name, mergedChannels, rawProvenance.channels);
341
+ fillDefaultProvenance(config.channels[name], provenance.channels[name]);
342
+ }
343
+ return { config, provenance };
101
344
  }
102
345
  //# sourceMappingURL=loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}