wiggum-cli 0.2.6 → 0.3.1

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 (89) hide show
  1. package/README.md +73 -60
  2. package/dist/ai/agents/codebase-analyst.d.ts +11 -0
  3. package/dist/ai/agents/codebase-analyst.d.ts.map +1 -0
  4. package/dist/ai/agents/codebase-analyst.js +146 -0
  5. package/dist/ai/agents/codebase-analyst.js.map +1 -0
  6. package/dist/ai/agents/index.d.ts +16 -0
  7. package/dist/ai/agents/index.d.ts.map +1 -0
  8. package/dist/ai/agents/index.js +85 -0
  9. package/dist/ai/agents/index.js.map +1 -0
  10. package/dist/ai/agents/orchestrator.d.ts +15 -0
  11. package/dist/ai/agents/orchestrator.d.ts.map +1 -0
  12. package/dist/ai/agents/orchestrator.js +181 -0
  13. package/dist/ai/agents/orchestrator.js.map +1 -0
  14. package/dist/ai/agents/stack-researcher.d.ts +15 -0
  15. package/dist/ai/agents/stack-researcher.d.ts.map +1 -0
  16. package/dist/ai/agents/stack-researcher.js +269 -0
  17. package/dist/ai/agents/stack-researcher.js.map +1 -0
  18. package/dist/ai/agents/types.d.ts +123 -0
  19. package/dist/ai/agents/types.d.ts.map +1 -0
  20. package/dist/ai/agents/types.js +6 -0
  21. package/dist/ai/agents/types.js.map +1 -0
  22. package/dist/ai/enhancer.d.ts +39 -1
  23. package/dist/ai/enhancer.d.ts.map +1 -1
  24. package/dist/ai/enhancer.js +78 -36
  25. package/dist/ai/enhancer.js.map +1 -1
  26. package/dist/ai/index.d.ts +4 -2
  27. package/dist/ai/index.d.ts.map +1 -1
  28. package/dist/ai/index.js +5 -1
  29. package/dist/ai/index.js.map +1 -1
  30. package/dist/ai/prompts.d.ts +2 -2
  31. package/dist/ai/prompts.d.ts.map +1 -1
  32. package/dist/ai/prompts.js +66 -4
  33. package/dist/ai/prompts.js.map +1 -1
  34. package/dist/ai/providers.d.ts +28 -0
  35. package/dist/ai/providers.d.ts.map +1 -1
  36. package/dist/ai/providers.js +40 -0
  37. package/dist/ai/providers.js.map +1 -1
  38. package/dist/ai/tools/context7.d.ts +34 -0
  39. package/dist/ai/tools/context7.d.ts.map +1 -0
  40. package/dist/ai/tools/context7.js +135 -0
  41. package/dist/ai/tools/context7.js.map +1 -0
  42. package/dist/ai/tools/index.d.ts +7 -0
  43. package/dist/ai/tools/index.d.ts.map +1 -0
  44. package/dist/ai/tools/index.js +7 -0
  45. package/dist/ai/tools/index.js.map +1 -0
  46. package/dist/ai/tools/tavily.d.ts +27 -0
  47. package/dist/ai/tools/tavily.d.ts.map +1 -0
  48. package/dist/ai/tools/tavily.js +75 -0
  49. package/dist/ai/tools/tavily.js.map +1 -0
  50. package/dist/cli.d.ts.map +1 -1
  51. package/dist/cli.js +14 -12
  52. package/dist/cli.js.map +1 -1
  53. package/dist/commands/init.d.ts +2 -5
  54. package/dist/commands/init.d.ts.map +1 -1
  55. package/dist/commands/init.js +233 -154
  56. package/dist/commands/init.js.map +1 -1
  57. package/dist/utils/colors.d.ts.map +1 -1
  58. package/dist/utils/colors.js +10 -3
  59. package/dist/utils/colors.js.map +1 -1
  60. package/dist/utils/header.d.ts +1 -1
  61. package/dist/utils/header.js +3 -3
  62. package/dist/utils/header.js.map +1 -1
  63. package/dist/utils/json-repair.d.ts +14 -0
  64. package/dist/utils/json-repair.d.ts.map +1 -0
  65. package/dist/utils/json-repair.js +103 -0
  66. package/dist/utils/json-repair.js.map +1 -0
  67. package/dist/utils/tracing.d.ts +25 -0
  68. package/dist/utils/tracing.d.ts.map +1 -0
  69. package/dist/utils/tracing.js +64 -0
  70. package/dist/utils/tracing.js.map +1 -0
  71. package/package.json +5 -3
  72. package/src/ai/agents/codebase-analyst.ts +169 -0
  73. package/src/ai/agents/index.ts +147 -0
  74. package/src/ai/agents/orchestrator.ts +218 -0
  75. package/src/ai/agents/stack-researcher.ts +294 -0
  76. package/src/ai/agents/types.ts +132 -0
  77. package/src/ai/enhancer.ts +128 -38
  78. package/src/ai/index.ts +31 -1
  79. package/src/ai/prompts.ts +67 -4
  80. package/src/ai/providers.ts +48 -0
  81. package/src/ai/tools/context7.ts +167 -0
  82. package/src/ai/tools/index.ts +17 -0
  83. package/src/ai/tools/tavily.ts +101 -0
  84. package/src/cli.ts +14 -12
  85. package/src/commands/init.ts +278 -173
  86. package/src/utils/colors.ts +11 -3
  87. package/src/utils/header.ts +3 -3
  88. package/src/utils/json-repair.ts +113 -0
  89. package/src/utils/tracing.ts +76 -0
