@vfarcic/dot-ai 0.49.0 → 0.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -2
- package/dist/core/base-vector-service.d.ts +4 -4
- package/dist/core/base-vector-service.d.ts.map +1 -1
- package/dist/core/base-vector-service.js +31 -39
- package/dist/core/capabilities.d.ts +71 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/capabilities.js +208 -0
- package/dist/core/capability-vector-service.d.ts +80 -0
- package/dist/core/capability-vector-service.d.ts.map +1 -0
- package/dist/core/capability-vector-service.js +142 -0
- package/dist/core/claude.d.ts +14 -1
- package/dist/core/claude.d.ts.map +1 -1
- package/dist/core/claude.js +109 -13
- package/dist/core/discovery.d.ts +0 -7
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +0 -18
- package/dist/core/embedding-service.d.ts +3 -3
- package/dist/core/embedding-service.d.ts.map +1 -1
- package/dist/core/embedding-service.js +6 -7
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +5 -4
- package/dist/core/schema.d.ts +11 -30
- package/dist/core/schema.d.ts.map +1 -1
- package/dist/core/schema.js +107 -126
- package/dist/core/vector-db-service.d.ts +6 -0
- package/dist/core/vector-db-service.d.ts.map +1 -1
- package/dist/core/vector-db-service.js +40 -10
- package/dist/tools/organizational-data.d.ts +5 -3
- package/dist/tools/organizational-data.d.ts.map +1 -1
- package/dist/tools/organizational-data.js +1714 -52
- package/dist/tools/recommend.d.ts.map +1 -1
- package/dist/tools/recommend.js +3 -7
- package/dist/tools/version.d.ts +9 -0
- package/dist/tools/version.d.ts.map +1 -1
- package/dist/tools/version.js +115 -5
- package/package.json +1 -1
- package/prompts/capability-inference.md +122 -0
- package/prompts/doc-testing-test-section.md +40 -2
- package/prompts/resource-selection.md +10 -3
- package/shared-prompts/prd-update-decisions.md +9 -0
- package/shared-prompts/prd-update-progress.md +33 -0
- package/prompts/concept-extraction.md +0 -95
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Capability Vector Service
|
|
4
|
+
*
|
|
5
|
+
* Vector-based storage and retrieval for resource capabilities
|
|
6
|
+
* Extends BaseVectorService to provide capability-specific operations
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.CapabilityVectorService = void 0;
|
|
10
|
+
const base_vector_service_1 = require("./base-vector-service");
|
|
11
|
+
const capabilities_1 = require("./capabilities");
|
|
12
|
+
/**
|
|
13
|
+
* Vector service for storing and searching resource capabilities
|
|
14
|
+
*/
|
|
15
|
+
class CapabilityVectorService extends base_vector_service_1.BaseVectorService {
|
|
16
|
+
constructor(vectorDB, embeddingService) {
|
|
17
|
+
super('capabilities', vectorDB, embeddingService);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Create searchable text from capability data for embedding generation
|
|
21
|
+
*/
|
|
22
|
+
createSearchText(capability) {
|
|
23
|
+
return [
|
|
24
|
+
capability.resourceName,
|
|
25
|
+
...capability.capabilities,
|
|
26
|
+
...capability.providers,
|
|
27
|
+
...capability.abstractions,
|
|
28
|
+
capability.description,
|
|
29
|
+
capability.useCase,
|
|
30
|
+
capability.complexity
|
|
31
|
+
].join(' ');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Extract unique ID from capability data
|
|
35
|
+
*/
|
|
36
|
+
extractId(capability) {
|
|
37
|
+
return capabilities_1.CapabilityInferenceEngine.generateCapabilityId(capability.resourceName);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Convert capability to storage payload format
|
|
41
|
+
*/
|
|
42
|
+
createPayload(capability) {
|
|
43
|
+
return {
|
|
44
|
+
resourceName: capability.resourceName,
|
|
45
|
+
capabilities: capability.capabilities,
|
|
46
|
+
providers: capability.providers,
|
|
47
|
+
abstractions: capability.abstractions,
|
|
48
|
+
complexity: capability.complexity,
|
|
49
|
+
description: capability.description,
|
|
50
|
+
useCase: capability.useCase,
|
|
51
|
+
confidence: capability.confidence,
|
|
52
|
+
analyzedAt: capability.analyzedAt
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Convert storage payload back to capability object
|
|
57
|
+
*/
|
|
58
|
+
payloadToData(payload) {
|
|
59
|
+
return {
|
|
60
|
+
resourceName: payload.resourceName,
|
|
61
|
+
capabilities: payload.capabilities || [],
|
|
62
|
+
providers: payload.providers || [],
|
|
63
|
+
abstractions: payload.abstractions || [],
|
|
64
|
+
complexity: payload.complexity || 'medium',
|
|
65
|
+
description: payload.description || '',
|
|
66
|
+
useCase: payload.useCase || '',
|
|
67
|
+
confidence: payload.confidence || 0,
|
|
68
|
+
analyzedAt: payload.analyzedAt || new Date().toISOString()
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Store a capability in the vector database
|
|
73
|
+
*/
|
|
74
|
+
async storeCapability(capability) {
|
|
75
|
+
await this.storeData(capability);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Search capabilities by user intent with optional filters
|
|
79
|
+
*/
|
|
80
|
+
async searchCapabilities(intent, options = {}) {
|
|
81
|
+
const results = await this.searchData(intent, options);
|
|
82
|
+
// Apply complexity filter if specified
|
|
83
|
+
if (options.complexityFilter) {
|
|
84
|
+
return results.filter((result) => result.data.complexity === options.complexityFilter);
|
|
85
|
+
}
|
|
86
|
+
// Apply provider filter if specified
|
|
87
|
+
if (options.providerFilter && options.providerFilter.length > 0) {
|
|
88
|
+
return results.filter((result) => result.data.providers.some((provider) => options.providerFilter.includes(provider)));
|
|
89
|
+
}
|
|
90
|
+
return results;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get capability by ID or resource name
|
|
94
|
+
* Handles both Vector DB IDs (from list operations) and resource names
|
|
95
|
+
*/
|
|
96
|
+
async getCapability(idOrResourceName) {
|
|
97
|
+
// First try direct ID lookup (for Vector DB IDs from list operations)
|
|
98
|
+
let capability = await this.getData(idOrResourceName);
|
|
99
|
+
if (!capability) {
|
|
100
|
+
// If not found, try generating ID from resource name (for direct resource queries)
|
|
101
|
+
const generatedId = capabilities_1.CapabilityInferenceEngine.generateCapabilityId(idOrResourceName);
|
|
102
|
+
if (generatedId !== idOrResourceName) {
|
|
103
|
+
capability = await this.getData(generatedId);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return capability;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Delete capability by resource name
|
|
110
|
+
*/
|
|
111
|
+
async deleteCapability(resourceName) {
|
|
112
|
+
const capabilityId = capabilities_1.CapabilityInferenceEngine.generateCapabilityId(resourceName);
|
|
113
|
+
await this.deleteData(capabilityId);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Delete capability by ID (for MCP tool interface)
|
|
117
|
+
*/
|
|
118
|
+
async deleteCapabilityById(id) {
|
|
119
|
+
await this.deleteData(id);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Delete all capabilities efficiently by recreating collection
|
|
123
|
+
*/
|
|
124
|
+
async deleteAllCapabilities() {
|
|
125
|
+
await this.deleteAllData();
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* List all capabilities with optional pagination
|
|
129
|
+
*/
|
|
130
|
+
async getAllCapabilities(limit) {
|
|
131
|
+
return await this.getAllData(limit);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get count of stored capabilities
|
|
135
|
+
*/
|
|
136
|
+
async getCapabilitiesCount() {
|
|
137
|
+
// Use getAllData to get count since base class doesn't expose getCount
|
|
138
|
+
const allCapabilities = await this.getAllData(); // Get all capabilities to count them
|
|
139
|
+
return allCapabilities.length;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.CapabilityVectorService = CapabilityVectorService;
|
package/dist/core/claude.d.ts
CHANGED
|
@@ -25,9 +25,22 @@ export declare class ClaudeIntegration {
|
|
|
25
25
|
private apiKey;
|
|
26
26
|
private conversationHistory;
|
|
27
27
|
private interactions;
|
|
28
|
+
private debugMode;
|
|
28
29
|
constructor(apiKey: string);
|
|
29
30
|
private validateApiKey;
|
|
30
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Create debug directory if it doesn't exist
|
|
33
|
+
*/
|
|
34
|
+
private ensureDebugDirectory;
|
|
35
|
+
/**
|
|
36
|
+
* Generate unique identifier for debug files with operation context
|
|
37
|
+
*/
|
|
38
|
+
private generateDebugId;
|
|
39
|
+
/**
|
|
40
|
+
* Save AI interaction for debugging when DEBUG_DOT_AI=true
|
|
41
|
+
*/
|
|
42
|
+
private debugLogInteraction;
|
|
43
|
+
sendMessage(message: string, operation?: string): Promise<ClaudeResponse>;
|
|
31
44
|
generateYAML(resourceType: string, config: any): Promise<YAMLResponse>;
|
|
32
45
|
recordInteraction(interaction: Interaction): Promise<void>;
|
|
33
46
|
getSuccessfulPatterns(): Promise<Interaction[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/core/claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/core/claude.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,mBAAmB,CAAa;IACxC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,SAAS,CAAU;gBAEf,MAAM,EAAE,MAAM;IAY1B,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+BrB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAkB,GAAG,OAAO,CAAC,cAAc,CAAC;IA+EpF,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;IA6CtE,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D,qBAAqB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAIrD,sBAAsB,IAAI,GAAG,EAAE;IAI/B,wBAAwB,IAAI,IAAI;IAI1B,gBAAgB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IA+B5C,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAS5D,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAazD,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IA2BlE,aAAa,IAAI,OAAO;CAGzB"}
|
package/dist/core/claude.js
CHANGED
|
@@ -4,19 +4,57 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Handles AI communication, YAML generation, and learning integration
|
|
6
6
|
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
7
40
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
41
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
42
|
};
|
|
10
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
44
|
exports.ClaudeIntegration = void 0;
|
|
12
45
|
const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const crypto = __importStar(require("crypto"));
|
|
13
49
|
class ClaudeIntegration {
|
|
14
50
|
client = null;
|
|
15
51
|
apiKey;
|
|
16
52
|
conversationHistory = [];
|
|
17
53
|
interactions = [];
|
|
54
|
+
debugMode;
|
|
18
55
|
constructor(apiKey) {
|
|
19
56
|
this.apiKey = apiKey;
|
|
57
|
+
this.debugMode = process.env.DEBUG_DOT_AI === 'true';
|
|
20
58
|
this.validateApiKey();
|
|
21
59
|
if (this.apiKey) {
|
|
22
60
|
this.client = new sdk_1.default({
|
|
@@ -36,7 +74,56 @@ class ClaudeIntegration {
|
|
|
36
74
|
throw new Error('Invalid API key: API key cannot be empty');
|
|
37
75
|
}
|
|
38
76
|
}
|
|
39
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Create debug directory if it doesn't exist
|
|
79
|
+
*/
|
|
80
|
+
ensureDebugDirectory() {
|
|
81
|
+
const debugDir = path.join(process.cwd(), 'tmp', 'debug-ai');
|
|
82
|
+
if (!fs.existsSync(debugDir)) {
|
|
83
|
+
fs.mkdirSync(debugDir, { recursive: true });
|
|
84
|
+
}
|
|
85
|
+
return debugDir;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Generate unique identifier for debug files with operation context
|
|
89
|
+
*/
|
|
90
|
+
generateDebugId(operation) {
|
|
91
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '').split('T');
|
|
92
|
+
const dateTime = timestamp[0] + 'T' + timestamp[1].substring(0, 6);
|
|
93
|
+
const randomHex = crypto.randomBytes(4).toString('hex');
|
|
94
|
+
return `${dateTime}_${randomHex}_${operation}`;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Save AI interaction for debugging when DEBUG_DOT_AI=true
|
|
98
|
+
*/
|
|
99
|
+
debugLogInteraction(debugId, prompt, response, operation = 'ai_call') {
|
|
100
|
+
if (!this.debugMode)
|
|
101
|
+
return;
|
|
102
|
+
try {
|
|
103
|
+
const debugDir = this.ensureDebugDirectory();
|
|
104
|
+
// Save prompt with descriptive naming
|
|
105
|
+
const promptFile = path.join(debugDir, `${debugId}_prompt.md`);
|
|
106
|
+
fs.writeFileSync(promptFile, `# AI Prompt - ${operation}\n\nTimestamp: ${new Date().toISOString()}\nOperation: ${operation}\n\n---\n\n${prompt}`);
|
|
107
|
+
// Save response with matching naming
|
|
108
|
+
const responseFile = path.join(debugDir, `${debugId}_response.md`);
|
|
109
|
+
const responseContent = `# AI Response - ${operation}
|
|
110
|
+
|
|
111
|
+
Timestamp: ${new Date().toISOString()}
|
|
112
|
+
Operation: ${operation}
|
|
113
|
+
Input Tokens: ${response.usage.input_tokens}
|
|
114
|
+
Output Tokens: ${response.usage.output_tokens}
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
${response.content}`;
|
|
119
|
+
fs.writeFileSync(responseFile, responseContent);
|
|
120
|
+
console.log(`🐛 DEBUG: AI interaction logged to tmp/debug-ai/${debugId}_*.md`);
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.warn('Failed to log AI debug interaction:', error);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
async sendMessage(message, operation = 'generic') {
|
|
40
127
|
if (!this.client) {
|
|
41
128
|
throw new Error('Claude client not initialized due to missing API key');
|
|
42
129
|
}
|
|
@@ -63,32 +150,41 @@ class ClaudeIntegration {
|
|
|
63
150
|
}
|
|
64
151
|
};
|
|
65
152
|
this.conversationHistory.push({ role: 'assistant', content: response.content });
|
|
153
|
+
// Debug log the interaction if enabled
|
|
154
|
+
if (this.debugMode) {
|
|
155
|
+
const debugId = this.generateDebugId(operation);
|
|
156
|
+
this.debugLogInteraction(debugId, message, response, operation);
|
|
157
|
+
}
|
|
66
158
|
return response;
|
|
67
159
|
}
|
|
68
160
|
// For testing purposes, return mock responses
|
|
161
|
+
let response;
|
|
69
162
|
if (message.toLowerCase().includes('deploy a web application')) {
|
|
70
|
-
|
|
163
|
+
response = {
|
|
71
164
|
content: 'I can help you deploy a web application to Kubernetes. Let me guide you through the process of creating the necessary YAML manifests for your deployment.',
|
|
72
165
|
usage: { input_tokens: 10, output_tokens: 25 }
|
|
73
166
|
};
|
|
74
|
-
this.conversationHistory.push({ role: 'assistant', content: response.content });
|
|
75
|
-
return response;
|
|
76
167
|
}
|
|
77
|
-
if (message.toLowerCase().includes('recommended resources') &&
|
|
168
|
+
else if (message.toLowerCase().includes('recommended resources') &&
|
|
78
169
|
this.conversationHistory.some(msg => msg.content.toLowerCase().includes('nginx'))) {
|
|
79
|
-
|
|
170
|
+
response = {
|
|
80
171
|
content: 'For nginx deployment, I recommend starting with 2 replicas, 500m CPU and 512Mi memory per pod. You can adjust these based on your traffic patterns.',
|
|
81
172
|
usage: { input_tokens: 8, output_tokens: 30 }
|
|
82
173
|
};
|
|
83
|
-
this.conversationHistory.push({ role: 'assistant', content: response.content });
|
|
84
|
-
return response;
|
|
85
174
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
175
|
+
else {
|
|
176
|
+
// Default mock response
|
|
177
|
+
response = {
|
|
178
|
+
content: 'I understand you want help with Kubernetes deployment. Could you provide more specific details about what you\'d like to deploy?',
|
|
179
|
+
usage: { input_tokens: message.length / 4, output_tokens: 20 }
|
|
180
|
+
};
|
|
181
|
+
}
|
|
91
182
|
this.conversationHistory.push({ role: 'assistant', content: response.content });
|
|
183
|
+
// Debug log the interaction if enabled (for mocks too)
|
|
184
|
+
if (this.debugMode) {
|
|
185
|
+
const debugId = this.generateDebugId(`mock-${operation}`);
|
|
186
|
+
this.debugLogInteraction(debugId, message, response, `mock-${operation}`);
|
|
187
|
+
}
|
|
92
188
|
return response;
|
|
93
189
|
}
|
|
94
190
|
catch (error) {
|
package/dist/core/discovery.d.ts
CHANGED
|
@@ -13,12 +13,6 @@ export interface ResourceMap {
|
|
|
13
13
|
resources: EnhancedResource[];
|
|
14
14
|
custom: EnhancedCRD[];
|
|
15
15
|
}
|
|
16
|
-
export interface CRD {
|
|
17
|
-
name: string;
|
|
18
|
-
group: string;
|
|
19
|
-
version: string;
|
|
20
|
-
schema: any;
|
|
21
|
-
}
|
|
22
16
|
export interface EnhancedCRD {
|
|
23
17
|
name: string;
|
|
24
18
|
group: string;
|
|
@@ -126,7 +120,6 @@ export declare class KubernetesDiscovery {
|
|
|
126
120
|
discoverCRDs(options?: {
|
|
127
121
|
group?: string;
|
|
128
122
|
}): Promise<EnhancedCRD[]>;
|
|
129
|
-
discoverCRDDetails(): Promise<CRD[]>;
|
|
130
123
|
getAPIResources(options?: {
|
|
131
124
|
group?: string;
|
|
132
125
|
}): Promise<EnhancedResource[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAEL,aAAa,EAEd,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/core/discovery.js
CHANGED
|
@@ -305,24 +305,6 @@ class KubernetesDiscovery {
|
|
|
305
305
|
throw new Error(classified.enhancedMessage);
|
|
306
306
|
}
|
|
307
307
|
}
|
|
308
|
-
async discoverCRDDetails() {
|
|
309
|
-
if (!this.connected) {
|
|
310
|
-
throw new Error('Not connected to cluster');
|
|
311
|
-
}
|
|
312
|
-
try {
|
|
313
|
-
const apiExtensions = this.kc.makeApiClient(k8s.ApiextensionsV1Api);
|
|
314
|
-
const crdList = await apiExtensions.listCustomResourceDefinition();
|
|
315
|
-
return crdList.items.map((crd) => ({
|
|
316
|
-
name: crd.metadata?.name || '',
|
|
317
|
-
group: crd.spec.group,
|
|
318
|
-
version: crd.spec.versions[0]?.name || '',
|
|
319
|
-
schema: crd.spec.versions[0]?.schema || {}
|
|
320
|
-
}));
|
|
321
|
-
}
|
|
322
|
-
catch (error) {
|
|
323
|
-
return [];
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
308
|
async getAPIResources(options) {
|
|
327
309
|
if (!this.connected) {
|
|
328
310
|
throw new Error('Not connected to cluster');
|
|
@@ -40,10 +40,10 @@ export declare class EmbeddingService {
|
|
|
40
40
|
private provider;
|
|
41
41
|
constructor(config?: EmbeddingConfig);
|
|
42
42
|
/**
|
|
43
|
-
* Generate embedding for text
|
|
44
|
-
*
|
|
43
|
+
* Generate embedding for text
|
|
44
|
+
* Throws error if embeddings not available or generation fails
|
|
45
45
|
*/
|
|
46
|
-
generateEmbedding(text: string): Promise<number[]
|
|
46
|
+
generateEmbedding(text: string): Promise<number[]>;
|
|
47
47
|
/**
|
|
48
48
|
* Generate embeddings for multiple texts (optional enhancement)
|
|
49
49
|
* Returns empty array if embeddings not available
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../../src/core/embedding-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzD,WAAW,IAAI,OAAO,CAAC;IACvB,aAAa,IAAI,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAU;gBAEf,MAAM,GAAE,eAAoB;IAkBlC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BlD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAiC9D,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,MAAM;IAIvB,QAAQ,IAAI,MAAM;CAGnB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,MAAM,GAAE,eAAoB;IAUxC;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"embedding-service.d.ts","sourceRoot":"","sources":["../../src/core/embedding-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzD,WAAW,IAAI,OAAO,CAAC;IACvB,aAAa,IAAI,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,SAAS,CAAU;gBAEf,MAAM,GAAE,eAAoB;IAkBlC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA6BlD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAiC9D,WAAW,IAAI,OAAO;IAItB,aAAa,IAAI,MAAM;IAIvB,QAAQ,IAAI,MAAM;CAGnB;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,MAAM,GAAE,eAAoB;IAUxC;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAaxD;;;OAGG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAc9D;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,SAAS,IAAI;QACX,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;IAkBD;;OAEG;IACH,uBAAuB,CAAC,OAAO,EAAE;QAC/B,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,MAAM;CASX"}
|
|
@@ -118,20 +118,19 @@ class EmbeddingService {
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
/**
|
|
121
|
-
* Generate embedding for text
|
|
122
|
-
*
|
|
121
|
+
* Generate embedding for text
|
|
122
|
+
* Throws error if embeddings not available or generation fails
|
|
123
123
|
*/
|
|
124
124
|
async generateEmbedding(text) {
|
|
125
125
|
if (!this.isAvailable()) {
|
|
126
|
-
|
|
126
|
+
throw new Error('Embedding service not available');
|
|
127
127
|
}
|
|
128
128
|
try {
|
|
129
129
|
return await this.provider.generateEmbedding(text);
|
|
130
130
|
}
|
|
131
131
|
catch (error) {
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
return null;
|
|
132
|
+
// Throw error immediately - no silent fallback
|
|
133
|
+
throw new Error(`Embedding generation failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
135
134
|
}
|
|
136
135
|
}
|
|
137
136
|
/**
|
|
@@ -179,7 +178,7 @@ class EmbeddingService {
|
|
|
179
178
|
return {
|
|
180
179
|
available: false,
|
|
181
180
|
provider: null,
|
|
182
|
-
reason: 'OPENAI_API_KEY not set -
|
|
181
|
+
reason: 'OPENAI_API_KEY not set - vector operations will fail'
|
|
183
182
|
};
|
|
184
183
|
}
|
|
185
184
|
/**
|
package/dist/core/index.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ export { PatternCreationSessionManager } from './pattern-creation-session';
|
|
|
46
46
|
export { VectorDBService, VectorDBConfig, VectorDocument, SearchResult } from './vector-db-service';
|
|
47
47
|
export { BaseVectorService, BaseSearchOptions, BaseSearchResult } from './base-vector-service';
|
|
48
48
|
export { PatternVectorService, PatternSearchOptions, PatternSearchResult } from './pattern-vector-service';
|
|
49
|
+
export { CapabilityVectorService, ResourceCapability, CapabilitySearchOptions } from './capability-vector-service';
|
|
49
50
|
export { EmbeddingService, EmbeddingConfig, EmbeddingProvider, OpenAIEmbeddingProvider } from './embedding-service';
|
|
50
51
|
export default DotAI;
|
|
51
52
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAkB;IAErC,SAAgB,SAAS,EAAE,mBAAmB,CAAC;IAC/C,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAC1C,SAAgB,MAAM,EAAE;QACtB,MAAM,EAAE,YAAY,CAAC;QACrB,SAAS,EAAE,iBAAiB,CAAC;QAC7B,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACnC,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KACjD,CAAC;gBAEU,MAAM,GAAE,UAAe;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,WAAW,CAAkB;IAErC,SAAgB,SAAS,EAAE,mBAAmB,CAAC;IAC/C,SAAgB,MAAM,EAAE,YAAY,CAAC;IACrC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,MAAM,EAAE,iBAAiB,CAAC;IAC1C,SAAgB,MAAM,EAAE;QACtB,MAAM,EAAE,YAAY,CAAC;QACrB,SAAS,EAAE,iBAAiB,CAAC;QAC7B,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACnC,aAAa,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QACtD,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KACjD,CAAC;gBAEU,MAAM,GAAE,UAAe;IAmEnC,OAAO,CAAC,cAAc;IAMhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/C,aAAa,IAAI,OAAO;IAIxB,UAAU,IAAI,MAAM;IAIpB,kBAAkB,IAAI,MAAM,GAAG,SAAS;CAGzC;AAGD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC5G,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGpH,eAAe,KAAK,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Shared intelligence for both CLI and MCP interfaces
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.OpenAIEmbeddingProvider = exports.EmbeddingService = exports.PatternVectorService = exports.BaseVectorService = exports.VectorDBService = exports.PatternCreationSessionManager = exports.deserializePattern = exports.serializePattern = exports.createPattern = exports.validatePattern = exports.ResourceRecommender = exports.ManifestValidator = exports.SchemaParser = exports.ClaudeIntegration = exports.WorkflowEngine = exports.MemorySystem = exports.KubernetesDiscovery = exports.DotAI = void 0;
|
|
8
|
+
exports.OpenAIEmbeddingProvider = exports.EmbeddingService = exports.CapabilityVectorService = exports.PatternVectorService = exports.BaseVectorService = exports.VectorDBService = exports.PatternCreationSessionManager = exports.deserializePattern = exports.serializePattern = exports.createPattern = exports.validatePattern = exports.ResourceRecommender = exports.ManifestValidator = exports.SchemaParser = exports.ClaudeIntegration = exports.WorkflowEngine = exports.MemorySystem = exports.KubernetesDiscovery = exports.DotAI = void 0;
|
|
9
9
|
const discovery_1 = require("./discovery");
|
|
10
10
|
const memory_1 = require("./memory");
|
|
11
11
|
const workflow_1 = require("./workflow");
|
|
@@ -70,10 +70,9 @@ class DotAI {
|
|
|
70
70
|
if (!ranker) {
|
|
71
71
|
throw new Error('ResourceRanker not available. ANTHROPIC_API_KEY is required for AI-powered ranking.');
|
|
72
72
|
}
|
|
73
|
-
// Create discovery
|
|
74
|
-
const discoverResourcesFn = async () => await this.discovery.discoverResources();
|
|
73
|
+
// Create discovery function with proper binding
|
|
75
74
|
const explainResourceFn = async (resource) => await this.discovery.explainResource(resource);
|
|
76
|
-
return await ranker.findBestSolutions(intent,
|
|
75
|
+
return await ranker.findBestSolutions(intent, explainResourceFn);
|
|
77
76
|
}
|
|
78
77
|
};
|
|
79
78
|
}
|
|
@@ -144,6 +143,8 @@ var base_vector_service_1 = require("./base-vector-service");
|
|
|
144
143
|
Object.defineProperty(exports, "BaseVectorService", { enumerable: true, get: function () { return base_vector_service_1.BaseVectorService; } });
|
|
145
144
|
var pattern_vector_service_1 = require("./pattern-vector-service");
|
|
146
145
|
Object.defineProperty(exports, "PatternVectorService", { enumerable: true, get: function () { return pattern_vector_service_1.PatternVectorService; } });
|
|
146
|
+
var capability_vector_service_1 = require("./capability-vector-service");
|
|
147
|
+
Object.defineProperty(exports, "CapabilityVectorService", { enumerable: true, get: function () { return capability_vector_service_1.CapabilityVectorService; } });
|
|
147
148
|
var embedding_service_1 = require("./embedding-service");
|
|
148
149
|
Object.defineProperty(exports, "EmbeddingService", { enumerable: true, get: function () { return embedding_service_1.EmbeddingService; } });
|
|
149
150
|
Object.defineProperty(exports, "OpenAIEmbeddingProvider", { enumerable: true, get: function () { return embedding_service_1.OpenAIEmbeddingProvider; } });
|
package/dist/core/schema.d.ts
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* Fetches structured OpenAPI schemas from Kubernetes API server and validates manifests
|
|
6
6
|
*/
|
|
7
7
|
import { ResourceExplanation } from './discovery';
|
|
8
|
-
import { OrganizationalPattern } from './pattern-types';
|
|
9
8
|
export interface FieldConstraints {
|
|
10
9
|
minimum?: number;
|
|
11
10
|
maximum?: number;
|
|
@@ -78,21 +77,6 @@ export interface QuestionGroup {
|
|
|
78
77
|
answer?: string;
|
|
79
78
|
};
|
|
80
79
|
}
|
|
81
|
-
export interface DeploymentConcept {
|
|
82
|
-
category: 'application_architecture' | 'infrastructure' | 'operational' | 'technology';
|
|
83
|
-
concept: string;
|
|
84
|
-
importance: 'high' | 'medium' | 'low';
|
|
85
|
-
keywords: string[];
|
|
86
|
-
}
|
|
87
|
-
export interface ConceptExtractionResult {
|
|
88
|
-
concepts: DeploymentConcept[];
|
|
89
|
-
}
|
|
90
|
-
export interface PatternMatch {
|
|
91
|
-
pattern: OrganizationalPattern;
|
|
92
|
-
score: number;
|
|
93
|
-
matchedConcept: DeploymentConcept;
|
|
94
|
-
matchType: 'keyword' | 'semantic' | 'hybrid';
|
|
95
|
-
}
|
|
96
80
|
export interface PatternInfluence {
|
|
97
81
|
patternId: string;
|
|
98
82
|
description: string;
|
|
@@ -114,10 +98,6 @@ export interface ResourceSolution {
|
|
|
114
98
|
export interface AIRankingConfig {
|
|
115
99
|
claudeApiKey: string;
|
|
116
100
|
}
|
|
117
|
-
export interface DiscoveryFunctions {
|
|
118
|
-
discoverResources: () => Promise<any>;
|
|
119
|
-
explainResource: (resource: string) => Promise<any>;
|
|
120
|
-
}
|
|
121
101
|
export interface ClusterOptions {
|
|
122
102
|
namespaces: string[];
|
|
123
103
|
storageClasses: string[];
|
|
@@ -172,28 +152,29 @@ export declare class ResourceRecommender {
|
|
|
172
152
|
private claudeIntegration;
|
|
173
153
|
private config;
|
|
174
154
|
private patternService?;
|
|
155
|
+
private capabilityService?;
|
|
175
156
|
constructor(config: AIRankingConfig);
|
|
176
157
|
/**
|
|
177
158
|
* Find the best resource solution(s) for user intent using two-phase analysis
|
|
178
159
|
*/
|
|
179
|
-
findBestSolutions(intent: string,
|
|
160
|
+
findBestSolutions(intent: string, explainResource: (resource: string) => Promise<any>): Promise<ResourceSolution[]>;
|
|
180
161
|
/**
|
|
181
|
-
*
|
|
182
|
-
* Returns empty array if Vector DB is not available - this is completely optional
|
|
162
|
+
* Extract Kubernetes kind from resource name (e.g., "sqls.devopstoolkit.live" -> "SQL")
|
|
183
163
|
*/
|
|
184
|
-
private
|
|
164
|
+
private extractKindFromResourceName;
|
|
185
165
|
/**
|
|
186
|
-
* Extract
|
|
166
|
+
* Extract group from resource name (e.g., "sqls.devopstoolkit.live" -> "devopstoolkit.live")
|
|
187
167
|
*/
|
|
188
|
-
private
|
|
168
|
+
private extractGroupFromResourceName;
|
|
189
169
|
/**
|
|
190
|
-
*
|
|
170
|
+
* Construct API version from resource name (simplified approach)
|
|
191
171
|
*/
|
|
192
|
-
private
|
|
172
|
+
private constructApiVersionFromResourceName;
|
|
193
173
|
/**
|
|
194
|
-
*
|
|
174
|
+
* Phase 0: Search for relevant organizational patterns using multi-concept approach
|
|
175
|
+
* Returns empty array if Vector DB is not available - this is completely optional
|
|
195
176
|
*/
|
|
196
|
-
private
|
|
177
|
+
private searchRelevantPatterns;
|
|
197
178
|
/**
|
|
198
179
|
* Phase 1: AI selects promising resource candidates from lightweight list
|
|
199
180
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/core/schema.ts"],"names":[],"mappings":"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"}
|