atlas-pipeline-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/.env.example +21 -0
  2. package/LICENSE +21 -0
  3. package/README.md +175 -0
  4. package/dist/mcp.d.ts +21 -0
  5. package/dist/mcp.d.ts.map +1 -0
  6. package/dist/mcp.js +404 -0
  7. package/dist/mcp.js.map +1 -0
  8. package/dist/pipeline.d.ts +39 -0
  9. package/dist/pipeline.d.ts.map +1 -0
  10. package/dist/pipeline.js +355 -0
  11. package/dist/pipeline.js.map +1 -0
  12. package/dist/providers/index.d.ts +14 -0
  13. package/dist/providers/index.d.ts.map +1 -0
  14. package/dist/providers/index.js +13 -0
  15. package/dist/providers/index.js.map +1 -0
  16. package/dist/providers/llm-provider.d.ts +71 -0
  17. package/dist/providers/llm-provider.d.ts.map +1 -0
  18. package/dist/providers/llm-provider.js +357 -0
  19. package/dist/providers/llm-provider.js.map +1 -0
  20. package/dist/server.d.ts +27 -0
  21. package/dist/server.d.ts.map +1 -0
  22. package/dist/server.js +312 -0
  23. package/dist/server.js.map +1 -0
  24. package/dist/tools/context.d.ts +23 -0
  25. package/dist/tools/context.d.ts.map +1 -0
  26. package/dist/tools/context.js +363 -0
  27. package/dist/tools/context.js.map +1 -0
  28. package/dist/tools/critique.d.ts +40 -0
  29. package/dist/tools/critique.d.ts.map +1 -0
  30. package/dist/tools/critique.js +315 -0
  31. package/dist/tools/critique.js.map +1 -0
  32. package/dist/tools/decompose.d.ts +34 -0
  33. package/dist/tools/decompose.d.ts.map +1 -0
  34. package/dist/tools/decompose.js +328 -0
  35. package/dist/tools/decompose.js.map +1 -0
  36. package/dist/tools/git.d.ts +66 -0
  37. package/dist/tools/git.d.ts.map +1 -0
  38. package/dist/tools/git.js +333 -0
  39. package/dist/tools/git.js.map +1 -0
  40. package/dist/tools/intent.d.ts +24 -0
  41. package/dist/tools/intent.d.ts.map +1 -0
  42. package/dist/tools/intent.js +245 -0
  43. package/dist/tools/intent.js.map +1 -0
  44. package/dist/tools/ollama.d.ts +104 -0
  45. package/dist/tools/ollama.d.ts.map +1 -0
  46. package/dist/tools/ollama.js +299 -0
  47. package/dist/tools/ollama.js.map +1 -0
  48. package/dist/tools/optimize.d.ts +64 -0
  49. package/dist/tools/optimize.d.ts.map +1 -0
  50. package/dist/tools/optimize.js +302 -0
  51. package/dist/tools/optimize.js.map +1 -0
  52. package/dist/tools/variants.d.ts +49 -0
  53. package/dist/tools/variants.d.ts.map +1 -0
  54. package/dist/tools/variants.js +252 -0
  55. package/dist/tools/variants.js.map +1 -0
  56. package/dist/types.d.ts +447 -0
  57. package/dist/types.d.ts.map +1 -0
  58. package/dist/types.js +25 -0
  59. package/dist/types.js.map +1 -0
  60. package/dist/utils.d.ts +117 -0
  61. package/dist/utils.d.ts.map +1 -0
  62. package/dist/utils.js +279 -0
  63. package/dist/utils.js.map +1 -0
  64. package/package.json +77 -0
