@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.
Files changed (228) hide show
  1. package/README.md +1 -0
  2. package/dist/core/ai-provider.interface.d.ts +12 -8
  3. package/dist/core/ai-provider.interface.d.ts.map +1 -1
  4. package/dist/core/artifacthub.d.ts +1 -1
  5. package/dist/core/artifacthub.d.ts.map +1 -1
  6. package/dist/core/base-vector-service.d.ts +22 -9
  7. package/dist/core/base-vector-service.d.ts.map +1 -1
  8. package/dist/core/base-vector-service.js +106 -37
  9. package/dist/core/capabilities.d.ts.map +1 -1
  10. package/dist/core/capabilities.js +5 -2
  11. package/dist/core/capability-operations.d.ts +55 -7
  12. package/dist/core/capability-operations.d.ts.map +1 -1
  13. package/dist/core/capability-operations.js +1 -3
  14. package/dist/core/capability-scan-workflow.d.ts +64 -8
  15. package/dist/core/capability-scan-workflow.d.ts.map +1 -1
  16. package/dist/core/capability-scan-workflow.js +14 -13
  17. package/dist/core/capability-tools.d.ts +1 -1
  18. package/dist/core/capability-tools.d.ts.map +1 -1
  19. package/dist/core/capability-tools.js +1 -1
  20. package/dist/core/capability-vector-service.d.ts +3 -4
  21. package/dist/core/capability-vector-service.d.ts.map +1 -1
  22. package/dist/core/capability-vector-service.js +2 -2
  23. package/dist/core/command-executor.d.ts +3 -4
  24. package/dist/core/command-executor.d.ts.map +1 -1
  25. package/dist/core/command-executor.js +8 -4
  26. package/dist/core/crd-availability.d.ts +3 -5
  27. package/dist/core/crd-availability.d.ts.map +1 -1
  28. package/dist/core/crd-availability.js +8 -18
  29. package/dist/core/deploy-operation.d.ts +6 -5
  30. package/dist/core/deploy-operation.d.ts.map +1 -1
  31. package/dist/core/deploy-operation.js +16 -10
  32. package/dist/core/discovery.d.ts +6 -14
  33. package/dist/core/discovery.d.ts.map +1 -1
  34. package/dist/core/discovery.js +35 -51
  35. package/dist/core/embedding-service.d.ts.map +1 -1
  36. package/dist/core/embedding-service.js +1 -1
  37. package/dist/core/error-handling.d.ts +13 -13
  38. package/dist/core/error-handling.d.ts.map +1 -1
  39. package/dist/core/error-handling.js +2 -3
  40. package/dist/core/generic-session-manager.d.ts +2 -2
  41. package/dist/core/generic-session-manager.d.ts.map +1 -1
  42. package/dist/core/helm-types.d.ts +5 -5
  43. package/dist/core/helm-types.d.ts.map +1 -1
  44. package/dist/core/index.d.ts +4 -11
  45. package/dist/core/index.d.ts.map +1 -1
  46. package/dist/core/index.js +8 -14
  47. package/dist/core/knowledge-types.d.ts +114 -0
  48. package/dist/core/knowledge-types.d.ts.map +1 -0
  49. package/dist/core/knowledge-types.js +10 -0
  50. package/dist/core/memory.d.ts +12 -12
  51. package/dist/core/memory.d.ts.map +1 -1
  52. package/dist/core/mermaid-tools.d.ts +24 -1
  53. package/dist/core/mermaid-tools.d.ts.map +1 -1
  54. package/dist/core/mermaid-tools.js +10 -8
  55. package/dist/core/packaging.d.ts +23 -1
  56. package/dist/core/packaging.d.ts.map +1 -1
  57. package/dist/core/pattern-operations.d.ts +32 -9
  58. package/dist/core/pattern-operations.d.ts.map +1 -1
  59. package/dist/core/pattern-operations.js +17 -22
  60. package/dist/core/pattern-vector-service.d.ts +3 -4
  61. package/dist/core/pattern-vector-service.d.ts.map +1 -1
  62. package/dist/core/pattern-vector-service.js +2 -2
  63. package/dist/core/platform-utils.d.ts +2 -2
  64. package/dist/core/platform-utils.d.ts.map +1 -1
  65. package/dist/core/plugin-manager.d.ts +6 -2
  66. package/dist/core/plugin-manager.d.ts.map +1 -1
  67. package/dist/core/plugin-manager.js +9 -16
  68. package/dist/core/plugin-registry.d.ts +59 -0
  69. package/dist/core/plugin-registry.d.ts.map +1 -0
  70. package/dist/core/plugin-registry.js +80 -0
  71. package/dist/core/policy-operations.d.ts +101 -21
  72. package/dist/core/policy-operations.d.ts.map +1 -1
  73. package/dist/core/policy-operations.js +45 -47
  74. package/dist/core/policy-vector-service.d.ts +3 -4
  75. package/dist/core/policy-vector-service.d.ts.map +1 -1
  76. package/dist/core/policy-vector-service.js +2 -2
  77. package/dist/core/providers/host-provider.d.ts +1 -1
  78. package/dist/core/providers/host-provider.d.ts.map +1 -1
  79. package/dist/core/providers/host-provider.js +2 -2
  80. package/dist/core/providers/provider-debug-utils.d.ts +2 -2
  81. package/dist/core/providers/provider-debug-utils.d.ts.map +1 -1
  82. package/dist/core/providers/tool-utils.d.ts +10 -2
  83. package/dist/core/providers/tool-utils.d.ts.map +1 -1
  84. package/dist/core/providers/tool-utils.js +2 -2
  85. package/dist/core/providers/vercel-provider.d.ts.map +1 -1
  86. package/dist/core/providers/vercel-provider.js +29 -23
  87. package/dist/core/resource-tools.d.ts +29 -1
  88. package/dist/core/resource-tools.d.ts.map +1 -1
  89. package/dist/core/resource-vector-service.d.ts +3 -4
  90. package/dist/core/resource-vector-service.d.ts.map +1 -1
  91. package/dist/core/resource-vector-service.js +2 -2
  92. package/dist/core/schema.d.ts +15 -14
  93. package/dist/core/schema.d.ts.map +1 -1
  94. package/dist/core/schema.js +32 -34
  95. package/dist/core/shared-prompt-loader.d.ts +1 -1
  96. package/dist/core/shared-prompt-loader.d.ts.map +1 -1
  97. package/dist/core/solution-cr.js +1 -1
  98. package/dist/core/solution-utils.d.ts +22 -3
  99. package/dist/core/solution-utils.d.ts.map +1 -1
  100. package/dist/core/solution-utils.js +1 -1
  101. package/dist/core/telemetry/client.d.ts +0 -6
  102. package/dist/core/telemetry/client.d.ts.map +1 -1
  103. package/dist/core/telemetry/client.js +6 -17
  104. package/dist/core/telemetry/config.js +1 -1
  105. package/dist/core/telemetry/index.d.ts +1 -1
  106. package/dist/core/telemetry/index.d.ts.map +1 -1
  107. package/dist/core/telemetry/index.js +1 -2
  108. package/dist/core/tracing/tool-tracing.d.ts +1 -1
  109. package/dist/core/tracing/tool-tracing.d.ts.map +1 -1
  110. package/dist/core/unified-creation-session.d.ts +15 -8
  111. package/dist/core/unified-creation-session.d.ts.map +1 -1
  112. package/dist/core/unified-creation-session.js +19 -19
  113. package/dist/core/unified-creation-types.d.ts +2 -2
  114. package/dist/core/unified-creation-types.d.ts.map +1 -1
  115. package/dist/core/visualization.d.ts +1 -1
  116. package/dist/core/visualization.d.ts.map +1 -1
  117. package/dist/core/workflow.d.ts +8 -5
  118. package/dist/core/workflow.d.ts.map +1 -1
  119. package/dist/evaluation/dataset-analyzer.d.ts +13 -7
  120. package/dist/evaluation/dataset-analyzer.d.ts.map +1 -1
  121. package/dist/evaluation/dataset-analyzer.js +1 -1
  122. package/dist/evaluation/datasets/loader.d.ts +2 -2
  123. package/dist/evaluation/datasets/loader.d.ts.map +1 -1
  124. package/dist/evaluation/eval-runner.js +7 -5
  125. package/dist/evaluation/evaluators/base-comparative.d.ts +1 -1
  126. package/dist/evaluation/evaluators/base-comparative.d.ts.map +1 -1
  127. package/dist/evaluation/evaluators/base-comparative.js +4 -3
  128. package/dist/evaluation/evaluators/base.d.ts +5 -5
  129. package/dist/evaluation/evaluators/base.d.ts.map +1 -1
  130. package/dist/evaluation/evaluators/capability-comparative.js +1 -1
  131. package/dist/evaluation/platform-synthesizer.d.ts.map +1 -1
  132. package/dist/interfaces/mcp.d.ts.map +1 -1
  133. package/dist/interfaces/mcp.js +26 -15
  134. package/dist/interfaces/openapi-generator.d.ts +116 -12
  135. package/dist/interfaces/openapi-generator.d.ts.map +1 -1
  136. package/dist/interfaces/openapi-generator.js +490 -199
  137. package/dist/interfaces/rest-api.d.ts +28 -6
  138. package/dist/interfaces/rest-api.d.ts.map +1 -1
  139. package/dist/interfaces/rest-api.js +436 -245
  140. package/dist/interfaces/rest-registry.d.ts +4 -4
  141. package/dist/interfaces/rest-registry.d.ts.map +1 -1
  142. package/dist/interfaces/rest-registry.js +6 -5
  143. package/dist/interfaces/rest-route-registry.d.ts +165 -0
  144. package/dist/interfaces/rest-route-registry.d.ts.map +1 -0
  145. package/dist/interfaces/rest-route-registry.js +230 -0
  146. package/dist/interfaces/routes/index.d.ts +22 -0
  147. package/dist/interfaces/routes/index.d.ts.map +1 -0
  148. package/dist/interfaces/routes/index.js +347 -0
  149. package/dist/interfaces/schemas/common.d.ts +177 -0
  150. package/dist/interfaces/schemas/common.d.ts.map +1 -0
  151. package/dist/interfaces/schemas/common.js +102 -0
  152. package/dist/interfaces/schemas/events.d.ts +131 -0
  153. package/dist/interfaces/schemas/events.d.ts.map +1 -0
  154. package/dist/interfaces/schemas/events.js +66 -0
  155. package/dist/interfaces/schemas/index.d.ts +21 -0
  156. package/dist/interfaces/schemas/index.d.ts.map +1 -0
  157. package/dist/interfaces/schemas/index.js +138 -0
  158. package/dist/interfaces/schemas/knowledge.d.ts +210 -0
  159. package/dist/interfaces/schemas/knowledge.d.ts.map +1 -0
  160. package/dist/interfaces/schemas/knowledge.js +117 -0
  161. package/dist/interfaces/schemas/logs.d.ts +82 -0
  162. package/dist/interfaces/schemas/logs.d.ts.map +1 -0
  163. package/dist/interfaces/schemas/logs.js +46 -0
  164. package/dist/interfaces/schemas/prompts.d.ts +191 -0
  165. package/dist/interfaces/schemas/prompts.d.ts.map +1 -0
  166. package/dist/interfaces/schemas/prompts.js +91 -0
  167. package/dist/interfaces/schemas/resources.d.ts +378 -0
  168. package/dist/interfaces/schemas/resources.d.ts.map +1 -0
  169. package/dist/interfaces/schemas/resources.js +173 -0
  170. package/dist/interfaces/schemas/sessions.d.ts +90 -0
  171. package/dist/interfaces/schemas/sessions.d.ts.map +1 -0
  172. package/dist/interfaces/schemas/sessions.js +56 -0
  173. package/dist/interfaces/schemas/tools.d.ts +194 -0
  174. package/dist/interfaces/schemas/tools.d.ts.map +1 -0
  175. package/dist/interfaces/schemas/tools.js +101 -0
  176. package/dist/interfaces/schemas/visualization.d.ts +373 -0
  177. package/dist/interfaces/schemas/visualization.d.ts.map +1 -0
  178. package/dist/interfaces/schemas/visualization.js +134 -0
  179. package/dist/mcp/server.js +5 -4
  180. package/dist/tools/answer-question.d.ts +1 -1
  181. package/dist/tools/answer-question.d.ts.map +1 -1
  182. package/dist/tools/answer-question.js +9 -8
  183. package/dist/tools/deploy-manifests.d.ts +4 -2
  184. package/dist/tools/deploy-manifests.d.ts.map +1 -1
  185. package/dist/tools/deploy-manifests.js +10 -6
  186. package/dist/tools/generate-manifests.d.ts.map +1 -1
  187. package/dist/tools/generate-manifests.js +28 -20
  188. package/dist/tools/index.d.ts +1 -0
  189. package/dist/tools/index.d.ts.map +1 -1
  190. package/dist/tools/index.js +6 -1
  191. package/dist/tools/manage-knowledge.d.ts +77 -0
  192. package/dist/tools/manage-knowledge.d.ts.map +1 -0
  193. package/dist/tools/manage-knowledge.js +573 -0
  194. package/dist/tools/operate-analysis.d.ts +31 -2
  195. package/dist/tools/operate-analysis.d.ts.map +1 -1
  196. package/dist/tools/operate-execution.d.ts +2 -3
  197. package/dist/tools/operate-execution.d.ts.map +1 -1
  198. package/dist/tools/operate-execution.js +7 -7
  199. package/dist/tools/operate.d.ts +7 -2
  200. package/dist/tools/operate.d.ts.map +1 -1
  201. package/dist/tools/operate.js +2 -2
  202. package/dist/tools/organizational-data.d.ts +30 -4
  203. package/dist/tools/organizational-data.d.ts.map +1 -1
  204. package/dist/tools/organizational-data.js +24 -19
  205. package/dist/tools/project-setup/discovery.d.ts.map +1 -1
  206. package/dist/tools/project-setup/generate-scope.d.ts +1 -1
  207. package/dist/tools/project-setup/generate-scope.d.ts.map +1 -1
  208. package/dist/tools/project-setup/types.d.ts +1 -0
  209. package/dist/tools/project-setup/types.d.ts.map +1 -1
  210. package/dist/tools/prompts.d.ts +28 -2
  211. package/dist/tools/prompts.d.ts.map +1 -1
  212. package/dist/tools/query.d.ts +17 -3
  213. package/dist/tools/query.d.ts.map +1 -1
  214. package/dist/tools/query.js +1 -7
  215. package/dist/tools/recommend.d.ts +24 -6
  216. package/dist/tools/recommend.d.ts.map +1 -1
  217. package/dist/tools/recommend.js +18 -15
  218. package/dist/tools/remediate.d.ts +12 -3
  219. package/dist/tools/remediate.d.ts.map +1 -1
  220. package/dist/tools/remediate.js +22 -14
  221. package/dist/tools/version.d.ts +19 -5
  222. package/dist/tools/version.d.ts.map +1 -1
  223. package/dist/tools/version.js +106 -54
  224. package/package.json +11 -5
  225. package/prompts/knowledge-ask.md +29 -0
  226. package/dist/core/vector-db-service.d.ts +0 -108
  227. package/dist/core/vector-db-service.d.ts.map +0 -1
  228. 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
