@vfarcic/dot-ai 0.44.0 → 0.45.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 (48) hide show
  1. package/README.md +33 -8
  2. package/dist/core/embedding-service.d.ts +80 -0
  3. package/dist/core/embedding-service.d.ts.map +1 -0
  4. package/dist/core/embedding-service.js +198 -0
  5. package/dist/core/index.d.ts +7 -0
  6. package/dist/core/index.d.ts.map +1 -1
  7. package/dist/core/index.js +15 -1
  8. package/dist/core/pattern-creation-session.d.ts +43 -0
  9. package/dist/core/pattern-creation-session.d.ts.map +1 -0
  10. package/dist/core/pattern-creation-session.js +312 -0
  11. package/dist/core/pattern-creation-types.d.ts +30 -0
  12. package/dist/core/pattern-creation-types.d.ts.map +1 -0
  13. package/dist/core/pattern-creation-types.js +8 -0
  14. package/dist/core/pattern-operations.d.ts +11 -0
  15. package/dist/core/pattern-operations.d.ts.map +1 -0
  16. package/dist/core/pattern-operations.js +74 -0
  17. package/dist/core/pattern-types.d.ts +17 -0
  18. package/dist/core/pattern-types.d.ts.map +1 -0
  19. package/dist/core/pattern-types.js +8 -0
  20. package/dist/core/pattern-vector-service.d.ts +97 -0
  21. package/dist/core/pattern-vector-service.d.ts.map +1 -0
  22. package/dist/core/pattern-vector-service.js +302 -0
  23. package/dist/core/schema.d.ts +43 -0
  24. package/dist/core/schema.d.ts.map +1 -1
  25. package/dist/core/schema.js +176 -9
  26. package/dist/core/vector-db-service.d.ts +81 -0
  27. package/dist/core/vector-db-service.d.ts.map +1 -0
  28. package/dist/core/vector-db-service.js +299 -0
  29. package/dist/interfaces/mcp.d.ts.map +1 -1
  30. package/dist/interfaces/mcp.js +10 -2
  31. package/dist/tools/index.d.ts +1 -0
  32. package/dist/tools/index.d.ts.map +1 -1
  33. package/dist/tools/index.js +6 -1
  34. package/dist/tools/organizational-data.d.ts +27 -0
  35. package/dist/tools/organizational-data.d.ts.map +1 -0
  36. package/dist/tools/organizational-data.js +470 -0
  37. package/dist/tools/recommend.d.ts.map +1 -1
  38. package/dist/tools/recommend.js +13 -2
  39. package/dist/tools/version.d.ts +26 -3
  40. package/dist/tools/version.d.ts.map +1 -1
  41. package/dist/tools/version.js +161 -8
  42. package/package.json +3 -1
  43. package/prompts/concept-extraction.md +91 -0
  44. package/prompts/doc-testing-test-section.md +78 -226
  45. package/prompts/resource-selection.md +4 -0
  46. package/prompts/resource-solution-ranking.md +66 -2
  47. package/shared-prompts/prd-start.md +68 -3
  48. package/shared-prompts/prd-update-progress.md +50 -4
package/README.md CHANGED
@@ -12,7 +12,7 @@ DevOps AI Toolkit is an AI-powered development productivity platform that enhanc
12
12
 
13
13
  ### Kubernetes Deployment
14
14
  - **Developers**: Deploy applications without needing deep Kubernetes expertise
15
- - **Platform Engineers**: *(Coming Soon)* Governance, policy enforcement, and organizational compliance features
15
+ - **Platform Engineers**: Create organizational deployment patterns that enhance AI recommendations with institutional knowledge and best practices
16
16
 
17
17
  ### Documentation Testing
18
18
  - **Documentation Maintainers**: Automatically validate documentation accuracy and catch outdated content
@@ -41,6 +41,12 @@ DevOps AI Toolkit is an AI-powered development productivity platform that enhanc
41
41
  🛠️ **Fix Application**: User-driven selection and application of recommended documentation improvements
42
42
  💾 **Session Management**: Resumable testing workflows for large documentation sets
43
43
 
