@vfarcic/dot-ai 0.112.0 → 0.114.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 (50) hide show
  1. package/dist/core/ai-provider-factory.d.ts +0 -15
  2. package/dist/core/ai-provider-factory.d.ts.map +1 -1
  3. package/dist/core/ai-provider-factory.js +12 -33
  4. package/dist/core/ai-provider.interface.d.ts +12 -0
  5. package/dist/core/ai-provider.interface.d.ts.map +1 -1
  6. package/dist/core/embedding-service.d.ts +35 -2
  7. package/dist/core/embedding-service.d.ts.map +1 -1
  8. package/dist/core/embedding-service.js +228 -15
  9. package/dist/core/model-config.d.ts +6 -0
  10. package/dist/core/model-config.d.ts.map +1 -1
  11. package/dist/core/model-config.js +7 -1
  12. package/dist/core/platform-utils.d.ts +10 -0
  13. package/dist/core/platform-utils.d.ts.map +1 -1
  14. package/dist/core/platform-utils.js +56 -0
  15. package/dist/core/providers/anthropic-provider.d.ts +2 -0
  16. package/dist/core/providers/anthropic-provider.d.ts.map +1 -1
  17. package/dist/core/providers/anthropic-provider.js +10 -0
  18. package/dist/core/providers/provider-debug-utils.d.ts +5 -1
  19. package/dist/core/providers/provider-debug-utils.d.ts.map +1 -1
  20. package/dist/core/providers/provider-debug-utils.js +13 -24
  21. package/dist/core/providers/vercel-provider.d.ts +2 -0
  22. package/dist/core/providers/vercel-provider.d.ts.map +1 -1
  23. package/dist/core/providers/vercel-provider.js +154 -63
  24. package/dist/core/schema.d.ts +0 -96
  25. package/dist/core/schema.d.ts.map +1 -1
  26. package/dist/core/schema.js +4 -112
  27. package/dist/core/unified-creation-session.d.ts.map +1 -1
  28. package/dist/core/unified-creation-session.js +3 -1
  29. package/dist/evaluation/eval-runner.js +185 -41
  30. package/dist/evaluation/evaluators/base-comparative.d.ts +4 -1
  31. package/dist/evaluation/evaluators/base-comparative.d.ts.map +1 -1
  32. package/dist/evaluation/evaluators/base-comparative.js +36 -1
  33. package/dist/evaluation/platform-synthesizer.d.ts +54 -0
  34. package/dist/evaluation/platform-synthesizer.d.ts.map +1 -0
  35. package/dist/evaluation/platform-synthesizer.js +368 -0
  36. package/dist/evaluation/run-platform-synthesis.d.ts +9 -0
  37. package/dist/evaluation/run-platform-synthesis.d.ts.map +1 -0
  38. package/dist/evaluation/run-platform-synthesis.js +45 -0
  39. package/dist/interfaces/mcp.d.ts.map +1 -1
  40. package/dist/interfaces/mcp.js +23 -29
  41. package/dist/tools/generate-manifests.d.ts.map +1 -1
  42. package/dist/tools/generate-manifests.js +3 -8
  43. package/dist/tools/recommend.d.ts.map +1 -1
  44. package/dist/tools/recommend.js +3 -16
  45. package/dist/tools/remediate.d.ts.map +1 -1
  46. package/dist/tools/remediate.js +10 -2
  47. package/dist/tools/version.d.ts +1 -0
  48. package/dist/tools/version.d.ts.map +1 -1
  49. package/dist/tools/version.js +11 -4
  50. package/package.json +15 -1
@@ -25,6 +25,10 @@ class AnthropicProvider {
25
25
  this.validateApiKey();
26
26
  this.client = new sdk_1.default({
27
27
  apiKey: this.apiKey,
28
+ // Enable 1M token context window for Claude Sonnet 4 (5x increase from 200K)
29
+ defaultHeaders: {
30
+ 'anthropic-beta': 'context-1m-2025-08-07'
31
+ }
28
32
  });
29
33
  }
