@vfarcic/dot-ai 1.3.0 → 1.5.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/artifacthub.d.ts.map +1 -1
- package/dist/core/artifacthub.js +16 -10
- package/dist/core/base-vector-service.d.ts.map +1 -1
- package/dist/core/base-vector-service.js +19 -10
- package/dist/core/capabilities.d.ts.map +1 -1
- package/dist/core/capabilities.js +17 -11
- package/dist/core/capability-operations.d.ts.map +1 -1
- package/dist/core/capability-operations.js +118 -98
- package/dist/core/crd-availability.d.ts.map +1 -1
- package/dist/core/crd-availability.js +2 -2
- package/dist/core/deploy-operation.d.ts.map +1 -1
- package/dist/core/deploy-operation.js +9 -6
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +157 -56
- package/dist/core/embedding-service.d.ts.map +1 -1
- package/dist/core/embedding-service.js +11 -7
- package/dist/core/packaging.d.ts.map +1 -1
- package/dist/core/packaging.js +11 -10
- package/dist/core/platform-utils.d.ts.map +1 -1
- package/dist/core/platform-utils.js +6 -2
- package/dist/core/plugin-manager.d.ts.map +1 -1
- package/dist/core/plugin-manager.js +26 -20
- package/dist/core/policy-operations.d.ts.map +1 -1
- package/dist/core/policy-operations.js +111 -65
- package/dist/core/providers/host-provider.d.ts.map +1 -1
- package/dist/core/providers/host-provider.js +12 -5
- package/dist/core/providers/vercel-provider.d.ts.map +1 -1
- package/dist/core/providers/vercel-provider.js +4 -2
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +173 -95
- package/dist/core/session-utils.d.ts.map +1 -1
- package/dist/core/session-utils.js +3 -3
- package/dist/core/user-prompts-loader.d.ts.map +1 -1
- package/dist/core/user-prompts-loader.js +97 -12
- package/dist/evaluation/datasets/loader.d.ts.map +1 -1
- package/dist/evaluation/datasets/loader.js +7 -3
- package/dist/interfaces/mcp.js +1 -1
- package/dist/interfaces/rest-api.d.ts +4 -0
- package/dist/interfaces/rest-api.d.ts.map +1 -1
- package/dist/interfaces/rest-api.js +35 -0
- package/dist/interfaces/rest-route-registry.js +3 -3
- package/dist/interfaces/routes/index.d.ts.map +1 -1
- package/dist/interfaces/routes/index.js +10 -0
- package/dist/interfaces/schemas/common.d.ts +1 -0
- package/dist/interfaces/schemas/common.d.ts.map +1 -1
- package/dist/interfaces/schemas/common.js +1 -0
- package/dist/interfaces/schemas/index.d.ts +1 -1
- package/dist/interfaces/schemas/index.d.ts.map +1 -1
- package/dist/interfaces/schemas/index.js +6 -2
- package/dist/interfaces/schemas/prompts.d.ts +53 -0
- package/dist/interfaces/schemas/prompts.d.ts.map +1 -1
- package/dist/interfaces/schemas/prompts.js +26 -1
- package/dist/tools/answer-question.d.ts.map +1 -1
- package/dist/tools/answer-question.js +109 -81
- package/dist/tools/generate-manifests.d.ts.map +1 -1
- package/dist/tools/generate-manifests.js +163 -103
- package/dist/tools/operate-analysis.d.ts.map +1 -1
- package/dist/tools/operate-analysis.js +27 -17
- package/dist/tools/operate.d.ts.map +1 -1
- package/dist/tools/operate.js +47 -17
- package/dist/tools/prompts.d.ts +8 -1
- package/dist/tools/prompts.d.ts.map +1 -1
- package/dist/tools/prompts.js +16 -4
- package/dist/tools/remediate.d.ts.map +1 -1
- package/dist/tools/remediate.js +199 -115
- package/package.json +6 -6
|
@@ -32,7 +32,7 @@ async function getPolicyService() {
|
|
|
32
32
|
catch (error) {
|
|
33
33
|
// If initialization fails, try to provide helpful error context
|
|
34
34
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
35
|
-
throw new Error(`Vector DB collection initialization failed: ${errorMessage}. This may be due to dimension mismatch or collection configuration issues
|
|
35
|
+
throw new Error(`Vector DB collection initialization failed: ${errorMessage}. This may be due to dimension mismatch or collection configuration issues.`, { cause: error });
|
|
36
36
|
}
|
|
37
37
|
return policyService;
|
|
38
38
|
}
|
|
@@ -73,28 +73,35 @@ async function findKyvernoPoliciesByPolicyId(policyId, logger, requestId) {
|
|
|
73
73
|
try {
|
|
74
74
|
logger.info('Searching for Kyverno policies by policy ID', {
|
|
75
75
|
requestId,
|
|
76
|
-
policyId
|
|
76
|
+
policyId,
|
|
77
77
|
});
|
|
78
|
-
const output = await executeKubectlViaPlugin([
|
|
78
|
+
const output = await executeKubectlViaPlugin([
|
|
79
|
+
'get',
|
|
80
|
+
'clusterpolicy',
|
|
81
|
+
'-l',
|
|
82
|
+
`policy-intent/id=${policyId}`,
|
|
83
|
+
'-o',
|
|
84
|
+
'json',
|
|
85
|
+
]);
|
|
79
86
|
const parsedOutput = JSON.parse(output || '{"items": []}');
|
|
80
87
|
const policies = parsedOutput.items || [];
|
|
81
88
|
logger.info('Found Kyverno policies for policy intent', {
|
|
82
89
|
requestId,
|
|
83
90
|
policyId,
|
|
84
91
|
policyCount: policies.length,
|
|
85
|
-
policyNames: policies.map((p) => p.metadata?.name)
|
|
92
|
+
policyNames: policies.map((p) => p.metadata?.name),
|
|
86
93
|
});
|
|
87
94
|
return policies.map((p) => ({
|
|
88
95
|
name: p.metadata?.name || '',
|
|
89
96
|
labels: p.metadata?.labels,
|
|
90
|
-
creationTimestamp: p.metadata?.creationTimestamp
|
|
97
|
+
creationTimestamp: p.metadata?.creationTimestamp,
|
|
91
98
|
}));
|
|
92
99
|
}
|
|
93
100
|
catch (error) {
|
|
94
101
|
logger.warn('Failed to query Kyverno policies (cluster may not have Kyverno or no policies found)', {
|
|
95
102
|
requestId,
|
|
96
103
|
policyId,
|
|
97
|
-
error: error instanceof Error ? error.message : String(error)
|
|
104
|
+
error: error instanceof Error ? error.message : String(error),
|
|
98
105
|
});
|
|
99
106
|
return [];
|
|
100
107
|
}
|
|
@@ -106,27 +113,34 @@ async function findKyvernoPoliciesByPolicyId(policyId, logger, requestId) {
|
|
|
106
113
|
async function findAllKyvernoPoliciesForPolicyIntents(logger, requestId) {
|
|
107
114
|
try {
|
|
108
115
|
logger.info('Searching for all Kyverno policies with policy-intent labels', {
|
|
109
|
-
requestId
|
|
116
|
+
requestId,
|
|
110
117
|
});
|
|
111
|
-
const output = await executeKubectlViaPlugin([
|
|
118
|
+
const output = await executeKubectlViaPlugin([
|
|
119
|
+
'get',
|
|
120
|
+
'clusterpolicy',
|
|
121
|
+
'-l',
|
|
122
|
+
'policy-intent/id',
|
|
123
|
+
'-o',
|
|
124
|
+
'json',
|
|
125
|
+
]);
|
|
112
126
|
const parsedOutput = JSON.parse(output || '{"items": []}');
|
|
113
127
|
const policies = parsedOutput.items || [];
|
|
114
128
|
logger.info('Found all Kyverno policies for policy intents', {
|
|
115
129
|
requestId,
|
|
116
130
|
policyCount: policies.length,
|
|
117
|
-
policyNames: policies.map((p) => p.metadata?.name)
|
|
131
|
+
policyNames: policies.map((p) => p.metadata?.name),
|
|
118
132
|
});
|
|
119
133
|
return policies.map((p) => ({
|
|
120
134
|
name: p.metadata?.name || '',
|
|
121
135
|
policyId: p.metadata?.labels?.['policy-intent/id'],
|
|
122
136
|
labels: p.metadata?.labels,
|
|
123
|
-
creationTimestamp: p.metadata?.creationTimestamp
|
|
137
|
+
creationTimestamp: p.metadata?.creationTimestamp,
|
|
124
138
|
}));
|
|
125
139
|
}
|
|
126
140
|
catch (error) {
|
|
127
141
|
logger.warn('Failed to query all Kyverno policies (cluster may not have Kyverno or no policies found)', {
|
|
128
142
|
requestId,
|
|
129
|
-
error: error instanceof Error ? error.message : String(error)
|
|
143
|
+
error: error instanceof Error ? error.message : String(error),
|
|
130
144
|
});
|
|
131
145
|
return [];
|
|
132
146
|
}
|
|
@@ -139,30 +153,40 @@ async function deleteKyvernoPoliciesByPolicyId(policyId, logger, requestId) {
|
|
|
139
153
|
try {
|
|
140
154
|
logger.info('Deleting Kyverno policies by policy ID', {
|
|
141
155
|
requestId,
|
|
142
|
-
policyId
|
|
156
|
+
policyId,
|
|
143
157
|
});
|
|
144
|
-
const output = await executeKubectlViaPlugin([
|
|
158
|
+
const output = await executeKubectlViaPlugin([
|
|
159
|
+
'delete',
|
|
160
|
+
'clusterpolicy',
|
|
161
|
+
'-l',
|
|
162
|
+
`policy-intent/id=${policyId}`,
|
|
163
|
+
]);
|
|
145
164
|
logger.info('Kyverno policies deleted successfully', {
|
|
146
165
|
requestId,
|
|
147
166
|
policyId,
|
|
148
|
-
output
|
|
167
|
+
output,
|
|
149
168
|
});
|
|
150
169
|
return {
|
|
151
170
|
successful: [{ policyId, deletedAt: new Date().toISOString() }],
|
|
152
171
|
failed: [],
|
|
153
|
-
total: 1
|
|
172
|
+
total: 1,
|
|
154
173
|
};
|
|
155
174
|
}
|
|
156
175
|
catch (error) {
|
|
157
176
|
logger.error('Failed to delete Kyverno policies', error, {
|
|
158
177
|
requestId,
|
|
159
178
|
policyId,
|
|
160
|
-
error: error instanceof Error ? error.message : String(error)
|
|
179
|
+
error: error instanceof Error ? error.message : String(error),
|
|
161
180
|
});
|
|
162
181
|
return {
|
|
163
182
|
successful: [],
|
|
164
|
-
failed: [
|
|
165
|
-
|
|
183
|
+
failed: [
|
|
184
|
+
{
|
|
185
|
+
policyId,
|
|
186
|
+
error: error instanceof Error ? error.message : String(error),
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
total: 1,
|
|
166
190
|
};
|
|
167
191
|
}
|
|
168
192
|
}
|
|
@@ -173,28 +197,35 @@ async function deleteKyvernoPoliciesByPolicyId(policyId, logger, requestId) {
|
|
|
173
197
|
async function deleteAllKyvernoPoliciesForPolicyIntents(logger, requestId) {
|
|
174
198
|
try {
|
|
175
199
|
logger.info('Deleting all Kyverno policies with policy-intent labels', {
|
|
176
|
-
requestId
|
|
200
|
+
requestId,
|
|
177
201
|
});
|
|
178
|
-
const output = await executeKubectlViaPlugin([
|
|
202
|
+
const output = await executeKubectlViaPlugin([
|
|
203
|
+
'delete',
|
|
204
|
+
'clusterpolicy',
|
|
205
|
+
'-l',
|
|
206
|
+
'policy-intent/id',
|
|
207
|
+
]);
|
|
179
208
|
logger.info('All Kyverno policies deleted successfully', {
|
|
180
209
|
requestId,
|
|
181
|
-
output
|
|
210
|
+
output,
|
|
182
211
|
});
|
|
183
212
|
return {
|
|
184
213
|
successful: [{ deletedAt: new Date().toISOString() }],
|
|
185
214
|
failed: [],
|
|
186
|
-
total: 1
|
|
215
|
+
total: 1,
|
|
187
216
|
};
|
|
188
217
|
}
|
|
189
218
|
catch (error) {
|
|
190
219
|
logger.error('Failed to delete all Kyverno policies', error, {
|
|
191
220
|
requestId,
|
|
192
|
-
error: error instanceof Error ? error.message : String(error)
|
|
221
|
+
error: error instanceof Error ? error.message : String(error),
|
|
193
222
|
});
|
|
194
223
|
return {
|
|
195
224
|
successful: [],
|
|
196
|
-
failed: [
|
|
197
|
-
|
|
225
|
+
failed: [
|
|
226
|
+
{ error: error instanceof Error ? error.message : String(error) },
|
|
227
|
+
],
|
|
228
|
+
total: 1,
|
|
198
229
|
};
|
|
199
230
|
}
|
|
200
231
|
}
|
|
@@ -212,7 +243,7 @@ async function handlePolicyDelete(policyId, policyService, args, logger, request
|
|
|
212
243
|
operation: 'delete',
|
|
213
244
|
dataType: 'policy',
|
|
214
245
|
message: `Policy intent not found: ${policyId}`,
|
|
215
|
-
error: 'Policy intent not found'
|
|
246
|
+
error: 'Policy intent not found',
|
|
216
247
|
};
|
|
217
248
|
}
|
|
218
249
|
// Check if there are deployed Kyverno policies with this policy ID
|
|
@@ -227,17 +258,18 @@ async function handlePolicyDelete(policyId, policyService, args, logger, request
|
|
|
227
258
|
message: 'Policy intent has deployed Kyverno policies that need cleanup decision',
|
|
228
259
|
confirmation: {
|
|
229
260
|
question: `Policy intent "${existingPolicyIntent.description.substring(0, 60)}..." has ${kyvernoPolicies.length} deployed Kyverno policies in your cluster: ${kyvernoPolicies.map(p => p.name).join(', ')}\n\n**Choose what to do:**\n\n1. **Delete everything** - Remove policy intent AND delete Kyverno policies from cluster\n2. **Keep Kyverno policies** - Remove policy intent only, preserve cluster policies\n\n⚠️ **Warning**: Option 1 will remove active policy enforcement from your cluster.\n\n**What would you like to do?**`,
|
|
230
|
-
options: ['Delete everything', 'Keep Kyverno policies']
|
|
261
|
+
options: ['Delete everything', 'Keep Kyverno policies'],
|
|
231
262
|
},
|
|
232
263
|
policyIntent: existingPolicyIntent,
|
|
233
|
-
kyvernoPolicies: kyvernoPolicies
|
|
264
|
+
kyvernoPolicies: kyvernoPolicies,
|
|
234
265
|
};
|
|
235
266
|
}
|
|
236
267
|
// Process user's response or proceed with direct deletion
|
|
237
268
|
let kyvernoCleanupResults = null;
|
|
238
269
|
if (kyvernoPolicies.length > 0 && args.response) {
|
|
239
270
|
const response = args.response.trim();
|
|
240
|
-
if (response === '1' ||
|
|
271
|
+
if (response === '1' ||
|
|
272
|
+
response.toLowerCase().includes('delete everything')) {
|
|
241
273
|
// Delete Kyverno policies from cluster
|
|
242
274
|
kyvernoCleanupResults = await deleteKyvernoPoliciesByPolicyId(policyId, logger, requestId);
|
|
243
275
|
}
|
|
@@ -255,17 +287,20 @@ async function handlePolicyDelete(policyId, policyService, args, logger, request
|
|
|
255
287
|
dataType: 'policy',
|
|
256
288
|
message: `Policy intent deleted successfully ${cleanupMessage}`,
|
|
257
289
|
deletedPolicyIntent: existingPolicyIntent,
|
|
258
|
-
kyvernoCleanup: kyvernoCleanupResults || { preserved: true }
|
|
290
|
+
kyvernoCleanup: kyvernoCleanupResults || { preserved: true },
|
|
259
291
|
};
|
|
260
292
|
}
|
|
261
293
|
catch (error) {
|
|
262
|
-
logger.error('Failed to delete policy intent', error, {
|
|
294
|
+
logger.error('Failed to delete policy intent', error, {
|
|
295
|
+
requestId,
|
|
296
|
+
policyId,
|
|
297
|
+
});
|
|
263
298
|
return {
|
|
264
299
|
success: false,
|
|
265
300
|
operation: 'delete',
|
|
266
301
|
dataType: 'policy',
|
|
267
302
|
message: 'Failed to delete policy intent',
|
|
268
|
-
error: error instanceof Error ? error.message : String(error)
|
|
303
|
+
error: error instanceof Error ? error.message : String(error),
|
|
269
304
|
};
|
|
270
305
|
}
|
|
271
306
|
}
|
|
@@ -283,7 +318,7 @@ async function handlePolicyDeleteAll(policyService, args, logger, requestId) {
|
|
|
283
318
|
operation: 'deleteAll',
|
|
284
319
|
dataType: 'policy',
|
|
285
320
|
message: 'No policy intents found to delete',
|
|
286
|
-
deletedCount: 0
|
|
321
|
+
deletedCount: 0,
|
|
287
322
|
};
|
|
288
323
|
}
|
|
289
324
|
// Find all deployed Kyverno policies for all policy intents
|
|
@@ -298,17 +333,18 @@ async function handlePolicyDeleteAll(policyService, args, logger, requestId) {
|
|
|
298
333
|
message: 'Found policy intents with deployed Kyverno policies that need cleanup decision',
|
|
299
334
|
confirmation: {
|
|
300
335
|
question: `Deleting ${allPolicyIntents.length} policy intents. Found ${allKyvernoPolicies.length} deployed Kyverno policies in your cluster: ${allKyvernoPolicies.map(p => p.name).join(', ')}\n\n**Choose what to do:**\n\n1. **Delete everything** - Remove all policy intents AND delete all Kyverno policies from cluster\n2. **Keep Kyverno policies** - Remove all policy intents only, preserve all cluster policies\n\n⚠️ **Warning**: Option 1 will remove ALL active policy enforcement from your cluster.\n\n**What would you like to do?**`,
|
|
301
|
-
options: ['Delete everything', 'Keep Kyverno policies']
|
|
336
|
+
options: ['Delete everything', 'Keep Kyverno policies'],
|
|
302
337
|
},
|
|
303
338
|
policyIntents: allPolicyIntents,
|
|
304
|
-
kyvernoPolicies: allKyvernoPolicies
|
|
339
|
+
kyvernoPolicies: allKyvernoPolicies,
|
|
305
340
|
};
|
|
306
341
|
}
|
|
307
342
|
// Process user's response or proceed with direct deletion
|
|
308
343
|
let kyvernoCleanupResults = null;
|
|
309
344
|
if (allKyvernoPolicies.length > 0 && args.response) {
|
|
310
345
|
const response = args.response.trim();
|
|
311
|
-
if (response === '1' ||
|
|
346
|
+
if (response === '1' ||
|
|
347
|
+
response.toLowerCase().includes('delete everything')) {
|
|
312
348
|
// Delete all Kyverno policies from cluster
|
|
313
349
|
kyvernoCleanupResults = await deleteAllKyvernoPoliciesForPolicyIntents(logger, requestId);
|
|
314
350
|
}
|
|
@@ -329,17 +365,19 @@ async function handlePolicyDeleteAll(policyService, args, logger, requestId) {
|
|
|
329
365
|
message: `All ${allPolicyIntents.length} policy intents deleted successfully ${cleanupMessage}`,
|
|
330
366
|
deletedCount: allPolicyIntents.length,
|
|
331
367
|
deletedPolicyIntents: allPolicyIntents,
|
|
332
|
-
kyvernoCleanup: kyvernoCleanupResults || { preserved: true }
|
|
368
|
+
kyvernoCleanup: kyvernoCleanupResults || { preserved: true },
|
|
333
369
|
};
|
|
334
370
|
}
|
|
335
371
|
catch (error) {
|
|
336
|
-
logger.error('Failed to delete all policy intents', error, {
|
|
372
|
+
logger.error('Failed to delete all policy intents', error, {
|
|
373
|
+
requestId,
|
|
374
|
+
});
|
|
337
375
|
return {
|
|
338
376
|
success: false,
|
|
339
377
|
operation: 'deleteAll',
|
|
340
378
|
dataType: 'policy',
|
|
341
379
|
message: 'Failed to delete all policy intents',
|
|
342
|
-
error: error instanceof Error ? error.message : String(error)
|
|
380
|
+
error: error instanceof Error ? error.message : String(error),
|
|
343
381
|
};
|
|
344
382
|
}
|
|
345
383
|
}
|
|
@@ -358,7 +396,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
358
396
|
operation,
|
|
359
397
|
dataType: 'policy',
|
|
360
398
|
error: connectionCheck.error,
|
|
361
|
-
message: 'Vector DB connection required for policy management'
|
|
399
|
+
message: 'Vector DB connection required for policy management',
|
|
362
400
|
};
|
|
363
401
|
}
|
|
364
402
|
// Validate embedding service and fail if unavailable (except for delete operations)
|
|
@@ -371,7 +409,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
371
409
|
operation,
|
|
372
410
|
dataType: 'policy',
|
|
373
411
|
error: embeddingCheck.error,
|
|
374
|
-
message: constants_1.AI_SERVICE_ERROR_TEMPLATES.OPENAI_KEY_REQUIRED('policy management')
|
|
412
|
+
message: constants_1.AI_SERVICE_ERROR_TEMPLATES.OPENAI_KEY_REQUIRED('policy management'),
|
|
375
413
|
};
|
|
376
414
|
}
|
|
377
415
|
}
|
|
@@ -383,7 +421,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
383
421
|
// Continue existing session
|
|
384
422
|
logger.info('Continuing policy creation workflow', {
|
|
385
423
|
requestId,
|
|
386
|
-
sessionId: args.sessionId
|
|
424
|
+
sessionId: args.sessionId,
|
|
387
425
|
});
|
|
388
426
|
if (args.response) {
|
|
389
427
|
// Process user response and move to next step
|
|
@@ -398,7 +436,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
398
436
|
operation: 'policy_workflow_continue',
|
|
399
437
|
component: 'OrganizationalDataTool',
|
|
400
438
|
requestId,
|
|
401
|
-
input: { sessionId: args.sessionId }
|
|
439
|
+
input: { sessionId: args.sessionId },
|
|
402
440
|
});
|
|
403
441
|
}
|
|
404
442
|
workflowStep = await sessionManager.getNextWorkflowStep(session, args);
|
|
@@ -408,7 +446,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
408
446
|
operation: 'policy_workflow_continue',
|
|
409
447
|
component: 'OrganizationalDataTool',
|
|
410
448
|
requestId,
|
|
411
|
-
input: { sessionId: args.sessionId }
|
|
449
|
+
input: { sessionId: args.sessionId },
|
|
412
450
|
});
|
|
413
451
|
}
|
|
414
452
|
}
|
|
@@ -421,7 +459,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
421
459
|
throw error_handling_1.ErrorHandler.createError(error_handling_1.ErrorCategory.OPERATION, error_handling_1.ErrorSeverity.HIGH, 'Failed to initialize policy creation workflow', {
|
|
422
460
|
operation: 'policy_workflow_start',
|
|
423
461
|
component: 'OrganizationalDataTool',
|
|
424
|
-
requestId
|
|
462
|
+
requestId,
|
|
425
463
|
});
|
|
426
464
|
}
|
|
427
465
|
}
|
|
@@ -432,9 +470,9 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
432
470
|
const hasPolicy = !!workflowData?.policy;
|
|
433
471
|
logger.info('Checking workflow completion', {
|
|
434
472
|
requestId,
|
|
435
|
-
nextStep:
|
|
473
|
+
nextStep: 'nextStep' in workflowStep ? workflowStep.nextStep : 'complete',
|
|
436
474
|
hasPolicy,
|
|
437
|
-
policyId: workflowData?.policy?.id
|
|
475
|
+
policyId: workflowData?.policy?.id,
|
|
438
476
|
});
|
|
439
477
|
if (isComplete && hasPolicy) {
|
|
440
478
|
try {
|
|
@@ -442,12 +480,13 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
442
480
|
storageInfo = {
|
|
443
481
|
stored: true,
|
|
444
482
|
collectionName: 'policies',
|
|
445
|
-
policyId: workflowData.policy.id
|
|
483
|
+
policyId: workflowData.policy.id,
|
|
446
484
|
};
|
|
447
485
|
logger.info('Policy stored in Vector DB successfully', {
|
|
448
486
|
requestId,
|
|
449
487
|
policyId: workflowData.policy.id,
|
|
450
|
-
description: workflowData.policy.description.substring(0, 50) +
|
|
488
|
+
description: workflowData.policy.description.substring(0, 50) +
|
|
489
|
+
(workflowData.policy.description.length > 50 ? '...' : ''),
|
|
451
490
|
});
|
|
452
491
|
}
|
|
453
492
|
catch (error) {
|
|
@@ -455,11 +494,11 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
455
494
|
storageInfo = {
|
|
456
495
|
stored: false,
|
|
457
496
|
error: errorMessage,
|
|
458
|
-
policyId: workflowData.policy.id
|
|
497
|
+
policyId: workflowData.policy.id,
|
|
459
498
|
};
|
|
460
499
|
logger.error('Failed to store policy in Vector DB', error instanceof Error ? error : new Error(String(error)), {
|
|
461
500
|
requestId,
|
|
462
|
-
policyId: workflowData.policy.id
|
|
501
|
+
policyId: workflowData.policy.id,
|
|
463
502
|
});
|
|
464
503
|
}
|
|
465
504
|
}
|
|
@@ -472,9 +511,11 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
472
511
|
dataType: 'policy',
|
|
473
512
|
workflow: workflowStep,
|
|
474
513
|
storage: storageInfo,
|
|
475
|
-
message: isComplete
|
|
476
|
-
|
|
477
|
-
|
|
514
|
+
message: isComplete
|
|
515
|
+
? storageSucceeded
|
|
516
|
+
? `Policy created and stored successfully`
|
|
517
|
+
: 'Policy creation failed - storage error'
|
|
518
|
+
: 'Workflow step ready',
|
|
478
519
|
};
|
|
479
520
|
}
|
|
480
521
|
case 'list': {
|
|
@@ -489,7 +530,9 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
489
530
|
message: `Found ${totalCount} policy intents (showing ${limitedPolicyIntents.length})`,
|
|
490
531
|
policyIntents: limitedPolicyIntents,
|
|
491
532
|
totalCount,
|
|
492
|
-
note: totalCount > limit
|
|
533
|
+
note: totalCount > limit
|
|
534
|
+
? `Showing first ${limit} of ${totalCount} policy intents. Use limit parameter to see more.`
|
|
535
|
+
: undefined,
|
|
493
536
|
};
|
|
494
537
|
}
|
|
495
538
|
case 'get': {
|
|
@@ -499,7 +542,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
499
542
|
operation,
|
|
500
543
|
dataType: 'policy',
|
|
501
544
|
message: 'Policy intent ID is required for get operation',
|
|
502
|
-
error: validation_1.VALIDATION_MESSAGES.MISSING_PARAMETER('id')
|
|
545
|
+
error: validation_1.VALIDATION_MESSAGES.MISSING_PARAMETER('id'),
|
|
503
546
|
};
|
|
504
547
|
}
|
|
505
548
|
const policyIntent = await policyService.getPolicyIntent(args.id);
|
|
@@ -509,7 +552,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
509
552
|
operation,
|
|
510
553
|
dataType: 'policy',
|
|
511
554
|
message: `Policy intent not found: ${args.id}`,
|
|
512
|
-
error: 'Policy intent not found'
|
|
555
|
+
error: 'Policy intent not found',
|
|
513
556
|
};
|
|
514
557
|
}
|
|
515
558
|
return {
|
|
@@ -517,21 +560,24 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
517
560
|
operation,
|
|
518
561
|
dataType: 'policy',
|
|
519
562
|
message: 'Policy intent retrieved successfully',
|
|
520
|
-
policyIntent
|
|
563
|
+
policyIntent,
|
|
521
564
|
};
|
|
522
565
|
}
|
|
523
566
|
case 'search': {
|
|
524
|
-
if (!args.id) {
|
|
567
|
+
if (!args.id) {
|
|
568
|
+
// For search, 'id' parameter contains the search query
|
|
525
569
|
return {
|
|
526
570
|
success: false,
|
|
527
571
|
operation,
|
|
528
572
|
dataType: 'policy',
|
|
529
573
|
message: 'Search query is required (use id parameter)',
|
|
530
|
-
error: validation_1.VALIDATION_MESSAGES.MISSING_PARAMETER_WITH_CONTEXT('id', 'search query')
|
|
574
|
+
error: validation_1.VALIDATION_MESSAGES.MISSING_PARAMETER_WITH_CONTEXT('id', 'search query'),
|
|
531
575
|
};
|
|
532
576
|
}
|
|
533
577
|
const limit = args.limit || 10;
|
|
534
|
-
const searchResults = await policyService.searchPolicyIntents(args.id, {
|
|
578
|
+
const searchResults = await policyService.searchPolicyIntents(args.id, {
|
|
579
|
+
limit,
|
|
580
|
+
});
|
|
535
581
|
return {
|
|
536
582
|
success: true,
|
|
537
583
|
operation,
|
|
@@ -540,8 +586,8 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
540
586
|
policyIntents: searchResults.map(result => result.data),
|
|
541
587
|
searchResults: searchResults.map(result => ({
|
|
542
588
|
policyIntent: result.data,
|
|
543
|
-
score: result.score
|
|
544
|
-
}))
|
|
589
|
+
score: result.score,
|
|
590
|
+
})),
|
|
545
591
|
};
|
|
546
592
|
}
|
|
547
593
|
case 'delete': {
|
|
@@ -551,7 +597,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
551
597
|
operation,
|
|
552
598
|
dataType: 'policy',
|
|
553
599
|
message: 'Policy intent ID is required for delete operation',
|
|
554
|
-
error: validation_1.VALIDATION_MESSAGES.MISSING_PARAMETER('id')
|
|
600
|
+
error: validation_1.VALIDATION_MESSAGES.MISSING_PARAMETER('id'),
|
|
555
601
|
};
|
|
556
602
|
}
|
|
557
603
|
if (!(0, plugin_registry_1.isPluginInitialized)()) {
|
|
@@ -571,7 +617,7 @@ async function handlePolicyOperation(operation, args, logger, requestId, validat
|
|
|
571
617
|
operation,
|
|
572
618
|
dataType: 'policy',
|
|
573
619
|
message: `Unsupported operation: ${operation}. Supported operations: create, list, get, search, delete, deleteAll`,
|
|
574
|
-
error: 'Unsupported operation'
|
|
620
|
+
error: 'Unsupported operation',
|
|
575
621
|
};
|
|
576
622
|
}
|
|
577
623
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-provider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/host-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACf,MAAM,0BAA0B,CAAC;AAmBlC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;CAClD;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,QAAQ,EAAE,eAAe,EAAE,EAC3B,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAkB;IACjD,OAAO,CAAC,SAAS,CAAU;;IAM3B,kBAAkB,CAAC,OAAO,EAAE,eAAe;IAI3C,aAAa,IAAI,OAAO;IAIxB,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,iBAAiB;IAwBnB,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;
|
|
1
|
+
{"version":3,"file":"host-provider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/host-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACf,MAAM,0BAA0B,CAAC;AAmBlC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;CAClD;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;CAClD;AAED,MAAM,MAAM,eAAe,GAAG,CAC5B,QAAQ,EAAE,eAAe,EAAE,EAC3B,YAAY,CAAC,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B,OAAO,CAAC,cAAc,CAAC,CAAC;AAE7B,qBAAa,YAAa,YAAW,UAAU;IAC7C,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAkB;IACjD,OAAO,CAAC,SAAS,CAAU;;IAM3B,kBAAkB,CAAC,OAAO,EAAE,eAAe;IAI3C,aAAa,IAAI,OAAO;IAIxB,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM;IAItB,OAAO,CAAC,iBAAiB;IAwBnB,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;IAiItB;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA2N/D"}
|
|
@@ -91,7 +91,8 @@ class HostProvider {
|
|
|
91
91
|
evaluationContext,
|
|
92
92
|
});
|
|
93
93
|
let content = '';
|
|
94
|
-
if (typeof result.content === 'object' &&
|
|
94
|
+
if (typeof result.content === 'object' &&
|
|
95
|
+
result.content.type === 'text') {
|
|
95
96
|
content = result.content.text;
|
|
96
97
|
}
|
|
97
98
|
else if (typeof result.content === 'string') {
|
|
@@ -162,7 +163,9 @@ class HostProvider {
|
|
|
162
163
|
(0, provider_debug_utils_1.logEvaluationDataset)(failureMetrics, this.debugMode);
|
|
163
164
|
}
|
|
164
165
|
}
|
|
165
|
-
throw new Error(`Host sampling error: ${errorMessage}
|
|
166
|
+
throw new Error(`Host sampling error: ${errorMessage}`, {
|
|
167
|
+
cause: error,
|
|
168
|
+
});
|
|
166
169
|
}
|
|
167
170
|
}, (response) => ({
|
|
168
171
|
inputTokens: response.usage.input_tokens,
|
|
@@ -211,7 +214,8 @@ class HostProvider {
|
|
|
211
214
|
interaction_id: config.interaction_id,
|
|
212
215
|
});
|
|
213
216
|
let content = '';
|
|
214
|
-
if (typeof result.content === 'object' &&
|
|
217
|
+
if (typeof result.content === 'object' &&
|
|
218
|
+
result.content.type === 'text') {
|
|
215
219
|
content = result.content.text;
|
|
216
220
|
}
|
|
217
221
|
else if (typeof result.content === 'string') {
|
|
@@ -291,7 +295,9 @@ class HostProvider {
|
|
|
291
295
|
}
|
|
292
296
|
catch (error) {
|
|
293
297
|
const message = error instanceof Error ? error.message : String(error);
|
|
294
|
-
throw new Error(`Host sampling error in tool loop: ${message}
|
|
298
|
+
throw new Error(`Host sampling error in tool loop: ${message}`, {
|
|
299
|
+
cause: error,
|
|
300
|
+
});
|
|
295
301
|
}
|
|
296
302
|
}
|
|
297
303
|
// Max iterations reached - make one final wrap-up call WITHOUT tools
|
|
@@ -310,7 +316,8 @@ class HostProvider {
|
|
|
310
316
|
interaction_id: config.interaction_id,
|
|
311
317
|
});
|
|
312
318
|
let wrapUpContent = '';
|
|
313
|
-
if (typeof wrapUpResult.content === 'object' &&
|
|
319
|
+
if (typeof wrapUpResult.content === 'object' &&
|
|
320
|
+
wrapUpResult.content.type === 'text') {
|
|
314
321
|
wrapUpContent = wrapUpResult.content.text;
|
|
315
322
|
}
|
|
316
323
|
else if (typeof wrapUpResult.content === 'string') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel-provider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/vercel-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,0BAA0B,CAAC;AA4DlC,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,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,aAAa,CAAiB;gBAE1B,MAAM,EAAE,gBAAgB;IAWpC,OAAO,CAAC,qBAAqB;
|
|
1
|
+
{"version":3,"file":"vercel-provider.d.ts","sourceRoot":"","sources":["../../../src/core/providers/vercel-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACd,MAAM,0BAA0B,CAAC;AA4DlC,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,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,aAAa,CAAiB;gBAE1B,MAAM,EAAE,gBAAgB;IAWpC,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,eAAe;IAwFvB,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,MAAM;IAIzB,YAAY,IAAI,MAAM;IAItB,aAAa,IAAI,OAAO;IAIxB,OAAO,CAAC,iBAAiB;IAyBnB,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;IAsJtB;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA6b/D"}
|
|
@@ -121,7 +121,7 @@ class VercelProvider {
|
|
|
121
121
|
this.modelInstance = provider(this.model);
|
|
122
122
|
}
|
|
123
123
|
catch (error) {
|
|
124
|
-
throw new Error(`Failed to initialize ${this.providerType} model: ${error}
|
|
124
|
+
throw new Error(`Failed to initialize ${this.providerType} model: ${error}`, { cause: error });
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
getProviderType() {
|
|
@@ -245,7 +245,9 @@ class VercelProvider {
|
|
|
245
245
|
};
|
|
246
246
|
(0, provider_debug_utils_1.logEvaluationDataset)(failureMetrics, this.debugMode);
|
|
247
247
|
}
|
|
248
|
-
throw new Error(`${this.providerType} API error: ${error}
|
|
248
|
+
throw new Error(`${this.providerType} API error: ${error}`, {
|
|
249
|
+
cause: error,
|
|
250
|
+
});
|
|
249
251
|
}
|
|
250
252
|
}, (response) => ({
|
|
251
253
|
inputTokens: response.usage.input_tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUrD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
|