@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.
- package/LICENSE +21 -0
- package/README.md +311 -0
- package/dist/cloud/KeyManager.d.ts +29 -0
- package/dist/cloud/KeyManager.d.ts.map +1 -0
- package/dist/cloud/KeyManager.js +142 -0
- package/dist/cloud/KeyManager.js.map +1 -0
- package/dist/cloud/TenantCache.d.ts +29 -0
- package/dist/cloud/TenantCache.d.ts.map +1 -0
- package/dist/cloud/TenantCache.js +162 -0
- package/dist/cloud/TenantCache.js.map +1 -0
- package/dist/cloud/index.d.ts +4 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +23 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/server.d.ts +17 -0
- package/dist/cloud/server.d.ts.map +1 -0
- package/dist/cloud/server.js +189 -0
- package/dist/cloud/server.js.map +1 -0
- package/dist/cloud/types.d.ts +35 -0
- package/dist/cloud/types.d.ts.map +1 -0
- package/dist/cloud/types.js +14 -0
- package/dist/cloud/types.js.map +1 -0
- package/dist/config/index.d.ts +44 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +161 -0
- package/dist/config/index.js.map +1 -0
- package/dist/consensus/ConsensusEngine.d.ts +119 -0
- package/dist/consensus/ConsensusEngine.d.ts.map +1 -0
- package/dist/consensus/ConsensusEngine.js +314 -0
- package/dist/consensus/ConsensusEngine.js.map +1 -0
- package/dist/consensus/ModelPool.d.ts +103 -0
- package/dist/consensus/ModelPool.d.ts.map +1 -0
- package/dist/consensus/ModelPool.js +276 -0
- package/dist/consensus/ModelPool.js.map +1 -0
- package/dist/consensus/index.d.ts +8 -0
- package/dist/consensus/index.d.ts.map +1 -0
- package/dist/consensus/index.js +13 -0
- package/dist/consensus/index.js.map +1 -0
- package/dist/core/AgentRegistry.d.ts +89 -0
- package/dist/core/AgentRegistry.d.ts.map +1 -0
- package/dist/core/AgentRegistry.js +264 -0
- package/dist/core/AgentRegistry.js.map +1 -0
- package/dist/core/DashboardBroadcaster.d.ts +67 -0
- package/dist/core/DashboardBroadcaster.d.ts.map +1 -0
- package/dist/core/DashboardBroadcaster.js +264 -0
- package/dist/core/DashboardBroadcaster.js.map +1 -0
- package/dist/core/OrchestrationEngine.d.ts +84 -0
- package/dist/core/OrchestrationEngine.d.ts.map +1 -0
- package/dist/core/OrchestrationEngine.js +455 -0
- package/dist/core/OrchestrationEngine.js.map +1 -0
- package/dist/core/SubconsciousEngine.d.ts +53 -0
- package/dist/core/SubconsciousEngine.d.ts.map +1 -0
- package/dist/core/SubconsciousEngine.js +273 -0
- package/dist/core/SubconsciousEngine.js.map +1 -0
- package/dist/core/WebSocketServer.d.ts +89 -0
- package/dist/core/WebSocketServer.d.ts.map +1 -0
- package/dist/core/WebSocketServer.js +416 -0
- package/dist/core/WebSocketServer.js.map +1 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +24 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/router.d.ts +105 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/router.js +420 -0
- package/dist/core/router.js.map +1 -0
- package/dist/embed/index.d.ts +153 -0
- package/dist/embed/index.d.ts.map +1 -0
- package/dist/embed/index.js +408 -0
- package/dist/embed/index.js.map +1 -0
- package/dist/embed.d.ts +11 -0
- package/dist/embed.d.ts.map +1 -0
- package/dist/embed.js +19 -0
- package/dist/embed.js.map +1 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +176 -0
- package/dist/index.js.map +1 -0
- package/dist/protocol/flows.d.ts +126 -0
- package/dist/protocol/flows.d.ts.map +1 -0
- package/dist/protocol/flows.js +347 -0
- package/dist/protocol/flows.js.map +1 -0
- package/dist/protocol/iap.d.ts +54 -0
- package/dist/protocol/iap.d.ts.map +1 -0
- package/dist/protocol/iap.js +108 -0
- package/dist/protocol/iap.js.map +1 -0
- package/dist/protocol/index.d.ts +23 -0
- package/dist/protocol/index.d.ts.map +1 -0
- package/dist/protocol/index.js +45 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/protocol/types.d.ts +332 -0
- package/dist/protocol/types.d.ts.map +1 -0
- package/dist/protocol/types.js +57 -0
- package/dist/protocol/types.js.map +1 -0
- package/dist/protocol/utils.d.ts +130 -0
- package/dist/protocol/utils.d.ts.map +1 -0
- package/dist/protocol/utils.js +292 -0
- package/dist/protocol/utils.js.map +1 -0
- package/dist/protocol/validators.d.ts +54 -0
- package/dist/protocol/validators.d.ts.map +1 -0
- package/dist/protocol/validators.js +344 -0
- package/dist/protocol/validators.js.map +1 -0
- package/dist/security/AuthManager.d.ts +73 -0
- package/dist/security/AuthManager.d.ts.map +1 -0
- package/dist/security/AuthManager.js +102 -0
- package/dist/security/AuthManager.js.map +1 -0
- package/dist/security/MessageSanitizer.d.ts +51 -0
- package/dist/security/MessageSanitizer.d.ts.map +1 -0
- package/dist/security/MessageSanitizer.js +166 -0
- package/dist/security/MessageSanitizer.js.map +1 -0
- package/dist/security/RateLimiter.d.ts +46 -0
- package/dist/security/RateLimiter.d.ts.map +1 -0
- package/dist/security/RateLimiter.js +133 -0
- package/dist/security/RateLimiter.js.map +1 -0
- package/dist/security/SecurityMiddleware.d.ts +88 -0
- package/dist/security/SecurityMiddleware.d.ts.map +1 -0
- package/dist/security/SecurityMiddleware.js +146 -0
- package/dist/security/SecurityMiddleware.js.map +1 -0
- package/dist/security/index.d.ts +35 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +42 -0
- package/dist/security/index.js.map +1 -0
- package/dist/speculative/PredictionEngine.d.ts +99 -0
- package/dist/speculative/PredictionEngine.d.ts.map +1 -0
- package/dist/speculative/PredictionEngine.js +291 -0
- package/dist/speculative/PredictionEngine.js.map +1 -0
- package/dist/speculative/SpeculativeCache.d.ts +117 -0
- package/dist/speculative/SpeculativeCache.d.ts.map +1 -0
- package/dist/speculative/SpeculativeCache.js +292 -0
- package/dist/speculative/SpeculativeCache.js.map +1 -0
- package/dist/speculative/SpeculativeEngine.d.ts +114 -0
- package/dist/speculative/SpeculativeEngine.d.ts.map +1 -0
- package/dist/speculative/SpeculativeEngine.js +244 -0
- package/dist/speculative/SpeculativeEngine.js.map +1 -0
- package/dist/speculative/WorkerPool.d.ts +109 -0
- package/dist/speculative/WorkerPool.d.ts.map +1 -0
- package/dist/speculative/WorkerPool.js +327 -0
- package/dist/speculative/WorkerPool.js.map +1 -0
- package/dist/speculative/index.d.ts +10 -0
- package/dist/speculative/index.d.ts.map +1 -0
- package/dist/speculative/index.js +17 -0
- package/dist/speculative/index.js.map +1 -0
- package/dist/subconscious/EmbeddingService.d.ts +73 -0
- package/dist/subconscious/EmbeddingService.d.ts.map +1 -0
- package/dist/subconscious/EmbeddingService.js +196 -0
- package/dist/subconscious/EmbeddingService.js.map +1 -0
- package/dist/subconscious/SemanticCache.d.ts +82 -0
- package/dist/subconscious/SemanticCache.d.ts.map +1 -0
- package/dist/subconscious/SemanticCache.js +164 -0
- package/dist/subconscious/SemanticCache.js.map +1 -0
- package/dist/subconscious/SubconsciousEngine.d.ts +121 -0
- package/dist/subconscious/SubconsciousEngine.d.ts.map +1 -0
- package/dist/subconscious/SubconsciousEngine.js +241 -0
- package/dist/subconscious/SubconsciousEngine.js.map +1 -0
- package/dist/subconscious/VectorStore.d.ts +54 -0
- package/dist/subconscious/VectorStore.d.ts.map +1 -0
- package/dist/subconscious/VectorStore.js +168 -0
- package/dist/subconscious/VectorStore.js.map +1 -0
- package/dist/subconscious/cache.d.ts +34 -0
- package/dist/subconscious/cache.d.ts.map +1 -0
- package/dist/subconscious/cache.js +156 -0
- package/dist/subconscious/cache.js.map +1 -0
- package/dist/subconscious/embeddings.d.ts +25 -0
- package/dist/subconscious/embeddings.d.ts.map +1 -0
- package/dist/subconscious/embeddings.js +65 -0
- package/dist/subconscious/embeddings.js.map +1 -0
- package/dist/subconscious/index.d.ts +12 -0
- package/dist/subconscious/index.d.ts.map +1 -0
- package/dist/subconscious/index.js +19 -0
- package/dist/subconscious/index.js.map +1 -0
- package/dist/types/index.d.ts +286 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +43 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/logger.d.ts +63 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +126 -0
- package/dist/utils/logger.js.map +1 -0
- 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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"}
|