tryassay 0.13.0 → 0.15.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 (32) hide show
  1. package/dist/api/server.d.ts +4 -0
  2. package/dist/api/server.js +145 -1
  3. package/dist/api/server.js.map +1 -1
  4. package/dist/cli.js +21 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/create.d.ts +18 -0
  7. package/dist/commands/create.js +135 -0
  8. package/dist/commands/create.js.map +1 -0
  9. package/dist/runtime/agents/code-agent.d.ts +1 -1
  10. package/dist/runtime/agents/code-agent.js +17 -7
  11. package/dist/runtime/agents/code-agent.js.map +1 -1
  12. package/dist/runtime/agents/coordinator-agent.js +2 -1
  13. package/dist/runtime/agents/coordinator-agent.js.map +1 -1
  14. package/dist/runtime/agents/planner-agent.d.ts +18 -0
  15. package/dist/runtime/agents/planner-agent.js +201 -0
  16. package/dist/runtime/agents/planner-agent.js.map +1 -0
  17. package/dist/runtime/app-create-orchestrator.d.ts +62 -0
  18. package/dist/runtime/app-create-orchestrator.js +923 -0
  19. package/dist/runtime/app-create-orchestrator.js.map +1 -0
  20. package/dist/runtime/build-verifier.d.ts +32 -0
  21. package/dist/runtime/build-verifier.js +508 -0
  22. package/dist/runtime/build-verifier.js.map +1 -0
  23. package/dist/runtime/composition-verifier.d.ts +46 -0
  24. package/dist/runtime/composition-verifier.js +278 -1
  25. package/dist/runtime/composition-verifier.js.map +1 -1
  26. package/dist/runtime/multi-agent-loop.d.ts +2 -0
  27. package/dist/runtime/multi-agent-loop.js +65 -1
  28. package/dist/runtime/multi-agent-loop.js.map +1 -1
  29. package/dist/runtime/specialized-agent.js +1 -1
  30. package/dist/runtime/specialized-agent.js.map +1 -1
  31. package/dist/runtime/types.d.ts +212 -2
  32. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-create-orchestrator.js","sourceRoot":"","sources":["../../src/runtime/app-create-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { BuildError, BuildVerificationResult } from './types.js';
