@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
package/dist/index.js ADDED
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ /**
3
+ * Subconscious Router - Main Entry Point
4
+ *
5
+ * High-performance orchestration hub for autonomous AI agents
6
+ * Implements the Inter-Agent Protocol (I.A.P.) for standardized communication
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
25
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
26
+ };
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.Lemma = exports.validateConfig = exports.getSecurityConfig = exports.config = exports.Speculative = exports.Consensus = exports.Subconscious = exports.Protocol = exports.SubconsciousHub = void 0;
46
+ const WebSocketServer_1 = require("./core/WebSocketServer");
47
+ const AgentRegistry_1 = require("./core/AgentRegistry");
48
+ const router_1 = require("./core/router");
49
+ /**
50
+ * Subconscious Router Hub
51
+ * Orchestrates WebSocket connections, agent registry, and message routing
52
+ */
53
+ class SubconsciousHub {
54
+ constructor(config = {}) {
55
+ this.isRunning = false;
56
+ // Initialize components
57
+ this.wsServer = new WebSocketServer_1.WebSocketServer(config.server || { port: 8080 });
58
+ this.agentRegistry = new AgentRegistry_1.AgentRegistry();
59
+ this.router = new router_1.Router(this.wsServer, this.agentRegistry, config.router || {});
60
+ this.setupEventHandlers();
61
+ }
62
+ /**
63
+ * Setup event handlers for monitoring
64
+ */
65
+ setupEventHandlers() {
66
+ // WebSocket events
67
+ this.wsServer.on('ready', () => {
68
+ console.log('✓ WebSocket server ready');
69
+ });
70
+ this.wsServer.on('error', (error) => {
71
+ console.error('✗ WebSocket server error:', error);
72
+ });
73
+ // Agent registry events
74
+ this.agentRegistry.on('agentRegistered', (agent) => {
75
+ console.log(`✓ Agent registered: ${agent.agentId}`);
76
+ });
77
+ this.agentRegistry.on('agentUnregistered', (agent) => {
78
+ console.log(`✗ Agent unregistered: ${agent.agentId}`);
79
+ });
80
+ this.agentRegistry.on('agentReconnected', (agent) => {
81
+ console.log(`↻ Agent reconnected: ${agent.agentId}`);
82
+ });
83
+ // Router events
84
+ this.router.on('taskRouted', ({ taskId, routingDecision }) => {
85
+ console.log(`→ Task ${taskId} routed to ${routingDecision.selectedAgent?.agentId}`);
86
+ });
87
+ this.router.on('taskCompleted', ({ taskId, responseTime }) => {
88
+ console.log(`✓ Task ${taskId} completed in ${responseTime}ms`);
89
+ });
90
+ this.router.on('taskFailed', ({ taskId, reason }) => {
91
+ console.log(`✗ Task ${taskId} failed: ${reason}`);
92
+ });
93
+ }
94
+ /**
95
+ * Start the hub
96
+ */
97
+ async start() {
98
+ if (this.isRunning) {
99
+ throw new Error('Hub is already running');
100
+ }
101
+ console.log('Starting Subconscious Router Hub...');
102
+ await this.wsServer.start();
103
+ this.isRunning = true;
104
+ console.log('✓ Hub is running');
105
+ this.printStatus();
106
+ }
107
+ /**
108
+ * Stop the hub
109
+ */
110
+ async stop() {
111
+ if (!this.isRunning) {
112
+ return;
113
+ }
114
+ console.log('Stopping Subconscious Router Hub...');
115
+ this.router.stop();
116
+ this.agentRegistry.stop();
117
+ await this.wsServer.stop();
118
+ this.isRunning = false;
119
+ console.log('✓ Hub stopped');
120
+ }
121
+ /**
122
+ * Get hub statistics
123
+ */
124
+ getStats() {
125
+ return this.router.getStats();
126
+ }
127
+ /**
128
+ * Print current status
129
+ */
130
+ printStatus() {
131
+ const stats = this.getStats();
132
+ console.log('\n=== Hub Status ===');
133
+ console.log(`Active Connections: ${stats.connectionStats.activeConnections}`);
134
+ console.log(`Online Agents: ${stats.agentStats.onlineAgents}`);
135
+ console.log(`Pending Tasks: ${stats.pendingTasks}`);
136
+ console.log(`Total Tasks Completed: ${stats.agentStats.totalTasksCompleted}`);
137
+ console.log('==================\n');
138
+ }
139
+ /**
140
+ * Get WebSocket server instance
141
+ */
142
+ getWebSocketServer() {
143
+ return this.wsServer;
144
+ }
145
+ /**
146
+ * Get agent registry instance
147
+ */
148
+ getAgentRegistry() {
149
+ return this.agentRegistry;
150
+ }
151
+ /**
152
+ * Get router instance
153
+ */
154
+ getRouter() {
155
+ return this.router;
156
+ }
157
+ }
158
+ exports.SubconsciousHub = SubconsciousHub;
159
+ // Export all types and core components
160
+ __exportStar(require("./types"), exports);
161
+ __exportStar(require("./core"), exports);
162
+ __exportStar(require("./security"), exports);
163
+ exports.Protocol = __importStar(require("./protocol"));
164
+ exports.Subconscious = __importStar(require("./subconscious"));
165
+ exports.Consensus = __importStar(require("./consensus"));
166
+ exports.Speculative = __importStar(require("./speculative"));
167
+ var config_1 = require("./config");
168
+ Object.defineProperty(exports, "config", { enumerable: true, get: function () { return config_1.config; } });
169
+ Object.defineProperty(exports, "getSecurityConfig", { enumerable: true, get: function () { return config_1.getSecurityConfig; } });
170
+ Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return config_1.validateConfig; } });
171
+ // Embedded mode — zero-config semantic cache
172
+ var embed_1 = require("./embed");
173
+ Object.defineProperty(exports, "Lemma", { enumerable: true, get: function () { return embed_1.Lemma; } });
174
+ // Export default hub instance creator
175
+ exports.default = SubconsciousHub;
176
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Inter-Agent Protocol (I.A.P.) v1.0.0
3
+ *
4
+ * Protocol flow definitions and state machine logic
5
+ */
6
+ import { MessageType, TaskStatus, AgentId, TaskId } from './types';
7
+ /**
8
+ * Protocol flow states
9
+ */
10
+ export declare enum FlowState {
11
+ DISCONNECTED = "disconnected",
12
+ HANDSHAKING = "handshaking",
13
+ CONNECTED = "connected",
14
+ IDLE = "idle",
15
+ DISCOVERING = "discovering",
16
+ PROPOSING = "proposing",
17
+ BIDDING = "bidding",
18
+ ASSIGNING = "assigning",
19
+ EXECUTING = "executing",
20
+ TRANSFERRING_CONTEXT = "transferring_context",
21
+ COMPLETING = "completing",
22
+ ERROR = "error",
23
+ DISCONNECTING = "disconnecting"
24
+ }
25
+ /**
26
+ * Valid state transitions
27
+ */
28
+ export declare const VALID_TRANSITIONS: Record<FlowState, FlowState[]>;
29
+ /**
30
+ * Message type to state mapping
31
+ */
32
+ export declare const MESSAGE_TO_STATE: Record<MessageType, FlowState>;
33
+ /**
34
+ * Protocol flow definitions
35
+ */
36
+ export interface ProtocolFlow {
37
+ name: string;
38
+ description: string;
39
+ steps: FlowStep[];
40
+ }
41
+ /**
42
+ * Individual step in a protocol flow
43
+ */
44
+ export interface FlowStep {
45
+ step: number;
46
+ actor: 'agent' | 'router' | 'any';
47
+ messageType: MessageType;
48
+ description: string;
49
+ required: boolean;
50
+ nextSteps?: number[];
51
+ }
52
+ /**
53
+ * Connection Flow: Agent joins the network
54
+ */
55
+ export declare const CONNECTION_FLOW: ProtocolFlow;
56
+ /**
57
+ * Discovery Flow: Agent discovers available capabilities
58
+ */
59
+ export declare const DISCOVERY_FLOW: ProtocolFlow;
60
+ /**
61
+ * Task Negotiation Flow: Task proposal, bidding, and assignment
62
+ */
63
+ export declare const TASK_NEGOTIATION_FLOW: ProtocolFlow;
64
+ /**
65
+ * Context Transfer Flow: Stateful handoff between agents
66
+ */
67
+ export declare const CONTEXT_TRANSFER_FLOW: ProtocolFlow;
68
+ /**
69
+ * Validates if a state transition is allowed
70
+ */
71
+ export declare function isValidTransition(from: FlowState, to: FlowState): boolean;
72
+ /**
73
+ * Gets the expected state for a message type
74
+ */
75
+ export declare function getStateForMessage(messageType: MessageType): FlowState;
76
+ /**
77
+ * Determines the next expected message types for a given state
78
+ */
79
+ export declare function getExpectedMessages(state: FlowState): MessageType[];
80
+ /**
81
+ * Task lifecycle tracker
82
+ */
83
+ export declare class TaskLifecycle {
84
+ private taskStates;
85
+ private taskHistory;
86
+ /**
87
+ * Updates task status
88
+ */
89
+ updateStatus(taskId: TaskId, status: TaskStatus): void;
90
+ /**
91
+ * Gets current task status
92
+ */
93
+ getStatus(taskId: TaskId): TaskStatus | undefined;
94
+ /**
95
+ * Gets task history
96
+ */
97
+ getHistory(taskId: TaskId): TaskStatus[];
98
+ /**
99
+ * Validates task status transition
100
+ */
101
+ private isValidTaskTransition;
102
+ /**
103
+ * Removes completed or failed tasks
104
+ */
105
+ cleanup(olderThanMs?: number): void;
106
+ }
107
+ /**
108
+ * Flow execution context
109
+ */
110
+ export interface FlowContext {
111
+ currentState: FlowState;
112
+ agentId: AgentId;
113
+ sessionId?: string;
114
+ activeTaskId?: TaskId;
115
+ lastMessageType?: MessageType;
116
+ lastTransitionTime: number;
117
+ }
118
+ /**
119
+ * Creates a new flow context
120
+ */
121
+ export declare function createFlowContext(agentId: AgentId): FlowContext;
122
+ /**
123
+ * Transitions flow context to a new state
124
+ */
125
+ export declare function transitionFlow(context: FlowContext, messageType: MessageType): FlowContext;
126
+ //# sourceMappingURL=flows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.d.ts","sourceRoot":"","sources":["../../src/protocol/flows.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,WAAW,EACX,UAAU,EACV,OAAO,EACP,MAAM,EACP,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,oBAAY,SAAS;IAEnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IAGvB,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,oBAAoB,yBAAyB;IAC7C,UAAU,eAAe;IAGzB,KAAK,UAAU;IACf,aAAa,kBAAkB;CAChC;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,CAc5D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,CAe3D,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,YAqC7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,YAqB5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YA6DnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAqBnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,GAAG,OAAO,CAGzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,CAEtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,WAAW,EAAE,CAUnE;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,UAAU,CAAsC;IACxD,OAAO,CAAC,WAAW,CAAwC;IAE3D;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAkBtD;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIjD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE;IAIxC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,WAAW,GAAE,MAAgB,GAAG,IAAI;CAY7C;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,SAAS,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW,CAM/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,WAAW,GACvB,WAAW,CAgBb"}
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ /**
3
+ * Inter-Agent Protocol (I.A.P.) v1.0.0
4
+ *
5
+ * Protocol flow definitions and state machine logic
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TaskLifecycle = exports.CONTEXT_TRANSFER_FLOW = exports.TASK_NEGOTIATION_FLOW = exports.DISCOVERY_FLOW = exports.CONNECTION_FLOW = exports.MESSAGE_TO_STATE = exports.VALID_TRANSITIONS = exports.FlowState = void 0;
9
+ exports.isValidTransition = isValidTransition;
10
+ exports.getStateForMessage = getStateForMessage;
11
+ exports.getExpectedMessages = getExpectedMessages;
12
+ exports.createFlowContext = createFlowContext;
13
+ exports.transitionFlow = transitionFlow;
14
+ const types_1 = require("./types");
15
+ /**
16
+ * Protocol flow states
17
+ */
18
+ var FlowState;
19
+ (function (FlowState) {
20
+ // Connection flow
21
+ FlowState["DISCONNECTED"] = "disconnected";
22
+ FlowState["HANDSHAKING"] = "handshaking";
23
+ FlowState["CONNECTED"] = "connected";
24
+ // Task flow
25
+ FlowState["IDLE"] = "idle";
26
+ FlowState["DISCOVERING"] = "discovering";
27
+ FlowState["PROPOSING"] = "proposing";
28
+ FlowState["BIDDING"] = "bidding";
29
+ FlowState["ASSIGNING"] = "assigning";
30
+ FlowState["EXECUTING"] = "executing";
31
+ FlowState["TRANSFERRING_CONTEXT"] = "transferring_context";
32
+ FlowState["COMPLETING"] = "completing";
33
+ // Error states
34
+ FlowState["ERROR"] = "error";
35
+ FlowState["DISCONNECTING"] = "disconnecting";
36
+ })(FlowState || (exports.FlowState = FlowState = {}));
37
+ /**
38
+ * Valid state transitions
39
+ */
40
+ exports.VALID_TRANSITIONS = {
41
+ [FlowState.DISCONNECTED]: [FlowState.HANDSHAKING],
42
+ [FlowState.HANDSHAKING]: [FlowState.CONNECTED, FlowState.ERROR, FlowState.DISCONNECTED],
43
+ [FlowState.CONNECTED]: [FlowState.IDLE, FlowState.DISCOVERING, FlowState.DISCONNECTING],
44
+ [FlowState.IDLE]: [FlowState.DISCOVERING, FlowState.PROPOSING, FlowState.DISCONNECTING],
45
+ [FlowState.DISCOVERING]: [FlowState.IDLE, FlowState.PROPOSING, FlowState.ERROR],
46
+ [FlowState.PROPOSING]: [FlowState.BIDDING, FlowState.IDLE, FlowState.ERROR],
47
+ [FlowState.BIDDING]: [FlowState.ASSIGNING, FlowState.IDLE, FlowState.ERROR],
48
+ [FlowState.ASSIGNING]: [FlowState.EXECUTING, FlowState.ERROR],
49
+ [FlowState.EXECUTING]: [FlowState.TRANSFERRING_CONTEXT, FlowState.COMPLETING, FlowState.ERROR],
50
+ [FlowState.TRANSFERRING_CONTEXT]: [FlowState.EXECUTING, FlowState.COMPLETING, FlowState.ERROR],
51
+ [FlowState.COMPLETING]: [FlowState.IDLE],
52
+ [FlowState.ERROR]: [FlowState.IDLE, FlowState.DISCONNECTING],
53
+ [FlowState.DISCONNECTING]: [FlowState.DISCONNECTED]
54
+ };
55
+ /**
56
+ * Message type to state mapping
57
+ */
58
+ exports.MESSAGE_TO_STATE = {
59
+ [types_1.MessageType.HANDSHAKE]: FlowState.HANDSHAKING,
60
+ [types_1.MessageType.HANDSHAKE_ACK]: FlowState.CONNECTED,
61
+ [types_1.MessageType.CAPABILITY_DISCOVERY]: FlowState.DISCOVERING,
62
+ [types_1.MessageType.CAPABILITY_RESPONSE]: FlowState.IDLE,
63
+ [types_1.MessageType.TASK_PROPOSAL]: FlowState.PROPOSING,
64
+ [types_1.MessageType.TASK_BID]: FlowState.BIDDING,
65
+ [types_1.MessageType.TASK_ASSIGNMENT]: FlowState.ASSIGNING,
66
+ [types_1.MessageType.TASK_ACCEPTANCE]: FlowState.EXECUTING,
67
+ [types_1.MessageType.TASK_REJECTION]: FlowState.IDLE,
68
+ [types_1.MessageType.CONTEXT_TRANSFER]: FlowState.TRANSFERRING_CONTEXT,
69
+ [types_1.MessageType.TASK_RESULT]: FlowState.COMPLETING,
70
+ [types_1.MessageType.ERROR]: FlowState.ERROR,
71
+ [types_1.MessageType.HEARTBEAT]: FlowState.CONNECTED,
72
+ [types_1.MessageType.DISCONNECT]: FlowState.DISCONNECTING
73
+ };
74
+ /**
75
+ * Connection Flow: Agent joins the network
76
+ */
77
+ exports.CONNECTION_FLOW = {
78
+ name: 'Connection Flow',
79
+ description: 'Agent handshake and registration with the router',
80
+ steps: [
81
+ {
82
+ step: 1,
83
+ actor: 'agent',
84
+ messageType: types_1.MessageType.HANDSHAKE,
85
+ description: 'Agent sends handshake with capabilities',
86
+ required: true,
87
+ nextSteps: [2]
88
+ },
89
+ {
90
+ step: 2,
91
+ actor: 'router',
92
+ messageType: types_1.MessageType.HANDSHAKE_ACK,
93
+ description: 'Router acknowledges and assigns session',
94
+ required: true,
95
+ nextSteps: [3]
96
+ },
97
+ {
98
+ step: 3,
99
+ actor: 'agent',
100
+ messageType: types_1.MessageType.HEARTBEAT,
101
+ description: 'Agent sends periodic heartbeats',
102
+ required: true,
103
+ nextSteps: [3, 4]
104
+ },
105
+ {
106
+ step: 4,
107
+ actor: 'agent',
108
+ messageType: types_1.MessageType.DISCONNECT,
109
+ description: 'Agent gracefully disconnects',
110
+ required: false,
111
+ nextSteps: []
112
+ }
113
+ ]
114
+ };
115
+ /**
116
+ * Discovery Flow: Agent discovers available capabilities
117
+ */
118
+ exports.DISCOVERY_FLOW = {
119
+ name: 'Discovery Flow',
120
+ description: 'Agent queries available capabilities in the network',
121
+ steps: [
122
+ {
123
+ step: 1,
124
+ actor: 'agent',
125
+ messageType: types_1.MessageType.CAPABILITY_DISCOVERY,
126
+ description: 'Agent requests capability information',
127
+ required: true,
128
+ nextSteps: [2]
129
+ },
130
+ {
131
+ step: 2,
132
+ actor: 'router',
133
+ messageType: types_1.MessageType.CAPABILITY_RESPONSE,
134
+ description: 'Router responds with available agents and capabilities',
135
+ required: true,
136
+ nextSteps: []
137
+ }
138
+ ]
139
+ };
140
+ /**
141
+ * Task Negotiation Flow: Task proposal, bidding, and assignment
142
+ */
143
+ exports.TASK_NEGOTIATION_FLOW = {
144
+ name: 'Task Negotiation Flow',
145
+ description: 'Complete flow from task proposal to assignment',
146
+ steps: [
147
+ {
148
+ step: 1,
149
+ actor: 'agent',
150
+ messageType: types_1.MessageType.TASK_PROPOSAL,
151
+ description: 'Agent proposes a task to be executed',
152
+ required: true,
153
+ nextSteps: [2]
154
+ },
155
+ {
156
+ step: 2,
157
+ actor: 'router',
158
+ messageType: types_1.MessageType.TASK_PROPOSAL,
159
+ description: 'Router broadcasts task to capable agents',
160
+ required: true,
161
+ nextSteps: [3]
162
+ },
163
+ {
164
+ step: 3,
165
+ actor: 'agent',
166
+ messageType: types_1.MessageType.TASK_BID,
167
+ description: 'Capable agents submit bids',
168
+ required: true,
169
+ nextSteps: [4]
170
+ },
171
+ {
172
+ step: 4,
173
+ actor: 'router',
174
+ messageType: types_1.MessageType.TASK_ASSIGNMENT,
175
+ description: 'Router assigns task to best bidder',
176
+ required: true,
177
+ nextSteps: [5, 6]
178
+ },
179
+ {
180
+ step: 5,
181
+ actor: 'agent',
182
+ messageType: types_1.MessageType.TASK_ACCEPTANCE,
183
+ description: 'Assigned agent accepts the task',
184
+ required: true,
185
+ nextSteps: [7]
186
+ },
187
+ {
188
+ step: 6,
189
+ actor: 'agent',
190
+ messageType: types_1.MessageType.TASK_REJECTION,
191
+ description: 'Assigned agent rejects (fallback to next bidder)',
192
+ required: false,
193
+ nextSteps: [4]
194
+ },
195
+ {
196
+ step: 7,
197
+ actor: 'agent',
198
+ messageType: types_1.MessageType.TASK_RESULT,
199
+ description: 'Agent returns task result',
200
+ required: true,
201
+ nextSteps: []
202
+ }
203
+ ]
204
+ };
205
+ /**
206
+ * Context Transfer Flow: Stateful handoff between agents
207
+ */
208
+ exports.CONTEXT_TRANSFER_FLOW = {
209
+ name: 'Context Transfer Flow',
210
+ description: 'Transfer execution context between agents',
211
+ steps: [
212
+ {
213
+ step: 1,
214
+ actor: 'agent',
215
+ messageType: types_1.MessageType.CONTEXT_TRANSFER,
216
+ description: 'Source agent sends context to router',
217
+ required: true,
218
+ nextSteps: [2]
219
+ },
220
+ {
221
+ step: 2,
222
+ actor: 'router',
223
+ messageType: types_1.MessageType.CONTEXT_TRANSFER,
224
+ description: 'Router forwards context to destination agent',
225
+ required: true,
226
+ nextSteps: []
227
+ }
228
+ ]
229
+ };
230
+ /**
231
+ * Validates if a state transition is allowed
232
+ */
233
+ function isValidTransition(from, to) {
234
+ const allowedTransitions = exports.VALID_TRANSITIONS[from];
235
+ return allowedTransitions ? allowedTransitions.includes(to) : false;
236
+ }
237
+ /**
238
+ * Gets the expected state for a message type
239
+ */
240
+ function getStateForMessage(messageType) {
241
+ return exports.MESSAGE_TO_STATE[messageType] || FlowState.ERROR;
242
+ }
243
+ /**
244
+ * Determines the next expected message types for a given state
245
+ */
246
+ function getExpectedMessages(state) {
247
+ const expectedMessages = [];
248
+ for (const [messageType, targetState] of Object.entries(exports.MESSAGE_TO_STATE)) {
249
+ if (isValidTransition(state, targetState)) {
250
+ expectedMessages.push(messageType);
251
+ }
252
+ }
253
+ return expectedMessages;
254
+ }
255
+ /**
256
+ * Task lifecycle tracker
257
+ */
258
+ class TaskLifecycle {
259
+ constructor() {
260
+ this.taskStates = new Map();
261
+ this.taskHistory = new Map();
262
+ }
263
+ /**
264
+ * Updates task status
265
+ */
266
+ updateStatus(taskId, status) {
267
+ const currentStatus = this.taskStates.get(taskId);
268
+ // Validate transition
269
+ if (currentStatus && !this.isValidTaskTransition(currentStatus, status)) {
270
+ throw new Error(`Invalid task transition: ${currentStatus} -> ${status} for task ${taskId}`);
271
+ }
272
+ this.taskStates.set(taskId, status);
273
+ // Track history
274
+ const history = this.taskHistory.get(taskId) || [];
275
+ history.push(status);
276
+ this.taskHistory.set(taskId, history);
277
+ }
278
+ /**
279
+ * Gets current task status
280
+ */
281
+ getStatus(taskId) {
282
+ return this.taskStates.get(taskId);
283
+ }
284
+ /**
285
+ * Gets task history
286
+ */
287
+ getHistory(taskId) {
288
+ return this.taskHistory.get(taskId) || [];
289
+ }
290
+ /**
291
+ * Validates task status transition
292
+ */
293
+ isValidTaskTransition(from, to) {
294
+ const validTransitions = {
295
+ [types_1.TaskStatus.PROPOSED]: [types_1.TaskStatus.BIDDING, types_1.TaskStatus.CANCELLED],
296
+ [types_1.TaskStatus.BIDDING]: [types_1.TaskStatus.ASSIGNED, types_1.TaskStatus.CANCELLED],
297
+ [types_1.TaskStatus.ASSIGNED]: [types_1.TaskStatus.IN_PROGRESS, types_1.TaskStatus.CANCELLED],
298
+ [types_1.TaskStatus.IN_PROGRESS]: [types_1.TaskStatus.COMPLETED, types_1.TaskStatus.FAILED, types_1.TaskStatus.CANCELLED],
299
+ [types_1.TaskStatus.COMPLETED]: [],
300
+ [types_1.TaskStatus.FAILED]: [],
301
+ [types_1.TaskStatus.CANCELLED]: []
302
+ };
303
+ return validTransitions[from]?.includes(to) || false;
304
+ }
305
+ /**
306
+ * Removes completed or failed tasks
307
+ */
308
+ cleanup(olderThanMs = 3600000) {
309
+ const now = Date.now();
310
+ const cutoff = now - olderThanMs;
311
+ // This is a simplified cleanup - in production, you'd track timestamps
312
+ for (const [taskId, status] of this.taskStates.entries()) {
313
+ if (status === types_1.TaskStatus.COMPLETED || status === types_1.TaskStatus.FAILED) {
314
+ this.taskStates.delete(taskId);
315
+ this.taskHistory.delete(taskId);
316
+ }
317
+ }
318
+ }
319
+ }
320
+ exports.TaskLifecycle = TaskLifecycle;
321
+ /**
322
+ * Creates a new flow context
323
+ */
324
+ function createFlowContext(agentId) {
325
+ return {
326
+ currentState: FlowState.DISCONNECTED,
327
+ agentId,
328
+ lastTransitionTime: Date.now()
329
+ };
330
+ }
331
+ /**
332
+ * Transitions flow context to a new state
333
+ */
334
+ function transitionFlow(context, messageType) {
335
+ const newState = getStateForMessage(messageType);
336
+ if (!isValidTransition(context.currentState, newState)) {
337
+ throw new Error(`Invalid flow transition: ${context.currentState} -> ${newState} ` +
338
+ `(message: ${messageType})`);
339
+ }
340
+ return {
341
+ ...context,
342
+ currentState: newState,
343
+ lastMessageType: messageType,
344
+ lastTransitionTime: Date.now()
345
+ };
346
+ }
347
+ //# sourceMappingURL=flows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flows.js","sourceRoot":"","sources":["../../src/protocol/flows.ts"],"names":[],"mappings":"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"}