@@ -0,0 +1,315 @@
1
+ /**
2
+ * Atlas Server - Critique Tool
3
+ *
4
+ * Provides thorough code review and critique:
5
+ * - Correctness analysis
6
+ * - Performance evaluation
7
+ * - Maintainability assessment
8
+ * - Security review
9
+ * - Best practices check
10
+ */
11
+ import { getOllamaClient, PromptTemplates } from './ollama.js';
12
+ import { logger } from '../utils.js';
13
+ // ============================================================================
14
+ // Critique Generation
15
+ // ============================================================================
16
+ /**
17
+ * Critique all solution variants
18
+ */
19
+ export async function critiqueVariants(variants) {
20
+ logger.debug({ variantCount: variants.length }, 'Starting critique');
21
+ const critiques = [];
22
+ for (const variant of variants) {
23
+ const critique = await critiqueVariant(variant);
24
+ critiques.push(critique);
25
+ }
26
+ // Find the best variant
27
+ const viableCritiques = critiques.filter((c) => c.isViable);
28
+ const bestCritique = viableCritiques.length > 0
29
+ ? viableCritiques.reduce((best, current) => current.qualityScore > best.qualityScore ? current : best)
30
+ : critiques.reduce((best, current) => current.qualityScore > best.qualityScore ? current : best);
31
+ return {
32
+ critiques,
33
+ bestVariantId: bestCritique.variantId,
34
+ summary: generateCritiqueSummary(critiques),
35
+ };
36
+ }
37
+ /**
38
+ * Critique a single variant
39
+ */
40
+ async function critiqueVariant(variant) {
41
+ const client = getOllamaClient();
42
+ const prompt = buildCritiquePrompt(variant);
43
+ const response = await client.generateJson(prompt, {
44
+ systemPrompt: PromptTemplates.codeCritique,
45
+ temperature: 0.3, // Lower temp for analytical work
46
+ maxTokens: 2048,
47
+ });
48
+ if (response.data) {
49
+ const assessment = normalizeAssessment(response.data.assessment);
50
+ const issues = response.data.issues.map((issue) => ({
51
+ severity: normalizeSeverity(issue.severity),
52
+ category: normalizeCategory(issue.category),
53
+ description: issue.description,
54
+ location: issue.location,
55
+ suggestedFix: issue.suggestedFix,
56
+ }));
57
+ return {
58
+ variantId: variant.id,
59
+ qualityScore: calculateQualityScore(assessment, issues),
60
+ assessment,
61
+ issues,
62
+ suggestions: response.data.suggestions,
63
+ isViable: response.data.isViable,
64
+ };
65
+ }
66
+ // Fallback critique
67
+ return fallbackCritique(variant);
68
+ }
69
+ /**
70
+ * Build the critique prompt for a variant
71
+ */
72
+ function buildCritiquePrompt(variant) {
73
+ return `Critically analyze this solution variant.
74
+
75
+ ## Variant ${variant.label}: ${variant.approach}
76
+
77
+ ### Code
78
+ \`\`\`
79
+ ${variant.content}
80
+ \`\`\`
81
+
82
+ ### Stated Pros
83
+ ${variant.tradeoffs.pros.map((p) => `- ${p}`).join('\n')}
84
+
85
+ ### Stated Cons
86
+ ${variant.tradeoffs.cons.map((c) => `- ${c}`).join('\n')}
87
+
88
+ ### Target Use Case
89
+ ${variant.useCase}
90
+
91
+ ## Analyze For:
92
+ 1. **Correctness**: Does it solve the problem correctly? Any bugs?
93
+ 2. **Performance**: Are there efficiency issues? Memory leaks? N+1 queries?
94
+ 3. **Maintainability**: Is it readable? Well-structured? Documented?
95
+ 4. **Security**: Any vulnerabilities? Input validation? Injection risks?
96
+ 5. **Best Practices**: Does it follow conventions? Modern patterns?
97
+
98
+ ## Output Format
99
+ {
100
+ "assessment": {
101
+ "correctness": 0-100,
102
+ "performance": 0-100,
103
+ "maintainability": 0-100,
104
+ "security": 0-100,
105
+ "bestPractices": 0-100
106
+ },
107
+ "issues": [
108
+ {
109
+ "severity": "critical|major|minor|suggestion",
110
+ "category": "correctness|performance|maintainability|security|bestPractices",
111
+ "description": "Clear description of the issue",
112
+ "location": "Line or section where issue occurs (optional)",
113
+ "suggestedFix": "How to fix it (optional)"
114
+ }
115
+ ],
116
+ "suggestions": ["General improvement suggestions"],
117
+ "isViable": true/false
118
+ }`;
119
+ }
120
+ // ============================================================================
121
+ // Fallback and Normalization
122
+ // ============================================================================
123
+ /**
124
+ * Fallback critique when LLM fails
125
+ */
126
+ function fallbackCritique(variant) {
127
+ // Basic heuristic analysis
128
+ const hasTypeAnnotations = variant.content.includes(': ');
129
+ const hasErrorHandling = variant.content.includes('try') ||
130
+ variant.content.includes('catch') ||
131
+ variant.content.includes('throw');
132
+ const hasComments = variant.content.includes('//') || variant.content.includes('/*');
133
+ const isShort = variant.content.length < 500;
134
+ const assessment = {
135
+ correctness: 60, // Assume reasonable correctness
136
+ performance: isShort ? 70 : 50,
137
+ maintainability: hasComments ? 65 : 45,
138
+ security: hasErrorHandling ? 60 : 40,
139
+ bestPractices: hasTypeAnnotations ? 70 : 50,
140
+ };
141
+ const issues = [];
142
+ if (!hasErrorHandling) {
143
+ issues.push({
144
+ severity: 'minor',
145
+ category: 'security',
146
+ description: 'No error handling detected',
147
+ suggestedFix: 'Add try-catch blocks for error handling',
148
+ });
149
+ }
150
+ if (!hasComments) {
151
+ issues.push({
152
+ severity: 'suggestion',
153
+ category: 'maintainability',
154
+ description: 'Code lacks comments',
155
+ suggestedFix: 'Add comments explaining complex logic',
156
+ });
157
+ }
158
+ return {
159
+ variantId: variant.id,
160
+ qualityScore: calculateQualityScore(assessment, issues),
161
+ assessment,
162
+ issues,
163
+ suggestions: [
164
+ 'Consider adding more comprehensive error handling',
165
+ 'Add documentation comments for public APIs',
166
+ ],
167
+ isViable: true,
168
+ };
169
+ }
170
+ /**
171
+ * Normalize assessment scores to valid range
172
+ */
173
+ function normalizeAssessment(assessment) {
174
+ const normalize = (value) => Math.min(100, Math.max(0, Math.round(value)));
175
+ return {
176
+ correctness: normalize(assessment['correctness'] ?? 50),
177
+ performance: normalize(assessment['performance'] ?? 50),
178
+ maintainability: normalize(assessment['maintainability'] ?? 50),
179
+ security: normalize(assessment['security'] ?? 50),
180
+ bestPractices: normalize(assessment['bestPractices'] ?? 50),
181
+ };
182
+ }
183
+ /**
184
+ * Normalize severity string
185
+ */
186
+ function normalizeSeverity(severity) {
187
+ const normalized = severity.toLowerCase();
188
+ if (normalized === 'critical')
189
+ return 'critical';
190
+ if (normalized === 'major')
191
+ return 'major';
192
+ if (normalized === 'minor')
193
+ return 'minor';
194
+ return 'suggestion';
195
+ }
196
+ /**
197
+ * Normalize category string
198
+ */
199
+ function normalizeCategory(category) {
200
+ const normalized = category.toLowerCase();
201
+ if (normalized.includes('correct'))
202
+ return 'correctness';
203
+ if (normalized.includes('perform'))
204
+ return 'performance';
205
+ if (normalized.includes('maintain') || normalized.includes('read'))
206
+ return 'maintainability';
207
+ if (normalized.includes('secur'))
208
+ return 'security';
209
+ return 'bestPractices';
210
+ }
211
+ /**
212
+ * Calculate overall quality score
213
+ */
214
+ function calculateQualityScore(assessment, issues) {
215
+ // Weighted average of assessment scores
216
+ const weights = {
217
+ correctness: 0.3,
218
+ performance: 0.2,
219
+ maintainability: 0.2,
220
+ security: 0.15,
221
+ bestPractices: 0.15,
222
+ };
223
+ let score = Object.entries(assessment).reduce((total, [key, value]) => total + value * (weights[key] ?? 0.1), 0);
224
+ // Deduct for issues
225
+ const severityPenalty = {
226
+ critical: 15,
227
+ major: 8,
228
+ minor: 3,
229
+ suggestion: 1,
230
+ };
231
+ for (const issue of issues) {
232
+ score -= severityPenalty[issue.severity];
233
+ }
234
+ return Math.min(100, Math.max(0, Math.round(score)));
235
+ }
236
+ /**
237
+ * Generate summary of all critiques
238
+ */
239
+ function generateCritiqueSummary(critiques) {
240
+ const viableCount = critiques.filter((c) => c.isViable).length;
241
+ const avgScore = critiques.reduce((sum, c) => sum + c.qualityScore, 0) / critiques.length;
242
+ const totalIssues = critiques.reduce((sum, c) => sum + c.issues.length, 0);
243
+ const criticalIssues = critiques.reduce((sum, c) => sum + c.issues.filter((i) => i.severity === 'critical').length, 0);
244
+ return `Reviewed ${critiques.length} variants. ${viableCount} are viable. ` +
245
+ `Average quality score: ${avgScore.toFixed(0)}/100. ` +
246
+ `Total issues found: ${totalIssues} (${criticalIssues} critical).`;
247
+ }
248
+ // ============================================================================
249
+ // Critique Analysis Utilities
250
+ // ============================================================================
251
+ /**
252
+ * Get the most common issues across variants
253
+ */
254
+ export function getCommonIssues(critiques) {
255
+ const issuesByCategory = new Map();
256
+ for (const critique of critiques) {
257
+ for (const issue of critique.issues) {
258
+ const existing = issuesByCategory.get(issue.category) ?? [];
259
+ existing.push(issue.description);
260
+ issuesByCategory.set(issue.category, existing);
261
+ }
262
+ }
263
+ return Array.from(issuesByCategory.entries())
264
+ .map(([category, descriptions]) => ({
265
+ category,
266
+ count: descriptions.length,
267
+ examples: [...new Set(descriptions)].slice(0, 3),
268
+ }))
269
+ .sort((a, b) => b.count - a.count);
270
+ }
271
+ /**
272
+ * Get improvement priorities based on critiques
273
+ */
274
+ export function getImprovementPriorities(critiques) {
275
+ const areas = [
276
+ 'correctness',
277
+ 'performance',
278
+ 'maintainability',
279
+ 'security',
280
+ 'bestPractices',
281
+ ];
282
+ return areas
283
+ .map((area) => {
284
+ const scores = critiques.map((c) => c.assessment[area]);
285
+ const averageScore = scores.reduce((a, b) => a + b, 0) / scores.length;
286
+ let priority;
287
+ if (averageScore < 50)
288
+ priority = 'high';
289
+ else if (averageScore < 70)
290
+ priority = 'medium';
291
+ else
292
+ priority = 'low';
293
+ return { area, averageScore, priority };
294
+ })
295
+ .sort((a, b) => a.averageScore - b.averageScore);
296
+ }
297
+ /**
298
+ * Compare two critiques
299
+ */
300
+ export function compareCritiques(a, b) {
301
+ const comparison = {};
302
+ for (const key of Object.keys(a.assessment)) {
303
+ const diff = a.assessment[key] - b.assessment[key];
304
+ if (diff > 5)
305
+ comparison[key] = 'a';
306
+ else if (diff < -5)
307
+ comparison[key] = 'b';
308
+ else
309
+ comparison[key] = 'tie';
310
+ }
311
+ const margin = a.qualityScore - b.qualityScore;
312
+ const winner = margin > 0 ? a.variantId : margin < 0 ? b.variantId : 'tie';
313
+ return { winner, margin: Math.abs(margin), comparison };
314
+ }
315
+ //# sourceMappingURL=critique.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"critique.js","sourceRoot":"","sources":["../../src/tools/critique.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Atlas Server - Task Decomposition Tool
3
+ *
4
+ * Breaks down complex user requests into:
5
+ * - Smaller, actionable subtasks
6
+ * - Dependency relationships
7
+ * - Priority and complexity estimates
8
+ * - Suggested execution order
9
+ */
10
+ import type { PipelineContext, DecomposedTask, DecompositionResult } from '../types.js';
11
+ /**
12
+ * Decompose a complex request into actionable tasks
13
+ */
14
+ export declare function decomposeTask(context: PipelineContext): Promise<DecompositionResult>;
15
+ /**
16
+ * Estimate total effort from tasks
17
+ */
18
+ export declare function estimateTotalEffort(tasks: DecomposedTask[]): {
19
+ minHours: number;
20
+ maxHours: number;
21
+ averageHours: number;
22
+ };
23
+ /**
24
+ * Get critical path (longest dependency chain)
25
+ */
26
+ export declare function getCriticalPath(tasks: DecomposedTask[]): string[];
27
+ /**
28
+ * Check if tasks form a valid DAG (no cycles)
29
+ */
30
+ export declare function validateTaskGraph(tasks: DecomposedTask[]): {
31
+ valid: boolean;
32
+ cycleNodes?: string[];
33
+ };
34
+ //# sourceMappingURL=decompose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decompose.d.ts","sourceRoot":"","sources":["../../src/tools/decompose.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AAerB;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAe9B;AAyRD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAiBA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,CA8BjE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG;IAC1D,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAmCA"}