- import type { PluginManager } from './plugin-manager';
12
- export type TransitionCapabilitySessionFn = (session: CapabilityScanSession, nextStep: CapabilityScanSession['currentStep'], updates: Partial<CapabilityScanSession>, args: any) => void;
13
- export type CleanupCapabilitySessionFn = (session: CapabilityScanSession, args: any, logger: Logger, requestId: string) => void;
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) => any;
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?: any;
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: any, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, handleScanningFn: (session: CapabilityScanSession, args: any, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, pluginManager?: PluginManager) => Promise<any>, pluginManager?: PluginManager): Promise<any>;
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: any, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, handleScanningFn: (session: CapabilityScanSession, args: any, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, pluginManager?: PluginManager) => Promise<any>, pluginManager?: PluginManager): Promise<any>;
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: any, logger: Logger, requestId: string, capabilityService: CapabilityVectorService, parseNumericResponse: ParseNumericResponseFn, transitionCapabilitySession: TransitionCapabilitySessionFn, cleanupCapabilitySession: CleanupCapabilitySessionFn, createCapabilityScanCompletionResponse: CreateCapabilityScanCompletionResponseFn, pluginManager?: PluginManager): Promise<any>;
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":"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"}
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, pluginManager) {
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
- if (!pluginManager) {
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, pluginManager)
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, pluginManager) {
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, pluginManager);
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, parseNumericResponse, transitionCapabilitySession, cleanupCapabilitySession, createCapabilityScanCompletionResponse, pluginManager) {
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 #343: pluginManager required for all kubectl operations
373
- if (!pluginManager) {
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 #343: pluginManager required for all kubectl operations
504
- if (!pluginManager) {
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: any): Promise<any>;
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,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAwFvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
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, vectorDB?: VectorDBService, embeddingService?: EmbeddingService);
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, any>;
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, any>): ResourceCapability;
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,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,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,QAAQ,CAAC,EAAE,eAAe,EAAE,gBAAgB,CAAC,EAAE,gBAAgB;IAIpH;;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,GAAG,CAAC;IAkB5E;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,kBAAkB;IAkBzE;;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"}
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', vectorDB, embeddingService) {
17
- super(collectionName, vectorDB, embeddingService);
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, any>;
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, pluginManager: PluginManager, options?: CommandExecutionOptions): Promise<{
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;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;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,GAAG,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC;IAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAAC,cAAc,EAAE,OAAO,CAAA;CAAE,CAAC,CAgHzE"}
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, pluginManager, options = {}) {
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 #343: Execute command via plugin's shell_exec tool
49
- const response = await pluginManager.invokeTool('shell_exec', { command: cleanCommand });
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 #343: Uses plugin system for K8s operations (MCP server has no RBAC)
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(pluginManager?: PluginManager): Promise<boolean>;
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;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAgGtD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAM5F;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAGhD"}
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 #343: Uses plugin system for K8s operations (MCP server has no RBAC)
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 #343: All K8s operations go through plugin
40
- if (!this.pluginManager) {
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 this.pluginManager.invokeTool('kubectl_get_resource_json', {
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 || String(error);
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(pluginManager) {
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
- private pluginManager;
21
- constructor(pluginManager: PluginManager);
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 #343: All kubectl operations go through plugin
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 #343: Uses plugin's kubectl_apply tool with stdin
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;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,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;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;gBAEzB,aAAa,EAAE,aAAa;IAIxC;;;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;IA+B5B;;;OAGG;YACW,oBAAoB;CAuBnC"}
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
- pluginManager;
13
- constructor(pluginManager) {
14
- this.pluginManager = pluginManager;
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 (error) {
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 #343: All kubectl operations go through plugin
66
+ * PRD #359: All kubectl operations go through unified plugin registry
62
67
  */
63
68
  async executeKubectl(args) {
64
- const response = await this.pluginManager.invokeTool('kubectl_exec_command', { args });
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
- if (waitError.message && waitError.message.includes('no matching resources found')) {
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 - ${waitError.message}`;
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 #343: Uses plugin's kubectl_apply tool with stdin
129
+ * PRD #359: Uses unified plugin registry's kubectl_apply tool with stdin
124
130
  */
125
131
  async applyManifestContent(manifest) {
126
- const response = await this.pluginManager.invokeTool('kubectl_apply', { manifest });
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;