@vfarcic/dot-ai 1.0.3 → 1.2.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 (234) 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/model-config.d.ts +1 -1
  56. package/dist/core/model-config.js +1 -1
  57. package/dist/core/packaging.d.ts +23 -1
  58. package/dist/core/packaging.d.ts.map +1 -1
  59. package/dist/core/pattern-operations.d.ts +32 -9
  60. package/dist/core/pattern-operations.d.ts.map +1 -1
  61. package/dist/core/pattern-operations.js +17 -22
  62. package/dist/core/pattern-vector-service.d.ts +3 -4
  63. package/dist/core/pattern-vector-service.d.ts.map +1 -1
  64. package/dist/core/pattern-vector-service.js +2 -2
  65. package/dist/core/platform-utils.d.ts +2 -2
  66. package/dist/core/platform-utils.d.ts.map +1 -1
  67. package/dist/core/plugin-manager.d.ts +6 -2
  68. package/dist/core/plugin-manager.d.ts.map +1 -1
  69. package/dist/core/plugin-manager.js +9 -16
  70. package/dist/core/plugin-registry.d.ts +59 -0
  71. package/dist/core/plugin-registry.d.ts.map +1 -0
  72. package/dist/core/plugin-registry.js +80 -0
  73. package/dist/core/policy-operations.d.ts +101 -21
  74. package/dist/core/policy-operations.d.ts.map +1 -1
  75. package/dist/core/policy-operations.js +45 -47
  76. package/dist/core/policy-vector-service.d.ts +3 -4
  77. package/dist/core/policy-vector-service.d.ts.map +1 -1
  78. package/dist/core/policy-vector-service.js +2 -2
  79. package/dist/core/providers/host-provider.d.ts +1 -1
  80. package/dist/core/providers/host-provider.d.ts.map +1 -1
  81. package/dist/core/providers/host-provider.js +2 -2
  82. package/dist/core/providers/provider-debug-utils.d.ts +2 -2
  83. package/dist/core/providers/provider-debug-utils.d.ts.map +1 -1
  84. package/dist/core/providers/tool-utils.d.ts +10 -2
  85. package/dist/core/providers/tool-utils.d.ts.map +1 -1
  86. package/dist/core/providers/tool-utils.js +2 -2
  87. package/dist/core/providers/vercel-provider.d.ts.map +1 -1
  88. package/dist/core/providers/vercel-provider.js +29 -23
  89. package/dist/core/resource-tools.d.ts +29 -1
  90. package/dist/core/resource-tools.d.ts.map +1 -1
  91. package/dist/core/resource-vector-service.d.ts +3 -4
  92. package/dist/core/resource-vector-service.d.ts.map +1 -1
  93. package/dist/core/resource-vector-service.js +2 -2
  94. package/dist/core/schema.d.ts +15 -14
  95. package/dist/core/schema.d.ts.map +1 -1
  96. package/dist/core/schema.js +32 -34
  97. package/dist/core/shared-prompt-loader.d.ts +1 -1
  98. package/dist/core/shared-prompt-loader.d.ts.map +1 -1
  99. package/dist/core/solution-cr.js +1 -1
  100. package/dist/core/solution-utils.d.ts +22 -3
  101. package/dist/core/solution-utils.d.ts.map +1 -1
  102. package/dist/core/solution-utils.js +1 -1
  103. package/dist/core/telemetry/client.d.ts +0 -6
  104. package/dist/core/telemetry/client.d.ts.map +1 -1
  105. package/dist/core/telemetry/client.js +6 -17
  106. package/dist/core/telemetry/config.js +1 -1
  107. package/dist/core/telemetry/index.d.ts +1 -1
  108. package/dist/core/telemetry/index.d.ts.map +1 -1
  109. package/dist/core/telemetry/index.js +1 -2
  110. package/dist/core/tracing/tool-tracing.d.ts +1 -1
  111. package/dist/core/tracing/tool-tracing.d.ts.map +1 -1
  112. package/dist/core/unified-creation-session.d.ts +15 -8
  113. package/dist/core/unified-creation-session.d.ts.map +1 -1
  114. package/dist/core/unified-creation-session.js +19 -19
  115. package/dist/core/unified-creation-types.d.ts +2 -2
  116. package/dist/core/unified-creation-types.d.ts.map +1 -1
  117. package/dist/core/visualization.d.ts +1 -1
  118. package/dist/core/visualization.d.ts.map +1 -1
  119. package/dist/core/workflow.d.ts +8 -5
  120. package/dist/core/workflow.d.ts.map +1 -1
  121. package/dist/evaluation/dataset-analyzer.d.ts +13 -7
  122. package/dist/evaluation/dataset-analyzer.d.ts.map +1 -1
  123. package/dist/evaluation/dataset-analyzer.js +1 -1
  124. package/dist/evaluation/datasets/loader.d.ts +2 -2
  125. package/dist/evaluation/datasets/loader.d.ts.map +1 -1
  126. package/dist/evaluation/eval-runner.js +7 -5
  127. package/dist/evaluation/evaluators/base-comparative.d.ts +1 -1
  128. package/dist/evaluation/evaluators/base-comparative.d.ts.map +1 -1
  129. package/dist/evaluation/evaluators/base-comparative.js +4 -3
  130. package/dist/evaluation/evaluators/base.d.ts +5 -5
  131. package/dist/evaluation/evaluators/base.d.ts.map +1 -1
  132. package/dist/evaluation/evaluators/capability-comparative.js +1 -1
  133. package/dist/evaluation/platform-synthesizer.d.ts.map +1 -1
  134. package/dist/interfaces/mcp.d.ts.map +1 -1
  135. package/dist/interfaces/mcp.js +26 -15
  136. package/dist/interfaces/openapi-generator.d.ts +116 -12
  137. package/dist/interfaces/openapi-generator.d.ts.map +1 -1
  138. package/dist/interfaces/openapi-generator.js +500 -207
  139. package/dist/interfaces/rest-api.d.ts +28 -6
  140. package/dist/interfaces/rest-api.d.ts.map +1 -1
  141. package/dist/interfaces/rest-api.js +436 -245
  142. package/dist/interfaces/rest-registry.d.ts +5 -5
  143. package/dist/interfaces/rest-registry.d.ts.map +1 -1
  144. package/dist/interfaces/rest-registry.js +12 -27
  145. package/dist/interfaces/rest-route-registry.d.ts +165 -0
  146. package/dist/interfaces/rest-route-registry.d.ts.map +1 -0
  147. package/dist/interfaces/rest-route-registry.js +230 -0
  148. package/dist/interfaces/routes/index.d.ts +22 -0
  149. package/dist/interfaces/routes/index.d.ts.map +1 -0
  150. package/dist/interfaces/routes/index.js +347 -0
  151. package/dist/interfaces/schemas/common.d.ts +170 -0
  152. package/dist/interfaces/schemas/common.d.ts.map +1 -0
  153. package/dist/interfaces/schemas/common.js +114 -0
  154. package/dist/interfaces/schemas/events.d.ts +127 -0
  155. package/dist/interfaces/schemas/events.d.ts.map +1 -0
  156. package/dist/interfaces/schemas/events.js +66 -0
  157. package/dist/interfaces/schemas/index.d.ts +21 -0
  158. package/dist/interfaces/schemas/index.d.ts.map +1 -0
  159. package/dist/interfaces/schemas/index.js +138 -0
  160. package/dist/interfaces/schemas/knowledge.d.ts +201 -0
  161. package/dist/interfaces/schemas/knowledge.d.ts.map +1 -0
  162. package/dist/interfaces/schemas/knowledge.js +117 -0
  163. package/dist/interfaces/schemas/logs.d.ts +78 -0
  164. package/dist/interfaces/schemas/logs.d.ts.map +1 -0
  165. package/dist/interfaces/schemas/logs.js +46 -0
  166. package/dist/interfaces/schemas/prompts.d.ts +185 -0
  167. package/dist/interfaces/schemas/prompts.d.ts.map +1 -0
  168. package/dist/interfaces/schemas/prompts.js +91 -0
  169. package/dist/interfaces/schemas/resources.d.ts +363 -0
  170. package/dist/interfaces/schemas/resources.d.ts.map +1 -0
  171. package/dist/interfaces/schemas/resources.js +173 -0
  172. package/dist/interfaces/schemas/sessions.d.ts +87 -0
  173. package/dist/interfaces/schemas/sessions.d.ts.map +1 -0
  174. package/dist/interfaces/schemas/sessions.js +56 -0
  175. package/dist/interfaces/schemas/tools.d.ts +188 -0
  176. package/dist/interfaces/schemas/tools.d.ts.map +1 -0
  177. package/dist/interfaces/schemas/tools.js +101 -0
  178. package/dist/interfaces/schemas/visualization.d.ts +369 -0
  179. package/dist/interfaces/schemas/visualization.d.ts.map +1 -0
  180. package/dist/interfaces/schemas/visualization.js +134 -0
  181. package/dist/mcp/server.js +5 -4
  182. package/dist/tools/answer-question.d.ts +1 -1
  183. package/dist/tools/answer-question.d.ts.map +1 -1
  184. package/dist/tools/answer-question.js +9 -8
  185. package/dist/tools/deploy-manifests.d.ts +4 -2
  186. package/dist/tools/deploy-manifests.d.ts.map +1 -1
  187. package/dist/tools/deploy-manifests.js +10 -6
  188. package/dist/tools/generate-manifests.d.ts.map +1 -1
  189. package/dist/tools/generate-manifests.js +28 -20
  190. package/dist/tools/index.d.ts +1 -0
  191. package/dist/tools/index.d.ts.map +1 -1
  192. package/dist/tools/index.js +6 -1
  193. package/dist/tools/manage-knowledge.d.ts +77 -0
  194. package/dist/tools/manage-knowledge.d.ts.map +1 -0
  195. package/dist/tools/manage-knowledge.js +573 -0
  196. package/dist/tools/operate-analysis.d.ts +31 -2
  197. package/dist/tools/operate-analysis.d.ts.map +1 -1
  198. package/dist/tools/operate-execution.d.ts +2 -3
  199. package/dist/tools/operate-execution.d.ts.map +1 -1
  200. package/dist/tools/operate-execution.js +7 -7
  201. package/dist/tools/operate.d.ts +7 -2
  202. package/dist/tools/operate.d.ts.map +1 -1
  203. package/dist/tools/operate.js +2 -2
  204. package/dist/tools/organizational-data.d.ts +30 -4
  205. package/dist/tools/organizational-data.d.ts.map +1 -1
  206. package/dist/tools/organizational-data.js +24 -19
  207. package/dist/tools/project-setup/discovery.d.ts.map +1 -1
  208. package/dist/tools/project-setup/generate-scope.d.ts +1 -1
  209. package/dist/tools/project-setup/generate-scope.d.ts.map +1 -1
  210. package/dist/tools/project-setup/types.d.ts +1 -0
  211. package/dist/tools/project-setup/types.d.ts.map +1 -1
  212. package/dist/tools/prompts.d.ts +29 -3
  213. package/dist/tools/prompts.d.ts.map +1 -1
  214. package/dist/tools/prompts.js +6 -3
  215. package/dist/tools/query.d.ts +17 -3
  216. package/dist/tools/query.d.ts.map +1 -1
  217. package/dist/tools/query.js +1 -7
  218. package/dist/tools/recommend.d.ts +24 -6
  219. package/dist/tools/recommend.d.ts.map +1 -1
  220. package/dist/tools/recommend.js +18 -15
  221. package/dist/tools/remediate.d.ts +12 -3
  222. package/dist/tools/remediate.d.ts.map +1 -1
  223. package/dist/tools/remediate.js +22 -14
  224. package/dist/tools/version.d.ts +19 -5
  225. package/dist/tools/version.d.ts.map +1 -1
  226. package/dist/tools/version.js +106 -54
  227. package/package.json +15 -9
  228. package/prompts/knowledge-ask.md +29 -0
  229. package/scripts/generate-openapi.sh +56 -0
  230. package/scripts/grafana-stack.nu +118 -0
  231. package/shared-prompts/prd-create.md +2 -0
  232. package/dist/core/vector-db-service.d.ts +0 -108
  233. package/dist/core/vector-db-service.d.ts.map +0 -1
  234. package/dist/core/vector-db-service.js +0 -647
