@vfarcic/dot-ai 1.0.2 → 1.1.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/README.md +1 -0
- package/dist/core/ai-provider.interface.d.ts +12 -8
- package/dist/core/ai-provider.interface.d.ts.map +1 -1
- package/dist/core/artifacthub.d.ts +1 -1
- package/dist/core/artifacthub.d.ts.map +1 -1
- package/dist/core/base-vector-service.d.ts +22 -9
- package/dist/core/base-vector-service.d.ts.map +1 -1
- package/dist/core/base-vector-service.js +106 -37
- package/dist/core/capabilities.d.ts.map +1 -1
- package/dist/core/capabilities.js +5 -2
- package/dist/core/capability-operations.d.ts +55 -7
- package/dist/core/capability-operations.d.ts.map +1 -1
- package/dist/core/capability-operations.js +1 -3
- package/dist/core/capability-scan-workflow.d.ts +64 -8
- package/dist/core/capability-scan-workflow.d.ts.map +1 -1
- package/dist/core/capability-scan-workflow.js +14 -13
- package/dist/core/capability-tools.d.ts +1 -1
- package/dist/core/capability-tools.d.ts.map +1 -1
- package/dist/core/capability-tools.js +1 -1
- package/dist/core/capability-vector-service.d.ts +3 -4
- package/dist/core/capability-vector-service.d.ts.map +1 -1
- package/dist/core/capability-vector-service.js +2 -2
- package/dist/core/command-executor.d.ts +3 -4
- package/dist/core/command-executor.d.ts.map +1 -1
- package/dist/core/command-executor.js +8 -4
- package/dist/core/crd-availability.d.ts +3 -5
- package/dist/core/crd-availability.d.ts.map +1 -1
- package/dist/core/crd-availability.js +8 -18
- package/dist/core/deploy-operation.d.ts +6 -5
- package/dist/core/deploy-operation.d.ts.map +1 -1
- package/dist/core/deploy-operation.js +16 -10
- package/dist/core/discovery.d.ts +6 -14
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +35 -51
- package/dist/core/embedding-service.d.ts.map +1 -1
- package/dist/core/embedding-service.js +1 -1
- package/dist/core/error-handling.d.ts +13 -13
- package/dist/core/error-handling.d.ts.map +1 -1
- package/dist/core/error-handling.js +2 -3
- package/dist/core/generic-session-manager.d.ts +2 -2
- package/dist/core/generic-session-manager.d.ts.map +1 -1
- package/dist/core/helm-types.d.ts +5 -5
- package/dist/core/helm-types.d.ts.map +1 -1
- package/dist/core/index.d.ts +4 -11
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +8 -14
- package/dist/core/knowledge-types.d.ts +114 -0
- package/dist/core/knowledge-types.d.ts.map +1 -0
- package/dist/core/knowledge-types.js +10 -0
- package/dist/core/memory.d.ts +12 -12
- package/dist/core/memory.d.ts.map +1 -1
- package/dist/core/mermaid-tools.d.ts +24 -1
- package/dist/core/mermaid-tools.d.ts.map +1 -1
- package/dist/core/mermaid-tools.js +10 -8
- package/dist/core/packaging.d.ts +23 -1
- package/dist/core/packaging.d.ts.map +1 -1
- package/dist/core/pattern-operations.d.ts +32 -9
- package/dist/core/pattern-operations.d.ts.map +1 -1
- package/dist/core/pattern-operations.js +17 -22
- package/dist/core/pattern-vector-service.d.ts +3 -4
- package/dist/core/pattern-vector-service.d.ts.map +1 -1
- package/dist/core/pattern-vector-service.js +2 -2
- package/dist/core/platform-utils.d.ts +2 -2
- package/dist/core/platform-utils.d.ts.map +1 -1
- package/dist/core/plugin-manager.d.ts +6 -2
- package/dist/core/plugin-manager.d.ts.map +1 -1
- package/dist/core/plugin-manager.js +9 -16
- package/dist/core/plugin-registry.d.ts +59 -0
- package/dist/core/plugin-registry.d.ts.map +1 -0
- package/dist/core/plugin-registry.js +80 -0
- package/dist/core/policy-operations.d.ts +101 -21
- package/dist/core/policy-operations.d.ts.map +1 -1
- package/dist/core/policy-operations.js +45 -47
- package/dist/core/policy-vector-service.d.ts +3 -4
- package/dist/core/policy-vector-service.d.ts.map +1 -1
- package/dist/core/policy-vector-service.js +2 -2
- package/dist/core/providers/host-provider.d.ts +1 -1
- package/dist/core/providers/host-provider.d.ts.map +1 -1
- package/dist/core/providers/host-provider.js +2 -2
- package/dist/core/providers/provider-debug-utils.d.ts +2 -2
- package/dist/core/providers/provider-debug-utils.d.ts.map +1 -1
- package/dist/core/providers/tool-utils.d.ts +10 -2
- package/dist/core/providers/tool-utils.d.ts.map +1 -1
- package/dist/core/providers/tool-utils.js +2 -2
- package/dist/core/providers/vercel-provider.d.ts.map +1 -1
- package/dist/core/providers/vercel-provider.js +29 -23
- package/dist/core/resource-tools.d.ts +29 -1
- package/dist/core/resource-tools.d.ts.map +1 -1
- package/dist/core/resource-vector-service.d.ts +3 -4
- package/dist/core/resource-vector-service.d.ts.map +1 -1
- package/dist/core/resource-vector-service.js +2 -2
- package/dist/core/schema.d.ts +15 -14
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +32 -34
- package/dist/core/shared-prompt-loader.d.ts +1 -1
- package/dist/core/shared-prompt-loader.d.ts.map +1 -1
- package/dist/core/solution-cr.js +1 -1
- package/dist/core/solution-utils.d.ts +22 -3
- package/dist/core/solution-utils.d.ts.map +1 -1
- package/dist/core/solution-utils.js +1 -1
- package/dist/core/telemetry/client.d.ts +0 -6
- package/dist/core/telemetry/client.d.ts.map +1 -1
- package/dist/core/telemetry/client.js +6 -17
- package/dist/core/telemetry/config.js +1 -1
- package/dist/core/telemetry/index.d.ts +1 -1
- package/dist/core/telemetry/index.d.ts.map +1 -1
- package/dist/core/telemetry/index.js +1 -2
- package/dist/core/tracing/tool-tracing.d.ts +1 -1
- package/dist/core/tracing/tool-tracing.d.ts.map +1 -1
- package/dist/core/unified-creation-session.d.ts +15 -8
- package/dist/core/unified-creation-session.d.ts.map +1 -1
- package/dist/core/unified-creation-session.js +19 -19
- package/dist/core/unified-creation-types.d.ts +2 -2
- package/dist/core/unified-creation-types.d.ts.map +1 -1
- package/dist/core/visualization.d.ts +1 -1
- package/dist/core/visualization.d.ts.map +1 -1
- package/dist/core/workflow.d.ts +8 -5
- package/dist/core/workflow.d.ts.map +1 -1
- package/dist/evaluation/dataset-analyzer.d.ts +13 -7
- package/dist/evaluation/dataset-analyzer.d.ts.map +1 -1
- package/dist/evaluation/dataset-analyzer.js +1 -1
- package/dist/evaluation/datasets/loader.d.ts +2 -2
- package/dist/evaluation/datasets/loader.d.ts.map +1 -1
- package/dist/evaluation/eval-runner.js +7 -5
- package/dist/evaluation/evaluators/base-comparative.d.ts +1 -1
- package/dist/evaluation/evaluators/base-comparative.d.ts.map +1 -1
- package/dist/evaluation/evaluators/base-comparative.js +4 -3
- package/dist/evaluation/evaluators/base.d.ts +5 -5
- package/dist/evaluation/evaluators/base.d.ts.map +1 -1
- package/dist/evaluation/evaluators/capability-comparative.js +1 -1
- package/dist/evaluation/platform-synthesizer.d.ts.map +1 -1
- package/dist/interfaces/mcp.d.ts.map +1 -1
- package/dist/interfaces/mcp.js +26 -15
- package/dist/interfaces/openapi-generator.d.ts +116 -12
- package/dist/interfaces/openapi-generator.d.ts.map +1 -1
- package/dist/interfaces/openapi-generator.js +490 -199
- package/dist/interfaces/rest-api.d.ts +28 -6
- package/dist/interfaces/rest-api.d.ts.map +1 -1
- package/dist/interfaces/rest-api.js +436 -245
- package/dist/interfaces/rest-registry.d.ts +4 -4
- package/dist/interfaces/rest-registry.d.ts.map +1 -1
- package/dist/interfaces/rest-registry.js +6 -5
- package/dist/interfaces/rest-route-registry.d.ts +165 -0
- package/dist/interfaces/rest-route-registry.d.ts.map +1 -0
- package/dist/interfaces/rest-route-registry.js +230 -0
- package/dist/interfaces/routes/index.d.ts +22 -0
- package/dist/interfaces/routes/index.d.ts.map +1 -0
- package/dist/interfaces/routes/index.js +347 -0
- package/dist/interfaces/schemas/common.d.ts +177 -0
- package/dist/interfaces/schemas/common.d.ts.map +1 -0
- package/dist/interfaces/schemas/common.js +102 -0
- package/dist/interfaces/schemas/events.d.ts +131 -0
- package/dist/interfaces/schemas/events.d.ts.map +1 -0
- package/dist/interfaces/schemas/events.js +66 -0
- package/dist/interfaces/schemas/index.d.ts +21 -0
- package/dist/interfaces/schemas/index.d.ts.map +1 -0
- package/dist/interfaces/schemas/index.js +138 -0
- package/dist/interfaces/schemas/knowledge.d.ts +210 -0
- package/dist/interfaces/schemas/knowledge.d.ts.map +1 -0
- package/dist/interfaces/schemas/knowledge.js +117 -0
- package/dist/interfaces/schemas/logs.d.ts +82 -0
- package/dist/interfaces/schemas/logs.d.ts.map +1 -0
- package/dist/interfaces/schemas/logs.js +46 -0
- package/dist/interfaces/schemas/prompts.d.ts +191 -0
- package/dist/interfaces/schemas/prompts.d.ts.map +1 -0
- package/dist/interfaces/schemas/prompts.js +91 -0
- package/dist/interfaces/schemas/resources.d.ts +378 -0
- package/dist/interfaces/schemas/resources.d.ts.map +1 -0
- package/dist/interfaces/schemas/resources.js +173 -0
- package/dist/interfaces/schemas/sessions.d.ts +90 -0
- package/dist/interfaces/schemas/sessions.d.ts.map +1 -0
- package/dist/interfaces/schemas/sessions.js +56 -0
- package/dist/interfaces/schemas/tools.d.ts +194 -0
- package/dist/interfaces/schemas/tools.d.ts.map +1 -0
- package/dist/interfaces/schemas/tools.js +101 -0
- package/dist/interfaces/schemas/visualization.d.ts +373 -0
- package/dist/interfaces/schemas/visualization.d.ts.map +1 -0
- package/dist/interfaces/schemas/visualization.js +134 -0
- package/dist/mcp/server.js +5 -4
- package/dist/tools/answer-question.d.ts +1 -1
- package/dist/tools/answer-question.d.ts.map +1 -1
- package/dist/tools/answer-question.js +9 -8
- package/dist/tools/deploy-manifests.d.ts +4 -2
- package/dist/tools/deploy-manifests.d.ts.map +1 -1
- package/dist/tools/deploy-manifests.js +10 -6
- package/dist/tools/generate-manifests.d.ts.map +1 -1
- package/dist/tools/generate-manifests.js +28 -20
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -1
- package/dist/tools/manage-knowledge.d.ts +77 -0
- package/dist/tools/manage-knowledge.d.ts.map +1 -0
- package/dist/tools/manage-knowledge.js +573 -0
- package/dist/tools/operate-analysis.d.ts +31 -2
- package/dist/tools/operate-analysis.d.ts.map +1 -1
- package/dist/tools/operate-execution.d.ts +2 -3
- package/dist/tools/operate-execution.d.ts.map +1 -1
- package/dist/tools/operate-execution.js +7 -7
- package/dist/tools/operate.d.ts +7 -2
- package/dist/tools/operate.d.ts.map +1 -1
- package/dist/tools/operate.js +2 -2
- package/dist/tools/organizational-data.d.ts +30 -4
- package/dist/tools/organizational-data.d.ts.map +1 -1
- package/dist/tools/organizational-data.js +24 -19
- package/dist/tools/project-setup/discovery.d.ts.map +1 -1
- package/dist/tools/project-setup/generate-scope.d.ts +1 -1
- package/dist/tools/project-setup/generate-scope.d.ts.map +1 -1
- package/dist/tools/project-setup/types.d.ts +1 -0
- package/dist/tools/project-setup/types.d.ts.map +1 -1
- package/dist/tools/prompts.d.ts +28 -2
- package/dist/tools/prompts.d.ts.map +1 -1
- package/dist/tools/query.d.ts +17 -3
- package/dist/tools/query.d.ts.map +1 -1
- package/dist/tools/query.js +1 -7
- package/dist/tools/recommend.d.ts +24 -6
- package/dist/tools/recommend.d.ts.map +1 -1
- package/dist/tools/recommend.js +18 -15
- package/dist/tools/remediate.d.ts +12 -3
- package/dist/tools/remediate.d.ts.map +1 -1
- package/dist/tools/remediate.js +22 -14
- package/dist/tools/version.d.ts +19 -5
- package/dist/tools/version.d.ts.map +1 -1
- package/dist/tools/version.js +106 -54
- package/package.json +11 -5
- package/prompts/knowledge-ask.md +29 -0
- package/dist/core/vector-db-service.d.ts +0 -108
- package/dist/core/vector-db-service.d.ts.map +0 -1
- package/dist/core/vector-db-service.js +0 -647
|
@@ -8,11 +8,67 @@ import { Logger } from './error-handling';
|
|
|
8
8
|
import { CapabilityVectorService } from './capability-vector-service';
|
|
9
9
|
import { KubernetesDiscovery } from './discovery';
|
|
10
10
|
import { CapabilityInferenceEngine } from './capabilities';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Args passed to capability scan operations
|
|
13
|
+
*/
|
|
14
|
+
interface CapabilityScanArgs {
|
|
15
|
+
response?: string;
|
|
16
|
+
resourceList?: string;
|
|
17
|
+
interaction_id?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Response from capability scan operations
|
|
21
|
+
*/
|
|
22
|
+
interface CapabilityScanResponse {
|
|
23
|
+
success: boolean;
|
|
24
|
+
operation: string;
|
|
25
|
+
dataType: string;
|
|
26
|
+
REQUIRED_NEXT_CALL?: Record<string, unknown>;
|
|
27
|
+
workflow?: Record<string, unknown>;
|
|
28
|
+
status?: string;
|
|
29
|
+
sessionId?: string;
|
|
30
|
+
message?: string;
|
|
31
|
+
checkProgress?: Record<string, unknown>;
|
|
32
|
+
error?: {
|
|
33
|
+
message: string;
|
|
34
|
+
details?: string;
|
|
35
|
+
currentStep?: string;
|
|
36
|
+
expectedCall?: string;
|
|
37
|
+
sessionId?: string;
|
|
38
|
+
suggestedActions?: string[];
|
|
39
|
+
};
|
|
40
|
+
summary?: Record<string, unknown>;
|
|
41
|
+
results?: unknown[];
|
|
42
|
+
clientInstructions?: Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Error record for scan operations
|
|
46
|
+
*/
|
|
47
|
+
interface ScanError {
|
|
48
|
+
resource: string;
|
|
49
|
+
error: string;
|
|
50
|
+
index: number;
|
|
51
|
+
timestamp: string;
|
|
52
|
+
}
|
|
53
|
+
export type TransitionCapabilitySessionFn = (session: CapabilityScanSession, nextStep: CapabilityScanSession['currentStep'], updates: Partial<CapabilityScanSession>, args: CapabilityScanArgs) => void;
|
|
54
|
+
export type CleanupCapabilitySessionFn = (session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string) => void;
|
|
14
55
|
export type ParseNumericResponseFn = (response: string, validOptions: string[]) => string;
|
|
15
|
-
export type CreateCapabilityScanCompletionResponseFn = (sessionId: string, totalProcessed: number, successful: number, failed: number, processingTime: string, mode: 'auto' | 'manual', stopped?: boolean) =>
|
|
56
|
+
export type CreateCapabilityScanCompletionResponseFn = (sessionId: string, totalProcessed: number, successful: number, failed: number, processingTime: string, mode: 'auto' | 'manual', stopped?: boolean) => CapabilityScanResponse;
|
|
57
|
+
interface ProgressData {
|
|
58
|
+
status: 'processing' | 'completed';
|
|
59
|
+
current: number;
|
|
60
|
+
total: number;
|
|
61
|
+
percentage: number;
|
|
62
|
+
currentResource: string;
|
|
63
|
+
startedAt: string;
|
|
64
|
+
lastUpdated: string;
|
|
65
|
+
completedAt?: string;
|
|
66
|
+
estimatedTimeRemaining?: string;
|
|
67
|
+
totalProcessingTime?: string;
|
|
68
|
+
successfulResources: number;
|
|
69
|
+
failedResources: number;
|
|
70
|
+
errors: ScanError[];
|
|
71
|
+
}
|
|
16
72
|
interface PrinterColumnDef {
|
|
17
73
|
name: string;
|
|
18
74
|
type: string;
|
|
@@ -33,7 +89,7 @@ interface CapabilityScanSession {
|
|
|
33
89
|
selectedResources?: string[] | 'all';
|
|
34
90
|
resourceList?: string;
|
|
35
91
|
currentResourceIndex?: number;
|
|
36
|
-
progress?:
|
|
92
|
+
progress?: ProgressData;
|
|
37
93
|
startedAt: string;
|
|
38
94
|
lastActivity: string;
|
|
39
95
|
resourceMetadata?: Record<string, ResourceMetadata>;
|
|
@@ -59,14 +115,14 @@ export declare function scanSingleResource(resourceName: string, discovery: Kube
|
|
|
59
115
|
/**
|
|
60
116
|
* Handle resource selection step
|
|
61
117
|
*/
|
|
62
|
-
export declare function handleResourceSelection(session: CapabilityScanSession, args:
|
|
118
|
+
export declare function handleResourceSelection(session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, handleScanningFn: (session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn) => Promise<CapabilityScanResponse>): Promise<CapabilityScanResponse>;
|
|
63
119
|
/**
|
|
64
120
|
* Handle resource specification step
|
|
65
121
|
*/
|
|
66
|
-
export declare function handleResourceSpecification(session: CapabilityScanSession, args:
|
|
122
|
+
export declare function handleResourceSpecification(session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, handleScanningFn: (session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn) => Promise<CapabilityScanResponse>): Promise<CapabilityScanResponse>;
|
|
67
123
|
/**
|
|
68
124
|
* Handle scanning step (actual capability analysis - auto mode only)
|
|
69
125
|
*/
|
|
70
|
-
export declare function handleScanning(session: CapabilityScanSession, args:
|
|
126
|
+
export declare function handleScanning(session: CapabilityScanSession, args: CapabilityScanArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, _parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn): Promise<CapabilityScanResponse>;
|
|
71
127
|
export {};
|
|
72
128
|
//# sourceMappingURL=capability-scan-workflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-scan-workflow.d.ts","sourceRoot":"","sources":["../../src/core/capability-scan-workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"capability-scan-workflow.d.ts","sourceRoot":"","sources":["../../src/core/capability-scan-workflow.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAI3D;;GAEG;AACH,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,UAAU,SAAS;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,MAAM,6BAA6B,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;AACxM,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;AAC/I,MAAM,MAAM,sBAAsB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;AAC1F,MAAM,MAAM,wCAAwC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,sBAAsB,CAAC;AAGrO,UAAU,YAAY;IACpB,MAAM,EAAE,YAAY,GAAG,WAAW,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAGD,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACrC;AAGD,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,oBAAoB,GAAG,wBAAwB,GAAG,UAAU,GAAG,UAAU,CAAC;IACvF,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACrD;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,mBAAmB,EAC9B,MAAM,EAAE,yBAAyB,EACjC,iBAAiB,EAAE,uBAAuB,EAC1C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAsI7B;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,uBAAuB,EAC1C,oBAAoB,EAAE,sBAAsB,EAC5C,2BAA2B,EAAE,6BAA6B,EAC1D,wBAAwB,EAAE,0BAA0B,EACpD,sCAAsC,EAAE,wCAAwC,EAChF,gBAAgB,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,sCAAsC,EAAE,wCAAwC,KAAK,OAAO,CAAC,sBAAsB,CAAC,GAC/a,OAAO,CAAC,sBAAsB,CAAC,CA+JjC;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,uBAAuB,EAC1C,oBAAoB,EAAE,sBAAsB,EAC5C,2BAA2B,EAAE,6BAA6B,EAC1D,wBAAwB,EAAE,0BAA0B,EACpD,sCAAsC,EAAE,wCAAwC,EAChF,gBAAgB,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,sCAAsC,EAAE,wCAAwC,KAAK,OAAO,CAAC,sBAAsB,CAAC,GAC/a,OAAO,CAAC,sBAAsB,CAAC,CA8CjC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,EAC9B,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,iBAAiB,EAAE,uBAAuB,EAC1C,qBAAqB,EAAE,sBAAsB,EAC7C,2BAA2B,EAAE,6BAA6B,EAC1D,wBAAwB,EAAE,0BAA0B,EACpD,sCAAsC,EAAE,wCAAwC,GAC/E,OAAO,CAAC,sBAAsB,CAAC,CAgTjC"}
|
|
@@ -13,6 +13,7 @@ exports.handleScanning = handleScanning;
|
|
|
13
13
|
const discovery_1 = require("./discovery");
|
|
14
14
|
const capabilities_1 = require("./capabilities");
|
|
15
15
|
const ai_provider_factory_1 = require("./ai-provider-factory");
|
|
16
|
+
const plugin_registry_1 = require("./plugin-registry");
|
|
16
17
|
/**
|
|
17
18
|
* Scan a single resource - fetches all data, runs AI inference, stores to DB
|
|
18
19
|
* This is the core function that both full scan and targeted scan call for each resource.
|
|
@@ -138,7 +139,7 @@ async function scanSingleResource(resourceName, discovery, engine, capabilitySer
|
|
|
138
139
|
/**
|
|
139
140
|
* Handle resource selection step
|
|
140
141
|
*/
|
|
141
|
-
async function handleResourceSelection(session, args, logger, requestId, capabilityService, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse, handleScanningFn
|
|
142
|
+
async function handleResourceSelection(session, args, logger, requestId, capabilityService, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse, handleScanningFn) {
|
|
142
143
|
if (!args.response) {
|
|
143
144
|
// Show initial resource selection prompt
|
|
144
145
|
return {
|
|
@@ -186,7 +187,8 @@ async function handleResourceSelection(session, args, logger, requestId, capabil
|
|
|
186
187
|
const normalizedResponse = parseNumericResponse(args.response, ['all', 'specific']);
|
|
187
188
|
if (normalizedResponse === 'all') {
|
|
188
189
|
// Guard: Verify plugin is available before starting background scan
|
|
189
|
-
|
|
190
|
+
// PRD #359: Check via unified plugin registry
|
|
191
|
+
if (!(0, plugin_registry_1.isPluginInitialized)()) {
|
|
190
192
|
logger.error('Cannot start capability scan: plugin system not available', undefined, { requestId, sessionId: session.sessionId });
|
|
191
193
|
return {
|
|
192
194
|
success: false,
|
|
@@ -204,7 +206,7 @@ async function handleResourceSelection(session, args, logger, requestId, capabil
|
|
|
204
206
|
currentResourceIndex: 0 // Start with first resource
|
|
205
207
|
}, args);
|
|
206
208
|
// Start scanning in background (don't await) to avoid MCP timeout
|
|
207
|
-
handleScanningFn(session, { ...args, response: undefined }, logger, requestId, capabilityService, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse
|
|
209
|
+
handleScanningFn(session, { ...args, response: undefined }, logger, requestId, capabilityService, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse)
|
|
208
210
|
.catch(error => {
|
|
209
211
|
logger.error('Background capability scan failed', error, {
|
|
210
212
|
requestId,
|
|
@@ -288,7 +290,7 @@ async function handleResourceSelection(session, args, logger, requestId, capabil
|
|
|
288
290
|
/**
|
|
289
291
|
* Handle resource specification step
|
|
290
292
|
*/
|
|
291
|
-
async function handleResourceSpecification(session, args, logger, requestId, capabilityService, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse, handleScanningFn
|
|
293
|
+
async function handleResourceSpecification(session, args, logger, requestId, capabilityService, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse, handleScanningFn) {
|
|
292
294
|
if (!args.resourceList) {
|
|
293
295
|
return {
|
|
294
296
|
success: false,
|
|
@@ -329,12 +331,12 @@ async function handleResourceSpecification(session, args, logger, requestId, cap
|
|
|
329
331
|
currentResourceIndex: 0
|
|
330
332
|
}, args);
|
|
331
333
|
// Begin actual capability scanning and return completion summary
|
|
332
|
-
return await handleScanningFn(session, { ...args, response: undefined }, logger, requestId, capabilityService, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse
|
|
334
|
+
return await handleScanningFn(session, { ...args, response: undefined }, logger, requestId, capabilityService, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse);
|
|
333
335
|
}
|
|
334
336
|
/**
|
|
335
337
|
* Handle scanning step (actual capability analysis - auto mode only)
|
|
336
338
|
*/
|
|
337
|
-
async function handleScanning(session, args, logger, requestId, capabilityService,
|
|
339
|
+
async function handleScanning(session, args, logger, requestId, capabilityService, _parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse) {
|
|
338
340
|
try {
|
|
339
341
|
// Validate and initialize AI provider
|
|
340
342
|
let aiProvider;
|
|
@@ -369,12 +371,11 @@ async function handleScanning(session, args, logger, requestId, capabilityServic
|
|
|
369
371
|
// For 'all' mode, discover actual cluster resources first
|
|
370
372
|
try {
|
|
371
373
|
logger.info('Discovering all cluster resources for capability scanning', { requestId, sessionId: session.sessionId });
|
|
372
|
-
// PRD #
|
|
373
|
-
if (!
|
|
374
|
+
// PRD #359: Use unified plugin registry for kubectl operations
|
|
375
|
+
if (!(0, plugin_registry_1.isPluginInitialized)()) {
|
|
374
376
|
throw new Error('Plugin system not available. Capability scanning requires agentic-tools plugin.');
|
|
375
377
|
}
|
|
376
378
|
const discovery = new discovery_1.KubernetesDiscovery();
|
|
377
|
-
discovery.setPluginManager(pluginManager);
|
|
378
379
|
// Discover all available resources
|
|
379
380
|
const resourceMap = await discovery.discoverResources();
|
|
380
381
|
const allResources = [...resourceMap.resources, ...resourceMap.custom];
|
|
@@ -500,13 +501,12 @@ async function handleScanning(session, args, logger, requestId, capabilityServic
|
|
|
500
501
|
progress: progressData
|
|
501
502
|
}, args);
|
|
502
503
|
};
|
|
503
|
-
// PRD #
|
|
504
|
-
if (!
|
|
504
|
+
// PRD #359: Use unified plugin registry for kubectl operations
|
|
505
|
+
if (!(0, plugin_registry_1.isPluginInitialized)()) {
|
|
505
506
|
throw new Error('Plugin system not available. Capability scanning requires agentic-tools plugin.');
|
|
506
507
|
}
|
|
507
508
|
// Setup kubectl access via plugin
|
|
508
509
|
const discovery = new discovery_1.KubernetesDiscovery();
|
|
509
|
-
discovery.setPluginManager(pluginManager);
|
|
510
510
|
logger.info('Ready for capability scanning via plugin', {
|
|
511
511
|
requestId,
|
|
512
512
|
sessionId: session.sessionId
|
|
@@ -521,6 +521,7 @@ async function handleScanning(session, args, logger, requestId, capabilityServic
|
|
|
521
521
|
const result = await scanSingleResource(currentResource, discovery, engine, capabilityService, logger, requestId, args.interaction_id);
|
|
522
522
|
if (result.success) {
|
|
523
523
|
processedResults.push({
|
|
524
|
+
success: true,
|
|
524
525
|
resource: result.resource,
|
|
525
526
|
id: result.id,
|
|
526
527
|
capabilities: result.capabilities,
|
|
@@ -532,7 +533,7 @@ async function handleScanning(session, args, logger, requestId, capabilityServic
|
|
|
532
533
|
else {
|
|
533
534
|
errors.push({
|
|
534
535
|
resource: result.resource,
|
|
535
|
-
error: result.error,
|
|
536
|
+
error: result.error || 'Unknown error',
|
|
536
537
|
index: i + 1,
|
|
537
538
|
timestamp: new Date().toISOString()
|
|
538
539
|
});
|
|
@@ -30,7 +30,7 @@ export declare const CAPABILITY_TOOLS: AITool[];
|
|
|
30
30
|
* @param input - Tool input parameters
|
|
31
31
|
* @returns Tool execution result
|
|
32
32
|
*/
|
|
33
|
-
export declare function executeCapabilityTools(toolName: string, input:
|
|
33
|
+
export declare function executeCapabilityTools(toolName: string, input: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
34
34
|
/**
|
|
35
35
|
* Reset the capability service (useful for testing)
|
|
36
36
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-tools.d.ts","sourceRoot":"","sources":["../../src/core/capability-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAIjD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAwBtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAkCrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAGpC,CAAC;AAsBF;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"capability-tools.d.ts","sourceRoot":"","sources":["../../src/core/capability-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAIjD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAwBtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAkCrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAGpC,CAAC;AAsBF;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwF/H;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
|
|
@@ -128,7 +128,7 @@ async function executeCapabilityTools(toolName, input) {
|
|
|
128
128
|
};
|
|
129
129
|
}
|
|
130
130
|
const service = await getCapabilityService();
|
|
131
|
-
const results = await service.searchCapabilities(query, { limit });
|
|
131
|
+
const results = await service.searchCapabilities(query, { limit: limit });
|
|
132
132
|
// Transform results to a clean format for AI consumption
|
|
133
133
|
const capabilities = results.map(r => ({
|
|
134
134
|
resourceName: r.data.resourceName,
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* Extends BaseVectorService to provide capability-specific operations
|
|
6
6
|
*/
|
|
7
7
|
import { BaseVectorService, BaseSearchOptions, BaseSearchResult } from './base-vector-service';
|
|
8
|
-
import { VectorDBService } from './vector-db-service';
|
|
9
8
|
import { EmbeddingService } from './embedding-service';
|
|
10
9
|
import { ResourceCapability, PrinterColumn } from './capabilities';
|
|
11
10
|
export type { ResourceCapability, PrinterColumn };
|
|
@@ -17,7 +16,7 @@ export interface CapabilitySearchOptions extends BaseSearchOptions {
|
|
|
17
16
|
* Vector service for storing and searching resource capabilities
|
|
18
17
|
*/
|
|
19
18
|
export declare class CapabilityVectorService extends BaseVectorService<ResourceCapability> {
|
|
20
|
-
constructor(collectionName?: string,
|
|
19
|
+
constructor(collectionName?: string, embeddingService?: EmbeddingService);
|
|
21
20
|
/**
|
|
22
21
|
* Create searchable text from capability data for embedding generation
|
|
23
22
|
*/
|
|
@@ -29,11 +28,11 @@ export declare class CapabilityVectorService extends BaseVectorService<ResourceC
|
|
|
29
28
|
/**
|
|
30
29
|
* Convert capability to storage payload format
|
|
31
30
|
*/
|
|
32
|
-
protected createPayload(capability: ResourceCapability): Record<string,
|
|
31
|
+
protected createPayload(capability: ResourceCapability): Record<string, unknown>;
|
|
33
32
|
/**
|
|
34
33
|
* Convert storage payload back to capability object
|
|
35
34
|
*/
|
|
36
|
-
protected payloadToData(payload: Record<string,
|
|
35
|
+
protected payloadToData(payload: Record<string, unknown>): ResourceCapability;
|
|
37
36
|
/**
|
|
38
37
|
* Store a capability in the vector database
|
|
39
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-vector-service.d.ts","sourceRoot":"","sources":["../../src/core/capability-vector-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"capability-vector-service.d.ts","sourceRoot":"","sources":["../../src/core/capability-vector-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAA6B,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG9F,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC;AAElD,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,gBAAgB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC7C,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,iBAAiB,CAAC,kBAAkB,CAAC;gBAEpE,cAAc,GAAE,MAAuB,EAAE,gBAAgB,CAAC,EAAE,gBAAgB;IAIxF;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM;IAYlE;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM;IAI3D;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAkBhF;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,kBAAkB;IAkB7E;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE;;OAEG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAoBlD;;;OAGG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAInE;;;;;;;OAOG;IACG,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAwCzG;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D;;OAEG;IACG,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C;;OAEG;IACG,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAIvE;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;CAK9C"}
|
|
@@ -13,8 +13,8 @@ const capabilities_1 = require("./capabilities");
|
|
|
13
13
|
* Vector service for storing and searching resource capabilities
|
|
14
14
|
*/
|
|
15
15
|
class CapabilityVectorService extends base_vector_service_1.BaseVectorService {
|
|
16
|
-
constructor(collectionName = 'capabilities',
|
|
17
|
-
super(collectionName,
|
|
16
|
+
constructor(collectionName = 'capabilities', embeddingService) {
|
|
17
|
+
super(collectionName, embeddingService);
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Create searchable text from capability data for embedding generation
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
* The plugin container has RBAC permissions; the MCP server does not.
|
|
10
10
|
*/
|
|
11
11
|
import { Logger } from './error-handling';
|
|
12
|
-
import { PluginManager } from './plugin-manager';
|
|
13
12
|
/**
|
|
14
13
|
* Execution result for a single command
|
|
15
14
|
*/
|
|
@@ -26,22 +25,22 @@ export interface CommandExecutionResult {
|
|
|
26
25
|
export interface CommandExecutionOptions {
|
|
27
26
|
sessionId?: string;
|
|
28
27
|
context?: string;
|
|
29
|
-
logMetadata?: Record<string,
|
|
28
|
+
logMetadata?: Record<string, unknown>;
|
|
30
29
|
}
|
|
31
30
|
/**
|
|
32
31
|
* Execute a list of commands sequentially with continue-on-error pattern
|
|
33
32
|
*
|
|
34
33
|
* PRD #343: Commands are executed through the plugin's shell_exec tool.
|
|
34
|
+
* PRD #359: Uses unified plugin registry for tool invocation.
|
|
35
35
|
* The plugin container has RBAC; commands are executed exactly as provided
|
|
36
36
|
* (no parsing or transformation).
|
|
37
37
|
*
|
|
38
38
|
* @param commands - Array of command strings to execute
|
|
39
39
|
* @param logger - Logger instance for tracking execution
|
|
40
|
-
* @param pluginManager - Plugin manager for executing commands via plugin
|
|
41
40
|
* @param options - Optional execution context and metadata
|
|
42
41
|
* @returns Array of execution results and overall success status
|
|
43
42
|
*/
|
|
44
|
-
export declare function executeCommands(commands: string[], logger: Logger,
|
|
43
|
+
export declare function executeCommands(commands: string[], logger: Logger, options?: CommandExecutionOptions): Promise<{
|
|
45
44
|
results: CommandExecutionResult[];
|
|
46
45
|
overallSuccess: boolean;
|
|
47
46
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-executor.d.ts","sourceRoot":"","sources":["../../src/core/command-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-executor.d.ts","sourceRoot":"","sources":["../../src/core/command-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG1C;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC;IAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAAC,CAmHzE"}
|
|
@@ -11,20 +11,24 @@
|
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.executeCommands = executeCommands;
|
|
14
|
+
const plugin_registry_1 = require("./plugin-registry");
|
|
14
15
|
/**
|
|
15
16
|
* Execute a list of commands sequentially with continue-on-error pattern
|
|
16
17
|
*
|
|
17
18
|
* PRD #343: Commands are executed through the plugin's shell_exec tool.
|
|
19
|
+
* PRD #359: Uses unified plugin registry for tool invocation.
|
|
18
20
|
* The plugin container has RBAC; commands are executed exactly as provided
|
|
19
21
|
* (no parsing or transformation).
|
|
20
22
|
*
|
|
21
23
|
* @param commands - Array of command strings to execute
|
|
22
24
|
* @param logger - Logger instance for tracking execution
|
|
23
|
-
* @param pluginManager - Plugin manager for executing commands via plugin
|
|
24
25
|
* @param options - Optional execution context and metadata
|
|
25
26
|
* @returns Array of execution results and overall success status
|
|
26
27
|
*/
|
|
27
|
-
async function executeCommands(commands, logger,
|
|
28
|
+
async function executeCommands(commands, logger, options = {}) {
|
|
29
|
+
if (!(0, plugin_registry_1.isPluginInitialized)()) {
|
|
30
|
+
throw new Error('Plugin system not initialized');
|
|
31
|
+
}
|
|
28
32
|
const results = [];
|
|
29
33
|
let overallSuccess = true;
|
|
30
34
|
const { sessionId, context = 'command execution', logMetadata = {} } = options;
|
|
@@ -45,8 +49,8 @@ async function executeCommands(commands, logger, pluginManager, options = {}) {
|
|
|
45
49
|
});
|
|
46
50
|
// Clean up escape sequences that AI models sometimes add
|
|
47
51
|
const cleanCommand = command.replace(/\\"/g, '"');
|
|
48
|
-
// PRD #
|
|
49
|
-
const response = await
|
|
52
|
+
// PRD #359: Execute command via unified plugin registry
|
|
53
|
+
const response = await (0, plugin_registry_1.invokePluginTool)('agentic-tools', 'shell_exec', { command: cleanCommand });
|
|
50
54
|
if (response.success) {
|
|
51
55
|
// Check for nested error - plugin wraps command errors in { success: false, error: "..." }
|
|
52
56
|
if (typeof response.result === 'object' && response.result !== null) {
|
|
@@ -4,16 +4,14 @@
|
|
|
4
4
|
* Checks once per MCP server lifecycle if Solution CRD is available,
|
|
5
5
|
* then caches the result globally to avoid repeated cluster queries.
|
|
6
6
|
*
|
|
7
|
-
* PRD #
|
|
7
|
+
* PRD #359: Uses unified plugin registry for K8s operations
|
|
8
8
|
*/
|
|
9
|
-
import type { PluginManager } from './plugin-manager';
|
|
10
9
|
/**
|
|
11
10
|
* Helper function for checking CRD availability
|
|
12
11
|
* Use this function throughout the codebase
|
|
13
|
-
*
|
|
14
|
-
* @param pluginManager - Optional plugin manager. If provided on first call, will be cached.
|
|
12
|
+
* PRD #359: No longer requires pluginManager parameter - uses unified registry
|
|
15
13
|
*/
|
|
16
|
-
export declare function isSolutionCRDAvailable(
|
|
14
|
+
export declare function isSolutionCRDAvailable(): Promise<boolean>;
|
|
17
15
|
/**
|
|
18
16
|
* Reset CRD availability cache (primarily for testing)
|
|
19
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crd-availability.d.ts","sourceRoot":"","sources":["../../src/core/crd-availability.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"crd-availability.d.ts","sourceRoot":"","sources":["../../src/core/crd-availability.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0FH;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG/D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD"}
|
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
* Checks once per MCP server lifecycle if Solution CRD is available,
|
|
6
6
|
* then caches the result globally to avoid repeated cluster queries.
|
|
7
7
|
*
|
|
8
|
-
* PRD #
|
|
8
|
+
* PRD #359: Uses unified plugin registry for K8s operations
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
11
|
exports.isSolutionCRDAvailable = isSolutionCRDAvailable;
|
|
12
12
|
exports.resetCRDAvailabilityCache = resetCRDAvailabilityCache;
|
|
13
|
+
const plugin_registry_1 = require("./plugin-registry");
|
|
13
14
|
/**
|
|
14
15
|
* Singleton cache for CRD availability check
|
|
15
16
|
* Checks once per MCP server lifecycle, caches result globally
|
|
@@ -17,7 +18,6 @@ exports.resetCRDAvailabilityCache = resetCRDAvailabilityCache;
|
|
|
17
18
|
class CRDAvailabilityCache {
|
|
18
19
|
static instance;
|
|
19
20
|
crdAvailable = null;
|
|
20
|
-
pluginManager = null;
|
|
21
21
|
constructor() { }
|
|
22
22
|
static getInstance() {
|
|
23
23
|
if (!CRDAvailabilityCache.instance) {
|
|
@@ -25,19 +25,13 @@ class CRDAvailabilityCache {
|
|
|
25
25
|
}
|
|
26
26
|
return CRDAvailabilityCache.instance;
|
|
27
27
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Set plugin manager for K8s operations
|
|
30
|
-
*/
|
|
31
|
-
setPluginManager(pluginManager) {
|
|
32
|
-
this.pluginManager = pluginManager;
|
|
33
|
-
}
|
|
34
28
|
async isSolutionCRDAvailable() {
|
|
35
29
|
// Return cached result if available
|
|
36
30
|
if (this.crdAvailable !== null) {
|
|
37
31
|
return this.crdAvailable;
|
|
38
32
|
}
|
|
39
|
-
// PRD #
|
|
40
|
-
if (!
|
|
33
|
+
// PRD #359: All K8s operations go through unified plugin registry
|
|
34
|
+
if (!(0, plugin_registry_1.isPluginInitialized)()) {
|
|
41
35
|
console.log('ℹ️ Plugin system not available - Solution CR generation disabled');
|
|
42
36
|
this.crdAvailable = false;
|
|
43
37
|
return false;
|
|
@@ -45,7 +39,7 @@ class CRDAvailabilityCache {
|
|
|
45
39
|
// Check cluster for Solution CRD via plugin
|
|
46
40
|
const crdName = 'solutions.dot-ai.devopstoolkit.live';
|
|
47
41
|
try {
|
|
48
|
-
const response = await
|
|
42
|
+
const response = await (0, plugin_registry_1.invokePluginTool)('agentic-tools', 'kubectl_get_resource_json', {
|
|
49
43
|
resource: `crd/${crdName}`
|
|
50
44
|
});
|
|
51
45
|
if (response.success) {
|
|
@@ -79,7 +73,7 @@ class CRDAvailabilityCache {
|
|
|
79
73
|
}
|
|
80
74
|
catch (error) {
|
|
81
75
|
// Check if it's a "not found" error
|
|
82
|
-
const errorMsg = error.message
|
|
76
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
83
77
|
if (errorMsg.includes('NotFound') || errorMsg.includes('not found')) {
|
|
84
78
|
this.crdAvailable = false;
|
|
85
79
|
console.log('ℹ️ Solution CRD not available - Solution CR generation disabled (graceful degradation)');
|
|
@@ -99,14 +93,10 @@ class CRDAvailabilityCache {
|
|
|
99
93
|
/**
|
|
100
94
|
* Helper function for checking CRD availability
|
|
101
95
|
* Use this function throughout the codebase
|
|
102
|
-
*
|
|
103
|
-
* @param pluginManager - Optional plugin manager. If provided on first call, will be cached.
|
|
96
|
+
* PRD #359: No longer requires pluginManager parameter - uses unified registry
|
|
104
97
|
*/
|
|
105
|
-
async function isSolutionCRDAvailable(
|
|
98
|
+
async function isSolutionCRDAvailable() {
|
|
106
99
|
const cache = CRDAvailabilityCache.getInstance();
|
|
107
|
-
if (pluginManager) {
|
|
108
|
-
cache.setPluginManager(pluginManager);
|
|
109
|
-
}
|
|
110
100
|
return cache.isSolutionCRDAvailable();
|
|
111
101
|
}
|
|
112
102
|
/**
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Deploy Operation - Handles Kubernetes manifest deployment with readiness checking
|
|
3
3
|
* PRD #343: Uses plugin system for kubectl operations
|
|
4
4
|
*/
|
|
5
|
-
import type { PluginManager } from './plugin-manager';
|
|
6
5
|
export interface DeployOptions {
|
|
7
6
|
solutionId: string;
|
|
8
7
|
sessionDir?: string;
|
|
@@ -17,8 +16,10 @@ export interface DeployResult {
|
|
|
17
16
|
kubectlOutput: string;
|
|
18
17
|
}
|
|
19
18
|
export declare class DeployOperation {
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
/**
|
|
20
|
+
* PRD #359: Uses unified plugin registry for kubectl operations
|
|
21
|
+
*/
|
|
22
|
+
constructor();
|
|
22
23
|
/**
|
|
23
24
|
* Deploy Kubernetes manifests from generated solution
|
|
24
25
|
* PRD #343: Uses plugin for kubectl operations
|
|
@@ -34,7 +35,7 @@ export declare class DeployOperation {
|
|
|
34
35
|
private verifyManifestExists;
|
|
35
36
|
/**
|
|
36
37
|
* Execute kubectl command via plugin
|
|
37
|
-
* PRD #
|
|
38
|
+
* PRD #359: All kubectl operations go through unified plugin registry
|
|
38
39
|
*/
|
|
39
40
|
private executeKubectl;
|
|
40
41
|
/**
|
|
@@ -45,7 +46,7 @@ export declare class DeployOperation {
|
|
|
45
46
|
private applyManifests;
|
|
46
47
|
/**
|
|
47
48
|
* Apply manifest content using kubectl_apply tool
|
|
48
|
-
* PRD #
|
|
49
|
+
* PRD #359: Uses unified plugin registry's kubectl_apply tool with stdin
|
|
49
50
|
*/
|
|
50
51
|
private applyManifestContent;
|
|
51
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-operation.d.ts","sourceRoot":"","sources":["../../src/core/deploy-operation.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"deploy-operation.d.ts","sourceRoot":"","sources":["../../src/core/deploy-operation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAYD,qBAAa,eAAe;IAC1B;;OAEG;;IAOH;;;OAGG;IACU,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA2BlE;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB;;OAEG;YACW,oBAAoB;IAQlC;;;OAGG;YACW,cAAc;IAwB5B;;;;OAIG;YACW,cAAc;IAgC5B;;;OAGG;YACW,oBAAoB;CAuBnC"}
|
|
@@ -8,10 +8,15 @@ exports.DeployOperation = void 0;
|
|
|
8
8
|
const promises_1 = require("fs/promises");
|
|
9
9
|
const path_1 = require("path");
|
|
10
10
|
const error_handling_1 = require("./error-handling");
|
|
11
|
+
const plugin_registry_1 = require("./plugin-registry");
|
|
11
12
|
class DeployOperation {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* PRD #359: Uses unified plugin registry for kubectl operations
|
|
15
|
+
*/
|
|
16
|
+
constructor() {
|
|
17
|
+
if (!(0, plugin_registry_1.isPluginInitialized)()) {
|
|
18
|
+
throw new Error('Plugin system not available. DeployOperation requires agentic-tools plugin.');
|
|
19
|
+
}
|
|
15
20
|
}
|
|
16
21
|
/**
|
|
17
22
|
* Deploy Kubernetes manifests from generated solution
|
|
@@ -52,16 +57,16 @@ class DeployOperation {
|
|
|
52
57
|
try {
|
|
53
58
|
await (0, promises_1.access)(manifestPath);
|
|
54
59
|
}
|
|
55
|
-
catch
|
|
60
|
+
catch {
|
|
56
61
|
throw new Error(`Manifest file not found: ${manifestPath}`);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
65
|
* Execute kubectl command via plugin
|
|
61
|
-
* PRD #
|
|
66
|
+
* PRD #359: All kubectl operations go through unified plugin registry
|
|
62
67
|
*/
|
|
63
68
|
async executeKubectl(args) {
|
|
64
|
-
const response = await
|
|
69
|
+
const response = await (0, plugin_registry_1.invokePluginTool)('agentic-tools', 'kubectl_exec_command', { args });
|
|
65
70
|
if (response.success) {
|
|
66
71
|
if (typeof response.result === 'object' && response.result !== null) {
|
|
67
72
|
const result = response.result;
|
|
@@ -109,21 +114,22 @@ class DeployOperation {
|
|
|
109
114
|
}
|
|
110
115
|
catch (waitError) {
|
|
111
116
|
// If no deployments found or wait fails, that's OK for other resource types (Services, etc.)
|
|
112
|
-
|
|
117
|
+
const errorMsg = waitError instanceof Error ? waitError.message : String(waitError);
|
|
118
|
+
if (errorMsg.includes('no matching resources found')) {
|
|
113
119
|
waitOutput = '\n\nWait output: No deployments found to wait for (likely Services, CRs, etc.)';
|
|
114
120
|
}
|
|
115
121
|
else {
|
|
116
|
-
waitOutput = `\n\nWait output: Warning - ${
|
|
122
|
+
waitOutput = `\n\nWait output: Warning - ${errorMsg}`;
|
|
117
123
|
}
|
|
118
124
|
}
|
|
119
125
|
return `Apply output:\n${applyResult}${waitOutput}`;
|
|
120
126
|
}
|
|
121
127
|
/**
|
|
122
128
|
* Apply manifest content using kubectl_apply tool
|
|
123
|
-
* PRD #
|
|
129
|
+
* PRD #359: Uses unified plugin registry's kubectl_apply tool with stdin
|
|
124
130
|
*/
|
|
125
131
|
async applyManifestContent(manifest) {
|
|
126
|
-
const response = await
|
|
132
|
+
const response = await (0, plugin_registry_1.invokePluginTool)('agentic-tools', 'kubectl_apply', { manifest });
|
|
127
133
|
if (response.success) {
|
|
128
134
|
if (typeof response.result === 'object' && response.result !== null) {
|
|
129
135
|
const result = response.result;
|