@@ -35,6 +35,30 @@ export interface McpRecommendations {
35
35
  /** Recommended but optional MCP servers */
36
36
  recommended?: string[];
37
37
  }
38
+ /**
39
+ * Technology-specific testing and debugging tools
40
+ */
41
+ export interface TechnologyTools {
42
+ /** Testing commands specific to the detected technologies */
43
+ testing?: string[];
44
+ /** Debugging/inspection tools for the stack */
45
+ debugging?: string[];
46
+ /** Linting/validation tools beyond the standard ones */
47
+ validation?: string[];
48
+ }
49
+ /**
50
+ * Technology-specific best practices
51
+ */
52
+ export interface TechnologyPractices {
53
+ /** The primary project type (e.g., "MCP Server", "REST API", "React SPA") */
54
+ projectType?: string;
55
+ /** Practices specific to the detected technologies */
56
+ practices?: string[];
57
+ /** Anti-patterns to avoid for this stack */
58
+ antiPatterns?: string[];
59
+ /** Links to relevant documentation (optional) */
60
+ documentationHints?: string[];
61
+ }
38
62
  /**
39
63
  * AI analysis result - focused on actionable outputs
40
64
  */
@@ -49,6 +73,10 @@ export interface AIAnalysisResult {
49
73
  mcpServers?: McpRecommendations;
50
74
  /** Additional technologies that may have been missed */
51
75
  possibleMissedTechnologies?: string[];
76
+ /** Technology-specific tools for testing/debugging */
77
+ technologyTools?: TechnologyTools;
78
+ /** Technology-specific best practices based on detected stack */
79
+ technologyPractices?: TechnologyPractices;
52
80
  }
53
81
  /**
54
82
  * Enhanced scan result with AI insights
@@ -68,6 +96,10 @@ export interface EnhancerOptions {
68
96
  verbose?: boolean;
69
97
  /** Use agentic mode with tools for deeper codebase exploration */
70
98
  agentic?: boolean;
99
+ /** Tavily API key for web search (optional) */
100
+ tavilyApiKey?: string;
101
+ /** Context7 API key for documentation lookup (optional) */
102
+ context7ApiKey?: string;
71
103
  }
72
104
  /**
73
105
  * AI Enhancer class
@@ -78,6 +110,8 @@ export declare class AIEnhancer {
78
110
  private model?;
79
111
  private verbose;
80
112
  private agentic;
113
+ private tavilyApiKey?;
114
+ private context7ApiKey?;
81
115
  constructor(options?: EnhancerOptions);
82
116
  /**
83
117
  * Check if AI enhancement is available
@@ -96,9 +130,13 @@ export declare class AIEnhancer {
96
130
  */
97
131
  private enhanceSimple;
98
132
  /**
99
- * Agentic enhancement mode - use tools to explore codebase
133
+ * Agentic enhancement mode - use multi-agent system to explore codebase
100
134
  */
101
135
  private enhanceAgentic;
136
+ /**
137
+ * Legacy agentic mode (fallback when multi-agent fails)
138
+ */
139
+ private enhanceLegacyAgentic;
102
140
  }
103
141
  /**
104
142
  * Convenience function to enhance scan results with AI
@@ -1 +1 @@
1
- {"version":3,"file":"enhancer.d.ts","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAkC,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAY,KAAK,UAAU,EAAgD,MAAM,gBAAgB,CAAC;AAKzG;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,6CAA6C;IAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,kDAAkD;IAClD,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,iCAAiC;IACjC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,wDAAwD;IACxD,0BAA0B,CAAC,EAAE,MAAM,EAAE,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAqFD;;;GAGG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,GAAE,eAAoB;IAOzC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAI3B;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgElE;;OAEG;YACW,aAAa;IAmB3B;;OAEG;YACW,cAAc;CA+E7B;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,UAAU,EAAE,UAAU,EACtB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAG7B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAwEnE"}
1
+ {"version":3,"file":"enhancer.d.ts","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,14 @@
2
2
  * AI Enhancer Module
3
3
  * Uses AI to analyze the codebase for deeper insights
4
4
  */
5
- import { generateText, stepCountIs } from 'ai';
5
+ import { stepCountIs } from 'ai';
6
6
  import { getModel, hasApiKey, getApiKeyEnvVar, isReasoningModel } from './providers.js';
7
7
  import { SYSTEM_PROMPT, SYSTEM_PROMPT_AGENTIC, createAnalysisPrompt } from './prompts.js';
8
8
  import { createExplorationTools } from './tools.js';
9
+ import { runMultiAgentAnalysis } from './agents/index.js';
9
10
  import { logger } from '../utils/logger.js';
11
+ import { parseJsonSafe } from '../utils/json-repair.js';
12
+ import { getTracedAI } from '../utils/tracing.js';
10
13
  /**
11
14
  * Parse AI response JSON safely
12
15
  */