44
+ ### Organizational Pattern Management
45
+ 🏛️ **Pattern Creation**: Define organizational deployment patterns that capture institutional knowledge
46
+ 🧠 **AI Enhancement**: Patterns automatically enhance deployment recommendations with organizational context
47
+ 🔍 **Semantic Search**: Uses Vector DB technology for intelligent pattern matching based on user intent
48
+ 📋 **Best Practices**: Share deployment standards across teams through reusable patterns
49
+
44
50
  ### Shared Prompts Library
45
51
  🎯 **Native Slash Commands**: Prompts appear as `/dot-ai:prompt-name` in your coding agent
46
52
  📚 **Curated Library**: Access proven prompts for code review, documentation, architecture, and project management
@@ -49,7 +55,7 @@ DevOps AI Toolkit is an AI-powered development productivity platform that enhanc
49
55
 
50
56
  ### AI Integration
51
57
  ⚡ **MCP Integration**: Works seamlessly with Claude Code, Cursor, or VS Code through Model Context Protocol
52
- 🤖 **Conversational Interface**: Natural language interaction for deployment, documentation testing, and shared prompt workflows
58
+ 🤖 **Conversational Interface**: Natural language interaction for deployment, documentation testing, pattern management, and shared prompt workflows
53
59
 
54
60
  **Setup Required**: See the [MCP Setup Guide](./docs/mcp-setup.md) for complete configuration instructions.
55
61
 
@@ -64,18 +70,23 @@ DevOps AI Toolkit is an AI-powered development productivity platform that enhanc
64
70
  - Set it as environment variable: `export ANTHROPIC_API_KEY=your_api_key_here`
65
71
 
66
72
  **For shared prompts library:**
67
- - **No API key required** - Works with any MCP-enabled coding agent
73
+ - **No API key required** - Works with any MCP-enabled coding agent (other features like deployments do require ANTHROPIC_API_KEY)
68
74
 
69
75
  **For Kubernetes deployment recommendations:**
70
76
  - **kubectl** configured with cluster access
71
77
  - Verify cluster access with: `kubectl get nodes`
72
78
  - Should show your cluster nodes without authentication errors
73
- <!-- dotai-ignore: kubectl requirement not verifiable in current environment -->
79
+ <!-- dotai-ignore: kubectl verification command output format - implementation-specific -->
74
80
 
75
81
  **For documentation testing:**
76
82
  - **Documentation files** to test (Markdown, HTML, etc.)
77
83
  - **File system access** to the documentation you want to validate
78
84
 
85
+ **For organizational pattern management:**
86
+ - **Vector DB service** (Qdrant) for pattern storage and semantic search
87
+ - **OpenAI API key** (optional) for semantic pattern matching - falls back to keyword matching if not available
88
+ - See the [Pattern Management Guide](./docs/pattern-management-guide.md) for complete setup
89
+
79
90
  ### Installation
80
91
 
81
92
  DevOps AI Toolkit is designed to be used through AI development tools via MCP (Model Context Protocol). No direct installation needed - simply configure your AI tool to connect to the MCP server.
@@ -96,17 +107,30 @@ Perfect for conversational AI-driven workflows:
96
107
  "env": {
97
108
  "ANTHROPIC_API_KEY": "your_key_here",
98
109
  "DOT_AI_SESSION_DIR": "./tmp/sessions",
99
- "KUBECONFIG": "~/.kube/config"
110
+ "KUBECONFIG": "~/.kube/config",
111
+ "QDRANT_URL": "https://your-cluster.qdrant.io",
112
+ "QDRANT_API_KEY": "your_qdrant_key",
113
+ "OPENAI_API_KEY": "sk-proj-your_openai_key"
100
114
  }
101
115
  }
102
116
  }
103
117
  }
