agentxjs 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +602 -0
  3. package/dist/index.cjs +1292 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +88 -0
  6. package/dist/index.d.ts +88 -0
  7. package/dist/index.js +1283 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/runtime/sse/index.cjs +633 -0
  10. package/dist/runtime/sse/index.cjs.map +1 -0
  11. package/dist/runtime/sse/index.d.cts +159 -0
  12. package/dist/runtime/sse/index.d.ts +159 -0
  13. package/dist/runtime/sse/index.js +621 -0
  14. package/dist/runtime/sse/index.js.map +1 -0
  15. package/dist/server/adapters/express.cjs +81 -0
  16. package/dist/server/adapters/express.cjs.map +1 -0
  17. package/dist/server/adapters/express.d.cts +75 -0
  18. package/dist/server/adapters/express.d.ts +75 -0
  19. package/dist/server/adapters/express.js +78 -0
  20. package/dist/server/adapters/express.js.map +1 -0
  21. package/dist/server/adapters/hono.cjs +32 -0
  22. package/dist/server/adapters/hono.cjs.map +1 -0
  23. package/dist/server/adapters/hono.d.cts +96 -0
  24. package/dist/server/adapters/hono.d.ts +96 -0
  25. package/dist/server/adapters/hono.js +28 -0
  26. package/dist/server/adapters/hono.js.map +1 -0
  27. package/dist/server/adapters/index.cjs +135 -0
  28. package/dist/server/adapters/index.cjs.map +1 -0
  29. package/dist/server/adapters/index.d.cts +5 -0
  30. package/dist/server/adapters/index.d.ts +5 -0
  31. package/dist/server/adapters/index.js +125 -0
  32. package/dist/server/adapters/index.js.map +1 -0
  33. package/dist/server/adapters/next.cjs +30 -0
  34. package/dist/server/adapters/next.cjs.map +1 -0
  35. package/dist/server/adapters/next.d.cts +107 -0
  36. package/dist/server/adapters/next.d.ts +107 -0
  37. package/dist/server/adapters/next.js +25 -0
  38. package/dist/server/adapters/next.js.map +1 -0
  39. package/dist/server/index.cjs +1093 -0
  40. package/dist/server/index.cjs.map +1 -0
  41. package/dist/server/index.d.cts +131 -0
  42. package/dist/server/index.d.ts +131 -0
  43. package/dist/server/index.js +1080 -0
  44. package/dist/server/index.js.map +1 -0
  45. package/dist/types-Cgfcw91r.d.cts +282 -0
  46. package/dist/types-Cgfcw91r.d.ts +282 -0
  47. package/dist/types-OVKV6qpE.d.cts +118 -0
  48. package/dist/types-OVKV6qpE.d.ts +118 -0
  49. package/package.json +78 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/runtime/sse/SSEDriver.ts","../../../src/managers/remote/HttpClient.ts","../../../src/runtime/sse/repository/RemoteRepository.ts","../../../src/runtime/sse/logger/BrowserLogger.ts","../../../src/runtime/sse/logger/BrowserLoggerFactory.ts","../../../src/runtime/sse/RemoteAgentIdResolver.ts","../../../src/runtime/sse/SSERuntime.ts"],"names":["STREAM_EVENT_TYPE_NAMES","ky","createLogger","LogLevelEnum","logger","setLoggerFactory"],"mappings":"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","file":"index.cjs","sourcesContent":["/* eslint-disable no-undef */\n/**\n * SSEDriver - Browser-side driver that connects to remote AgentX server via SSE\n *\n * This driver enables the client to use the full agentx stack (including AgentEngine)\n * by bridging SSE push events to the async generator pull model.\n *\n * @example\n * ```typescript\n * import { createSSERuntime } from \"agentxjs/client\";\n * import { createAgentX, defineAgent } from \"agentxjs\";\n *\n * const runtime = createSSERuntime({\n * serverUrl: \"http://localhost:5200/agentx\",\n * agentId: \"agent_123\"\n * });\n * const agentx = createAgentX(runtime);\n * const agent = agentx.agents.create(defineAgent({ name: \"Assistant\" }));\n *\n * agent.on(\"assistant_message\", (event) => {\n * console.log(event.data.content);\n * });\n *\n * await agent.receive(\"Hello!\");\n * ```\n */\n\nimport type { UserMessage, StreamEventType, AgentDriver } from \"@agentxjs/types\";\nimport { STREAM_EVENT_TYPE_NAMES } from \"@agentxjs/types\";\n\n/**\n * Persistent SSE connection manager\n *\n * Maintains a single SSE connection for the lifetime of the driver.\n * Bridges SSE push model to async generator pull model for each receive() call.\n */\nclass PersistentSSEConnection {\n private eventSource: EventSource | null = null;\n private messageQueue: StreamEventType[] = [];\n private activeIterators: Set<{\n resolve: (result: IteratorResult<StreamEventType>) => void;\n reject: (error: Error) => void;\n }> = new Set();\n private isDone = false;\n\n constructor(\n private readonly serverUrl: string,\n private readonly agentId: string,\n private readonly sseParams: Record<string, string> = {}\n ) {}\n\n /**\n * Initialize SSE connection\n */\n connect(): void {\n if (this.eventSource) {\n return; // Already connected\n }\n\n // Build SSE URL with optional query parameters (for auth, etc.)\n let sseUrl = `${this.serverUrl}/agents/${this.agentId}/sse`;\n if (Object.keys(this.sseParams).length > 0) {\n const params = new URLSearchParams(this.sseParams);\n sseUrl += `?${params.toString()}`;\n }\n this.eventSource = new EventSource(sseUrl);\n\n const handleEvent = (event: MessageEvent) => {\n try {\n const data = JSON.parse(event.data) as StreamEventType;\n\n // Notify all active iterators\n if (this.activeIterators.size > 0) {\n const iterator = this.activeIterators.values().next().value;\n if (iterator) {\n this.activeIterators.delete(iterator);\n iterator.resolve({ value: data, done: false });\n }\n } else {\n // Queue event if no iterator is waiting\n this.messageQueue.push(data);\n }\n } catch {\n // Ignore parse errors\n }\n };\n\n const handleError = () => {\n this.isDone = true;\n this.eventSource?.close();\n this.eventSource = null;\n\n // Reject all waiting iterators\n for (const iterator of this.activeIterators) {\n iterator.reject(new Error(\"SSE connection error\"));\n }\n this.activeIterators.clear();\n };\n\n // Listen for all stream event types\n for (const eventType of STREAM_EVENT_TYPE_NAMES) {\n this.eventSource.addEventListener(eventType, handleEvent as any);\n }\n\n // Listen for error events (independent from stream events, transportable via SSE)\n this.eventSource.addEventListener(\"error\", handleEvent as any);\n\n // Also listen for generic message events (fallback)\n this.eventSource.onmessage = handleEvent;\n\n // Handle SSE connection errors (different from our ErrorEvent)\n this.eventSource.onerror = handleError;\n }\n\n /**\n * Create an async iterable for a single receive() call\n *\n * This iterator continues until a final message_stop is received (stopReason !== \"tool_use\").\n * For tool calls, this means it will span multiple message_start/message_stop cycles.\n * The SSE connection itself remains open for future receive() calls.\n */\n createIterator(): AsyncIterable<StreamEventType> {\n const connection = this;\n\n return {\n [Symbol.asyncIterator]() {\n let turnComplete = false;\n\n return {\n async next(): Promise<IteratorResult<StreamEventType>> {\n // Return queued events first\n if (connection.messageQueue.length > 0) {\n const event = connection.messageQueue.shift()!;\n\n // Check if turn is complete at message_stop\n // Continue if stopReason is \"tool_use\", stop otherwise\n if (event.type === \"message_stop\") {\n const stopReason = event.data.stopReason;\n if (stopReason !== \"tool_use\") {\n turnComplete = true;\n }\n }\n\n return { value: event, done: false };\n }\n\n // If turn is complete, end iteration (but keep connection open for next receive())\n if (turnComplete) {\n return { done: true, value: undefined as any };\n }\n\n // If connection died, end iteration\n if (connection.isDone) {\n return { done: true, value: undefined as any };\n }\n\n // Wait for next event\n return new Promise((resolve, reject) => {\n // Wrap resolve to check for completion\n const wrappedResolve = (result: IteratorResult<StreamEventType>) => {\n if (!result.done) {\n // Check if turn is complete at message_stop\n if (result.value.type === \"message_stop\") {\n const stopReason = result.value.data.stopReason;\n if (stopReason !== \"tool_use\") {\n turnComplete = true;\n }\n }\n }\n resolve(result);\n };\n\n const iterator = { resolve: wrappedResolve, reject };\n connection.activeIterators.add(iterator);\n });\n },\n\n async return(): Promise<IteratorResult<StreamEventType>> {\n // Cleanup this iterator (but keep connection alive)\n return { done: true, value: undefined as any };\n },\n };\n },\n };\n }\n\n /**\n * Close the connection\n */\n close(): void {\n this.isDone = true;\n\n if (this.eventSource) {\n this.eventSource.close();\n this.eventSource = null;\n }\n\n // Reject all waiting iterators\n for (const iterator of this.activeIterators) {\n iterator.reject(new Error(\"Connection closed\"));\n }\n this.activeIterators.clear();\n this.messageQueue = [];\n }\n}\n\n/**\n * SSEDriver configuration\n */\nexport interface SSEDriverConfig {\n serverUrl: string;\n agentId: string;\n headers?: Record<string, string>;\n /**\n * Query parameters to append to SSE URL.\n * Use this for authentication since EventSource doesn't support headers.\n */\n sseParams?: Record<string, string>;\n}\n\n/**\n * Create an SSEDriver instance\n *\n * Factory function for browser-side SSE driver.\n */\nexport function createSSEDriver(config: SSEDriverConfig): AgentDriver {\n const { serverUrl, agentId, headers = {}, sseParams = {} } = config;\n let connection: PersistentSSEConnection | null = null;\n\n return {\n name: \"SSEDriver\",\n\n async *receive(message: UserMessage): AsyncIterable<StreamEventType> {\n // 1. Ensure SSE connection is established\n if (!connection) {\n connection = new PersistentSSEConnection(serverUrl, agentId, sseParams);\n connection.connect();\n }\n\n // 2. Send message to server via HTTP POST\n const messageUrl = `${serverUrl}/agents/${agentId}/messages`;\n const response = await fetch(messageUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify({\n content: typeof message.content === \"string\" ? message.content : message.content,\n }),\n });\n\n if (!response.ok) {\n const errorBody = (await response.json().catch(() => ({}))) as {\n error?: { message?: string };\n };\n throw new Error(errorBody.error?.message || `HTTP ${response.status}`);\n }\n\n // 3. Yield events from persistent SSE connection\n yield* connection.createIterator();\n },\n\n interrupt(): void {\n // Call server interrupt endpoint (fire-and-forget)\n const interruptUrl = `${serverUrl}/agents/${agentId}/interrupt`;\n fetch(interruptUrl, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n }).catch(() => {\n // Ignore errors - interrupt is best-effort\n });\n },\n };\n}\n","/**\n * HttpClient - ky-based HTTP client for Remote managers\n */\n\nimport ky, { type KyInstance } from \"ky\";\n\n/**\n * HTTP client options\n */\nexport interface HttpClientOptions {\n baseUrl: string;\n headers?: Record<string, string>;\n timeout?: number;\n}\n\n/**\n * API error from server\n */\nexport class ApiError extends Error {\n constructor(\n public readonly code: string,\n message: string,\n public readonly details?: unknown\n ) {\n super(message);\n this.name = \"ApiError\";\n }\n}\n\n/**\n * Create HTTP client instance\n */\nexport function createHttpClient(options: HttpClientOptions): KyInstance {\n return ky.create({\n prefixUrl: options.baseUrl.replace(/\\/+$/, \"\"),\n headers: options.headers,\n timeout: options.timeout || 30000,\n hooks: {\n afterResponse: [\n async (_request, _options, response) => {\n if (!response.ok) {\n const data = (await response.json().catch(() => ({}))) as {\n error?: { code?: string; message?: string; details?: unknown };\n };\n throw new ApiError(\n data.error?.code || \"UNKNOWN_ERROR\",\n data.error?.message || `Request failed: ${response.status}`,\n data.error?.details\n );\n }\n return response;\n },\n ],\n },\n });\n}\n\nexport type { KyInstance };\n","/**\n * RemoteRepository - HTTP-based repository implementation\n *\n * Communicates with remote AgentX server for persistence.\n *\n * Part of Docker-style layered architecture:\n * Definition → build → Image → run → Agent\n * ↓\n * Session (external wrapper)\n */\n\nimport type {\n Repository,\n DefinitionRecord,\n ImageRecord,\n SessionRecord,\n MessageRecord,\n ContainerRecord,\n} from \"@agentxjs/types\";\nimport { createLogger } from \"@agentxjs/common\";\nimport { createHttpClient, type KyInstance } from \"~/managers/remote/HttpClient\";\n\nconst logger = createLogger(\"agentx/RemoteRepository\");\n\nexport interface RemoteRepositoryOptions {\n serverUrl: string;\n headers?: Record<string, string>;\n}\n\nexport class RemoteRepository implements Repository {\n private readonly client: KyInstance;\n\n constructor(options: RemoteRepositoryOptions) {\n this.client = createHttpClient({\n baseUrl: options.serverUrl,\n headers: options.headers,\n });\n logger.debug(\"RemoteRepository created\", { serverUrl: options.serverUrl });\n }\n\n // ==================== Definition ====================\n\n async saveDefinition(record: DefinitionRecord): Promise<void> {\n await this.client.put(`definitions/${record.name}`, { json: record });\n }\n\n async findDefinitionByName(name: string): Promise<DefinitionRecord | null> {\n try {\n const result = await this.client.get(`definitions/${name}`).json<DefinitionRecord>();\n return this.parseDefinitionRecord(result);\n } catch (error: unknown) {\n if (this.isNotFound(error)) return null;\n throw error;\n }\n }\n\n async findAllDefinitions(): Promise<DefinitionRecord[]> {\n const result = await this.client.get(\"definitions\").json<DefinitionRecord[]>();\n return result.map((r) => this.parseDefinitionRecord(r));\n }\n\n async deleteDefinition(name: string): Promise<void> {\n await this.client.delete(`definitions/${name}`);\n }\n\n async definitionExists(name: string): Promise<boolean> {\n try {\n await this.client.head(`definitions/${name}`);\n return true;\n } catch {\n return false;\n }\n }\n\n // ==================== Image ====================\n\n async saveImage(record: ImageRecord): Promise<void> {\n await this.client.put(`images/${record.imageId}`, { json: record });\n }\n\n async findImageById(imageId: string): Promise<ImageRecord | null> {\n try {\n const result = await this.client.get(`images/${imageId}`).json<ImageRecord>();\n return this.parseImageRecord(result);\n } catch (error: unknown) {\n if (this.isNotFound(error)) return null;\n throw error;\n }\n }\n\n async findAllImages(): Promise<ImageRecord[]> {\n const result = await this.client.get(\"images\").json<ImageRecord[]>();\n return result.map((r) => this.parseImageRecord(r));\n }\n\n async deleteImage(imageId: string): Promise<void> {\n await this.client.delete(`images/${imageId}`);\n }\n\n async imageExists(imageId: string): Promise<boolean> {\n try {\n await this.client.head(`images/${imageId}`);\n return true;\n } catch {\n return false;\n }\n }\n\n // ==================== Session ====================\n\n async saveSession(record: SessionRecord): Promise<void> {\n await this.client.put(`sessions/${record.sessionId}`, { json: record });\n }\n\n async findSessionById(sessionId: string): Promise<SessionRecord | null> {\n try {\n const result = await this.client.get(`sessions/${sessionId}`).json<SessionRecord>();\n return this.parseSessionRecord(result);\n } catch (error: unknown) {\n if (this.isNotFound(error)) return null;\n throw error;\n }\n }\n\n async findSessionsByImageId(imageId: string): Promise<SessionRecord[]> {\n const result = await this.client.get(`images/${imageId}/sessions`).json<SessionRecord[]>();\n return result.map((r) => this.parseSessionRecord(r));\n }\n\n async findSessionsByUserId(userId: string): Promise<SessionRecord[]> {\n const result = await this.client.get(`users/${userId}/sessions`).json<SessionRecord[]>();\n return result.map((r) => this.parseSessionRecord(r));\n }\n\n async findAllSessions(): Promise<SessionRecord[]> {\n const result = await this.client.get(\"sessions\").json<SessionRecord[]>();\n return result.map((r) => this.parseSessionRecord(r));\n }\n\n async deleteSession(sessionId: string): Promise<void> {\n await this.client.delete(`sessions/${sessionId}`);\n }\n\n async deleteSessionsByImageId(imageId: string): Promise<void> {\n await this.client.delete(`images/${imageId}/sessions`);\n }\n\n async sessionExists(sessionId: string): Promise<boolean> {\n try {\n await this.client.head(`sessions/${sessionId}`);\n return true;\n } catch {\n return false;\n }\n }\n\n // ==================== Message ====================\n\n /**\n * Save message - noop in browser\n *\n * Messages are persisted by server-side SessionCollector.\n * Browser-side calls this but it does nothing to avoid duplicate saves.\n */\n async saveMessage(_record: MessageRecord): Promise<void> {\n // Noop - server handles persistence via SessionCollector\n logger.debug(\"saveMessage called (noop in browser)\");\n }\n\n async findMessageById(messageId: string): Promise<MessageRecord | null> {\n try {\n const result = await this.client.get(`messages/${messageId}`).json<MessageRecord>();\n return this.parseMessageRecord(result);\n } catch (error: unknown) {\n if (this.isNotFound(error)) return null;\n throw error;\n }\n }\n\n async findMessagesBySessionId(sessionId: string): Promise<MessageRecord[]> {\n const result = await this.client.get(`sessions/${sessionId}/messages`).json<MessageRecord[]>();\n return result.map((r) => this.parseMessageRecord(r));\n }\n\n async deleteMessage(messageId: string): Promise<void> {\n await this.client.delete(`messages/${messageId}`);\n }\n\n async deleteMessagesBySessionId(sessionId: string): Promise<void> {\n await this.client.delete(`sessions/${sessionId}/messages`);\n }\n\n async countMessagesBySessionId(sessionId: string): Promise<number> {\n const result = await this.client\n .get(`sessions/${sessionId}/messages/count`)\n .json<{ count: number }>();\n return result.count;\n }\n\n // ==================== Container ====================\n\n async saveContainer(record: ContainerRecord): Promise<void> {\n await this.client.put(`containers/${record.containerId}`, { json: record });\n }\n\n async findContainerById(containerId: string): Promise<ContainerRecord | null> {\n try {\n const result = await this.client.get(`containers/${containerId}`).json<ContainerRecord>();\n return this.parseContainerRecord(result);\n } catch (error: unknown) {\n if (this.isNotFound(error)) return null;\n throw error;\n }\n }\n\n async findAllContainers(): Promise<ContainerRecord[]> {\n const result = await this.client.get(\"containers\").json<ContainerRecord[]>();\n return result.map((r) => this.parseContainerRecord(r));\n }\n\n async deleteContainer(containerId: string): Promise<void> {\n await this.client.delete(`containers/${containerId}`);\n }\n\n async containerExists(containerId: string): Promise<boolean> {\n try {\n await this.client.head(`containers/${containerId}`);\n return true;\n } catch {\n return false;\n }\n }\n\n // ==================== Helpers ====================\n\n private isNotFound(error: unknown): boolean {\n return (error as { response?: { status: number } })?.response?.status === 404;\n }\n\n private parseDefinitionRecord(raw: DefinitionRecord): DefinitionRecord {\n return {\n ...raw,\n createdAt: new Date(raw.createdAt),\n updatedAt: new Date(raw.updatedAt),\n };\n }\n\n private parseImageRecord(raw: ImageRecord): ImageRecord {\n return {\n ...raw,\n createdAt: new Date(raw.createdAt),\n };\n }\n\n private parseSessionRecord(raw: SessionRecord): SessionRecord {\n return {\n ...raw,\n createdAt: new Date(raw.createdAt),\n updatedAt: new Date(raw.updatedAt),\n };\n }\n\n private parseMessageRecord(raw: MessageRecord): MessageRecord {\n return {\n ...raw,\n createdAt: new Date(raw.createdAt),\n };\n }\n\n private parseContainerRecord(raw: ContainerRecord): ContainerRecord {\n return {\n ...raw,\n // ContainerRecord uses number timestamps, no conversion needed\n };\n }\n}\n","/**\n * BrowserLogger - Styled console logger for browsers\n *\n * Uses CSS styling for beautiful console output in browser DevTools.\n * Provides colorful, grouped logs with timestamps.\n */\n\nimport type { Logger, LogContext, LogLevel } from \"@agentxjs/types\";\nimport { LogLevel as LogLevelEnum } from \"@agentxjs/types\";\n\nexport interface BrowserLoggerOptions {\n level?: LogLevel;\n collapsed?: boolean; // Use console.groupCollapsed for context\n}\n\nexport class BrowserLogger implements Logger {\n readonly name: string;\n readonly level: LogLevel;\n private readonly collapsed: boolean;\n\n // CSS styles for different log levels\n private static readonly STYLES = {\n DEBUG: \"color: #6B7280; font-weight: normal;\", // gray\n INFO: \"color: #10B981; font-weight: normal;\", // green\n WARN: \"color: #F59E0B; font-weight: bold;\", // amber\n ERROR: \"color: #EF4444; font-weight: bold;\", // red\n TIMESTAMP: \"color: #9CA3AF; font-weight: normal;\", // light gray\n NAME: \"color: #8B5CF6; font-weight: normal;\", // purple\n MESSAGE: \"color: inherit; font-weight: normal;\",\n };\n\n // Badge styles for level indicators\n private static readonly BADGE_STYLES = {\n DEBUG:\n \"background: #E5E7EB; color: #374151; padding: 2px 6px; border-radius: 3px; font-size: 11px;\",\n INFO: \"background: #D1FAE5; color: #065F46; padding: 2px 6px; border-radius: 3px; font-size: 11px;\",\n WARN: \"background: #FEF3C7; color: #92400E; padding: 2px 6px; border-radius: 3px; font-size: 11px;\",\n ERROR:\n \"background: #FEE2E2; color: #991B1B; padding: 2px 6px; border-radius: 3px; font-size: 11px;\",\n };\n\n constructor(name: string, options: BrowserLoggerOptions = {}) {\n this.name = name;\n this.level = options.level ?? LogLevelEnum.INFO;\n this.collapsed = options.collapsed ?? true;\n }\n\n debug(message: string, context?: LogContext): void {\n if (this.isDebugEnabled()) {\n this.log(\"DEBUG\", message, context);\n }\n }\n\n info(message: string, context?: LogContext): void {\n if (this.isInfoEnabled()) {\n this.log(\"INFO\", message, context);\n }\n }\n\n warn(message: string, context?: LogContext): void {\n if (this.isWarnEnabled()) {\n this.log(\"WARN\", message, context);\n }\n }\n\n error(message: string | Error, context?: LogContext): void {\n if (this.isErrorEnabled()) {\n if (message instanceof Error) {\n this.log(\"ERROR\", message.message, { ...context, stack: message.stack });\n } else {\n this.log(\"ERROR\", message, context);\n }\n }\n }\n\n isDebugEnabled(): boolean {\n return this.level <= LogLevelEnum.DEBUG;\n }\n\n isInfoEnabled(): boolean {\n return this.level <= LogLevelEnum.INFO;\n }\n\n isWarnEnabled(): boolean {\n return this.level <= LogLevelEnum.WARN;\n }\n\n isErrorEnabled(): boolean {\n return this.level <= LogLevelEnum.ERROR;\n }\n\n private log(level: string, message: string, context?: LogContext): void {\n const timestamp = new Date().toLocaleTimeString();\n const consoleMethod = this.getConsoleMethod(level);\n const badgeStyle = BrowserLogger.BADGE_STYLES[level as keyof typeof BrowserLogger.BADGE_STYLES];\n\n // Format: [TIME] [LEVEL] [NAME] message\n const format = `%c${timestamp} %c${level}%c %c[${this.name}]%c ${message}`;\n const styles = [\n BrowserLogger.STYLES.TIMESTAMP,\n badgeStyle,\n \"\", // reset after badge\n BrowserLogger.STYLES.NAME,\n BrowserLogger.STYLES.MESSAGE,\n ];\n\n if (context && Object.keys(context).length > 0) {\n // Use grouping for context\n const groupMethod = this.collapsed ? console.groupCollapsed : console.group;\n groupMethod.call(console, format, ...styles);\n console.log(\"Context:\", context);\n console.groupEnd();\n } else {\n consoleMethod(format, ...styles);\n }\n }\n\n private getConsoleMethod(level: string): (...args: unknown[]) => void {\n switch (level) {\n case \"DEBUG\":\n return console.debug.bind(console);\n case \"INFO\":\n return console.info.bind(console);\n case \"WARN\":\n return console.warn.bind(console);\n case \"ERROR\":\n return console.error.bind(console);\n default:\n return console.log.bind(console);\n }\n }\n}\n","/**\n * BrowserLoggerFactory - Factory for creating BrowserLogger instances\n *\n * Creates styled console loggers for browser environments.\n * Used by SSERuntime to provide browser-optimized logging.\n */\n\nimport type { Logger, LoggerFactory, LogLevel } from \"@agentxjs/types\";\nimport { BrowserLogger, type BrowserLoggerOptions } from \"./BrowserLogger\";\n\nexport interface BrowserLoggerFactoryOptions {\n level?: LogLevel;\n collapsed?: boolean;\n}\n\nexport class BrowserLoggerFactory implements LoggerFactory {\n private readonly options: BrowserLoggerOptions;\n private readonly loggers: Map<string, BrowserLogger> = new Map();\n\n constructor(options: BrowserLoggerFactoryOptions = {}) {\n this.options = options;\n }\n\n getLogger(name: string): Logger {\n if (this.loggers.has(name)) {\n return this.loggers.get(name)!;\n }\n\n const logger = new BrowserLogger(name, this.options);\n this.loggers.set(name, logger);\n return logger;\n }\n}\n","/**\n * RemoteAgentIdResolver - Resolves agent ID from remote server\n *\n * Calls server API to create agent and returns server's agent ID.\n * This ensures browser and server use the same agentId.\n */\n\nimport type { AgentIdResolver } from \"@agentxjs/types\";\nimport { createHttpClient, type KyInstance } from \"~/managers/remote/HttpClient\";\nimport { createLogger } from \"@agentxjs/common\";\n\nconst logger = createLogger(\"agentx/RemoteAgentIdResolver\");\n\nexport interface RemoteAgentIdResolverOptions {\n serverUrl: string;\n headers?: Record<string, string>;\n}\n\ninterface RunImageResponse {\n agentId: string;\n}\n\ninterface ResumeSessionResponse {\n agentId: string;\n}\n\n/**\n * Remote implementation of AgentIdResolver\n *\n * Calls server API to create agent before local agent is created.\n */\nexport class RemoteAgentIdResolver implements AgentIdResolver {\n private readonly client: KyInstance;\n\n constructor(options: RemoteAgentIdResolverOptions) {\n this.client = createHttpClient({\n baseUrl: options.serverUrl,\n headers: options.headers,\n });\n }\n\n async resolveForRun(imageId: string, containerId: string): Promise<string> {\n logger.debug(\"Resolving agent ID for run\", { imageId, containerId });\n\n const response = await this.client\n .post(`images/${imageId}/run`, {\n json: { containerId },\n })\n .json<RunImageResponse>();\n\n logger.info(\"Agent ID resolved for run\", { imageId, agentId: response.agentId });\n return response.agentId;\n }\n\n async resolveForResume(sessionId: string, containerId: string): Promise<string> {\n logger.debug(\"Resolving agent ID for resume\", { sessionId, containerId });\n\n const response = await this.client\n .post(`sessions/${sessionId}/resume`, {\n json: { containerId },\n })\n .json<ResumeSessionResponse>();\n\n logger.info(\"Agent ID resolved for resume\", { sessionId, agentId: response.agentId });\n return response.agentId;\n }\n}\n","/**\n * SSERuntime - Browser Runtime implementation\n *\n * \"Define Once, Run Anywhere\"\n *\n * Provides Runtime for browser that connects to remote AgentX server via SSE.\n * Uses the same API as NodeRuntime, enabling unified code across platforms.\n *\n * @example\n * ```typescript\n * import { createAgentX } from \"agentxjs\";\n * import { createSSERuntime } from \"agentxjs/client\";\n * import { defineAgent } from \"agentxjs\";\n *\n * const MyAgent = defineAgent({\n * name: \"Assistant\",\n * systemPrompt: \"You are a helpful assistant\",\n * });\n *\n * // Browser: connect to remote server\n * const runtime = createSSERuntime({ serverUrl: \"http://localhost:5200/agentx\" });\n * const agentx = createAgentX(runtime);\n * const agent = agentx.agents.create(MyAgent);\n *\n * // Same API as server-side!\n * agent.on(\"assistant_message\", (event) => {\n * console.log(event.data.content);\n * });\n *\n * await agent.receive(\"Hello!\");\n * ```\n */\n\nimport type {\n Runtime,\n Sandbox,\n RuntimeDriver,\n AgentContext,\n AgentDefinition,\n Repository,\n LoggerFactory,\n Logger,\n AgentIdResolver,\n} from \"@agentxjs/types\";\nimport { setLoggerFactory } from \"@agentxjs/common\";\nimport { createSSEDriver } from \"./SSEDriver\";\nimport { RemoteRepository } from \"./repository\";\nimport { BrowserLoggerFactory } from \"./logger\";\nimport { RemoteAgentIdResolver } from \"./RemoteAgentIdResolver\";\n\n// ============================================================================\n// NoopSandbox - Browser doesn't need local resources\n// ============================================================================\n\nconst noopSandbox: Sandbox = {\n name: \"browser-noop\",\n workspace: {\n id: \"noop\",\n name: \"noop\",\n path: \"\", // Browser has no local workspace\n },\n llm: {\n name: \"noop\",\n provide: () => ({}),\n },\n};\n\n// ============================================================================\n// SSERuntime - Browser Runtime implementation\n// ============================================================================\n\n/**\n * SSERuntime configuration\n */\nexport interface SSERuntimeConfig {\n /**\n * Server base URL (e.g., \"http://localhost:5200/agentx\")\n */\n serverUrl: string;\n\n /**\n * Optional request headers (for auth, etc.)\n * Note: These headers are used for HTTP requests (POST, DELETE, etc.)\n * but NOT for SSE connections (EventSource doesn't support headers).\n * For SSE auth, use sseParams to pass token via query string.\n */\n headers?: Record<string, string>;\n\n /**\n * Optional query parameters to append to SSE URL.\n * Use this for authentication since EventSource doesn't support headers.\n *\n * @example\n * ```typescript\n * createSSERuntime({\n * serverUrl: \"http://localhost:5200/agentx\",\n * headers: { Authorization: \"Bearer xxx\" }, // For HTTP requests\n * sseParams: { token: \"xxx\" }, // For SSE connections\n * });\n * ```\n */\n sseParams?: Record<string, string>;\n}\n\n/**\n * SSERuntime - Runtime for browser with SSE driver\n *\n * Connects to remote AgentX server via SSE.\n * All resources (LLM, etc.) are provided by the server.\n *\n * Uses RemoteContainer which calls server POST /agents to create agents.\n * This ensures browser and server use the same agentId.\n */\nclass SSERuntime implements Runtime {\n readonly name = \"sse\";\n readonly repository: Repository;\n readonly loggerFactory: LoggerFactory;\n readonly agentIdResolver: AgentIdResolver;\n\n private readonly serverUrl: string;\n private readonly headers: Record<string, string>;\n private readonly sseParams: Record<string, string>;\n\n constructor(config: SSERuntimeConfig) {\n this.serverUrl = config.serverUrl.replace(/\\/+$/, \"\"); // Remove trailing slash\n this.headers = config.headers ?? {};\n this.sseParams = config.sseParams ?? {};\n\n // Create and configure BrowserLoggerFactory\n this.loggerFactory = new BrowserLoggerFactory({\n collapsed: true,\n });\n\n // Set as global logger factory\n setLoggerFactory(this.loggerFactory);\n\n this.repository = new RemoteRepository({\n serverUrl: this.serverUrl,\n headers: this.headers,\n });\n\n // Create agent ID resolver for remote agent creation\n this.agentIdResolver = new RemoteAgentIdResolver({\n serverUrl: this.serverUrl,\n headers: this.headers,\n });\n }\n\n createSandbox(_containerId: string): Sandbox {\n // Browser doesn't need local resources\n return noopSandbox;\n }\n\n createDriver(\n _definition: AgentDefinition,\n context: AgentContext,\n _sandbox: Sandbox\n ): RuntimeDriver {\n // context.agentId is already resolved by RemoteContainer\n // which called POST /agents on server - so it's the server's agentId\n const driver = createSSEDriver({\n serverUrl: this.serverUrl,\n agentId: context.agentId,\n headers: this.headers,\n sseParams: this.sseParams,\n });\n\n // SSEDriver implements AgentDriver, wrap it as RuntimeDriver\n return {\n ...driver,\n sandbox: noopSandbox,\n };\n }\n\n createLogger(name: string): Logger {\n return this.loggerFactory.getLogger(name);\n }\n}\n\n// ============================================================================\n// Factory function\n// ============================================================================\n\n/**\n * Create SSE Runtime for browser\n *\n * @example\n * ```typescript\n * import { createAgentX } from \"agentxjs\";\n * import { sseRuntime } from \"agentxjs/runtime/sse\";\n *\n * createAgentX(sseRuntime({\n * serverUrl: \"http://localhost:5200/agentx\",\n * headers: { Authorization: \"Bearer xxx\" },\n * }));\n * ```\n */\nexport function sseRuntime(config: SSERuntimeConfig): Runtime {\n return new SSERuntime(config);\n}\n\n/**\n * @deprecated Use `sseRuntime()` instead for consistency with `nodeRuntime()`\n */\nexport const createSSERuntime = sseRuntime;\n\n// Also export class for advanced use\nexport { SSERuntime };\n"]}
