maskweaver 0.8.11 → 0.8.13

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 (35) hide show
  1. package/dist/cli/install.js +26 -1
  2. package/dist/cli/install.js.map +1 -1
  3. package/dist/plugin/tools/weave.d.ts +13 -1
  4. package/dist/plugin/tools/weave.d.ts.map +1 -1
  5. package/dist/plugin/tools/weave.js +198 -1
  6. package/dist/plugin/tools/weave.js.map +1 -1
  7. package/dist/weave/change-artifacts.d.ts +9 -0
  8. package/dist/weave/change-artifacts.d.ts.map +1 -1
  9. package/dist/weave/change-artifacts.js +27 -0
  10. package/dist/weave/change-artifacts.js.map +1 -1
  11. package/dist/weave/phase-manager.d.ts.map +1 -1
  12. package/dist/weave/phase-manager.js +42 -1
  13. package/dist/weave/phase-manager.js.map +1 -1
  14. package/dist/weave/stages/build.d.ts +14 -0
  15. package/dist/weave/stages/build.d.ts.map +1 -0
  16. package/dist/weave/stages/build.js +495 -0
  17. package/dist/weave/stages/build.js.map +1 -0
  18. package/dist/weave/stages/intake.d.ts +21 -1
  19. package/dist/weave/stages/intake.d.ts.map +1 -1
  20. package/dist/weave/stages/intake.js +111 -0
  21. package/dist/weave/stages/intake.js.map +1 -1
  22. package/dist/weave/stages/map.d.ts +13 -0
  23. package/dist/weave/stages/map.d.ts.map +1 -0
  24. package/dist/weave/stages/map.js +512 -0
  25. package/dist/weave/stages/map.js.map +1 -0
  26. package/dist/weave/stages/openspec.d.ts +17 -0
  27. package/dist/weave/stages/openspec.d.ts.map +1 -0
  28. package/dist/weave/stages/openspec.js +215 -0
  29. package/dist/weave/stages/openspec.js.map +1 -0
  30. package/dist/weave/stages/plan.d.ts.map +1 -1
  31. package/dist/weave/stages/plan.js +53 -1
  32. package/dist/weave/stages/plan.js.map +1 -1
  33. package/dist/weave/types.d.ts +145 -0
  34. package/dist/weave/types.d.ts.map +1 -1
  35. package/package.json +1 -1
