@vfarcic/dot-ai 1.0.3 → 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
package/README.md
CHANGED
|
@@ -39,6 +39,7 @@ DevOps AI Toolkit brings AI-powered intelligence to platform engineering, Kubern
|
|
|
39
39
|
- Intelligent Kubernetes deployment recommendations
|
|
40
40
|
- AI-powered issue remediation and root cause analysis
|
|
41
41
|
- Organizational pattern and policy management
|
|
42
|
+
- Semantic search over organizational documentation
|
|
42
43
|
- Automated repository setup with governance files
|
|
43
44
|
- Shared prompt libraries for consistent workflows
|
|
44
45
|
|
|
@@ -63,7 +63,7 @@ export interface AITool {
|
|
|
63
63
|
/** JSON schema for tool input parameters */
|
|
64
64
|
inputSchema: {
|
|
65
65
|
type: 'object';
|
|
66
|
-
properties: Record<string,
|
|
66
|
+
properties: Record<string, unknown>;
|
|
67
67
|
required?: string[];
|
|
68
68
|
};
|
|
69
69
|
}
|
|
@@ -71,7 +71,15 @@ export interface AITool {
|
|
|
71
71
|
* Tool executor function type
|
|
72
72
|
* Called by the provider when AI requests a tool execution
|
|
73
73
|
*/
|
|
74
|
-
export type ToolExecutor = (toolName: string, input:
|
|
74
|
+
export type ToolExecutor = (toolName: string, input: unknown) => Promise<unknown>;
|
|
75
|
+
/**
|
|
76
|
+
* Record of a tool call execution
|
|
77
|
+
*/
|
|
78
|
+
export interface ToolCallRecord {
|
|
79
|
+
tool: string;
|
|
80
|
+
input: unknown;
|
|
81
|
+
output: unknown;
|
|
82
|
+
}
|
|
75
83
|
/**
|
|
76
84
|
* Configuration for agentic tool loop
|
|
77
85
|
*/
|
|
@@ -87,7 +95,7 @@ export interface ToolLoopConfig {
|
|
|
87
95
|
/** Maximum number of AI iterations (default: 20) */
|
|
88
96
|
maxIterations?: number;
|
|
89
97
|
/** Optional callback invoked after each iteration */
|
|
90
|
-
onIteration?: (iteration: number, toolCalls:
|
|
98
|
+
onIteration?: (iteration: number, toolCalls: ToolCallRecord[]) => void;
|
|
91
99
|
/** Optional operation identifier for metrics and debugging */
|
|
92
100
|
operation?: string;
|
|
93
101
|
/** PRD #154: Evaluation context for dataset generation */
|
|
@@ -106,11 +114,7 @@ export interface AgenticResult {
|
|
|
106
114
|
/** Number of iterations executed */
|
|
107
115
|
iterations: number;
|
|
108
116
|
/** All tool calls executed during the loop */
|
|
109
|
-
toolCallsExecuted:
|
|
110
|
-
tool: string;
|
|
111
|
-
input: any;
|
|
112
|
-
output: any;
|
|
113
|
-
}>;
|
|
117
|
+
toolCallsExecuted: ToolCallRecord[];
|
|
114
118
|
/** Token usage statistics including cache metrics */
|
|
115
119
|
totalTokens: {
|
|
116
120
|
input: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-provider.interface.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider.interface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IAEf,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAC;IAEjB,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IAEb,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;IAEpB,4CAA4C;IAC5C,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"ai-provider.interface.d.ts","sourceRoot":"","sources":["../../src/core/ai-provider.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacthub.d.ts","sourceRoot":"","sources":["../../src/core/artifacthub.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"artifacthub.d.ts","sourceRoot":"","sources":["../../src/core/artifacthub.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,OAAO,CAAC;QAClB,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,OAAO,CAAS;IAIxB,OAAO,CAAC,aAAa,CAAe;IAEpC;;;;;;OAMG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC;IAsCzF;;;;;;OAMG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IA8B9F;;;;;OAKG;IACH,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM;CAW7D"}
|
|
@@ -3,14 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generic vector operations that can be extended for different data types
|
|
5
5
|
* (patterns, capabilities, dependencies, etc.)
|
|
6
|
+
*
|
|
7
|
+
* PRD #359: Now calls plugin directly instead of going through VectorDBService.
|
|
6
8
|
*/
|
|
7
|
-
import { VectorDBService } from './vector-db-service';
|
|
8
9
|
import { EmbeddingService } from './embedding-service';
|
|
9
10
|
export interface BaseSearchOptions {
|
|
10
11
|
limit?: number;
|
|
11
12
|
scoreThreshold?: number;
|
|
12
13
|
keywordWeight?: number;
|
|
13
|
-
filter?: Record<string,
|
|
14
|
+
filter?: Record<string, unknown>;
|
|
14
15
|
}
|
|
15
16
|
export interface BaseSearchResult<T> {
|
|
16
17
|
data: T;
|
|
@@ -22,14 +23,26 @@ export interface SearchMode {
|
|
|
22
23
|
provider?: string;
|
|
23
24
|
reason?: string;
|
|
24
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Document stored in vector database
|
|
28
|
+
*/
|
|
29
|
+
export interface VectorDocument {
|
|
30
|
+
id: string;
|
|
31
|
+
payload: Record<string, unknown>;
|
|
32
|
+
vector?: number[];
|
|
33
|
+
}
|
|
25
34
|
/**
|
|
26
35
|
* Abstract base class for vector-based data services
|
|
27
36
|
*/
|
|
28
37
|
export declare abstract class BaseVectorService<T> {
|
|
29
|
-
protected vectorDB: VectorDBService;
|
|
30
38
|
protected embeddingService: EmbeddingService;
|
|
31
39
|
protected collectionName: string;
|
|
32
|
-
constructor(collectionName: string,
|
|
40
|
+
constructor(collectionName: string, embeddingService?: EmbeddingService);
|
|
41
|
+
/**
|
|
42
|
+
* Invoke a plugin tool and extract the result
|
|
43
|
+
* @throws Error if plugin returns an error response
|
|
44
|
+
*/
|
|
45
|
+
private invokePlugin;
|
|
33
46
|
/**
|
|
34
47
|
* Initialize the collection
|
|
35
48
|
*/
|
|
@@ -43,7 +56,7 @@ export declare abstract class BaseVectorService<T> {
|
|
|
43
56
|
*/
|
|
44
57
|
healthCheck(): Promise<boolean>;
|
|
45
58
|
/**
|
|
46
|
-
* Store data in Vector DB with
|
|
59
|
+
* Store data in Vector DB with semantic embedding
|
|
47
60
|
*/
|
|
48
61
|
storeData(data: T): Promise<void>;
|
|
49
62
|
/**
|
|
@@ -59,7 +72,7 @@ export declare abstract class BaseVectorService<T> {
|
|
|
59
72
|
*/
|
|
60
73
|
deleteData(id: string): Promise<void>;
|
|
61
74
|
/**
|
|
62
|
-
* Delete all data (
|
|
75
|
+
* Delete all data (preserves collection structure)
|
|
63
76
|
*/
|
|
64
77
|
deleteAllData(): Promise<void>;
|
|
65
78
|
/**
|
|
@@ -67,7 +80,7 @@ export declare abstract class BaseVectorService<T> {
|
|
|
67
80
|
* @param filter - Qdrant filter object constructed by AI
|
|
68
81
|
* @param limit - Maximum results to return
|
|
69
82
|
*/
|
|
70
|
-
queryWithFilter(filter:
|
|
83
|
+
queryWithFilter(filter: Record<string, unknown>, limit?: number): Promise<T[]>;
|
|
71
84
|
/**
|
|
72
85
|
* Get all data (limited)
|
|
73
86
|
*/
|
|
@@ -82,8 +95,8 @@ export declare abstract class BaseVectorService<T> {
|
|
|
82
95
|
getSearchMode(): SearchMode;
|
|
83
96
|
protected abstract createSearchText(data: T): string;
|
|
84
97
|
protected abstract extractId(data: T): string;
|
|
85
|
-
protected abstract createPayload(data: T): Record<string,
|
|
86
|
-
protected abstract payloadToData(payload: Record<string,
|
|
98
|
+
protected abstract createPayload(data: T): Record<string, unknown>;
|
|
99
|
+
protected abstract payloadToData(payload: Record<string, unknown>): T;
|
|
87
100
|
protected extractKeywords(query: string): string[];
|
|
88
101
|
/**
|
|
89
102
|
* Hybrid search combining semantic and keyword matching
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-vector-service.d.ts","sourceRoot":"","sources":["../../src/core/base-vector-service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"base-vector-service.d.ts","sourceRoot":"","sources":["../../src/core/base-vector-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,47 +4,93 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Generic vector operations that can be extended for different data types
|
|
6
6
|
* (patterns, capabilities, dependencies, etc.)
|
|
7
|
+
*
|
|
8
|
+
* PRD #359: Now calls plugin directly instead of going through VectorDBService.
|
|
7
9
|
*/
|
|
8
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
11
|
exports.BaseVectorService = void 0;
|
|
10
|
-
const vector_db_service_1 = require("./vector-db-service");
|
|
11
12
|
const embedding_service_1 = require("./embedding-service");
|
|
13
|
+
const plugin_registry_1 = require("./plugin-registry");
|
|
14
|
+
const PLUGIN_NAME = 'agentic-tools';
|
|
12
15
|
/**
|
|
13
16
|
* Abstract base class for vector-based data services
|
|
14
17
|
*/
|
|
15
18
|
class BaseVectorService {
|
|
16
|
-
vectorDB;
|
|
17
19
|
embeddingService;
|
|
18
20
|
collectionName;
|
|
19
|
-
constructor(collectionName,
|
|
21
|
+
constructor(collectionName, embeddingService) {
|
|
20
22
|
this.collectionName = collectionName;
|
|
21
|
-
this.vectorDB = vectorDB || new vector_db_service_1.VectorDBService({ collectionName });
|
|
22
23
|
this.embeddingService = embeddingService || new embedding_service_1.EmbeddingService();
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Invoke a plugin tool and extract the result
|
|
27
|
+
* @throws Error if plugin returns an error response
|
|
28
|
+
*/
|
|
29
|
+
async invokePlugin(tool, args) {
|
|
30
|
+
const response = await (0, plugin_registry_1.invokePluginTool)(PLUGIN_NAME, tool, args);
|
|
31
|
+
if (!response.success) {
|
|
32
|
+
const error = response.error;
|
|
33
|
+
const message = typeof error === 'object' && error?.message ? error.message : String(error || `Plugin tool ${tool} failed`);
|
|
34
|
+
throw new Error(message);
|
|
35
|
+
}
|
|
36
|
+
// Plugin tools return ToolResult: { success, data, message, error? }
|
|
37
|
+
// We need to extract the data field, and check for tool-level errors
|
|
38
|
+
const toolResult = response.result;
|
|
39
|
+
// Handle missing or malformed result
|
|
40
|
+
if (!toolResult || typeof toolResult !== 'object') {
|
|
41
|
+
throw new Error(`Plugin tool ${tool} returned invalid result`);
|
|
42
|
+
}
|
|
43
|
+
// Check for tool-level errors (use strict equality to handle undefined gracefully)
|
|
44
|
+
if (toolResult.success === false) {
|
|
45
|
+
throw new Error(toolResult.error || toolResult.message || `Plugin tool ${tool} failed`);
|
|
46
|
+
}
|
|
47
|
+
return toolResult.data;
|
|
48
|
+
}
|
|
24
49
|
/**
|
|
25
50
|
* Initialize the collection
|
|
26
51
|
*/
|
|
27
52
|
async initialize() {
|
|
28
53
|
// Use embedding dimensions if available, otherwise default to 1536 (OpenAI default)
|
|
29
|
-
const dimensions = this.embeddingService.isAvailable() ?
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
54
|
+
const dimensions = this.embeddingService.isAvailable() ? this.embeddingService.getDimensions() : 1536;
|
|
55
|
+
await this.invokePlugin('collection_initialize', {
|
|
56
|
+
collection: this.collectionName,
|
|
57
|
+
vectorSize: dimensions,
|
|
58
|
+
createTextIndex: true,
|
|
59
|
+
});
|
|
33
60
|
}
|
|
34
61
|
/**
|
|
35
62
|
* Check if collection exists without creating it
|
|
36
63
|
*/
|
|
37
64
|
async collectionExists() {
|
|
38
|
-
|
|
65
|
+
try {
|
|
66
|
+
const stats = await this.invokePlugin('collection_stats', {
|
|
67
|
+
collection: this.collectionName,
|
|
68
|
+
});
|
|
69
|
+
return stats.exists;
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
39
74
|
}
|
|
40
75
|
/**
|
|
41
76
|
* Health check for Vector DB connection
|
|
42
77
|
*/
|
|
43
78
|
async healthCheck() {
|
|
44
|
-
|
|
79
|
+
if (!(0, plugin_registry_1.isPluginInitialized)()) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
await this.invokePlugin('collection_stats', {
|
|
84
|
+
collection: this.collectionName,
|
|
85
|
+
});
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
45
91
|
}
|
|
46
92
|
/**
|
|
47
|
-
* Store data in Vector DB with
|
|
93
|
+
* Store data in Vector DB with semantic embedding
|
|
48
94
|
*/
|
|
49
95
|
async storeData(data) {
|
|
50
96
|
const searchText = this.createSearchText(data);
|
|
@@ -64,16 +110,16 @@ class BaseVectorService {
|
|
|
64
110
|
// Embedding service not available - fail with clear error
|
|
65
111
|
throw new Error('Embedding service not available - cannot store data in vector collection');
|
|
66
112
|
}
|
|
67
|
-
|
|
113
|
+
await this.invokePlugin('vector_store', {
|
|
114
|
+
collection: this.collectionName,
|
|
68
115
|
id,
|
|
116
|
+
embedding,
|
|
69
117
|
payload: {
|
|
70
118
|
...this.createPayload(data),
|
|
71
119
|
searchText: searchText,
|
|
72
|
-
hasEmbedding: true
|
|
120
|
+
hasEmbedding: true,
|
|
73
121
|
},
|
|
74
|
-
|
|
75
|
-
};
|
|
76
|
-
await this.vectorDB.upsertDocument(document);
|
|
122
|
+
});
|
|
77
123
|
}
|
|
78
124
|
/**
|
|
79
125
|
* Search for data using hybrid semantic + keyword matching
|
|
@@ -103,7 +149,10 @@ class BaseVectorService {
|
|
|
103
149
|
* Get data by ID
|
|
104
150
|
*/
|
|
105
151
|
async getData(id) {
|
|
106
|
-
const document = await this.
|
|
152
|
+
const document = await this.invokePlugin('vector_get', {
|
|
153
|
+
collection: this.collectionName,
|
|
154
|
+
id,
|
|
155
|
+
});
|
|
107
156
|
if (!document) {
|
|
108
157
|
return null;
|
|
109
158
|
}
|
|
@@ -116,13 +165,18 @@ class BaseVectorService {
|
|
|
116
165
|
* Delete data by ID
|
|
117
166
|
*/
|
|
118
167
|
async deleteData(id) {
|
|
119
|
-
await this.
|
|
168
|
+
await this.invokePlugin('vector_delete', {
|
|
169
|
+
collection: this.collectionName,
|
|
170
|
+
id,
|
|
171
|
+
});
|
|
120
172
|
}
|
|
121
173
|
/**
|
|
122
|
-
* Delete all data (
|
|
174
|
+
* Delete all data (preserves collection structure)
|
|
123
175
|
*/
|
|
124
176
|
async deleteAllData() {
|
|
125
|
-
await this.
|
|
177
|
+
await this.invokePlugin('vector_delete_all', {
|
|
178
|
+
collection: this.collectionName,
|
|
179
|
+
});
|
|
126
180
|
}
|
|
127
181
|
/**
|
|
128
182
|
* Query data with Qdrant filter (no semantic search)
|
|
@@ -130,8 +184,12 @@ class BaseVectorService {
|
|
|
130
184
|
* @param limit - Maximum results to return
|
|
131
185
|
*/
|
|
132
186
|
async queryWithFilter(filter, limit = 100) {
|
|
133
|
-
const documents = await this.
|
|
134
|
-
|
|
187
|
+
const documents = await this.invokePlugin('vector_query', {
|
|
188
|
+
collection: this.collectionName,
|
|
189
|
+
filter,
|
|
190
|
+
limit,
|
|
191
|
+
});
|
|
192
|
+
return documents.map((doc) => {
|
|
135
193
|
const data = this.payloadToData(doc.payload);
|
|
136
194
|
data.id = doc.id;
|
|
137
195
|
return data;
|
|
@@ -141,8 +199,11 @@ class BaseVectorService {
|
|
|
141
199
|
* Get all data (limited)
|
|
142
200
|
*/
|
|
143
201
|
async getAllData(limit) {
|
|
144
|
-
const documents = await this.
|
|
145
|
-
|
|
202
|
+
const documents = await this.invokePlugin('vector_list', {
|
|
203
|
+
collection: this.collectionName,
|
|
204
|
+
limit: limit ?? 10000,
|
|
205
|
+
});
|
|
206
|
+
return documents.map((doc) => {
|
|
146
207
|
const data = this.payloadToData(doc.payload);
|
|
147
208
|
data.id = doc.id;
|
|
148
209
|
return data;
|
|
@@ -153,10 +214,12 @@ class BaseVectorService {
|
|
|
153
214
|
*/
|
|
154
215
|
async getDataCount() {
|
|
155
216
|
try {
|
|
156
|
-
const
|
|
157
|
-
|
|
217
|
+
const stats = await this.invokePlugin('collection_stats', {
|
|
218
|
+
collection: this.collectionName,
|
|
219
|
+
});
|
|
220
|
+
return stats.pointsCount || 0;
|
|
158
221
|
}
|
|
159
|
-
catch
|
|
222
|
+
catch {
|
|
160
223
|
// Fallback: get all and count
|
|
161
224
|
const data = await this.getAllData();
|
|
162
225
|
return data.length;
|
|
@@ -170,12 +233,15 @@ class BaseVectorService {
|
|
|
170
233
|
return {
|
|
171
234
|
semantic: status.available,
|
|
172
235
|
provider: status.provider || undefined,
|
|
173
|
-
reason: status.reason || (status.available ? 'Embedding service available' : undefined)
|
|
236
|
+
reason: status.reason || (status.available ? 'Embedding service available' : undefined),
|
|
174
237
|
};
|
|
175
238
|
}
|
|
176
239
|
// Virtual methods that can be overridden by subclasses
|
|
177
240
|
extractKeywords(query) {
|
|
178
|
-
return query
|
|
241
|
+
return query
|
|
242
|
+
.toLowerCase()
|
|
243
|
+
.split(/\s+/)
|
|
244
|
+
.filter((word) => word.length > 2);
|
|
179
245
|
}
|
|
180
246
|
/**
|
|
181
247
|
* Hybrid search combining semantic and keyword matching
|
|
@@ -187,16 +253,19 @@ class BaseVectorService {
|
|
|
187
253
|
throw new Error('Failed to generate query embedding for semantic search');
|
|
188
254
|
}
|
|
189
255
|
// Semantic search using vector similarity
|
|
190
|
-
const semanticResults = await this.
|
|
256
|
+
const semanticResults = await this.invokePlugin('vector_search', {
|
|
257
|
+
collection: this.collectionName,
|
|
258
|
+
embedding: queryEmbedding,
|
|
191
259
|
limit: options.limit * 2, // Get more candidates for hybrid ranking
|
|
192
260
|
scoreThreshold: 0.1, // Very permissive threshold for single-word queries
|
|
193
|
-
filter: options.filter
|
|
261
|
+
filter: options.filter,
|
|
194
262
|
});
|
|
195
263
|
// Keyword search
|
|
196
|
-
const keywordResults = await this.
|
|
264
|
+
const keywordResults = await this.invokePlugin('vector_search_keywords', {
|
|
265
|
+
collection: this.collectionName,
|
|
266
|
+
keywords: queryKeywords,
|
|
197
267
|
limit: options.limit * 2,
|
|
198
|
-
|
|
199
|
-
filter: options.filter
|
|
268
|
+
filter: options.filter,
|
|
200
269
|
});
|
|
201
270
|
// Combine and rank results
|
|
202
271
|
return this.combineHybridResults(semanticResults, keywordResults, queryKeywords, options);
|
|
@@ -214,7 +283,7 @@ class BaseVectorService {
|
|
|
214
283
|
combinedResults.set(result.id, {
|
|
215
284
|
data,
|
|
216
285
|
score: result.score * 0.5, // Semantic gets 50% weight
|
|
217
|
-
matchType: 'semantic'
|
|
286
|
+
matchType: 'semantic',
|
|
218
287
|
});
|
|
219
288
|
}
|
|
220
289
|
// Add or boost keyword results
|
|
@@ -232,13 +301,13 @@ class BaseVectorService {
|
|
|
232
301
|
combinedResults.set(result.id, {
|
|
233
302
|
data,
|
|
234
303
|
score: result.score * 0.5, // Keyword-only gets 50% weight
|
|
235
|
-
matchType: 'keyword'
|
|
304
|
+
matchType: 'keyword',
|
|
236
305
|
});
|
|
237
306
|
}
|
|
238
307
|
}
|
|
239
308
|
// Sort by score and apply limits
|
|
240
309
|
return Array.from(combinedResults.values())
|
|
241
|
-
.filter(result => result.score >= options.scoreThreshold)
|
|
310
|
+
.filter((result) => result.score >= options.scoreThreshold)
|
|
242
311
|
.sort((a, b) => b.score - a.score)
|
|
243
312
|
.slice(0, options.limit);
|
|
244
313
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/core/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/core/capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,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;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAEjC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAGtC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAGhB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IAGjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAGrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAa;gBAEnB,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;IAKlD;;;;;;;;;;OAUG;IACG,iBAAiB,CACrB,YAAY,EAAE,MAAM,EACpB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC;IAgC9B;;;;OAIG;YACW,WAAW;IA8BzB;;;;OAIG;YACW,oBAAoB;IAalC;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAgE/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA+B/B;;;OAGG;IACH,MAAM,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;CAO1D"}
|
|
@@ -7,9 +7,13 @@
|
|
|
7
7
|
* This module provides capability inference for Kubernetes resources through
|
|
8
8
|
* AI-powered analysis of schemas and metadata.
|
|
9
9
|
*/
|
|
10
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
11
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
12
|
+
};
|
|
10
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
14
|
exports.CapabilityInferenceEngine = void 0;
|
|
12
15
|
const shared_prompt_loader_1 = require("./shared-prompt-loader");
|
|
16
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
13
17
|
/**
|
|
14
18
|
* Generic Capability Inference Engine
|
|
15
19
|
*
|
|
@@ -170,8 +174,7 @@ class CapabilityInferenceEngine {
|
|
|
170
174
|
*/
|
|
171
175
|
static generateCapabilityId(resourceName) {
|
|
172
176
|
// Create deterministic UUID from resource name hash
|
|
173
|
-
const
|
|
174
|
-
const hash = crypto.createHash('sha256').update(`capability-${resourceName}`).digest('hex');
|
|
177
|
+
const hash = crypto_1.default.createHash('sha256').update(`capability-${resourceName}`).digest('hex');
|
|
175
178
|
// Convert to UUID format: 8-4-4-4-12
|
|
176
179
|
return `${hash.substring(0, 8)}-${hash.substring(8, 12)}-${hash.substring(12, 16)}-${hash.substring(16, 20)}-${hash.substring(20, 32)}`;
|
|
177
180
|
}
|
|
@@ -6,6 +6,53 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { Logger } from './error-handling';
|
|
8
8
|
import { CapabilityVectorService } from './capability-vector-service';
|
|
9
|
+
/**
|
|
10
|
+
* Common args interface for capability operations
|
|
11
|
+
*/
|
|
12
|
+
interface CapabilityOperationArgs {
|
|
13
|
+
id?: string;
|
|
14
|
+
limit?: number;
|
|
15
|
+
sessionId?: string;
|
|
16
|
+
collection?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Common response structure for capability operations
|
|
20
|
+
*/
|
|
21
|
+
interface CapabilityOperationResponse {
|
|
22
|
+
success: boolean;
|
|
23
|
+
operation: string;
|
|
24
|
+
dataType: string;
|
|
25
|
+
data?: unknown;
|
|
26
|
+
message?: string;
|
|
27
|
+
error?: {
|
|
28
|
+
message: string;
|
|
29
|
+
details?: string;
|
|
30
|
+
example?: Record<string, unknown>;
|
|
31
|
+
alternativeFormat?: Record<string, unknown>;
|
|
32
|
+
suggestion?: string;
|
|
33
|
+
help?: string;
|
|
34
|
+
setup?: Record<string, string>;
|
|
35
|
+
sessionDirectory?: string;
|
|
36
|
+
};
|
|
37
|
+
deletedCapability?: {
|
|
38
|
+
id: string;
|
|
39
|
+
resourceName: string;
|
|
40
|
+
};
|
|
41
|
+
deletedCount?: number;
|
|
42
|
+
totalCount?: number;
|
|
43
|
+
errorCount?: number;
|
|
44
|
+
confirmation?: string;
|
|
45
|
+
method?: string;
|
|
46
|
+
sessionId?: string;
|
|
47
|
+
status?: string;
|
|
48
|
+
currentStep?: string;
|
|
49
|
+
startedAt?: string;
|
|
50
|
+
lastActivity?: string;
|
|
51
|
+
progress?: Record<string, unknown>;
|
|
52
|
+
sessionInfo?: Record<string, unknown>;
|
|
53
|
+
display?: Record<string, unknown>;
|
|
54
|
+
clientInstructions?: Record<string, unknown>;
|
|
55
|
+
}
|
|
9
56
|
/**
|
|
10
57
|
* Get initialized capability service
|
|
11
58
|
* @param collection - Collection name (default: 'capabilities')
|
|
@@ -14,33 +61,34 @@ export declare function getCapabilityService(collection?: string): Promise<Capab
|
|
|
14
61
|
/**
|
|
15
62
|
* Handle capability list operation
|
|
16
63
|
*/
|
|
17
|
-
export declare function handleCapabilityList(args:
|
|
64
|
+
export declare function handleCapabilityList(args: CapabilityOperationArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService): Promise<CapabilityOperationResponse>;
|
|
18
65
|
/**
|
|
19
66
|
* Handle capability get operation
|
|
20
67
|
* Supports two ID formats:
|
|
21
68
|
* - Hashed ID: "a1b2c3d4-..." (existing format)
|
|
22
69
|
* - JSON format: '{"kind":"Deployment","apiVersion":"apps/v1"}' (new format for dashboard UI)
|
|
23
70
|
*/
|
|
24
|
-
export declare function handleCapabilityGet(args:
|
|
71
|
+
export declare function handleCapabilityGet(args: CapabilityOperationArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService): Promise<CapabilityOperationResponse>;
|
|
25
72
|
/**
|
|
26
73
|
* Handle capability delete operation
|
|
27
74
|
*/
|
|
28
|
-
export declare function handleCapabilityDelete(args:
|
|
75
|
+
export declare function handleCapabilityDelete(args: CapabilityOperationArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService): Promise<CapabilityOperationResponse>;
|
|
29
76
|
/**
|
|
30
77
|
* Handle capability delete all operation
|
|
31
78
|
*/
|
|
32
|
-
export declare function handleCapabilityDeleteAll(
|
|
79
|
+
export declare function handleCapabilityDeleteAll(_args: CapabilityOperationArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService): Promise<CapabilityOperationResponse>;
|
|
33
80
|
/**
|
|
34
81
|
* Handle capability progress query (check progress of running scan)
|
|
35
82
|
*/
|
|
36
|
-
export declare function handleCapabilityProgress(args:
|
|
83
|
+
export declare function handleCapabilityProgress(args: CapabilityOperationArgs, logger: Logger, requestId: string): Promise<CapabilityOperationResponse>;
|
|
37
84
|
/**
|
|
38
85
|
* Handle capability search operation
|
|
39
86
|
*/
|
|
40
|
-
export declare function handleCapabilitySearch(args:
|
|
87
|
+
export declare function handleCapabilitySearch(args: CapabilityOperationArgs, logger: Logger, requestId: string, capabilityService: CapabilityVectorService): Promise<CapabilityOperationResponse>;
|
|
41
88
|
/**
|
|
42
89
|
* Consolidated CRUD operations handler with service initialization
|
|
43
90
|
* Handles list, get, search, delete, deleteAll operations with proper Vector DB setup
|
|
44
91
|
*/
|
|
45
|
-
export declare function handleCapabilityCRUD(operation: string, args:
|
|
92
|
+
export declare function handleCapabilityCRUD(operation: string, args: CapabilityOperationArgs, logger: Logger, requestId: string): Promise<CapabilityOperationResponse>;
|
|
93
|
+
export {};
|
|
46
94
|
//# sourceMappingURL=capability-operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-operations.d.ts","sourceRoot":"","sources":["../../src/core/capability-operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAUtE;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAahG;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"capability-operations.d.ts","sourceRoot":"","sources":["../../src/core/capability-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,8 +53,6 @@ const session_utils_1 = require("./session-utils");
|
|
|
53
53
|
const validation_1 = require("./constants/validation");
|
|
54
54
|
const fs = __importStar(require("fs"));
|
|
55
55
|
const path = __importStar(require("path"));
|
|
56
|
-
// Note: validateVectorDBConnection and validateEmbeddingService are shared utilities
|
|
57
|
-
// that remain in the main organizational-data.ts file as they're used by multiple domains
|
|
58
56
|
/**
|
|
59
57
|
* Get initialized capability service
|
|
60
58
|
* @param collection - Collection name (default: 'capabilities')
|
|
@@ -332,7 +330,7 @@ async function handleCapabilityDelete(args, logger, requestId, capabilityService
|
|
|
332
330
|
/**
|
|
333
331
|
* Handle capability delete all operation
|
|
334
332
|
*/
|
|
335
|
-
async function handleCapabilityDeleteAll(
|
|
333
|
+
async function handleCapabilityDeleteAll(_args, logger, requestId, capabilityService) {
|
|
336
334
|
try {
|
|
337
335
|
// Get count first to provide feedback (but don't retrieve all data)
|
|
338
336
|
const totalCount = await capabilityService.getCapabilitiesCount();
|