agentxjs 1.3.0 → 1.5.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/dist/browser.js +75 -22
- package/dist/browser.js.map +11 -1
- package/dist/index.d.ts +58 -54
- package/dist/index.js +96 -46
- package/dist/index.js.map +12 -1
- package/package.json +17 -26
- package/LICENSE +0 -21
- package/dist/browser.cjs +0 -209
- package/dist/browser.cjs.map +0 -1
- package/dist/browser.d.cts +0 -31
- package/dist/browser.d.ts +0 -31
- package/dist/createAgentX-BlZzJ2OM.d.cts +0 -41
- package/dist/createAgentX-BlZzJ2OM.d.ts +0 -41
- package/dist/index.cjs +0 -338
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -56
package/dist/index.cjs
DELETED
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var network = require('@agentxjs/network');
|
|
4
|
-
var common = require('@agentxjs/common');
|
|
5
|
-
var agentx = require('@agentxjs/types/agentx');
|
|
6
|
-
var event = require('@agentxjs/types/event');
|
|
7
|
-
|
|
8
|
-
var __defProp = Object.defineProperty;
|
|
9
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
-
var __esm = (fn, res) => function __init() {
|
|
11
|
-
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
12
|
-
};
|
|
13
|
-
var __export = (target, all) => {
|
|
14
|
-
for (var name in all)
|
|
15
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
// src/createLocalAgentX.ts
|
|
19
|
-
var createLocalAgentX_exports = {};
|
|
20
|
-
__export(createLocalAgentX_exports, {
|
|
21
|
-
createLocalAgentX: () => createLocalAgentX
|
|
22
|
-
});
|
|
23
|
-
async function createLocalAgentX(config) {
|
|
24
|
-
if (config.logger) {
|
|
25
|
-
const { LoggerFactoryImpl: LoggerFactoryImpl2, setLoggerFactory: setLoggerFactory2 } = await import('@agentxjs/common');
|
|
26
|
-
LoggerFactoryImpl2.configure({
|
|
27
|
-
defaultLevel: config.logger.level,
|
|
28
|
-
consoleOptions: config.logger.console
|
|
29
|
-
});
|
|
30
|
-
if (config.logger.factory) {
|
|
31
|
-
setLoggerFactory2(config.logger.factory);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const { createRuntime, createPersistence } = await import('@agentxjs/runtime');
|
|
35
|
-
const { homedir } = await import('os');
|
|
36
|
-
const { join } = await import('path');
|
|
37
|
-
const basePath = config.agentxDir ?? join(homedir(), ".agentx");
|
|
38
|
-
const storagePath = join(basePath, "data", "agentx.db");
|
|
39
|
-
const persistence = await createPersistence({
|
|
40
|
-
driver: "sqlite",
|
|
41
|
-
path: storagePath
|
|
42
|
-
});
|
|
43
|
-
const runtime = createRuntime({
|
|
44
|
-
persistence,
|
|
45
|
-
basePath,
|
|
46
|
-
llmProvider: {
|
|
47
|
-
name: "claude",
|
|
48
|
-
provide: () => ({
|
|
49
|
-
apiKey: config.llm?.apiKey ?? "",
|
|
50
|
-
baseUrl: config.llm?.baseUrl,
|
|
51
|
-
model: config.llm?.model
|
|
52
|
-
})
|
|
53
|
-
},
|
|
54
|
-
defaultAgent: config.defaultAgent
|
|
55
|
-
});
|
|
56
|
-
const wsServer = new network.WebSocketServer({
|
|
57
|
-
heartbeat: true,
|
|
58
|
-
heartbeatInterval: 3e4,
|
|
59
|
-
debug: false
|
|
60
|
-
});
|
|
61
|
-
wsServer.onConnection((connection) => {
|
|
62
|
-
connection.onMessage((message) => {
|
|
63
|
-
try {
|
|
64
|
-
const event = JSON.parse(message);
|
|
65
|
-
logger.debug("Received client message", {
|
|
66
|
-
type: event.type,
|
|
67
|
-
category: event.category
|
|
68
|
-
});
|
|
69
|
-
runtime.emit(event);
|
|
70
|
-
} catch {
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
runtime.onAny((event) => {
|
|
75
|
-
if (event.broadcastable === false) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
logger.debug("Broadcasting event", {
|
|
79
|
-
type: event.type,
|
|
80
|
-
category: event.category,
|
|
81
|
-
source: event.source,
|
|
82
|
-
context: event.context,
|
|
83
|
-
data: event.data
|
|
84
|
-
});
|
|
85
|
-
wsServer.broadcast(JSON.stringify(event));
|
|
86
|
-
});
|
|
87
|
-
if (config.server) {
|
|
88
|
-
wsServer.attach(config.server, "/ws");
|
|
89
|
-
}
|
|
90
|
-
return {
|
|
91
|
-
// Core API - delegate to runtime
|
|
92
|
-
request: (type, data, timeout) => runtime.request(type, data, timeout),
|
|
93
|
-
on: (type, handler) => runtime.on(type, handler),
|
|
94
|
-
onCommand: (type, handler) => runtime.onCommand(type, handler),
|
|
95
|
-
emitCommand: (type, data) => runtime.emitCommand(type, data),
|
|
96
|
-
// Server API
|
|
97
|
-
async listen(port, host) {
|
|
98
|
-
if (config.server) {
|
|
99
|
-
throw new Error(
|
|
100
|
-
"Cannot listen when attached to existing server. The server should call listen() instead."
|
|
101
|
-
);
|
|
102
|
-
}
|
|
103
|
-
await wsServer.listen(port, host);
|
|
104
|
-
},
|
|
105
|
-
async close() {
|
|
106
|
-
await wsServer.close();
|
|
107
|
-
},
|
|
108
|
-
async dispose() {
|
|
109
|
-
await wsServer.dispose();
|
|
110
|
-
await runtime.dispose();
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
var logger;
|
|
115
|
-
var init_createLocalAgentX = __esm({
|
|
116
|
-
"src/createLocalAgentX.ts"() {
|
|
117
|
-
logger = common.createLogger("agentx/LocalAgentX");
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
var remoteLogger = common.createLogger("agentx/RemoteClient");
|
|
121
|
-
async function createAgentX(config) {
|
|
122
|
-
if (config && agentx.isRemoteConfig(config)) {
|
|
123
|
-
return createRemoteAgentX(config.serverUrl);
|
|
124
|
-
}
|
|
125
|
-
const { createLocalAgentX: createLocalAgentX2 } = await Promise.resolve().then(() => (init_createLocalAgentX(), createLocalAgentX_exports));
|
|
126
|
-
return createLocalAgentX2(config ?? {});
|
|
127
|
-
}
|
|
128
|
-
async function createRemoteAgentX(serverUrl) {
|
|
129
|
-
const { createWebSocketClient } = await import('@agentxjs/network');
|
|
130
|
-
const client = await createWebSocketClient({
|
|
131
|
-
serverUrl,
|
|
132
|
-
autoReconnect: true,
|
|
133
|
-
minReconnectionDelay: 1e3,
|
|
134
|
-
maxReconnectionDelay: 1e4,
|
|
135
|
-
connectionTimeout: 4e3,
|
|
136
|
-
maxRetries: Infinity,
|
|
137
|
-
debug: false
|
|
138
|
-
});
|
|
139
|
-
const handlers = /* @__PURE__ */ new Map();
|
|
140
|
-
const pendingRequests = /* @__PURE__ */ new Map();
|
|
141
|
-
client.onMessage((message) => {
|
|
142
|
-
try {
|
|
143
|
-
const event = JSON.parse(message);
|
|
144
|
-
remoteLogger.info("Received event", {
|
|
145
|
-
type: event.type,
|
|
146
|
-
category: event.category,
|
|
147
|
-
requestId: event.data?.requestId
|
|
148
|
-
});
|
|
149
|
-
if (event.type === "system_error") {
|
|
150
|
-
const errorData = event.data;
|
|
151
|
-
remoteLogger.error(errorData.message, {
|
|
152
|
-
severity: errorData.severity,
|
|
153
|
-
requestId: event.data?.requestId,
|
|
154
|
-
details: errorData.details
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
const requestId = event.data?.requestId;
|
|
158
|
-
if (event.category === "response" && requestId && pendingRequests.has(requestId)) {
|
|
159
|
-
remoteLogger.info("Resolving pending request", { requestId, eventType: event.type });
|
|
160
|
-
const pending = pendingRequests.get(requestId);
|
|
161
|
-
clearTimeout(pending.timer);
|
|
162
|
-
pendingRequests.delete(requestId);
|
|
163
|
-
pending.resolve(event);
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
remoteLogger.info("Dispatching to handlers", { type: event.type });
|
|
167
|
-
const typeHandlers = handlers.get(event.type);
|
|
168
|
-
if (typeHandlers) {
|
|
169
|
-
for (const handler of typeHandlers) {
|
|
170
|
-
handler(event);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
const allHandlers = handlers.get("*");
|
|
174
|
-
if (allHandlers) {
|
|
175
|
-
for (const handler of allHandlers) {
|
|
176
|
-
handler(event);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
} catch {
|
|
180
|
-
}
|
|
181
|
-
});
|
|
182
|
-
client.onClose(() => {
|
|
183
|
-
remoteLogger.warn("WebSocket closed");
|
|
184
|
-
});
|
|
185
|
-
client.onError((error) => {
|
|
186
|
-
remoteLogger.error("WebSocket error", { error: error.message });
|
|
187
|
-
});
|
|
188
|
-
function subscribe(type, handler) {
|
|
189
|
-
if (!handlers.has(type)) {
|
|
190
|
-
handlers.set(type, /* @__PURE__ */ new Set());
|
|
191
|
-
}
|
|
192
|
-
handlers.get(type).add(handler);
|
|
193
|
-
return () => {
|
|
194
|
-
handlers.get(type)?.delete(handler);
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
return {
|
|
198
|
-
request(type, data, timeout = 3e4) {
|
|
199
|
-
return new Promise((resolve, reject) => {
|
|
200
|
-
const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
|
|
201
|
-
const timer = setTimeout(() => {
|
|
202
|
-
pendingRequests.delete(requestId);
|
|
203
|
-
reject(new Error(`Request timeout: ${type}`));
|
|
204
|
-
}, timeout);
|
|
205
|
-
pendingRequests.set(requestId, {
|
|
206
|
-
resolve,
|
|
207
|
-
reject,
|
|
208
|
-
timer
|
|
209
|
-
});
|
|
210
|
-
const event = {
|
|
211
|
-
type,
|
|
212
|
-
timestamp: Date.now(),
|
|
213
|
-
data: { ...data, requestId },
|
|
214
|
-
source: "command",
|
|
215
|
-
category: "request",
|
|
216
|
-
intent: "request"
|
|
217
|
-
};
|
|
218
|
-
client.send(JSON.stringify(event));
|
|
219
|
-
});
|
|
220
|
-
},
|
|
221
|
-
on(type, handler) {
|
|
222
|
-
return subscribe(type, handler);
|
|
223
|
-
},
|
|
224
|
-
onCommand(type, handler) {
|
|
225
|
-
return subscribe(type, handler);
|
|
226
|
-
},
|
|
227
|
-
emitCommand(type, data) {
|
|
228
|
-
const event = {
|
|
229
|
-
type,
|
|
230
|
-
timestamp: Date.now(),
|
|
231
|
-
data,
|
|
232
|
-
source: "command",
|
|
233
|
-
category: type.toString().endsWith("_response") ? "response" : "request",
|
|
234
|
-
intent: type.toString().endsWith("_response") ? "result" : "request"
|
|
235
|
-
};
|
|
236
|
-
client.send(JSON.stringify(event));
|
|
237
|
-
},
|
|
238
|
-
async listen() {
|
|
239
|
-
throw new Error("Cannot listen in remote mode");
|
|
240
|
-
},
|
|
241
|
-
async close() {
|
|
242
|
-
},
|
|
243
|
-
async dispose() {
|
|
244
|
-
for (const pending of pendingRequests.values()) {
|
|
245
|
-
clearTimeout(pending.timer);
|
|
246
|
-
pending.reject(new Error("AgentX disposed"));
|
|
247
|
-
}
|
|
248
|
-
pendingRequests.clear();
|
|
249
|
-
handlers.clear();
|
|
250
|
-
client.dispose();
|
|
251
|
-
}
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
function defineAgent(definition) {
|
|
255
|
-
return definition;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
Object.defineProperty(exports, "ConsoleLogger", {
|
|
259
|
-
enumerable: true,
|
|
260
|
-
get: function () { return common.ConsoleLogger; }
|
|
261
|
-
});
|
|
262
|
-
Object.defineProperty(exports, "LoggerFactoryImpl", {
|
|
263
|
-
enumerable: true,
|
|
264
|
-
get: function () { return common.LoggerFactoryImpl; }
|
|
265
|
-
});
|
|
266
|
-
Object.defineProperty(exports, "createLogger", {
|
|
267
|
-
enumerable: true,
|
|
268
|
-
get: function () { return common.createLogger; }
|
|
269
|
-
});
|
|
270
|
-
Object.defineProperty(exports, "setLoggerFactory", {
|
|
271
|
-
enumerable: true,
|
|
272
|
-
get: function () { return common.setLoggerFactory; }
|
|
273
|
-
});
|
|
274
|
-
Object.defineProperty(exports, "isLocalConfig", {
|
|
275
|
-
enumerable: true,
|
|
276
|
-
get: function () { return agentx.isLocalConfig; }
|
|
277
|
-
});
|
|
278
|
-
Object.defineProperty(exports, "isRemoteConfig", {
|
|
279
|
-
enumerable: true,
|
|
280
|
-
get: function () { return agentx.isRemoteConfig; }
|
|
281
|
-
});
|
|
282
|
-
Object.defineProperty(exports, "hasIntent", {
|
|
283
|
-
enumerable: true,
|
|
284
|
-
get: function () { return event.hasIntent; }
|
|
285
|
-
});
|
|
286
|
-
Object.defineProperty(exports, "isAgentEvent", {
|
|
287
|
-
enumerable: true,
|
|
288
|
-
get: function () { return event.isAgentEvent; }
|
|
289
|
-
});
|
|
290
|
-
Object.defineProperty(exports, "isAgentMessageEvent", {
|
|
291
|
-
enumerable: true,
|
|
292
|
-
get: function () { return event.isAgentMessageEvent; }
|
|
293
|
-
});
|
|
294
|
-
Object.defineProperty(exports, "isAgentStateEvent", {
|
|
295
|
-
enumerable: true,
|
|
296
|
-
get: function () { return event.isAgentStateEvent; }
|
|
297
|
-
});
|
|
298
|
-
Object.defineProperty(exports, "isAgentStreamEvent", {
|
|
299
|
-
enumerable: true,
|
|
300
|
-
get: function () { return event.isAgentStreamEvent; }
|
|
301
|
-
});
|
|
302
|
-
Object.defineProperty(exports, "isAgentTurnEvent", {
|
|
303
|
-
enumerable: true,
|
|
304
|
-
get: function () { return event.isAgentTurnEvent; }
|
|
305
|
-
});
|
|
306
|
-
Object.defineProperty(exports, "isCommandEvent", {
|
|
307
|
-
enumerable: true,
|
|
308
|
-
get: function () { return event.isCommandEvent; }
|
|
309
|
-
});
|
|
310
|
-
Object.defineProperty(exports, "isCommandRequest", {
|
|
311
|
-
enumerable: true,
|
|
312
|
-
get: function () { return event.isCommandRequest; }
|
|
313
|
-
});
|
|
314
|
-
Object.defineProperty(exports, "isCommandResponse", {
|
|
315
|
-
enumerable: true,
|
|
316
|
-
get: function () { return event.isCommandResponse; }
|
|
317
|
-
});
|
|
318
|
-
Object.defineProperty(exports, "isFromSource", {
|
|
319
|
-
enumerable: true,
|
|
320
|
-
get: function () { return event.isFromSource; }
|
|
321
|
-
});
|
|
322
|
-
Object.defineProperty(exports, "isNotification", {
|
|
323
|
-
enumerable: true,
|
|
324
|
-
get: function () { return event.isNotification; }
|
|
325
|
-
});
|
|
326
|
-
Object.defineProperty(exports, "isRequest", {
|
|
327
|
-
enumerable: true,
|
|
328
|
-
get: function () { return event.isRequest; }
|
|
329
|
-
});
|
|
330
|
-
Object.defineProperty(exports, "isResult", {
|
|
331
|
-
enumerable: true,
|
|
332
|
-
get: function () { return event.isResult; }
|
|
333
|
-
});
|
|
334
|
-
exports.createAgentX = createAgentX;
|
|
335
|
-
exports.createRemoteAgentX = createRemoteAgentX;
|
|
336
|
-
exports.defineAgent = defineAgent;
|
|
337
|
-
//# sourceMappingURL=index.cjs.map
|
|
338
|
-
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/createLocalAgentX.ts","../src/createAgentX.ts","../src/index.ts"],"names":["LoggerFactoryImpl","setLoggerFactory","WebSocketServer","createLogger","isRemoteConfig","createLocalAgentX"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * createLocalAgentX - Local mode implementation\n *\n * This file is dynamically imported to enable tree-shaking in browser builds.\n * Contains Node.js specific code (runtime, WebSocket server).\n */\n\nimport type { AgentX, LocalConfig } from \"@agentxjs/types/agentx\";\nimport type { SystemEvent } from \"@agentxjs/types/event\";\nimport { WebSocketServer } from \"@agentxjs/network\";\nimport { createLogger } from \"@agentxjs/common\";\n\nconst logger = createLogger(\"agentx/LocalAgentX\");\n\nexport async function createLocalAgentX(config: LocalConfig): Promise<AgentX> {\n // Apply logger configuration\n if (config.logger) {\n const { LoggerFactoryImpl, setLoggerFactory } = await import(\"@agentxjs/common\");\n\n LoggerFactoryImpl.configure({\n defaultLevel: config.logger.level,\n consoleOptions: config.logger.console,\n });\n\n if (config.logger.factory) {\n setLoggerFactory(config.logger.factory);\n }\n }\n\n // Dynamic import to avoid bundling runtime in browser\n const { createRuntime, createPersistence } = await import(\"@agentxjs/runtime\");\n const { homedir } = await import(\"node:os\");\n const { join } = await import(\"node:path\");\n\n // Determine base path for runtime data\n const basePath = config.agentxDir ?? join(homedir(), \".agentx\");\n\n // Auto-configure storage: SQLite at {agentxDir}/data/agentx.db\n const storagePath = join(basePath, \"data\", \"agentx.db\");\n const persistence = await createPersistence({\n driver: \"sqlite\",\n path: storagePath,\n });\n\n const runtime = createRuntime({\n persistence,\n basePath,\n llmProvider: {\n name: \"claude\",\n provide: () => ({\n apiKey: config.llm?.apiKey ?? \"\",\n baseUrl: config.llm?.baseUrl,\n model: config.llm?.model,\n }),\n },\n defaultAgent: config.defaultAgent,\n });\n\n // Create WebSocket server\n const wsServer = new WebSocketServer({\n heartbeat: true,\n heartbeatInterval: 30000,\n debug: false,\n });\n\n // Handle new connections\n wsServer.onConnection((connection) => {\n // Forward client messages to runtime\n connection.onMessage((message) => {\n try {\n const event = JSON.parse(message) as SystemEvent;\n logger.debug(\"Received client message\", {\n type: event.type,\n category: event.category,\n });\n runtime.emit(event);\n } catch {\n // Ignore parse errors\n }\n });\n });\n\n // Broadcast runtime events to all connected clients\n runtime.onAny((event) => {\n // Skip non-broadcastable events (internal events like DriveableEvent)\n if ((event as any).broadcastable === false) {\n return;\n }\n\n // Log event for debugging\n logger.debug(\"Broadcasting event\", {\n type: event.type,\n category: event.category,\n source: event.source,\n context: event.context,\n data: event.data,\n });\n\n wsServer.broadcast(JSON.stringify(event));\n });\n\n // If server is provided, attach WebSocket to it immediately\n if (config.server) {\n wsServer.attach(config.server, \"/ws\");\n }\n\n return {\n // Core API - delegate to runtime\n request: (type, data, timeout) => runtime.request(type, data, timeout),\n\n on: (type, handler) => runtime.on(type, handler),\n\n onCommand: (type, handler) => runtime.onCommand(type, handler),\n\n emitCommand: (type, data) => runtime.emitCommand(type, data),\n\n // Server API\n async listen(port: number, host?: string) {\n if (config.server) {\n throw new Error(\n \"Cannot listen when attached to existing server. The server should call listen() instead.\"\n );\n }\n await wsServer.listen(port, host);\n },\n\n async close() {\n await wsServer.close();\n },\n\n async dispose() {\n await wsServer.dispose();\n await runtime.dispose();\n },\n };\n}\n","/**\n * createAgentX - Factory function for creating AgentX instances\n *\n * Supports two modes:\n * - Local mode: Uses Runtime directly (Claude API) - Node.js only\n * - Remote mode: Connects to AgentX server via WebSocket - Browser & Node.js\n *\n * Local mode implementation is dynamically imported to enable tree-shaking\n * in browser builds.\n */\n\nimport type { AgentX, AgentXConfig, Unsubscribe } from \"@agentxjs/types/agentx\";\nimport { isRemoteConfig } from \"@agentxjs/types/agentx\";\nimport type {\n CommandEventMap,\n CommandRequestType,\n ResponseEventFor,\n RequestDataFor,\n SystemEvent,\n} from \"@agentxjs/types/event\";\nimport { createLogger } from \"@agentxjs/common\";\n\nconst remoteLogger = createLogger(\"agentx/RemoteClient\");\n\n/**\n * Create AgentX instance\n *\n * @param config - Configuration (LocalConfig or RemoteConfig)\n * @returns AgentX instance\n *\n * @example\n * ```typescript\n * // Remote mode (browser & Node.js)\n * const agentx = await createAgentX({ serverUrl: \"ws://localhost:5200\" });\n *\n * // Local mode (Node.js only)\n * const agentx = await createAgentX({ llm: { apiKey: \"sk-...\" } });\n * ```\n */\nexport async function createAgentX(config?: AgentXConfig): Promise<AgentX> {\n if (config && isRemoteConfig(config)) {\n return createRemoteAgentX(config.serverUrl);\n }\n\n // Dynamic import for tree-shaking in browser builds\n const { createLocalAgentX } = await import(\"./createLocalAgentX\");\n return createLocalAgentX(config ?? {});\n}\n\n// ============================================================================\n// Remote Mode Implementation (Browser & Node.js compatible)\n// ============================================================================\n\n/**\n * Create AgentX instance in remote mode\n *\n * Connects to an AgentX server via WebSocket.\n * Works in both browser and Node.js environments.\n *\n * @param serverUrl - WebSocket server URL\n * @returns AgentX instance\n */\nexport async function createRemoteAgentX(serverUrl: string): Promise<AgentX> {\n // Use @agentxjs/network for WebSocket client (handles browser/Node.js differences)\n const { createWebSocketClient } = await import(\"@agentxjs/network\");\n\n const client = await createWebSocketClient({\n serverUrl,\n autoReconnect: true,\n minReconnectionDelay: 1000,\n maxReconnectionDelay: 10000,\n connectionTimeout: 4000,\n maxRetries: Infinity,\n debug: false,\n });\n\n const handlers = new Map<string, Set<(event: SystemEvent) => void>>();\n const pendingRequests = new Map<\n string,\n {\n resolve: (event: SystemEvent) => void;\n reject: (err: Error) => void;\n timer: ReturnType<typeof setTimeout>;\n }\n >();\n\n // Handle incoming messages\n client.onMessage((message: string) => {\n try {\n const event = JSON.parse(message) as SystemEvent;\n\n remoteLogger.info(\"Received event\", {\n type: event.type,\n category: event.category,\n requestId: (event.data as any)?.requestId,\n });\n\n // Handle error events - log as error (but still dispatch to handlers)\n if (event.type === \"system_error\") {\n const errorData = event.data as { message: string; severity?: string; details?: unknown };\n remoteLogger.error(errorData.message, {\n severity: errorData.severity,\n requestId: (event.data as any)?.requestId,\n details: errorData.details,\n });\n // Continue to dispatch to handlers (don't return here)\n }\n\n // Check if it's a response to a pending request\n const requestId = (event.data as { requestId?: string })?.requestId;\n if (event.category === \"response\" && requestId && pendingRequests.has(requestId)) {\n remoteLogger.info(\"Resolving pending request\", { requestId, eventType: event.type });\n const pending = pendingRequests.get(requestId)!;\n clearTimeout(pending.timer);\n pendingRequests.delete(requestId);\n pending.resolve(event);\n return;\n }\n\n remoteLogger.info(\"Dispatching to handlers\", { type: event.type });\n\n // Dispatch to handlers\n const typeHandlers = handlers.get(event.type);\n if (typeHandlers) {\n for (const handler of typeHandlers) {\n handler(event);\n }\n }\n\n // Dispatch to \"*\" handlers\n const allHandlers = handlers.get(\"*\");\n if (allHandlers) {\n for (const handler of allHandlers) {\n handler(event);\n }\n }\n } catch {\n // Ignore parse errors\n }\n });\n\n // Handle connection events\n client.onClose(() => {\n remoteLogger.warn(\"WebSocket closed\");\n });\n\n client.onError((error: Error) => {\n remoteLogger.error(\"WebSocket error\", { error: error.message });\n });\n\n function subscribe(type: string, handler: (event: SystemEvent) => void): Unsubscribe {\n if (!handlers.has(type)) {\n handlers.set(type, new Set());\n }\n handlers.get(type)!.add(handler);\n return () => {\n handlers.get(type)?.delete(handler);\n };\n }\n\n return {\n request<T extends CommandRequestType>(\n type: T,\n data: RequestDataFor<T>,\n timeout: number = 30000\n ): Promise<ResponseEventFor<T>> {\n return new Promise((resolve, reject) => {\n const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;\n\n const timer = setTimeout(() => {\n pendingRequests.delete(requestId);\n reject(new Error(`Request timeout: ${type}`));\n }, timeout);\n\n pendingRequests.set(requestId, {\n resolve: resolve as (event: SystemEvent) => void,\n reject,\n timer,\n });\n\n const event: SystemEvent = {\n type,\n timestamp: Date.now(),\n data: { ...data, requestId },\n source: \"command\",\n category: \"request\",\n intent: \"request\",\n };\n\n client.send(JSON.stringify(event));\n });\n },\n\n on<T extends string>(\n type: T,\n handler: (event: SystemEvent & { type: T }) => void\n ): Unsubscribe {\n return subscribe(type, handler as (event: SystemEvent) => void);\n },\n\n onCommand<T extends keyof CommandEventMap>(\n type: T,\n handler: (event: CommandEventMap[T]) => void\n ): Unsubscribe {\n return subscribe(type, handler as (event: SystemEvent) => void);\n },\n\n emitCommand<T extends keyof CommandEventMap>(type: T, data: CommandEventMap[T][\"data\"]): void {\n const event: SystemEvent = {\n type,\n timestamp: Date.now(),\n data,\n source: \"command\",\n category: type.toString().endsWith(\"_response\") ? \"response\" : \"request\",\n intent: type.toString().endsWith(\"_response\") ? \"result\" : \"request\",\n };\n client.send(JSON.stringify(event));\n },\n\n async listen() {\n throw new Error(\"Cannot listen in remote mode\");\n },\n\n async close() {\n // No-op in remote mode\n },\n\n async dispose() {\n for (const pending of pendingRequests.values()) {\n clearTimeout(pending.timer);\n pending.reject(new Error(\"AgentX disposed\"));\n }\n pendingRequests.clear();\n handlers.clear();\n client.dispose();\n },\n };\n}\n","/**\n * agentxjs - Unified API for AI Agents\n *\n * All public types and functions are exported from this single entry point.\n * Users only need: `import { ... } from \"agentxjs\"`\n *\n * @example\n * ```typescript\n * import { createAgentX, type AgentX, type SystemEvent } from \"agentxjs\";\n *\n * // Local mode\n * const agentx = await createAgentX();\n *\n * // Remote mode\n * const agentx = await createAgentX({ server: \"ws://localhost:5200\" });\n *\n * // Same API for both modes!\n * const res = await agentx.request(\"container_create_request\", {\n * containerId: \"my-container\"\n * });\n *\n * agentx.on(\"text_delta\", (e) => console.log(e.data.text));\n * ```\n *\n * @packageDocumentation\n */\n\n// ============================================================================\n// Factory\n// ============================================================================\n\nexport { createAgentX, createRemoteAgentX } from \"./createAgentX\";\n\n// ============================================================================\n// Core Types - AgentX API\n// ============================================================================\n\nexport type {\n AgentX,\n AgentXConfig,\n LocalConfig,\n RemoteConfig,\n LLMConfig,\n StorageConfig,\n StorageDriver,\n Unsubscribe,\n AgentDefinition,\n} from \"@agentxjs/types/agentx\";\n\nexport { isLocalConfig, isRemoteConfig } from \"@agentxjs/types/agentx\";\n\n// ============================================================================\n// defineAgent - Implementation\n// ============================================================================\n\nimport type { AgentDefinition } from \"@agentxjs/types/agentx\";\n\n/**\n * Define an Agent with type safety\n *\n * Helper function that provides type inference for AgentDefinition.\n *\n * @example\n * ```typescript\n * import { defineAgent } from \"agentxjs\";\n *\n * export const MyAgent = defineAgent({\n * name: \"MyAgent\",\n * systemPrompt: \"You are helpful.\",\n * mcpServers: {\n * filesystem: { command: \"npx\", args: [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/tmp\"] }\n * }\n * });\n * ```\n */\nexport function defineAgent<T extends AgentDefinition>(definition: T): T {\n return definition;\n}\n\n// ============================================================================\n// Event Types - SystemEvent and all event categories\n// ============================================================================\n\n// Base event\nexport type {\n SystemEvent,\n EventSource,\n EventCategory,\n EventIntent,\n EventContext,\n} from \"@agentxjs/types/event\";\n\nexport {\n isFromSource,\n hasIntent,\n isRequest,\n isResult,\n isNotification,\n} from \"@agentxjs/types/event\";\n\n// Command events (request/response)\nexport type {\n CommandEvent,\n CommandRequest,\n CommandResponse,\n CommandEventType,\n CommandRequestType,\n CommandEventMap,\n // Container commands\n ContainerCreateRequest,\n ContainerCreateResponse,\n ContainerGetRequest,\n ContainerGetResponse,\n ContainerListRequest,\n ContainerListResponse,\n // Agent commands\n AgentGetRequest,\n AgentGetResponse,\n AgentListRequest,\n AgentListResponse,\n AgentDestroyRequest,\n AgentDestroyResponse,\n MessageSendRequest,\n MessageSendResponse,\n AgentInterruptRequest,\n AgentInterruptResponse,\n // Image commands\n ImageCreateRequest,\n ImageCreateResponse,\n ImageRunRequest,\n ImageRunResponse,\n ImageStopRequest,\n ImageStopResponse,\n ImageUpdateRequest,\n ImageUpdateResponse,\n ImageListRequest,\n ImageListResponse,\n ImageListItem,\n ImageGetRequest,\n ImageGetResponse,\n ImageDeleteRequest,\n ImageDeleteResponse,\n} from \"@agentxjs/types/event\";\n\nexport { isCommandEvent, isCommandRequest, isCommandResponse } from \"@agentxjs/types/event\";\n\n// Agent events (stream/state/message/turn)\nexport type {\n AgentEvent,\n AgentEventCategory,\n // Stream events\n AgentStreamEvent,\n AgentTextDeltaEvent,\n AgentMessageStartEvent,\n AgentMessageStopEvent,\n AgentToolUseStartEvent,\n AgentToolUseStopEvent,\n AgentToolResultEvent,\n // State events\n AgentStateEvent,\n ConversationStartEvent,\n ConversationEndEvent,\n ConversationThinkingEvent,\n ConversationRespondingEvent,\n ToolExecutingEvent,\n ToolCompletedEvent,\n ErrorOccurredEvent,\n // Message events\n AgentMessageEvent,\n UserMessageEvent,\n AssistantMessageEvent,\n ToolCallMessageEvent,\n ToolResultMessageEvent,\n // Turn events\n AgentTurnEvent,\n TurnRequestEvent,\n TurnResponseEvent,\n TokenUsage,\n} from \"@agentxjs/types/event\";\n\nexport {\n isAgentEvent,\n isAgentStreamEvent,\n isAgentStateEvent,\n isAgentMessageEvent,\n isAgentTurnEvent,\n} from \"@agentxjs/types/event\";\n\n// ============================================================================\n// Data Types - Records and Messages\n// ============================================================================\n\n// Image record (for persistence)\nexport type { ImageRecord } from \"@agentxjs/types\";\n\n// Message types (for UI components)\nexport type {\n Message,\n MessageRole,\n MessageSubtype,\n UserMessage,\n AssistantMessage,\n ToolCallMessage,\n ToolResultMessage,\n ErrorMessage,\n AgentError,\n AgentState,\n ContentPart,\n TextPart,\n ThinkingPart,\n ImagePart,\n FilePart,\n ToolCallPart,\n ToolResultPart,\n ToolResultOutput,\n} from \"@agentxjs/types/agent\";\n\n// ============================================================================\n// Logger - from @agentxjs/common\n// ============================================================================\n\nexport { createLogger, ConsoleLogger, LoggerFactoryImpl, setLoggerFactory } from \"@agentxjs/common\";\n\nexport type {\n Logger,\n LoggerFactory,\n LogContext,\n LogLevel,\n ConsoleLoggerOptions,\n LoggerFactoryConfig,\n} from \"@agentxjs/common\";\n"]}
|
package/dist/index.d.cts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
export { c as createAgentX, a as createRemoteAgentX } from './createAgentX-BlZzJ2OM.cjs';
|
|
2
|
-
import { AgentDefinition } from '@agentxjs/types/agentx';
|
|
3
|
-
export { AgentDefinition, AgentX, AgentXConfig, LLMConfig, LocalConfig, RemoteConfig, StorageConfig, StorageDriver, Unsubscribe, isLocalConfig, isRemoteConfig } from '@agentxjs/types/agentx';
|
|
4
|
-
export { AgentDestroyRequest, AgentDestroyResponse, AgentEvent, AgentEventCategory, AgentGetRequest, AgentGetResponse, AgentInterruptRequest, AgentInterruptResponse, AgentListRequest, AgentListResponse, AgentMessageEvent, AgentMessageStartEvent, AgentMessageStopEvent, AgentStateEvent, AgentStreamEvent, AgentTextDeltaEvent, AgentToolResultEvent, AgentToolUseStartEvent, AgentToolUseStopEvent, AgentTurnEvent, AssistantMessageEvent, CommandEvent, CommandEventMap, CommandEventType, CommandRequest, CommandRequestType, CommandResponse, ContainerCreateRequest, ContainerCreateResponse, ContainerGetRequest, ContainerGetResponse, ContainerListRequest, ContainerListResponse, ConversationEndEvent, ConversationRespondingEvent, ConversationStartEvent, ConversationThinkingEvent, ErrorOccurredEvent, EventCategory, EventContext, EventIntent, EventSource, ImageCreateRequest, ImageCreateResponse, ImageDeleteRequest, ImageDeleteResponse, ImageGetRequest, ImageGetResponse, ImageListItem, ImageListRequest, ImageListResponse, ImageRunRequest, ImageRunResponse, ImageStopRequest, ImageStopResponse, ImageUpdateRequest, ImageUpdateResponse, MessageSendRequest, MessageSendResponse, SystemEvent, TokenUsage, ToolCallMessageEvent, ToolCompletedEvent, ToolExecutingEvent, ToolResultMessageEvent, TurnRequestEvent, TurnResponseEvent, UserMessageEvent, hasIntent, isAgentEvent, isAgentMessageEvent, isAgentStateEvent, isAgentStreamEvent, isAgentTurnEvent, isCommandEvent, isCommandRequest, isCommandResponse, isFromSource, isNotification, isRequest, isResult } from '@agentxjs/types/event';
|
|
5
|
-
export { ImageRecord } from '@agentxjs/types';
|
|
6
|
-
export { AgentError, AgentState, AssistantMessage, ContentPart, ErrorMessage, FilePart, ImagePart, Message, MessageRole, MessageSubtype, TextPart, ThinkingPart, ToolCallMessage, ToolCallPart, ToolResultMessage, ToolResultOutput, ToolResultPart, UserMessage } from '@agentxjs/types/agent';
|
|
7
|
-
export { ConsoleLogger, ConsoleLoggerOptions, LogContext, LogLevel, Logger, LoggerFactory, LoggerFactoryConfig, LoggerFactoryImpl, createLogger, setLoggerFactory } from '@agentxjs/common';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* agentxjs - Unified API for AI Agents
|
|
11
|
-
*
|
|
12
|
-
* All public types and functions are exported from this single entry point.
|
|
13
|
-
* Users only need: `import { ... } from "agentxjs"`
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* import { createAgentX, type AgentX, type SystemEvent } from "agentxjs";
|
|
18
|
-
*
|
|
19
|
-
* // Local mode
|
|
20
|
-
* const agentx = await createAgentX();
|
|
21
|
-
*
|
|
22
|
-
* // Remote mode
|
|
23
|
-
* const agentx = await createAgentX({ server: "ws://localhost:5200" });
|
|
24
|
-
*
|
|
25
|
-
* // Same API for both modes!
|
|
26
|
-
* const res = await agentx.request("container_create_request", {
|
|
27
|
-
* containerId: "my-container"
|
|
28
|
-
* });
|
|
29
|
-
*
|
|
30
|
-
* agentx.on("text_delta", (e) => console.log(e.data.text));
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* @packageDocumentation
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Define an Agent with type safety
|
|
38
|
-
*
|
|
39
|
-
* Helper function that provides type inference for AgentDefinition.
|
|
40
|
-
*
|
|
41
|
-
* @example
|
|
42
|
-
* ```typescript
|
|
43
|
-
* import { defineAgent } from "agentxjs";
|
|
44
|
-
*
|
|
45
|
-
* export const MyAgent = defineAgent({
|
|
46
|
-
* name: "MyAgent",
|
|
47
|
-
* systemPrompt: "You are helpful.",
|
|
48
|
-
* mcpServers: {
|
|
49
|
-
* filesystem: { command: "npx", args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] }
|
|
50
|
-
* }
|
|
51
|
-
* });
|
|
52
|
-
* ```
|
|
53
|
-
*/
|
|
54
|
-
declare function defineAgent<T extends AgentDefinition>(definition: T): T;
|
|
55
|
-
|
|
56
|
-
export { defineAgent };
|