@@ -17,43 +20,23 @@ function parseAIResponse(text, verbose = false) {
17
20
  }
18
21
  return null;
19
22
  }
20
- try {
21
- // Try to extract JSON from the response
22
- // The AI might wrap it in markdown code blocks
23
- let jsonText = text;
24
- // Remove markdown code blocks if present
25
- const jsonMatch = text.match(/```(?:json)?\s*([\s\S]*?)```/);
26
- if (jsonMatch) {
27
- jsonText = jsonMatch[1];
28
- }
29
- // Try to find JSON object - use greedy match for the outermost braces
30
- // This handles cases where there's text before/after the JSON
31
- const objectMatch = jsonText.match(/\{[\s\S]*\}/);
32
- if (objectMatch) {
33
- jsonText = objectMatch[0];
34
- }
35
- // Try to parse JSON
36
- const result = JSON.parse(jsonText);
37
- // Validate that we got the expected structure
38
- if (!result || typeof result !== 'object') {
39
- if (verbose) {
40
- logger.warn('AI response parsed but is not an object');
41
- }
42
- return null;
43
- }
44
- return result;
45
- }
46
- catch (error) {
23
+ // Use safe JSON parser with repair capabilities
24
+ const result = parseJsonSafe(text);
25
+ if (!result) {
47
26
  if (verbose) {
48
- logger.warn(`Failed to parse AI response as JSON: ${error instanceof Error ? error.message : String(error)}`);
49
- // Log first 500 chars of response for debugging
27
+ logger.warn('Failed to parse AI response as JSON');
50
28
  logger.warn(`Response preview: ${text.substring(0, 500)}...`);
51
29
  }
52
- else {
53
- logger.warn('Failed to parse AI response as JSON');
30
+ return null;
31
+ }
32
+ // Validate that we got the expected structure
33
+ if (typeof result !== 'object') {
34
+ if (verbose) {
35
+ logger.warn('AI response parsed but is not an object');
54
36
  }
55
37
  return null;
56
38
  }
39
+ return result;
57
40
  }
58
41
  /**
59
42
  * Apply AI insights to enhance the detected stack
@@ -87,11 +70,15 @@ export class AIEnhancer {
87
70
  model;
88
71
  verbose;
89
72
  agentic;
73
+ tavilyApiKey;
74
+ context7ApiKey;
90
75
  constructor(options = {}) {
91
76
  this.provider = options.provider || 'anthropic';
92
77
  this.model = options.model;
93
78
  this.verbose = options.verbose || false;
94
79
  this.agentic = options.agentic || false;
80
+ this.tavilyApiKey = options.tavilyApiKey;
81
+ this.context7ApiKey = options.context7ApiKey;
95
82
  }
96
83
  /**
97
84
  * Check if AI enhancement is available
@@ -170,6 +157,7 @@ export class AIEnhancer {
170
157
  */
171
158
  async enhanceSimple(model, modelId, scanResult) {
172
159
  const prompt = createAnalysisPrompt(scanResult);
160
+ const { generateText } = getTracedAI();
173
161
  const { text } = await generateText({
174
162
  model,
175
163
  system: SYSTEM_PROMPT,
@@ -177,14 +165,36 @@ export class AIEnhancer {
177
165
  maxOutputTokens: 2000,
178
166
  // Reasoning models don't support temperature
179
167
  ...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
168
+ experimental_telemetry: {
169
+ isEnabled: true,
170
+ metadata: { phase: 'simple-analysis', projectRoot: scanResult.projectRoot },
171
+ },
180
172
  });
181
173
  return parseAIResponse(text);
182
174
  }
183
175
  /**
184
- * Agentic enhancement mode - use tools to explore codebase
176
+ * Agentic enhancement mode - use multi-agent system to explore codebase
185
177
  */
186
178
  async enhanceAgentic(model, modelId, scanResult) {
179
+ // Use the multi-agent system for deeper analysis
180
+ const multiAgentResult = await runMultiAgentAnalysis(model, modelId, scanResult, {
181
+ tavilyApiKey: this.tavilyApiKey,
182
+ context7ApiKey: this.context7ApiKey,
183
+ verbose: this.verbose,
184
+ });
185
+ if (!multiAgentResult) {
186
+ // Fall back to simple agentic mode
187
+ return this.enhanceLegacyAgentic(model, modelId, scanResult);
188
+ }
189
+ // Convert MultiAgentAnalysis to AIAnalysisResult for backward compatibility
190
+ return convertMultiAgentToAIAnalysis(multiAgentResult);
191
+ }
192
+ /**
193
+ * Legacy agentic mode (fallback when multi-agent fails)
194
+ */
195
+ async enhanceLegacyAgentic(model, modelId, scanResult) {
187
196
  const tools = createExplorationTools(scanResult.projectRoot);
197
+ const { generateText } = getTracedAI();
188
198
  const prompt = `Analyze this codebase and produce configuration for AI-assisted development.
189
199
 
190
200
  Project: ${scanResult.projectRoot}
@@ -215,7 +225,6 @@ When done exploring, output your final analysis as valid JSON matching this stru
215
225
  "possibleMissedTechnologies": ["Redis"]
216
226
  }`;
217
227
  // Use agentic loop - AI will call tools until it has enough info
218
- // stopWhen: stepCountIs(10) allows up to 10 tool-calling steps
219
228
  const result = await generateText({
220
229
  model,
221
230
  system: SYSTEM_PROMPT_AGENTIC,
@@ -223,8 +232,11 @@ When done exploring, output your final analysis as valid JSON matching this stru
223
232
  tools,
224
233
  stopWhen: stepCountIs(10),
225
234
  maxOutputTokens: 4000,
226
- // Reasoning models don't support temperature
227
235
  ...(isReasoningModel(modelId) ? {} : { temperature: 0.3 }),
236
+ experimental_telemetry: {
237
+ isEnabled: true,
238
+ metadata: { phase: 'legacy-agentic', projectRoot: scanResult.projectRoot },
239
+ },
228
240
  });
229
241
  // Try to get text from the result
230
242
  let textToParse = result.text;
@@ -233,7 +245,6 @@ When done exploring, output your final analysis as valid JSON matching this stru
233
245
  if (this.verbose) {
234
246
  logger.info(`No direct text output, checking ${result.steps?.length || 0} steps...`);
235
247
  }
236
- // Look through steps for text content (from last to first)
237
248
  const steps = result.steps || [];
238
249
  for (let i = steps.length - 1; i >= 0; i--) {
239
250
  const step = steps[i];
@@ -252,6 +263,37 @@ When done exploring, output your final analysis as valid JSON matching this stru
252
263
  return parseAIResponse(textToParse, this.verbose);
253
264
  }
254
265
  }
266
+ /**
267
+ * Convert MultiAgentAnalysis to AIAnalysisResult for backward compatibility
268
+ */
269
+ function convertMultiAgentToAIAnalysis(multiAgent) {
270
+ const { codebaseAnalysis, stackResearch, mcpServers } = multiAgent;
271
+ return {
272
+ projectContext: {
273
+ entryPoints: codebaseAnalysis.projectContext.entryPoints,
274
+ keyDirectories: codebaseAnalysis.projectContext.keyDirectories,
275
+ namingConventions: codebaseAnalysis.projectContext.namingConventions,
276
+ },
277
+ commands: codebaseAnalysis.commands,
278
+ implementationGuidelines: codebaseAnalysis.implementationGuidelines,
279
+ mcpServers: {
280
+ essential: mcpServers.essential,
281
+ recommended: mcpServers.recommended,
282
+ },
283
+ possibleMissedTechnologies: codebaseAnalysis.possibleMissedTechnologies,
284
+ technologyTools: {
285
+ testing: stackResearch.testingTools,
286
+ debugging: stackResearch.debuggingTools,
287
+ validation: [],
288
+ },
289
+ technologyPractices: {
290
+ projectType: codebaseAnalysis.projectContext.projectType,
291
+ practices: stackResearch.bestPractices,
292
+ antiPatterns: stackResearch.antiPatterns,
293
+ documentationHints: stackResearch.documentationHints,
294
+ },
295
+ };
296
+ }
255
297
  /**
256
298
  * Convenience function to enhance scan results with AI
257
299
  */
@@ -1 +1 @@
1
- {"version":3,"file":"enhancer.js","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enhancer.js","sourceRoot":"","sources":["../../src/ai/enhancer.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@
2
2
  * AI Module
3
3
  * Main export for AI-enhanced analysis functionality
4
4
  */
5
- export { type AIProvider, type ProviderConfig, getModel, hasApiKey, getAvailableProvider, getApiKeyEnvVar, } from './providers.js';
5
+ export { type AIProvider, type ProviderConfig, type OptionalService, getModel, hasApiKey, getAvailableProvider, getApiKeyEnvVar, OPTIONAL_SERVICE_ENV_VARS, hasTavilyKey, getTavilyKey, hasContext7Key, getContext7Key, getOptionalServicesStatus, } from './providers.js';
6
6
  export { formatStackForPrompt, SYSTEM_PROMPT, SYSTEM_PROMPT_AGENTIC, createAnalysisPrompt, createValidationPrompt, createRecommendationsPrompt, } from './prompts.js';
7
7
  export { createExplorationTools, RIPGREP_SKILL, } from './tools.js';
8
- export { type ProjectContext, type DetectedCommands, type McpRecommendations, type AIAnalysisResult, type EnhancedScanResult, type EnhancerOptions, AIEnhancer, enhanceWithAI, formatAIAnalysis, } from './enhancer.js';
8
+ export { createTavilySearchTool, canUseTavily, createContext7Tool, canUseContext7, } from './tools/index.js';
9
+ export { runMultiAgentAnalysis, runCodebaseAnalyst, runStackResearcher, runOrchestrator, mergeAgentResults, type CodebaseAnalysis, type StackResearch, type McpRecommendations, type MultiAgentAnalysis, type AgentCapabilities, type AgentOptions, } from './agents/index.js';
10
+ export { type ProjectContext, type DetectedCommands, type McpRecommendations as McpRecommendationsLegacy, type AIAnalysisResult, type EnhancedScanResult, type EnhancerOptions, AIEnhancer, enhanceWithAI, formatAIAnalysis, } from './enhancer.js';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,sBAAsB,EACtB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,sBAAsB,EACtB,aAAa,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,IAAI,wBAAwB,EACnD,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
package/dist/ai/index.js CHANGED
@@ -3,11 +3,15 @@
3
3
  * Main export for AI-enhanced analysis functionality
4
4
  */
5
5
  // Provider configuration
6
- export { getModel, hasApiKey, getAvailableProvider, getApiKeyEnvVar, } from './providers.js';
6
+ export { getModel, hasApiKey, getAvailableProvider, getApiKeyEnvVar, OPTIONAL_SERVICE_ENV_VARS, hasTavilyKey, getTavilyKey, hasContext7Key, getContext7Key, getOptionalServicesStatus, } from './providers.js';
7
7
  // Analysis prompts
8
8
  export { formatStackForPrompt, SYSTEM_PROMPT, SYSTEM_PROMPT_AGENTIC, createAnalysisPrompt, createValidationPrompt, createRecommendationsPrompt, } from './prompts.js';
9
9
  // Tools for agentic exploration
10
10
  export { createExplorationTools, RIPGREP_SKILL, } from './tools.js';
11
+ // New tools (Tavily, Context7)
12
+ export { createTavilySearchTool, canUseTavily, createContext7Tool, canUseContext7, } from './tools/index.js';
13
+ // Agents
14
+ export { runMultiAgentAnalysis, runCodebaseAnalyst, runStackResearcher, runOrchestrator, mergeAgentResults, } from './agents/index.js';
11
15
  // AI enhancer
12
16
  export { AIEnhancer, enhanceWithAI, formatAIAnalysis, } from './enhancer.js';
13
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yBAAyB;AACzB,OAAO,EAGL,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,gCAAgC;AAChC,OAAO,EACL,sBAAsB,EACtB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,cAAc;AACd,OAAO,EAOL,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yBAAyB;AACzB,OAAO,EAIL,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,yBAAyB,EACzB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,gCAAgC;AAChC,OAAO,EACL,sBAAsB,EACtB,aAAa,GACd,MAAM,YAAY,CAAC;AAEpB,+BAA+B;AAC/B,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,SAAS;AACT,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,GAOlB,MAAM,mBAAmB,CAAC;AAE3B,cAAc;AACd,OAAO,EAOL,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,eAAe,CAAC"}
@@ -10,11 +10,11 @@ export declare function formatStackForPrompt(stack: DetectedStack): string;
10
10
  /**
11
11
  * System prompt for codebase analysis (agentic mode)
12
12
  */
13
- export declare const SYSTEM_PROMPT_AGENTIC = "You are an expert codebase analyst with tools to explore the project.\n\nYour goal is to thoroughly understand the codebase structure and produce actionable configuration for AI-assisted development.\n\n## Exploration Strategy\n1. First, list the root directory to understand project structure\n2. Read package.json to understand scripts and dependencies\n3. Search for key patterns: entry points, routes, components, tests\n4. Identify naming conventions by examining existing files\n5. Look for existing documentation (.md files, README)\n\n## Tools Available\nYou have these tools to explore the codebase:\n- searchCode: Search using ripgrep patterns\n- readFile: Read file contents\n- listDirectory: List directory structure\n- getPackageInfo: Get package.json info\n\n\n## ripgrep Code Search Skill\n\n### Essential Patterns\n\n**Find definitions:**\n- Python functions: pattern=\"^def \\w+\\(\", fileType=\"py\"\n- JS/TS functions: pattern=\"^(export )?(function|const) \\w+\", fileType=\"ts\"\n- Classes: pattern=\"^class \\w+\", fileType=\"py\"\n\n**Find symbol usage (CRITICAL: use word boundaries):**\n- Exact word: pattern=\"\\bSymbolName\\b\"\n- Literal string: pattern=\"exact.string\", literal=true\n\n**Find imports:**\n- ES imports: pattern=\"^import.*from\", fileType=\"ts\"\n- CommonJS: pattern=\"require\\(\", fileType=\"js\"\n\n**File type options:**\n- py (Python)\n- js (JavaScript)\n- ts (TypeScript)\n- rust (Rust)\n- go (Go)\n\n**Performance tips:**\n1. Always use fileType when possible\n2. Use literal=true for exact strings\n3. Use \\b for word boundaries (prevents partial matches)\n4. Keep maxResults reasonable\n\n**Word boundaries are critical:**\n- WITHOUT: pattern=\"log\" matches \"logger\", \"blogger\", \"catalog\"\n- WITH: pattern=\"\\blog\\b\" matches only \"log\"\n\n\n## Output Requirements\nAfter exploration, output valid JSON with:\n- projectContext: entry points, key directories, naming conventions\n- commands: test, lint, build, dev commands from package.json\n- implementationGuidelines: short actionable rules (5-10 words each, max 7)\n- mcpServers: essential and recommended servers\n- possibleMissedTechnologies: technologies that might be in use\n\nBe concise. Focus on WHAT TO DO, not what exists.";
13
+ export declare const SYSTEM_PROMPT_AGENTIC = "You are an expert codebase analyst with tools to explore the project.\n\nYour goal is to thoroughly understand the codebase structure and produce actionable configuration for AI-assisted development.\n\n## Exploration Strategy\n1. First, list the root directory to understand project structure\n2. Read package.json to understand scripts and dependencies\n3. Search for key patterns: entry points, routes, components, tests\n4. Identify naming conventions by examining existing files\n5. Look for existing documentation (.md files, README)\n6. Determine the PROJECT TYPE (e.g., MCP server, REST API, React SPA, CLI tool, library)\n7. Based on project type, include TECHNOLOGY-SPECIFIC testing/debugging tools\n\n## Tools Available\nYou have these tools to explore the codebase:\n- searchCode: Search using ripgrep patterns\n- readFile: Read file contents\n- listDirectory: List directory structure\n- getPackageInfo: Get package.json info\n\n\n## ripgrep Code Search Skill\n\n### Essential Patterns\n\n**Find definitions:**\n- Python functions: pattern=\"^def \\w+\\(\", fileType=\"py\"\n- JS/TS functions: pattern=\"^(export )?(function|const) \\w+\", fileType=\"ts\"\n- Classes: pattern=\"^class \\w+\", fileType=\"py\"\n\n**Find symbol usage (CRITICAL: use word boundaries):**\n- Exact word: pattern=\"\\bSymbolName\\b\"\n- Literal string: pattern=\"exact.string\", literal=true\n\n**Find imports:**\n- ES imports: pattern=\"^import.*from\", fileType=\"ts\"\n- CommonJS: pattern=\"require\\(\", fileType=\"js\"\n\n**File type options:**\n- py (Python)\n- js (JavaScript)\n- ts (TypeScript)\n- rust (Rust)\n- go (Go)\n\n**Performance tips:**\n1. Always use fileType when possible\n2. Use literal=true for exact strings\n3. Use \\b for word boundaries (prevents partial matches)\n4. Keep maxResults reasonable\n\n**Word boundaries are critical:**\n- WITHOUT: pattern=\"log\" matches \"logger\", \"blogger\", \"catalog\"\n- WITH: pattern=\"\\blog\\b\" matches only \"log\"\n\n\n## Technology-Specific Guidance\n\nWhen you detect specific project types, include their specialized tools:\n\n**MCP Server Projects** (detected by @modelcontextprotocol dependencies):\n- Testing: \"npx @anthropic-ai/mcp-inspector\" for interactive debugging\n- Practices: Follow MCP protocol spec, validate tool schemas, handle resources properly\n\n**REST APIs** (Express, Fastify, Hono, etc.):\n- Testing: API testing tools (supertest, httpie, curl examples)\n- Debugging: Request logging, OpenAPI validation\n\n**React/Next.js Projects**:\n- Testing: React Testing Library patterns, Storybook for components\n- Debugging: React DevTools, component isolation\n\n**CLI Tools**:\n- Testing: Integration tests with actual CLI invocation\n- Debugging: --verbose flags, debug logging patterns\n\n**Libraries/Packages**:\n- Testing: Unit tests with high coverage, type checking\n- Practices: Semantic versioning, changelog maintenance\n\n## Output Requirements\nAfter exploration, output valid JSON with:\n- projectContext: entry points, key directories, naming conventions\n- commands: test, lint, build, dev commands from package.json\n- implementationGuidelines: short actionable rules (5-10 words each, max 7)\n- mcpServers: essential and recommended servers\n- possibleMissedTechnologies: technologies that might be in use\n- technologyTools: testing, debugging, and validation tools specific to this project type\n- technologyPractices: projectType, practices, antiPatterns, documentationHints\n\nBe concise. Focus on WHAT TO DO, not what exists.\nInclude SPECIFIC testing/debugging commands for the detected project type.";
14
14
  /**
15
15
  * System prompt for codebase analysis (simple mode - no tools)
16
16
  */
17
- export declare const SYSTEM_PROMPT = "You are analyzing a codebase to help configure AI-assisted development tools.\n\nYour goal is to produce SHORT, ACTIONABLE output that helps AI coding assistants work effectively on this codebase.\n\nRules:\n- Output valid JSON only\n- Be extremely concise (5-10 words per item max)\n- Focus on WHAT TO DO, not what exists\n- Include specific file paths and commands\n- Max 5-7 items per array\n- No explanations, just actionable rules";
17
+ export declare const SYSTEM_PROMPT = "You are analyzing a codebase to help configure AI-assisted development tools.\n\nYour goal is to produce SHORT, ACTIONABLE output that helps AI coding assistants work effectively on this codebase.\n\nRules:\n- Output valid JSON only\n- Be extremely concise (5-10 words per item max)\n- Focus on WHAT TO DO, not what exists\n- Include specific file paths and commands\n- Max 5-7 items per array\n- No explanations, just actionable rules\n- CRITICAL: Include technology-specific testing and debugging tools\n- Identify the PROJECT TYPE and provide stack-specific practices\n\nTechnology-specific tools to consider:\n- MCP servers: \"npx @anthropic-ai/mcp-inspector\" for testing\n- REST APIs: supertest, curl examples, OpenAPI validation\n- React apps: React Testing Library, Storybook, DevTools\n- CLI tools: integration tests, --verbose flags\n- Libraries: high coverage unit tests, semantic versioning";
18
18
  /**
19
19
  * Create the codebase analysis prompt
20
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CA4EjE;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,gtEA4BgB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,aAAa,wbAUe,CAAC;AAE1C;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA6CnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA2BrE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA0B1E"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGrE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CA4EjE;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB,whHAyDyC,CAAC;AAE5E;;GAEG;AACH,eAAO,MAAM,aAAa,24BAmBiC,CAAC;AAE5D;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAqEnE;AAGD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA2BrE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CA0B1E"}
@@ -89,6 +89,8 @@ Your goal is to thoroughly understand the codebase structure and produce actiona
89
89
  3. Search for key patterns: entry points, routes, components, tests
90
90
  4. Identify naming conventions by examining existing files
91
91
  5. Look for existing documentation (.md files, README)
92
+ 6. Determine the PROJECT TYPE (e.g., MCP server, REST API, React SPA, CLI tool, library)
93
+ 7. Based on project type, include TECHNOLOGY-SPECIFIC testing/debugging tools
92
94
 
93
95
  ## Tools Available
94
96
  You have these tools to explore the codebase:
@@ -99,6 +101,30 @@ You have these tools to explore the codebase:
99
101
 
100
102
  ${RIPGREP_SKILL}
101
103
 
104
+ ## Technology-Specific Guidance
105
+
106
+ When you detect specific project types, include their specialized tools:
107
+
108
+ **MCP Server Projects** (detected by @modelcontextprotocol dependencies):
109
+ - Testing: "npx @anthropic-ai/mcp-inspector" for interactive debugging
110
+ - Practices: Follow MCP protocol spec, validate tool schemas, handle resources properly
111
+
112
+ **REST APIs** (Express, Fastify, Hono, etc.):
113
+ - Testing: API testing tools (supertest, httpie, curl examples)
114
+ - Debugging: Request logging, OpenAPI validation
115
+
116
+ **React/Next.js Projects**:
117
+ - Testing: React Testing Library patterns, Storybook for components
118
+ - Debugging: React DevTools, component isolation
119
+
120
+ **CLI Tools**:
121
+ - Testing: Integration tests with actual CLI invocation
122
+ - Debugging: --verbose flags, debug logging patterns
123
+
124
+ **Libraries/Packages**:
125
+ - Testing: Unit tests with high coverage, type checking
126
+ - Practices: Semantic versioning, changelog maintenance
127
+
102
128
  ## Output Requirements
103
129
  After exploration, output valid JSON with:
104
130
  - projectContext: entry points, key directories, naming conventions
@@ -106,8 +132,11 @@ After exploration, output valid JSON with:
106
132
  - implementationGuidelines: short actionable rules (5-10 words each, max 7)
107
133
  - mcpServers: essential and recommended servers
108
134
  - possibleMissedTechnologies: technologies that might be in use
135
+ - technologyTools: testing, debugging, and validation tools specific to this project type
136
+ - technologyPractices: projectType, practices, antiPatterns, documentationHints
109
137
 
110
- Be concise. Focus on WHAT TO DO, not what exists.`;
138
+ Be concise. Focus on WHAT TO DO, not what exists.
139
+ Include SPECIFIC testing/debugging commands for the detected project type.`;
111
140
  /**
112
141
  * System prompt for codebase analysis (simple mode - no tools)
113
142
  */
@@ -121,7 +150,16 @@ Rules:
121
150
  - Focus on WHAT TO DO, not what exists
122
151
  - Include specific file paths and commands
123
152
  - Max 5-7 items per array
124
- - No explanations, just actionable rules`;
153
+ - No explanations, just actionable rules
154
+ - CRITICAL: Include technology-specific testing and debugging tools
155
+ - Identify the PROJECT TYPE and provide stack-specific practices
156
+
157
+ Technology-specific tools to consider:
158
+ - MCP servers: "npx @anthropic-ai/mcp-inspector" for testing
159
+ - REST APIs: supertest, curl examples, OpenAPI validation
160
+ - React apps: React Testing Library, Storybook, DevTools
161
+ - CLI tools: integration tests, --verbose flags
162
+ - Libraries: high coverage unit tests, semantic versioning`;
125
163
  /**
126
164
  * Create the codebase analysis prompt
127
165
  */
@@ -161,10 +199,34 @@ Respond with this JSON structure (keep values SHORT - 5-10 words max per item):
161
199
  "essential": ["filesystem", "git"],
162
200
  "recommended": ["docker", "postgres"]
163
201
  },
164
- "possibleMissedTechnologies": ["Redis", "WebSockets"]
202
+ "possibleMissedTechnologies": ["Redis", "WebSockets"],
203
+ "technologyTools": {
204
+ "testing": ["npx @anthropic-ai/mcp-inspector", "node test/test-*.js"],
205
+ "debugging": ["--verbose flag", "DEBUG=* env var"],
206
+ "validation": ["npx tsc --noEmit", "npm run lint"]
207
+ },
208
+ "technologyPractices": {
209
+ "projectType": "MCP Server",
210
+ "practices": [
211
+ "Validate tool input schemas with Zod",
212
+ "Return structured JSON from tools",
213
+ "Handle errors with proper MCP error codes"
214
+ ],
215
+ "antiPatterns": [
216
+ "Don't expose internal errors to clients",
217
+ "Avoid blocking operations in tool handlers"
218
+ ],
219
+ "documentationHints": [
220
+ "MCP spec: modelcontextprotocol.io/docs",
221
+ "Inspector: modelcontextprotocol.io/docs/tools/inspector"
222
+ ]
223
+ }
165
224
  }
166
225
 
167
- Important:
226
+ CRITICAL:
227
+ - Identify the PROJECT TYPE first (MCP Server, REST API, React SPA, CLI, Library, etc.)
228
+ - Include technology-specific testing tools (e.g., MCP Inspector for MCP projects)
229
+ - Include technology-specific debugging approaches
168
230
  - implementationGuidelines should be short rules (not analysis prompts)
169
231
  - Include actual file paths from this project
170
232
  - Infer commands from package.json patterns
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,14 @@ export interface ProviderConfig {
15
15
  provider: AIProvider;
16
16
  modelId: string;
17
17
  }
18
+ /**
19
+ * Environment variable names for optional services
20
+ */
21
+ export declare const OPTIONAL_SERVICE_ENV_VARS: {
22
+ readonly tavily: "TAVILY_API_KEY";
23
+ readonly context7: "CONTEXT7_API_KEY";
24
+ };
25
+ export type OptionalService = keyof typeof OPTIONAL_SERVICE_ENV_VARS;
18
26
  /**
19
27
  * Model option with label and value
20
28
  */
@@ -48,4 +56,24 @@ export declare function getApiKeyEnvVar(provider: AIProvider): string;
48
56
  * Check if a model is a reasoning model that doesn't support temperature
49
57
  */
50
58
  export declare function isReasoningModel(modelId: string): boolean;
59
+ /**
60
+ * Check if Tavily API key is available
61
+ */
62
+ export declare function hasTavilyKey(): boolean;
63
+ /**
64
+ * Get the Tavily API key
65
+ */
66
+ export declare function getTavilyKey(): string | undefined;
67
+ /**
68
+ * Check if Context7 API key is available
69
+ */
70
+ export declare function hasContext7Key(): boolean;
71
+ /**
72
+ * Get the Context7 API key
73
+ */
74
+ export declare function getContext7Key(): string | undefined;
75
+ /**
76
+ * Get the status of all optional services
77
+ */
78
+ export declare function getOptionalServicesStatus(): Record<OptionalService, boolean>;
51
79
  //# sourceMappingURL=providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/ai/providers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAkB9D,CAAC;AAYF;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAGvD;AAmBD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,GAAE,UAAwB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,cAAc,CA0CnG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,UAAU,GAAG,IAAI,CAUxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAE5D;AAaD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/ai/providers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAWD;;GAEG;AACH,eAAO,MAAM,yBAAyB;;;CAG5B,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,yBAAyB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,CAkB9D,CAAC;AAYF;;GAEG;AACH,wBAAgB,SAAS,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAGvD;AAmBD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,GAAE,UAAwB,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,cAAc,CA0CnG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,UAAU,GAAG,IAAI,CAUxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,CAE5D;AAaD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,GAAG,SAAS,CAEjD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAK5E"}
@@ -12,6 +12,13 @@ const API_KEY_ENV_VARS = {
12
12
  openai: 'OPENAI_API_KEY',
13
13
  openrouter: 'OPENROUTER_API_KEY',
14
14
  };
15
+ /**
16
+ * Environment variable names for optional services
17
+ */
18
+ export const OPTIONAL_SERVICE_ENV_VARS = {
19
+ tavily: 'TAVILY_API_KEY',
20
+ context7: 'CONTEXT7_API_KEY',
21
+ };
15
22
  /**
16
23
  * Available models for each provider
17
24
  */
@@ -139,4 +146,37 @@ const REASONING_MODELS = [
139
146
  export function isReasoningModel(modelId) {
140
147
  return REASONING_MODELS.some(m => modelId.startsWith(m));
141
148
  }
149
+ /**
150
+ * Check if Tavily API key is available
151
+ */
152
+ export function hasTavilyKey() {
153
+ return !!process.env[OPTIONAL_SERVICE_ENV_VARS.tavily];
154
+ }
155
+ /**
156
+ * Get the Tavily API key
157
+ */
158
+ export function getTavilyKey() {
159
+ return process.env[OPTIONAL_SERVICE_ENV_VARS.tavily];
160
+ }
161
+ /**
162
+ * Check if Context7 API key is available
163
+ */
164
+ export function hasContext7Key() {
165
+ return !!process.env[OPTIONAL_SERVICE_ENV_VARS.context7];
166
+ }
167
+ /**
168
+ * Get the Context7 API key
169
+ */
170
+ export function getContext7Key() {
171
+ return process.env[OPTIONAL_SERVICE_ENV_VARS.context7];
172
+ }
173
+ /**
174
+ * Get the status of all optional services
175
+ */
176
+ export function getOptionalServicesStatus() {
177
+ return {
178
+ tavily: hasTavilyKey(),
179
+ context7: hasContext7Key(),
180
+ };
181
+ }
142
182
  //# sourceMappingURL=providers.js.map