@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
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ /**
3
+ * REST API Route Definitions
4
+ *
5
+ * Central registration of all REST API routes with their Zod schemas.
6
+ * This is the single source of truth for routing, OpenAPI generation, and fixture validation.
7
+ *
8
+ * PRD #354: REST API Route Registry with Auto-Generated OpenAPI and Test Fixtures
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.routeDefinitions = void 0;
12
+ exports.registerAllRoutes = registerAllRoutes;
13
+ exports.getRouteCount = getRouteCount;
14
+ const zod_1 = require("zod");
15
+ const schemas_1 = require("../schemas");
16
+ /**
17
+ * Query parameter schemas for various endpoints
18
+ */
19
+ const ToolDiscoveryQuerySchema = zod_1.z.object({
20
+ category: zod_1.z.string().optional().describe('Filter tools by category'),
21
+ tag: zod_1.z.string().optional().describe('Filter tools by tag'),
22
+ search: zod_1.z.string().optional().describe('Search tools by name or description'),
23
+ });
24
+ const ResourceSearchQuerySchema = zod_1.z.object({
25
+ q: zod_1.z.string().describe('Search query'),
26
+ limit: zod_1.z.coerce.number().optional().default(20).describe('Maximum results to return'),
27
+ offset: zod_1.z.coerce.number().optional().default(0).describe('Offset for pagination'),
28
+ });
29
+ const ResourceListQuerySchema = zod_1.z.object({
30
+ kind: zod_1.z.string().describe('Resource kind (e.g., Pod, Deployment)'),
31
+ apiVersion: zod_1.z.string().describe('API version (e.g., v1, apps/v1)'),
32
+ namespace: zod_1.z.string().optional().describe('Filter by namespace'),
33
+ limit: zod_1.z.coerce.number().optional().describe('Maximum results to return'),
34
+ offset: zod_1.z.coerce.number().optional().describe('Offset for pagination'),
35
+ });
36
+ const SingleResourceQuerySchema = zod_1.z.object({
37
+ kind: zod_1.z.string().describe('Resource kind'),
38
+ apiVersion: zod_1.z.string().describe('API version'),
39
+ name: zod_1.z.string().describe('Resource name'),
40
+ namespace: zod_1.z.string().optional().describe('Namespace (for namespaced resources)'),
41
+ });
42
+ const ResourceKindsQuerySchema = zod_1.z.object({
43
+ namespace: zod_1.z.string().optional().describe('Filter kinds by namespace'),
44
+ });
45
+ const EventsQuerySchema = zod_1.z.object({
46
+ name: zod_1.z.string().describe('Resource name'),
47
+ kind: zod_1.z.string().describe('Resource kind'),
48
+ namespace: zod_1.z.string().optional().describe('Resource namespace'),
49
+ });
50
+ const LogsQuerySchema = zod_1.z.object({
51
+ name: zod_1.z.string().describe('Pod name'),
52
+ namespace: zod_1.z.string().describe('Pod namespace'),
53
+ container: zod_1.z.string().optional().describe('Container name (defaults to first container)'),
54
+ tailLines: zod_1.z.coerce.number().optional().describe('Number of lines from end'),
55
+ previous: zod_1.z.coerce.boolean().optional().describe('Get logs from previous container instance'),
56
+ });
57
+ const VisualizationQuerySchema = zod_1.z.object({
58
+ reload: zod_1.z.coerce.boolean().optional().describe('Force regeneration of visualization'),
59
+ });
60
+ /**
61
+ * Path parameter schemas
62
+ */
63
+ const ToolNameParamsSchema = zod_1.z.object({
64
+ toolName: zod_1.z.string().describe('Name of the tool to execute'),
65
+ });
66
+ const PromptNameParamsSchema = zod_1.z.object({
67
+ promptName: zod_1.z.string().describe('Name of the prompt'),
68
+ });
69
+ const SessionIdParamsSchema = zod_1.z.object({
70
+ sessionId: zod_1.z.string().describe('Session ID'),
71
+ });
72
+ const SourceIdentifierParamsSchema = zod_1.z.object({
73
+ sourceIdentifier: zod_1.z.string().describe('Source identifier (e.g., namespace/name of GitKnowledgeSource CR)'),
74
+ });
75
+ const KnowledgeAskBodySchema = zod_1.z.object({
76
+ query: zod_1.z.string().min(1).describe('The question to answer from the knowledge base'),
77
+ limit: zod_1.z.coerce.number().optional().default(20).describe('Maximum chunks to retrieve per search (default: 20)'),
78
+ uriFilter: zod_1.z.string().optional().describe('Optional: filter searches to specific document URI'),
79
+ });
80
+ /**
81
+ * OpenAPI schema placeholder - returns raw OpenAPI spec object
82
+ */
83
+ const OpenApiResponseSchema = zod_1.z.object({
84
+ openapi: zod_1.z.string(),
85
+ info: zod_1.z.object({
86
+ title: zod_1.z.string(),
87
+ description: zod_1.z.string(),
88
+ version: zod_1.z.string(),
89
+ }),
90
+ paths: zod_1.z.record(zod_1.z.string(), zod_1.z.any()),
91
+ }).passthrough();
92
+ /**
93
+ * All route definitions for the REST API
94
+ */
95
+ exports.routeDefinitions = [
96
+ // ============================================
97
+ // Tool Endpoints
98
+ // ============================================
99
+ {
100
+ path: '/api/v1/tools',
101
+ method: 'GET',
102
+ description: 'Discover available tools with optional filtering by category, tag, or search term',
103
+ tags: ['Tools'],
104
+ query: ToolDiscoveryQuerySchema,
105
+ response: schemas_1.ToolDiscoveryResponseSchema,
106
+ errorResponses: {
107
+ 500: schemas_1.InternalServerErrorSchema,
108
+ },
109
+ },
110
+ {
111
+ path: '/api/v1/tools/:toolName',
112
+ method: 'POST',
113
+ description: 'Execute a tool with the provided parameters',
114
+ tags: ['Tools'],
115
+ params: ToolNameParamsSchema,
116
+ body: zod_1.z.record(zod_1.z.string(), zod_1.z.any()).describe('Tool execution parameters'),
117
+ response: schemas_1.ToolExecutionResponseSchema,
118
+ errorResponses: {
119
+ 400: schemas_1.InvalidToolRequestErrorSchema,
120
+ 404: schemas_1.ToolNotFoundErrorSchema,
121
+ 500: schemas_1.ToolExecutionErrorSchema,
122
+ },
123
+ },
124
+ // ============================================
125
+ // OpenAPI Endpoint
126
+ // ============================================
127
+ {
128
+ path: '/api/v1/openapi',
129
+ method: 'GET',
130
+ description: 'Get the OpenAPI 3.0 specification for this API',
131
+ tags: ['Documentation'],
132
+ response: OpenApiResponseSchema,
133
+ errorResponses: {
134
+ 500: schemas_1.InternalServerErrorSchema,
135
+ },
136
+ },
137
+ // ============================================
138
+ // Resource Endpoints
139
+ // ============================================
140
+ {
141
+ path: '/api/v1/resources',
142
+ method: 'GET',
143
+ description: 'List resources filtered by kind and optional namespace',
144
+ tags: ['Resources'],
145
+ query: ResourceListQuerySchema,
146
+ response: schemas_1.ResourceListResponseSchema,
147
+ errorResponses: {
148
+ 400: schemas_1.ResourceBadRequestErrorSchema,
149
+ 503: schemas_1.ResourcePluginUnavailableErrorSchema,
150
+ 500: schemas_1.InternalServerErrorSchema,
151
+ },
152
+ },
153
+ {
154
+ path: '/api/v1/resources/kinds',
155
+ method: 'GET',
156
+ description: 'List all resource kinds available in the cluster with counts',
157
+ tags: ['Resources'],
158
+ query: ResourceKindsQuerySchema,
159
+ response: schemas_1.ResourceKindsResponseSchema,
160
+ errorResponses: {
161
+ 503: schemas_1.ResourcePluginUnavailableErrorSchema,
162
+ 500: schemas_1.InternalServerErrorSchema,
163
+ },
164
+ },
165
+ {
166
+ path: '/api/v1/resources/search',
167
+ method: 'GET',
168
+ description: 'Search for resources using semantic search',
169
+ tags: ['Resources'],
170
+ query: ResourceSearchQuerySchema,
171
+ response: schemas_1.ResourceSearchResponseSchema,
172
+ errorResponses: {
173
+ 400: schemas_1.ResourceBadRequestErrorSchema,
174
+ 503: schemas_1.ResourcePluginUnavailableErrorSchema,
175
+ 500: schemas_1.InternalServerErrorSchema,
176
+ },
177
+ },
178
+ {
179
+ path: '/api/v1/resources/sync',
180
+ method: 'POST',
181
+ description: 'Sync resources from the Kubernetes controller',
182
+ tags: ['Resources'],
183
+ body: schemas_1.ResourceSyncRequestSchema,
184
+ response: schemas_1.ResourceSyncResponseSchema,
185
+ errorResponses: {
186
+ 400: schemas_1.ResourceBadRequestErrorSchema,
187
+ 500: schemas_1.InternalServerErrorSchema,
188
+ },
189
+ },
190
+ {
191
+ path: '/api/v1/resource',
192
+ method: 'GET',
193
+ description: 'Get a single resource with full details including live status',
194
+ tags: ['Resources'],
195
+ query: SingleResourceQuerySchema,
196
+ response: schemas_1.SingleResourceResponseSchema,
197
+ errorResponses: {
198
+ 400: schemas_1.ResourceBadRequestErrorSchema,
199
+ 404: schemas_1.NotFoundErrorSchema,
200
+ 503: schemas_1.ResourcePluginUnavailableErrorSchema,
201
+ 500: schemas_1.InternalServerErrorSchema,
202
+ },
203
+ },
204
+ {
205
+ path: '/api/v1/namespaces',
206
+ method: 'GET',
207
+ description: 'List all namespaces in the cluster',
208
+ tags: ['Resources'],
209
+ response: schemas_1.NamespacesResponseSchema,
210
+ errorResponses: {
211
+ 503: schemas_1.ResourcePluginUnavailableErrorSchema,
212
+ 500: schemas_1.InternalServerErrorSchema,
213
+ },
214
+ },
215
+ // ============================================
216
+ // Events Endpoint
217
+ // ============================================
218
+ {
219
+ path: '/api/v1/events',
220
+ method: 'GET',
221
+ description: 'Get Kubernetes events for a specific resource',
222
+ tags: ['Observability'],
223
+ query: EventsQuerySchema,
224
+ response: schemas_1.EventsResponseSchema,
225
+ errorResponses: {
226
+ 400: schemas_1.EventsBadRequestErrorSchema,
227
+ 503: schemas_1.EventsPluginUnavailableErrorSchema,
228
+ 500: schemas_1.InternalServerErrorSchema,
229
+ },
230
+ },
231
+ // ============================================
232
+ // Logs Endpoint
233
+ // ============================================
234
+ {
235
+ path: '/api/v1/logs',
236
+ method: 'GET',
237
+ description: 'Get container logs from a pod',
238
+ tags: ['Observability'],
239
+ query: LogsQuerySchema,
240
+ response: schemas_1.LogsResponseSchema,
241
+ errorResponses: {
242
+ 400: schemas_1.LogsBadRequestErrorSchema,
243
+ 503: schemas_1.LogsPluginUnavailableErrorSchema,
244
+ 500: schemas_1.InternalServerErrorSchema,
245
+ },
246
+ },
247
+ // ============================================
248
+ // Prompts Endpoints
249
+ // ============================================
250
+ {
251
+ path: '/api/v1/prompts',
252
+ method: 'GET',
253
+ description: 'List all available prompts',
254
+ tags: ['Prompts'],
255
+ response: schemas_1.PromptsListResponseSchema,
256
+ errorResponses: {
257
+ 500: schemas_1.InternalServerErrorSchema,
258
+ },
259
+ },
260
+ {
261
+ path: '/api/v1/prompts/:promptName',
262
+ method: 'POST',
263
+ description: 'Get a prompt with rendered template arguments',
264
+ tags: ['Prompts'],
265
+ params: PromptNameParamsSchema,
266
+ body: schemas_1.PromptGetRequestSchema,
267
+ response: schemas_1.PromptGetResponseSchema,
268
+ errorResponses: {
269
+ 404: schemas_1.PromptNotFoundErrorSchema,
270
+ 500: schemas_1.InternalServerErrorSchema,
271
+ },
272
+ },
273
+ // ============================================
274
+ // Visualization Endpoint
275
+ // ============================================
276
+ {
277
+ path: '/api/v1/visualize/:sessionId',
278
+ method: 'GET',
279
+ description: 'Get structured visualization data for a session',
280
+ tags: ['Visualization'],
281
+ params: SessionIdParamsSchema,
282
+ query: VisualizationQuerySchema,
283
+ response: schemas_1.VisualizationResponseSchema,
284
+ errorResponses: {
285
+ 404: schemas_1.VisualizationNotFoundErrorSchema,
286
+ 503: schemas_1.VisualizationServiceUnavailableErrorSchema,
287
+ 500: schemas_1.InternalServerErrorSchema,
288
+ },
289
+ },
290
+ // ============================================
291
+ // Sessions Endpoint
292
+ // ============================================
293
+ {
294
+ path: '/api/v1/sessions/:sessionId',
295
+ method: 'GET',
296
+ description: 'Get raw session data for any tool type (remediate, query, recommend, etc.)',
297
+ tags: ['Sessions'],
298
+ params: SessionIdParamsSchema,
299
+ response: schemas_1.SessionResponseSchema,
300
+ errorResponses: {
301
+ 404: schemas_1.SessionNotFoundErrorSchema,
302
+ 500: schemas_1.InternalServerErrorSchema,
303
+ },
304
+ },
305
+ // ============================================
306
+ // Knowledge Base Endpoints (PRD #356)
307
+ // ============================================
308
+ {
309
+ path: '/api/v1/knowledge/source/:sourceIdentifier',
310
+ method: 'DELETE',
311
+ description: 'Delete all knowledge base chunks for a source identifier. Used by controller for GitKnowledgeSource cleanup.',
312
+ tags: ['Knowledge'],
313
+ params: SourceIdentifierParamsSchema,
314
+ response: schemas_1.DeleteBySourceResponseSchema,
315
+ errorResponses: {
316
+ 503: schemas_1.DeleteBySourcePluginUnavailableErrorSchema,
317
+ 500: schemas_1.DeleteBySourceErrorSchema,
318
+ },
319
+ },
320
+ {
321
+ path: '/api/v1/knowledge/ask',
322
+ method: 'POST',
323
+ description: 'Ask a question and receive an AI-synthesized answer from the knowledge base. Uses an agentic approach that can search multiple times with different phrasings for comprehensive answers.',
324
+ tags: ['Knowledge'],
325
+ body: KnowledgeAskBodySchema,
326
+ response: schemas_1.KnowledgeAskResponseSchema,
327
+ errorResponses: {
328
+ 400: schemas_1.KnowledgeAskBadRequestErrorSchema,
329
+ 503: schemas_1.ServiceUnavailableErrorSchema,
330
+ 500: schemas_1.KnowledgeAskErrorSchema,
331
+ },
332
+ },
333
+ ];
334
+ /**
335
+ * Register all routes with the provided registry
336
+ */
337
+ function registerAllRoutes(registry) {
338
+ for (const route of exports.routeDefinitions) {
339
+ registry.register(route);
340
+ }
341
+ }
342
+ /**
343
+ * Get route count - useful for validation
344
+ */
345
+ function getRouteCount() {
346
+ return exports.routeDefinitions.length;
347
+ }
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Common REST API Response Schemas
3
+ *
4
+ * Base schemas used by all REST API endpoints.
5
+ * PRD #354: REST API Route Registry with Auto-Generated OpenAPI and Test Fixtures
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Response metadata schema
10
+ */
11
+ export declare const MetaSchema: z.ZodObject<{
12
+ timestamp: z.ZodString;
13
+ requestId: z.ZodOptional<z.ZodString>;
14
+ version: z.ZodString;
15
+ }, z.core.$strip>;
16
+ export type Meta = z.infer<typeof MetaSchema>;
17
+ /**
18
+ * Error details schema
19
+ */
20
+ export declare const ErrorDetailsSchema: z.ZodObject<{
21
+ code: z.ZodString;
22
+ message: z.ZodString;
23
+ details: z.ZodOptional<z.ZodAny>;
24
+ }, z.core.$strip>;
25
+ export type ErrorDetails = z.infer<typeof ErrorDetailsSchema>;
26
+ /**
27
+ * Base REST API response schema
28
+ * All endpoint responses extend this structure
29
+ */
30
+ export declare const RestApiResponseSchema: z.ZodObject<{
31
+ success: z.ZodBoolean;
32
+ data: z.ZodOptional<z.ZodAny>;
33
+ error: z.ZodOptional<z.ZodObject<{
34
+ code: z.ZodString;
35
+ message: z.ZodString;
36
+ details: z.ZodOptional<z.ZodAny>;
37
+ }, z.core.$strip>>;
38
+ meta: z.ZodOptional<z.ZodObject<{
39
+ timestamp: z.ZodString;
40
+ requestId: z.ZodOptional<z.ZodString>;
41
+ version: z.ZodString;
42
+ }, z.core.$strip>>;
43
+ }, z.core.$strip>;
44
+ export type RestApiResponse = z.infer<typeof RestApiResponseSchema>;
45
+ /**
46
+ * Success response factory - creates a typed success response schema
47
+ */
48
+ export declare function createSuccessResponseSchema<T extends z.ZodTypeAny>(dataSchema: T): z.ZodObject<{
49
+ success: z.ZodLiteral<true>;
50
+ data: T;
51
+ error: z.ZodOptional<z.ZodUndefined>;
52
+ meta: z.ZodOptional<z.ZodObject<{
53
+ timestamp: z.ZodString;
54
+ requestId: z.ZodOptional<z.ZodString>;
55
+ version: z.ZodString;
56
+ }, z.core.$strip>>;
57
+ }, z.core.$strip>;
58
+ /**
59
+ * Error response schema for failed requests
60
+ */
61
+ export declare const ErrorResponseSchema: z.ZodObject<{
62
+ success: z.ZodLiteral<false>;
63
+ data: z.ZodOptional<z.ZodUndefined>;
64
+ error: z.ZodObject<{
65
+ code: z.ZodString;
66
+ message: z.ZodString;
67
+ details: z.ZodOptional<z.ZodAny>;
68
+ }, z.core.$strip>;
69
+ meta: z.ZodOptional<z.ZodObject<{
70
+ timestamp: z.ZodString;
71
+ requestId: z.ZodOptional<z.ZodString>;
72
+ version: z.ZodString;
73
+ }, z.core.$strip>>;
74
+ }, z.core.$strip>;
75
+ export type ErrorResponse = z.infer<typeof ErrorResponseSchema>;
76
+ /**
77
+ * Common error response schemas by HTTP status
78
+ */
79
+ export declare const NotFoundErrorSchema: z.ZodObject<{
80
+ success: z.ZodLiteral<false>;
81
+ data: z.ZodOptional<z.ZodUndefined>;
82
+ meta: z.ZodOptional<z.ZodObject<{
83
+ timestamp: z.ZodString;
84
+ requestId: z.ZodOptional<z.ZodString>;
85
+ version: z.ZodString;
86
+ }, z.core.$strip>>;
87
+ error: z.ZodObject<{
88
+ message: z.ZodString;
89
+ details: z.ZodOptional<z.ZodAny>;
90
+ code: z.ZodLiteral<"NOT_FOUND">;
91
+ }, z.core.$strip>;
92
+ }, z.core.$strip>;
93
+ export declare const BadRequestErrorSchema: z.ZodObject<{
94
+ success: z.ZodLiteral<false>;
95
+ data: z.ZodOptional<z.ZodUndefined>;
96
+ meta: z.ZodOptional<z.ZodObject<{
97
+ timestamp: z.ZodString;
98
+ requestId: z.ZodOptional<z.ZodString>;
99
+ version: z.ZodString;
100
+ }, z.core.$strip>>;
101
+ error: z.ZodObject<{
102
+ message: z.ZodString;
103
+ details: z.ZodOptional<z.ZodAny>;
104
+ code: z.ZodEnum<{
105
+ BAD_REQUEST: "BAD_REQUEST";
106
+ INVALID_REQUEST: "INVALID_REQUEST";
107
+ MISSING_PARAMETER: "MISSING_PARAMETER";
108
+ INVALID_PARAMETER: "INVALID_PARAMETER";
109
+ VALIDATION_ERROR: "VALIDATION_ERROR";
110
+ }>;
111
+ }, z.core.$strip>;
112
+ }, z.core.$strip>;
113
+ export declare const MethodNotAllowedErrorSchema: z.ZodObject<{
114
+ success: z.ZodLiteral<false>;
115
+ data: z.ZodOptional<z.ZodUndefined>;
116
+ meta: z.ZodOptional<z.ZodObject<{
117
+ timestamp: z.ZodString;
118
+ requestId: z.ZodOptional<z.ZodString>;
119
+ version: z.ZodString;
120
+ }, z.core.$strip>>;
121
+ error: z.ZodObject<{
122
+ message: z.ZodString;
123
+ details: z.ZodOptional<z.ZodAny>;
124
+ code: z.ZodLiteral<"METHOD_NOT_ALLOWED">;
125
+ }, z.core.$strip>;
126
+ }, z.core.$strip>;
127
+ export declare const ServiceUnavailableErrorSchema: z.ZodObject<{
128
+ success: z.ZodLiteral<false>;
129
+ data: z.ZodOptional<z.ZodUndefined>;
130
+ meta: z.ZodOptional<z.ZodObject<{
131
+ timestamp: z.ZodString;
132
+ requestId: z.ZodOptional<z.ZodString>;
133
+ version: z.ZodString;
134
+ }, z.core.$strip>>;
135
+ error: z.ZodObject<{
136
+ message: z.ZodString;
137
+ details: z.ZodOptional<z.ZodAny>;
138
+ code: z.ZodEnum<{
139
+ AI_NOT_CONFIGURED: "AI_NOT_CONFIGURED";
140
+ PLUGIN_UNAVAILABLE: "PLUGIN_UNAVAILABLE";
141
+ VECTOR_DB_UNAVAILABLE: "VECTOR_DB_UNAVAILABLE";
142
+ SERVICE_UNAVAILABLE: "SERVICE_UNAVAILABLE";
143
+ }>;
144
+ }, z.core.$strip>;
145
+ }, z.core.$strip>;
146
+ export declare const InternalServerErrorSchema: z.ZodObject<{
147
+ success: z.ZodLiteral<false>;
148
+ data: z.ZodOptional<z.ZodUndefined>;
149
+ meta: z.ZodOptional<z.ZodObject<{
150
+ timestamp: z.ZodString;
151
+ requestId: z.ZodOptional<z.ZodString>;
152
+ version: z.ZodString;
153
+ }, z.core.$strip>>;
154
+ error: z.ZodObject<{
155
+ message: z.ZodString;
156
+ details: z.ZodOptional<z.ZodAny>;
157
+ code: z.ZodEnum<{
158
+ INTERNAL_ERROR: "INTERNAL_ERROR";
159
+ DISCOVERY_ERROR: "DISCOVERY_ERROR";
160
+ EXECUTION_ERROR: "EXECUTION_ERROR";
161
+ OPENAPI_ERROR: "OPENAPI_ERROR";
162
+ SYNC_ERROR: "SYNC_ERROR";
163
+ RESOURCE_KINDS_ERROR: "RESOURCE_KINDS_ERROR";
164
+ SEARCH_ERROR: "SEARCH_ERROR";
165
+ LIST_RESOURCES_ERROR: "LIST_RESOURCES_ERROR";
166
+ NAMESPACES_ERROR: "NAMESPACES_ERROR";
167
+ RESOURCE_ERROR: "RESOURCE_ERROR";
168
+ EVENTS_ERROR: "EVENTS_ERROR";
169
+ LOGS_ERROR: "LOGS_ERROR";
170
+ PROMPTS_LIST_ERROR: "PROMPTS_LIST_ERROR";
171
+ PROMPT_GET_ERROR: "PROMPT_GET_ERROR";
172
+ VISUALIZATION_ERROR: "VISUALIZATION_ERROR";
173
+ SESSION_RETRIEVAL_ERROR: "SESSION_RETRIEVAL_ERROR";
174
+ }>;
175
+ }, z.core.$strip>;
176
+ }, z.core.$strip>;
177
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/interfaces/schemas/common.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,UAAU;;;;iBAIrB,CAAC;AAEH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAE9C;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;iBAI7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;iBAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;;;;;;;;;kBAOhF;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;iBAK9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;iBAIhC,CAAC;AAEH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;iBAItC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;iBAIxC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqBpC,CAAC"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /**
3
+ * Common REST API Response Schemas
4
+ *
5
+ * Base schemas used by all REST API endpoints.
6
+ * PRD #354: REST API Route Registry with Auto-Generated OpenAPI and Test Fixtures
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.InternalServerErrorSchema = exports.ServiceUnavailableErrorSchema = exports.MethodNotAllowedErrorSchema = exports.BadRequestErrorSchema = exports.NotFoundErrorSchema = exports.ErrorResponseSchema = exports.RestApiResponseSchema = exports.ErrorDetailsSchema = exports.MetaSchema = void 0;
10
+ exports.createSuccessResponseSchema = createSuccessResponseSchema;
11
+ const zod_1 = require("zod");
12
+ /**
13
+ * Response metadata schema
14
+ */
15
+ exports.MetaSchema = zod_1.z.object({
16
+ timestamp: zod_1.z.string().describe('ISO 8601 timestamp of the response'),
17
+ requestId: zod_1.z.string().optional().describe('Unique request identifier for tracing'),
18
+ version: zod_1.z.string().describe('API version'),
19
+ });
20
+ /**
21
+ * Error details schema
22
+ */
23
+ exports.ErrorDetailsSchema = zod_1.z.object({
24
+ code: zod_1.z.string().describe('Machine-readable error code'),
25
+ message: zod_1.z.string().describe('Human-readable error message'),
26
+ details: zod_1.z.any().optional().describe('Additional error context'),
27
+ });
28
+ /**
29
+ * Base REST API response schema
30
+ * All endpoint responses extend this structure
31
+ */
32
+ exports.RestApiResponseSchema = zod_1.z.object({
33
+ success: zod_1.z.boolean().describe('Whether the request was successful'),
34
+ data: zod_1.z.any().optional().describe('Response payload'),
35
+ error: exports.ErrorDetailsSchema.optional().describe('Error information if success is false'),
36
+ meta: exports.MetaSchema.optional().describe('Response metadata'),
37
+ });
38
+ /**
39
+ * Success response factory - creates a typed success response schema
40
+ */
41
+ function createSuccessResponseSchema(dataSchema) {
42
+ return zod_1.z.object({
43
+ success: zod_1.z.literal(true),
44
+ data: dataSchema,
45
+ error: zod_1.z.undefined().optional(),
46
+ meta: exports.MetaSchema.optional(),
47
+ });
48
+ }
49
+ /**
50
+ * Error response schema for failed requests
51
+ */
52
+ exports.ErrorResponseSchema = zod_1.z.object({
53
+ success: zod_1.z.literal(false),
54
+ data: zod_1.z.undefined().optional(),
55
+ error: exports.ErrorDetailsSchema,
56
+ meta: exports.MetaSchema.optional(),
57
+ });
58
+ /**
59
+ * Common error response schemas by HTTP status
60
+ */
61
+ exports.NotFoundErrorSchema = exports.ErrorResponseSchema.extend({
62
+ error: exports.ErrorDetailsSchema.extend({
63
+ code: zod_1.z.literal('NOT_FOUND'),
64
+ }),
65
+ });
66
+ exports.BadRequestErrorSchema = exports.ErrorResponseSchema.extend({
67
+ error: exports.ErrorDetailsSchema.extend({
68
+ code: zod_1.z.enum(['BAD_REQUEST', 'INVALID_REQUEST', 'MISSING_PARAMETER', 'INVALID_PARAMETER', 'VALIDATION_ERROR']),
69
+ }),
70
+ });
71
+ exports.MethodNotAllowedErrorSchema = exports.ErrorResponseSchema.extend({
72
+ error: exports.ErrorDetailsSchema.extend({
73
+ code: zod_1.z.literal('METHOD_NOT_ALLOWED'),
74
+ }),
75
+ });
76
+ exports.ServiceUnavailableErrorSchema = exports.ErrorResponseSchema.extend({
77
+ error: exports.ErrorDetailsSchema.extend({
78
+ code: zod_1.z.enum(['AI_NOT_CONFIGURED', 'PLUGIN_UNAVAILABLE', 'VECTOR_DB_UNAVAILABLE', 'SERVICE_UNAVAILABLE']),
79
+ }),
80
+ });
81
+ exports.InternalServerErrorSchema = exports.ErrorResponseSchema.extend({
82
+ error: exports.ErrorDetailsSchema.extend({
83
+ code: zod_1.z.enum([
84
+ 'INTERNAL_ERROR',
85
+ 'DISCOVERY_ERROR',
86
+ 'EXECUTION_ERROR',
87
+ 'OPENAPI_ERROR',
88
+ 'SYNC_ERROR',
89
+ 'RESOURCE_KINDS_ERROR',
90
+ 'SEARCH_ERROR',
91
+ 'LIST_RESOURCES_ERROR',
92
+ 'NAMESPACES_ERROR',
93
+ 'RESOURCE_ERROR',
94
+ 'EVENTS_ERROR',
95
+ 'LOGS_ERROR',
96
+ 'PROMPTS_LIST_ERROR',
97
+ 'PROMPT_GET_ERROR',
98
+ 'VISUALIZATION_ERROR',
99
+ 'SESSION_RETRIEVAL_ERROR',
100
+ ]),
101
+ }),
102
+ });