@nxuss/lemma 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +311 -0
  3. package/dist/cloud/KeyManager.d.ts +29 -0
  4. package/dist/cloud/KeyManager.d.ts.map +1 -0
  5. package/dist/cloud/KeyManager.js +142 -0
  6. package/dist/cloud/KeyManager.js.map +1 -0
  7. package/dist/cloud/TenantCache.d.ts +29 -0
  8. package/dist/cloud/TenantCache.d.ts.map +1 -0
  9. package/dist/cloud/TenantCache.js +162 -0
  10. package/dist/cloud/TenantCache.js.map +1 -0
  11. package/dist/cloud/index.d.ts +4 -0
  12. package/dist/cloud/index.d.ts.map +1 -0
  13. package/dist/cloud/index.js +23 -0
  14. package/dist/cloud/index.js.map +1 -0
  15. package/dist/cloud/server.d.ts +17 -0
  16. package/dist/cloud/server.d.ts.map +1 -0
  17. package/dist/cloud/server.js +189 -0
  18. package/dist/cloud/server.js.map +1 -0
  19. package/dist/cloud/types.d.ts +35 -0
  20. package/dist/cloud/types.d.ts.map +1 -0
  21. package/dist/cloud/types.js +14 -0
  22. package/dist/cloud/types.js.map +1 -0
  23. package/dist/config/index.d.ts +44 -0
  24. package/dist/config/index.d.ts.map +1 -0
  25. package/dist/config/index.js +161 -0
  26. package/dist/config/index.js.map +1 -0
  27. package/dist/consensus/ConsensusEngine.d.ts +119 -0
  28. package/dist/consensus/ConsensusEngine.d.ts.map +1 -0
  29. package/dist/consensus/ConsensusEngine.js +314 -0
  30. package/dist/consensus/ConsensusEngine.js.map +1 -0
  31. package/dist/consensus/ModelPool.d.ts +103 -0
  32. package/dist/consensus/ModelPool.d.ts.map +1 -0
  33. package/dist/consensus/ModelPool.js +276 -0
  34. package/dist/consensus/ModelPool.js.map +1 -0
  35. package/dist/consensus/index.d.ts +8 -0
  36. package/dist/consensus/index.d.ts.map +1 -0
  37. package/dist/consensus/index.js +13 -0
  38. package/dist/consensus/index.js.map +1 -0
  39. package/dist/core/AgentRegistry.d.ts +89 -0
  40. package/dist/core/AgentRegistry.d.ts.map +1 -0
  41. package/dist/core/AgentRegistry.js +264 -0
  42. package/dist/core/AgentRegistry.js.map +1 -0
  43. package/dist/core/DashboardBroadcaster.d.ts +67 -0
  44. package/dist/core/DashboardBroadcaster.d.ts.map +1 -0
  45. package/dist/core/DashboardBroadcaster.js +264 -0
  46. package/dist/core/DashboardBroadcaster.js.map +1 -0
  47. package/dist/core/OrchestrationEngine.d.ts +84 -0
  48. package/dist/core/OrchestrationEngine.d.ts.map +1 -0
  49. package/dist/core/OrchestrationEngine.js +455 -0
  50. package/dist/core/OrchestrationEngine.js.map +1 -0
  51. package/dist/core/SubconsciousEngine.d.ts +53 -0
  52. package/dist/core/SubconsciousEngine.d.ts.map +1 -0
  53. package/dist/core/SubconsciousEngine.js +273 -0
  54. package/dist/core/SubconsciousEngine.js.map +1 -0
  55. package/dist/core/WebSocketServer.d.ts +89 -0
  56. package/dist/core/WebSocketServer.d.ts.map +1 -0
  57. package/dist/core/WebSocketServer.js +416 -0
  58. package/dist/core/WebSocketServer.js.map +1 -0
  59. package/dist/core/index.d.ts +15 -0
  60. package/dist/core/index.d.ts.map +1 -0
  61. package/dist/core/index.js +24 -0
  62. package/dist/core/index.js.map +1 -0
  63. package/dist/core/router.d.ts +105 -0
  64. package/dist/core/router.d.ts.map +1 -0
  65. package/dist/core/router.js +420 -0
  66. package/dist/core/router.js.map +1 -0
  67. package/dist/embed/index.d.ts +153 -0
  68. package/dist/embed/index.d.ts.map +1 -0
  69. package/dist/embed/index.js +408 -0
  70. package/dist/embed/index.js.map +1 -0
  71. package/dist/embed.d.ts +11 -0
  72. package/dist/embed.d.ts.map +1 -0
  73. package/dist/embed.js +19 -0
  74. package/dist/embed.js.map +1 -0
  75. package/dist/index.d.ts +83 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +176 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/protocol/flows.d.ts +126 -0
  80. package/dist/protocol/flows.d.ts.map +1 -0
  81. package/dist/protocol/flows.js +347 -0
  82. package/dist/protocol/flows.js.map +1 -0
  83. package/dist/protocol/iap.d.ts +54 -0
  84. package/dist/protocol/iap.d.ts.map +1 -0
  85. package/dist/protocol/iap.js +108 -0
  86. package/dist/protocol/iap.js.map +1 -0
  87. package/dist/protocol/index.d.ts +23 -0
  88. package/dist/protocol/index.d.ts.map +1 -0
  89. package/dist/protocol/index.js +45 -0
  90. package/dist/protocol/index.js.map +1 -0
  91. package/dist/protocol/types.d.ts +332 -0
  92. package/dist/protocol/types.d.ts.map +1 -0
  93. package/dist/protocol/types.js +57 -0
  94. package/dist/protocol/types.js.map +1 -0
  95. package/dist/protocol/utils.d.ts +130 -0
  96. package/dist/protocol/utils.d.ts.map +1 -0
  97. package/dist/protocol/utils.js +292 -0
  98. package/dist/protocol/utils.js.map +1 -0
  99. package/dist/protocol/validators.d.ts +54 -0
  100. package/dist/protocol/validators.d.ts.map +1 -0
  101. package/dist/protocol/validators.js +344 -0
  102. package/dist/protocol/validators.js.map +1 -0
  103. package/dist/security/AuthManager.d.ts +73 -0
  104. package/dist/security/AuthManager.d.ts.map +1 -0
  105. package/dist/security/AuthManager.js +102 -0
  106. package/dist/security/AuthManager.js.map +1 -0
  107. package/dist/security/MessageSanitizer.d.ts +51 -0
  108. package/dist/security/MessageSanitizer.d.ts.map +1 -0
  109. package/dist/security/MessageSanitizer.js +166 -0
  110. package/dist/security/MessageSanitizer.js.map +1 -0
  111. package/dist/security/RateLimiter.d.ts +46 -0
  112. package/dist/security/RateLimiter.d.ts.map +1 -0
  113. package/dist/security/RateLimiter.js +133 -0
  114. package/dist/security/RateLimiter.js.map +1 -0
  115. package/dist/security/SecurityMiddleware.d.ts +88 -0
  116. package/dist/security/SecurityMiddleware.d.ts.map +1 -0
  117. package/dist/security/SecurityMiddleware.js +146 -0
  118. package/dist/security/SecurityMiddleware.js.map +1 -0
  119. package/dist/security/index.d.ts +35 -0
  120. package/dist/security/index.d.ts.map +1 -0
  121. package/dist/security/index.js +42 -0
  122. package/dist/security/index.js.map +1 -0
  123. package/dist/speculative/PredictionEngine.d.ts +99 -0
  124. package/dist/speculative/PredictionEngine.d.ts.map +1 -0
  125. package/dist/speculative/PredictionEngine.js +291 -0
  126. package/dist/speculative/PredictionEngine.js.map +1 -0
  127. package/dist/speculative/SpeculativeCache.d.ts +117 -0
  128. package/dist/speculative/SpeculativeCache.d.ts.map +1 -0
  129. package/dist/speculative/SpeculativeCache.js +292 -0
  130. package/dist/speculative/SpeculativeCache.js.map +1 -0
  131. package/dist/speculative/SpeculativeEngine.d.ts +114 -0
  132. package/dist/speculative/SpeculativeEngine.d.ts.map +1 -0
  133. package/dist/speculative/SpeculativeEngine.js +244 -0
  134. package/dist/speculative/SpeculativeEngine.js.map +1 -0
  135. package/dist/speculative/WorkerPool.d.ts +109 -0
  136. package/dist/speculative/WorkerPool.d.ts.map +1 -0
  137. package/dist/speculative/WorkerPool.js +327 -0
  138. package/dist/speculative/WorkerPool.js.map +1 -0
  139. package/dist/speculative/index.d.ts +10 -0
  140. package/dist/speculative/index.d.ts.map +1 -0
  141. package/dist/speculative/index.js +17 -0
  142. package/dist/speculative/index.js.map +1 -0
  143. package/dist/subconscious/EmbeddingService.d.ts +73 -0
  144. package/dist/subconscious/EmbeddingService.d.ts.map +1 -0
  145. package/dist/subconscious/EmbeddingService.js +196 -0
  146. package/dist/subconscious/EmbeddingService.js.map +1 -0
  147. package/dist/subconscious/SemanticCache.d.ts +82 -0
  148. package/dist/subconscious/SemanticCache.d.ts.map +1 -0
  149. package/dist/subconscious/SemanticCache.js +164 -0
  150. package/dist/subconscious/SemanticCache.js.map +1 -0
  151. package/dist/subconscious/SubconsciousEngine.d.ts +121 -0
  152. package/dist/subconscious/SubconsciousEngine.d.ts.map +1 -0
  153. package/dist/subconscious/SubconsciousEngine.js +241 -0
  154. package/dist/subconscious/SubconsciousEngine.js.map +1 -0
  155. package/dist/subconscious/VectorStore.d.ts +54 -0
  156. package/dist/subconscious/VectorStore.d.ts.map +1 -0
  157. package/dist/subconscious/VectorStore.js +168 -0
  158. package/dist/subconscious/VectorStore.js.map +1 -0
  159. package/dist/subconscious/cache.d.ts +34 -0
  160. package/dist/subconscious/cache.d.ts.map +1 -0
  161. package/dist/subconscious/cache.js +156 -0
  162. package/dist/subconscious/cache.js.map +1 -0
  163. package/dist/subconscious/embeddings.d.ts +25 -0
  164. package/dist/subconscious/embeddings.d.ts.map +1 -0
  165. package/dist/subconscious/embeddings.js +65 -0
  166. package/dist/subconscious/embeddings.js.map +1 -0
  167. package/dist/subconscious/index.d.ts +12 -0
  168. package/dist/subconscious/index.d.ts.map +1 -0
  169. package/dist/subconscious/index.js +19 -0
  170. package/dist/subconscious/index.js.map +1 -0
  171. package/dist/types/index.d.ts +286 -0
  172. package/dist/types/index.d.ts.map +1 -0
  173. package/dist/types/index.js +43 -0
  174. package/dist/types/index.js.map +1 -0
  175. package/dist/utils/logger.d.ts +63 -0
  176. package/dist/utils/logger.d.ts.map +1 -0
  177. package/dist/utils/logger.js +126 -0
  178. package/dist/utils/logger.js.map +1 -0
  179. package/package.json +99 -0
