@autonoma-io/a6s 5.1.2

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 (92) hide show
  1. package/README.md +200 -0
  2. package/bin/binaries/a6s-darwin-amd64 +0 -0
  3. package/bin/binaries/a6s-darwin-arm64 +0 -0
  4. package/bin/binaries/a6s-linux-amd64 +0 -0
  5. package/bin/binaries/a6s-linux-arm64 +0 -0
  6. package/bin/binaries/a6s-win32-x64.exe +0 -0
  7. package/dist/commands/ai-learning-demo.d.ts +3 -0
  8. package/dist/commands/ai-learning-demo.d.ts.map +1 -0
  9. package/dist/commands/ai-learning-demo.js +176 -0
  10. package/dist/commands/ai-learning-demo.js.map +1 -0
  11. package/dist/commands/auth.d.ts +33 -0
  12. package/dist/commands/auth.d.ts.map +1 -0
  13. package/dist/commands/auth.js +603 -0
  14. package/dist/commands/auth.js.map +1 -0
  15. package/dist/consent/consent.d.ts +74 -0
  16. package/dist/consent/consent.d.ts.map +1 -0
  17. package/dist/consent/consent.js +184 -0
  18. package/dist/consent/consent.js.map +1 -0
  19. package/dist/consent/disclosure.d.ts +26 -0
  20. package/dist/consent/disclosure.d.ts.map +1 -0
  21. package/dist/consent/disclosure.js +170 -0
  22. package/dist/consent/disclosure.js.map +1 -0
  23. package/dist/consent/ignore.d.ts +50 -0
  24. package/dist/consent/ignore.d.ts.map +1 -0
  25. package/dist/consent/ignore.js +277 -0
  26. package/dist/consent/ignore.js.map +1 -0
  27. package/dist/consent/index.d.ts +4 -0
  28. package/dist/consent/index.d.ts.map +1 -0
  29. package/dist/consent/index.js +23 -0
  30. package/dist/consent/index.js.map +1 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +390 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/interactive.d.ts +19 -0
  36. package/dist/interactive.d.ts.map +1 -0
  37. package/dist/interactive.js +367 -0
  38. package/dist/interactive.js.map +1 -0
  39. package/dist/modules/ab-testing.d.ts +16 -0
  40. package/dist/modules/ab-testing.d.ts.map +1 -0
  41. package/dist/modules/ab-testing.js +375 -0
  42. package/dist/modules/ab-testing.js.map +1 -0
  43. package/dist/modules/ai-orchestration.d.ts +70 -0
  44. package/dist/modules/ai-orchestration.d.ts.map +1 -0
  45. package/dist/modules/ai-orchestration.js +546 -0
  46. package/dist/modules/ai-orchestration.js.map +1 -0
  47. package/dist/modules/auth-access-control.d.ts +118 -0
  48. package/dist/modules/auth-access-control.d.ts.map +1 -0
  49. package/dist/modules/auth-access-control.js +832 -0
  50. package/dist/modules/auth-access-control.js.map +1 -0
  51. package/dist/modules/campaign.d.ts +20 -0
  52. package/dist/modules/campaign.d.ts.map +1 -0
  53. package/dist/modules/campaign.js +301 -0
  54. package/dist/modules/campaign.js.map +1 -0
  55. package/dist/modules/database.d.ts +14 -0
  56. package/dist/modules/database.d.ts.map +1 -0
  57. package/dist/modules/database.js +253 -0
  58. package/dist/modules/database.js.map +1 -0
  59. package/dist/modules/deployment.d.ts +17 -0
  60. package/dist/modules/deployment.d.ts.map +1 -0
  61. package/dist/modules/deployment.js +201 -0
  62. package/dist/modules/deployment.js.map +1 -0
  63. package/dist/modules/edge-computing.d.ts +130 -0
  64. package/dist/modules/edge-computing.d.ts.map +1 -0
  65. package/dist/modules/edge-computing.js +672 -0
  66. package/dist/modules/edge-computing.js.map +1 -0
  67. package/dist/modules/load-testing.d.ts +21 -0
  68. package/dist/modules/load-testing.d.ts.map +1 -0
  69. package/dist/modules/load-testing.js +372 -0
  70. package/dist/modules/load-testing.js.map +1 -0
  71. package/dist/modules/monitoring.d.ts +18 -0
  72. package/dist/modules/monitoring.d.ts.map +1 -0
  73. package/dist/modules/monitoring.js +375 -0
  74. package/dist/modules/monitoring.js.map +1 -0
  75. package/dist/modules/onboarding.d.ts +20 -0
  76. package/dist/modules/onboarding.d.ts.map +1 -0
  77. package/dist/modules/onboarding.js +455 -0
  78. package/dist/modules/onboarding.js.map +1 -0
  79. package/dist/nlp/memory.d.ts +43 -0
  80. package/dist/nlp/memory.d.ts.map +1 -0
  81. package/dist/nlp/memory.js +205 -0
  82. package/dist/nlp/memory.js.map +1 -0
  83. package/dist/nlp/processor.d.ts +29 -0
  84. package/dist/nlp/processor.d.ts.map +1 -0
  85. package/dist/nlp/processor.js +321 -0
  86. package/dist/nlp/processor.js.map +1 -0
  87. package/dist/utils/db-client.d.ts +35 -0
  88. package/dist/utils/db-client.d.ts.map +1 -0
  89. package/dist/utils/db-client.js +132 -0
  90. package/dist/utils/db-client.js.map +1 -0
  91. package/package.json +97 -0
  92. package/scripts/chmod-binaries.js +33 -0
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConversationMemory = void 0;
4
+ class ConversationMemory {
5
+ messages = [];
6
+ context;
7
+ maxMessages = 50;
8
+ userPreferences = {};
9
+ learnedPatterns = new Map();
10
+ constructor() {
11
+ this.context = {
12
+ conversationId: this.generateConversationId(),
13
+ userPreferences: this.loadUserPreferences()
14
+ };
15
+ }
16
+ addMessage(role, content, additionalContext) {
17
+ const message = {
18
+ role,
19
+ content,
20
+ timestamp: new Date(),
21
+ context: { ...this.context, ...additionalContext }
22
+ };
23
+ this.messages.push(message);
24
+ // Update context based on message
25
+ this.updateContext(message);
26
+ // Trim old messages if needed
27
+ if (this.messages.length > this.maxMessages) {
28
+ this.messages = this.messages.slice(-this.maxMessages);
29
+ }
30
+ // Learn from patterns
31
+ this.learnFromMessage(message);
32
+ }
33
+ getContext() {
34
+ return this.context;
35
+ }
36
+ getRecentMessages(count = 5) {
37
+ return this.messages.slice(-count);
38
+ }
39
+ getFullConversation() {
40
+ return [...this.messages];
41
+ }
42
+ updateContext(message) {
43
+ // Extract and update context from user messages
44
+ if (message.role === 'user') {
45
+ const content = message.content.toLowerCase();
46
+ // Update last action
47
+ if (content.includes('deploy')) {
48
+ this.context.lastAction = 'deploy';
49
+ }
50
+ else if (content.includes('rollback')) {
51
+ this.context.lastAction = 'rollback';
52
+ }
53
+ else if (content.includes('send') || content.includes('email')) {
54
+ this.context.lastAction = 'campaign';
55
+ }
56
+ else if (content.includes('fix')) {
57
+ this.context.lastAction = 'fix';
58
+ }
59
+ else if (content.includes('check') || content.includes('show')) {
60
+ this.context.lastAction = 'check';
61
+ }
62
+ // Update last target
63
+ if (content.includes('production')) {
64
+ this.context.lastTarget = 'production';
65
+ }
66
+ else if (content.includes('staging')) {
67
+ this.context.lastTarget = 'staging';
68
+ }
69
+ else if (content.includes('database')) {
70
+ this.context.lastTarget = 'database';
71
+ }
72
+ else if (content.includes('email') || content.includes('campaign')) {
73
+ this.context.lastTarget = 'email';
74
+ }
75
+ // Extract tier if mentioned
76
+ const tierMatch = content.match(/tier\s*(\d)/);
77
+ if (tierMatch) {
78
+ this.context.lastTarget = `tier-${tierMatch[1]}`;
79
+ }
80
+ this.context.lastTimestamp = message.timestamp;
81
+ }
82
+ }
83
+ learnFromMessage(message) {
84
+ if (message.role === 'user') {
85
+ const content = message.content.toLowerCase();
86
+ // Learn deployment preferences
87
+ if (content.includes('deploy') && content.includes('staging')) {
88
+ this.userPreferences.deploymentEnvironment = 'staging';
89
+ }
90
+ else if (content.includes('deploy') && content.includes('production')) {
91
+ this.userPreferences.deploymentEnvironment = 'production';
92
+ }
93
+ // Learn testing preferences
94
+ if (content.includes('test') || content.includes('dry run')) {
95
+ this.userPreferences.alwaysTest = true;
96
+ }
97
+ // Learn verbosity preferences
98
+ if (content.includes('verbose') || content.includes('detail')) {
99
+ this.userPreferences.verboseOutput = true;
100
+ }
101
+ // Store learned patterns
102
+ const nextMessage = this.messages[this.messages.indexOf(message) + 1];
103
+ if (nextMessage && nextMessage.role === 'system') {
104
+ this.learnedPatterns.set(content, nextMessage.content);
105
+ }
106
+ this.saveUserPreferences();
107
+ }
108
+ }
109
+ // Reference resolution for pronouns
110
+ resolveReference(reference) {
111
+ const lowerRef = reference.toLowerCase();
112
+ if (lowerRef === 'it' || lowerRef === 'that') {
113
+ return this.context.lastTarget;
114
+ }
115
+ if (lowerRef === 'them') {
116
+ // Look for recent plural references
117
+ for (let i = this.messages.length - 1; i >= 0; i--) {
118
+ const msg = this.messages[i];
119
+ if (msg.content.includes('contacts') || msg.content.includes('users')) {
120
+ return 'contacts';
121
+ }
122
+ if (msg.content.includes('emails')) {
123
+ return 'emails';
124
+ }
125
+ }
126
+ }
127
+ if (lowerRef === 'there' || lowerRef === 'here') {
128
+ return this.context.lastTarget;
129
+ }
130
+ return undefined;
131
+ }
132
+ // Get conversation summary for context
133
+ getSummary() {
134
+ const recentMessages = this.getRecentMessages(10);
135
+ const actions = recentMessages
136
+ .filter(m => m.role === 'user')
137
+ .map(m => {
138
+ const content = m.content.toLowerCase();
139
+ if (content.includes('deploy'))
140
+ return 'deployment';
141
+ if (content.includes('email'))
142
+ return 'email campaign';
143
+ if (content.includes('fix'))
144
+ return 'troubleshooting';
145
+ if (content.includes('check'))
146
+ return 'monitoring';
147
+ return 'query';
148
+ });
149
+ const uniqueActions = [...new Set(actions)];
150
+ return `Recent activities: ${uniqueActions.join(', ')}`;
151
+ }
152
+ // Predict next action based on patterns
153
+ predictNextAction() {
154
+ const predictions = [];
155
+ const lastAction = this.context.lastAction;
156
+ if (lastAction === 'deploy') {
157
+ predictions.push('check deployment status', 'view logs', 'rollback if needed');
158
+ }
159
+ else if (lastAction === 'campaign') {
160
+ predictions.push('check engagement metrics', 'schedule follow-up', 'segment by response');
161
+ }
162
+ else if (lastAction === 'fix') {
163
+ predictions.push('verify fix worked', 'run tests', 'check logs');
164
+ }
165
+ else if (lastAction === 'check') {
166
+ predictions.push('fix issues found', 'generate report', 'set up alerts');
167
+ }
168
+ // Add learned patterns
169
+ const lastUserMessage = this.messages.filter(m => m.role === 'user').pop();
170
+ if (lastUserMessage) {
171
+ const pattern = this.learnedPatterns.get(lastUserMessage.content.toLowerCase());
172
+ if (pattern) {
173
+ predictions.unshift(pattern);
174
+ }
175
+ }
176
+ return predictions.slice(0, 3);
177
+ }
178
+ // Clear conversation but keep preferences
179
+ clearConversation() {
180
+ this.messages = [];
181
+ this.context = {
182
+ conversationId: this.generateConversationId(),
183
+ userPreferences: this.userPreferences
184
+ };
185
+ }
186
+ generateConversationId() {
187
+ return `conv_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
188
+ }
189
+ loadUserPreferences() {
190
+ // In production, load from persistent storage
191
+ // For now, return defaults
192
+ return {
193
+ deploymentEnvironment: 'production',
194
+ alwaysTest: false,
195
+ verboseOutput: false,
196
+ autoConfirm: false
197
+ };
198
+ }
199
+ saveUserPreferences() {
200
+ // In production, save to persistent storage
201
+ console.log('User preferences updated:', this.userPreferences);
202
+ }
203
+ }
204
+ exports.ConversationMemory = ConversationMemory;
205
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/nlp/memory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { ConversationContext } from './memory';
2
+ interface Intent {
3
+ action: string;
4
+ target: string;
5
+ parameters: string[];
6
+ confidence: number;
7
+ originalQuery: string;
8
+ }
9
+ export declare class NaturalLanguageProcessor {
10
+ private tokenizer;
11
+ private classifier;
12
+ private actionPatterns;
13
+ constructor();
14
+ private initializeClassifier;
15
+ private initializePatterns;
16
+ process(query: string, context?: ConversationContext): Promise<Intent>;
17
+ private extractAction;
18
+ private extractTarget;
19
+ private extractParameters;
20
+ private applyContext;
21
+ processWithClarification(query: string, context?: ConversationContext): Promise<{
22
+ intent: Intent;
23
+ needsClarification: boolean;
24
+ clarificationOptions?: string[];
25
+ }>;
26
+ learnFromCorrection(originalQuery: string, correctIntent: Intent): void;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/nlp/processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,UAAU,MAAM;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,wBAAwB;IACnC,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,cAAc,CAAyB;;IAS/C,OAAO,CAAC,oBAAoB;IAoD5B,OAAO,CAAC,kBAAkB;IAgDpB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAyB5E,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,iBAAiB;IA+CzB,OAAO,CAAC,YAAY;IAkCd,wBAAwB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC;QACpF,MAAM,EAAE,MAAM,CAAC;QACf,kBAAkB,EAAE,OAAO,CAAC;QAC5B,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;KACjC,CAAC;IA+CF,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;CASjE"}
@@ -0,0 +1,321 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NaturalLanguageProcessor = void 0;
7
+ const natural_1 = __importDefault(require("natural"));
8
+ const compromise_1 = __importDefault(require("compromise"));
9
+ class NaturalLanguageProcessor {
10
+ tokenizer;
11
+ classifier;
12
+ actionPatterns;
13
+ constructor() {
14
+ this.tokenizer = new natural_1.default.WordTokenizer();
15
+ this.classifier = new natural_1.default.BayesClassifier();
16
+ this.initializeClassifier();
17
+ this.initializePatterns();
18
+ }
19
+ initializeClassifier() {
20
+ // Deployment intents
21
+ this.classifier.addDocument('deploy the latest changes', 'deploy');
22
+ this.classifier.addDocument('deploy to production', 'deploy');
23
+ this.classifier.addDocument('push changes to prod', 'deploy');
24
+ this.classifier.addDocument('rollback deployment', 'rollback');
25
+ this.classifier.addDocument('rollback to yesterday', 'rollback');
26
+ this.classifier.addDocument('undo last deployment', 'rollback');
27
+ // Email campaign intents
28
+ this.classifier.addDocument('send email campaign', 'campaign');
29
+ this.classifier.addDocument('send emails to tier 1', 'campaign');
30
+ this.classifier.addDocument('email tier 2 contacts', 'campaign');
31
+ this.classifier.addDocument('check email engagement', 'engagement');
32
+ this.classifier.addDocument('show engagement metrics', 'engagement');
33
+ this.classifier.addDocument('how are emails performing', 'engagement');
34
+ // Database intents
35
+ this.classifier.addDocument('fix ssl issue', 'fix-ssl');
36
+ this.classifier.addDocument('fix database connection', 'fix-ssl');
37
+ this.classifier.addDocument('run migration', 'migrate');
38
+ this.classifier.addDocument('execute sql query', 'query');
39
+ this.classifier.addDocument('backup database', 'backup');
40
+ // Monitoring intents
41
+ this.classifier.addDocument('show me errors', 'logs-error');
42
+ this.classifier.addDocument('why did deployment fail', 'logs-error');
43
+ this.classifier.addDocument('check system health', 'health');
44
+ this.classifier.addDocument('show alerts', 'alerts');
45
+ this.classifier.addDocument('view logs', 'logs');
46
+ // Load testing intents (Beta)
47
+ this.classifier.addDocument('simulate 1000 users', 'load-test');
48
+ this.classifier.addDocument('run load test', 'load-test');
49
+ this.classifier.addDocument('stress test the api', 'load-test');
50
+ this.classifier.addDocument('test campaign at scale', 'campaign-load');
51
+ // A/B testing intents (Beta)
52
+ this.classifier.addDocument('create ab test', 'ab-create');
53
+ this.classifier.addDocument('set up experiment', 'ab-create');
54
+ this.classifier.addDocument('show experiment metrics', 'ab-metrics');
55
+ this.classifier.addDocument('end experiment', 'ab-conclude');
56
+ // Onboarding intents (Beta)
57
+ this.classifier.addDocument('onboard new customer', 'onboard');
58
+ this.classifier.addDocument('provision organization', 'provision');
59
+ this.classifier.addDocument('send invitation', 'invite');
60
+ this.classifier.addDocument('validate setup', 'validate');
61
+ this.classifier.train();
62
+ }
63
+ initializePatterns() {
64
+ this.actionPatterns = new Map([
65
+ ['deploy', [
66
+ /deploy/i,
67
+ /push/i,
68
+ /release/i,
69
+ /ship/i
70
+ ]],
71
+ ['rollback', [
72
+ /rollback/i,
73
+ /revert/i,
74
+ /undo/i,
75
+ /go back/i
76
+ ]],
77
+ ['send', [
78
+ /send/i,
79
+ /email/i,
80
+ /campaign/i,
81
+ /notify/i
82
+ ]],
83
+ ['fix', [
84
+ /fix/i,
85
+ /repair/i,
86
+ /resolve/i,
87
+ /solve/i
88
+ ]],
89
+ ['check', [
90
+ /check/i,
91
+ /show/i,
92
+ /view/i,
93
+ /display/i,
94
+ /get/i
95
+ ]],
96
+ ['simulate', [
97
+ /simulate/i,
98
+ /test/i,
99
+ /load/i,
100
+ /stress/i
101
+ ]],
102
+ ['create', [
103
+ /create/i,
104
+ /set up/i,
105
+ /establish/i,
106
+ /make/i
107
+ ]]
108
+ ]);
109
+ }
110
+ async process(query, context) {
111
+ const doc = (0, compromise_1.default)(query);
112
+ const tokens = this.tokenizer.tokenize(query.toLowerCase()) || [];
113
+ // Get base classification
114
+ const classification = this.classifier.getClassifications(query);
115
+ const topClass = classification[0];
116
+ // Extract entities
117
+ const action = this.extractAction(query, tokens);
118
+ const target = this.extractTarget(query, doc, context);
119
+ const parameters = this.extractParameters(query, tokens);
120
+ // Apply context if available
121
+ const enhancedIntent = this.applyContext({
122
+ action,
123
+ target,
124
+ parameters,
125
+ confidence: topClass.value,
126
+ originalQuery: query
127
+ }, context);
128
+ return enhancedIntent;
129
+ }
130
+ extractAction(query, tokens) {
131
+ // Check for explicit action patterns
132
+ for (const [action, patterns] of this.actionPatterns) {
133
+ if (patterns.some(pattern => pattern.test(query))) {
134
+ return action;
135
+ }
136
+ }
137
+ // Check for specific keywords
138
+ if (tokens.includes('deploy'))
139
+ return 'deploy';
140
+ if (tokens.includes('rollback'))
141
+ return 'rollback';
142
+ if (tokens.includes('send'))
143
+ return 'send';
144
+ if (tokens.includes('fix'))
145
+ return 'fix';
146
+ if (tokens.includes('check') || tokens.includes('show'))
147
+ return 'check';
148
+ if (tokens.includes('simulate'))
149
+ return 'simulate';
150
+ if (tokens.includes('create'))
151
+ return 'create';
152
+ if (tokens.includes('onboard'))
153
+ return 'onboard';
154
+ return 'unknown';
155
+ }
156
+ extractTarget(query, doc, context) {
157
+ // Check for environment references
158
+ if (/production|prod/i.test(query))
159
+ return 'production';
160
+ if (/staging|stage/i.test(query))
161
+ return 'staging';
162
+ if (/development|dev/i.test(query))
163
+ return 'development';
164
+ // Check for service references
165
+ if (/database|db|rds|postgres/i.test(query))
166
+ return 'database';
167
+ if (/email|campaign|sendgrid/i.test(query))
168
+ return 'email';
169
+ if (/ssl|certificate/i.test(query))
170
+ return 'ssl';
171
+ if (/api|endpoint/i.test(query))
172
+ return 'api';
173
+ if (/website|web|frontend/i.test(query))
174
+ return 'website';
175
+ // Check for tier references
176
+ const tierMatch = query.match(/tier\s*(\d)/i);
177
+ if (tierMatch)
178
+ return `tier-${tierMatch[1]}`;
179
+ // Check context for "it", "them", "that"
180
+ if (context && /\b(it|them|that|this)\b/i.test(query)) {
181
+ return context.lastTarget || 'unknown';
182
+ }
183
+ // Extract organizations
184
+ const orgs = doc.match('#Organization').out('array');
185
+ if (orgs.length > 0)
186
+ return orgs[0];
187
+ return 'default';
188
+ }
189
+ extractParameters(query, _tokens) {
190
+ const params = [];
191
+ // Extract time references
192
+ if (/yesterday/i.test(query))
193
+ params.push('time:yesterday');
194
+ if (/today/i.test(query))
195
+ params.push('time:today');
196
+ if (/tomorrow/i.test(query))
197
+ params.push('time:tomorrow');
198
+ if (/last\s+week/i.test(query))
199
+ params.push('time:last-week');
200
+ if (/next\s+week/i.test(query))
201
+ params.push('time:next-week');
202
+ // Extract time patterns (e.g., "at 9am", "10:30")
203
+ const timePattern = /at\s+(\d{1,2}):?(\d{2})?\s*(am|pm)?/i;
204
+ const timeMatch = query.match(timePattern);
205
+ if (timeMatch) {
206
+ params.push(`schedule:${timeMatch[1]}${timeMatch[2] || ':00'}${timeMatch[3] || ''}`);
207
+ }
208
+ // Extract numbers
209
+ const numbers = query.match(/\d+/g);
210
+ if (numbers) {
211
+ numbers.forEach(num => params.push(`count:${num}`));
212
+ }
213
+ // Extract tier information
214
+ const tierMatch = query.match(/tier\s*(\d)/gi);
215
+ if (tierMatch) {
216
+ tierMatch.forEach(tier => params.push(tier.toLowerCase()));
217
+ }
218
+ // Extract company names
219
+ const companies = ['databricks', 'visa', 'mastercard', 'netflix', 'uber', 'stripe'];
220
+ companies.forEach(company => {
221
+ if (query.toLowerCase().includes(company)) {
222
+ params.push(`company:${company}`);
223
+ }
224
+ });
225
+ // Extract modifiers
226
+ if (/test|dry.?run/i.test(query))
227
+ params.push('test-mode');
228
+ if (/force|skip/i.test(query))
229
+ params.push('force');
230
+ if (/all/i.test(query))
231
+ params.push('all');
232
+ if (/latest/i.test(query))
233
+ params.push('latest');
234
+ if (/verbose|detail/i.test(query))
235
+ params.push('verbose');
236
+ return params;
237
+ }
238
+ applyContext(intent, context) {
239
+ if (!context)
240
+ return intent;
241
+ // Resolve pronouns and references
242
+ if (intent.target === 'default' && context.lastTarget) {
243
+ intent.target = context.lastTarget;
244
+ }
245
+ // Apply learned preferences
246
+ if (context.userPreferences) {
247
+ const prefs = context.userPreferences;
248
+ // Apply deployment preferences
249
+ if (intent.action === 'deploy' && prefs.deploymentEnvironment) {
250
+ if (!intent.target || intent.target === 'default') {
251
+ intent.target = prefs.deploymentEnvironment;
252
+ }
253
+ }
254
+ // Apply testing preferences
255
+ if (prefs.alwaysTest && !intent.parameters.includes('test-mode')) {
256
+ intent.parameters.push('test-mode');
257
+ }
258
+ }
259
+ // Enhance confidence based on context match
260
+ if (context.lastAction === intent.action) {
261
+ intent.confidence = Math.min(1.0, intent.confidence * 1.2);
262
+ }
263
+ return intent;
264
+ }
265
+ // Advanced NLP features for Beta phase
266
+ async processWithClarification(query, context) {
267
+ const intent = await this.process(query, context);
268
+ // Check if clarification is needed
269
+ const needsClarification = intent.confidence < 0.6 || intent.action === 'unknown';
270
+ let clarificationOptions = [];
271
+ if (needsClarification) {
272
+ // Generate clarification options based on query
273
+ if (query.includes('deploy')) {
274
+ clarificationOptions = [
275
+ 'Deploy to production',
276
+ 'Deploy to staging',
277
+ 'Rollback last deployment'
278
+ ];
279
+ }
280
+ else if (query.includes('email') || query.includes('campaign')) {
281
+ clarificationOptions = [
282
+ 'Send campaign to Tier 1',
283
+ 'Send campaign to Tier 2',
284
+ 'Check engagement metrics',
285
+ 'Schedule future campaign'
286
+ ];
287
+ }
288
+ else if (query.includes('fix')) {
289
+ clarificationOptions = [
290
+ 'Fix SSL database configuration',
291
+ 'Fix deployment issues',
292
+ 'Fix email template problems'
293
+ ];
294
+ }
295
+ else {
296
+ clarificationOptions = [
297
+ 'Show system health',
298
+ 'View recent logs',
299
+ 'Check deployment status',
300
+ 'Show email engagement'
301
+ ];
302
+ }
303
+ }
304
+ return {
305
+ intent,
306
+ needsClarification,
307
+ clarificationOptions: needsClarification ? clarificationOptions : undefined
308
+ };
309
+ }
310
+ // Learn from user corrections
311
+ learnFromCorrection(originalQuery, correctIntent) {
312
+ // Add the corrected mapping to classifier
313
+ this.classifier.addDocument(originalQuery, correctIntent.action);
314
+ this.classifier.train();
315
+ // Store for future reference
316
+ // In production, this would persist to a database
317
+ console.log(`Learned: "${originalQuery}" → ${correctIntent.action}`);
318
+ }
319
+ }
320
+ exports.NaturalLanguageProcessor = NaturalLanguageProcessor;
321
+ //# sourceMappingURL=processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/nlp/processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Database Client Utility
3
+ *
4
+ * Provides secure PostgreSQL client with proper AWS RDS certificate validation.
5
+ * Uses AWS RDS global CA bundle instead of disabling SSL verification.
6
+ *
7
+ * Security: This replaces the insecure NODE_TLS_REJECT_UNAUTHORIZED=0 approach
8
+ * Reference: AWS RDS Certificate Authority documentation
9
+ */
10
+ import { Client, ClientConfig } from 'pg';
11
+ /**
12
+ * Get SSL configuration for PostgreSQL client
13
+ * Uses CA bundle if available, falls back to insecure mode with warning
14
+ */
15
+ export declare function getSSLConfig(): ClientConfig['ssl'];
16
+ /**
17
+ * Default database connection string
18
+ * Uses environment variable or falls back to default
19
+ */
20
+ export declare const DEFAULT_CONNECTION_STRING: string;
21
+ /**
22
+ * Create a new PostgreSQL client with secure SSL configuration
23
+ *
24
+ * @param connectionString - Optional connection string (defaults to DATABASE_URL)
25
+ * @returns Configured pg Client instance
26
+ */
27
+ export declare function createDbClient(connectionString?: string): Client;
28
+ /**
29
+ * Create a new PostgreSQL client and connect it
30
+ *
31
+ * @param connectionString - Optional connection string (defaults to DATABASE_URL)
32
+ * @returns Promise resolving to connected pg Client instance
33
+ */
34
+ export declare function createConnectedDbClient(connectionString?: string): Promise<Client>;
35
+ //# sourceMappingURL=db-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"db-client.d.ts","sourceRoot":"","sources":["../../src/utils/db-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AA2C1C;;;GAGG;AACH,wBAAgB,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,CAclD;AAED;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAuC,CAAC;AAEhF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIxF"}