2
+ interface BuildVerifierOptions {
3
+ maxRepairAttempts: number;
4
+ installTimeoutMs?: number;
5
+ buildTimeoutMs?: number;
6
+ startStabilityMs?: number;
7
+ healthCheckTimeoutMs?: number;
8
+ healthCheckRetries?: number;
9
+ codeModel?: string;
10
+ /** Callback to re-reconcile dependencies after repair modifies package.json */
11
+ onReconcileDeps?: () => Promise<void>;
12
+ }
13
+ export declare class BuildVerifier {
14
+ private projectPath;
15
+ private options;
16
+ constructor(projectPath: string, options: BuildVerifierOptions);
17
+ /** Run the full build-test-repair loop. */
18
+ verify(): Promise<BuildVerificationResult>;
19
+ private runInstall;
20
+ private runBuild;
21
+ private runStart;
22
+ private runHealthCheck;
23
+ parseErrors(output: string): BuildError[];
24
+ private runRepair;
25
+ private execCommand;
26
+ private waitForReady;
27
+ private resultStatus;
28
+ private hasPkgScript;
29
+ private detectPort;
30
+ private sleep;
31
+ }
32
+ export {};
@@ -0,0 +1,508 @@
1
+ // ============================================================
2
+ // Build Verifier — Build-Test-Repair loop for generated apps
3
+ // Runs npm install, npm run build, starts dev server, health checks.
4
+ // On failure, feeds errors to CodeAgent for repair, then retries.
5
+ // ============================================================
6
+ import { exec, spawn } from 'node:child_process';
7
+ import { readFile, writeFile, mkdir } from 'node:fs/promises';
8
+ import { join, dirname } from 'node:path';
9
+ import { randomUUID } from 'node:crypto';
10
+ import { CodeAgent } from './agents/code-agent.js';
11
+ import { MessageBus } from './message-bus.js';
12
+ // ── Build Verifier ───────────────────────────────────────────
13
+ export class BuildVerifier {
14
+ projectPath;
15
+ options;
16
+ constructor(projectPath, options) {
17
+ this.projectPath = projectPath;
18
+ this.options = {
19
+ maxRepairAttempts: options.maxRepairAttempts,
20
+ installTimeoutMs: options.installTimeoutMs ?? 120_000,
21
+ buildTimeoutMs: options.buildTimeoutMs ?? 120_000,
22
+ startStabilityMs: options.startStabilityMs ?? 15_000,
23
+ healthCheckTimeoutMs: options.healthCheckTimeoutMs ?? 10_000,
24
+ healthCheckRetries: options.healthCheckRetries ?? 3,
25
+ codeModel: options.codeModel,
26
+ onReconcileDeps: options.onReconcileDeps,
27
+ };
28
+ }
29
+ /** Run the full build-test-repair loop. */
30
+ async verify() {
31
+ const loopStart = Date.now();
32
+ const repairAttempts = [];
33
+ let lastInstall = null;
34
+ let lastBuild = null;
35
+ let lastStart = null;
36
+ let lastHealthCheck = null;
37
+ let allErrors = [];
38
+ for (let attempt = 0; attempt <= this.options.maxRepairAttempts; attempt++) {
39
+ allErrors = [];
40
+ // Step 1: npm install
41
+ lastInstall = await this.runInstall();
42
+ if (lastInstall.status === 'fail' || lastInstall.status === 'timeout') {
43
+ allErrors.push(...this.parseErrors(lastInstall.stderr + '\n' + lastInstall.stdout));
44
+ if (allErrors.length === 0) {
45
+ allErrors.push({ file: 'package.json', line: null, message: lastInstall.stderr.slice(0, 500) || 'npm install failed', category: 'dependency_error' });
46
+ }
47
+ if (attempt < this.options.maxRepairAttempts) {
48
+ const repairResult = await this.runRepair(attempt + 1, allErrors);
49
+ repairAttempts.push(repairResult);
50
+ if (!repairResult.repairSucceeded)
51
+ continue;
52
+ continue; // Retry from install
53
+ }
54
+ break;
55
+ }
56
+ // Step 2: npm run build
57
+ lastBuild = await this.runBuild();
58
+ if (lastBuild.status === 'fail' || lastBuild.status === 'timeout') {
59
+ allErrors.push(...this.parseErrors(lastBuild.stderr + '\n' + lastBuild.stdout));
60
+ if (allErrors.length === 0) {
61
+ allErrors.push({ file: 'unknown', line: null, message: lastBuild.stderr.slice(0, 500) || 'Build failed', category: 'other' });
62
+ }
63
+ if (attempt < this.options.maxRepairAttempts) {
64
+ const repairResult = await this.runRepair(attempt + 1, allErrors);
65
+ repairAttempts.push(repairResult);
66
+ continue; // Retry from install
67
+ }
68
+ break;
69
+ }
70
+ // Step 3: Start dev server and check stability
71
+ lastStart = await this.runStart();
72
+ if (lastStart.status === 'fail' || lastStart.status === 'timeout') {
73
+ allErrors.push(...this.parseErrors(lastStart.stderr + '\n' + lastStart.stdout));
74
+ if (allErrors.length === 0) {
75
+ allErrors.push({ file: 'unknown', line: null, message: lastStart.stderr.slice(0, 500) || 'Dev server failed to start', category: 'runtime_error' });
76
+ }
77
+ if (attempt < this.options.maxRepairAttempts) {
78
+ const repairResult = await this.runRepair(attempt + 1, allErrors);
79
+ repairAttempts.push(repairResult);
80
+ continue; // Retry from install
81
+ }
82
+ break;
83
+ }
84
+ // Step 4: Health check
85
+ const port = this.detectPort();
86
+ lastHealthCheck = await this.runHealthCheck(port);
87
+ // If all steps pass, we're done
88
+ if (lastInstall.status === 'pass' && lastBuild.status === 'pass') {
89
+ const status = repairAttempts.length > 0 ? 'repaired' : 'pass';
90
+ return {
91
+ status,
92
+ install: lastInstall,
93
+ build: lastBuild,
94
+ start: lastStart,
95
+ healthCheck: lastHealthCheck,
96
+ repairAttempts,
97
+ finalErrors: [],
98
+ totalDurationMs: Date.now() - loopStart,
99
+ };
100
+ }
101
+ }
102
+ // Max attempts exhausted or unrecoverable failure
103
+ return {
104
+ status: 'fail',
105
+ install: lastInstall,
106
+ build: lastBuild,
107
+ start: lastStart,
108
+ healthCheck: lastHealthCheck,
109
+ repairAttempts,
110
+ finalErrors: allErrors,
111
+ totalDurationMs: Date.now() - loopStart,
112
+ };
113
+ }
114
+ // ── Build Steps ────────────────────────────────────────────
115
+ async runInstall() {
116
+ const start = Date.now();
117
+ const result = await this.execCommand('npm install', this.options.installTimeoutMs);
118
+ return {
119
+ step: 'install',
120
+ status: this.resultStatus(result),
121
+ command: 'npm install',
122
+ stdout: result.stdout.slice(0, 5000),
123
+ stderr: result.stderr.slice(0, 5000),
124
+ durationMs: Date.now() - start,
125
+ exitCode: result.exitCode,
126
+ };
127
+ }
128
+ async runBuild() {
129
+ const start = Date.now();
130
+ // Check if build script exists
131
+ const hasBuild = await this.hasPkgScript('build');
132
+ if (!hasBuild) {
133
+ return {
134
+ step: 'build',
135
+ status: 'skip',
136
+ command: 'npm run build',
137
+ stdout: 'No build script in package.json',
138
+ stderr: '',
139
+ durationMs: 0,
140
+ exitCode: null,
141
+ };
142
+ }
143
+ const result = await this.execCommand('npm run build', this.options.buildTimeoutMs);
144
+ return {
145
+ step: 'build',
146
+ status: this.resultStatus(result),
147
+ command: 'npm run build',
148
+ stdout: result.stdout.slice(0, 5000),
149
+ stderr: result.stderr.slice(0, 5000),
150
+ durationMs: Date.now() - start,
151
+ exitCode: result.exitCode,
152
+ };
153
+ }
154
+ async runStart() {
155
+ const start = Date.now();
156
+ const hasDev = await this.hasPkgScript('dev');
157
+ const hasStart = await this.hasPkgScript('start');
158
+ const script = hasDev ? 'dev' : hasStart ? 'start' : null;
159
+ if (!script) {
160
+ return {
161
+ step: 'start',
162
+ status: 'skip',
163
+ command: 'npm run dev',
164
+ stdout: 'No dev or start script in package.json',
165
+ stderr: '',
166
+ durationMs: 0,
167
+ exitCode: null,
168
+ };
169
+ }
170
+ // Spawn the dev server and wait for stability
171
+ let serverProcess = null;
172
+ let stdout = '';
173
+ let stderr = '';
174
+ try {
175
+ serverProcess = spawn('npm', ['run', script], {
176
+ cwd: this.projectPath,
177
+ env: { ...process.env, NODE_ENV: 'development', BROWSER: 'none' },
178
+ stdio: ['ignore', 'pipe', 'pipe'],
179
+ detached: true,
180
+ });
181
+ serverProcess.stdout?.on('data', (data) => { stdout += data.toString(); });
182
+ serverProcess.stderr?.on('data', (data) => { stderr += data.toString(); });
183
+ // Wait for "Ready" indicator or stability period
184
+ const stable = await this.waitForReady(serverProcess, stdout, () => stdout, this.options.startStabilityMs);
185
+ return {
186
+ step: 'start',
187
+ status: stable ? 'pass' : 'fail',
188
+ command: `npm run ${script}`,
189
+ stdout: stdout.slice(0, 5000),
190
+ stderr: stderr.slice(0, 5000),
191
+ durationMs: Date.now() - start,
192
+ exitCode: stable ? 0 : 1,
193
+ };
194
+ }
195
+ catch (err) {
196
+ return {
197
+ step: 'start',
198
+ status: 'fail',
199
+ command: `npm run ${script}`,
200
+ stdout: stdout.slice(0, 5000),
201
+ stderr: (stderr + '\n' + (err instanceof Error ? err.message : String(err))).slice(0, 5000),
202
+ durationMs: Date.now() - start,
203
+ exitCode: 1,
204
+ };
205
+ }
206
+ finally {
207
+ // Kill the dev server process tree
208
+ if (serverProcess?.pid) {
209
+ try {
210
+ process.kill(-serverProcess.pid, 'SIGTERM');
211
+ }
212
+ catch { /* already dead */ }
213
+ // Force kill after 2s
214
+ setTimeout(() => {
215
+ try {
216
+ process.kill(-serverProcess.pid, 'SIGKILL');
217
+ }
218
+ catch { /* already dead */ }
219
+ }, 2000);
220
+ }
221
+ }
222
+ }
223
+ async runHealthCheck(port) {
224
+ const start = Date.now();
225
+ for (let retry = 0; retry < this.options.healthCheckRetries; retry++) {
226
+ try {
227
+ const controller = new AbortController();
228
+ const timeout = setTimeout(() => controller.abort(), this.options.healthCheckTimeoutMs);
229
+ const response = await fetch(`http://localhost:${port}/`, {
230
+ signal: controller.signal,
231
+ });
232
+ clearTimeout(timeout);
233
+ if (response.ok || response.status < 500) {
234
+ return {
235
+ step: 'health_check',
236
+ status: 'pass',
237
+ command: `GET http://localhost:${port}/`,
238
+ stdout: `HTTP ${response.status} ${response.statusText}`,
239
+ stderr: '',
240
+ durationMs: Date.now() - start,
241
+ exitCode: 0,
242
+ };
243
+ }
244
+ }
245
+ catch {
246
+ // Retry after delay
247
+ if (retry < this.options.healthCheckRetries - 1) {
248
+ await this.sleep(2000);
249
+ }
250
+ }
251
+ }
252
+ return {
253
+ step: 'health_check',
254
+ status: 'fail',
255
+ command: `GET http://localhost:${port}/`,
256
+ stdout: '',
257
+ stderr: `Health check failed after ${this.options.healthCheckRetries} retries`,
258
+ durationMs: Date.now() - start,
259
+ exitCode: 1,
260
+ };
261
+ }
262
+ // ── Error Parsing ──────────────────────────────────────────
263
+ parseErrors(output) {
264
+ const errors = [];
265
+ const lines = output.split('\n');
266
+ for (const line of lines) {
267
+ // TypeScript errors: file(line,col): error TS####: message
268
+ const tsMatch = line.match(/^(.+?)\((\d+),\d+\):\s*error\s+TS\d+:\s*(.+)$/);
269
+ if (tsMatch) {
270
+ errors.push({ file: tsMatch[1], line: parseInt(tsMatch[2], 10), message: tsMatch[3], category: 'type_error' });
271
+ continue;
272
+ }
273
+ // TypeScript errors (alternative format): file:line:col - error TS####: message
274
+ const tsMatch2 = line.match(/^(.+?):(\d+):\d+\s*-\s*error\s+TS\d+:\s*(.+)$/);
275
+ if (tsMatch2) {
276
+ errors.push({ file: tsMatch2[1], line: parseInt(tsMatch2[2], 10), message: tsMatch2[3], category: 'type_error' });
277
+ continue;
278
+ }
279
+ // Next.js / Webpack module not found
280
+ const moduleMatch = line.match(/Module not found:\s*(?:Can't resolve|Error:\s*Can't resolve)\s*'([^']+)'/);
281
+ if (moduleMatch) {
282
+ errors.push({ file: 'package.json', line: null, message: `Module not found: '${moduleMatch[1]}'`, category: 'module_not_found' });
283
+ continue;
284
+ }
285
+ // SyntaxError
286
+ const syntaxMatch = line.match(/SyntaxError:\s*(.+)/);
287
+ if (syntaxMatch) {
288
+ errors.push({ file: 'unknown', line: null, message: syntaxMatch[1], category: 'syntax_error' });
289
+ continue;
290
+ }
291
+ // npm ERR! with dependency info
292
+ const npmErrMatch = line.match(/npm ERR!\s+(.+)/);
293
+ if (npmErrMatch && (line.includes('peer dep') || line.includes('ERESOLVE') || line.includes('could not resolve'))) {
294
+ errors.push({ file: 'package.json', line: null, message: npmErrMatch[1], category: 'dependency_error' });
295
+ continue;
296
+ }
297
+ // Generic Error:
298
+ const errorMatch = line.match(/^Error:\s*(.+)/);
299
+ if (errorMatch) {
300
+ errors.push({ file: 'unknown', line: null, message: errorMatch[1], category: 'other' });
301
+ continue;
302
+ }
303
+ }
304
+ // Deduplicate by message
305
+ const seen = new Set();
306
+ return errors.filter(e => {
307
+ const key = `${e.file}:${e.line}:${e.message}`;
308
+ if (seen.has(key))
309
+ return false;
310
+ seen.add(key);
311
+ return true;
312
+ });
313
+ }
314
+ // ── Repair via CodeAgent ───────────────────────────────────
315
+ async runRepair(attempt, errors) {
316
+ const repairStart = Date.now();
317
+ const filesModified = [];
318
+ // Group errors by file
319
+ const errorsByFile = new Map();
320
+ for (const error of errors) {
321
+ const existing = errorsByFile.get(error.file) ?? [];
322
+ existing.push(error);
323
+ errorsByFile.set(error.file, existing);
324
+ }
325
+ // Read failing file contents
326
+ const fileContents = [];
327
+ for (const [filePath, fileErrors] of errorsByFile) {
328
+ if (filePath === 'unknown' || filePath === 'package.json') {
329
+ fileContents.push({ path: filePath, content: '', errors: fileErrors });
330
+ continue;
331
+ }
332
+ try {
333
+ const absPath = filePath.startsWith('/') ? filePath : join(this.projectPath, filePath);
334
+ const content = await readFile(absPath, 'utf-8');
335
+ fileContents.push({ path: filePath, content, errors: fileErrors });
336
+ }
337
+ catch {
338
+ fileContents.push({ path: filePath, content: '(file not readable)', errors: fileErrors });
339
+ }
340
+ }
341
+ // Build the repair goal
342
+ const errorSummary = fileContents.map(fc => {
343
+ const errLines = fc.errors.map(e => ` - ${e.category}: ${e.message}${e.line ? ` (line ${e.line})` : ''}`).join('\n');
344
+ return `File: ${fc.path}\nErrors:\n${errLines}\n${fc.content ? `Current content:\n\`\`\`\n${fc.content.slice(0, 3000)}\n\`\`\`` : ''}`;
345
+ }).join('\n\n---\n\n');
346
+ // Also read package.json for context
347
+ let pkgJson = '';
348
+ try {
349
+ pkgJson = await readFile(join(this.projectPath, 'package.json'), 'utf-8');
350
+ }
351
+ catch { /* no package.json */ }
352
+ const repairGoal = `Fix these build errors in a generated application. Return corrected files.
353
+
354
+ Attempt ${attempt} of ${this.options.maxRepairAttempts}.
355
+
356
+ Build errors found:
357
+ ${errorSummary}
358
+
359
+ ${pkgJson ? `package.json:\n\`\`\`json\n${pkgJson.slice(0, 2000)}\n\`\`\`` : ''}
360
+
361
+ Fix ALL errors. If a module is not found, either fix the import or add the dependency. If there are type errors, fix the types. Return the complete corrected file contents.`;
362
+ const messageBus = new MessageBus();
363
+ const codeAgent = new CodeAgent(messageBus, { model: this.options.codeModel });
364
+ try {
365
+ const result = await codeAgent.executeTask({
366
+ taskId: `repair-${attempt}-${randomUUID().slice(0, 8)}`,
367
+ goal: repairGoal,
368
+ constraints: ['Fix build errors only — do not add new features or refactor working code.'],
369
+ dependencies: [],
370
+ contextRefs: [],
371
+ });
372
+ if (result.status === 'failed') {
373
+ return {
374
+ attempt,
375
+ errors,
376
+ filesModified: [],
377
+ repairSucceeded: false,
378
+ durationMs: Date.now() - repairStart,
379
+ };
380
+ }
381
+ // Write repaired files to disk
382
+ let touchedPackageJson = false;
383
+ for (const artifact of result.artifacts) {
384
+ if (!artifact.path)
385
+ continue;
386
+ const absPath = join(this.projectPath, artifact.path);
387
+ try {
388
+ await mkdir(dirname(absPath), { recursive: true });
389
+ await writeFile(absPath, artifact.content, 'utf-8');
390
+ filesModified.push(artifact.path);
391
+ if (artifact.path === 'package.json' || artifact.path.endsWith('/package.json')) {
392
+ touchedPackageJson = true;
393
+ }
394
+ }
395
+ catch {
396
+ // Best-effort write
397
+ }
398
+ }
399
+ // Re-reconcile deps if package.json was touched
400
+ if (touchedPackageJson && this.options.onReconcileDeps) {
401
+ await this.options.onReconcileDeps();
402
+ }
403
+ return {
404
+ attempt,
405
+ errors,
406
+ filesModified,
407
+ repairSucceeded: filesModified.length > 0,
408
+ durationMs: Date.now() - repairStart,
409
+ };
410
+ }
411
+ catch {
412
+ return {
413
+ attempt,
414
+ errors,
415
+ filesModified: [],
416
+ repairSucceeded: false,
417
+ durationMs: Date.now() - repairStart,
418
+ };
419
+ }
420
+ }
421
+ // ── Process Helpers ────────────────────────────────────────
422
+ execCommand(command, timeoutMs) {
423
+ return new Promise((resolve) => {
424
+ exec(command, {
425
+ cwd: this.projectPath,
426
+ timeout: timeoutMs,
427
+ maxBuffer: 10 * 1024 * 1024, // 10MB
428
+ env: { ...process.env, NODE_ENV: 'development', CI: 'true' },
429
+ }, (error, stdout, stderr) => {
430
+ const timedOut = error?.killed === true;
431
+ resolve({
432
+ stdout: stdout ?? '',
433
+ stderr: stderr ?? '',
434
+ exitCode: timedOut ? null : (error?.code !== undefined ? (typeof error.code === 'number' ? error.code : 1) : 0),
435
+ timedOut,
436
+ });
437
+ });
438
+ });
439
+ }
440
+ waitForReady(proc, _initialStdout, getStdout, stabilityMs) {
441
+ return new Promise((resolve) => {
442
+ const readyPatterns = [
443
+ /ready/i,
444
+ /started.*on/i,
445
+ /listening.*on/i,
446
+ /compiled.*successfully/i,
447
+ /Local:\s+http/i,
448
+ ];
449
+ let resolved = false;
450
+ const done = (result) => {
451
+ if (!resolved) {
452
+ resolved = true;
453
+ resolve(result);
454
+ }
455
+ };
456
+ // Check for ready pattern in output
457
+ const checkInterval = setInterval(() => {
458
+ const output = getStdout();
459
+ if (readyPatterns.some(p => p.test(output))) {
460
+ clearInterval(checkInterval);
461
+ clearTimeout(stabilityTimeout);
462
+ done(true);
463
+ }
464
+ }, 500);
465
+ // Timeout: if no ready pattern found, consider it a failure
466
+ const stabilityTimeout = setTimeout(() => {
467
+ clearInterval(checkInterval);
468
+ // If process is still running, it might be okay (just no ready message)
469
+ done(!proc.killed && proc.exitCode === null);
470
+ }, stabilityMs);
471
+ // Process exit = failure
472
+ proc.on('exit', (code) => {
473
+ clearInterval(checkInterval);
474
+ clearTimeout(stabilityTimeout);
475
+ done(code === 0);
476
+ });
477
+ proc.on('error', () => {
478
+ clearInterval(checkInterval);
479
+ clearTimeout(stabilityTimeout);
480
+ done(false);
481
+ });
482
+ });
483
+ }
484
+ resultStatus(result) {
485
+ if (result.timedOut)
486
+ return 'timeout';
487
+ if (result.exitCode === 0)
488
+ return 'pass';
489
+ return 'fail';
490
+ }
491
+ async hasPkgScript(name) {
492
+ try {
493
+ const pkg = JSON.parse(await readFile(join(this.projectPath, 'package.json'), 'utf-8'));
494
+ return typeof pkg.scripts?.[name] === 'string';
495
+ }
496
+ catch {
497
+ return false;
498
+ }
499
+ }
500
+ detectPort() {
501
+ // Default Next.js port
502
+ return 3000;
503
+ }
504
+ sleep(ms) {
505
+ return new Promise(resolve => setTimeout(resolve, ms));
506
+ }
507
+ }
508
+ //# sourceMappingURL=build-verifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-verifier.js","sourceRoot":"","sources":["../../src/runtime/build-verifier.ts"],"names":[],"mappings":"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"}