104
118
  ```
105
119
 
120
+ **Note**: Replace all placeholder values (like `your_key_here`, `your-cluster.qdrant.io`) with your actual API keys and service URLs.
121
+
122
+ **Environment Variable Setup**: You can set these variables either:
123
+ - **In the `.mcp.json` file** (as shown above in the `env` section), OR
124
+ - **As shell environment variables** (e.g., `export ANTHROPIC_API_KEY=your_key_here`), OR
125
+ - **A combination of both** (shell variables take precedence)
126
+
106
127
  **Environment Variables:**
107
- - `ANTHROPIC_API_KEY`: Required for AI analysis (both features)
128
+ - `ANTHROPIC_API_KEY`: Required for AI analysis (Kubernetes deployments, documentation testing, pattern management). Not required for shared prompts library.
108
129
  - `DOT_AI_SESSION_DIR`: Required session directory (relative paths are relative to where the AI agent is started)
109
130
  - `KUBECONFIG`: Optional kubeconfig path for Kubernetes deployments (adjust to your actual kubeconfig location, defaults to `~/.kube/config`)
131
+ - `QDRANT_URL`: Required for pattern management - Vector DB endpoint
132
+ - `QDRANT_API_KEY`: Required for pattern management - Vector DB authentication
133
+ - `OPENAI_API_KEY`: Optional for semantic pattern matching - enables enhanced pattern search
110
134
 
111
135
  2. **Start Claude Code with MCP enabled:**
112
136
  ```bash
@@ -115,8 +139,9 @@ mkdir -p tmp/sessions
115
139
 
116
140
  claude
117
141
 