@@ -0,0 +1,495 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
4
+ import { stringify as stringifyYaml } from 'yaml';
5
+ import { getBuildStateDir, getBuildStatePath } from '../change-artifacts.js';
6
+ import { lightReMap } from './map.js';
7
+ import { updateOpenSpecTasks } from './openspec.js';
8
+ import { getEffectiveGdcConfig, runGdcMachineCommand } from '../gdc.js';
9
+ export function generateBuildId() {
10
+ const now = new Date();
11
+ const dateStr = now.toISOString().slice(0, 10).replace(/-/g, '');
12
+ const rand = Math.random().toString(36).slice(2, 6);
13
+ return `build-${dateStr}-${rand}`;
14
+ }
15
+ export function generateBuildState(buildId, planName, maxRetries) {
16
+ return {
17
+ buildId,
18
+ planName,
19
+ status: 'running',
20
+ createdAt: new Date().toISOString(),
21
+ updatedAt: new Date().toISOString(),
22
+ maxRetries,
23
+ globalRetryCount: 0,
24
+ noProgressCount: 0,
25
+ tasks: [],
26
+ };
27
+ }
28
+ async function saveBuildState(basePath, state) {
29
+ const dir = getBuildStateDir(basePath);
30
+ await mkdir(dir, { recursive: true });
31
+ const content = stringifyYaml({
32
+ build_id: state.buildId,
33
+ plan_name: state.planName,
34
+ status: state.status,
35
+ created_at: state.createdAt,
36
+ updated_at: new Date().toISOString(),
37
+ started_at: state.startedAt,
38
+ completed_at: state.completedAt,
39
+ current_phase_id: state.currentPhaseId,
40
+ current_task_id: state.currentTaskId,
41
+ max_retries: state.maxRetries,
42
+ global_retry_count: state.globalRetryCount,
43
+ no_progress_count: state.noProgressCount,
44
+ tasks: state.tasks.map(t => ({
45
+ task_id: t.taskId,
46
+ phase_id: t.phaseId,
47
+ status: t.status,
48
+ retry_count: t.retryCount,
49
+ max_retries: t.maxRetries,
50
+ last_error: t.lastError,
51
+ last_failure_fingerprint: t.lastFailureFingerprint,
52
+ started_at: t.startedAt,
53
+ completed_at: t.completedAt,
54
+ mask_used: t.maskUsed,
55
+ agent_tier: t.agentTier,
56
+ commit_hash: t.commitHash,
57
+ })),
58
+ escalation_reason: state.escalationReason,
59
+ summary: state.summary,
60
+ });
61
+ await writeFile(getBuildStatePath(basePath, state.buildId), content, 'utf-8');
62
+ }
63
+ export async function loadBuildState(basePath, buildId) {
64
+ const filePath = getBuildStatePath(basePath, buildId);
65
+ if (!fs.existsSync(filePath))
66
+ return null;
67
+ try {
68
+ const { parse } = await import('yaml');
69
+ const raw = await readFile(filePath, 'utf-8');
70
+ const parsed = parse(raw);
71
+ if (!parsed)
72
+ return null;
73
+ return {
74
+ buildId: parsed.build_id || buildId,
75
+ planName: parsed.plan_name || '',
76
+ status: parsed.status || 'running',
77
+ createdAt: parsed.created_at || '',
78
+ updatedAt: parsed.updated_at || '',
79
+ startedAt: parsed.started_at,
80
+ completedAt: parsed.completed_at,
81
+ currentPhaseId: parsed.current_phase_id,
82
+ currentTaskId: parsed.current_task_id,
83
+ maxRetries: parsed.max_retries || 3,
84
+ globalRetryCount: parsed.global_retry_count || 0,
85
+ noProgressCount: parsed.no_progress_count || 0,
86
+ tasks: (parsed.tasks || []).map((t) => ({
87
+ taskId: t.task_id,
88
+ phaseId: t.phase_id,
89
+ status: t.status || 'pending',
90
+ retryCount: t.retry_count || 0,
91
+ maxRetries: t.max_retries || 3,
92
+ lastError: t.last_error,
93
+ lastFailureFingerprint: t.last_failure_fingerprint,
94
+ startedAt: t.started_at,
95
+ completedAt: t.completed_at,
96
+ maskUsed: t.mask_used,
97
+ agentTier: t.agent_tier,
98
+ commitHash: t.commit_hash,
99
+ })),
100
+ escalationReason: parsed.escalation_reason,
101
+ summary: parsed.summary,
102
+ };
103
+ }
104
+ catch {
105
+ return null;
106
+ }
107
+ }
108
+ function pickNextTask(plan, state, phaseFilter) {
109
+ for (const phase of plan.phases) {
110
+ if (phase.status === 'completed' || phase.status === 'blocked')
111
+ continue;
112
+ if (phaseFilter && phaseFilter.length > 0 && !phaseFilter.includes(phase.id))
113
+ continue;
114
+ const phaseDepsMet = !phase.dependsOn || phase.dependsOn.every(depId => {
115
+ const depPhase = plan.phases.find(p => p.id === depId);
116
+ return depPhase?.status === 'completed';
117
+ });
118
+ if (!phaseDepsMet)
119
+ continue;
120
+ for (const task of phase.tasks) {
121
+ if (task.status === 'passed')
122
+ continue;
123
+ const taskState = state.tasks.find(t => t.taskId === task.id && t.phaseId === phase.id);
124
+ if (taskState && taskState.status === 'passed')
125
+ continue;
126
+ if (taskState && taskState.status === 'escalated')
127
+ continue;
128
+ const taskDepsMet = !task.dependsOn || task.dependsOn.every(depId => {
129
+ const depTask = phase.tasks.find(t => t.id === depId);
130
+ return depTask?.status === 'passed';
131
+ });
132
+ if (!taskDepsMet)
133
+ continue;
134
+ return { phase, task };
135
+ }
136
+ }
137
+ return null;
138
+ }
139
+ function isPlanContractViolated(task, plan) {
140
+ if (!plan.structuralChanges || plan.structuralChanges.length === 0)
141
+ return false;
142
+ const agreedChanges = plan.structuralChanges.filter(sc => sc.agreed);
143
+ if (agreedChanges.length === 0)
144
+ return false;
145
+ if (!task.files || task.files.length === 0)
146
+ return false;
147
+ // Violation: task touches files NOT covered by any agreed structural change
148
+ const agreedFiles = new Set();
149
+ for (const sc of agreedChanges) {
150
+ for (const file of sc.affectedFiles)
151
+ agreedFiles.add(file);
152
+ }
153
+ for (const taskFile of task.files) {
154
+ const isCovered = Array.from(agreedFiles).some(af => taskFile.includes(af) || af.includes(taskFile));
155
+ if (!isCovered)
156
+ return true;
157
+ }
158
+ return false;
159
+ }
160
+ async function executeTask(task, phase, plan, orchestrator, basePath, onEvent) {
161
+ const mask = orchestrator.selectMaskForTask(task);
162
+ const taskType = orchestrator.detectTaskType(task.name);
163
+ const agentTier = selectAgentTier(task, taskType);
164
+ const instructions = generateBrief(task, phase, plan, agentTier, mask);
165
+ return { success: true, instructions };
166
+ }
167
+ function selectAgentTier(task, _taskType) {
168
+ const checkDesc = (task.testCase || task.name).toLowerCase();
169
+ const isComplex = /refactor|migration|auth|performance|architect|security|complex|리팩토링|마이그레이션|인증|성능|보안|복잡/i.test(checkDesc);
170
+ const isStandard = /component|api|endpoint|test|database|hook|context|컴포넌트|api|엔드포인트|테스트|데이터베이스|훅|컨텍스트/i.test(checkDesc);
171
+ if (isComplex)
172
+ return 'dummy-premium';
173
+ if (isStandard)
174
+ return 'dummy-human';
175
+ return 'dummy-flash';
176
+ }
177
+ function generateBrief(task, phase, plan, agentTier, mask) {
178
+ const lines = [];
179
+ lines.push(`---`);
180
+ lines.push(`## Task Brief: ${task.name} (${task.id})`);
181
+ lines.push(``);
182
+ lines.push(`- **Phase**: ${phase.id} - ${phase.name}`);
183
+ lines.push(`- **Agent**: ${agentTier}`);
184
+ lines.push(`- **Mask**: ${mask || 'default'}`);
185
+ lines.push(`- **Plan**: ${plan.planName || plan.projectName}`);
186
+ lines.push(``);
187
+ lines.push(`### Goal`);
188
+ lines.push(task.testCase || phase.doneWhen || 'Complete the implementation');
189
+ lines.push(``);
190
+ if (task.files && task.files.length > 0) {
191
+ lines.push(`### Target Files`);
192
+ for (const f of task.files)
193
+ lines.push(`- ${f}`);
194
+ lines.push(``);
195
+ }
196
+ if (task.nodeIds && task.nodeIds.length > 0) {
197
+ lines.push(`### GDC Nodes`);
198
+ for (const n of task.nodeIds)
199
+ lines.push(`- ${n}`);
200
+ lines.push(``);
201
+ }
202
+ if (task.verify && task.verify.length > 0) {
203
+ lines.push(`### Verification`);
204
+ for (const v of task.verify)
205
+ lines.push(`- [${v.kind}] ${v.value}`);
206
+ lines.push(``);
207
+ }
208
+ if (plan.structuralChanges && plan.structuralChanges.length > 0) {
209
+ const agreed = plan.structuralChanges.filter(sc => sc.agreed);
210
+ if (agreed.length > 0) {
211
+ lines.push(`### ⚠️ Agreed Structural Changes`);
212
+ for (const sc of agreed) {
213
+ lines.push(`- **${sc.area}**: ${sc.proposedChange}`);
214
+ }
215
+ lines.push(``);
216
+ }
217
+ }
218
+ lines.push(`### Plan Context`);
219
+ lines.push(`${plan.vision}`);
220
+ lines.push(``);
221
+ lines.push(`After implementation, run verification: \`weave command=build-resume buildId="<CURRENT_BUILD>"\``);
222
+ lines.push(`---`);
223
+ return lines.join('\n');
224
+ }
225
+ // Remove dead code: generateTaskBrief was duplicated inline above
226
+ async function runVerification(basePath, task) {
227
+ const checks = [];
228
+ let allPassed = true;
229
+ // 1. TypeScript / build check
230
+ try {
231
+ const tsConfigPath = path.join(basePath, 'tsconfig.json');
232
+ if (fs.existsSync(tsConfigPath)) {
233
+ const { execFile } = await import('node:child_process');
234
+ const { promisify } = await import('node:util');
235
+ const execAsync = promisify(execFile);
236
+ try {
237
+ await execAsync('npx', ['tsc', '--noEmit'], { cwd: basePath, timeout: 60_000, windowsHide: true });
238
+ checks.push('✅ TypeScript type check passed');
239
+ }
240
+ catch (e) {
241
+ checks.push(`❌ TypeScript type check failed: ${(e.stderr || e.message || '').slice(0, 200)}`);
242
+ allPassed = false;
243
+ }
244
+ }
245
+ else {
246
+ checks.push('⏭️ TypeScript check skipped (no tsconfig.json)');
247
+ }
248
+ }
249
+ catch {
250
+ checks.push('⏭️ TypeScript check failed to run');
251
+ }
252
+ // 2. GDC sync
253
+ const gdc = getEffectiveGdcConfig(basePath);
254
+ if (gdc.enabled) {
255
+ try {
256
+ const syncResult = await runGdcMachineCommand({ basePath, command: 'sync', timeoutMs: 30_000, config: gdc });
257
+ if (syncResult.exitCode === 0) {
258
+ checks.push('✅ GDC sync passed');
259
+ }
260
+ else {
261
+ checks.push('❌ GDC sync failed');
262
+ allPassed = false;
263
+ }
264
+ }
265
+ catch {
266
+ checks.push('⏭️ GDC sync error');
267
+ }
268
+ }
269
+ // 3. Task-specific verification
270
+ if (task.verify) {
271
+ for (const v of task.verify) {
272
+ if (v.kind === 'checklist') {
273
+ checks.push(`⏭️ Manual check: ${v.value}`);
274
+ }
275
+ }
276
+ }
277
+ return {
278
+ passed: allPassed,
279
+ details: checks.join('\n'),
280
+ };
281
+ }
282
+ async function autoDiagnose(error) {
283
+ const lower = error.toLowerCase();
284
+ if (lower.includes('type') && (lower.includes('not assignable') || lower.includes('type mismatch'))) {
285
+ return 'Type error detected. Check type definitions and ensure type consistency across changed files.';
286
+ }
287
+ if (lower.includes('cannot find module') || lower.includes('module not found')) {
288
+ return 'Missing module import. Verify the import path and ensure the module is installed.';
289
+ }
290
+ if (lower.includes('gdc') && lower.includes('not found')) {
291
+ return 'GDC binary not available. Run `gdc init` or check .gdc configuration.';
292
+ }
293
+ if (lower.includes('build') || lower.includes('compile')) {
294
+ return 'Build error. Check for syntax errors, missing exports, or incorrect configuration.';
295
+ }
296
+ return `Task failed. Diagnose the root cause and fix accordingly. Error: ${error.slice(0, 300)}`;
297
+ }
298
+ function generateSummary(state, plan) {
299
+ const lines = [];
300
+ const totalTasks = plan.phases.reduce((sum, p) => sum + p.tasks.length, 0);
301
+ const completedTasks = state.tasks.filter(t => t.status === 'passed').length;
302
+ const failedTasks = state.tasks.filter(t => t.status === 'failed').length;
303
+ const escalatedTasks = state.tasks.filter(t => t.status === 'escalated').length;
304
+ lines.push(`## Build Summary: ${state.buildId}`);
305
+ lines.push(``);
306
+ lines.push(`- Status: ${state.status}`);
307
+ lines.push(`- Phases: ${plan.phases.filter(p => p.status === 'completed').length}/${plan.phases.length}`);
308
+ lines.push(`- Tasks: ${completedTasks}/${totalTasks} completed, ${failedTasks} failed, ${escalatedTasks} escalated`);
309
+ lines.push(`- Retries: ${state.globalRetryCount}`);
310
+ const durationEnd = state.completedAt ? new Date(state.completedAt).getTime() : Date.now();
311
+ const durationSec = state.startedAt ? Math.round((durationEnd - new Date(state.startedAt).getTime()) / 1000) : 0;
312
+ lines.push(`- Duration: ${durationSec}s`);
313
+ lines.push(``);
314
+ if (state.escalationReason) {
315
+ lines.push(`### ⚠️ Escalated`);
316
+ lines.push(state.escalationReason);
317
+ lines.push(``);
318
+ }
319
+ if (failedTasks > 0 || escalatedTasks > 0) {
320
+ lines.push(`### Failed / Escalated Tasks`);
321
+ lines.push(``);
322
+ for (const t of state.tasks) {
323
+ if (t.status === 'failed' || t.status === 'escalated') {
324
+ lines.push(`- **${t.taskId}** (${t.status}): ${t.lastError || 'Unknown'}`);
325
+ }
326
+ }
327
+ lines.push(``);
328
+ }
329
+ if (state.status === 'completed') {
330
+ lines.push(`✅ Build completed successfully.`);
331
+ }
332
+ else if (state.status === 'blocked') {
333
+ lines.push(`🔄 Build blocked. Review escalated tasks and run \`/weave build --resume ${state.buildId}\`.`);
334
+ }
335
+ else if (state.status === 'failed') {
336
+ lines.push(`❌ Build failed. Review errors and rerun.`);
337
+ }
338
+ return lines.join('\n');
339
+ }
340
+ export async function executeBuildLoop(options) {
341
+ const { plan, state, orchestrator, basePath, onEvent } = options;
342
+ const onMsg = options.onMessage || (() => { });
343
+ const startTime = Date.now();
344
+ const phaseFilter = options.phaseIds || undefined;
345
+ state.startedAt = state.startedAt || new Date().toISOString();
346
+ let iterationsWithoutProgress = 0;
347
+ const maxIterationsWithoutProgress = options.maxRetries || 3;
348
+ const instructions = [];
349
+ while (state.status === 'running') {
350
+ const next = pickNextTask(plan, state, phaseFilter);
351
+ if (!next) {
352
+ // Check if all tasks completed
353
+ const allPassed = plan.phases.every(p => p.tasks.every(t => {
354
+ const ts = state.tasks.find(s => s.taskId === t.id && s.phaseId === p.id);
355
+ return ts?.status === 'passed' || t.status === 'passed';
356
+ }));
357
+ if (allPassed) {
358
+ state.status = 'completed';
359
+ onMsg('✅ All tasks completed');
360
+ }
361
+ else {
362
+ state.status = 'blocked';
363
+ state.escalationReason = 'No runnable task found — check dependencies';
364
+ onMsg('⛔ No runnable task found');
365
+ }
366
+ break;
367
+ }
368
+ const { phase, task } = next;
369
+ state.currentPhaseId = phase.id;
370
+ state.currentTaskId = task.id;
371
+ // Check plan contract violation
372
+ if (isPlanContractViolated(task, plan)) {
373
+ state.status = 'blocked';
374
+ state.escalationReason = `Task ${task.id} violates agreed plan contract (structural changes)`;
375
+ onEvent?.({ type: 'build_task_escalated', phaseId: phase.id, taskId: task.id, reason: state.escalationReason });
376
+ onMsg(`⛔ Escalated: ${state.escalationReason}`);
377
+ break;
378
+ }
379
+ const taskMask = orchestrator.selectMaskForTask(task);
380
+ const taskType = orchestrator.detectTaskType(task.name);
381
+ const taskAgentTier = selectAgentTier(task, taskType);
382
+ const existingState = state.tasks.find(t => t.taskId === task.id && t.phaseId === phase.id);
383
+ if (!existingState) {
384
+ state.tasks.push({
385
+ taskId: task.id,
386
+ phaseId: phase.id,
387
+ status: 'in_progress',
388
+ retryCount: 0,
389
+ maxRetries: taskAgentTier === 'dummy-premium' ? maxIterationsWithoutProgress + 1 : maxIterationsWithoutProgress,
390
+ startedAt: new Date().toISOString(),
391
+ maskUsed: taskMask || undefined,
392
+ agentTier: taskAgentTier,
393
+ });
394
+ }
395
+ onEvent?.({ type: 'task_started', phaseId: phase.id, taskId: task.id });
396
+ onMsg(`▶️ Running ${task.id} (${taskAgentTier})`);
397
+ // Execute task — generate brief for AI agent
398
+ const taskStatus = state.tasks.find(t => t.taskId === task.id && t.phaseId === phase.id);
399
+ const taskResult = await executeTask(task, phase, plan, orchestrator, basePath, onEvent);
400
+ if (taskStatus && taskResult.instructions) {
401
+ taskStatus.lastError = taskResult.instructions;
402
+ }
403
+ if (taskResult.instructions) {
404
+ instructions.push(taskResult.instructions);
405
+ }
406
+ if (taskResult.success) {
407
+ // Verify
408
+ const verification = await runVerification(basePath, task);
409
+ if (verification.passed) {
410
+ // Mark task as passed
411
+ task.status = 'passed';
412
+ const ts = state.tasks.find(t => t.taskId === task.id && t.phaseId === phase.id);
413
+ if (ts) {
414
+ ts.status = 'passed';
415
+ ts.completedAt = new Date().toISOString();
416
+ ts.commitHash = taskResult.commitHash;
417
+ }
418
+ // Update OpenSpec tasks
419
+ try {
420
+ if (plan.openspecDir) {
421
+ const changeId = plan.planName || 'main';
422
+ await updateOpenSpecTasks(basePath, changeId, phase.id, task.id, true);
423
+ }
424
+ }
425
+ catch { }
426
+ // GDC sync per task
427
+ try {
428
+ // Verification already ran GDC sync (no need to repeat)
429
+ await lightReMap(basePath);
430
+ }
431
+ catch { }
432
+ phase.status = phase.tasks.every(t => t.status === 'passed') ? 'completed' : 'in_progress';
433
+ onEvent?.({ type: 'task_passed', phaseId: phase.id, taskId: task.id });
434
+ onMsg(`✅ ${task.id} passed`);
435
+ iterationsWithoutProgress = 0;
436
+ }
437
+ else {
438
+ handleTaskFailure(task, phase, state, verification.details, iterationsWithoutProgress);
439
+ iterationsWithoutProgress++;
440
+ const ts2 = state.tasks.find(t => t.taskId === task.id && t.phaseId === phase.id);
441
+ onMsg(`❌ ${task.id} failed (attempt ${ts2?.retryCount || 1}/${ts2?.maxRetries || maxIterationsWithoutProgress})`);
442
+ }
443
+ }
444
+ else {
445
+ handleTaskFailure(task, phase, state, taskResult.error || 'Execution failed', iterationsWithoutProgress);
446
+ iterationsWithoutProgress++;
447
+ onMsg(`❌ ${task.id} failed: ${(taskResult.error || '').slice(0, 100)}`);
448
+ }
449
+ // Check no-progress limit
450
+ if (iterationsWithoutProgress >= maxIterationsWithoutProgress) {
451
+ state.status = 'blocked';
452
+ state.escalationReason = `No progress after ${iterationsWithoutProgress} consecutive task failures. Last: ${state.tasks.filter(t => t.status === 'failed').pop()?.taskId || 'unknown'}`;
453
+ onMsg(`⛔ Blocked: ${state.escalationReason}`);
454
+ break;
455
+ }
456
+ // Save state after each task
457
+ state.updatedAt = new Date().toISOString();
458
+ await saveBuildState(basePath, state);
459
+ }
460
+ state.completedAt = new Date().toISOString();
461
+ state.summary = generateSummary(state, plan);
462
+ await saveBuildState(basePath, state);
463
+ return {
464
+ success: state.status === 'completed',
465
+ buildId: state.buildId,
466
+ planName: plan.planName || plan.projectName,
467
+ phasesCompleted: plan.phases.filter(p => p.status === 'completed').length,
468
+ phasesTotal: plan.phases.length,
469
+ tasksCompleted: state.tasks.filter(t => t.status === 'passed').length,
470
+ tasksFailed: state.tasks.filter(t => t.status === 'failed').length,
471
+ tasksEscalated: state.tasks.filter(t => t.status === 'escalated').length,
472
+ verificationPassed: state.status === 'completed',
473
+ durationMs: Date.now() - startTime,
474
+ completedAt: new Date().toISOString(),
475
+ summary: state.summary || '',
476
+ };
477
+ }
478
+ function handleTaskFailure(task, phase, state, errorDetails, iterationCount) {
479
+ task.status = 'failed';
480
+ task.retryCount++;
481
+ task.lastError = errorDetails.slice(0, 500);
482
+ const ts = state.tasks.find(t => t.taskId === task.id && t.phaseId === phase.id);
483
+ if (ts) {
484
+ ts.status = ts.retryCount >= ts.maxRetries ? 'escalated' : 'failed';
485
+ ts.retryCount++;
486
+ ts.lastError = errorDetails.slice(0, 500);
487
+ if (ts.status === 'escalated') {
488
+ state.status = 'blocked';
489
+ state.escalationReason = `Task ${task.id} exceeded max retries (${ts.maxRetries}). Last error: ${errorDetails.slice(0, 200)}`;
490
+ }
491
+ }
492
+ state.globalRetryCount++;
493
+ state.noProgressCount = iterationCount;
494
+ }
495
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/weave/stages/build.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * Document analysis and question generation.
5
5
  * Uses Maskweaver memory for semantic search of past similar projects.
