atlas-pipeline-mcp 1.0.16 → 1.0.18

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 (58) hide show
  1. package/README.md +45 -1
  2. package/dist/mcp.js +263 -0
  3. package/dist/mcp.js.map +1 -1
  4. package/dist/providers/llm-provider.d.ts +60 -25
  5. package/dist/providers/llm-provider.d.ts.map +1 -1
  6. package/dist/providers/llm-provider.js +154 -73
  7. package/dist/providers/llm-provider.js.map +1 -1
  8. package/dist/server.js +3 -3
  9. package/dist/server.js.map +1 -1
  10. package/dist/tools/context.js.map +1 -1
  11. package/dist/tools/critique.d.ts.map +1 -1
  12. package/dist/tools/critique.js +4 -3
  13. package/dist/tools/critique.js.map +1 -1
  14. package/dist/tools/debug.d.ts +101 -0
  15. package/dist/tools/debug.d.ts.map +1 -0
  16. package/dist/tools/debug.js +712 -0
  17. package/dist/tools/debug.js.map +1 -0
  18. package/dist/tools/decompose.d.ts.map +1 -1
  19. package/dist/tools/decompose.js +40 -28
  20. package/dist/tools/decompose.js.map +1 -1
  21. package/dist/tools/docs.d.ts +94 -0
  22. package/dist/tools/docs.d.ts.map +1 -0
  23. package/dist/tools/docs.js +508 -0
  24. package/dist/tools/docs.js.map +1 -0
  25. package/dist/tools/explain.d.ts +82 -0
  26. package/dist/tools/explain.d.ts.map +1 -0
  27. package/dist/tools/explain.js +543 -0
  28. package/dist/tools/explain.js.map +1 -0
  29. package/dist/tools/intent.d.ts.map +1 -1
  30. package/dist/tools/intent.js +33 -20
  31. package/dist/tools/intent.js.map +1 -1
  32. package/dist/tools/optimize.d.ts.map +1 -1
  33. package/dist/tools/optimize.js +18 -3
  34. package/dist/tools/optimize.js.map +1 -1
  35. package/dist/tools/security.d.ts +45 -0
  36. package/dist/tools/security.d.ts.map +1 -0
  37. package/dist/tools/security.js +417 -0
  38. package/dist/tools/security.js.map +1 -0
  39. package/dist/tools/testgen.d.ts +52 -0
  40. package/dist/tools/testgen.d.ts.map +1 -0
  41. package/dist/tools/testgen.js +413 -0
  42. package/dist/tools/testgen.js.map +1 -0
  43. package/dist/tools/think.d.ts +187 -0
  44. package/dist/tools/think.d.ts.map +1 -0
  45. package/dist/tools/think.js +432 -0
  46. package/dist/tools/think.js.map +1 -0
  47. package/dist/tools/variants.d.ts.map +1 -1
  48. package/dist/tools/variants.js +41 -29
  49. package/dist/tools/variants.js.map +1 -1
  50. package/dist/types.d.ts +77 -20
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js +21 -0
  53. package/dist/types.js.map +1 -1
  54. package/dist/utils.d.ts +108 -12
  55. package/dist/utils.d.ts.map +1 -1
  56. package/dist/utils.js +302 -68
  57. package/dist/utils.js.map +1 -1
  58. package/package.json +2 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"think.d.ts","sourceRoot":"","sources":["../../src/tools/think.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,432 @@
1
+ /**
2
+ * Atlas Server - Advanced Sequential Thinking Tool
3
+ *
4
+ * Enhanced reasoning capabilities beyond basic sequential thinking:
5
+ * - Dynamic thought branching with merge support
6
+ * - Hypothesis generation and verification
7
+ * - Confidence scoring and uncertainty tracking
8
+ * - Automatic insight extraction
9
+ * - Deadend detection and smart backtracking
10
+ * - AI-enhanced reasoning when LLM available
11
+ * - Thought summarization and compression
12
+ * - Memory of key conclusions
13
+ */
14
+ import { getActiveProvider, isNoLLMMode } from '../providers/index.js';
15
+ import { logger } from '../utils.js';
16
+ // ============================================================================
17
+ // Thinking Server Class
18
+ // ============================================================================
19
+ export class AdvancedThinkingServer {
20
+ sessions = new Map();
21
+ currentSession = null;
22
+ constructor() {
23
+ logger.debug('AdvancedThinkingServer initialized');
24
+ }
25
+ /**
26
+ * Start a new thinking session
27
+ */
28
+ startSession(problem, sessionId) {
29
+ const id = sessionId ?? `session-${Date.now()}`;
30
+ const session = {
31
+ id,
32
+ startTime: new Date().toISOString(),
33
+ problem,
34
+ thoughts: [],
35
+ branches: {},
36
+ currentBranch: null,
37
+ hypotheses: [],
38
+ keyInsights: [],
39
+ deadEnds: [],
40
+ overallConfidence: 0,
41
+ };
42
+ this.sessions.set(id, session);
43
+ this.currentSession = session;
44
+ return id;
45
+ }
46
+ /**
47
+ * Process a thought and return the result
48
+ */
49
+ async processThought(input) {
50
+ // Get or create session
51
+ if (!this.currentSession) {
52
+ this.startSession(input.problemContext ?? 'General problem solving');
53
+ }
54
+ const session = this.currentSession;
55
+ // Auto-adjust totalThoughts if needed
56
+ if (input.thoughtNumber > input.totalThoughts) {
57
+ input.totalThoughts = input.thoughtNumber;
58
+ }
59
+ // Create thought record
60
+ const thought = {
61
+ ...input,
62
+ timestamp: new Date().toISOString(),
63
+ extractedInsights: [],
64
+ confidenceHistory: [...(session.thoughts[session.thoughts.length - 1]?.confidenceHistory ?? []), input.confidence ?? 0.5],
65
+ };
66
+ // Extract insights from thought
67
+ thought.extractedInsights = this.extractInsights(input.thought);
68
+ // Handle branching
69
+ if (input.branchFromThought && input.branchId) {
70
+ this.handleBranching(session, thought, input.branchId, input.branchFromThought);
71
+ }
72
+ // Handle branch merging
73
+ if (input.mergeBranches && input.mergeBranches.length > 0) {
74
+ this.handleMerge(session, thought, input.mergeBranches);
75
+ }
76
+ // Handle hypothesis
77
+ if (input.thoughtType === 'hypothesis' && input.hypothesis) {
78
+ this.addHypothesis(session, input.hypothesis, input.thoughtNumber);
79
+ }
80
+ // Handle verification
81
+ if (input.thoughtType === 'verification' && input.verificationResult) {
82
+ this.updateHypothesisStatus(session, input.verificationResult, input.thoughtNumber);
83
+ }
84
+ // Handle dead end
85
+ if (input.isDeadEnd) {
86
+ this.recordDeadEnd(session, thought);
87
+ }
88
+ // Record key insight
89
+ if (input.keyInsight) {
90
+ session.keyInsights.push(input.keyInsight);
91
+ }
92
+ // Add thought to history
93
+ session.thoughts.push(thought);
94
+ // Update confidence
95
+ session.overallConfidence = this.calculateOverallConfidence(session);
96
+ // Get AI enhancement if available
97
+ let aiSuggestion;
98
+ let recommendedNextStep;
99
+ if (!isNoLLMMode() && input.nextThoughtNeeded) {
100
+ try {
101
+ const enhancement = await this.getAIEnhancement(session, thought);
102
+ aiSuggestion = enhancement.suggestion;
103
+ recommendedNextStep = enhancement.nextStep;
104
+ thought.aiEnhancement = enhancement.suggestion;
105
+ }
106
+ catch (error) {
107
+ logger.warn({ error }, 'AI enhancement failed');
108
+ }
109
+ }
110
+ // Generate conclusion if this is the final thought
111
+ let conclusion;
112
+ if (!input.nextThoughtNeeded) {
113
+ conclusion = this.generateConclusion(session);
114
+ session.conclusion = conclusion;
115
+ }
116
+ // Build result
117
+ const result = {
118
+ thoughtNumber: input.thoughtNumber,
119
+ totalThoughts: input.totalThoughts,
120
+ nextThoughtNeeded: input.nextThoughtNeeded,
121
+ currentBranch: session.currentBranch,
122
+ branches: Object.keys(session.branches),
123
+ thoughtHistoryLength: session.thoughts.length,
124
+ currentConfidence: session.overallConfidence,
125
+ activeHypotheses: session.hypotheses.filter(h => h.status === 'testing' || h.status === 'proposed').length,
126
+ keyInsightsCount: session.keyInsights.length,
127
+ deadEndsEncountered: session.deadEnds.length,
128
+ aiSuggestion,
129
+ recommendedNextStep,
130
+ progressSummary: this.generateProgressSummary(session, input.thoughtNumber),
131
+ conclusion,
132
+ };
133
+ return result;
134
+ }
135
+ /**
136
+ * Extract insights from thought text
137
+ */
138
+ extractInsights(thought) {
139
+ const insights = [];
140
+ // Look for key phrases that indicate insights
141
+ const insightPatterns = [
142
+ /(?:i realize|i notice|key point|important|crucial|this means|therefore|thus|hence|conclusion|insight)/gi,
143
+ /(?:the pattern is|this suggests|this indicates|this shows)/gi,
144
+ ];
145
+ const sentences = thought.split(/[.!?]+/).filter(s => s.trim());
146
+ for (const sentence of sentences) {
147
+ for (const pattern of insightPatterns) {
148
+ if (pattern.test(sentence)) {
149
+ insights.push(sentence.trim());
150
+ break;
151
+ }
152
+ }
153
+ }
154
+ return insights;
155
+ }
156
+ /**
157
+ * Handle branching logic
158
+ */
159
+ handleBranching(session, thought, branchId, fromThought) {
160
+ if (!session.branches[branchId]) {
161
+ session.branches[branchId] = {
162
+ id: branchId,
163
+ parentThought: fromThought,
164
+ thoughts: [],
165
+ status: 'active',
166
+ };
167
+ }
168
+ session.branches[branchId].thoughts.push(thought);
169
+ session.currentBranch = branchId;
170
+ }
171
+ /**
172
+ * Handle merging of branches
173
+ */
174
+ handleMerge(session, thought, branchIds) {
175
+ const mergedInsights = [];
176
+ for (const branchId of branchIds) {
177
+ const branch = session.branches[branchId];
178
+ if (branch) {
179
+ branch.status = 'merged';
180
+ // Collect insights from merged branches
181
+ for (const t of branch.thoughts) {
182
+ mergedInsights.push(...t.extractedInsights);
183
+ }
184
+ if (branch.conclusion) {
185
+ mergedInsights.push(branch.conclusion);
186
+ }
187
+ }
188
+ }
189
+ // Add merged insights to current thought
190
+ thought.extractedInsights.push(...mergedInsights);
191
+ session.currentBranch = null;
192
+ }
193
+ /**
194
+ * Add a new hypothesis
195
+ */
196
+ addHypothesis(session, statement, thoughtNumber) {
197
+ session.hypotheses.push({
198
+ id: `hyp-${session.hypotheses.length + 1}`,
199
+ statement,
200
+ proposedAt: thoughtNumber,
201
+ status: 'proposed',
202
+ evidence: [],
203
+ confidence: 0.5,
204
+ });
205
+ }
206
+ /**
207
+ * Update hypothesis status based on verification
208
+ */
209
+ updateHypothesisStatus(session, result, thoughtNumber) {
210
+ // Update the most recent hypothesis being tested
211
+ const testingHypothesis = [...session.hypotheses].reverse().find(h => h.status === 'testing' || h.status === 'proposed');
212
+ if (testingHypothesis) {
213
+ switch (result) {
214
+ case 'confirmed':
215
+ testingHypothesis.status = 'confirmed';
216
+ testingHypothesis.confidence = 0.9;
217
+ break;
218
+ case 'refuted':
219
+ testingHypothesis.status = 'refuted';
220
+ testingHypothesis.confidence = 0.1;
221
+ break;
222
+ case 'partial':
223
+ testingHypothesis.status = 'partial';
224
+ testingHypothesis.confidence = 0.6;
225
+ break;
226
+ default:
227
+ testingHypothesis.confidence = 0.5;
228
+ }
229
+ testingHypothesis.evidence.push({
230
+ thoughtNumber,
231
+ type: result === 'confirmed' ? 'supports' : result === 'refuted' ? 'refutes' : 'neutral',
232
+ description: `Verification at thought ${thoughtNumber}`,
233
+ weight: 1,
234
+ });
235
+ }
236
+ }
237
+ /**
238
+ * Record a dead end
239
+ */
240
+ recordDeadEnd(session, thought) {
241
+ // Find the best point to backtrack to
242
+ const backtrackTo = this.findBacktrackPoint(session, thought.thoughtNumber);
243
+ session.deadEnds.push({
244
+ thoughtNumber: thought.thoughtNumber,
245
+ reason: thought.thought,
246
+ lessonsLearned: thought.extractedInsights,
247
+ backtrackTo,
248
+ });
249
+ // Mark current branch as deadend if in a branch
250
+ if (session.currentBranch && session.branches[session.currentBranch]) {
251
+ session.branches[session.currentBranch].status = 'deadend';
252
+ }
253
+ }
254
+ /**
255
+ * Find the best point to backtrack to
256
+ */
257
+ findBacktrackPoint(session, currentThought) {
258
+ // Look for the last branching point or hypothesis
259
+ for (let i = session.thoughts.length - 1; i >= 0; i--) {
260
+ const t = session.thoughts[i];
261
+ if (t && (t.thoughtType === 'hypothesis' || t.branchFromThought)) {
262
+ return t.thoughtNumber;
263
+ }
264
+ }
265
+ return 1; // Backtrack to beginning if no better point found
266
+ }
267
+ /**
268
+ * Calculate overall confidence
269
+ */
270
+ calculateOverallConfidence(session) {
271
+ if (session.thoughts.length === 0)
272
+ return 0;
273
+ // Factors: hypothesis confirmation, dead ends, insight count
274
+ let confidence = 0.5;
275
+ // Boost for confirmed hypotheses
276
+ const confirmedCount = session.hypotheses.filter(h => h.status === 'confirmed').length;
277
+ confidence += confirmedCount * 0.1;
278
+ // Penalty for dead ends
279
+ confidence -= session.deadEnds.length * 0.05;
280
+ // Boost for insights
281
+ confidence += Math.min(session.keyInsights.length * 0.02, 0.2);
282
+ // Use latest thought confidence if available
283
+ const lastConfidence = session.thoughts[session.thoughts.length - 1]?.confidence;
284
+ if (lastConfidence !== undefined) {
285
+ confidence = (confidence + lastConfidence) / 2;
286
+ }
287
+ return Math.max(0, Math.min(1, confidence));
288
+ }
289
+ /**
290
+ * Get AI enhancement for the current thinking
291
+ */
292
+ async getAIEnhancement(session, currentThought) {
293
+ const provider = await getActiveProvider();
294
+ const recentThoughts = session.thoughts.slice(-5).map(t => t.thought).join('\n');
295
+ const hypotheses = session.hypotheses.map(h => `- ${h.statement} (${h.status})`).join('\n');
296
+ const insights = session.keyInsights.join('\n- ');
297
+ const prompt = `You are helping with step-by-step reasoning about: "${session.problem}"
298
+
299
+ Recent thoughts:
300
+ ${recentThoughts}
301
+
302
+ Current hypotheses:
303
+ ${hypotheses || 'None yet'}
304
+
305
+ Key insights so far:
306
+ ${insights || 'None yet'}
307
+
308
+ Current thought: ${currentThought.thought}
309
+ Current confidence: ${(session.overallConfidence * 100).toFixed(0)}%
310
+
311
+ Provide:
312
+ 1. A brief suggestion to improve the current reasoning (1-2 sentences)
313
+ 2. A recommended next step (1 sentence)
314
+
315
+ Format as JSON: {"suggestion": "...", "nextStep": "..."}`;
316
+ const response = await provider.completeJson(prompt, {
317
+ systemPrompt: 'You are a reasoning assistant. Be concise and helpful.',
318
+ temperature: 0.5,
319
+ maxTokens: 200,
320
+ });
321
+ return response.data ?? { suggestion: '', nextStep: '' };
322
+ }
323
+ /**
324
+ * Generate a progress summary
325
+ */
326
+ generateProgressSummary(session, thoughtNumber) {
327
+ const parts = [];
328
+ parts.push(`Thought ${thoughtNumber}/${session.thoughts.length > 0 ? Math.max(...session.thoughts.map(t => t.totalThoughts)) : '?'}`);
329
+ if (session.hypotheses.length > 0) {
330
+ const confirmed = session.hypotheses.filter(h => h.status === 'confirmed').length;
331
+ const testing = session.hypotheses.filter(h => h.status === 'testing' || h.status === 'proposed').length;
332
+ parts.push(`Hypotheses: ${confirmed} confirmed, ${testing} testing`);
333
+ }
334
+ if (session.keyInsights.length > 0) {
335
+ parts.push(`${session.keyInsights.length} key insights`);
336
+ }
337
+ if (session.deadEnds.length > 0) {
338
+ parts.push(`${session.deadEnds.length} dead ends avoided`);
339
+ }
340
+ if (Object.keys(session.branches).length > 0) {
341
+ parts.push(`${Object.keys(session.branches).length} branches explored`);
342
+ }
343
+ parts.push(`Confidence: ${(session.overallConfidence * 100).toFixed(0)}%`);
344
+ return parts.join(' | ');
345
+ }
346
+ /**
347
+ * Generate final conclusion
348
+ */
349
+ generateConclusion(session) {
350
+ // Find the most confident hypothesis
351
+ const confirmedHypotheses = session.hypotheses
352
+ .filter(h => h.status === 'confirmed')
353
+ .sort((a, b) => b.confidence - a.confidence);
354
+ // Collect supporting evidence
355
+ const supportingThoughts = session.thoughts
356
+ .filter(t => t.confidence && t.confidence > 0.7)
357
+ .map(t => t.thoughtNumber);
358
+ // Find alternative approaches that were considered
359
+ const alternatives = session.hypotheses
360
+ .filter(h => h.status === 'refuted' || h.status === 'partial')
361
+ .map(h => h.statement);
362
+ // Identify caveats
363
+ const caveats = [];
364
+ if (session.deadEnds.length > 0) {
365
+ caveats.push(`${session.deadEnds.length} approach(es) were found to be dead ends`);
366
+ }
367
+ if (session.overallConfidence < 0.7) {
368
+ caveats.push('Moderate uncertainty remains in this conclusion');
369
+ }
370
+ // Generate answer
371
+ let answer = '';
372
+ if (confirmedHypotheses.length > 0) {
373
+ answer = confirmedHypotheses.map(h => h.statement).join('. ');
374
+ }
375
+ else if (session.keyInsights.length > 0) {
376
+ answer = session.keyInsights.join('. ');
377
+ }
378
+ else {
379
+ const lastThought = session.thoughts[session.thoughts.length - 1];
380
+ answer = lastThought?.thought ?? 'No conclusion reached';
381
+ }
382
+ return {
383
+ answer,
384
+ confidence: session.overallConfidence,
385
+ supportingThoughts,
386
+ alternativeConsidered: alternatives,
387
+ caveats,
388
+ };
389
+ }
390
+ /**
391
+ * Get current session
392
+ */
393
+ getSession() {
394
+ return this.currentSession;
395
+ }
396
+ /**
397
+ * Reset the server
398
+ */
399
+ reset() {
400
+ this.sessions.clear();
401
+ this.currentSession = null;
402
+ }
403
+ }
404
+ // ============================================================================
405
+ // Singleton Instance
406
+ // ============================================================================
407
+ const thinkingServer = new AdvancedThinkingServer();
408
+ /**
409
+ * Process a thought using the advanced thinking server
410
+ */
411
+ export async function processThought(input) {
412
+ return thinkingServer.processThought(input);
413
+ }
414
+ /**
415
+ * Start a new thinking session
416
+ */
417
+ export function startSession(problem) {
418
+ return thinkingServer.startSession(problem);
419
+ }
420
+ /**
421
+ * Reset the thinking server
422
+ */
423
+ export function resetThinking() {
424
+ thinkingServer.reset();
425
+ }
426
+ /**
427
+ * Get the current session
428
+ */
429
+ export function getCurrentSession() {
430
+ return thinkingServer.getSession();
431
+ }
432
+ //# sourceMappingURL=think.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"think.js","sourceRoot":"","sources":["../../src/tools/think.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../src/tools/variants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAerB;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,mBAAmB,EAClC,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,uBAAuB,CAAC,CAqDlC;AA6GD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EAAE,EAC3B,QAAQ,EAAE,eAAe,GACxB,aAAa,EAAE,CAYjB;AAED,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAmDD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG;IAClE,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAmCA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,EAAE,GAC1B;IACD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAyBA"}
1
+ {"version":3,"file":"variants.d.ts","sourceRoot":"","sources":["../../src/tools/variants.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAgBrB;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,mBAAmB,EAClC,YAAY,GAAE,MAA8B,GAC3C,OAAO,CAAC,uBAAuB,CAAC,CAgElC;AA6GD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EAAE,EAC3B,QAAQ,EAAE,eAAe,GACxB,aAAa,EAAE,CAYjB;AAED,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mCAAmC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aAAc,SAAQ,eAAe;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAmDD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG;IAClE,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAmCA;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,EAAE,GAC1B;IACD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAyBA"}
@@ -7,7 +7,8 @@
7
7
  * - Use case recommendations
8
8
  * - Diversity in implementation strategies
9
9
  */
10
- import { getOllamaClient, PromptTemplates } from './ollama.js';
10
+ import { getActiveProvider, isNoLLMMode } from '../providers/index.js';
11
+ import { PromptTemplates } from './ollama.js';
11
12
  import { logger, generateId } from '../utils.js';
12
13
  // ============================================================================
13
14
  // Configuration
@@ -22,35 +23,46 @@ const VARIANT_LABELS = ['A', 'B', 'C', 'D', 'E'];
22
23
  */
23
24
  export async function generateVariants(context, decomposition, variantCount = DEFAULT_VARIANT_COUNT) {
24
25
  logger.debug({ taskCount: decomposition.tasks.length, variantCount }, 'Starting variant generation');
25
- const client = getOllamaClient();
26
- const prompt = buildVariantPrompt(context, decomposition, variantCount);
27
- const response = await client.generateJson(prompt, {
28
- systemPrompt: PromptTemplates.variantGeneration,
29
- temperature: 0.7, // Higher temp for creative diversity
30
- maxTokens: 4096,
31
- });
32
- if (response.data) {
33
- const variants = response.data.variants.map((v, index) => ({
34
- id: generateId(),
35
- label: VARIANT_LABELS[index] ?? `V${index + 1}`,
36
- content: v.content,
37
- approach: v.approach,
38
- tradeoffs: {
39
- pros: v.pros,
40
- cons: v.cons,
41
- },
42
- useCase: v.useCase,
43
- }));
44
- const recommendedIndex = Math.min(Math.max(0, response.data.recommendedIndex), variants.length - 1);
45
- return {
46
- variants,
47
- recommendedVariantId: variants[recommendedIndex]?.id ?? variants[0]?.id ?? '',
48
- recommendationReason: response.data.recommendationReason,
49
- };
26
+ // Check if we're in no-LLM mode - use fallback immediately
27
+ if (isNoLLMMode()) {
28
+ logger.debug('No LLM available, using fallback variant generation');
29
+ return fallbackVariant(context, decomposition);
30
+ }
31
+ try {
32
+ const provider = await getActiveProvider();
33
+ const prompt = buildVariantPrompt(context, decomposition, variantCount);
34
+ const response = await provider.completeJson(prompt, {
35
+ systemPrompt: PromptTemplates.variantGeneration,
36
+ temperature: 0.7, // Higher temp for creative diversity
37
+ maxTokens: 4096,
38
+ });
39
+ if (response.data) {
40
+ const variants = response.data.variants.map((v, index) => ({
41
+ id: generateId(),
42
+ label: VARIANT_LABELS[index] ?? `V${index + 1}`,
43
+ content: v.content,
44
+ approach: v.approach,
45
+ tradeoffs: {
46
+ pros: v.pros,
47
+ cons: v.cons,
48
+ },
49
+ useCase: v.useCase,
50
+ }));
51
+ const recommendedIndex = Math.min(Math.max(0, response.data.recommendedIndex), variants.length - 1);
52
+ return {
53
+ variants,
54
+ recommendedVariantId: variants[recommendedIndex]?.id ?? variants[0]?.id ?? '',
55
+ recommendationReason: response.data.recommendationReason,
56
+ };
57
+ }
58
+ // Fallback: generate single variant
59
+ logger.warn('Variant generation failed (no valid data), using fallback');
60
+ return fallbackVariant(context, decomposition);
61
+ }
62
+ catch (error) {
63
+ logger.warn({ error }, 'Variant generation failed, using fallback');
64
+ return fallbackVariant(context, decomposition);
50
65
  }
51
- // Fallback: generate single variant
52
- logger.warn('Variant generation failed, using fallback');
53
- return fallbackVariant(context, decomposition);
54
66
  }
55
67
  /**
56
68
  * Build the variant generation prompt
@@ -1 +1 @@
1
- {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../src/tools/variants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variants.js","sourceRoot":"","sources":["../../src/tools/variants.ts"],"names":[],"mappings":"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"}