specweave 0.30.11 → 0.30.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +12 -2
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/helpers/init/living-docs-preflight.d.ts +5 -1
- package/dist/src/cli/helpers/init/living-docs-preflight.d.ts.map +1 -1
- package/dist/src/cli/helpers/init/living-docs-preflight.js +80 -28
- package/dist/src/cli/helpers/init/living-docs-preflight.js.map +1 -1
- package/dist/src/cli/workers/brownfield-worker.d.ts +13 -0
- package/dist/src/cli/workers/brownfield-worker.d.ts.map +1 -1
- package/dist/src/cli/workers/brownfield-worker.js +154 -0
- package/dist/src/cli/workers/brownfield-worker.js.map +1 -1
- package/dist/src/cli/workers/living-docs-worker.js +272 -11
- package/dist/src/cli/workers/living-docs-worker.js.map +1 -1
- package/dist/src/core/background/brownfield-launcher.d.ts +2 -1
- package/dist/src/core/background/brownfield-launcher.d.ts.map +1 -1
- package/dist/src/core/background/brownfield-launcher.js.map +1 -1
- package/dist/src/core/background/types.d.ts +10 -2
- package/dist/src/core/background/types.d.ts.map +1 -1
- package/dist/src/core/discrepancy/brownfield-types.d.ts +3 -1
- package/dist/src/core/discrepancy/brownfield-types.d.ts.map +1 -1
- package/dist/src/core/living-docs/feature-archiver.d.ts +39 -0
- package/dist/src/core/living-docs/feature-archiver.d.ts.map +1 -1
- package/dist/src/core/living-docs/feature-archiver.js +197 -0
- package/dist/src/core/living-docs/feature-archiver.js.map +1 -1
- package/dist/src/core/llm/availability-messages.d.ts +33 -0
- package/dist/src/core/llm/availability-messages.d.ts.map +1 -0
- package/dist/src/core/llm/availability-messages.js +170 -0
- package/dist/src/core/llm/availability-messages.js.map +1 -0
- package/dist/src/core/llm/index.d.ts +34 -0
- package/dist/src/core/llm/index.d.ts.map +1 -0
- package/dist/src/core/llm/index.js +35 -0
- package/dist/src/core/llm/index.js.map +1 -0
- package/dist/src/core/llm/provider-factory.d.ts +48 -0
- package/dist/src/core/llm/provider-factory.d.ts.map +1 -0
- package/dist/src/core/llm/provider-factory.js +274 -0
- package/dist/src/core/llm/provider-factory.js.map +1 -0
- package/dist/src/core/llm/providers/anthropic-provider.d.ts +66 -0
- package/dist/src/core/llm/providers/anthropic-provider.d.ts.map +1 -0
- package/dist/src/core/llm/providers/anthropic-provider.js +195 -0
- package/dist/src/core/llm/providers/anthropic-provider.js.map +1 -0
- package/dist/src/core/llm/providers/azure-openai-provider.d.ts +47 -0
- package/dist/src/core/llm/providers/azure-openai-provider.d.ts.map +1 -0
- package/dist/src/core/llm/providers/azure-openai-provider.js +116 -0
- package/dist/src/core/llm/providers/azure-openai-provider.js.map +1 -0
- package/dist/src/core/llm/providers/bedrock-provider.d.ts +44 -0
- package/dist/src/core/llm/providers/bedrock-provider.d.ts.map +1 -0
- package/dist/src/core/llm/providers/bedrock-provider.js +149 -0
- package/dist/src/core/llm/providers/bedrock-provider.js.map +1 -0
- package/dist/src/core/llm/providers/claude-code-provider.d.ts +115 -0
- package/dist/src/core/llm/providers/claude-code-provider.d.ts.map +1 -0
- package/dist/src/core/llm/providers/claude-code-provider.js +379 -0
- package/dist/src/core/llm/providers/claude-code-provider.js.map +1 -0
- package/dist/src/core/llm/providers/ollama-provider.d.ts +40 -0
- package/dist/src/core/llm/providers/ollama-provider.d.ts.map +1 -0
- package/dist/src/core/llm/providers/ollama-provider.js +116 -0
- package/dist/src/core/llm/providers/ollama-provider.js.map +1 -0
- package/dist/src/core/llm/providers/openai-provider.d.ts +44 -0
- package/dist/src/core/llm/providers/openai-provider.d.ts.map +1 -0
- package/dist/src/core/llm/providers/openai-provider.js +119 -0
- package/dist/src/core/llm/providers/openai-provider.js.map +1 -0
- package/dist/src/core/llm/providers/vertex-ai-provider.d.ts +46 -0
- package/dist/src/core/llm/providers/vertex-ai-provider.d.ts.map +1 -0
- package/dist/src/core/llm/providers/vertex-ai-provider.js +123 -0
- package/dist/src/core/llm/providers/vertex-ai-provider.js.map +1 -0
- package/dist/src/core/llm/types.d.ts +181 -0
- package/dist/src/core/llm/types.d.ts.map +1 -0
- package/dist/src/core/llm/types.js +56 -0
- package/dist/src/core/llm/types.js.map +1 -0
- package/dist/src/importers/item-converter.d.ts.map +1 -1
- package/dist/src/importers/item-converter.js +69 -12
- package/dist/src/importers/item-converter.js.map +1 -1
- package/dist/src/living-docs/enterprise-analyzer.d.ts +160 -0
- package/dist/src/living-docs/enterprise-analyzer.d.ts.map +1 -0
- package/dist/src/living-docs/enterprise-analyzer.js +836 -0
- package/dist/src/living-docs/enterprise-analyzer.js.map +1 -0
- package/dist/src/living-docs/fs-id-allocator.d.ts +5 -0
- package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
- package/dist/src/living-docs/fs-id-allocator.js +12 -5
- package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
- package/package.json +1 -1
- package/plugins/specweave/commands/specweave-archive.md +69 -2
|
@@ -15,6 +15,7 @@ import * as path from 'node:path';
|
|
|
15
15
|
import { updateBrownfieldProgress, completeBrownfieldJob, failBrownfieldJob, } from '../../core/background/index.js';
|
|
16
16
|
import { BrownfieldDiscrepancyManager, } from '../../core/discrepancy/index.js';
|
|
17
17
|
import { consoleLogger } from '../../utils/logger.js';
|
|
18
|
+
import { createProvider } from '../../core/llm/provider-factory.js';
|
|
18
19
|
/**
|
|
19
20
|
* Brownfield Analysis Worker
|
|
20
21
|
*/
|
|
@@ -37,6 +38,41 @@ export class BrownfieldAnalysisWorker {
|
|
|
37
38
|
docs: [],
|
|
38
39
|
};
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Initialize LLM provider for deep analysis modes
|
|
43
|
+
*/
|
|
44
|
+
async initLLMProvider() {
|
|
45
|
+
if (this.context.depth === 'deep-native') {
|
|
46
|
+
try {
|
|
47
|
+
this.llmProvider = await createProvider({
|
|
48
|
+
provider: 'claude-code',
|
|
49
|
+
model: 'opus', // Use Opus 4.5 for best analysis quality
|
|
50
|
+
}, { logger: this.logger });
|
|
51
|
+
this.logger.log('Initialized Claude Code native provider (using MAX subscription)');
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
this.logger.warn('Claude Code not available, falling back to standard analysis');
|
|
55
|
+
this.context.depth = 'standard';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (this.context.depth === 'deep-api') {
|
|
59
|
+
// Try to load LLM config from project
|
|
60
|
+
const configPath = path.join(this.projectPath, '.specweave', 'config.json');
|
|
61
|
+
if (fs.existsSync(configPath)) {
|
|
62
|
+
try {
|
|
63
|
+
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
64
|
+
if (config.llm) {
|
|
65
|
+
this.llmProvider = await createProvider(config.llm, { logger: this.logger });
|
|
66
|
+
this.logger.log(`Initialized ${config.llm.provider} provider for deep analysis`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
this.logger.warn('Failed to initialize LLM provider, falling back to standard analysis');
|
|
71
|
+
this.context.depth = 'standard';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
40
76
|
/**
|
|
41
77
|
* Run the brownfield analysis
|
|
42
78
|
*/
|
|
@@ -48,6 +84,8 @@ export class BrownfieldAnalysisWorker {
|
|
|
48
84
|
'discrepancy-detect',
|
|
49
85
|
'reporting',
|
|
50
86
|
];
|
|
87
|
+
// Initialize LLM provider for deep analysis modes
|
|
88
|
+
await this.initLLMProvider();
|
|
51
89
|
// Resume from checkpoint if exists
|
|
52
90
|
const startPhaseIndex = this.config.checkpoint
|
|
53
91
|
? phases.indexOf(this.config.checkpoint.phase)
|
|
@@ -200,6 +238,12 @@ export class BrownfieldAnalysisWorker {
|
|
|
200
238
|
lastChecked: new Date().toISOString(),
|
|
201
239
|
});
|
|
202
240
|
}
|
|
241
|
+
// AI-powered deep analysis (when provider available)
|
|
242
|
+
if (this.llmProvider && (this.context.depth === 'deep-native' || this.context.depth === 'deep-api')) {
|
|
243
|
+
this.logger.log('Running AI-powered deep analysis...');
|
|
244
|
+
const aiDiscrepancies = await this.runAIAnalysis();
|
|
245
|
+
discrepancies.push(...aiDiscrepancies);
|
|
246
|
+
}
|
|
203
247
|
// Create discrepancies in batch
|
|
204
248
|
if (discrepancies.length > 0) {
|
|
205
249
|
await this.discrepancyManager.createBatch(discrepancies);
|
|
@@ -207,6 +251,116 @@ export class BrownfieldAnalysisWorker {
|
|
|
207
251
|
this.logger.log(`Detected ${discrepancies.length} discrepancies`);
|
|
208
252
|
return discrepancies.length;
|
|
209
253
|
}
|
|
254
|
+
/**
|
|
255
|
+
* AI-powered deep analysis using Claude Code or configured LLM
|
|
256
|
+
*/
|
|
257
|
+
async runAIAnalysis() {
|
|
258
|
+
if (!this.llmProvider)
|
|
259
|
+
return [];
|
|
260
|
+
const aiDiscrepancies = [];
|
|
261
|
+
// Analyze modules in batches to avoid context overflow
|
|
262
|
+
const BATCH_SIZE = 5;
|
|
263
|
+
const totalModules = this.context.modules.length;
|
|
264
|
+
for (let i = 0; i < totalModules; i += BATCH_SIZE) {
|
|
265
|
+
const batch = this.context.modules.slice(i, Math.min(i + BATCH_SIZE, totalModules));
|
|
266
|
+
this.logger.log(`AI analyzing modules ${i + 1}-${Math.min(i + BATCH_SIZE, totalModules)} of ${totalModules}...`);
|
|
267
|
+
for (const module of batch) {
|
|
268
|
+
try {
|
|
269
|
+
const moduleDiscrepancies = await this.analyzeModuleWithAI(module);
|
|
270
|
+
aiDiscrepancies.push(...moduleDiscrepancies);
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
this.logger.warn(`AI analysis failed for module ${module.name}: ${error}`);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
return aiDiscrepancies;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Analyze a single module with AI for semantic discrepancies
|
|
281
|
+
*/
|
|
282
|
+
async analyzeModuleWithAI(module) {
|
|
283
|
+
if (!this.llmProvider)
|
|
284
|
+
return [];
|
|
285
|
+
// Read sample code from the module
|
|
286
|
+
const codeFiles = this.context.codeFiles.filter(f => f.relativePath.startsWith(module.path) || path.dirname(f.relativePath) === module.path);
|
|
287
|
+
if (codeFiles.length === 0)
|
|
288
|
+
return [];
|
|
289
|
+
// Read first file as sample (limit to 2000 chars)
|
|
290
|
+
let sampleCode = '';
|
|
291
|
+
try {
|
|
292
|
+
const firstFile = codeFiles[0];
|
|
293
|
+
const content = fs.readFileSync(firstFile.path, 'utf-8');
|
|
294
|
+
sampleCode = content.slice(0, 2000);
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
return [];
|
|
298
|
+
}
|
|
299
|
+
// Find related docs
|
|
300
|
+
const relatedDocs = this.context.docs.filter(d => d.relativePath.toLowerCase().includes(module.name.toLowerCase()) ||
|
|
301
|
+
d.topics.some(t => t.toLowerCase().includes(module.name.toLowerCase())));
|
|
302
|
+
const docSummary = relatedDocs.length > 0
|
|
303
|
+
? relatedDocs.map(d => `${d.relativePath}: ${d.title || 'No title'}`).join('\n')
|
|
304
|
+
: 'No documentation found';
|
|
305
|
+
const prompt = `Analyze this code module for documentation quality:
|
|
306
|
+
|
|
307
|
+
MODULE: ${module.name}
|
|
308
|
+
EXPORTS: ${module.exports.slice(0, 10).map(e => `${e.name} (${e.type})`).join(', ')}
|
|
309
|
+
|
|
310
|
+
SAMPLE CODE:
|
|
311
|
+
\`\`\`typescript
|
|
312
|
+
${sampleCode}
|
|
313
|
+
\`\`\`
|
|
314
|
+
|
|
315
|
+
RELATED DOCS:
|
|
316
|
+
${docSummary}
|
|
317
|
+
|
|
318
|
+
Identify documentation issues. Return JSON array of issues:
|
|
319
|
+
[{"type": "missing-docs"|"stale-docs"|"incomplete-docs", "summary": "brief description", "details": "explanation", "priority": "critical"|"high"|"medium"|"low", "confidence": 0-100}]
|
|
320
|
+
|
|
321
|
+
Only include issues with confidence > 70. Return empty array [] if no issues found.`;
|
|
322
|
+
try {
|
|
323
|
+
const result = await this.llmProvider.analyzeStructured(prompt, {
|
|
324
|
+
schema: {
|
|
325
|
+
type: 'array',
|
|
326
|
+
items: {
|
|
327
|
+
type: 'object',
|
|
328
|
+
properties: {
|
|
329
|
+
type: { type: 'string' },
|
|
330
|
+
summary: { type: 'string' },
|
|
331
|
+
details: { type: 'string' },
|
|
332
|
+
priority: { type: 'string' },
|
|
333
|
+
confidence: { type: 'number' },
|
|
334
|
+
},
|
|
335
|
+
required: ['type', 'summary', 'details', 'priority', 'confidence'],
|
|
336
|
+
},
|
|
337
|
+
},
|
|
338
|
+
timeout: 60000,
|
|
339
|
+
});
|
|
340
|
+
// Convert AI results to discrepancies
|
|
341
|
+
return result.data
|
|
342
|
+
.filter(item => item.confidence > 70)
|
|
343
|
+
.map(item => ({
|
|
344
|
+
type: item.type,
|
|
345
|
+
module: module.name,
|
|
346
|
+
codeLocation: module.path,
|
|
347
|
+
summary: item.summary,
|
|
348
|
+
details: item.details,
|
|
349
|
+
evidence: { aiAnalyzed: true },
|
|
350
|
+
priority: item.priority,
|
|
351
|
+
confidence: item.confidence,
|
|
352
|
+
autoDetected: true,
|
|
353
|
+
status: 'pending',
|
|
354
|
+
detectedAt: new Date().toISOString(),
|
|
355
|
+
detectedBy: `ai-${this.llmProvider.name}`,
|
|
356
|
+
lastChecked: new Date().toISOString(),
|
|
357
|
+
}));
|
|
358
|
+
}
|
|
359
|
+
catch (error) {
|
|
360
|
+
this.logger.warn(`AI analysis failed for ${module.name}: ${error}`);
|
|
361
|
+
return [];
|
|
362
|
+
}
|
|
363
|
+
}
|
|
210
364
|
/**
|
|
211
365
|
* Phase 5: Reporting - Generate summary
|
|
212
366
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brownfield-worker.js","sourceRoot":"","sources":["../../../../src/cli/workers/brownfield-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAGL,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,4BAA4B,GAG7B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAU,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA8D9D;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAQnC,YACE,WAAmB,EACnB,KAAa,EACb,MAA2B,EAC3B,UAA+B,EAAE;QAEjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;QAC9C,IAAI,CAAC,kBAAkB,GAAG,IAAI,4BAA4B,CAAC,WAAW,EAAE;YACtE,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG;YACb,WAAW;YACX,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,KAAK,EAAE,MAAM,CAAC,aAAa;YAC3B,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG;QACP,MAAM,MAAM,GAAsB;YAChC,WAAW;YACX,eAAe;YACf,cAAc;YACd,oBAAoB;YACpB,WAAW;SACZ,CAAC;QAEF,mCAAmC;QACnC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;YAC5C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;YAC9C,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,gBAAgB,GAAG,CAAC,CAAC;QAEzB,IAAI,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,eAAe,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;gBAE5C,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAEtE,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,WAAW;wBACd,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBAC/B,MAAM;oBACR,KAAK,eAAe;wBAClB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;wBAClC,MAAM;oBACR,KAAK,cAAc;wBACjB,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;wBACjC,MAAM;oBACR,KAAK,oBAAoB;wBACvB,gBAAgB,GAAG,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;wBAC7D,MAAM;oBACR,KAAK,WAAW;wBACd,MAAM,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;wBAC/C,MAAM;gBACV,CAAC;gBAED,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;gBACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,KAAK,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,qBAAqB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;YACtE,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACxD,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB;QAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAExC,kBAAkB;QAClB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE;YACxD,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;SAC7C,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEb,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc;YAC1C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;oBACpD,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;iBAC9B,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,aAAa,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAErC,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAsB,CAAC;QAEhD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,sBAAsB;QACtB,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB;QAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAE7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,4BAA4B;QACxC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAE9C,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QAEtD,MAAM,aAAa,GAAkC,EAAE,CAAC;QAExD,8BAA8B;QAC9B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAClE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,aAAa,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,cAAc;oBACpB,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,YAAY,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE;oBAC9B,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,4BAA4B,MAAM,CAAC,IAAI,EAAE;oBACxE,OAAO,EAAE,8CAA8C,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBACpH,QAAQ,EAAE;wBACR,WAAW,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;qBACjF;oBACD,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC5E,UAAU,EAAE,EAAE;oBACd,YAAY,EAAE,IAAI;oBAClB,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACpC,UAAU,EAAE,qBAAqB;oBACjC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;YACzD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACjC,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACjD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CACzD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACxC,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,MAAM,CAAC,IAAI;gBACnB,YAAY,EAAE,MAAM,CAAC,IAAI;gBACzB,OAAO,EAAE,sCAAsC,MAAM,CAAC,IAAI,EAAE;gBAC5D,OAAO,EAAE,UAAU,MAAM,CAAC,IAAI,QAAQ,MAAM,CAAC,OAAO,CAAC,MAAM,8CAA8C;gBACzG,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,QAAQ;gBAClB,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACpC,UAAU,EAAE,qBAAqB;gBACjC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,MAAM,gBAAgB,CAAC,CAAC;QAClE,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,iBAAiB,CAAC,gBAAwB;QACtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QAExC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAEvD,MAAM,MAAM,GAAG;YACb,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACrC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;YACjC,QAAQ,EAAE;gBACR,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;gBACxC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBACtC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;aACrC;YACD,aAAa,EAAE;gBACb,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B;YACD,eAAe,EAAE,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;SACrD,CAAC;QAEF,cAAc;QACd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,IAAI,CAAC,WAAW,EAChB,YAAY,EACZ,eAAe,EACf,oBAAoB,CACrB,CAAC;QACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,UAAU,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,gEAAgE;IAChE,iBAAiB;IACjB,gEAAgE;IAExD,SAAS,CACf,GAAW,EACX,UAAoB,EACpB,KAAuC,EACvC,QAAQ,GAAG,EAAE;QAEb,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,OAAO,CACb,GAAW,EACX,UAAoB,EACpB,KAAiB,EACjB,YAAoB,EACpB,KAAa,EACb,IAA+B;QAE/B,IAAI,KAAK,IAAI,CAAC;YAAE,OAAO;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO;QAEhC,mCAAmC;QACnC,MAAM,QAAQ,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QAEvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEpD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;gBACtE,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;oBACnD,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBACpC,KAAK,CAAC,IAAI,CAAC;4BACT,IAAI,EAAE,QAAQ;4BACd,YAAY,EAAE,OAAO;4BACrB,IAAI;4BACJ,SAAS,EAAE,GAAG;4BACd,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,YAAY,EAAE,KAAK,CAAC,KAAK;yBAC1B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,UAAkB,EAAE,KAAiB;QACzD,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,IAAI,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC;gBACrC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;YACnC,CAAC;YAED,6CAA6C;YAC7C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACP,gCAAgC;YAClC,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU,IAAI,MAAM;YAC1B,IAAI,EAAE,UAAU;YAChB,OAAO;YACP,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjG,YAAY;SACb,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,OAAe,EAAE,IAAc;QACpD,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElC,oCAAoC;QACpC,MAAM,cAAc,GAAG;YACrB,EAAE,KAAK,EAAE,yCAAyC,EAAE,IAAI,EAAE,UAAmB,EAAE;YAC/E,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,OAAgB,EAAE;YAC5D,EAAE,KAAK,EAAE,sCAAsC,EAAE,IAAI,EAAE,MAAe,EAAE;YACxE,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,OAAgB,EAAE;YAC5D,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,UAAmB,EAAE;SACpE,CAAC;QAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAEtB,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAE7B,yCAAyC;oBACzC,MAAM,aAAa,GAAG,CAAC,GAAG,CAAC,IAAI,CAC7B,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;wBACpC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;wBACpC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CACrC,CAAC;oBAEF,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;wBAChC,4BAA4B;wBAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC/D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;4BACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gCAC7B,OAAO,CAAC,IAAI,CAAC;oCACX,IAAI,EAAE,CAAC;oCACP,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,CAAC,GAAG,CAAC;oCACX,aAAa,EAAE,KAAK,EAAE,qCAAqC;iCAC5D,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI;4BACJ,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,IAAI,EAAE,CAAC,GAAG,CAAC;4BACX,aAAa;4BACb,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;yBACrC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,IAAc;QACjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEpD,gCAAgC;YAChC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;YAE9B,kCAAkC;YAClC,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEzD,aAAa;YACb,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;YAE9C,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,KAAK;gBACL,MAAM;gBACN,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS;aACV,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,iBAAiB,CACvB,iBAAyB,EACzB,UAAkB;QAElB,MAAM,KAAK,GAAG,iBAAiB,GAAG,UAAU,CAAC;QAE7C,IAAI,KAAK,GAAG,GAAG,IAAI,iBAAiB,GAAG,CAAC;YAAE,OAAO,UAAU,CAAC;QAC5D,IAAI,KAAK,GAAG,GAAG,IAAI,iBAAiB,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;QACxD,IAAI,KAAK,GAAG,GAAG;YAAE,OAAO,QAAQ,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,uBAAuB,CAC7B,KAAgG;QAEhG,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,EAAE,CAAC;YACtC,eAAe,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,eAAe,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YAClC,eAAe,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC;YACrB,eAAe,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;QACpG,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,KAAa,EACb,MAA2B,EAC3B,UAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,IAAI,wBAAwB,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"brownfield-worker.js","sourceRoot":"","sources":["../../../../src/cli/workers/brownfield-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,6 +44,86 @@ let recordError;
|
|
|
44
44
|
let completeJob;
|
|
45
45
|
let isPhaseCompleted;
|
|
46
46
|
let getResumePoint;
|
|
47
|
+
// LLM Provider for AI-powered deep analysis
|
|
48
|
+
let createProvider;
|
|
49
|
+
let isClaudeCodeAvailable;
|
|
50
|
+
let getClaudeCodeStatus;
|
|
51
|
+
let llmProvider = null;
|
|
52
|
+
// Enterprise Documentation Analysis
|
|
53
|
+
let EnterpriseDocAnalyzer;
|
|
54
|
+
let generateEnterpriseReport;
|
|
55
|
+
// Claude Availability Messaging
|
|
56
|
+
let getAvailabilityMessage;
|
|
57
|
+
let formatAvailabilityMessage;
|
|
58
|
+
let getSimpleErrorMessage;
|
|
59
|
+
/**
|
|
60
|
+
* AI-enhanced module analysis using Claude Code
|
|
61
|
+
*/
|
|
62
|
+
async function runAIModuleAnalysis(moduleName, basicAnalysis, provider, log) {
|
|
63
|
+
// Build context from basic analysis
|
|
64
|
+
const filesSummary = basicAnalysis.filesAnalyzed
|
|
65
|
+
.slice(0, 5) // Limit to top 5 files to avoid prompt explosion
|
|
66
|
+
.map((f) => `- ${f.path}: ${f.exports?.length || 0} exports`)
|
|
67
|
+
.join('\n');
|
|
68
|
+
const exportsSummary = basicAnalysis.keyExports
|
|
69
|
+
?.slice(0, 10)
|
|
70
|
+
.map((e) => `- ${e.name}: ${e.type}`)
|
|
71
|
+
.join('\n') || 'No exports detected';
|
|
72
|
+
const prompt = `Analyze this TypeScript module and provide structured insights.
|
|
73
|
+
|
|
74
|
+
Module: ${moduleName}
|
|
75
|
+
Files analyzed: ${basicAnalysis.filesAnalyzed.length}
|
|
76
|
+
Total exports: ${basicAnalysis.totalExports}
|
|
77
|
+
|
|
78
|
+
Key files:
|
|
79
|
+
${filesSummary}
|
|
80
|
+
|
|
81
|
+
Key exports:
|
|
82
|
+
${exportsSummary}
|
|
83
|
+
|
|
84
|
+
Provide a JSON response with EXACTLY this structure (no markdown, no code blocks, just pure JSON):
|
|
85
|
+
{
|
|
86
|
+
"purpose": "Brief description of what this module does (1-2 sentences)",
|
|
87
|
+
"keyConcepts": ["concept1", "concept2", "concept3"],
|
|
88
|
+
"dependencies": ["likely internal or external dependencies"],
|
|
89
|
+
"complexity": "low|medium|high",
|
|
90
|
+
"suggestedDocs": ["doc1.md", "doc2.md"],
|
|
91
|
+
"architecturalNotes": "Brief notes about patterns, concerns, or suggestions"
|
|
92
|
+
}`;
|
|
93
|
+
try {
|
|
94
|
+
log(` Sending to Claude Code Opus 4.5...`);
|
|
95
|
+
const result = await provider.analyze(prompt);
|
|
96
|
+
if (!result || !result.content) {
|
|
97
|
+
log(` Empty response from AI`);
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const response = result.content;
|
|
101
|
+
// Parse JSON response (Claude may wrap in code blocks)
|
|
102
|
+
let jsonStr = response.trim();
|
|
103
|
+
// Remove markdown code blocks if present
|
|
104
|
+
if (jsonStr.startsWith('```')) {
|
|
105
|
+
jsonStr = jsonStr.replace(/^```(?:json)?\n?/, '').replace(/\n?```$/, '');
|
|
106
|
+
}
|
|
107
|
+
const parsed = JSON.parse(jsonStr);
|
|
108
|
+
// Validate required fields
|
|
109
|
+
if (!parsed.purpose || !parsed.complexity) {
|
|
110
|
+
log(` Invalid AI response structure`);
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
purpose: parsed.purpose,
|
|
115
|
+
keyConcepts: parsed.keyConcepts || [],
|
|
116
|
+
dependencies: parsed.dependencies || [],
|
|
117
|
+
complexity: parsed.complexity,
|
|
118
|
+
suggestedDocs: parsed.suggestedDocs || [],
|
|
119
|
+
architecturalNotes: parsed.architecturalNotes || ''
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
log(` AI analysis error: ${err.message}`);
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
47
127
|
/**
|
|
48
128
|
* Main worker entry point
|
|
49
129
|
*/
|
|
@@ -167,10 +247,131 @@ async function main() {
|
|
|
167
247
|
completeJob = checkpointModule.completeJob;
|
|
168
248
|
isPhaseCompleted = checkpointModule.isPhaseCompleted;
|
|
169
249
|
getResumePoint = checkpointModule.getResumePoint;
|
|
250
|
+
// Load enterprise analyzer
|
|
251
|
+
const enterpriseModule = await import('../../living-docs/enterprise-analyzer.js');
|
|
252
|
+
EnterpriseDocAnalyzer = enterpriseModule.EnterpriseDocAnalyzer;
|
|
253
|
+
generateEnterpriseReport = enterpriseModule.generateEnterpriseReport;
|
|
254
|
+
// Load availability messages
|
|
255
|
+
const availabilityModule = await import('../../core/llm/availability-messages.js');
|
|
256
|
+
getAvailabilityMessage = availabilityModule.getAvailabilityMessage;
|
|
257
|
+
formatAvailabilityMessage = availabilityModule.formatAvailabilityMessage;
|
|
258
|
+
getSimpleErrorMessage = availabilityModule.getSimpleErrorMessage;
|
|
170
259
|
log('Dependencies loaded successfully');
|
|
171
260
|
log('');
|
|
172
|
-
//
|
|
261
|
+
// Initialize LLM provider for AI-powered deep analysis
|
|
262
|
+
const depth = jobConfig.userInputs.analysisDepth;
|
|
263
|
+
if (depth === 'deep-native' || depth === 'deep-api') {
|
|
264
|
+
log('Initializing AI provider for deep analysis...');
|
|
265
|
+
try {
|
|
266
|
+
const providerModule = await import('../../core/llm/provider-factory.js');
|
|
267
|
+
createProvider = providerModule.createProvider;
|
|
268
|
+
isClaudeCodeAvailable = providerModule.isClaudeCodeAvailable;
|
|
269
|
+
getClaudeCodeStatus = providerModule.getClaudeCodeStatus;
|
|
270
|
+
if (depth === 'deep-native') {
|
|
271
|
+
// Use Claude Code CLI with MAX subscription (FREE!)
|
|
272
|
+
const available = await isClaudeCodeAvailable();
|
|
273
|
+
if (available) {
|
|
274
|
+
llmProvider = await createProvider({
|
|
275
|
+
provider: 'claude-code',
|
|
276
|
+
model: 'opus', // Opus 4.5 for best quality
|
|
277
|
+
});
|
|
278
|
+
log(' ✓ Claude Code native provider initialized (using MAX subscription)');
|
|
279
|
+
log(' Model: Opus 4.5');
|
|
280
|
+
log(' Cost: FREE (included in MAX)');
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
// Show detailed availability message with installation instructions
|
|
284
|
+
log(' ⚠ Claude Code CLI not available');
|
|
285
|
+
log('');
|
|
286
|
+
try {
|
|
287
|
+
const status = await getClaudeCodeStatus();
|
|
288
|
+
const availMsg = getAvailabilityMessage(status);
|
|
289
|
+
log(` ${availMsg.title}`);
|
|
290
|
+
log(` ${availMsg.message}`);
|
|
291
|
+
log('');
|
|
292
|
+
if (availMsg.instructions.length > 0) {
|
|
293
|
+
log(' Installation Instructions:');
|
|
294
|
+
for (const instruction of availMsg.instructions) {
|
|
295
|
+
log(` ${instruction}`);
|
|
296
|
+
}
|
|
297
|
+
log('');
|
|
298
|
+
}
|
|
299
|
+
if (availMsg.alternatives.length > 0) {
|
|
300
|
+
log(' Alternatives:');
|
|
301
|
+
for (const alt of availMsg.alternatives) {
|
|
302
|
+
log(` • ${alt}`);
|
|
303
|
+
}
|
|
304
|
+
log('');
|
|
305
|
+
}
|
|
306
|
+
log(` Learn more: ${availMsg.learnMore}`);
|
|
307
|
+
}
|
|
308
|
+
catch {
|
|
309
|
+
log(' Install Claude Code: npm install -g @anthropic-ai/claude-code');
|
|
310
|
+
log(' Then authenticate: claude login');
|
|
311
|
+
}
|
|
312
|
+
log('');
|
|
313
|
+
log(' Falling back to standard analysis (no AI insights)');
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
else if (depth === 'deep-api') {
|
|
317
|
+
// Load from project config
|
|
318
|
+
const llmConfig = providerModule.loadLLMConfig(projectPath);
|
|
319
|
+
if (llmConfig) {
|
|
320
|
+
llmProvider = await createProvider(llmConfig);
|
|
321
|
+
log(` ✓ ${llmConfig.provider} provider initialized`);
|
|
322
|
+
log(` Model: ${llmConfig.model}`);
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
log(' ⚠ No LLM config found in .specweave/config.json, falling back to standard analysis');
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
catch (err) {
|
|
330
|
+
log(` ⚠ Failed to initialize AI provider: ${err.message}`);
|
|
331
|
+
log(' Falling back to standard analysis');
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
log('');
|
|
335
|
+
// Get job manager and ensure job is registered
|
|
173
336
|
const jobManager = getJobManager(projectPath);
|
|
337
|
+
// Auto-register if job doesn't exist in background-jobs.json
|
|
338
|
+
// This handles cases where worker is launched directly (not via job-launcher)
|
|
339
|
+
if (!jobManager.getJob(jobId)) {
|
|
340
|
+
log('Job not registered, auto-registering...');
|
|
341
|
+
const stateFilePath = path.join(projectPath, '.specweave/state/background-jobs.json');
|
|
342
|
+
// Load existing state or create new one
|
|
343
|
+
let state = { jobs: [] };
|
|
344
|
+
try {
|
|
345
|
+
if (fs.existsSync(stateFilePath)) {
|
|
346
|
+
state = JSON.parse(fs.readFileSync(stateFilePath, 'utf-8').toString());
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
catch {
|
|
350
|
+
// Corrupted file - start fresh
|
|
351
|
+
}
|
|
352
|
+
state.jobs.push({
|
|
353
|
+
id: jobId,
|
|
354
|
+
type: 'living-docs-builder',
|
|
355
|
+
status: 'pending',
|
|
356
|
+
progress: {
|
|
357
|
+
current: 0,
|
|
358
|
+
total: 100,
|
|
359
|
+
percentage: 0,
|
|
360
|
+
itemsCompleted: [],
|
|
361
|
+
itemsFailed: []
|
|
362
|
+
},
|
|
363
|
+
startedAt: new Date().toISOString(),
|
|
364
|
+
updatedAt: new Date().toISOString(),
|
|
365
|
+
config: {
|
|
366
|
+
type: 'living-docs-builder',
|
|
367
|
+
projectPath,
|
|
368
|
+
userInputs: jobConfig.userInputs
|
|
369
|
+
}
|
|
370
|
+
});
|
|
371
|
+
fs.mkdirSync(path.dirname(stateFilePath), { recursive: true });
|
|
372
|
+
fs.writeFileSync(stateFilePath, JSON.stringify(state, null, 2));
|
|
373
|
+
log(' ✓ Job registered in background-jobs.json');
|
|
374
|
+
}
|
|
174
375
|
jobManager.startJob(jobId);
|
|
175
376
|
// Check for existing checkpoint (resume support)
|
|
176
377
|
let checkpoint = loadCheckpoint(projectPath, jobId);
|
|
@@ -299,18 +500,23 @@ async function main() {
|
|
|
299
500
|
// ═══════════════════════════════════════════════════════════════
|
|
300
501
|
const moduleAnalyses = new Map();
|
|
301
502
|
if (!isPhaseCompleted(checkpoint, 'deep-dive')) {
|
|
302
|
-
|
|
503
|
+
const usingAI = llmProvider !== null;
|
|
504
|
+
log(`PHASE: Deep Dive - Analyzing modules...${usingAI ? ' (AI-POWERED)' : ''}`);
|
|
505
|
+
if (usingAI) {
|
|
506
|
+
log(' Using Claude Code Opus 4.5 for semantic analysis');
|
|
507
|
+
}
|
|
303
508
|
// Determine which modules to analyze based on depth setting
|
|
304
509
|
let modulesToAnalyze = [...discovery.modules];
|
|
305
|
-
|
|
510
|
+
const analysisDepth = jobConfig.userInputs.analysisDepth;
|
|
511
|
+
if (analysisDepth === 'quick') {
|
|
306
512
|
// Only top 5 priority modules
|
|
307
513
|
modulesToAnalyze = modulesToAnalyze.slice(0, 5);
|
|
308
514
|
}
|
|
309
|
-
else if (
|
|
515
|
+
else if (analysisDepth === 'standard') {
|
|
310
516
|
// Top 10
|
|
311
517
|
modulesToAnalyze = modulesToAnalyze.slice(0, 10);
|
|
312
518
|
}
|
|
313
|
-
//
|
|
519
|
+
// deep-native, deep-interactive, deep-api = all modules
|
|
314
520
|
// Check for resume point
|
|
315
521
|
const resumePoint = getResumePoint(projectPath, jobId);
|
|
316
522
|
let startIndex = 0;
|
|
@@ -330,9 +536,25 @@ async function main() {
|
|
|
330
536
|
updateProgress('deep-dive', Math.round(((i + 1) / modulesToAnalyze.length) * 100), `Analyzing ${module.name}`);
|
|
331
537
|
try {
|
|
332
538
|
const workItemMatches = matchResult?.moduleMap?.get(module.name)?.matches || [];
|
|
539
|
+
// Basic Node.js analysis first
|
|
333
540
|
const analysis = await analyzeModule(projectPath, module, discovery.samplingConfig, workItemMatches, (_moduleName, _fileIdx, _totalFiles) => {
|
|
334
541
|
// File-level progress
|
|
335
542
|
});
|
|
543
|
+
// AI-enhanced analysis when provider is available
|
|
544
|
+
if (llmProvider && analysis.filesAnalyzed.length > 0) {
|
|
545
|
+
log(` Running AI analysis on ${module.name}...`);
|
|
546
|
+
try {
|
|
547
|
+
const aiAnalysis = await runAIModuleAnalysis(module.name, analysis, llmProvider, log);
|
|
548
|
+
// Merge AI insights into analysis
|
|
549
|
+
if (aiAnalysis) {
|
|
550
|
+
analysis.aiInsights = aiAnalysis;
|
|
551
|
+
log(` AI insights generated`);
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
catch (aiErr) {
|
|
555
|
+
log(` AI analysis skipped: ${aiErr.message}`);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
336
558
|
moduleAnalyses.set(module.name, analysis);
|
|
337
559
|
await saveModuleAnalysis(projectPath, analysis);
|
|
338
560
|
updateModuleProgress(projectPath, jobId, module.name, remaining);
|
|
@@ -370,21 +592,60 @@ async function main() {
|
|
|
370
592
|
throw err;
|
|
371
593
|
}
|
|
372
594
|
// ═══════════════════════════════════════════════════════════════
|
|
595
|
+
// PHASE 7: Enterprise Documentation Analysis
|
|
596
|
+
// ═══════════════════════════════════════════════════════════════
|
|
597
|
+
log('PHASE: Enterprise - Analyzing documentation health...');
|
|
598
|
+
updateProgress('enterprise', 0, 'Running enterprise documentation analysis');
|
|
599
|
+
try {
|
|
600
|
+
const analyzer = new EnterpriseDocAnalyzer({
|
|
601
|
+
projectPath,
|
|
602
|
+
logger: {
|
|
603
|
+
info: (msg) => log(` [INFO] ${msg}`),
|
|
604
|
+
warn: (msg) => log(` [WARN] ${msg}`),
|
|
605
|
+
error: (msg) => log(` [ERROR] ${msg}`),
|
|
606
|
+
debug: () => { }, // Suppress debug logs
|
|
607
|
+
verbose: () => { },
|
|
608
|
+
formatError: (err) => err.message,
|
|
609
|
+
},
|
|
610
|
+
includeArchived: false,
|
|
611
|
+
});
|
|
612
|
+
updateProgress('enterprise', 25, 'Scanning documentation categories');
|
|
613
|
+
const enterpriseReport = await analyzer.analyze();
|
|
614
|
+
updateProgress('enterprise', 75, 'Generating enterprise report');
|
|
615
|
+
// Generate and save the enterprise report
|
|
616
|
+
const reportContent = generateEnterpriseReport(enterpriseReport);
|
|
617
|
+
const enterpriseReportPath = path.join(projectPath, '.specweave/docs/ENTERPRISE-HEALTH.md');
|
|
618
|
+
fs.writeFileSync(enterpriseReportPath, reportContent);
|
|
619
|
+
log(` Created: ${enterpriseReportPath}`);
|
|
620
|
+
log(` Summary:`);
|
|
621
|
+
log(` - Documentation categories: ${enterpriseReport.categories.length}`);
|
|
622
|
+
log(` - Total documents: ${enterpriseReport.totalDocuments}`);
|
|
623
|
+
log(` - Health score: ${enterpriseReport.healthScore.overall}% (Grade: ${enterpriseReport.healthScore.grade})`);
|
|
624
|
+
log(` - Freshness: ${enterpriseReport.healthScore.freshness}%`);
|
|
625
|
+
log(` - Coverage: ${enterpriseReport.healthScore.coverage}%`);
|
|
626
|
+
log(` - Accuracy: ${enterpriseReport.healthScore.accuracy}%`);
|
|
627
|
+
log(` - Spec-code mismatches: ${enterpriseReport.mismatches.length}`);
|
|
628
|
+
log(` - Recommendations: ${enterpriseReport.recommendations.length}`);
|
|
629
|
+
updateProgress('enterprise', 100, 'Enterprise analysis complete');
|
|
630
|
+
}
|
|
631
|
+
catch (err) {
|
|
632
|
+
log(` WARNING: Enterprise analysis failed: ${err.message}`);
|
|
633
|
+
log(' Continuing without enterprise report...');
|
|
634
|
+
// Non-fatal - continue to completion
|
|
635
|
+
}
|
|
636
|
+
// ═══════════════════════════════════════════════════════════════
|
|
373
637
|
// Complete
|
|
374
638
|
// ═══════════════════════════════════════════════════════════════
|
|
375
639
|
completeJob(projectPath, jobId);
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
modulesAnalyzed: moduleAnalyses.size,
|
|
379
|
-
suggestionsGenerated: true
|
|
380
|
-
});
|
|
640
|
+
// Note: completeJob(jobId, optionalError?) - no error means success
|
|
641
|
+
jobManager.completeJob(jobId);
|
|
381
642
|
updateProgress('complete', 100, 'Living docs generation complete');
|
|
382
643
|
log('');
|
|
383
644
|
log('════════════════════════════════════════════════════════════');
|
|
384
645
|
log('LIVING DOCS BUILDER COMPLETED');
|
|
385
646
|
log('════════════════════════════════════════════════════════════');
|
|
386
647
|
log(`Completed at: ${new Date().toISOString()}`);
|
|
387
|
-
log(`Output: .specweave/docs/SUGGESTIONS.md`);
|
|
648
|
+
log(`Output: .specweave/docs/SUGGESTIONS.md, .specweave/docs/ENTERPRISE-HEALTH.md`);
|
|
388
649
|
}
|
|
389
650
|
catch (err) {
|
|
390
651
|
log(`FATAL ERROR: ${err.message}`);
|