@@ -0,0 +1,84 @@
1
+ import { WebSocketServer } from './WebSocketServer';
2
+ import { SubconsciousEngine } from './SubconsciousEngine';
3
+ import { OrchestrationMetrics } from '../types';
4
+ /**
5
+ * Orchestration Engine
6
+ * Integrates WebSocket Server and Subconscious Engine
7
+ * Implements the complete request flow: Request → Semantic Check → Route/Cache → Response
8
+ */
9
+ export declare class OrchestrationEngine {
10
+ private wsServer;
11
+ private subconsciousEngine;
12
+ private metrics;
13
+ private requestLatencies;
14
+ private taskRequestors;
15
+ private dashboardBroadcaster;
16
+ constructor(wsServer: WebSocketServer, subconsciousEngine: SubconsciousEngine);
17
+ /**
18
+ * Set dashboard broadcaster reference
19
+ */
20
+ setDashboardBroadcaster(broadcaster: any): void;
21
+ /**
22
+ * Setup event handlers for WebSocket server
23
+ */
24
+ private setupEventHandlers;
25
+ /**
26
+ * Handle incoming message from agent
27
+ */
28
+ private handleMessage;
29
+ /**
30
+ * Handle agent handshake
31
+ */
32
+ private handleHandshake;
33
+ /**
34
+ * Handle task request with semantic short-circuiting
35
+ */
36
+ private handleTaskRequest;
37
+ /**
38
+ * Handle task response from agent and cache it
39
+ */
40
+ private handleTaskResponse;
41
+ /**
42
+ * Handle agent discovery request
43
+ */
44
+ private handleDiscover;
45
+ /**
46
+ * Handle ping message
47
+ */
48
+ private handlePing;
49
+ /**
50
+ * Find agent with required capabilities
51
+ */
52
+ private findCapableAgent;
53
+ /**
54
+ * Check if message is dashboard-specific
55
+ */
56
+ private isDashboardMessage;
57
+ /**
58
+ * Validate IAP message structure
59
+ */
60
+ private isValidIAPMessage;
61
+ /**
62
+ * Send message to connection
63
+ */
64
+ private sendMessage;
65
+ /**
66
+ * Send error message
67
+ */
68
+ private sendError;
69
+ /**
70
+ * Record request latency
71
+ */
72
+ private recordLatency;
73
+ /**
74
+ * Get orchestration metrics
75
+ */
76
+ getMetrics(): OrchestrationMetrics & {
77
+ cacheStats: any;
78
+ };
79
+ /**
80
+ * Print metrics summary
81
+ */
82
+ printMetrics(): void;
83
+ }
84
+ //# sourceMappingURL=OrchestrationEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrchestrationEngine.d.ts","sourceRoot":"","sources":["../../src/core/OrchestrationEngine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAML,oBAAoB,EAErB,MAAM,UAAU,CAAC;AAKlB;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,oBAAoB,CAAa;gBAE7B,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB;IAe7E;;OAEG;IACI,uBAAuB,CAAC,WAAW,EAAE,GAAG,GAAG,IAAI;IAItD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA6B1B;;OAEG;YACW,aAAa;IAgE3B;;OAEG;YACW,eAAe;IA+B7B;;OAEG;YACW,iBAAiB;IAgI/B;;OAEG;YACW,kBAAkB;IA2EhC;;OAEG;YACW,cAAc;IAyB5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;OAEG;IACH,OAAO,CAAC,WAAW;IAWnB;;OAEG;IACH,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACI,UAAU,IAAI,oBAAoB,GAAG;QAAE,UAAU,EAAE,GAAG,CAAA;KAAE;IAO/D;;OAEG;IACI,YAAY,IAAI,IAAI;CAY5B"}
@@ -0,0 +1,455 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrchestrationEngine = void 0;
4
+ const uuid_1 = require("uuid");
5
+ const types_1 = require("../types");
6
+ const logger_1 = require("../utils/logger");
7
+ const logger = (0, logger_1.createLogger)('OrchestrationEngine');
8
+ /**
9
+ * Orchestration Engine
10
+ * Integrates WebSocket Server and Subconscious Engine
11
+ * Implements the complete request flow: Request → Semantic Check → Route/Cache → Response
12
+ */
13
+ class OrchestrationEngine {
14
+ constructor(wsServer, subconsciousEngine) {
15
+ this.requestLatencies = [];
16
+ this.taskRequestors = new Map(); // taskId -> connectionId
17
+ this.dashboardBroadcaster = null; // Will be set by setDashboardBroadcaster
18
+ this.wsServer = wsServer;
19
+ this.subconsciousEngine = subconsciousEngine;
20
+ this.metrics = {
21
+ totalRequests: 0,
22
+ cacheHits: 0,
23
+ cacheMisses: 0,
24
+ averageLatency: 0,
25
+ tokensSaved: 0,
26
+ costSaved: 0,
27
+ };
28
+ this.setupEventHandlers();
29
+ }
30
+ /**
31
+ * Set dashboard broadcaster reference
32
+ */
33
+ setDashboardBroadcaster(broadcaster) {
34
+ this.dashboardBroadcaster = broadcaster;
35
+ }
36
+ /**
37
+ * Setup event handlers for WebSocket server
38
+ */
39
+ setupEventHandlers() {
40
+ // Handle new connections
41
+ this.wsServer.on('connection', (connection) => {
42
+ logger.info('New agent connection', {
43
+ connectionId: connection.id,
44
+ ip: connection.metadata?.ip,
45
+ });
46
+ });
47
+ // Handle incoming messages
48
+ this.wsServer.on('message', async (data) => {
49
+ await this.handleMessage(data.connectionId, data.message);
50
+ });
51
+ // Handle disconnections
52
+ this.wsServer.on('disconnection', (data) => {
53
+ logger.info('Agent disconnected', {
54
+ connectionId: data.connectionId,
55
+ agentId: data.agentId,
56
+ reason: data.reason,
57
+ });
58
+ });
59
+ // Handle errors
60
+ this.wsServer.on('error', (error) => {
61
+ logger.error('WebSocket server error', error);
62
+ });
63
+ }
64
+ /**
65
+ * Handle incoming message from agent
66
+ */
67
+ async handleMessage(connectionId, message) {
68
+ try {
69
+ // Validate message structure
70
+ if (!this.isValidIAPMessage(message)) {
71
+ logger.warn('Invalid message format', { connectionId, message });
72
+ this.sendError(connectionId, 'Invalid message format');
73
+ return;
74
+ }
75
+ const iapMessage = message;
76
+ console.log('🔍 DEBUG: Processing message');
77
+ console.log(' Type:', iapMessage.type);
78
+ console.log(' MessageType.TASK_RESPONSE:', types_1.MessageType.TASK_RESPONSE);
79
+ console.log(' Match:', iapMessage.type === types_1.MessageType.TASK_RESPONSE);
80
+ logger.debug('Processing message', {
81
+ connectionId,
82
+ type: iapMessage.type,
83
+ messageId: iapMessage.messageId,
84
+ });
85
+ // Check if this is a dashboard-specific message
86
+ if (this.isDashboardMessage(iapMessage.type)) {
87
+ if (this.dashboardBroadcaster) {
88
+ this.dashboardBroadcaster.handleDashboardRequest(connectionId, iapMessage);
89
+ }
90
+ return;
91
+ }
92
+ // Route message based on type
93
+ switch (iapMessage.type) {
94
+ case types_1.MessageType.HANDSHAKE:
95
+ await this.handleHandshake(connectionId, iapMessage);
96
+ break;
97
+ case types_1.MessageType.TASK_REQUEST:
98
+ await this.handleTaskRequest(connectionId, iapMessage);
99
+ break;
100
+ case types_1.MessageType.TASK_RESPONSE:
101
+ await this.handleTaskResponse(connectionId, iapMessage);
102
+ break;
103
+ case types_1.MessageType.DISCOVER:
104
+ await this.handleDiscover(connectionId, iapMessage);
105
+ break;
106
+ case types_1.MessageType.PING:
107
+ this.handlePing(connectionId, iapMessage);
108
+ break;
109
+ default:
110
+ logger.warn('Unknown message type', {
111
+ connectionId,
112
+ type: iapMessage.type,
113
+ });
114
+ }
115
+ }
116
+ catch (error) {
117
+ logger.error('Error handling message', error);
118
+ this.sendError(connectionId, 'Internal server error');
119
+ }
120
+ }
121
+ /**
122
+ * Handle agent handshake
123
+ */
124
+ async handleHandshake(connectionId, message) {
125
+ const payload = message.payload;
126
+ logger.info('Agent handshake', {
127
+ connectionId,
128
+ agentId: payload.agentId,
129
+ agentName: payload.agentName,
130
+ capabilities: payload.capabilities,
131
+ });
132
+ // Update connection with agent info
133
+ this.wsServer.updateAgentInfo(connectionId, payload.agentId, payload.capabilities.map(c => c.name));
134
+ // Send acknowledgment
135
+ this.sendMessage(connectionId, {
136
+ type: types_1.MessageType.HANDSHAKE_ACK,
137
+ messageId: (0, uuid_1.v4)(),
138
+ timestamp: Date.now(),
139
+ payload: {
140
+ success: true,
141
+ serverId: 'subconscious-router',
142
+ version: '1.0.0-alpha',
143
+ features: ['semantic-caching', 'task-routing', 'agent-discovery'],
144
+ },
145
+ });
146
+ }
147
+ /**
148
+ * Handle task request with semantic short-circuiting
149
+ */
150
+ async handleTaskRequest(connectionId, message) {
151
+ const startTime = Date.now();
152
+ const taskRequest = message.payload;
153
+ this.metrics.totalRequests++;
154
+ logger.info('Task request received', {
155
+ connectionId,
156
+ taskId: taskRequest.taskId,
157
+ description: taskRequest.description,
158
+ });
159
+ try {
160
+ // STEP 1: Semantic Check - Try to find cached response
161
+ const description = taskRequest.description || JSON.stringify(taskRequest.parameters);
162
+ const semanticMatch = await this.subconsciousEngine.search(description);
163
+ if (semanticMatch) {
164
+ // CACHE HIT - Return cached response immediately
165
+ const latency = Date.now() - startTime;
166
+ this.metrics.cacheHits++;
167
+ this.recordLatency(latency);
168
+ // Calculate savings
169
+ const tokensSaved = semanticMatch.metadata.tokensUsed || 0;
170
+ const costSaved = (tokensSaved / 1000) * 0.002; // Rough estimate: $0.002 per 1K tokens
171
+ this.metrics.tokensSaved += tokensSaved;
172
+ this.metrics.costSaved += costSaved;
173
+ logger.info('🎯 CACHE HIT - Instant response', {
174
+ taskId: taskRequest.taskId,
175
+ similarity: semanticMatch.similarity,
176
+ latency,
177
+ tokensSaved,
178
+ costSaved: `$${costSaved.toFixed(4)}`,
179
+ });
180
+ logger.metric('cache-hit-latency', latency);
181
+ // Send cached response
182
+ this.sendMessage(connectionId, {
183
+ type: types_1.MessageType.TASK_RESPONSE,
184
+ messageId: (0, uuid_1.v4)(),
185
+ timestamp: Date.now(),
186
+ payload: {
187
+ taskId: taskRequest.taskId,
188
+ success: true,
189
+ result: semanticMatch.response,
190
+ executionTime: latency,
191
+ cached: true,
192
+ similarity: semanticMatch.similarity,
193
+ },
194
+ });
195
+ return;
196
+ }
197
+ // CACHE MISS - Route to appropriate agent
198
+ this.metrics.cacheMisses++;
199
+ logger.info('Cache miss - routing to agent', {
200
+ taskId: taskRequest.taskId,
201
+ });
202
+ // Store the requestor for this task
203
+ if (taskRequest.taskId) {
204
+ this.taskRequestors.set(taskRequest.taskId, connectionId);
205
+ console.log('✅ STORED REQUESTOR:', taskRequest.taskId, '→', connectionId);
206
+ }
207
+ // Find capable agent
208
+ const targetAgent = this.findCapableAgent(taskRequest.requiredCapabilities);
209
+ if (!targetAgent) {
210
+ logger.warn('No capable agent found', {
211
+ taskId: taskRequest.taskId,
212
+ requiredCapabilities: taskRequest.requiredCapabilities,
213
+ });
214
+ this.sendMessage(connectionId, {
215
+ type: types_1.MessageType.TASK_RESPONSE,
216
+ messageId: (0, uuid_1.v4)(),
217
+ timestamp: Date.now(),
218
+ payload: {
219
+ taskId: taskRequest.taskId,
220
+ success: false,
221
+ error: 'No capable agent available',
222
+ executionTime: Date.now() - startTime,
223
+ },
224
+ });
225
+ return;
226
+ }
227
+ // Forward task to capable agent
228
+ logger.info('Routing task to agent', {
229
+ taskId: taskRequest.taskId,
230
+ targetAgent: targetAgent.agentId,
231
+ });
232
+ this.wsServer.sendToAgent(targetAgent.agentId, {
233
+ type: types_1.MessageType.TASK_ASSIGN,
234
+ messageId: (0, uuid_1.v4)(),
235
+ timestamp: Date.now(),
236
+ payload: {
237
+ ...taskRequest,
238
+ requestorConnectionId: connectionId,
239
+ },
240
+ });
241
+ }
242
+ catch (error) {
243
+ logger.error('Error processing task request', error);
244
+ this.sendMessage(connectionId, {
245
+ type: types_1.MessageType.TASK_RESPONSE,
246
+ messageId: (0, uuid_1.v4)(),
247
+ timestamp: Date.now(),
248
+ payload: {
249
+ taskId: taskRequest.taskId,
250
+ success: false,
251
+ error: 'Internal server error',
252
+ executionTime: Date.now() - startTime,
253
+ },
254
+ });
255
+ }
256
+ }
257
+ /**
258
+ * Handle task response from agent and cache it
259
+ */
260
+ async handleTaskResponse(connectionId, message) {
261
+ const taskResponse = message.payload;
262
+ logger.info('Task response received', {
263
+ connectionId,
264
+ taskId: taskResponse.taskId,
265
+ success: taskResponse.success,
266
+ executionTime: taskResponse.executionTime,
267
+ });
268
+ console.log('🔍 DEBUG: Task response received');
269
+ console.log(' Task ID:', taskResponse.taskId);
270
+ console.log(' Connection ID:', connectionId);
271
+ console.log(' Tracked requestors:', Array.from(this.taskRequestors.entries()));
272
+ const connection = this.wsServer.getConnection(connectionId);
273
+ // Store successful responses in semantic cache
274
+ if (taskResponse.success && taskResponse.taskDescription) {
275
+ try {
276
+ const cacheEntry = {
277
+ id: (0, uuid_1.v4)(),
278
+ query: taskResponse.taskDescription,
279
+ embedding: [], // Will be generated in SubconsciousEngine
280
+ response: taskResponse.result,
281
+ metadata: {
282
+ agentId: connection?.agentId || 'unknown',
283
+ timestamp: Date.now(),
284
+ executionTime: taskResponse.executionTime,
285
+ tokensUsed: taskResponse.tokensUsed,
286
+ },
287
+ };
288
+ await this.subconsciousEngine.store(cacheEntry);
289
+ logger.debug('Response cached', {
290
+ taskId: taskResponse.taskId,
291
+ cacheId: cacheEntry.id,
292
+ });
293
+ }
294
+ catch (error) {
295
+ logger.error('Failed to cache response', error);
296
+ // Continue even if caching fails
297
+ }
298
+ }
299
+ // Forward response to original requestor
300
+ const requestorConnectionId = taskResponse.requestorConnectionId ||
301
+ this.taskRequestors.get(taskResponse.taskId);
302
+ console.log('🔍 FORWARDING RESPONSE:');
303
+ console.log(' Task ID:', taskResponse.taskId);
304
+ console.log(' Requestor:', requestorConnectionId);
305
+ console.log(' All tracked:', Array.from(this.taskRequestors.entries()));
306
+ if (requestorConnectionId) {
307
+ console.log(' ✅ Sending to requestor');
308
+ this.sendMessage(requestorConnectionId, {
309
+ type: types_1.MessageType.TASK_RESPONSE,
310
+ messageId: (0, uuid_1.v4)(),
311
+ timestamp: Date.now(),
312
+ payload: taskResponse,
313
+ });
314
+ // Clean up the tracking
315
+ this.taskRequestors.delete(taskResponse.taskId);
316
+ }
317
+ else {
318
+ console.log(' ❌ NO REQUESTOR FOUND!');
319
+ }
320
+ this.recordLatency(taskResponse.executionTime || 0);
321
+ }
322
+ /**
323
+ * Handle agent discovery request
324
+ */
325
+ async handleDiscover(connectionId, message) {
326
+ const agents = this.wsServer.getConnections()
327
+ .filter(conn => conn.agentId !== null)
328
+ .map(conn => ({
329
+ agentId: conn.agentId,
330
+ capabilities: conn.capabilities,
331
+ connectedAt: conn.connectedAt,
332
+ }));
333
+ logger.debug('Agent discovery', {
334
+ connectionId,
335
+ agentCount: agents.length,
336
+ });
337
+ this.sendMessage(connectionId, {
338
+ type: types_1.MessageType.DISCOVER_RESPONSE,
339
+ messageId: (0, uuid_1.v4)(),
340
+ timestamp: Date.now(),
341
+ payload: {
342
+ agents,
343
+ totalAgents: agents.length,
344
+ },
345
+ });
346
+ }
347
+ /**
348
+ * Handle ping message
349
+ */
350
+ handlePing(connectionId, message) {
351
+ this.sendMessage(connectionId, {
352
+ type: types_1.MessageType.PONG,
353
+ messageId: (0, uuid_1.v4)(),
354
+ timestamp: Date.now(),
355
+ payload: {
356
+ originalMessageId: message.messageId,
357
+ },
358
+ });
359
+ }
360
+ /**
361
+ * Find agent with required capabilities
362
+ */
363
+ findCapableAgent(requiredCapabilities) {
364
+ const connections = this.wsServer.getConnections();
365
+ for (const conn of connections) {
366
+ if (!conn.agentId)
367
+ continue;
368
+ const hasAllCapabilities = requiredCapabilities.every(cap => conn.capabilities.includes(cap));
369
+ if (hasAllCapabilities) {
370
+ return conn;
371
+ }
372
+ }
373
+ return null;
374
+ }
375
+ /**
376
+ * Check if message is dashboard-specific
377
+ */
378
+ isDashboardMessage(type) {
379
+ const dashboardTypes = ['GET_METRICS', 'GET_AGENTS', 'GET_STATE_HISTORY'];
380
+ return dashboardTypes.includes(type);
381
+ }
382
+ /**
383
+ * Validate IAP message structure
384
+ */
385
+ isValidIAPMessage(message) {
386
+ return (message &&
387
+ typeof message.type === 'string' &&
388
+ typeof message.messageId === 'string' &&
389
+ typeof message.timestamp === 'number' &&
390
+ message.payload !== undefined);
391
+ }
392
+ /**
393
+ * Send message to connection
394
+ */
395
+ sendMessage(connectionId, message) {
396
+ const success = this.wsServer.sendToConnection(connectionId, message);
397
+ if (!success) {
398
+ logger.warn('Failed to send message', {
399
+ connectionId,
400
+ messageType: message.type,
401
+ });
402
+ }
403
+ }
404
+ /**
405
+ * Send error message
406
+ */
407
+ sendError(connectionId, errorMessage) {
408
+ this.sendMessage(connectionId, {
409
+ type: types_1.MessageType.ERROR,
410
+ messageId: (0, uuid_1.v4)(),
411
+ timestamp: Date.now(),
412
+ payload: {
413
+ error: errorMessage,
414
+ },
415
+ });
416
+ }
417
+ /**
418
+ * Record request latency
419
+ */
420
+ recordLatency(latency) {
421
+ this.requestLatencies.push(latency);
422
+ // Keep only last 1000 latencies
423
+ if (this.requestLatencies.length > 1000) {
424
+ this.requestLatencies.shift();
425
+ }
426
+ // Update average
427
+ const sum = this.requestLatencies.reduce((a, b) => a + b, 0);
428
+ this.metrics.averageLatency = sum / this.requestLatencies.length;
429
+ }
430
+ /**
431
+ * Get orchestration metrics
432
+ */
433
+ getMetrics() {
434
+ return {
435
+ ...this.metrics,
436
+ cacheStats: this.subconsciousEngine.getStats(),
437
+ };
438
+ }
439
+ /**
440
+ * Print metrics summary
441
+ */
442
+ printMetrics() {
443
+ const cacheStats = this.subconsciousEngine.getStats();
444
+ console.log('\n=== Orchestration Metrics ===');
445
+ console.log(`Total Requests: ${this.metrics.totalRequests}`);
446
+ console.log(`Cache Hits: ${this.metrics.cacheHits} (${cacheStats.hitRate})`);
447
+ console.log(`Cache Misses: ${this.metrics.cacheMisses}`);
448
+ console.log(`Average Latency: ${this.metrics.averageLatency.toFixed(2)}ms`);
449
+ console.log(`Tokens Saved: ${this.metrics.tokensSaved.toLocaleString()}`);
450
+ console.log(`Cost Saved: $${this.metrics.costSaved.toFixed(4)}`);
451
+ console.log('============================\n');
452
+ }
453
+ }
454
+ exports.OrchestrationEngine = OrchestrationEngine;
455
+ //# sourceMappingURL=OrchestrationEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrchestrationEngine.js","sourceRoot":"","sources":["../../src/core/OrchestrationEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { CacheEntry, SemanticMatch } from '../types';
2
+ /**
3
+ * Subconscious Semantic Engine
4
+ * Provides semantic caching using ChromaDB and Ollama embeddings
5
+ * Implements the "short-circuit" logic for instant task resolution
6
+ */
7
+ export declare class SubconsciousEngine {
8
+ private client;
9
+ private collection;
10
+ private isInitialized;
11
+ private cacheHits;
12
+ private cacheMisses;
13
+ constructor();
14
+ /**
15
+ * Initialize the engine and create/get collection
16
+ */
17
+ initialize(): Promise<void>;
18
+ /**
19
+ * Generate embedding using Ollama
20
+ */
21
+ private generateEmbedding;
22
+ /**
23
+ * Search for semantically similar cached responses
24
+ * Returns the best match if similarity exceeds threshold
25
+ */
26
+ search(query: string): Promise<SemanticMatch | null>;
27
+ /**
28
+ * Store a new response in the semantic cache
29
+ */
30
+ store(entry: CacheEntry): Promise<void>;
31
+ /**
32
+ * Prune old entries if cache exceeds max size
33
+ */
34
+ private pruneIfNeeded;
35
+ /**
36
+ * Get cache statistics
37
+ */
38
+ getStats(): {
39
+ cacheHits: number;
40
+ cacheMisses: number;
41
+ totalQueries: number;
42
+ hitRate: string;
43
+ };
44
+ /**
45
+ * Clear all cache entries
46
+ */
47
+ clear(): Promise<void>;
48
+ /**
49
+ * Shutdown the engine
50
+ */
51
+ shutdown(): Promise<void>;
52
+ }
53
+ //# sourceMappingURL=SubconsciousEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SubconsciousEngine.d.ts","sourceRoot":"","sources":["../../src/core/SubconsciousEngine.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKrD;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAa;;IAQhC;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBxC;;OAEG;YACW,iBAAiB;IA+B/B;;;OAGG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAqFjE;;OAEG;IACU,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA4CpD;;OAEG;YACW,aAAa;IAiC3B;;OAEG;IACI,QAAQ;;;;;;IAYf;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BnC;;OAEG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKvC"}