agentxjs 1.6.0 → 1.7.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 +35 -7
- package/dist/browser.js.map +4 -4
- package/dist/index.d.ts +5 -5
- package/dist/index.js +35 -7
- package/dist/index.js.map +3 -3
- package/package.json +6 -6
package/dist/browser.js
CHANGED
|
@@ -45,10 +45,11 @@ import { isRemoteConfig as isRemoteConfig3 } from "@agentxjs/types/agentx";
|
|
|
45
45
|
import { isRemoteConfig } from "@agentxjs/types/agentx";
|
|
46
46
|
import { createLogger } from "@agentxjs/common";
|
|
47
47
|
var remoteLogger = createLogger("agentx/RemoteClient");
|
|
48
|
-
async function createRemoteAgentX(
|
|
48
|
+
async function createRemoteAgentX(config) {
|
|
49
49
|
const { createWebSocketClient } = await import("@agentxjs/network");
|
|
50
50
|
const client = await createWebSocketClient({
|
|
51
|
-
serverUrl,
|
|
51
|
+
serverUrl: config.serverUrl,
|
|
52
|
+
headers: config.headers,
|
|
52
53
|
autoReconnect: true,
|
|
53
54
|
minReconnectionDelay: 1000,
|
|
54
55
|
maxReconnectionDelay: 1e4,
|
|
@@ -114,9 +115,36 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
114
115
|
};
|
|
115
116
|
}
|
|
116
117
|
return {
|
|
117
|
-
request(type, data, timeout = 30000) {
|
|
118
|
+
async request(type, data, timeout = 30000) {
|
|
119
|
+
const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
|
|
120
|
+
let mergedData = { ...data, requestId };
|
|
121
|
+
if (config.context) {
|
|
122
|
+
try {
|
|
123
|
+
let resolvedContext;
|
|
124
|
+
if (typeof config.context === "function") {
|
|
125
|
+
resolvedContext = await Promise.resolve(config.context());
|
|
126
|
+
} else {
|
|
127
|
+
resolvedContext = config.context;
|
|
128
|
+
}
|
|
129
|
+
mergedData = {
|
|
130
|
+
...resolvedContext,
|
|
131
|
+
...data,
|
|
132
|
+
requestId
|
|
133
|
+
};
|
|
134
|
+
remoteLogger.info("Merged context into request", {
|
|
135
|
+
type,
|
|
136
|
+
requestId,
|
|
137
|
+
contextKeys: Object.keys(resolvedContext)
|
|
138
|
+
});
|
|
139
|
+
} catch (error) {
|
|
140
|
+
remoteLogger.error("Failed to resolve context", {
|
|
141
|
+
type,
|
|
142
|
+
requestId,
|
|
143
|
+
error: error instanceof Error ? error.message : String(error)
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}
|
|
118
147
|
return new Promise((resolve, reject) => {
|
|
119
|
-
const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
|
|
120
148
|
const timer = setTimeout(() => {
|
|
121
149
|
pendingRequests.delete(requestId);
|
|
122
150
|
reject(new Error(`Request timeout: ${type}`));
|
|
@@ -129,7 +157,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
129
157
|
const event = {
|
|
130
158
|
type,
|
|
131
159
|
timestamp: Date.now(),
|
|
132
|
-
data:
|
|
160
|
+
data: mergedData,
|
|
133
161
|
source: "command",
|
|
134
162
|
category: "request",
|
|
135
163
|
intent: "request"
|
|
@@ -175,7 +203,7 @@ async function createAgentX(config) {
|
|
|
175
203
|
if (!config || !isRemoteConfig3(config)) {
|
|
176
204
|
throw new Error("Browser environment only supports remote mode. " + 'Please provide { serverUrl: "ws://..." } configuration.');
|
|
177
205
|
}
|
|
178
|
-
return createRemoteAgentX(config
|
|
206
|
+
return createRemoteAgentX(config);
|
|
179
207
|
}
|
|
180
208
|
export {
|
|
181
209
|
isResult,
|
|
@@ -197,4 +225,4 @@ export {
|
|
|
197
225
|
createAgentX
|
|
198
226
|
};
|
|
199
227
|
|
|
200
|
-
//# debugId=
|
|
228
|
+
//# debugId=8D4B9F8AA8319ED964756E2164756E21
|
package/dist/browser.js.map
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/browser.ts", "../src/createAgentX.ts"],
|
|
4
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
|
|
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
|
|
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);\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, RemoteConfig, 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);\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 config - Remote configuration (serverUrl, headers, context)\n * @returns AgentX instance\n */\nexport async function createRemoteAgentX(config: RemoteConfig): 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: config.serverUrl,\n headers: config.headers,\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 async request<T extends CommandRequestType>(\n type: T,\n data: RequestDataFor<T>,\n timeout: number = 30000\n ): Promise<ResponseEventFor<T>> {\n const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;\n\n // Resolve and merge context if provided\n let mergedData = { ...data, requestId };\n if (config.context) {\n try {\n let resolvedContext: Record<string, unknown>;\n if (typeof config.context === \"function\") {\n resolvedContext = await Promise.resolve(config.context());\n } else {\n resolvedContext = config.context;\n }\n\n // Merge context into data\n // Request-level context (if present in data) takes precedence\n mergedData = {\n ...resolvedContext,\n ...data,\n requestId,\n } as RequestDataFor<T> & { requestId: string };\n\n remoteLogger.info(\"Merged context into request\", {\n type,\n requestId,\n contextKeys: Object.keys(resolvedContext),\n });\n } catch (error) {\n remoteLogger.error(\"Failed to resolve context\", {\n type,\n requestId,\n error: error instanceof Error ? error.message : String(error),\n });\n // Continue without context if resolution fails\n }\n }\n\n return new Promise((resolve, reject) => {\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: mergedData,\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
7
|
],
|
|
8
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,0CAAwB;AAWxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiDA;AAgCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2BA,2BAAS;;;ACjIT;AAQA;AAEA,IAAM,eAAe,aAAa,qBAAqB;AAwCvD,eAAsB,kBAAkB,CAAC,
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "8D4B9F8AA8319ED964756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AgentX, AgentXConfig } from "@agentxjs/types/agentx";
|
|
1
|
+
import { AgentX, AgentXConfig, RemoteConfig } from "@agentxjs/types/agentx";
|
|
2
2
|
/**
|
|
3
3
|
* Create AgentX instance
|
|
4
4
|
*
|
|
@@ -21,11 +21,11 @@ declare function createAgentX(config?: AgentXConfig): Promise<AgentX>;
|
|
|
21
21
|
* Connects to an AgentX server via WebSocket.
|
|
22
22
|
* Works in both browser and Node.js environments.
|
|
23
23
|
*
|
|
24
|
-
* @param
|
|
24
|
+
* @param config - Remote configuration (serverUrl, headers, context)
|
|
25
25
|
* @returns AgentX instance
|
|
26
26
|
*/
|
|
27
|
-
declare function createRemoteAgentX(
|
|
28
|
-
import { AgentX as AgentX2, AgentXConfig as AgentXConfig2, LocalConfig, RemoteConfig, LLMConfig, StorageConfig, StorageDriver, Unsubscribe, AgentDefinition } from "@agentxjs/types/agentx";
|
|
27
|
+
declare function createRemoteAgentX(config: RemoteConfig): Promise<AgentX>;
|
|
28
|
+
import { AgentX as AgentX2, AgentXConfig as AgentXConfig2, LocalConfig, RemoteConfig as RemoteConfig2, LLMConfig, StorageConfig, StorageDriver, Unsubscribe, AgentDefinition } from "@agentxjs/types/agentx";
|
|
29
29
|
import { isLocalConfig, isRemoteConfig } from "@agentxjs/types/agentx";
|
|
30
30
|
import { AgentDefinition as AgentDefinition2 } from "@agentxjs/types/agentx";
|
|
31
31
|
import { SystemEvent, EventSource, EventCategory, EventIntent, EventContext } from "@agentxjs/types/event";
|
|
@@ -57,4 +57,4 @@ import { Logger, LoggerFactory, LogContext, LogLevel, ConsoleLoggerOptions, Logg
|
|
|
57
57
|
* ```
|
|
58
58
|
*/
|
|
59
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 };
|
|
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, RemoteConfig2 as 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
|
@@ -133,15 +133,16 @@ import { createLogger as createLogger2 } from "@agentxjs/common";
|
|
|
133
133
|
var remoteLogger = createLogger2("agentx/RemoteClient");
|
|
134
134
|
async function createAgentX(config) {
|
|
135
135
|
if (config && isRemoteConfig(config)) {
|
|
136
|
-
return createRemoteAgentX(config
|
|
136
|
+
return createRemoteAgentX(config);
|
|
137
137
|
}
|
|
138
138
|
const { createLocalAgentX: createLocalAgentX2 } = await Promise.resolve().then(() => (init_createLocalAgentX(), exports_createLocalAgentX));
|
|
139
139
|
return createLocalAgentX2(config ?? {});
|
|
140
140
|
}
|
|
141
|
-
async function createRemoteAgentX(
|
|
141
|
+
async function createRemoteAgentX(config) {
|
|
142
142
|
const { createWebSocketClient } = await import("@agentxjs/network");
|
|
143
143
|
const client = await createWebSocketClient({
|
|
144
|
-
serverUrl,
|
|
144
|
+
serverUrl: config.serverUrl,
|
|
145
|
+
headers: config.headers,
|
|
145
146
|
autoReconnect: true,
|
|
146
147
|
minReconnectionDelay: 1000,
|
|
147
148
|
maxReconnectionDelay: 1e4,
|
|
@@ -207,9 +208,36 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
207
208
|
};
|
|
208
209
|
}
|
|
209
210
|
return {
|
|
210
|
-
request(type, data, timeout = 30000) {
|
|
211
|
+
async request(type, data, timeout = 30000) {
|
|
212
|
+
const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
|
|
213
|
+
let mergedData = { ...data, requestId };
|
|
214
|
+
if (config.context) {
|
|
215
|
+
try {
|
|
216
|
+
let resolvedContext;
|
|
217
|
+
if (typeof config.context === "function") {
|
|
218
|
+
resolvedContext = await Promise.resolve(config.context());
|
|
219
|
+
} else {
|
|
220
|
+
resolvedContext = config.context;
|
|
221
|
+
}
|
|
222
|
+
mergedData = {
|
|
223
|
+
...resolvedContext,
|
|
224
|
+
...data,
|
|
225
|
+
requestId
|
|
226
|
+
};
|
|
227
|
+
remoteLogger.info("Merged context into request", {
|
|
228
|
+
type,
|
|
229
|
+
requestId,
|
|
230
|
+
contextKeys: Object.keys(resolvedContext)
|
|
231
|
+
});
|
|
232
|
+
} catch (error) {
|
|
233
|
+
remoteLogger.error("Failed to resolve context", {
|
|
234
|
+
type,
|
|
235
|
+
requestId,
|
|
236
|
+
error: error instanceof Error ? error.message : String(error)
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
}
|
|
211
240
|
return new Promise((resolve, reject) => {
|
|
212
|
-
const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;
|
|
213
241
|
const timer = setTimeout(() => {
|
|
214
242
|
pendingRequests.delete(requestId);
|
|
215
243
|
reject(new Error(`Request timeout: ${type}`));
|
|
@@ -222,7 +250,7 @@ async function createRemoteAgentX(serverUrl) {
|
|
|
222
250
|
const event = {
|
|
223
251
|
type,
|
|
224
252
|
timestamp: Date.now(),
|
|
225
|
-
data:
|
|
253
|
+
data: mergedData,
|
|
226
254
|
source: "command",
|
|
227
255
|
category: "request",
|
|
228
256
|
intent: "request"
|
|
@@ -309,4 +337,4 @@ export {
|
|
|
309
337
|
ConsoleLogger
|
|
310
338
|
};
|
|
311
339
|
|
|
312
|
-
//# debugId=
|
|
340
|
+
//# debugId=A0E8E157C65D016664756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
"sources": ["../src/createLocalAgentX.ts", "../src/createAgentX.ts", "../src/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\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, RuntimeEnvironment } = await import(\"@agentxjs/runtime\");\n const { createPersistence } = await import(\"@agentxjs/persistence\");\n const { sqliteDriver } = await import(\"@agentxjs/persistence/sqlite\");\n const { homedir } = await import(\"node:os\");\n const { join } = await import(\"node:path\");\n\n // Configure global runtime environment if provided\n if (config.environment?.claudeCodePath) {\n RuntimeEnvironment.setClaudeCodePath(config.environment.claudeCodePath);\n }\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(sqliteDriver({ path: storagePath }));\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",
|
|
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
|
|
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, RemoteConfig, 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);\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 config - Remote configuration (serverUrl, headers, context)\n * @returns AgentX instance\n */\nexport async function createRemoteAgentX(config: RemoteConfig): 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: config.serverUrl,\n headers: config.headers,\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 async request<T extends CommandRequestType>(\n type: T,\n data: RequestDataFor<T>,\n timeout: number = 30000\n ): Promise<ResponseEventFor<T>> {\n const requestId = `req_${Date.now()}_${Math.random().toString(36).substring(2, 8)}`;\n\n // Resolve and merge context if provided\n let mergedData = { ...data, requestId };\n if (config.context) {\n try {\n let resolvedContext: Record<string, unknown>;\n if (typeof config.context === \"function\") {\n resolvedContext = await Promise.resolve(config.context());\n } else {\n resolvedContext = config.context;\n }\n\n // Merge context into data\n // Request-level context (if present in data) takes precedence\n mergedData = {\n ...resolvedContext,\n ...data,\n requestId,\n } as RequestDataFor<T> & { requestId: string };\n\n remoteLogger.info(\"Merged context into request\", {\n type,\n requestId,\n contextKeys: Object.keys(resolvedContext),\n });\n } catch (error) {\n remoteLogger.error(\"Failed to resolve context\", {\n type,\n requestId,\n error: error instanceof Error ? error.message : String(error),\n });\n // Continue without context if resolution fails\n }\n }\n\n return new Promise((resolve, reject) => {\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: mergedData,\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
7
|
"/**\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 UserContentPart,\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"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "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
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "A0E8E157C65D016664756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentxjs",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0",
|
|
4
4
|
"description": "Unified API for AI Agents - Server and Browser",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"engines": {
|
|
@@ -34,15 +34,15 @@
|
|
|
34
34
|
"test:watch": "bun test --watch"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@agentxjs/common": "^1.
|
|
38
|
-
"@agentxjs/network": "^1.
|
|
39
|
-
"@agentxjs/types": "^1.
|
|
37
|
+
"@agentxjs/common": "^1.7.0",
|
|
38
|
+
"@agentxjs/network": "^1.7.0",
|
|
39
|
+
"@agentxjs/types": "^1.7.0",
|
|
40
40
|
"reconnecting-websocket": "^4.4.0",
|
|
41
41
|
"ws": "^8.18.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@agentxjs/persistence": "^1.
|
|
45
|
-
"@agentxjs/runtime": "^1.
|
|
44
|
+
"@agentxjs/persistence": "^1.7.0",
|
|
45
|
+
"@agentxjs/runtime": "^1.7.0"
|
|
46
46
|
},
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public"
|