browser-debug-mcp-bridge 1.9.0 → 1.11.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 (56) hide show
  1. package/README.md +271 -188
  2. package/apps/mcp-server/dist/db/automation-repository.js +199 -0
  3. package/apps/mcp-server/dist/db/automation-repository.js.map +1 -0
  4. package/apps/mcp-server/dist/db/connection.js +1 -5
  5. package/apps/mcp-server/dist/db/connection.js.map +1 -1
  6. package/apps/mcp-server/dist/db/events-repository.js +79 -10
  7. package/apps/mcp-server/dist/db/events-repository.js.map +1 -1
  8. package/apps/mcp-server/dist/db/index.js +2 -0
  9. package/apps/mcp-server/dist/db/index.js.map +1 -1
  10. package/apps/mcp-server/dist/db/migrations.js +493 -0
  11. package/apps/mcp-server/dist/db/migrations.js.map +1 -1
  12. package/apps/mcp-server/dist/db/schema.js +192 -1
  13. package/apps/mcp-server/dist/db/schema.js.map +1 -1
  14. package/apps/mcp-server/dist/document-response-rewriter.js +196 -0
  15. package/apps/mcp-server/dist/document-response-rewriter.js.map +1 -0
  16. package/apps/mcp-server/dist/json-rewrite.js +189 -0
  17. package/apps/mcp-server/dist/json-rewrite.js.map +1 -0
  18. package/apps/mcp-server/dist/main.js +375 -4
  19. package/apps/mcp-server/dist/main.js.map +1 -1
  20. package/apps/mcp-server/dist/mcp/server.js +4168 -310
  21. package/apps/mcp-server/dist/mcp/server.js.map +1 -1
  22. package/apps/mcp-server/dist/mcp-bridge.js +46 -3
  23. package/apps/mcp-server/dist/mcp-bridge.js.map +1 -1
  24. package/apps/mcp-server/dist/next-asset-mapper.js +701 -0
  25. package/apps/mcp-server/dist/next-asset-mapper.js.map +1 -0
  26. package/apps/mcp-server/dist/next-source-override-planner.js +601 -0
  27. package/apps/mcp-server/dist/next-source-override-planner.js.map +1 -0
  28. package/apps/mcp-server/dist/override-audit-contract.js +51 -0
  29. package/apps/mcp-server/dist/override-audit-contract.js.map +1 -0
  30. package/apps/mcp-server/dist/override-audit.js +740 -0
  31. package/apps/mcp-server/dist/override-audit.js.map +1 -0
  32. package/apps/mcp-server/dist/override-capabilities.js +136 -0
  33. package/apps/mcp-server/dist/override-capabilities.js.map +1 -0
  34. package/apps/mcp-server/dist/override-observed-assets.js +179 -0
  35. package/apps/mcp-server/dist/override-observed-assets.js.map +1 -0
  36. package/apps/mcp-server/dist/override-poc.js +336 -0
  37. package/apps/mcp-server/dist/override-poc.js.map +1 -0
  38. package/apps/mcp-server/dist/override-profile-generator.js +403 -0
  39. package/apps/mcp-server/dist/override-profile-generator.js.map +1 -0
  40. package/apps/mcp-server/dist/override-response-planner.js +557 -0
  41. package/apps/mcp-server/dist/override-response-planner.js.map +1 -0
  42. package/apps/mcp-server/dist/override-rule-types.js +32 -0
  43. package/apps/mcp-server/dist/override-rule-types.js.map +1 -0
  44. package/apps/mcp-server/dist/retention.js +4 -3
  45. package/apps/mcp-server/dist/retention.js.map +1 -1
  46. package/apps/mcp-server/dist/rsc-flight-patch-safety.js +269 -0
  47. package/apps/mcp-server/dist/rsc-flight-patch-safety.js.map +1 -0
  48. package/apps/mcp-server/dist/runtime-paths.js +33 -0
  49. package/apps/mcp-server/dist/runtime-paths.js.map +1 -0
  50. package/apps/mcp-server/dist/websocket/messages.js +13 -0
  51. package/apps/mcp-server/dist/websocket/messages.js.map +1 -1
  52. package/apps/mcp-server/dist/websocket/websocket-server.js +10 -0
  53. package/apps/mcp-server/dist/websocket/websocket-server.js.map +1 -1
  54. package/apps/mcp-server/package.json +1 -0
  55. package/package.json +16 -1
  56. package/scripts/mcp-start.cjs +201 -11