6
6
  */
7
- import type { WeaveEvent, EnvironmentAnalysis } from '../types.js';
7
+ import type { WeaveEvent, EnvironmentAnalysis, MapResult, StructuralChange, ConsentPrompt } from '../types.js';
8
8
  export interface IntakeOptions {
9
9
  docsPath: string;
10
10
  onEvent?: (event: WeaveEvent) => void;
@@ -25,6 +25,9 @@ export interface IntakeResult {
25
25
  questions: Question[];
26
26
  similarProjects?: string[];
27
27
  environment?: EnvironmentAnalysis;
28
+ codebaseMapPath?: string;
29
+ structuralChanges?: StructuralChange[];
30
+ consentPrompts?: ConsentPrompt[];
28
31
  }
29
32
  export interface DocumentAnalysis {
30
33
  path: string;
@@ -39,6 +42,23 @@ export interface Question {
39
42
  options?: string[];
40
43
  required: boolean;
41
44
  }
45
+ export declare function injectMapContext(map: MapResult | null, features: string[]): Promise<{
46
+ structuralChanges: StructuralChange[];
47
+ consentPrompts: ConsentPrompt[];
48
+ }>;
49
+ export interface InterviewOptions {
50
+ docsPath: string;
51
+ basePath?: string;
52
+ mapResult?: MapResult | null;
53
+ onEvent?: (event: WeaveEvent) => void;
54
+ }
55
+ export interface InterviewResult {
56
+ intake: IntakeResult;
57
+ agreedStructuralChanges: StructuralChange[];
58
+ userAnswers: Record<string, string>;
59
+ satisfied: boolean;
60
+ }
61
+ export declare function interview(options: InterviewOptions): Promise<InterviewResult>;
42
62
  export interface IntakeWithAnalysisOptions extends IntakeOptions {
43
63
  /** Skip environment analysis for faster intake */
44
64
  skipEnvironmentAnalysis?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"intake.d.ts","sourceRoot":"","sources":["../../../src/weave/stages/intake.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAOnE,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,qBAAqB,EAAE;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,mBAAmB,CAAC;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACrB;AA4SD,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC5D,kDAAkD;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,yBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmFtG"}
1
+ {"version":3,"file":"intake.d.ts","sourceRoot":"","sources":["../../../src/weave/stages/intake.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ/G,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IACzB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,qBAAqB,EAAE;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACvC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACrB;AA4SD,wBAAsB,gBAAgB,CAClC,GAAG,EAAE,SAAS,GAAG,IAAI,EACrB,QAAQ,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC;IAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IAAC,cAAc,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC,CA2CrF;AAiDD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,uBAAuB,EAAE,gBAAgB,EAAE,CAAC;IAC5C,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoCnF;AAMD,MAAM,WAAW,yBAA0B,SAAQ,aAAa;IAC5D,kDAAkD;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,yBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0FtG"}