@@ -44,6 +44,7 @@ const error_handling_1 = require("../core/error-handling");
44
44
  const deploy_operation_1 = require("../core/deploy-operation");
45
45
  const generic_session_manager_1 = require("../core/generic-session-manager");
46
46
  const solution_utils_1 = require("../core/solution-utils");
47
+ const plugin_registry_1 = require("../core/plugin-registry");
47
48
  const fs = __importStar(require("fs"));
48
49
  const path = __importStar(require("path"));
49
50
  // PRD #343: Inline utilities (helm-utils.ts removed - all helm operations via plugin)
@@ -72,7 +73,10 @@ exports.DEPLOYMANIFESTS_TOOL_INPUT_SCHEMA = {
72
73
  * Direct MCP tool handler for deployManifests functionality
73
74
  * PRD #343: pluginManager required for kubectl operations
74
75
  */
75
- async function handleDeployManifestsTool(args, dotAI, logger, requestId, pluginManager) {
76
+ /**
77
+ * PRD #359: Uses unified plugin registry for kubectl operations
78
+ */
79
+ async function handleDeployManifestsTool(args, dotAI, logger, requestId) {
76
80
  return await error_handling_1.ErrorHandler.withErrorHandling(async () => {
77
81
  logger.debug('Handling deployManifests request', {
78
82
  requestId,
@@ -124,9 +128,9 @@ async function handleDeployManifestsTool(args, dotAI, logger, requestId, pluginM
124
128
  timeout,
125
129
  requestId
126
130
  });
127
- // PRD #343: All Helm operations go through plugin system
131
+ // PRD #359: All Helm operations go through unified plugin registry
128
132
  // First, add/update the Helm repository
129
- const repoResult = await pluginManager.invokeTool('helm_repo_add', {
133
+ const repoResult = await (0, plugin_registry_1.invokePluginTool)('agentic-tools', 'helm_repo_add', {
130
134
  name: chart.repositoryName,
131
135
  url: chart.repository
132
136
  });
@@ -134,7 +138,7 @@ async function handleDeployManifestsTool(args, dotAI, logger, requestId, pluginM
134
138
  logger.warn('Helm repo add failed', { error: repoResult.error?.message });
135
139
  }
136
140
  // Deploy using helm_install with wait
137
- const installResult = await pluginManager.invokeTool('helm_install', {
141
+ const installResult = await (0, plugin_registry_1.invokePluginTool)('agentic-tools', 'helm_install', {
138
142
  releaseName,
139
143
  chart: `${chart.repositoryName}/${chart.chartName}`,
140
144
  namespace,
@@ -216,11 +220,11 @@ async function handleDeployManifestsTool(args, dotAI, logger, requestId, pluginM
216
220
  };
217
221
  }
218
222
  // Capability-based solution: Use existing DeployOperation
219
- // PRD #343: Pass pluginManager for kubectl operations
223
+ // PRD #359: Uses unified plugin registry for kubectl operations
220
224
  logger.info('Using capability-based deployment flow', {
221
225
  solutionId: args.solutionId
222
226
  });
223
- const deployOp = new deploy_operation_1.DeployOperation(pluginManager);
227
+ const deployOp = new deploy_operation_1.DeployOperation();
224
228
  const deployOptions = {
225
229
  solutionId: args.solutionId,
226
230
  timeout
@@ -1 +1 @@
1
- {"version":3,"file":"generate-manifests.d.ts","sourceRoot":"","sources":["../../src/tools/generate-manifests.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,KAAK,EAA0B,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAehD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAsD5D,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,kCAAkC,+IAA+I,CAAC;AAG/L,eAAO,MAAM,mCAAmC;;;CAG/C,CAAC;AA8xBF;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC,CAiUxD"}
1
+ {"version":3,"file":"generate-manifests.d.ts","sourceRoot":"","sources":["../../src/tools/generate-manifests.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,KAAK,EAA0B,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAgBhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAsD5D,eAAO,MAAM,2BAA2B,sBAAsB,CAAC;AAC/D,eAAO,MAAM,kCAAkC,+IAA+I,CAAC;AAG/L,eAAO,MAAM,mCAAmC;;;CAG/C,CAAC;AA40BF;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAC,CAkUxD"}
@@ -56,7 +56,8 @@ const crd_availability_1 = require("../core/crd-availability");
56
56
  const solution_cr_1 = require("../core/solution-cr");
57
57
  const packaging_1 = require("../core/packaging");
58
58
  const visualization_1 = require("../core/visualization");
59
- // PRD #343: Inline utilities (helm-utils.ts removed - all helm operations via plugin)
59
+ const plugin_registry_1 = require("../core/plugin-registry");
60
+ // PRD #359: All helm operations via unified plugin registry
60
61
  /**
61
62
  * Ensure tmp directory exists
62
63
  */
@@ -132,8 +133,8 @@ async function retrieveResourceSchemas(solution, dotAI, logger) {
132
133
  schemas[resourceKey] = {
133
134
  kind: resourceRef.kind,
134
135
  apiVersion: resourceRef.apiVersion,
135
- schema: explanation,
136
- timestamp: new Date().toISOString()
136
+ explanation,
137
+ retrievedAt: new Date().toISOString()
137
138
  };
138
139
  logger.debug('Schema retrieved successfully', {
139
140
  resourceKey,
@@ -194,7 +195,8 @@ async function helmLint(chartDir, logger) {
194
195
  }
195
196
  catch (error) {
196
197
  // helm lint exits with non-zero on errors
197
- const errorOutput = error instanceof Error ? error.stderr || error.message : String(error);
198
+ const execError = error;
199
+ const errorOutput = execError.stderr || execError.message || String(error);
198
200
  const errors = [];
199
201
  const warnings = [];
200
202
  // Parse output for errors and warnings
@@ -217,9 +219,9 @@ async function helmLint(chartDir, logger) {
217
219
  }
218
220
  /**
219
221
  * Validate manifests using multi-layer approach
220
- * PRD #343: pluginManager required for kubectl operations
222
+ * PRD #359: Uses unified plugin registry for kubectl operations
221
223
  */
222
- async function validateManifests(yamlPath, pluginManager) {
224
+ async function validateManifests(yamlPath) {
223
225
  // First check if file exists
224
226
  if (!fs.existsSync(yamlPath)) {
225
227
  return {
@@ -240,8 +242,8 @@ async function validateManifests(yamlPath, pluginManager) {
240
242
  };
241
243
  }
242
244
  // 2. kubectl dry-run validation using ManifestValidator
243
- // PRD #343: Pass pluginManager for kubectl operations
244
- const validator = new schema_1.ManifestValidator(pluginManager);
245
+ // PRD #359: Uses unified plugin registry for kubectl operations
246
+ const validator = new schema_1.ManifestValidator();
245
247
  return await validator.validateManifest(yamlPath, { dryRunMode: 'server' });
246
248
  }
247
249
  /**
@@ -351,15 +353,18 @@ ${errorContext.previousValues}
351
353
  * Validate Helm installation using dry-run via plugin
352
354
  * PRD #343: All Helm operations go through plugin system
353
355
  */
354
- async function validateHelmInstallation(chart, releaseName, namespace, valuesYaml, logger, pluginManager) {
356
+ /**
357
+ * PRD #359: Uses unified plugin registry for helm operations
358
+ */
359
+ async function validateHelmInstallation(chart, releaseName, namespace, valuesYaml, logger) {
355
360
  logger.info('Running Helm dry-run validation via plugin', {
356
361
  chart: `${chart.repositoryName}/${chart.chartName}`,
357
362
  releaseName,
358
363
  namespace
359
364
  });
360
365
  try {
361
- // First, add/update the Helm repository
362
- const repoResult = await pluginManager.invokeTool('helm_repo_add', {
366
+ // PRD #359: First, add/update the Helm repository via unified registry
367
+ const repoResult = await (0, plugin_registry_1.invokePluginTool)('agentic-tools', 'helm_repo_add', {
363
368
  name: chart.repositoryName,
364
369
  url: chart.repository
365
370
  });
@@ -372,7 +377,7 @@ async function validateHelmInstallation(chart, releaseName, namespace, valuesYam
372
377
  };
373
378
  }
374
379
  // Run helm install with dry-run
375
- const installResult = await pluginManager.invokeTool('helm_install', {
380
+ const installResult = await (0, plugin_registry_1.invokePluginTool)('agentic-tools', 'helm_install', {
376
381
  releaseName,
377
382
  chart: `${chart.repositoryName}/${chart.chartName}`,
378
383
  namespace,
@@ -448,8 +453,8 @@ async function handleHelmGeneration(solution, solutionId, dotAI, logger, request
448
453
  const attemptPath = valuesPath.replace('.yaml', `_attempt_${attempt.toString().padStart(2, '0')}.yaml`);
449
454
  fs.writeFileSync(attemptPath, valuesYaml, 'utf8');
450
455
  // Validate with helm dry-run via plugin
451
- // PRD #343: Pass values content directly to plugin (no file path needed)
452
- const validation = await validateHelmInstallation(chart, releaseName, namespace, valuesYaml, logger, pluginManager);
456
+ // PRD #359: Uses unified plugin registry - no pluginManager needed
457
+ const validation = await validateHelmInstallation(chart, releaseName, namespace, valuesYaml, logger);
453
458
  if (validation.valid) {
454
459
  logger.info('Helm validation successful', {
455
460
  attempt,
@@ -471,7 +476,7 @@ async function handleHelmGeneration(solution, solutionId, dotAI, logger, request
471
476
  repository: chart.repository,
472
477
  repositoryName: chart.repositoryName,
473
478
  chartName: chart.chartName,
474
- version: chart.version
479
+ version: chart.version || 'latest'
475
480
  },
476
481
  releaseName: releaseName,
477
482
  namespace: namespace,
@@ -622,7 +627,9 @@ async function packageAndValidate(rawManifests, solution, outputFormat, outputPa
622
627
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
623
628
  logger.info('Packaging attempt', { attempt, maxAttempts, format: outputFormat });
624
629
  try {
625
- const packagingResult = await (0, packaging_1.packageManifests)(rawManifests, solution, outputFormat, outputPath, dotAI, logger, packagingError, interaction_id);
630
+ const packagingResult = await (0, packaging_1.packageManifests)(rawManifests,
631
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Different SolutionData types between modules
632
+ solution, outputFormat, outputPath, dotAI, logger, packagingError, interaction_id);
626
633
  // Write files to temp directory
627
634
  if (fs.existsSync(packageDir)) {
628
635
  fs.rmSync(packageDir, { recursive: true });
@@ -671,7 +678,7 @@ async function packageAndValidate(rawManifests, solution, outputFormat, outputPa
671
678
  throw new Error('Render succeeded but no YAML content returned');
672
679
  }
673
680
  fs.writeFileSync(renderedYamlPath, renderResult.yaml, 'utf8');
674
- const validation = await validateManifests(renderedYamlPath, pluginManager);
681
+ const validation = await validateManifests(renderedYamlPath);
675
682
  if (validation.valid) {
676
683
  logger.info('Package validation successful', { format: outputFormat, attempt });
677
684
  cleanupPackageDir();
@@ -773,9 +780,10 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId, plugi
773
780
  // Generate manifests with AI (including labels)
774
781
  const aiManifests = await generateManifestsWithAI(solution, args.solutionId, dotAI, logger, lastError, dotAiLabels, args.interaction_id);
775
782
  // Check if Solution CRD is available and generate Solution CR if present
783
+ // PRD #359: Uses unified plugin registry - no pluginManager param needed
776
784
  let solutionCR = '';
777
785
  try {
778
- const crdAvailable = await (0, crd_availability_1.isSolutionCRDAvailable)(pluginManager);
786
+ const crdAvailable = await (0, crd_availability_1.isSolutionCRDAvailable)();
779
787
  if (crdAvailable) {
780
788
  solutionCR = (0, solution_cr_1.generateSolutionCR)({
781
789
  solutionId: args.solutionId,
@@ -815,8 +823,8 @@ async function handleGenerateManifestsTool(args, dotAI, logger, requestId, plugi
815
823
  requestId
816
824
  });
817
825
  // Validate manifests
818
- // PRD #343: Pass pluginManager for kubectl operations
819
- const validation = await validateManifests(yamlPath, pluginManager);
826
+ // PRD #359: Uses unified plugin registry for kubectl operations
827
+ const validation = await validateManifests(yamlPath);
820
828
  if (validation.valid) {
821
829
  logger.info('Manifest validation successful', {
822
830
  attempt,
@@ -11,4 +11,5 @@ export { DEPLOYMANIFESTS_TOOL_NAME, DEPLOYMANIFESTS_TOOL_DESCRIPTION, DEPLOYMANI
11
11
  export { ORGANIZATIONAL_DATA_TOOL_NAME, ORGANIZATIONAL_DATA_TOOL_DESCRIPTION, ORGANIZATIONAL_DATA_TOOL_INPUT_SCHEMA, handleOrganizationalDataTool, } from './organizational-data';
12
12
  export { REMEDIATE_TOOL_NAME, REMEDIATE_TOOL_DESCRIPTION, REMEDIATE_TOOL_INPUT_SCHEMA, handleRemediateTool, } from './remediate';
13
13
  export { PROJECT_SETUP_TOOL_NAME, PROJECT_SETUP_TOOL_DESCRIPTION, PROJECT_SETUP_TOOL_INPUT_SCHEMA, handleProjectSetupTool, } from './project-setup';
14
+ export { MANAGE_KNOWLEDGE_TOOL_NAME, MANAGE_KNOWLEDGE_TOOL_DESCRIPTION, MANAGE_KNOWLEDGE_TOOL_INPUT_SCHEMA, handleManageKnowledgeTool, type ManageKnowledgeInput, } from './manage-knowledge';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,qCAAqC,EACrC,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,wBAAwB,EACxB,+BAA+B,EAC/B,gCAAgC,EAChC,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,mCAAmC,EACnC,2BAA2B,GAC5B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,iCAAiC,EACjC,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,6BAA6B,EAC7B,oCAAoC,EACpC,qCAAqC,EACrC,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,0BAA0B,EAC1B,iCAAiC,EACjC,kCAAkC,EAClC,yBAAyB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Centralized exports for all available tools (direct handlers)
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.handleProjectSetupTool = exports.PROJECT_SETUP_TOOL_INPUT_SCHEMA = exports.PROJECT_SETUP_TOOL_DESCRIPTION = exports.PROJECT_SETUP_TOOL_NAME = exports.handleRemediateTool = exports.REMEDIATE_TOOL_INPUT_SCHEMA = exports.REMEDIATE_TOOL_DESCRIPTION = exports.REMEDIATE_TOOL_NAME = exports.handleOrganizationalDataTool = exports.ORGANIZATIONAL_DATA_TOOL_INPUT_SCHEMA = exports.ORGANIZATIONAL_DATA_TOOL_DESCRIPTION = exports.ORGANIZATIONAL_DATA_TOOL_NAME = exports.handleDeployManifestsTool = exports.DEPLOYMANIFESTS_TOOL_INPUT_SCHEMA = exports.DEPLOYMANIFESTS_TOOL_DESCRIPTION = exports.DEPLOYMANIFESTS_TOOL_NAME = exports.handleGenerateManifestsTool = exports.GENERATEMANIFESTS_TOOL_INPUT_SCHEMA = exports.GENERATEMANIFESTS_TOOL_DESCRIPTION = exports.GENERATEMANIFESTS_TOOL_NAME = exports.handleAnswerQuestionTool = exports.ANSWERQUESTION_TOOL_INPUT_SCHEMA = exports.ANSWERQUESTION_TOOL_DESCRIPTION = exports.ANSWERQUESTION_TOOL_NAME = exports.handleChooseSolutionTool = exports.CHOOSESOLUTION_TOOL_INPUT_SCHEMA = exports.CHOOSESOLUTION_TOOL_DESCRIPTION = exports.CHOOSESOLUTION_TOOL_NAME = exports.handleRecommendTool = exports.RECOMMEND_TOOL_INPUT_SCHEMA = exports.RECOMMEND_TOOL_DESCRIPTION = exports.RECOMMEND_TOOL_NAME = void 0;
8
+ exports.handleManageKnowledgeTool = exports.MANAGE_KNOWLEDGE_TOOL_INPUT_SCHEMA = exports.MANAGE_KNOWLEDGE_TOOL_DESCRIPTION = exports.MANAGE_KNOWLEDGE_TOOL_NAME = exports.handleProjectSetupTool = exports.PROJECT_SETUP_TOOL_INPUT_SCHEMA = exports.PROJECT_SETUP_TOOL_DESCRIPTION = exports.PROJECT_SETUP_TOOL_NAME = exports.handleRemediateTool = exports.REMEDIATE_TOOL_INPUT_SCHEMA = exports.REMEDIATE_TOOL_DESCRIPTION = exports.REMEDIATE_TOOL_NAME = exports.handleOrganizationalDataTool = exports.ORGANIZATIONAL_DATA_TOOL_INPUT_SCHEMA = exports.ORGANIZATIONAL_DATA_TOOL_DESCRIPTION = exports.ORGANIZATIONAL_DATA_TOOL_NAME = exports.handleDeployManifestsTool = exports.DEPLOYMANIFESTS_TOOL_INPUT_SCHEMA = exports.DEPLOYMANIFESTS_TOOL_DESCRIPTION = exports.DEPLOYMANIFESTS_TOOL_NAME = exports.handleGenerateManifestsTool = exports.GENERATEMANIFESTS_TOOL_INPUT_SCHEMA = exports.GENERATEMANIFESTS_TOOL_DESCRIPTION = exports.GENERATEMANIFESTS_TOOL_NAME = exports.handleAnswerQuestionTool = exports.ANSWERQUESTION_TOOL_INPUT_SCHEMA = exports.ANSWERQUESTION_TOOL_DESCRIPTION = exports.ANSWERQUESTION_TOOL_NAME = exports.handleChooseSolutionTool = exports.CHOOSESOLUTION_TOOL_INPUT_SCHEMA = exports.CHOOSESOLUTION_TOOL_DESCRIPTION = exports.CHOOSESOLUTION_TOOL_NAME = exports.handleRecommendTool = exports.RECOMMEND_TOOL_INPUT_SCHEMA = exports.RECOMMEND_TOOL_DESCRIPTION = exports.RECOMMEND_TOOL_NAME = void 0;
9
9
  // Export direct tool handlers for use in MCP server and CLI
10
10
  var recommend_1 = require("./recommend");
11
11
  Object.defineProperty(exports, "RECOMMEND_TOOL_NAME", { enumerable: true, get: function () { return recommend_1.RECOMMEND_TOOL_NAME; } });
@@ -47,3 +47,8 @@ Object.defineProperty(exports, "PROJECT_SETUP_TOOL_NAME", { enumerable: true, ge
47
47
  Object.defineProperty(exports, "PROJECT_SETUP_TOOL_DESCRIPTION", { enumerable: true, get: function () { return project_setup_1.PROJECT_SETUP_TOOL_DESCRIPTION; } });
48
48
  Object.defineProperty(exports, "PROJECT_SETUP_TOOL_INPUT_SCHEMA", { enumerable: true, get: function () { return project_setup_1.PROJECT_SETUP_TOOL_INPUT_SCHEMA; } });
49
49
  Object.defineProperty(exports, "handleProjectSetupTool", { enumerable: true, get: function () { return project_setup_1.handleProjectSetupTool; } });
50
+ var manage_knowledge_1 = require("./manage-knowledge");
51
+ Object.defineProperty(exports, "MANAGE_KNOWLEDGE_TOOL_NAME", { enumerable: true, get: function () { return manage_knowledge_1.MANAGE_KNOWLEDGE_TOOL_NAME; } });
52
+ Object.defineProperty(exports, "MANAGE_KNOWLEDGE_TOOL_DESCRIPTION", { enumerable: true, get: function () { return manage_knowledge_1.MANAGE_KNOWLEDGE_TOOL_DESCRIPTION; } });
53
+ Object.defineProperty(exports, "MANAGE_KNOWLEDGE_TOOL_INPUT_SCHEMA", { enumerable: true, get: function () { return manage_knowledge_1.MANAGE_KNOWLEDGE_TOOL_INPUT_SCHEMA; } });
54
+ Object.defineProperty(exports, "handleManageKnowledgeTool", { enumerable: true, get: function () { return manage_knowledge_1.handleManageKnowledgeTool; } });
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Knowledge Base Management Tool
3
+ *
4
+ * MCP tool for managing the knowledge base: ingest documents, search, delete, and retrieve chunks.
5
+ * Documents are chunked (via plugin), embedded, and stored in Qdrant for semantic search.
6
+ *
7
+ * PRD #356: Knowledge Base System
8
+ */
9
+ import { z } from 'zod';
10
+ import { Logger } from '../core/error-handling';
11
+ import { DotAI } from '../core/index';
12
+ import { KnowledgeSearchResultItem } from '../core/knowledge-types';
13
+ export declare const MANAGE_KNOWLEDGE_TOOL_NAME = "manageKnowledge";
14
+ export declare const MANAGE_KNOWLEDGE_TOOL_DESCRIPTION: string;
15
+ export declare const MANAGE_KNOWLEDGE_TOOL_INPUT_SCHEMA: {
16
+ operation: z.ZodEnum<{
17
+ search: "search";
18
+ ingest: "ingest";
19
+ deleteByUri: "deleteByUri";
20
+ }>;
21
+ content: z.ZodOptional<z.ZodString>;
22
+ uri: z.ZodOptional<z.ZodString>;
23
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
24
+ query: z.ZodOptional<z.ZodString>;
25
+ limit: z.ZodOptional<z.ZodNumber>;
26
+ uriFilter: z.ZodOptional<z.ZodString>;
27
+ interaction_id: z.ZodOptional<z.ZodString>;
28
+ };
29
+ /**
30
+ * Input type for knowledge management tool
31
+ */
32
+ export interface ManageKnowledgeInput {
33
+ operation: 'ingest' | 'search' | 'deleteByUri';
34
+ content?: string;
35
+ uri?: string;
36
+ metadata?: Record<string, unknown>;
37
+ query?: string;
38
+ limit?: number;
39
+ uriFilter?: string;
40
+ interaction_id?: string;
41
+ }
42
+ /**
43
+ * Result type for the reusable search function
44
+ */
45
+ export interface SearchKnowledgeBaseResult {
46
+ success: boolean;
47
+ chunks: KnowledgeSearchResultItem[];
48
+ totalMatches: number;
49
+ error?: string;
50
+ }
51
+ /**
52
+ * Reusable knowledge base search function.
53
+ * Can be called from MCP tool handler or HTTP endpoints.
54
+ *
55
+ * @param params Search parameters
56
+ * @returns Search results with chunks or error
57
+ */
58
+ export declare function searchKnowledgeBase(params: {
59
+ query: string;
60
+ limit?: number;
61
+ uriFilter?: string;
62
+ }): Promise<SearchKnowledgeBaseResult>;
63
+ /**
64
+ * MCP response format with content array
65
+ */
66
+ interface McpToolResponse {
67
+ content: Array<{
68
+ type: 'text';
69
+ text: string;
70
+ }>;
71
+ }
72
+ /**
73
+ * Main tool handler - routes to appropriate operation handler
74
+ */
75
+ export declare function handleManageKnowledgeTool(args: ManageKnowledgeInput, _dotAI: DotAI | null, logger: Logger, requestId: string): Promise<McpToolResponse>;
76
+ export {};
77
+ //# sourceMappingURL=manage-knowledge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manage-knowledge.d.ts","sourceRoot":"","sources":["../../src/tools/manage-knowledge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,OAAO,EAIL,yBAAyB,EAE1B,MAAM,yBAAyB,CAAC;AAQjC,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAC5D,eAAO,MAAM,iCAAiC,QAKgB,CAAC;AAG/D,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;CAkC9C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiPD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA4HrC;AA2ND;;GAEG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChD;AAgBD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,KAAK,GAAG,IAAI,EACpB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CA8B1B"}