@@ -0,0 +1 @@
1
+ {"version":3,"file":"next-asset-mapper.js","sourceRoot":"","sources":["../src/next-asset-mapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,601 @@
1
+ import { spawn } from 'child_process';
2
+ import { createHash, randomUUID } from 'crypto';
3
+ import { cpSync, existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync, writeFileSync } from 'fs';
4
+ import { dirname, extname, isAbsolute, relative, resolve } from 'path';
5
+ import { createNextAssetIndex, mapNextOverrideAssets, mapNextOverrideAssetsWithDrift, nextAssetSourceMatches, normalizeNextSourcePath, } from './next-asset-mapper.js';
6
+ const DEFAULT_BUILD_TIMEOUT_MS = 180_000;
7
+ const DEFAULT_OVERLAY_TTL_MS = 24 * 60 * 60 * 1000;
8
+ const CAPTURED_OUTPUT_TAIL_BYTES = 24 * 1024;
9
+ const LOW_CONFIDENCE_SCORE = 44;
10
+ function isRecord(value) {
11
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
12
+ }
13
+ function normalizeOptionalString(value) {
14
+ return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
15
+ }
16
+ function normalizeSourceEdits(values) {
17
+ if (!Array.isArray(values)) {
18
+ return [];
19
+ }
20
+ const edits = [];
21
+ for (const value of values) {
22
+ if (!isRecord(value)) {
23
+ continue;
24
+ }
25
+ const filePath = normalizeOptionalString(value.filePath);
26
+ if (!filePath) {
27
+ continue;
28
+ }
29
+ const content = typeof value.content === 'string' ? value.content : undefined;
30
+ const search = typeof value.search === 'string' ? value.search : undefined;
31
+ const replacement = typeof value.replacement === 'string'
32
+ ? value.replacement
33
+ : typeof value.replace === 'string'
34
+ ? value.replace
35
+ : undefined;
36
+ edits.push({
37
+ filePath,
38
+ content,
39
+ search,
40
+ replacement,
41
+ replaceAll: value.replaceAll === true,
42
+ });
43
+ }
44
+ return edits;
45
+ }
46
+ function isInsidePath(parent, child) {
47
+ const relativePath = relative(parent, child);
48
+ return relativePath === '' || (!relativePath.startsWith('..') && !isAbsolute(relativePath));
49
+ }
50
+ function findWorkspaceRoot(projectRoot) {
51
+ let current = resolve(projectRoot);
52
+ while (true) {
53
+ if (existsSync(resolve(current, 'package.json'))) {
54
+ return current;
55
+ }
56
+ const parent = resolve(current, '..');
57
+ if (parent === current) {
58
+ return resolve(projectRoot);
59
+ }
60
+ current = parent;
61
+ }
62
+ }
63
+ function findNextBin(projectRoot, workspaceRoot) {
64
+ let current = resolve(projectRoot);
65
+ while (true) {
66
+ const candidate = resolve(current, 'node_modules', 'next', 'dist', 'bin', 'next');
67
+ if (existsSync(candidate)) {
68
+ return candidate;
69
+ }
70
+ const parent = resolve(current, '..');
71
+ if (parent === current) {
72
+ break;
73
+ }
74
+ current = parent;
75
+ }
76
+ const workspaceCandidate = resolve(workspaceRoot, 'node_modules', 'next', 'dist', 'bin', 'next');
77
+ if (existsSync(workspaceCandidate)) {
78
+ return workspaceCandidate;
79
+ }
80
+ throw new Error(`Unable to locate Next.js CLI from ${projectRoot}. Install next in the project workspace before planning source overrides.`);
81
+ }
82
+ function createOverlay(projectRoot, workspaceRoot) {
83
+ const relativeProjectRoot = relative(workspaceRoot, projectRoot);
84
+ if (relativeProjectRoot.startsWith('..')) {
85
+ throw new Error(`projectRoot must be inside the detected workspace root (${workspaceRoot})`);
86
+ }
87
+ const overlayRoot = resolve(workspaceRoot, 'tmp', 'bn', randomUUID().slice(0, 8));
88
+ const overlayProjectRoot = resolve(overlayRoot, relativeProjectRoot);
89
+ mkdirSync(dirname(overlayProjectRoot), { recursive: true });
90
+ const rootFiles = ['package.json', 'nx.json', 'tsconfig.base.json', 'tsconfig.json', 'jsconfig.json'];
91
+ for (const rootFile of rootFiles) {
92
+ const sourcePath = resolve(workspaceRoot, rootFile);
93
+ if (!existsSync(sourcePath)) {
94
+ continue;
95
+ }
96
+ const targetPath = resolve(overlayRoot, rootFile);
97
+ mkdirSync(dirname(targetPath), { recursive: true });
98
+ cpSync(sourcePath, targetPath);
99
+ }
100
+ cpSync(projectRoot, overlayProjectRoot, {
101
+ recursive: true,
102
+ filter: (sourcePath) => {
103
+ const name = sourcePath.split(/[\\/]/).pop() ?? '';
104
+ return !['.next', 'node_modules', 'dist', 'out', 'coverage', '.turbo'].includes(name);
105
+ },
106
+ });
107
+ return { overlayRoot, overlayProjectRoot };
108
+ }
109
+ export function cleanupNextSourceOverlayRoots(workspaceRoot, ttlMs = DEFAULT_OVERLAY_TTL_MS, now = Date.now()) {
110
+ const overlayBase = resolve(workspaceRoot, 'tmp', 'bn');
111
+ if (!existsSync(overlayBase)) {
112
+ return 0;
113
+ }
114
+ let removed = 0;
115
+ for (const entry of readdirSync(overlayBase, { withFileTypes: true })) {
116
+ if (!entry.isDirectory()) {
117
+ continue;
118
+ }
119
+ const fullPath = resolve(overlayBase, entry.name);
120
+ if (ttlMs <= 0) {
121
+ rmSync(fullPath, { recursive: true, force: true });
122
+ removed += 1;
123
+ continue;
124
+ }
125
+ const ageMs = now - statSync(fullPath).mtimeMs;
126
+ if (ageMs >= ttlMs) {
127
+ rmSync(fullPath, { recursive: true, force: true });
128
+ removed += 1;
129
+ }
130
+ }
131
+ return removed;
132
+ }
133
+ function applySourceEdits(overlayProjectRoot, edits) {
134
+ const applied = [];
135
+ for (const edit of edits) {
136
+ const absolutePath = resolve(overlayProjectRoot, edit.filePath);
137
+ if (!isInsidePath(overlayProjectRoot, absolutePath)) {
138
+ throw new Error(`source edit path escapes projectRoot: ${edit.filePath}`);
139
+ }
140
+ if (edit.content !== undefined) {
141
+ mkdirSync(dirname(absolutePath), { recursive: true });
142
+ writeFileSync(absolutePath, edit.content, 'utf8');
143
+ applied.push({
144
+ filePath: edit.filePath,
145
+ absolutePath,
146
+ operation: 'replace_content',
147
+ replacements: existsSync(absolutePath) ? 1 : 0,
148
+ });
149
+ continue;
150
+ }
151
+ if (edit.search === undefined || edit.replacement === undefined) {
152
+ throw new Error(`source edit for ${edit.filePath} must provide content or search plus replacement`);
153
+ }
154
+ if (!existsSync(absolutePath)) {
155
+ throw new Error(`source edit target not found: ${edit.filePath}`);
156
+ }
157
+ const originalContent = readFileSync(absolutePath, 'utf8');
158
+ if (!originalContent.includes(edit.search)) {
159
+ throw new Error(`source edit search text not found in ${edit.filePath}`);
160
+ }
161
+ const replacements = edit.replaceAll ? originalContent.split(edit.search).length - 1 : 1;
162
+ const updatedContent = edit.replaceAll
163
+ ? originalContent.split(edit.search).join(edit.replacement)
164
+ : originalContent.replace(edit.search, edit.replacement);
165
+ writeFileSync(absolutePath, updatedContent, 'utf8');
166
+ applied.push({
167
+ filePath: edit.filePath,
168
+ absolutePath,
169
+ operation: 'replace_text',
170
+ replacements,
171
+ });
172
+ }
173
+ return applied;
174
+ }
175
+ function appendOutputTail(current, chunk) {
176
+ const next = current + chunk.toString('utf8');
177
+ if (Buffer.byteLength(next, 'utf8') <= CAPTURED_OUTPUT_TAIL_BYTES) {
178
+ return next;
179
+ }
180
+ return next.slice(next.length - CAPTURED_OUTPUT_TAIL_BYTES);
181
+ }
182
+ async function runNextBuild(options) {
183
+ const nextBin = findNextBin(options.projectRoot, options.workspaceRoot);
184
+ const startedAt = Date.now();
185
+ const args = [nextBin, 'build', options.overlayProjectRoot];
186
+ const child = spawn(process.execPath, args, {
187
+ cwd: options.workspaceRoot,
188
+ env: {
189
+ ...process.env,
190
+ NEXT_TELEMETRY_DISABLED: '1',
191
+ },
192
+ windowsHide: true,
193
+ });
194
+ let stdoutTail = '';
195
+ let stderrTail = '';
196
+ child.stdout.on('data', (chunk) => {
197
+ stdoutTail = appendOutputTail(stdoutTail, chunk);
198
+ });
199
+ child.stderr.on('data', (chunk) => {
200
+ stderrTail = appendOutputTail(stderrTail, chunk);
201
+ });
202
+ const exitCode = await new Promise((resolvePromise, reject) => {
203
+ const timeout = setTimeout(() => {
204
+ child.kill();
205
+ reject(new Error(`Next.js overlay build timed out after ${options.timeoutMs}ms`));
206
+ }, options.timeoutMs);
207
+ child.on('error', (error) => {
208
+ clearTimeout(timeout);
209
+ reject(error);
210
+ });
211
+ child.on('close', (code) => {
212
+ clearTimeout(timeout);
213
+ resolvePromise(code ?? 1);
214
+ });
215
+ });
216
+ const build = {
217
+ command: `${process.execPath} ${nextBin} build ${options.overlayProjectRoot}`,
218
+ cwd: options.workspaceRoot,
219
+ exitCode,
220
+ durationMs: Date.now() - startedAt,
221
+ stdoutTail,
222
+ stderrTail,
223
+ };
224
+ if (exitCode !== 0) {
225
+ throw new Error(`Next.js overlay build failed with exit code ${exitCode}\n${stderrTail || stdoutTail}`);
226
+ }
227
+ return build;
228
+ }
229
+ function getContentType(assetPath) {
230
+ const extension = extname(assetPath).toLowerCase();
231
+ if (extension === '.css') {
232
+ return 'text/css; charset=utf-8';
233
+ }
234
+ return 'application/javascript; charset=utf-8';
235
+ }
236
+ function hashFile(filePath) {
237
+ return createHash('sha256').update(readFileSync(filePath)).digest('hex');
238
+ }
239
+ function extractQuotedLiterals(value) {
240
+ const literals = [];
241
+ for (const match of value.matchAll(/(['"])((?:\\.|(?!\1)[\s\S])*?)\1/g)) {
242
+ if (match[2] !== undefined) {
243
+ literals.push(match[2].replace(/\\'/g, "'").replace(/\\"/g, '"'));
244
+ }
245
+ }
246
+ return literals;
247
+ }
248
+ function inferAssetTextReplacements(edits) {
249
+ const replacements = new Map();
250
+ for (const edit of edits) {
251
+ if (!edit.search || edit.replacement === undefined) {
252
+ continue;
253
+ }
254
+ const oldLiterals = extractQuotedLiterals(edit.search);
255
+ const newLiterals = extractQuotedLiterals(edit.replacement);
256
+ const pairCount = Math.min(oldLiterals.length, newLiterals.length);
257
+ for (let index = 0; index < pairCount; index += 1) {
258
+ const search = oldLiterals[index];
259
+ const replacement = newLiterals[index];
260
+ if (search && replacement !== undefined && search !== replacement) {
261
+ replacements.set(search, replacement);
262
+ }
263
+ }
264
+ }
265
+ return Array.from(replacements.entries()).map(([search, replacement]) => ({ search, replacement }));
266
+ }
267
+ function createPatchedObservedAsset(options) {
268
+ if (options.replacements.length === 0) {
269
+ return undefined;
270
+ }
271
+ let content = readFileSync(options.originalAsset.localFilePath, 'utf8');
272
+ let replacementCount = 0;
273
+ for (const replacement of options.replacements) {
274
+ if (!content.includes(replacement.search)) {
275
+ continue;
276
+ }
277
+ replacementCount += content.split(replacement.search).length - 1;
278
+ content = content.split(replacement.search).join(replacement.replacement);
279
+ }
280
+ if (replacementCount === 0) {
281
+ return undefined;
282
+ }
283
+ const patchDir = resolve(options.overlayRoot, 'patches');
284
+ mkdirSync(patchDir, { recursive: true });
285
+ const patchPath = resolve(patchDir, `${options.ruleIndex}-${options.originalAsset.assetPath.replace(/[\\/]/g, '_')}`);
286
+ writeFileSync(patchPath, content, 'utf8');
287
+ const stat = statSync(patchPath);
288
+ return {
289
+ ...options.originalAsset,
290
+ localFilePath: patchPath,
291
+ sizeBytes: stat.size,
292
+ sha256: hashFile(patchPath),
293
+ };
294
+ }
295
+ function candidateUrlPrefix(candidate) {
296
+ const index = candidate.targetAssetUrl.indexOf(candidate.assetPath);
297
+ if (index < 0) {
298
+ return undefined;
299
+ }
300
+ return candidate.targetAssetUrl.slice(0, index);
301
+ }
302
+ function assetSourceMapMatchesAnySource(asset, sourcePaths) {
303
+ return sourcePaths.filter((sourcePath) => {
304
+ return asset.sourceMapSources.some((source) => nextAssetSourceMatches(source, sourcePath));
305
+ });
306
+ }
307
+ function scoreTempAssetForCandidate(asset, candidate, sourcePaths) {
308
+ const requestedSources = candidate.matchedSourcePaths.length > 0 ? candidate.matchedSourcePaths : sourcePaths;
309
+ const sourceScore = assetSourceMapMatchesAnySource(asset, requestedSources).length * 100;
310
+ const extensionScore = extname(candidate.localFilePath).toLowerCase() === asset.extension ? 20 : 0;
311
+ const routeScore = candidate.manifestRoutes.some((route) => asset.manifestRoutes.includes(route)) ? 10 : 0;
312
+ return sourceScore + extensionScore + routeScore;
313
+ }
314
+ function findBestTempAssetForCandidate(tempAssets, candidate, sourcePaths) {
315
+ return tempAssets
316
+ .map((asset) => ({ asset, score: scoreTempAssetForCandidate(asset, candidate, sourcePaths) }))
317
+ .filter((entry) => entry.score > 0)
318
+ .sort((first, second) => second.score - first.score || first.asset.assetPath.localeCompare(second.asset.assetPath))[0]?.asset;
319
+ }
320
+ function extractReferencedNextAssets(asset) {
321
+ const content = readFileSync(asset.localFilePath, 'utf8');
322
+ const references = new Set();
323
+ const patterns = [
324
+ /\/_next\/(static\/[^"'`)\s]+?\.(?:js|css))(?:[?#][^"'`)\s]*)?/g,
325
+ /(?<![A-Za-z0-9_/-])(static\/[^"'`)\s]+?\.(?:js|css))(?:[?#][^"'`)\s]*)?/g,
326
+ ];
327
+ for (const pattern of patterns) {
328
+ for (const match of content.matchAll(pattern)) {
329
+ if (match[1]) {
330
+ references.add(match[1]);
331
+ }
332
+ }
333
+ }
334
+ return Array.from(references).sort();
335
+ }
336
+ function confidenceAllowed(confidence) {
337
+ return confidence === 'high';
338
+ }
339
+ function createRule(options) {
340
+ return {
341
+ ruleId: options.ruleId,
342
+ ruleType: 'asset',
343
+ requestMethod: 'GET',
344
+ matchMode: 'exact',
345
+ targetAssetUrl: options.targetAssetUrl,
346
+ localFilePath: options.localAsset.localFilePath,
347
+ localAssetPath: options.localAsset.assetPath,
348
+ contentType: getContentType(options.localAsset.assetPath),
349
+ confidence: options.confidence,
350
+ score: options.score,
351
+ reason: options.reason,
352
+ matchedSourcePaths: options.matchedSourcePaths,
353
+ originalAssetPath: options.originalAssetPath,
354
+ blockers: options.blockers ?? [],
355
+ };
356
+ }
357
+ function writeOverrideConfig(options) {
358
+ if (existsSync(options.configPath) && options.overwrite === false) {
359
+ throw new Error(`Refusing to overwrite existing override config: ${options.configPath}`);
360
+ }
361
+ mkdirSync(dirname(options.configPath), { recursive: true });
362
+ const profileId = options.profileId ?? 'next-source-overlay';
363
+ writeFileSync(options.configPath, `${JSON.stringify({
364
+ enabled: options.enabled ?? true,
365
+ activeProfileId: profileId,
366
+ profiles: [{
367
+ profileId,
368
+ name: options.profileName ?? 'Next.js source overlay',
369
+ enabled: options.profileEnabled ?? true,
370
+ autoReload: options.autoReload ?? true,
371
+ rules: options.rules.map((rule) => ({
372
+ ruleId: rule.ruleId,
373
+ ruleType: rule.ruleType,
374
+ requestMethod: rule.requestMethod,
375
+ matchMode: rule.matchMode,
376
+ targetAssetUrl: rule.targetAssetUrl,
377
+ localFilePath: rule.localFilePath,
378
+ contentType: rule.contentType,
379
+ enabled: true,
380
+ })),
381
+ }],
382
+ }, null, 2)}\n`, 'utf8');
383
+ }
384
+ function buildNextActions(result) {
385
+ if (result.blockers.length > 0 && result.rules.length === 0) {
386
+ return [{ code: 'FIX_BLOCKERS', message: 'Resolve source mapping or build blockers before enabling overrides.' }];
387
+ }
388
+ if (result.configWritten) {
389
+ return [{ code: 'ENABLE_OVERRIDES', message: 'Enable overrides for the selected session/tab to load the planned temp overlay chunks.' }];
390
+ }
391
+ if (result.rules.length > 0) {
392
+ return [{ code: 'WRITE_CONFIG', message: 'Write these planned rules to an override profile config before enabling overrides.' }];
393
+ }
394
+ return [{ code: 'OBSERVE_ASSETS', message: 'Observe the live Next.js route assets, then plan the source override again.' }];
395
+ }
396
+ export async function planNextSourceOverride(options) {
397
+ const projectRoot = resolve(options.projectRoot);
398
+ const workspaceRoot = findWorkspaceRoot(projectRoot);
399
+ const overlayTtlMs = typeof options.overlayTtlMs === 'number' && Number.isFinite(options.overlayTtlMs)
400
+ ? Math.max(0, Math.floor(options.overlayTtlMs))
401
+ : DEFAULT_OVERLAY_TTL_MS;
402
+ const cleanedOverlayCount = cleanupNextSourceOverlayRoots(workspaceRoot, overlayTtlMs);
403
+ const edits = normalizeSourceEdits(options.sourceEdits);
404
+ if (edits.length === 0) {
405
+ throw new Error('sourceEdits must include at least one file edit');
406
+ }
407
+ const sourcePathsFromInput = Array.isArray(options.sourcePaths)
408
+ ? options.sourcePaths.filter((entry) => typeof entry === 'string' && entry.trim().length > 0)
409
+ : [];
410
+ const sourcePaths = Array.from(new Set([
411
+ ...edits.map((edit) => normalizeNextSourcePath(projectRoot, edit.filePath)),
412
+ ...sourcePathsFromInput.map((sourcePath) => normalizeNextSourcePath(projectRoot, sourcePath)),
413
+ ])).sort();
414
+ const originalNextDir = normalizeOptionalString(options.nextDir);
415
+ const mapping = options.fetchProductionAssets === true
416
+ ? await mapNextOverrideAssetsWithDrift({
417
+ projectRoot,
418
+ nextDir: originalNextDir,
419
+ route: options.route,
420
+ observedAssets: options.observedAssets,
421
+ sourcePaths,
422
+ maxResults: 100,
423
+ fetchProductionAssets: true,
424
+ productionFetchTimeoutMs: options.productionFetchTimeoutMs,
425
+ maxProductionAssetBytes: options.maxProductionAssetBytes,
426
+ maxDriftCandidates: options.maxDriftCandidates,
427
+ productionFetchConcurrency: options.productionFetchConcurrency,
428
+ })
429
+ : mapNextOverrideAssets({
430
+ projectRoot,
431
+ nextDir: originalNextDir,
432
+ route: options.route,
433
+ observedAssets: options.observedAssets,
434
+ sourcePaths,
435
+ maxResults: 100,
436
+ });
437
+ const mappingCandidates = mapping.candidates.filter((candidate) => confidenceAllowed(candidate.confidence));
438
+ const blockers = [];
439
+ const warnings = [...mapping.warnings];
440
+ if (cleanedOverlayCount > 0) {
441
+ warnings.push(`Cleaned ${cleanedOverlayCount} expired Next.js source overlay folder(s).`);
442
+ }
443
+ for (const candidate of mapping.candidates) {
444
+ for (const blocker of candidate.blockers) {
445
+ blockers.push(`${candidate.targetAssetUrl}: ${blocker}`);
446
+ }
447
+ }
448
+ if (mappingCandidates.length === 0) {
449
+ blockers.push('No medium/high confidence observed production Next.js asset matched the requested source paths.');
450
+ }
451
+ const { overlayRoot, overlayProjectRoot } = createOverlay(projectRoot, workspaceRoot);
452
+ const editsApplied = applySourceEdits(overlayProjectRoot, edits);
453
+ const timeoutMs = typeof options.buildTimeoutMs === 'number' && Number.isFinite(options.buildTimeoutMs)
454
+ ? Math.max(1_000, Math.floor(options.buildTimeoutMs))
455
+ : DEFAULT_BUILD_TIMEOUT_MS;
456
+ const build = await runNextBuild({ projectRoot, overlayProjectRoot, workspaceRoot, timeoutMs });
457
+ const overlayNextDir = resolve(overlayProjectRoot, originalNextDir ?? '.next');
458
+ const originalIndex = createNextAssetIndex(projectRoot, originalNextDir);
459
+ const overlayIndex = createNextAssetIndex(overlayProjectRoot, originalNextDir);
460
+ warnings.push(...overlayIndex.warnings.map((warning) => `overlay: ${warning}`));
461
+ const tempAssetsForSources = overlayIndex.assets.filter((asset) => assetSourceMapMatchesAnySource(asset, sourcePaths).length > 0);
462
+ const changedAssets = tempAssetsForSources.filter((asset) => {
463
+ const original = originalIndex.byAssetPath.get(asset.assetPath);
464
+ return !original || original.sha256 !== asset.sha256 || original.sizeBytes !== asset.sizeBytes;
465
+ });
466
+ const rules = [];
467
+ const usedTargetUrls = new Set();
468
+ const selectedOverlayPrimaryAssets = [];
469
+ const assetTextReplacements = inferAssetTextReplacements(edits);
470
+ for (const candidate of mappingCandidates) {
471
+ if (candidate.blockers.length > 0) {
472
+ continue;
473
+ }
474
+ const tempAsset = findBestTempAssetForCandidate(changedAssets, candidate, sourcePaths);
475
+ const originalAsset = originalIndex.byAssetPath.get(candidate.assetPath);
476
+ const originalSourceMapMatches = originalAsset ? assetSourceMapMatchesAnySource(originalAsset, sourcePaths) : [];
477
+ const exactChangedAsset = changedAssets.find((asset) => asset.assetPath === candidate.assetPath);
478
+ const patchedAsset = originalAsset
479
+ ? createPatchedObservedAsset({
480
+ originalAsset,
481
+ overlayRoot,
482
+ replacements: assetTextReplacements,
483
+ ruleIndex: rules.length + 1,
484
+ })
485
+ : undefined;
486
+ const localAsset = patchedAsset ?? exactChangedAsset ?? (originalSourceMapMatches.length > 0 ? tempAsset : undefined);
487
+ if (!localAsset) {
488
+ warnings.push(`No changed overlay chunk matched observed asset ${candidate.targetAssetUrl}.`);
489
+ continue;
490
+ }
491
+ const matchedSourcePaths = patchedAsset ? candidate.matchedSourcePaths : assetSourceMapMatchesAnySource(localAsset, sourcePaths);
492
+ const rule = createRule({
493
+ ruleId: `source-${rules.length + 1}`,
494
+ targetAssetUrl: candidate.targetAssetUrl,
495
+ localAsset,
496
+ reason: patchedAsset ? 'observed_asset_patched_from_source_edit' : 'observed_asset_rebuilt_from_source_edit',
497
+ confidence: candidate.confidence,
498
+ score: candidate.score,
499
+ matchedSourcePaths,
500
+ originalAssetPath: candidate.assetPath,
501
+ });
502
+ rules.push(rule);
503
+ usedTargetUrls.add(rule.targetAssetUrl);
504
+ if (!patchedAsset && tempAsset) {
505
+ selectedOverlayPrimaryAssets.push(tempAsset);
506
+ }
507
+ }
508
+ const firstPrefix = mappingCandidates.map(candidateUrlPrefix).find((entry) => typeof entry === 'string');
509
+ if (firstPrefix && selectedOverlayPrimaryAssets.length > 0) {
510
+ const dependencyAssetPaths = new Set();
511
+ for (const asset of selectedOverlayPrimaryAssets) {
512
+ for (const referencedAssetPath of extractReferencedNextAssets(asset)) {
513
+ if (referencedAssetPath !== asset.assetPath) {
514
+ dependencyAssetPaths.add(referencedAssetPath);
515
+ }
516
+ }
517
+ }
518
+ for (const asset of changedAssets) {
519
+ if (!selectedOverlayPrimaryAssets.some((selected) => selected.assetPath === asset.assetPath)) {
520
+ dependencyAssetPaths.add(asset.assetPath);
521
+ }
522
+ }
523
+ for (const dependencyAssetPath of dependencyAssetPaths) {
524
+ const dependencyAsset = overlayIndex.byAssetPath.get(dependencyAssetPath);
525
+ if (!dependencyAsset || !existsSync(dependencyAsset.localFilePath) || !statSync(dependencyAsset.localFilePath).isFile()) {
526
+ continue;
527
+ }
528
+ const targetAssetUrl = `${firstPrefix}${dependencyAsset.assetPath}`;
529
+ if (usedTargetUrls.has(targetAssetUrl)) {
530
+ continue;
531
+ }
532
+ usedTargetUrls.add(targetAssetUrl);
533
+ rules.push(createRule({
534
+ ruleId: `dependency-${rules.length + 1}`,
535
+ targetAssetUrl,
536
+ localAsset: dependencyAsset,
537
+ reason: selectedOverlayPrimaryAssets.some((selected) => extractReferencedNextAssets(selected).includes(dependencyAsset.assetPath))
538
+ ? 'referenced_overlay_dependency_chunk'
539
+ : 'edited_source_chunk_without_observed_original',
540
+ confidence: 'medium',
541
+ score: LOW_CONFIDENCE_SCORE + 1,
542
+ matchedSourcePaths: assetSourceMapMatchesAnySource(dependencyAsset, sourcePaths),
543
+ }));
544
+ }
545
+ }
546
+ else if (changedAssets.length > 0) {
547
+ warnings.push('Unable to infer production Next.js asset URL prefix for dependency chunks.');
548
+ }
549
+ const maxRules = typeof options.maxRules === 'number' && Number.isFinite(options.maxRules)
550
+ ? Math.max(1, Math.floor(options.maxRules))
551
+ : 200;
552
+ const limitedRules = rules.slice(0, maxRules);
553
+ if (rules.length > limitedRules.length) {
554
+ warnings.push(`Rule list truncated from ${rules.length} to ${limitedRules.length}.`);
555
+ }
556
+ if (limitedRules.length === 0) {
557
+ blockers.push('No override rules could be planned from the edited source files.');
558
+ }
559
+ const patchedObservedAssetCount = limitedRules.filter((rule) => rule.reason === 'observed_asset_patched_from_source_edit').length;
560
+ const configPath = normalizeOptionalString(options.configPath);
561
+ const shouldWriteConfig = options.writeConfig === true;
562
+ if (shouldWriteConfig) {
563
+ if (!configPath) {
564
+ throw new Error('configPath is required when writeConfig is true');
565
+ }
566
+ writeOverrideConfig({
567
+ configPath,
568
+ rules: limitedRules,
569
+ profileId: normalizeOptionalString(options.profileId),
570
+ profileName: normalizeOptionalString(options.profileName),
571
+ enabled: options.enabled === false ? false : true,
572
+ profileEnabled: options.profileEnabled === false ? false : true,
573
+ autoReload: options.autoReload !== false,
574
+ overwrite: typeof options.overwrite === 'boolean' ? options.overwrite : undefined,
575
+ });
576
+ }
577
+ const resultWithoutActions = {
578
+ projectRoot,
579
+ workspaceRoot,
580
+ overlayRoot,
581
+ overlayProjectRoot,
582
+ overlayNextDir,
583
+ route: mapping.route,
584
+ sourcePaths,
585
+ editsApplied,
586
+ build,
587
+ mappingCandidateCount: mappingCandidates.length,
588
+ changedAssetCount: changedAssets.length + patchedObservedAssetCount,
589
+ dependencyRuleCount: limitedRules.filter((rule) => rule.reason.includes('dependency') || rule.reason.includes('without_observed')).length,
590
+ rules: limitedRules,
591
+ configPath,
592
+ configWritten: shouldWriteConfig,
593
+ warnings,
594
+ blockers,
595
+ };
596
+ return {
597
+ ...resultWithoutActions,
598
+ nextActions: buildNextActions(resultWithoutActions),
599
+ };
600
+ }
601
+ //# sourceMappingURL=next-source-override-planner.js.map