30
34
  validateApiKey() {
@@ -41,6 +45,12 @@ class AnthropicProvider {
41
45
  getDefaultModel() {
42
46
  return (0, model_config_1.getCurrentModel)('anthropic');
43
47
  }
48
+ getModelName() {
49
+ return this.model;
50
+ }
51
+ getSDKProvider() {
52
+ return 'anthropic';
53
+ }
44
54
  isInitialized() {
45
55
  return this.client !== undefined;
46
56
  }
@@ -40,7 +40,11 @@ export interface EvaluationMetrics {
40
40
  };
41
41
  user_intent: string;
42
42
  interaction_id: string;
43
- failure_analysis?: string;
43
+ failure_analysis?: string | {
44
+ failure_type: "timeout" | "error" | "infrastructure";
45
+ failure_reason: string;
46
+ time_to_failure: number;
47
+ };
44
48
  }
45
49
  /**
46
50
  * Determine if dataset generation should be skipped for specific operations
@@ -1 +1 @@
1
- {"version":3,"file":"provider-debug-utils.d.ts","sourceRoot":"","sources":["../../../src/core/providers/provider-debug-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-debug-utils.d.ts","sourceRoot":"","sources":["../../../src/core/providers/provider-debug-utils.ts"],"names":[],"mappings":"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"}
@@ -89,41 +89,30 @@ function logEvaluationDataset(metrics, debugMode = false) {
89
89
  if (shouldSkipDatasetGeneration(metrics.test_scenario))
90
90
  return;
91
91
  try {
92
- const evalDir = path.join(process.cwd(), 'eval', 'datasets');
93
- // Ensure eval datasets directory exists
94
- if (!fs.existsSync(evalDir)) {
95
- fs.mkdirSync(evalDir, { recursive: true });
96
- }
97
92
  // Parse operation for tool name
98
93
  const operationParts = metrics.operation.split('-');
99
94
  const toolName = operationParts[0]; // e.g., "remediate"
100
95
  // Check if this is a comparative evaluation
101
96
  const isComparativeEvaluation = metrics.operation.includes('-comparative-');
97
+ // Use different directories for comparative evaluations vs raw test datasets
98
+ const baseDir = isComparativeEvaluation ?
99
+ path.join(process.cwd(), 'eval', 'results') : // Comparative evaluation results go here
100
+ path.join(process.cwd(), 'eval', 'datasets'); // Raw test datasets go here
101
+ // Ensure directory exists
102
+ if (!fs.existsSync(baseDir)) {
103
+ fs.mkdirSync(baseDir, { recursive: true });
104
+ }
102
105
  let datasetFile;
103
106
  const timestamp = new Date().toISOString().replace(/[:.]/g, '').split('T').join('_');
104
107
  if (isComparativeEvaluation) {
105
- // For comparative evaluations, don't include single model name since it compares multiple models
106
- datasetFile = path.join(evalDir, `${toolName}_comparative_evaluation_${timestamp}.jsonl`);
108
+ // For comparative evaluations, save to results directory
109
+ datasetFile = path.join(baseDir, `${toolName}_comparative_evaluation_${timestamp}.jsonl`);
107
110
  }
108
111
  else {
109
- // Extract model name from modelVersion or sdk for single-model datasets
110
- let modelName = 'unknown';
111
- if (metrics.modelVersion) {
112
- if (metrics.modelVersion.includes('sonnet')) {
113
- modelName = 'sonnet';
114
- }
115
- else if (metrics.modelVersion.includes('gpt-5-pro')) {
116
- modelName = 'gpt-pro';
117
- }
118
- else if (metrics.modelVersion.includes('gpt')) {
119
- modelName = 'gpt';
120
- }
121
- else if (metrics.modelVersion.includes('gemini')) {
122
- modelName = 'gemini';
123
- }
124
- }
112
+ // Use modelVersion directly for accurate model identification
113
+ const modelName = metrics.modelVersion || 'unknown';
125
114
  // Create filename with interaction ID, SDK, model, and timestamp for single-model datasets
126
- datasetFile = path.join(evalDir, `${toolName}_${metrics.interaction_id}_${metrics.sdk}_${modelName}_${timestamp}.jsonl`);
115
+ datasetFile = path.join(baseDir, `${toolName}_${metrics.interaction_id}_${metrics.sdk}_${modelName}_${timestamp}.jsonl`);
127
116
  }
128
117
  // Transform metrics into OpenAI Evals format (no ideal field - using model-graded evaluation)
129
118
  const evalEntry = {
@@ -16,6 +16,8 @@ export declare class VercelProvider implements AIProvider {
16
16
  private initializeModel;
17
17
  getProviderType(): string;
18
18
  getDefaultModel(): string;
19
+ getModelName(): string;
20
+ getSDKProvider(): string;
19
21
  isInitialized(): boolean;
20
22
  private logDebugIfEnabled;
21
23
  sendMessage(message: string, operation?: string, evaluationContext?: {
@@ -1 +1 @@
1
- {"version":3,"file":"vercel-provider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/vercel-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,0BAA0B,CAAC;AAMlC,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,aAAa,CAAM;gBAEf,MAAM,EAAE,gBAAgB;IAUpC,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;IAiCvB,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,MAAM;IAIzB,aAAa,IAAI,OAAO;IAIxB,OAAO,CAAC,iBAAiB;IAiBnB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAkB,EAC7B,iBAAiB,CAAC,EAAE;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,OAAO,CAAC,UAAU,CAAC;IAwEtB;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CAwQ/D"}
1
+ {"version":3,"file":"vercel-provider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/vercel-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,0BAA0B,CAAC;AASlC,qBAAa,cAAe,YAAW,UAAU;IAC/C,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,aAAa,CAAM;gBAEf,MAAM,EAAE,gBAAgB;IAUpC,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;IA4CvB,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM;IAItB,cAAc,IAAI,MAAM;IAIxB,aAAa,IAAI,OAAO;IAIxB,OAAO,CAAC,iBAAiB;IAiBnB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAkB,EAC7B,iBAAiB,CAAC,EAAE;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,GACA,OAAO,CAAC,UAAU,CAAC;IAoGtB;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA0T/D"}
@@ -11,8 +11,13 @@ const ai_1 = require("ai");
11
11
  const openai_1 = require("@ai-sdk/openai");
12
12
  const google_1 = require("@ai-sdk/google");
13
13
  const anthropic_1 = require("@ai-sdk/anthropic");
14
+ const xai_1 = require("@ai-sdk/xai");
15
+ const mistral_1 = require("@ai-sdk/mistral");
16
+ const deepseek_1 = require("@ai-sdk/deepseek");
14
17
  const provider_debug_utils_1 = require("./provider-debug-utils");
15
18
  const model_config_1 = require("../model-config");
19
+ // Get all supported provider keys dynamically from CURRENT_MODELS
20
+ const SUPPORTED_PROVIDERS = Object.keys(model_config_1.CURRENT_MODELS);
16
21
  class VercelProvider {
17
22
  providerType;
18
23
  model;
@@ -31,38 +36,47 @@ class VercelProvider {
31
36
  if (!this.apiKey) {
32
37
  throw new Error(`API key is required for ${this.providerType} provider`);
33
38
  }
34
- if (!['openai', 'openai_pro', 'google', 'anthropic'].includes(this.providerType)) {
35
- throw new Error(`Unsupported provider: ${this.providerType}. Must be 'openai', 'openai_pro', 'google', or 'anthropic'`);
39
+ if (!SUPPORTED_PROVIDERS.includes(this.providerType)) {
40
+ throw new Error(`Unsupported provider: ${this.providerType}. Must be one of: ${SUPPORTED_PROVIDERS.join(', ')}`);
36
41
  }
37
42
  }
38
43
  initializeModel() {
39
44
  try {
45
+ let provider;
40
46
  switch (this.providerType) {
41
47
  case 'openai':
42
- case 'openai_pro': {
43
- const provider = (0, openai_1.createOpenAI)({
44
- apiKey: this.apiKey
45
- });
46
- this.modelInstance = provider(this.model);
48
+ case 'openai_pro':
49
+ provider = (0, openai_1.createOpenAI)({ apiKey: this.apiKey });
47
50
  break;
48
- }
49
- case 'google': {
50
- const provider = (0, google_1.createGoogleGenerativeAI)({
51
- apiKey: this.apiKey
52
- });
53
- this.modelInstance = provider(this.model);
51
+ case 'google':
52
+ case 'google_fast':
53
+ provider = (0, google_1.createGoogleGenerativeAI)({ apiKey: this.apiKey });
54
54
  break;
55
- }
56
- case 'anthropic': {
57
- const provider = (0, anthropic_1.createAnthropic)({
58
- apiKey: this.apiKey
55
+ case 'anthropic':
56
+ case 'anthropic_haiku':
57
+ provider = (0, anthropic_1.createAnthropic)({
58
+ apiKey: this.apiKey,
59
+ // Enable 1M token context window for Claude Sonnet 4 (5x increase from 200K)
60
+ // Required for models like claude-sonnet-4-5-20250929
61
+ headers: {
62
+ 'anthropic-beta': 'context-1m-2025-08-07'
63
+ }
59
64
  });
60
- this.modelInstance = provider(this.model);
61
65
  break;
62
- }
66
+ case 'xai':
67
+ case 'xai_fast':
68
+ provider = (0, xai_1.createXai)({ apiKey: this.apiKey });
69
+ break;
70
+ case 'mistral':
71
+ provider = (0, mistral_1.createMistral)({ apiKey: this.apiKey });
72
+ break;
73
+ case 'deepseek':
74
+ provider = (0, deepseek_1.createDeepSeek)({ apiKey: this.apiKey });
75
+ break;
63
76
  default:
64
77
  throw new Error(`Cannot initialize model for provider: ${this.providerType}`);
65
78
  }
79
+ this.modelInstance = provider(this.model);
66
80
  }
67
81
  catch (error) {
68
82
  throw new Error(`Failed to initialize ${this.providerType} model: ${error}`);
@@ -74,6 +88,12 @@ class VercelProvider {
74
88
  getDefaultModel() {
75
89
  return model_config_1.CURRENT_MODELS[this.providerType];
76
90
  }
91
+ getModelName() {
92
+ return this.model;
93
+ }
94
+ getSDKProvider() {
95
+ return this.providerType;
96
+ }
77
97
  isInitialized() {
78
98
  return this.modelInstance !== undefined;
79
99
  }
@@ -95,10 +115,11 @@ class VercelProvider {
95
115
  const startTime = Date.now();
96
116
  try {
97
117
  // Use Vercel AI SDK generateText
98
- // Note: maxTokens omitted - let SDK/provider use model-specific optimal defaults
118
+ // Set maxOutputTokens to 8192 for better support of comprehensive responses
99
119
  const result = await (0, ai_1.generateText)({
100
120
  model: this.modelInstance,
101
121
  prompt: message,
122
+ maxOutputTokens: 8192, // Increased from default 4096 to support longer responses
102
123
  });
103
124
  const response = {
104
125
  content: result.text,
@@ -144,6 +165,31 @@ class VercelProvider {
144
165
  return response;
145
166
  }
146
167
  catch (error) {
168
+ // Generate dataset for failed AI interaction
169
+ if (this.debugMode && evaluationContext) {
170
+ const failureMetrics = {
171
+ operation,
172
+ user_intent: evaluationContext.user_intent || '',
173
+ ai_response_summary: `Error: ${error instanceof Error ? error.message : String(error)}`,
174
+ durationMs: Date.now() - startTime,
175
+ inputTokens: 0,
176
+ outputTokens: 0,
177
+ iterationCount: 0,
178
+ toolCallCount: 0,
179
+ status: 'failed',
180
+ completionReason: 'error',
181
+ sdk: this.getProviderType(),
182
+ modelVersion: this.model,
183
+ test_scenario: operation,
184
+ interaction_id: evaluationContext.interaction_id || (0, provider_debug_utils_1.generateDebugId)(operation),
185
+ failure_analysis: {
186
+ failure_type: "error",
187
+ failure_reason: `${this.providerType} API error: ${error instanceof Error ? error.message : String(error)}`,
188
+ time_to_failure: Date.now() - startTime
189
+ }
190
+ };
191
+ (0, provider_debug_utils_1.logEvaluationDataset)(failureMetrics, this.debugMode);
192
+ }
147
193
  throw new Error(`${this.providerType} API error: ${error}`);
148
194
  }
149
195
  }
@@ -181,7 +227,7 @@ class VercelProvider {
181
227
  });
182
228
  // Add cache control ONLY to last tool for Anthropic (max 4 cache breakpoints)
183
229
  // This caches the system prompt + all tools together
184
- if (this.providerType === 'anthropic' && isLastTool) {
230
+ if ((this.providerType === 'anthropic' || this.providerType === 'anthropic_haiku') && isLastTool) {
185
231
  toolDef.providerOptions = {
186
232
  anthropic: {
187
233
  cacheControl: { type: 'ephemeral' }
@@ -201,7 +247,7 @@ class VercelProvider {
201
247
  // Anthropic caching requires system messages in messages array with providerOptions
202
248
  const messages = [];
203
249
  let systemParam;
204
- if (this.providerType === 'anthropic') {
250
+ if (this.providerType === 'anthropic' || this.providerType === 'anthropic_haiku') {
205
251
  // For Anthropic: Put system in messages array with cacheControl
206
252
  messages.push({
207
253
  role: 'system',
@@ -242,13 +288,94 @@ class VercelProvider {
242
288
  model: this.modelInstance,
243
289
  messages,
244
290
  tools,
245
- stopWhen: (0, ai_1.stepCountIs)(maxIterations)
291
+ stopWhen: (0, ai_1.stepCountIs)(maxIterations),
292
+ maxOutputTokens: 8192 // Increased from default 4096 to support longer responses
246
293
  };
247
294
  // Add system parameter for non-Anthropic providers
248
295
  if (systemParam) {
249
296
  generateConfig.system = systemParam;
250
297
  }
251
298
  const result = await (0, ai_1.generateText)(generateConfig);
299
+ // Log raw response immediately after generation (before any processing)
300
+ let debugFiles = null;
301
+ if (this.debugMode) {
302
+ // Build the full conversation context like Anthropic provider does
303
+ let finalPrompt = `System: ${config.systemPrompt}\n\n`;
304
+ // Always include the original user intent first
305
+ finalPrompt += `user: ${config.userMessage}\n\n`;
306
+ // Then add the conversation history if available
307
+ if (result.response?.messages) {
308
+ finalPrompt += result.response.messages
309
+ .map(msg => {
310
+ if (typeof msg.content === 'string') {
311
+ return `${msg.role}: ${msg.content}`;
312
+ }
313
+ else if (Array.isArray(msg.content)) {
314
+ const contentParts = msg.content.map(part => {
315
+ if (part.type === 'text') {
316
+ return part.text;
317
+ }
318
+ else if (part.type === 'tool-call') {
319
+ return `[TOOL_USE: ${part.toolName}]`;
320
+ }
321
+ else if (part.type === 'tool-result') {
322
+ const resultData = part.output || part.result || part.content;
323
+ if (typeof resultData === 'string') {
324
+ return `[TOOL_RESULT: ${part.toolName}]\n${resultData}`;
325
+ }
326
+ else if (resultData) {
327
+ return `[TOOL_RESULT: ${part.toolName}]\n${JSON.stringify(resultData, null, 2)}`;
328
+ }
329
+ return `[TOOL_RESULT: ${part.toolName}]`;
330
+ }
331
+ return `[${part.type}]`;
332
+ }).join(' ');
333
+ return `${msg.role}: ${contentParts}`;
334
+ }
335
+ return `${msg.role}: [complex_content]`;
336
+ })
337
+ .join('\n\n');
338
+ }
339
+ // Create raw response content that includes ALL data from result
340
+ let rawResponseContent = `# RAW RESPONSE DATA\n\n`;
341
+ rawResponseContent += `**result.text**: ${result.text || '[EMPTY]'}\n\n`;
342
+ if (result.steps && result.steps.length > 0) {
343
+ rawResponseContent += `**Steps (${result.steps.length})**:\n`;
344
+ result.steps.forEach((step, i) => {
345
+ rawResponseContent += `\nStep ${i + 1}:\n`;
346
+ rawResponseContent += `- text: ${step.text || '[EMPTY]'}\n`;
347
+ if (step.toolCalls) {
348
+ rawResponseContent += `- toolCalls: ${step.toolCalls.length}\n`;
349
+ }
350
+ if (step.toolResults) {
351
+ rawResponseContent += `- toolResults: ${step.toolResults.length}\n`;
352
+ }
353
+ });
354
+ rawResponseContent += '\n';
355
+ }
356
+ // Add the last step's text for easy access
357
+ let lastStepText = '';
358
+ if (result.steps && result.steps.length > 0) {
359
+ for (let i = result.steps.length - 1; i >= 0; i--) {
360
+ if (result.steps[i].text && result.steps[i].text.trim()) {
361
+ lastStepText = result.steps[i].text;
362
+ break;
363
+ }
364
+ }
365
+ }
366
+ rawResponseContent += `**Last step with text**: ${lastStepText || '[NONE]'}\n\n`;
367
+ const usage = result.totalUsage || result.usage;
368
+ const rawAiResponse = {
369
+ content: rawResponseContent,
370
+ usage: {
371
+ input_tokens: usage.inputTokens || 0,
372
+ output_tokens: usage.outputTokens || 0,
373
+ cache_creation_input_tokens: 0,
374
+ cache_read_input_tokens: 0
375
+ }
376
+ };
377
+ debugFiles = this.logDebugIfEnabled(`${operation}-raw`, finalPrompt, rawAiResponse);
378
+ }
252
379
  // Extract tool call history from steps
253
380
  const toolCallsExecuted = [];
254
381
  for (const step of result.steps || []) {
@@ -302,46 +429,10 @@ class VercelProvider {
302
429
  }
303
430
  }
304
431
  }
305
- // Log debug for summary operations to capture complete prompts/responses for evaluation
306
- let debugFiles = null;
307
- if (this.debugMode) {
308
- // Build the full conversation context like Anthropic provider does
309
- let finalPrompt = `System: ${config.systemPrompt}\n\n`;
310
- // Always include the original user intent first
311
- finalPrompt += `user: ${config.userMessage}\n\n`;
312
- // Then add the conversation history if available
313
- if (result.response?.messages) {
314
- finalPrompt += result.response.messages
315
- .map(msg => {
316
- if (typeof msg.content === 'string') {
317
- return `${msg.role}: ${msg.content}`;
318
- }
319
- else if (Array.isArray(msg.content)) {
320
- const contentParts = msg.content.map(part => {
321
- if (part.type === 'text') {
322
- return part.text;
323
- }
324
- else if (part.type === 'tool-call') {
325
- return `[TOOL_USE: ${part.toolName}]`;
326
- }
327
- else if (part.type === 'tool-result') {
328
- const resultData = part.output || part.result || part.content;
329
- if (typeof resultData === 'string') {
330
- return `[TOOL_RESULT: ${part.toolName}]\n${resultData}`;
331
- }
332
- else if (resultData) {
333
- return `[TOOL_RESULT: ${part.toolName}]\n${JSON.stringify(resultData, null, 2)}`;
334
- }
335
- return `[TOOL_RESULT: ${part.toolName}]`;
336
- }
337
- return `[${part.type}]`;
338
- }).join(' ');
339
- return `${msg.role}: ${contentParts}`;
340
- }
341
- return `${msg.role}: [complex_content]`;
342
- })
343
- .join('\n\n');
344
- }
432
+ // Log processed summary response (keep existing functionality)
433
+ if (this.debugMode && debugFiles === null) {
434
+ // Only log summary if we haven't already logged raw response
435
+ let finalPrompt = `System: ${config.systemPrompt}\n\nuser: ${config.userMessage}`;
345
436
  const aiResponse = {
346
437
  content: finalText || '',
347
438
  usage: {
@@ -186,107 +186,11 @@ export declare class ResourceRecommender {
186
186
  * Extract group from resource name (e.g., "sqls.devopstoolkit.live" -> "devopstoolkit.live")
187
187
  */
188
188
  private extractGroupFromResourceName;
189
- /**
190
- * Construct API version from resource name (simplified approach)
191
- */
192
- private constructApiVersionFromResourceName;
193
189
  /**
194
190
  * Phase 0: Search for relevant organizational patterns using multi-concept approach
195
191
  * Returns empty array if Vector DB is not available - this is completely optional
196
192
  */
197
193
  private searchRelevantPatterns;
198
- /**
199
- const basic = `${index}: ${resource.kind} (${resource.apiVersion})
200
- Group: ${resource.group || 'core'}
201
- Namespaced: ${resource.namespaced}`;
202
-
203
- // Include rich capability context if available (from capability-based pre-filtering)
204
- if (resource.capabilities) {
205
- const cap = resource.capabilities;
206
- return `${basic}
207
- Resource Name: ${resource.resourceName || 'Not specified'}
208
- Capabilities: ${cap.capabilities?.join(', ') || 'Not specified'}
209
- Providers: ${cap.providers?.join(', ') || 'Not specified'}
210
- Complexity: ${cap.complexity || 'Not specified'}
211
- Use Case: ${cap.useCase || 'Not specified'}
212
- Description: ${cap.description || 'Not specified'}
213
- Confidence: ${cap.confidence || 'N/A'}`;
214
- }
215
-
216
- return basic;
217
- }).join('\n\n');
218
-
219
- // Format organizational patterns for AI context
220
- const patternsContext = patterns.length > 0
221
- ? patterns.map(pattern =>
222
- `- ID: ${pattern.id}
223
- Description: ${pattern.description}
224
- Suggested Resources: ${pattern.suggestedResources?.join(', ') || 'Not specified'}
225
- Rationale: ${pattern.rationale}
226
- Triggers: ${pattern.triggers?.join(', ') || 'None'}`
227
- ).join('\n')
228
- : 'No organizational patterns found for this request.';
229
-
230
-
231
- const template = loadPrompt('resource-selection');
232
-
233
- const selectionPrompt = template
234
- .replace('{intent}', intent)
235
- .replace('{resources}', resourceSummary)
236
- .replace('{patterns}', patternsContext);
237
-
238
-
239
- const response = await this.aiProvider.sendMessage(selectionPrompt, 'resource-selection');
240
-
241
- try {
242
- // Extract JSON from response with robust parsing
243
- let jsonContent = response.content;
244
-
245
- // First try to find JSON array wrapped in code blocks
246
- const codeBlockMatch = response.content.match(/```(?:json)?\s*(\[[\s\S]*?\])\s*```/);
247
- if (codeBlockMatch) {
248
- jsonContent = codeBlockMatch[1];
249
- } else {
250
- // Try to find JSON array that starts with [ and find the matching closing ]
251
- const startIndex = response.content.indexOf('[');
252
- if (startIndex !== -1) {
253
- let bracketCount = 0;
254
- let endIndex = startIndex;
255
-
256
- for (let i = startIndex; i < response.content.length; i++) {
257
- if (response.content[i] === '[') bracketCount++;
258
- if (response.content[i] === ']') bracketCount--;
259
- if (bracketCount === 0) {
260
- endIndex = i;
261
- break;
262
- }
263
- }
264
-
265
- if (bracketCount === 0) {
266
- jsonContent = response.content.substring(startIndex, endIndex + 1);
267
- }
268
- }
269
- }
270
-
271
- const selectedResources = JSON.parse(jsonContent.trim());
272
-
273
- if (!Array.isArray(selectedResources)) {
274
- throw new Error('AI response is not an array');
275
- }
276
-
277
- // Validate that each resource has required fields
278
- for (const resource of selectedResources) {
279
- if (!resource.kind || !resource.apiVersion) {
280
- throw new Error(`AI selected invalid resource: ${JSON.stringify(resource)}`);
281
- }
282
- }
283
-
284
- return selectedResources;
285
- } catch (error) {
286
- throw new Error(`AI failed to select resources in valid JSON format. Error: ${(error as Error).message}. AI response: "${response.content.substring(0, 200)}..."`);
287
- }
288
- }
289
-
290
194
  /**
291
195
  * Phase 2: Fetch detailed schemas for selected candidates
292
196
  */
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}