@@ -0,0 +1,159 @@
1
+ export { C as ConnectionState, a as SSERuntime, S as SSERuntimeConfig, c as createSSERuntime, s as sseRuntime } from '../../types-OVKV6qpE.cjs';
2
+ import { AgentDriver, Logger, LogLevel, LogContext, LoggerFactory, Repository, DefinitionRecord, ImageRecord, SessionRecord, MessageRecord, ContainerRecord } from '@agentxjs/types';
3
+
4
+ /**
5
+ * SSEDriver - Browser-side driver that connects to remote AgentX server via SSE
6
+ *
7
+ * This driver enables the client to use the full agentx stack (including AgentEngine)
8
+ * by bridging SSE push events to the async generator pull model.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { createSSERuntime } from "agentxjs/client";
13
+ * import { createAgentX, defineAgent } from "agentxjs";
14
+ *
15
+ * const runtime = createSSERuntime({
16
+ * serverUrl: "http://localhost:5200/agentx",
17
+ * agentId: "agent_123"
18
+ * });
19
+ * const agentx = createAgentX(runtime);
20
+ * const agent = agentx.agents.create(defineAgent({ name: "Assistant" }));
21
+ *
22
+ * agent.on("assistant_message", (event) => {
23
+ * console.log(event.data.content);
24
+ * });
25
+ *
26
+ * await agent.receive("Hello!");
27
+ * ```
28
+ */
29
+
30
+ /**
31
+ * SSEDriver configuration
32
+ */
33
+ interface SSEDriverConfig {
34
+ serverUrl: string;
35
+ agentId: string;
36
+ headers?: Record<string, string>;
37
+ /**
38
+ * Query parameters to append to SSE URL.
39
+ * Use this for authentication since EventSource doesn't support headers.
40
+ */
41
+ sseParams?: Record<string, string>;
42
+ }
43
+ /**
44
+ * Create an SSEDriver instance
45
+ *
46
+ * Factory function for browser-side SSE driver.
47
+ */
48
+ declare function createSSEDriver(config: SSEDriverConfig): AgentDriver;
49
+
50
+ /**
51
+ * BrowserLogger - Styled console logger for browsers
52
+ *
53
+ * Uses CSS styling for beautiful console output in browser DevTools.
54
+ * Provides colorful, grouped logs with timestamps.
55
+ */
56
+
57
+ interface BrowserLoggerOptions {
58
+ level?: LogLevel;
59
+ collapsed?: boolean;
60
+ }
61
+ declare class BrowserLogger implements Logger {
62
+ readonly name: string;
63
+ readonly level: LogLevel;
64
+ private readonly collapsed;
65
+ private static readonly STYLES;
66
+ private static readonly BADGE_STYLES;
67
+ constructor(name: string, options?: BrowserLoggerOptions);
68
+ debug(message: string, context?: LogContext): void;
69
+ info(message: string, context?: LogContext): void;
70
+ warn(message: string, context?: LogContext): void;
71
+ error(message: string | Error, context?: LogContext): void;
72
+ isDebugEnabled(): boolean;
73
+ isInfoEnabled(): boolean;
74
+ isWarnEnabled(): boolean;
75
+ isErrorEnabled(): boolean;
76
+ private log;
77
+ private getConsoleMethod;
78
+ }
79
+
80
+ /**
81
+ * BrowserLoggerFactory - Factory for creating BrowserLogger instances
82
+ *
83
+ * Creates styled console loggers for browser environments.
84
+ * Used by SSERuntime to provide browser-optimized logging.
85
+ */
86
+
87
+ interface BrowserLoggerFactoryOptions {
88
+ level?: LogLevel;
89
+ collapsed?: boolean;
90
+ }
91
+ declare class BrowserLoggerFactory implements LoggerFactory {
92
+ private readonly options;
93
+ private readonly loggers;
94
+ constructor(options?: BrowserLoggerFactoryOptions);
95
+ getLogger(name: string): Logger;
96
+ }
97
+
98
+ /**
99
+ * RemoteRepository - HTTP-based repository implementation
100
+ *
101
+ * Communicates with remote AgentX server for persistence.
102
+ *
103
+ * Part of Docker-style layered architecture:
104
+ * Definition → build → Image → run → Agent
105
+ * ↓
106
+ * Session (external wrapper)
107
+ */
108
+
109
+ interface RemoteRepositoryOptions {
110
+ serverUrl: string;
111
+ headers?: Record<string, string>;
112
+ }
113
+ declare class RemoteRepository implements Repository {
114
+ private readonly client;
115
+ constructor(options: RemoteRepositoryOptions);
116
+ saveDefinition(record: DefinitionRecord): Promise<void>;
117
+ findDefinitionByName(name: string): Promise<DefinitionRecord | null>;
118
+ findAllDefinitions(): Promise<DefinitionRecord[]>;
119
+ deleteDefinition(name: string): Promise<void>;
120
+ definitionExists(name: string): Promise<boolean>;
121
+ saveImage(record: ImageRecord): Promise<void>;
122
+ findImageById(imageId: string): Promise<ImageRecord | null>;
123
+ findAllImages(): Promise<ImageRecord[]>;
124
+ deleteImage(imageId: string): Promise<void>;
125
+ imageExists(imageId: string): Promise<boolean>;
126
+ saveSession(record: SessionRecord): Promise<void>;
127
+ findSessionById(sessionId: string): Promise<SessionRecord | null>;
128
+ findSessionsByImageId(imageId: string): Promise<SessionRecord[]>;
129
+ findSessionsByUserId(userId: string): Promise<SessionRecord[]>;
130
+ findAllSessions(): Promise<SessionRecord[]>;
131
+ deleteSession(sessionId: string): Promise<void>;
132
+ deleteSessionsByImageId(imageId: string): Promise<void>;
133
+ sessionExists(sessionId: string): Promise<boolean>;
134
+ /**
135
+ * Save message - noop in browser
136
+ *
137
+ * Messages are persisted by server-side SessionCollector.
138
+ * Browser-side calls this but it does nothing to avoid duplicate saves.
139
+ */
140
+ saveMessage(_record: MessageRecord): Promise<void>;
141
+ findMessageById(messageId: string): Promise<MessageRecord | null>;
142
+ findMessagesBySessionId(sessionId: string): Promise<MessageRecord[]>;
143
+ deleteMessage(messageId: string): Promise<void>;
144
+ deleteMessagesBySessionId(sessionId: string): Promise<void>;
145
+ countMessagesBySessionId(sessionId: string): Promise<number>;
146
+ saveContainer(record: ContainerRecord): Promise<void>;
147
+ findContainerById(containerId: string): Promise<ContainerRecord | null>;
148
+ findAllContainers(): Promise<ContainerRecord[]>;
149
+ deleteContainer(containerId: string): Promise<void>;
150
+ containerExists(containerId: string): Promise<boolean>;
151
+ private isNotFound;
152
+ private parseDefinitionRecord;
153
+ private parseImageRecord;
154
+ private parseSessionRecord;
155
+ private parseMessageRecord;
156
+ private parseContainerRecord;
157
+ }
158
+
159
+ export { BrowserLogger, BrowserLoggerFactory, type BrowserLoggerFactoryOptions, type BrowserLoggerOptions, RemoteRepository, type SSEDriverConfig, createSSEDriver };
@@ -0,0 +1,159 @@
1
+ export { C as ConnectionState, a as SSERuntime, S as SSERuntimeConfig, c as createSSERuntime, s as sseRuntime } from '../../types-OVKV6qpE.js';
2
+ import { AgentDriver, Logger, LogLevel, LogContext, LoggerFactory, Repository, DefinitionRecord, ImageRecord, SessionRecord, MessageRecord, ContainerRecord } from '@agentxjs/types';
3
+
4
+ /**
5
+ * SSEDriver - Browser-side driver that connects to remote AgentX server via SSE
6
+ *
7
+ * This driver enables the client to use the full agentx stack (including AgentEngine)
8
+ * by bridging SSE push events to the async generator pull model.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { createSSERuntime } from "agentxjs/client";
13
+ * import { createAgentX, defineAgent } from "agentxjs";
14
+ *
15
+ * const runtime = createSSERuntime({
16
+ * serverUrl: "http://localhost:5200/agentx",
17
+ * agentId: "agent_123"
18
+ * });
19
+ * const agentx = createAgentX(runtime);
20
+ * const agent = agentx.agents.create(defineAgent({ name: "Assistant" }));
21
+ *
22
+ * agent.on("assistant_message", (event) => {
23
+ * console.log(event.data.content);
24
+ * });
25
+ *
26
+ * await agent.receive("Hello!");
27
+ * ```
28
+ */
29
+
30
+ /**
31
+ * SSEDriver configuration
32
+ */
33
+ interface SSEDriverConfig {
34
+ serverUrl: string;
35
+ agentId: string;
36
+ headers?: Record<string, string>;
37
+ /**
38
+ * Query parameters to append to SSE URL.
39
+ * Use this for authentication since EventSource doesn't support headers.
40
+ */
41
+ sseParams?: Record<string, string>;
42
+ }
43
+ /**
44
+ * Create an SSEDriver instance
45
+ *
46
+ * Factory function for browser-side SSE driver.
47
+ */
48
+ declare function createSSEDriver(config: SSEDriverConfig): AgentDriver;
49
+
50
+ /**
51
+ * BrowserLogger - Styled console logger for browsers
52
+ *
53
+ * Uses CSS styling for beautiful console output in browser DevTools.
54
+ * Provides colorful, grouped logs with timestamps.
55
+ */
56
+
57
+ interface BrowserLoggerOptions {
58
+ level?: LogLevel;
59
+ collapsed?: boolean;
60
+ }
61
+ declare class BrowserLogger implements Logger {
62
+ readonly name: string;
63
+ readonly level: LogLevel;
64
+ private readonly collapsed;
65
+ private static readonly STYLES;
66
+ private static readonly BADGE_STYLES;
67
+ constructor(name: string, options?: BrowserLoggerOptions);
68
+ debug(message: string, context?: LogContext): void;
69
+ info(message: string, context?: LogContext): void;
70
+ warn(message: string, context?: LogContext): void;
71
+ error(message: string | Error, context?: LogContext): void;
72
+ isDebugEnabled(): boolean;
73
+ isInfoEnabled(): boolean;
74
+ isWarnEnabled(): boolean;
75
+ isErrorEnabled(): boolean;
76
+ private log;
77
+ private getConsoleMethod;
78
+ }
79
+
80
+ /**
81
+ * BrowserLoggerFactory - Factory for creating BrowserLogger instances
82
+ *
83
+ * Creates styled console loggers for browser environments.
84
+ * Used by SSERuntime to provide browser-optimized logging.
85
+ */
86
+
87
+ interface BrowserLoggerFactoryOptions {
88
+ level?: LogLevel;
89
+ collapsed?: boolean;
90
+ }
91
+ declare class BrowserLoggerFactory implements LoggerFactory {
92
+ private readonly options;
93
+ private readonly loggers;
94
+ constructor(options?: BrowserLoggerFactoryOptions);
95
+ getLogger(name: string): Logger;
96
+ }
97
+
98
+ /**
99
+ * RemoteRepository - HTTP-based repository implementation
100
+ *
101
+ * Communicates with remote AgentX server for persistence.
102
+ *
103
+ * Part of Docker-style layered architecture:
104
+ * Definition → build → Image → run → Agent
105
+ * ↓
106
+ * Session (external wrapper)
107
+ */
108
+
109
+ interface RemoteRepositoryOptions {
110
+ serverUrl: string;
111
+ headers?: Record<string, string>;
112
+ }
113
+ declare class RemoteRepository implements Repository {
114
+ private readonly client;
115
+ constructor(options: RemoteRepositoryOptions);
116
+ saveDefinition(record: DefinitionRecord): Promise<void>;
117
+ findDefinitionByName(name: string): Promise<DefinitionRecord | null>;
118
+ findAllDefinitions(): Promise<DefinitionRecord[]>;
119
+ deleteDefinition(name: string): Promise<void>;
120
+ definitionExists(name: string): Promise<boolean>;
121
+ saveImage(record: ImageRecord): Promise<void>;
122
+ findImageById(imageId: string): Promise<ImageRecord | null>;
123
+ findAllImages(): Promise<ImageRecord[]>;
124
+ deleteImage(imageId: string): Promise<void>;
125
+ imageExists(imageId: string): Promise<boolean>;
126
+ saveSession(record: SessionRecord): Promise<void>;
127
+ findSessionById(sessionId: string): Promise<SessionRecord | null>;
128
+ findSessionsByImageId(imageId: string): Promise<SessionRecord[]>;
129
+ findSessionsByUserId(userId: string): Promise<SessionRecord[]>;
130
+ findAllSessions(): Promise<SessionRecord[]>;
131
+ deleteSession(sessionId: string): Promise<void>;
132
+ deleteSessionsByImageId(imageId: string): Promise<void>;
133
+ sessionExists(sessionId: string): Promise<boolean>;
134
+ /**
135
+ * Save message - noop in browser
136
+ *
137
+ * Messages are persisted by server-side SessionCollector.
138
+ * Browser-side calls this but it does nothing to avoid duplicate saves.
139
+ */
140
+ saveMessage(_record: MessageRecord): Promise<void>;
141
+ findMessageById(messageId: string): Promise<MessageRecord | null>;
142
+ findMessagesBySessionId(sessionId: string): Promise<MessageRecord[]>;
143
+ deleteMessage(messageId: string): Promise<void>;
144
+ deleteMessagesBySessionId(sessionId: string): Promise<void>;
145
+ countMessagesBySessionId(sessionId: string): Promise<number>;
146
+ saveContainer(record: ContainerRecord): Promise<void>;
147
+ findContainerById(containerId: string): Promise<ContainerRecord | null>;
148
+ findAllContainers(): Promise<ContainerRecord[]>;
149
+ deleteContainer(containerId: string): Promise<void>;
150
+ containerExists(containerId: string): Promise<boolean>;
151
+ private isNotFound;
152
+ private parseDefinitionRecord;
153
+ private parseImageRecord;
154
+ private parseSessionRecord;
155
+ private parseMessageRecord;
156
+ private parseContainerRecord;
157
+ }
158
+
159
+ export { BrowserLogger, BrowserLoggerFactory, type BrowserLoggerFactoryOptions, type BrowserLoggerOptions, RemoteRepository, type SSEDriverConfig, createSSEDriver };