@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.
- package/dist/core/ai-provider-factory.d.ts +0 -15
- package/dist/core/ai-provider-factory.d.ts.map +1 -1
- package/dist/core/ai-provider-factory.js +12 -33
- package/dist/core/ai-provider.interface.d.ts +12 -0
- package/dist/core/ai-provider.interface.d.ts.map +1 -1
- package/dist/core/embedding-service.d.ts +35 -2
- package/dist/core/embedding-service.d.ts.map +1 -1
- package/dist/core/embedding-service.js +228 -15
- package/dist/core/model-config.d.ts +6 -0
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +7 -1
- package/dist/core/platform-utils.d.ts +10 -0
- package/dist/core/platform-utils.d.ts.map +1 -1
- package/dist/core/platform-utils.js +56 -0
- package/dist/core/providers/anthropic-provider.d.ts +2 -0
- package/dist/core/providers/anthropic-provider.d.ts.map +1 -1
- package/dist/core/providers/anthropic-provider.js +10 -0
- package/dist/core/providers/provider-debug-utils.d.ts +5 -1
- package/dist/core/providers/provider-debug-utils.d.ts.map +1 -1
- package/dist/core/providers/provider-debug-utils.js +13 -24
- package/dist/core/providers/vercel-provider.d.ts +2 -0
- package/dist/core/providers/vercel-provider.d.ts.map +1 -1
- package/dist/core/providers/vercel-provider.js +154 -63
- package/dist/core/schema.d.ts +0 -96
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +4 -112
- package/dist/core/unified-creation-session.d.ts.map +1 -1
- package/dist/core/unified-creation-session.js +3 -1
- package/dist/evaluation/eval-runner.js +185 -41
- package/dist/evaluation/evaluators/base-comparative.d.ts +4 -1
- package/dist/evaluation/evaluators/base-comparative.d.ts.map +1 -1
- package/dist/evaluation/evaluators/base-comparative.js +36 -1
- package/dist/evaluation/platform-synthesizer.d.ts +54 -0
- package/dist/evaluation/platform-synthesizer.d.ts.map +1 -0
- package/dist/evaluation/platform-synthesizer.js +368 -0
- package/dist/evaluation/run-platform-synthesis.d.ts +9 -0
- package/dist/evaluation/run-platform-synthesis.d.ts.map +1 -0
- package/dist/evaluation/run-platform-synthesis.js +45 -0
- package/dist/interfaces/mcp.d.ts.map +1 -1
- package/dist/interfaces/mcp.js +23 -29
- package/dist/tools/generate-manifests.d.ts.map +1 -1
- package/dist/tools/generate-manifests.js +3 -8
- package/dist/tools/recommend.d.ts.map +1 -1
- package/dist/tools/recommend.js +3 -16
- package/dist/tools/remediate.d.ts.map +1 -1
- package/dist/tools/remediate.js +10 -2
- package/dist/tools/version.d.ts +1 -0
- package/dist/tools/version.d.ts.map +1 -1
- package/dist/tools/version.js +11 -4
- 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":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAErE;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAM7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzD;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAEhC,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IAGnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IAGrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAG3B,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IAGF,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IAGvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
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,
|
|
106
|
-
datasetFile = path.join(
|
|
108
|
+
// For comparative evaluations, save to results directory
|
|
109
|
+
datasetFile = path.join(baseDir, `${toolName}_comparative_evaluation_${timestamp}.jsonl`);
|
|
107
110
|
}
|
|
108
111
|
else {
|
|
109
|
-
//
|
|
110
|
-
|
|
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(
|
|
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;
|
|
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 (!
|
|
35
|
-
throw new Error(`Unsupported provider: ${this.providerType}. Must be
|
|
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
|
-
|
|
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 '
|
|
50
|
-
|
|
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 '
|
|
57
|
-
|
|
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
|
-
//
|
|
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
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
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: {
|
package/dist/core/schema.d.ts
CHANGED
|
@@ -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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"}
|