118
- # Verify MCP server connection
119
- # You should see "dot-ai" listed as an available MCP server
142
+ # Verify MCP server connection by running `/mcp` command
143
+ # Example: type `/mcp` in Claude Code to see server status
144
+ # Expected output shows "dot-ai" server connected with available tools
120
145
  ```
121
146
 
122
147
  3. **Use conversational workflows:**
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Embedding Service
3
+ *
4
+ * Optional semantic search enhancement for pattern matching.
5
+ * Gracefully falls back to keyword-only search when OpenAI API key is not available.
6
+ */
7
+ export interface EmbeddingConfig {
8
+ provider?: 'openai';
9
+ apiKey?: string;
10
+ model?: string;
11
+ dimensions?: number;
12
+ }
13
+ export interface EmbeddingProvider {
14
+ generateEmbedding(text: string): Promise<number[]>;
15
+ generateEmbeddings(texts: string[]): Promise<number[][]>;
16
+ isAvailable(): boolean;
17
+ getDimensions(): number;
18
+ }
19
+ /**
20
+ * OpenAI Embedding Provider
21
+ * Optional provider for semantic search enhancement
22
+ */
23
+ export declare class OpenAIEmbeddingProvider implements EmbeddingProvider {
24
+ private client;
25
+ private model;
26
+ private dimensions;
27
+ private available;
28
+ constructor(config?: EmbeddingConfig);
29
+ generateEmbedding(text: string): Promise<number[]>;
30
+ generateEmbeddings(texts: string[]): Promise<number[][]>;
31
+ isAvailable(): boolean;
32
+ getDimensions(): number;
33
+ getModel(): string;
34
+ }
35
+ /**
36
+ * Main Embedding Service
37
+ * Provides optional semantic search capabilities with graceful degradation
38
+ */
39
+ export declare class EmbeddingService {
40
+ private provider;
41
+ constructor(config?: EmbeddingConfig);
42
+ /**
43
+ * Generate embedding for text (optional enhancement)
44
+ * Returns null if embeddings not available - caller should handle gracefully
45
+ */
46
+ generateEmbedding(text: string): Promise<number[] | null>;
47
+ /**
48
+ * Generate embeddings for multiple texts (optional enhancement)
49
+ * Returns empty array if embeddings not available
50
+ */
51
+ generateEmbeddings(texts: string[]): Promise<number[][]>;
52
+ /**
53
+ * Check if semantic search is available
54
+ */
55
+ isAvailable(): boolean;
56
+ /**
57
+ * Get embedding dimensions (if available)
58
+ */
59
+ getDimensions(): number;
60
+ /**
61
+ * Get status information for debugging/logging
62
+ */
63
+ getStatus(): {
64
+ available: boolean;
65
+ provider: string | null;
66
+ model?: string;
67
+ dimensions?: number;
68
+ reason?: string;
69
+ };
70
+ /**
71
+ * Create searchable text from pattern data
72
+ */
73
+ createPatternSearchText(pattern: {
74
+ description: string;
75
+ triggers: string[];
76
+ suggestedResources: string[];
77
+ rationale: string;
78
+ }): string;
79
+ }
80
+ //# sourceMappingURL=embedding-service.d.ts.map
@@ -0,0 +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,GAAG,IAAI,CAAC;IAc/D;;;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"}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ /**
3
+ * Embedding Service
4
+ *
5
+ * Optional semantic search enhancement for pattern matching.
6
+ * Gracefully falls back to keyword-only search when OpenAI API key is not available.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.EmbeddingService = exports.OpenAIEmbeddingProvider = void 0;
13
+ const openai_1 = __importDefault(require("openai"));
14
+ /**
15
+ * OpenAI Embedding Provider
16
+ * Optional provider for semantic search enhancement
17
+ */
18
+ class OpenAIEmbeddingProvider {
19
+ client = null;
20
+ model;
21
+ dimensions;
22
+ available;
23
+ constructor(config = {}) {
24
+ const apiKey = config.apiKey || process.env.OPENAI_API_KEY;
25
+ this.model = config.model || 'text-embedding-3-small';
26
+ this.dimensions = config.dimensions || 1536; // text-embedding-3-small default
27
+ this.available = false;
28
+ if (apiKey) {
29
+ try {
30
+ this.client = new openai_1.default({ apiKey: apiKey });
31
+ this.available = true;
32
+ }
33
+ catch (error) {
34
+ // Client creation failed, remain unavailable
35
+ this.available = false;
36
+ this.client = null;
37
+ }
38
+ }
39
+ }
40
+ async generateEmbedding(text) {
41
+ if (!this.isAvailable()) {
42
+ throw new Error('OpenAI embedding provider not available');
43
+ }
44
+ if (!text || text.trim().length === 0) {
45
+ throw new Error('Text cannot be empty for embedding generation');
46
+ }
47
+ try {
48
+ const response = await this.client.embeddings.create({
49
+ model: this.model,
50
+ input: text.trim(),
51
+ encoding_format: 'float'
52
+ });
53
+ if (!response.data || response.data.length === 0) {
54
+ throw new Error('No embedding data returned from OpenAI API');
55
+ }
56
+ return response.data[0].embedding;
57
+ }
58
+ catch (error) {
59
+ if (error instanceof Error) {
60
+ throw new Error(`OpenAI embedding failed: ${error.message}`);
61
+ }
62
+ throw new Error(`OpenAI embedding failed: ${String(error)}`);
63
+ }
64
+ }
65
+ async generateEmbeddings(texts) {
66
+ if (!this.isAvailable()) {
67
+ throw new Error('OpenAI embedding provider not available');
68
+ }
69
+ if (!texts || texts.length === 0) {
70
+ return [];
71
+ }
72
+ const validTexts = texts
73
+ .map(t => t?.trim())
74
+ .filter(t => t && t.length > 0);
75
+ if (validTexts.length === 0) {
76
+ return [];
77
+ }
78
+ try {
79
+ const response = await this.client.embeddings.create({
80
+ model: this.model,
81
+ input: validTexts,
82
+ encoding_format: 'float'
83
+ });
84
+ return response.data.map(item => item.embedding);
85
+ }
86
+ catch (error) {
87
+ if (error instanceof Error) {
88
+ throw new Error(`OpenAI batch embedding failed: ${error.message}`);
89
+ }
90
+ throw new Error(`OpenAI batch embedding failed: ${String(error)}`);
91
+ }
92
+ }
93
+ isAvailable() {
94
+ return this.available && this.client !== null;
95
+ }
96
+ getDimensions() {
97
+ return this.dimensions;
98
+ }
99
+ getModel() {
100
+ return this.model;
101
+ }
102
+ }
103
+ exports.OpenAIEmbeddingProvider = OpenAIEmbeddingProvider;
104
+ /**
105
+ * Main Embedding Service
106
+ * Provides optional semantic search capabilities with graceful degradation
107
+ */
108
+ class EmbeddingService {
109
+ provider;
110
+ constructor(config = {}) {
111
+ // Try to initialize OpenAI provider, but don't fail if unavailable
112
+ try {
113
+ const provider = new OpenAIEmbeddingProvider(config);
114
+ this.provider = provider.isAvailable() ? provider : null;
115
+ }
116
+ catch (error) {
117
+ this.provider = null;
118
+ }
119
+ }
120
+ /**
121
+ * Generate embedding for text (optional enhancement)
122
+ * Returns null if embeddings not available - caller should handle gracefully
123
+ */
124
+ async generateEmbedding(text) {
125
+ if (!this.isAvailable()) {
126
+ return null;
127
+ }
128
+ try {
129
+ return await this.provider.generateEmbedding(text);
130
+ }
131
+ catch (error) {
132
+ // Log error but don't throw - allow graceful fallback
133
+ console.warn('Embedding generation failed, falling back to keyword search:', error);
134
+ return null;
135
+ }
136
+ }
137
+ /**
138
+ * Generate embeddings for multiple texts (optional enhancement)
139
+ * Returns empty array if embeddings not available
140
+ */
141
+ async generateEmbeddings(texts) {
142
+ if (!this.isAvailable()) {
143
+ return [];
144
+ }
145
+ try {
146
+ return await this.provider.generateEmbeddings(texts);
147
+ }
148
+ catch (error) {
149
+ // Log error but don't throw - allow graceful fallback
150
+ console.warn('Batch embedding generation failed, falling back to keyword search:', error);
151
+ return [];
152
+ }
153
+ }
154
+ /**
155
+ * Check if semantic search is available
156
+ */
157
+ isAvailable() {
158
+ return this.provider !== null && this.provider.isAvailable();
159
+ }
160
+ /**
161
+ * Get embedding dimensions (if available)
162
+ */
163
+ getDimensions() {
164
+ return this.provider?.getDimensions() || 1536;
165
+ }
166
+ /**
167
+ * Get status information for debugging/logging
168
+ */
169
+ getStatus() {
170
+ if (this.isAvailable()) {
171
+ const openaiProvider = this.provider;
172
+ return {
173
+ available: true,
174
+ provider: 'openai',
175
+ model: openaiProvider.getModel(),
176
+ dimensions: openaiProvider.getDimensions()
177
+ };
178
+ }
179
+ return {
180
+ available: false,
181
+ provider: null,
182
+ reason: 'OPENAI_API_KEY not set - using keyword-only pattern search'
183
+ };
184
+ }
185
+ /**
186
+ * Create searchable text from pattern data
187
+ */
188
+ createPatternSearchText(pattern) {
189
+ return [
190
+ pattern.description,
191
+ ...pattern.triggers,
192
+ pattern.rationale,
193
+ // Include resource types for better semantic matching
194
+ ...pattern.suggestedResources.map(r => `kubernetes ${r.toLowerCase()}`)
195
+ ].join(' ').trim();
196
+ }
197
+ }
198
+ exports.EmbeddingService = EmbeddingService;
@@ -38,5 +38,12 @@ export { MemorySystem } from './memory';
38
38
  export { WorkflowEngine } from './workflow';
39
39
  export { ClaudeIntegration } from './claude';
40
40
  export { SchemaParser, ManifestValidator, ResourceRecommender } from './schema';
41
+ export { OrganizationalPattern, CreatePatternRequest } from './pattern-types';
42
+ export { validatePattern, createPattern, serializePattern, deserializePattern } from './pattern-operations';
43
+ export { PatternCreationStep, PatternCreationSession, PatternWorkflowStep } from './pattern-creation-types';
44
+ export { PatternCreationSessionManager } from './pattern-creation-session';
45
+ export { VectorDBService, VectorDBConfig, VectorDocument, SearchResult } from './vector-db-service';
46
+ export { PatternVectorService, PatternSearchOptions, PatternSearchResult } from './pattern-vector-service';
47
+ export { EmbeddingService, EmbeddingConfig, EmbeddingProvider, OpenAIEmbeddingProvider } from './embedding-service';
41
48
  export default DotAI;
42
49
  //# sourceMappingURL=index.d.ts.map
@@ -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;IAoEnC,OAAO,CAAC,cAAc;IAMhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC,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;AAGhF,eAAe,KAAK,CAAC"}
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;IAoEnC,OAAO,CAAC,cAAc;IAMhB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAcjC,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,oBAAoB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3G,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGpH,eAAe,KAAK,CAAC"}
@@ -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.ResourceRecommender = exports.ManifestValidator = exports.SchemaParser = exports.ClaudeIntegration = exports.WorkflowEngine = exports.MemorySystem = exports.KubernetesDiscovery = exports.DotAI = void 0;
8
+ exports.OpenAIEmbeddingProvider = exports.EmbeddingService = exports.PatternVectorService = 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");
@@ -119,5 +119,19 @@ var schema_2 = require("./schema");
119
119
  Object.defineProperty(exports, "SchemaParser", { enumerable: true, get: function () { return schema_2.SchemaParser; } });
120
120
  Object.defineProperty(exports, "ManifestValidator", { enumerable: true, get: function () { return schema_2.ManifestValidator; } });
121
121
  Object.defineProperty(exports, "ResourceRecommender", { enumerable: true, get: function () { return schema_2.ResourceRecommender; } });
122
+ var pattern_operations_1 = require("./pattern-operations");
123
+ Object.defineProperty(exports, "validatePattern", { enumerable: true, get: function () { return pattern_operations_1.validatePattern; } });
124
+ Object.defineProperty(exports, "createPattern", { enumerable: true, get: function () { return pattern_operations_1.createPattern; } });
125
+ Object.defineProperty(exports, "serializePattern", { enumerable: true, get: function () { return pattern_operations_1.serializePattern; } });
126
+ Object.defineProperty(exports, "deserializePattern", { enumerable: true, get: function () { return pattern_operations_1.deserializePattern; } });
127
+ var pattern_creation_session_1 = require("./pattern-creation-session");
128
+ Object.defineProperty(exports, "PatternCreationSessionManager", { enumerable: true, get: function () { return pattern_creation_session_1.PatternCreationSessionManager; } });
129
+ var vector_db_service_1 = require("./vector-db-service");
130
+ Object.defineProperty(exports, "VectorDBService", { enumerable: true, get: function () { return vector_db_service_1.VectorDBService; } });
131
+ var pattern_vector_service_1 = require("./pattern-vector-service");
132
+ Object.defineProperty(exports, "PatternVectorService", { enumerable: true, get: function () { return pattern_vector_service_1.PatternVectorService; } });
133
+ var embedding_service_1 = require("./embedding-service");
134
+ Object.defineProperty(exports, "EmbeddingService", { enumerable: true, get: function () { return embedding_service_1.EmbeddingService; } });
135
+ Object.defineProperty(exports, "OpenAIEmbeddingProvider", { enumerable: true, get: function () { return embedding_service_1.OpenAIEmbeddingProvider; } });
122
136
  // Default export
123
137
  exports.default = DotAI;
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Pattern Creation Session Manager
3
+ *
4
+ * Handles step-by-step pattern creation workflow with context-aware questions
5
+ * and AI-powered trigger expansion.
6
+ */
7
+ import { PatternCreationSession, PatternWorkflowStep } from './pattern-creation-types';
8
+ export declare class PatternCreationSessionManager {
9
+ /**
10
+ * Create a new pattern creation session
11
+ */
12
+ createSession(args: any): PatternCreationSession;
13
+ /**
14
+ * Load existing session
15
+ */
16
+ loadSession(sessionId: string, args: any): PatternCreationSession | null;
17
+ /**
18
+ * Save session to disk
19
+ */
20
+ private saveSession;
21
+ /**
22
+ * Process user response and move to next step
23
+ */
24
+ processResponse(sessionId: string, response: string, args: any): PatternWorkflowStep | null;
25
+ /**
26
+ * Get the next workflow step for the session
27
+ */
28
+ getNextStep(sessionId: string, args: any): PatternWorkflowStep | null;
29
+ /**
30
+ * Generate trigger expansion step with AI suggestions
31
+ */
32
+ private generateTriggerExpansionStep;
33
+ /**
34
+ * Generate review prompt showing complete pattern
35
+ */
36
+ private generateReviewPrompt;
37
+ /**
38
+ * Complete pattern creation and return success result
39
+ */
40
+ private completePattern;
41
+ private generateSessionId;
42
+ }
43
+ //# sourceMappingURL=pattern-creation-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-creation-session.d.ts","sourceRoot":"","sources":["../../src/core/pattern-creation-session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAIlC,qBAAa,6BAA6B;IAExC;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,sBAAsB;IAiBhD;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,sBAAsB,GAAG,IAAI;IAgBxE;;OAEG;IACH,OAAO,CAAC,WAAW;IAcnB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,mBAAmB,GAAG,IAAI;IA+D3F;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,mBAAmB,GAAG,IAAI;IAwErE;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiCpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyCvB,OAAO,CAAC,iBAAiB;CAG1B"}