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/browser.js
CHANGED
|
@@ -1,23 +1,63 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
7
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
8
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
9
|
+
for (let key of __getOwnPropNames(mod))
|
|
10
|
+
if (!__hasOwnProp.call(to, key))
|
|
11
|
+
__defProp(to, key, {
|
|
12
|
+
get: () => mod[key],
|
|
13
|
+
enumerable: true
|
|
14
|
+
});
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
18
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
19
|
+
}) : x)(function(x) {
|
|
20
|
+
if (typeof require !== "undefined")
|
|
21
|
+
return require.apply(this, arguments);
|
|
22
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
23
|
+
});
|
|
5
24
|
|
|
6
25
|
// src/browser.ts
|
|
26
|
+
import { isLocalConfig, isRemoteConfig as isRemoteConfig2 } from "@agentxjs/types/agentx";
|
|
27
|
+
import {
|
|
28
|
+
isFromSource,
|
|
29
|
+
hasIntent,
|
|
30
|
+
isRequest,
|
|
31
|
+
isResult,
|
|
32
|
+
isNotification
|
|
33
|
+
} from "@agentxjs/types/event";
|
|
34
|
+
import { isCommandEvent, isCommandRequest, isCommandResponse } from "@agentxjs/types/event";
|
|
35
|
+
import {
|
|
36
|
+
isAgentEvent,
|
|
37
|
+
isAgentStreamEvent,
|
|
38
|
+
isAgentStateEvent,
|
|
39
|
+
isAgentMessageEvent,
|
|
40
|
+
isAgentTurnEvent
|
|
41
|
+
} from "@agentxjs/types/event";
|
|
42
|
+
import { isRemoteConfig as isRemoteConfig3 } from "@agentxjs/types/agentx";
|
|
43
|
+
|
|
44
|
+
// src/createAgentX.ts
|
|
45
|
+
import { isRemoteConfig } from "@agentxjs/types/agentx";
|
|
46
|
+
import { createLogger } from "@agentxjs/common";
|
|
7
47
|
var remoteLogger = createLogger("agentx/RemoteClient");
|
|
8
48
|
async function createRemoteAgentX(serverUrl) {
|
|
9
|
-
const { createWebSocketClient } = await import(
|
|
49
|
+
const { createWebSocketClient } = await import("@agentxjs/network");
|
|
10
50
|
const client = await createWebSocketClient({
|
|
11
51
|
serverUrl,
|
|
12
52
|
autoReconnect: true,
|
|
13
|
-
minReconnectionDelay:
|
|
53
|
+
minReconnectionDelay: 1000,
|
|
14
54
|
maxReconnectionDelay: 1e4,
|
|
15
|
-
connectionTimeout:
|
|
55
|
+
connectionTimeout: 4000,
|
|
16
56
|
maxRetries: Infinity,
|
|
17
57
|
debug: false
|
|
18
58
|
});
|
|
19
|
-
const handlers =
|
|
20
|
-
const pendingRequests =
|
|
59
|
+
const handlers = new Map;
|
|
60
|
+
const pendingRequests = new Map;
|
|
21
61
|
client.onMessage((message) => {
|
|
22
62
|
try {
|
|
23
63
|
const event = JSON.parse(message);
|
|
@@ -56,8 +96,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
56
96
|
handler(event);
|
|
57
97
|
}
|
|
58
98
|
}
|
|
59
|
-
} catch {
|
|
60
|
-
}
|
|
99
|
+
} catch {}
|
|
61
100
|
});
|
|
62
101
|
client.onClose(() => {
|
|
63
102
|
remoteLogger.warn("WebSocket closed");
|
|
@@ -67,7 +106,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
67
106
|
});
|
|
68
107
|
function subscribe(type, handler) {
|
|
69
108
|
if (!handlers.has(type)) {
|
|
70
|
-
handlers.set(type,
|
|
109
|
+
handlers.set(type, new Set);
|
|
71
110
|
}
|
|
72
111
|
handlers.get(type).add(handler);
|
|
73
112
|
return () => {
|
|
@@ -75,7 +114,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
75
114
|
};
|
|
76
115
|
}
|
|
77
116
|
return {
|
|
78
|
-
request(type, data, timeout =
|
|
117
|
+
request(type, data, timeout = 30000) {
|
|
79
118
|
return new Promise((resolve, reject) => {
|
|
80
119
|
const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
|
|
81
120
|
const timer = setTimeout(() => {
|
|
@@ -118,8 +157,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
118
157
|
async listen() {
|
|
119
158
|
throw new Error("Cannot listen in remote mode");
|
|
120
159
|
},
|
|
121
|
-
async close() {
|
|
122
|
-
},
|
|
160
|
+
async close() {},
|
|
123
161
|
async dispose() {
|
|
124
162
|
for (const pending of pendingRequests.values()) {
|
|
125
163
|
clearTimeout(pending.timer);
|
|
@@ -134,14 +172,29 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
134
172
|
|
|
135
173
|
// src/browser.ts
|
|
136
174
|
async function createAgentX(config) {
|
|
137
|
-
if (!config || !
|
|
138
|
-
throw new Error(
|
|
139
|
-
'Browser environment only supports remote mode. Please provide { serverUrl: "ws://..." } configuration.'
|
|
140
|
-
);
|
|
175
|
+
if (!config || !isRemoteConfig3(config)) {
|
|
176
|
+
throw new Error("Browser environment only supports remote mode. " + 'Please provide { serverUrl: "ws://..." } configuration.');
|
|
141
177
|
}
|
|
142
178
|
return createRemoteAgentX(config.serverUrl);
|
|
143
179
|
}
|
|
180
|
+
export {
|
|
181
|
+
isResult,
|
|
182
|
+
isRequest,
|
|
183
|
+
isRemoteConfig2 as isRemoteConfig,
|
|
184
|
+
isNotification,
|
|
185
|
+
isLocalConfig,
|
|
186
|
+
isFromSource,
|
|
187
|
+
isCommandResponse,
|
|
188
|
+
isCommandRequest,
|
|
189
|
+
isCommandEvent,
|
|
190
|
+
isAgentTurnEvent,
|
|
191
|
+
isAgentStreamEvent,
|
|
192
|
+
isAgentStateEvent,
|
|
193
|
+
isAgentMessageEvent,
|
|
194
|
+
isAgentEvent,
|
|
195
|
+
hasIntent,
|
|
196
|
+
createRemoteAgentX,
|
|
197
|
+
createAgentX
|
|
198
|
+
};
|
|
144
199
|
|
|
145
|
-
|
|
146
|
-
//# sourceMappingURL=browser.js.map
|
|
147
|
-
//# sourceMappingURL=browser.js.map
|
|
200
|
+
//# debugId=ACC9F328BB04A51C64756E2164756E21
|
package/dist/browser.js.map
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/createAgentX.ts","../src/browser.ts"],"names":["isRemoteConfig"],"mappings":"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","file":"browser.js","sourcesContent":["/**\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 - Browser Entry Point\n *\n * This entry is automatically selected by bundlers (Vite, Webpack, etc.)\n * when building for browser environments.\n *\n * Only includes remote mode (WebSocket client).\n * Does not include Node.js specific code (runtime, fs, sqlite, etc.)\n */\n\n// Re-export everything from index except createAgentX\nexport type {\n AgentX,\n AgentXConfig,\n LocalConfig,\n RemoteConfig,\n LLMConfig,\n StorageConfig,\n StorageDriver,\n Unsubscribe,\n} from \"@agentxjs/types/agentx\";\n\nexport { isLocalConfig, isRemoteConfig } from \"@agentxjs/types/agentx\";\n\n// Event types\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\nexport type {\n CommandEvent,\n CommandRequest,\n CommandResponse,\n CommandEventType,\n CommandRequestType,\n CommandEventMap,\n ContainerCreateRequest,\n ContainerCreateResponse,\n ContainerGetRequest,\n ContainerGetResponse,\n ContainerListRequest,\n ContainerListResponse,\n AgentGetRequest,\n AgentGetResponse,\n AgentListRequest,\n AgentListResponse,\n AgentDestroyRequest,\n AgentDestroyResponse,\n MessageSendRequest,\n MessageSendResponse,\n AgentInterruptRequest,\n AgentInterruptResponse,\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\nexport type {\n AgentEvent,\n AgentEventCategory,\n AgentStreamEvent,\n AgentTextDeltaEvent,\n AgentMessageStartEvent,\n AgentMessageStopEvent,\n AgentToolUseStartEvent,\n AgentToolUseStopEvent,\n AgentToolResultEvent,\n AgentStateEvent,\n ConversationStartEvent,\n ConversationEndEvent,\n ConversationThinkingEvent,\n ConversationRespondingEvent,\n ToolExecutingEvent,\n ToolCompletedEvent,\n ErrorOccurredEvent,\n AgentMessageEvent,\n UserMessageEvent,\n AssistantMessageEvent,\n ToolCallMessageEvent,\n ToolResultMessageEvent,\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// Data types\nexport type { ImageRecord } from \"@agentxjs/types\";\n\nexport type {\n Message,\n UserMessage,\n AssistantMessage,\n ToolCallMessage,\n ToolResultMessage,\n AgentError,\n ContentPart,\n TextPart,\n ToolCallPart,\n ToolResultPart,\n ToolResultOutput,\n} from \"@agentxjs/types/agent\";\n\n// Browser-only createAgentX (remote mode only)\nimport type { AgentX, AgentXConfig } from \"@agentxjs/types/agentx\";\nimport { isRemoteConfig } from \"@agentxjs/types/agentx\";\nimport { createRemoteAgentX } from \"./createAgentX\";\n\n/**\n * Create AgentX instance (Browser version - remote mode only)\n *\n * @param config - Must be RemoteConfig with server URL\n * @returns AgentX instance\n *\n * @example\n * ```typescript\n * const agentx = await createAgentX({ server: \"ws://localhost:5200\" });\n * ```\n */\nexport async function createAgentX(config: AgentXConfig): Promise<AgentX> {\n if (!config || !isRemoteConfig(config)) {\n throw new Error(\n \"Browser environment only supports remote mode. \" +\n 'Please provide { serverUrl: \"ws://...\" } configuration.'\n );\n }\n return createRemoteAgentX(config.serverUrl);\n}\n\n// Also export createRemoteAgentX for explicit usage\nexport { createRemoteAgentX } from \"./createAgentX\";\n"]}
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/browser.ts", "../src/createAgentX.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * agentxjs - Browser Entry Point\n *\n * This entry is automatically selected by bundlers (Vite, Webpack, etc.)\n * when building for browser environments.\n *\n * Only includes remote mode (WebSocket client).\n * Does not include Node.js specific code (runtime, fs, sqlite, etc.)\n */\n\n// Re-export everything from index except createAgentX\nexport type {\n AgentX,\n AgentXConfig,\n LocalConfig,\n RemoteConfig,\n LLMConfig,\n StorageConfig,\n StorageDriver,\n Unsubscribe,\n} from \"@agentxjs/types/agentx\";\n\nexport { isLocalConfig, isRemoteConfig } from \"@agentxjs/types/agentx\";\n\n// Event types\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\nexport type {\n CommandEvent,\n CommandRequest,\n CommandResponse,\n CommandEventType,\n CommandRequestType,\n CommandEventMap,\n ContainerCreateRequest,\n ContainerCreateResponse,\n ContainerGetRequest,\n ContainerGetResponse,\n ContainerListRequest,\n ContainerListResponse,\n AgentGetRequest,\n AgentGetResponse,\n AgentListRequest,\n AgentListResponse,\n AgentDestroyRequest,\n AgentDestroyResponse,\n MessageSendRequest,\n MessageSendResponse,\n AgentInterruptRequest,\n AgentInterruptResponse,\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\nexport type {\n AgentEvent,\n AgentEventCategory,\n AgentStreamEvent,\n AgentTextDeltaEvent,\n AgentMessageStartEvent,\n AgentMessageStopEvent,\n AgentToolUseStartEvent,\n AgentToolUseStopEvent,\n AgentToolResultEvent,\n AgentStateEvent,\n ConversationStartEvent,\n ConversationEndEvent,\n ConversationThinkingEvent,\n ConversationRespondingEvent,\n ToolExecutingEvent,\n ToolCompletedEvent,\n ErrorOccurredEvent,\n AgentMessageEvent,\n UserMessageEvent,\n AssistantMessageEvent,\n ToolCallMessageEvent,\n ToolResultMessageEvent,\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// Data types\nexport type { ImageRecord } from \"@agentxjs/types\";\n\nexport type {\n Message,\n UserMessage,\n AssistantMessage,\n ToolCallMessage,\n ToolResultMessage,\n AgentError,\n ContentPart,\n TextPart,\n ToolCallPart,\n ToolResultPart,\n ToolResultOutput,\n} from \"@agentxjs/types/agent\";\n\n// Browser-only createAgentX (remote mode only)\nimport type { AgentX, AgentXConfig } from \"@agentxjs/types/agentx\";\nimport { isRemoteConfig } from \"@agentxjs/types/agentx\";\nimport { createRemoteAgentX } from \"./createAgentX\";\n\n/**\n * Create AgentX instance (Browser version - remote mode only)\n *\n * @param config - Must be RemoteConfig with server URL\n * @returns AgentX instance\n *\n * @example\n * ```typescript\n * const agentx = await createAgentX({ server: \"ws://localhost:5200\" });\n * ```\n */\nexport async function createAgentX(config: AgentXConfig): Promise<AgentX> {\n if (!config || !isRemoteConfig(config)) {\n throw new Error(\n \"Browser environment only supports remote mode. \" +\n 'Please provide { serverUrl: \"ws://...\" } configuration.'\n );\n }\n return createRemoteAgentX(config.serverUrl);\n}\n\n// Also export createRemoteAgentX for explicit usage\nexport { createRemoteAgentX } from \"./createAgentX\";\n",
|
|
6
|
+
"/**\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"
|
|
7
|
+
],
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "ACC9F328BB04A51C64756E2164756E21",
|
|
10
|
+
"names": []
|
|
11
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,56 +1,60 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
1
|
+
import { AgentX, AgentXConfig } from "@agentxjs/types/agentx";
|
|
9
2
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
3
|
+
* Create AgentX instance
|
|
4
|
+
*
|
|
5
|
+
* @param config - Configuration (LocalConfig or RemoteConfig)
|
|
6
|
+
* @returns AgentX instance
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* // Remote mode (browser & Node.js)
|
|
11
|
+
* const agentx = await createAgentX({ serverUrl: "ws://localhost:5200" });
|
|
12
|
+
*
|
|
13
|
+
* // Local mode (Node.js only)
|
|
14
|
+
* const agentx = await createAgentX({ llm: { apiKey: "sk-..." } });
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
declare function createAgentX(config?: AgentXConfig): Promise<AgentX>;
|
|
36
18
|
/**
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
19
|
+
* Create AgentX instance in remote mode
|
|
20
|
+
*
|
|
21
|
+
* Connects to an AgentX server via WebSocket.
|
|
22
|
+
* Works in both browser and Node.js environments.
|
|
23
|
+
*
|
|
24
|
+
* @param serverUrl - WebSocket server URL
|
|
25
|
+
* @returns AgentX instance
|
|
26
|
+
*/
|
|
27
|
+
declare function createRemoteAgentX(serverUrl: string): Promise<AgentX>;
|
|
28
|
+
import { AgentX as AgentX2, AgentXConfig as AgentXConfig2, LocalConfig, RemoteConfig, LLMConfig, StorageConfig, StorageDriver, Unsubscribe, AgentDefinition } from "@agentxjs/types/agentx";
|
|
29
|
+
import { isLocalConfig, isRemoteConfig } from "@agentxjs/types/agentx";
|
|
30
|
+
import { AgentDefinition as AgentDefinition2 } from "@agentxjs/types/agentx";
|
|
31
|
+
import { SystemEvent, EventSource, EventCategory, EventIntent, EventContext } from "@agentxjs/types/event";
|
|
32
|
+
import { isFromSource, hasIntent, isRequest, isResult, isNotification } from "@agentxjs/types/event";
|
|
33
|
+
import { CommandEvent, CommandRequest, CommandResponse, CommandEventType, CommandRequestType, CommandEventMap, ContainerCreateRequest, ContainerCreateResponse, ContainerGetRequest, ContainerGetResponse, ContainerListRequest, ContainerListResponse, AgentGetRequest, AgentGetResponse, AgentListRequest, AgentListResponse, AgentDestroyRequest, AgentDestroyResponse, MessageSendRequest, MessageSendResponse, AgentInterruptRequest, AgentInterruptResponse, ImageCreateRequest, ImageCreateResponse, ImageRunRequest, ImageRunResponse, ImageStopRequest, ImageStopResponse, ImageUpdateRequest, ImageUpdateResponse, ImageListRequest, ImageListResponse, ImageListItem, ImageGetRequest, ImageGetResponse, ImageDeleteRequest, ImageDeleteResponse } from "@agentxjs/types/event";
|
|
34
|
+
import { isCommandEvent, isCommandRequest, isCommandResponse } from "@agentxjs/types/event";
|
|
35
|
+
import { AgentEvent, AgentEventCategory, AgentStreamEvent, AgentTextDeltaEvent, AgentMessageStartEvent, AgentMessageStopEvent, AgentToolUseStartEvent, AgentToolUseStopEvent, AgentToolResultEvent, AgentStateEvent, ConversationStartEvent, ConversationEndEvent, ConversationThinkingEvent, ConversationRespondingEvent, ToolExecutingEvent, ToolCompletedEvent, ErrorOccurredEvent, AgentMessageEvent, UserMessageEvent, AssistantMessageEvent, ToolCallMessageEvent, ToolResultMessageEvent, AgentTurnEvent, TurnRequestEvent, TurnResponseEvent, TokenUsage } from "@agentxjs/types/event";
|
|
36
|
+
import { isAgentEvent, isAgentStreamEvent, isAgentStateEvent, isAgentMessageEvent, isAgentTurnEvent } from "@agentxjs/types/event";
|
|
37
|
+
import { ImageRecord } from "@agentxjs/types";
|
|
38
|
+
import { Message, MessageRole, MessageSubtype, UserMessage, AssistantMessage, ToolCallMessage, ToolResultMessage, ErrorMessage, AgentError, AgentState, ContentPart, UserContentPart, TextPart, ThinkingPart, ImagePart, FilePart, ToolCallPart, ToolResultPart, ToolResultOutput } from "@agentxjs/types/agent";
|
|
39
|
+
import { createLogger, ConsoleLogger, LoggerFactoryImpl, setLoggerFactory } from "@agentxjs/common";
|
|
40
|
+
import { Logger, LoggerFactory, LogContext, LogLevel, ConsoleLoggerOptions, LoggerFactoryConfig } from "@agentxjs/common";
|
|
41
|
+
/**
|
|
42
|
+
* Define an Agent with type safety
|
|
43
|
+
*
|
|
44
|
+
* Helper function that provides type inference for AgentDefinition.
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* import { defineAgent } from "agentxjs";
|
|
49
|
+
*
|
|
50
|
+
* const MyAgent = defineAgent({
|
|
51
|
+
* name: "MyAgent",
|
|
52
|
+
* systemPrompt: "You are helpful.",
|
|
53
|
+
* mcpServers: {
|
|
54
|
+
* filesystem: { command: "npx", args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] }
|
|
55
|
+
* }
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
declare function defineAgent<T extends AgentDefinition2>(definition: T): T;
|
|
60
|
+
export { setLoggerFactory, isResult, isRequest, isRemoteConfig, isNotification, isLocalConfig, isFromSource, isCommandResponse, isCommandRequest, isCommandEvent, isAgentTurnEvent, isAgentStreamEvent, isAgentStateEvent, isAgentMessageEvent, isAgentEvent, hasIntent, defineAgent, createRemoteAgentX, createLogger, createAgentX, UserMessageEvent, UserMessage, UserContentPart, Unsubscribe, TurnResponseEvent, TurnRequestEvent, ToolResultPart, ToolResultOutput, ToolResultMessageEvent, ToolResultMessage, ToolExecutingEvent, ToolCompletedEvent, ToolCallPart, ToolCallMessageEvent, ToolCallMessage, TokenUsage, ThinkingPart, TextPart, SystemEvent, StorageDriver, StorageConfig, RemoteConfig, MessageSubtype, MessageSendResponse, MessageSendRequest, MessageRole, Message, LoggerFactoryImpl, LoggerFactoryConfig, LoggerFactory, Logger, LogLevel, LogContext, LocalConfig, LLMConfig, ImageUpdateResponse, ImageUpdateRequest, ImageStopResponse, ImageStopRequest, ImageRunResponse, ImageRunRequest, ImageRecord, ImagePart, ImageListResponse, ImageListRequest, ImageListItem, ImageGetResponse, ImageGetRequest, ImageDeleteResponse, ImageDeleteRequest, ImageCreateResponse, ImageCreateRequest, FilePart, EventSource, EventIntent, EventContext, EventCategory, ErrorOccurredEvent, ErrorMessage, ConversationThinkingEvent, ConversationStartEvent, ConversationRespondingEvent, ConversationEndEvent, ContentPart, ContainerListResponse, ContainerListRequest, ContainerGetResponse, ContainerGetRequest, ContainerCreateResponse, ContainerCreateRequest, ConsoleLoggerOptions, ConsoleLogger, CommandResponse, CommandRequestType, CommandRequest, CommandEventType, CommandEventMap, CommandEvent, AssistantMessageEvent, AssistantMessage, AgentXConfig2 as AgentXConfig, AgentX2 as AgentX, AgentTurnEvent, AgentToolUseStopEvent, AgentToolUseStartEvent, AgentToolResultEvent, AgentTextDeltaEvent, AgentStreamEvent, AgentStateEvent, AgentState, AgentMessageStopEvent, AgentMessageStartEvent, AgentMessageEvent, AgentListResponse, AgentListRequest, AgentInterruptResponse, AgentInterruptRequest, AgentGetResponse, AgentGetRequest, AgentEventCategory, AgentEvent, AgentError, AgentDestroyResponse, AgentDestroyRequest, AgentDefinition };
|
package/dist/index.js
CHANGED
|
@@ -1,39 +1,53 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { isRemoteConfig } from '@agentxjs/types/agentx';
|
|
5
|
-
export { isLocalConfig, isRemoteConfig } from '@agentxjs/types/agentx';
|
|
6
|
-
export { hasIntent, isAgentEvent, isAgentMessageEvent, isAgentStateEvent, isAgentStreamEvent, isAgentTurnEvent, isCommandEvent, isCommandRequest, isCommandResponse, isFromSource, isNotification, isRequest, isResult } from '@agentxjs/types/event';
|
|
7
|
-
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
4
|
var __defProp = Object.defineProperty;
|
|
9
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
-
var
|
|
11
|
-
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __toESM = (mod, isNodeMode, target) => {
|
|
8
|
+
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
9
|
+
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
10
|
+
for (let key of __getOwnPropNames(mod))
|
|
11
|
+
if (!__hasOwnProp.call(to, key))
|
|
12
|
+
__defProp(to, key, {
|
|
13
|
+
get: () => mod[key],
|
|
14
|
+
enumerable: true
|
|
15
|
+
});
|
|
16
|
+
return to;
|
|
12
17
|
};
|
|
13
18
|
var __export = (target, all) => {
|
|
14
19
|
for (var name in all)
|
|
15
|
-
__defProp(target, name, {
|
|
20
|
+
__defProp(target, name, {
|
|
21
|
+
get: all[name],
|
|
22
|
+
enumerable: true,
|
|
23
|
+
configurable: true,
|
|
24
|
+
set: (newValue) => all[name] = () => newValue
|
|
25
|
+
});
|
|
16
26
|
};
|
|
27
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
28
|
+
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
17
29
|
|
|
18
30
|
// src/createLocalAgentX.ts
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
31
|
+
var exports_createLocalAgentX = {};
|
|
32
|
+
__export(exports_createLocalAgentX, {
|
|
21
33
|
createLocalAgentX: () => createLocalAgentX
|
|
22
34
|
});
|
|
35
|
+
import { WebSocketServer } from "@agentxjs/network";
|
|
36
|
+
import { createLogger } from "@agentxjs/common";
|
|
23
37
|
async function createLocalAgentX(config) {
|
|
24
38
|
if (config.logger) {
|
|
25
|
-
const { LoggerFactoryImpl
|
|
26
|
-
|
|
39
|
+
const { LoggerFactoryImpl, setLoggerFactory } = await import("@agentxjs/common");
|
|
40
|
+
LoggerFactoryImpl.configure({
|
|
27
41
|
defaultLevel: config.logger.level,
|
|
28
42
|
consoleOptions: config.logger.console
|
|
29
43
|
});
|
|
30
44
|
if (config.logger.factory) {
|
|
31
|
-
|
|
45
|
+
setLoggerFactory(config.logger.factory);
|
|
32
46
|
}
|
|
33
47
|
}
|
|
34
|
-
const { createRuntime, createPersistence } = await import(
|
|
35
|
-
const { homedir } = await import(
|
|
36
|
-
const { join } = await import(
|
|
48
|
+
const { createRuntime, createPersistence } = await import("@agentxjs/runtime");
|
|
49
|
+
const { homedir } = await import("node:os");
|
|
50
|
+
const { join } = await import("node:path");
|
|
37
51
|
const basePath = config.agentxDir ?? join(homedir(), ".agentx");
|
|
38
52
|
const storagePath = join(basePath, "data", "agentx.db");
|
|
39
53
|
const persistence = await createPersistence({
|
|
@@ -55,7 +69,7 @@ async function createLocalAgentX(config) {
|
|
|
55
69
|
});
|
|
56
70
|
const wsServer = new WebSocketServer({
|
|
57
71
|
heartbeat: true,
|
|
58
|
-
heartbeatInterval:
|
|
72
|
+
heartbeatInterval: 30000,
|
|
59
73
|
debug: false
|
|
60
74
|
});
|
|
61
75
|
wsServer.onConnection((connection) => {
|
|
@@ -67,8 +81,7 @@ async function createLocalAgentX(config) {
|
|
|
67
81
|
category: event.category
|
|
68
82
|
});
|
|
69
83
|
runtime.emit(event);
|
|
70
|
-
} catch {
|
|
71
|
-
}
|
|
84
|
+
} catch {}
|
|
72
85
|
});
|
|
73
86
|
});
|
|
74
87
|
runtime.onAny((event) => {
|
|
@@ -88,17 +101,13 @@ async function createLocalAgentX(config) {
|
|
|
88
101
|
wsServer.attach(config.server, "/ws");
|
|
89
102
|
}
|
|
90
103
|
return {
|
|
91
|
-
// Core API - delegate to runtime
|
|
92
104
|
request: (type, data, timeout) => runtime.request(type, data, timeout),
|
|
93
105
|
on: (type, handler) => runtime.on(type, handler),
|
|
94
106
|
onCommand: (type, handler) => runtime.onCommand(type, handler),
|
|
95
107
|
emitCommand: (type, data) => runtime.emitCommand(type, data),
|
|
96
|
-
// Server API
|
|
97
108
|
async listen(port, host) {
|
|
98
109
|
if (config.server) {
|
|
99
|
-
throw new Error(
|
|
100
|
-
"Cannot listen when attached to existing server. The server should call listen() instead."
|
|
101
|
-
);
|
|
110
|
+
throw new Error("Cannot listen when attached to existing server. The server should call listen() instead.");
|
|
102
111
|
}
|
|
103
112
|
await wsServer.listen(port, host);
|
|
104
113
|
},
|
|
@@ -112,32 +121,34 @@ async function createLocalAgentX(config) {
|
|
|
112
121
|
};
|
|
113
122
|
}
|
|
114
123
|
var logger;
|
|
115
|
-
var init_createLocalAgentX = __esm({
|
|
116
|
-
"
|
|
117
|
-
logger = createLogger("agentx/LocalAgentX");
|
|
118
|
-
}
|
|
124
|
+
var init_createLocalAgentX = __esm(() => {
|
|
125
|
+
logger = createLogger("agentx/LocalAgentX");
|
|
119
126
|
});
|
|
120
|
-
|
|
127
|
+
|
|
128
|
+
// src/createAgentX.ts
|
|
129
|
+
import { isRemoteConfig } from "@agentxjs/types/agentx";
|
|
130
|
+
import { createLogger as createLogger2 } from "@agentxjs/common";
|
|
131
|
+
var remoteLogger = createLogger2("agentx/RemoteClient");
|
|
121
132
|
async function createAgentX(config) {
|
|
122
133
|
if (config && isRemoteConfig(config)) {
|
|
123
134
|
return createRemoteAgentX(config.serverUrl);
|
|
124
135
|
}
|
|
125
|
-
const { createLocalAgentX: createLocalAgentX2 } = await Promise.resolve().then(() => (init_createLocalAgentX(),
|
|
136
|
+
const { createLocalAgentX: createLocalAgentX2 } = await Promise.resolve().then(() => (init_createLocalAgentX(), exports_createLocalAgentX));
|
|
126
137
|
return createLocalAgentX2(config ?? {});
|
|
127
138
|
}
|
|
128
139
|
async function createRemoteAgentX(serverUrl) {
|
|
129
|
-
const { createWebSocketClient } = await import(
|
|
140
|
+
const { createWebSocketClient } = await import("@agentxjs/network");
|
|
130
141
|
const client = await createWebSocketClient({
|
|
131
142
|
serverUrl,
|
|
132
143
|
autoReconnect: true,
|
|
133
|
-
minReconnectionDelay:
|
|
144
|
+
minReconnectionDelay: 1000,
|
|
134
145
|
maxReconnectionDelay: 1e4,
|
|
135
|
-
connectionTimeout:
|
|
146
|
+
connectionTimeout: 4000,
|
|
136
147
|
maxRetries: Infinity,
|
|
137
148
|
debug: false
|
|
138
149
|
});
|
|
139
|
-
const handlers =
|
|
140
|
-
const pendingRequests =
|
|
150
|
+
const handlers = new Map;
|
|
151
|
+
const pendingRequests = new Map;
|
|
141
152
|
client.onMessage((message) => {
|
|
142
153
|
try {
|
|
143
154
|
const event = JSON.parse(message);
|
|
@@ -176,8 +187,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
176
187
|
handler(event);
|
|
177
188
|
}
|
|
178
189
|
}
|
|
179
|
-
} catch {
|
|
180
|
-
}
|
|
190
|
+
} catch {}
|
|
181
191
|
});
|
|
182
192
|
client.onClose(() => {
|
|
183
193
|
remoteLogger.warn("WebSocket closed");
|
|
@@ -187,7 +197,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
187
197
|
});
|
|
188
198
|
function subscribe(type, handler) {
|
|
189
199
|
if (!handlers.has(type)) {
|
|
190
|
-
handlers.set(type,
|
|
200
|
+
handlers.set(type, new Set);
|
|
191
201
|
}
|
|
192
202
|
handlers.get(type).add(handler);
|
|
193
203
|
return () => {
|
|
@@ -195,7 +205,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
195
205
|
};
|
|
196
206
|
}
|
|
197
207
|
return {
|
|
198
|
-
request(type, data, timeout =
|
|
208
|
+
request(type, data, timeout = 30000) {
|
|
199
209
|
return new Promise((resolve, reject) => {
|
|
200
210
|
const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
|
|
201
211
|
const timer = setTimeout(() => {
|
|
@@ -238,8 +248,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
238
248
|
async listen() {
|
|
239
249
|
throw new Error("Cannot listen in remote mode");
|
|
240
250
|
},
|
|
241
|
-
async close() {
|
|
242
|
-
},
|
|
251
|
+
async close() {},
|
|
243
252
|
async dispose() {
|
|
244
253
|
for (const pending of pendingRequests.values()) {
|
|
245
254
|
clearTimeout(pending.timer);
|
|
@@ -251,10 +260,51 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
251
260
|
}
|
|
252
261
|
};
|
|
253
262
|
}
|
|
263
|
+
|
|
264
|
+
// src/index.ts
|
|
265
|
+
import { isLocalConfig, isRemoteConfig as isRemoteConfig2 } from "@agentxjs/types/agentx";
|
|
266
|
+
import {
|
|
267
|
+
isFromSource,
|
|
268
|
+
hasIntent,
|
|
269
|
+
isRequest,
|
|
270
|
+
isResult,
|
|
271
|
+
isNotification
|
|
272
|
+
} from "@agentxjs/types/event";
|
|
273
|
+
import { isCommandEvent, isCommandRequest, isCommandResponse } from "@agentxjs/types/event";
|
|
274
|
+
import {
|
|
275
|
+
isAgentEvent,
|
|
276
|
+
isAgentStreamEvent,
|
|
277
|
+
isAgentStateEvent,
|
|
278
|
+
isAgentMessageEvent,
|
|
279
|
+
isAgentTurnEvent
|
|
280
|
+
} from "@agentxjs/types/event";
|
|
281
|
+
import { createLogger as createLogger3, ConsoleLogger, LoggerFactoryImpl, setLoggerFactory } from "@agentxjs/common";
|
|
254
282
|
function defineAgent(definition) {
|
|
255
283
|
return definition;
|
|
256
284
|
}
|
|
285
|
+
export {
|
|
286
|
+
setLoggerFactory,
|
|
287
|
+
isResult,
|
|
288
|
+
isRequest,
|
|
289
|
+
isRemoteConfig2 as isRemoteConfig,
|
|
290
|
+
isNotification,
|
|
291
|
+
isLocalConfig,
|
|
292
|
+
isFromSource,
|
|
293
|
+
isCommandResponse,
|
|
294
|
+
isCommandRequest,
|
|
295
|
+
isCommandEvent,
|
|
296
|
+
isAgentTurnEvent,
|
|
297
|
+
isAgentStreamEvent,
|
|
298
|
+
isAgentStateEvent,
|
|
299
|
+
isAgentMessageEvent,
|
|
300
|
+
isAgentEvent,
|
|
301
|
+
hasIntent,
|
|
302
|
+
defineAgent,
|
|
303
|
+
createRemoteAgentX,
|
|
304
|
+
createLogger3 as createLogger,
|
|
305
|
+
createAgentX,
|
|
306
|
+
LoggerFactoryImpl,
|
|
307
|
+
ConsoleLogger
|
|
308
|
+
};
|
|
257
309
|
|
|
258
|
-
|
|
259
|
-
//# sourceMappingURL=index.js.map
|
|
260
|
-
//# sourceMappingURL=index.js.map
|
|
310
|
+
//# debugId=861D2D8172AB3ED464756E2164756E21
|