@agno-hq/chat-react 0.3.0 → 0.3.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.
- package/README.md +83 -1
- package/dist/chat/index.cjs +98 -78
- package/dist/chat/index.d.cts +222 -112
- package/dist/chat/index.d.ts +222 -112
- package/dist/chat/index.js +2 -2
- package/dist/{chunk-ROFIOWGX.cjs → chunk-55HQJGLP.cjs} +2 -5
- package/dist/chunk-55HQJGLP.cjs.map +1 -0
- package/dist/{chunk-62IEW2HM.js → chunk-6V2YIPHF.js} +2 -5
- package/dist/chunk-6V2YIPHF.js.map +1 -0
- package/dist/{chunk-MUOMZG4V.js → chunk-BZC2674Z.js} +405 -130
- package/dist/chunk-BZC2674Z.js.map +1 -0
- package/dist/{chunk-ERCKKOF4.cjs → chunk-JEPFGKHH.cjs} +444 -164
- package/dist/chunk-JEPFGKHH.cjs.map +1 -0
- package/dist/core/index.cjs +19 -19
- package/dist/core/index.js +1 -1
- package/dist/index.cjs +117 -97
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/styles.css +272 -65
- package/package.json +1 -1
- package/dist/chunk-62IEW2HM.js.map +0 -1
- package/dist/chunk-ERCKKOF4.cjs.map +0 -1
- package/dist/chunk-MUOMZG4V.js.map +0 -1
- package/dist/chunk-ROFIOWGX.cjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/stream.ts","../src/core/client.ts","../src/core/session.ts","../src/core/events.ts"],"names":["id"],"mappings":"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","file":"chunk-ROFIOWGX.cjs","sourcesContent":["/**\n * Streaming parser for AgentOS run endpoints.\n *\n * AgentOS streams a run as a sequence of JSON objects concatenated on the wire\n * (not strictly newline-delimited). Each object is one \"run event\". This module\n * reads the response body incrementally, extracts complete JSON objects as they\n * arrive, and hands each one to a callback.\n *\n * It supports both the legacy shape (the event object sent directly) and the\n * newer envelope shape ({ event: string, data: string | object }), normalising\n * both into a flat event object with an `event` discriminator field.\n */\n\nimport type { RunEvent } from './types'\n\n/** A parsed, normalised run event. Shape varies by `event` type — see types.ts. */\nexport interface StreamEvent {\n event: RunEvent | string\n [key: string]: unknown\n}\n\ninterface Envelope {\n event: string\n data: string | Record<string, unknown>\n}\n\nfunction isEnvelope(data: unknown): data is Envelope {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'event' in data &&\n 'data' in data &&\n typeof (data as Envelope).event === 'string'\n )\n}\n\nfunction isFlatEvent(data: unknown): data is StreamEvent {\n return (\n typeof data === 'object' &&\n data !== null &&\n 'event' in data &&\n !('data' in data) &&\n typeof (data as StreamEvent).event === 'string'\n )\n}\n\nfunction normaliseEnvelope(env: Envelope): StreamEvent {\n let parsed: Record<string, unknown> = {}\n if (typeof env.data === 'string') {\n try {\n parsed = JSON.parse(env.data)\n } catch {\n parsed = {}\n }\n } else if (env.data && typeof env.data === 'object') {\n parsed = env.data\n }\n return { event: env.event, ...parsed }\n}\n\n/**\n * Pulls every complete JSON object out of `buffer`, emitting each via `onEvent`.\n * Returns the unconsumed tail (a partial object awaiting more bytes).\n */\nfunction drainBuffer(buffer: string, onEvent: (e: StreamEvent) => void): string {\n let start = buffer.indexOf('{')\n\n while (start !== -1 && start < buffer.length) {\n let depth = 0\n let inString = false\n let escape = false\n let end = -1\n\n for (let i = start; i < buffer.length; i++) {\n const ch = buffer[i]\n if (inString) {\n if (escape) escape = false\n else if (ch === '\\\\') escape = true\n else if (ch === '\"') inString = false\n } else if (ch === '\"') {\n inString = true\n } else if (ch === '{') {\n depth++\n } else if (ch === '}') {\n depth--\n if (depth === 0) {\n end = i\n break\n }\n }\n }\n\n if (end === -1) break // incomplete object; wait for more data\n\n const slice = buffer.slice(start, end + 1)\n try {\n const parsed = JSON.parse(slice)\n if (isEnvelope(parsed)) onEvent(normaliseEnvelope(parsed))\n else if (isFlatEvent(parsed)) onEvent(parsed)\n } catch {\n // Not valid JSON despite balanced braces — skip this opening brace.\n start = buffer.indexOf('{', start + 1)\n continue\n }\n\n buffer = buffer.slice(end + 1).trim()\n start = buffer.indexOf('{')\n }\n\n return buffer\n}\n\nexport interface StreamRunOptions {\n url: string\n body: FormData | Record<string, unknown>\n headers?: Record<string, string>\n signal?: AbortSignal\n onEvent: (event: StreamEvent) => void\n onError: (error: Error) => void\n onComplete: () => void\n}\n\n/**\n * POSTs a run request and streams the response, calling `onEvent` for every\n * run event as it arrives. Resolves when the stream ends.\n */\nexport async function streamRun(options: StreamRunOptions): Promise<void> {\n const { url, body, headers = {}, signal, onEvent, onError, onComplete } = options\n let buffer = ''\n\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n ...(!(body instanceof FormData) && { 'Content-Type': 'application/json' }),\n ...headers,\n },\n body: body instanceof FormData ? body : JSON.stringify(body),\n signal,\n })\n\n if (!response.ok) {\n let detail: string\n try {\n const err = await response.json()\n detail = err?.detail ? String(err.detail) : `${response.status} ${response.statusText}`\n } catch {\n detail = `${response.status} ${response.statusText}`\n }\n throw new Error(detail)\n }\n if (!response.body) throw new Error('No response body')\n\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n\n for (;;) {\n const { done, value } = await reader.read()\n if (done) {\n buffer = drainBuffer(buffer, onEvent)\n onComplete()\n return\n }\n buffer += decoder.decode(value, { stream: true })\n buffer = drainBuffer(buffer, onEvent)\n }\n } catch (error) {\n if (error instanceof DOMException && error.name === 'AbortError') {\n onComplete()\n return\n }\n onError(error instanceof Error ? error : new Error(String(error)))\n }\n}\n","/**\n * Thin client for an AgentOS HTTP backend.\n *\n * Wraps the discovery, run, continue, cancel and session endpoints. Streaming\n * runs are handled by `streamRun` from ./stream; everything else is plain JSON.\n */\n\nimport { streamRun, type StreamEvent } from './stream'\nimport type {\n Entity,\n EntityType,\n RunEventData,\n SessionsResponse,\n ToolExecution,\n} from './types'\n\n/** Normalise a base URL: add a scheme for bare hosts, strip trailing slash. */\nexport function normaliseBaseUrl(value: string | null | undefined): string {\n if (!value) return ''\n let url = value.trim()\n if (!/^https?:\\/\\//.test(url)) {\n const isLocal = url.startsWith('localhost') || /^\\d{1,3}(\\.\\d{1,3}){3}/.test(url)\n url = `${isLocal ? 'http' : 'https'}://${url}`\n }\n return url.replace(/\\/+$/, '')\n}\n\nexport interface AgnoClientOptions {\n /** AgentOS base URL, e.g. \"http://localhost:7777\". */\n baseUrl: string\n /** Optional headers (e.g. Authorization) added to every request. */\n headers?: Record<string, string>\n /** Default db_id used for session listing where the backend requires it. */\n dbId?: string\n}\n\ninterface RunArgs {\n type: EntityType\n id: string\n message?: string\n sessionId?: string\n userId?: string\n files?: File[]\n /** Extra form fields appended verbatim. */\n extra?: Record<string, string>\n signal?: AbortSignal\n onEvent: (event: RunEventData) => void\n onError: (error: Error) => void\n onComplete: () => void\n}\n\ninterface ContinueArgs {\n type: EntityType\n id: string\n runId: string\n sessionId?: string\n userId?: string\n /** Resolved tool executions (agents/teams human-in-the-loop). */\n tools?: ToolExecution[]\n /** Resolved step requirements (workflow human-in-the-loop). */\n stepRequirements?: unknown[]\n signal?: AbortSignal\n onEvent: (event: RunEventData) => void\n onError: (error: Error) => void\n onComplete: () => void\n}\n\nconst RUN_PATH: Record<EntityType, string> = {\n agent: 'agents',\n team: 'teams',\n workflow: 'workflows',\n}\n\nexport class AgnoClient {\n readonly baseUrl: string\n readonly headers: Record<string, string>\n readonly dbId?: string\n\n constructor(options: AgnoClientOptions) {\n this.baseUrl = normaliseBaseUrl(options.baseUrl)\n this.headers = options.headers ?? {}\n this.dbId = options.dbId\n }\n\n private async getJson<T>(path: string): Promise<T> {\n const res = await fetch(`${this.baseUrl}${path}`, { headers: this.headers })\n if (!res.ok) throw new Error(`GET ${path} failed: ${res.status} ${res.statusText}`)\n return res.json() as Promise<T>\n }\n\n /** Liveness check against /health. Returns the HTTP status code. */\n async health(): Promise<number> {\n try {\n const res = await fetch(`${this.baseUrl}/health`, { headers: this.headers })\n return res.status\n } catch {\n return 0\n }\n }\n\n /* ----------------------------- discovery ----------------------------- */\n\n async getAgents(): Promise<Entity[]> {\n const data = await this.getJson<any[]>('/agents').catch(() => [])\n return data.map((a) => ({\n type: 'agent' as const,\n id: a.agent_id ?? a.id,\n name: a.name ?? a.agent_id ?? a.id,\n description: a.description,\n model: a.model,\n db_id: a.db_id,\n }))\n }\n\n async getTeams(): Promise<Entity[]> {\n const data = await this.getJson<any[]>('/teams').catch(() => [])\n return data.map((t) => ({\n type: 'team' as const,\n id: t.team_id ?? t.id,\n name: t.name ?? t.team_id ?? t.id,\n description: t.description,\n model: t.model,\n db_id: t.db_id,\n }))\n }\n\n async getWorkflows(): Promise<Entity[]> {\n const data = await this.getJson<any[]>('/workflows').catch(() => [])\n return data.map((w) => ({\n type: 'workflow' as const,\n id: w.workflow_id ?? w.id,\n name: w.name ?? w.workflow_id ?? w.id,\n description: w.description,\n model: w.model,\n db_id: w.db_id,\n }))\n }\n\n /** All runnable entities (agents, teams, workflows) in one list. */\n async getEntities(): Promise<Entity[]> {\n const [agents, teams, workflows] = await Promise.all([\n this.getAgents(),\n this.getTeams(),\n this.getWorkflows(),\n ])\n return [...agents, ...teams, ...workflows]\n }\n\n /* ------------------------------ sessions ----------------------------- */\n\n async getSessions(type: EntityType, componentId: string, dbId?: string): Promise<SessionsResponse> {\n const url = new URL(`${this.baseUrl}/sessions`)\n url.searchParams.set('type', type)\n url.searchParams.set('component_id', componentId)\n const db = dbId ?? this.dbId\n if (db) url.searchParams.set('db_id', db)\n try {\n const res = await fetch(url.toString(), { headers: this.headers })\n if (!res.ok) return { data: [] }\n return (await res.json()) as SessionsResponse\n } catch {\n return { data: [] }\n }\n }\n\n /** Runs (with messages/tools/events) for a session — used to rehydrate chat history. */\n async getSessionRuns(type: EntityType, sessionId: string, dbId?: string): Promise<any[]> {\n const url = new URL(`${this.baseUrl}/sessions/${sessionId}/runs`)\n url.searchParams.set('type', type)\n const db = dbId ?? this.dbId\n if (db) url.searchParams.set('db_id', db)\n const res = await fetch(url.toString(), { headers: this.headers })\n if (!res.ok) throw new Error(`Failed to load session: ${res.statusText}`)\n return res.json()\n }\n\n async deleteSession(sessionId: string, dbId?: string): Promise<boolean> {\n const url = new URL(`${this.baseUrl}/sessions/${sessionId}`)\n const db = dbId ?? this.dbId\n if (db) url.searchParams.set('db_id', db)\n const res = await fetch(url.toString(), { method: 'DELETE', headers: this.headers })\n return res.ok\n }\n\n /* -------------------------------- runs ------------------------------- */\n\n /** Start a streaming run for an agent, team or workflow. */\n async run(args: RunArgs): Promise<void> {\n const form = new FormData()\n if (args.message != null) form.append('message', args.message)\n form.append('stream', 'true')\n if (args.sessionId) form.append('session_id', args.sessionId)\n if (args.userId) form.append('user_id', args.userId)\n for (const file of args.files ?? []) form.append('files', file)\n for (const [k, v] of Object.entries(args.extra ?? {})) form.append(k, v)\n\n const url = `${this.baseUrl}/${RUN_PATH[args.type]}/${args.id}/runs`\n return streamRun({\n url,\n body: form,\n headers: this.headers,\n signal: args.signal,\n onEvent: (e) => args.onEvent(e as RunEventData),\n onError: args.onError,\n onComplete: args.onComplete,\n })\n }\n\n /** Continue a paused run (resolving a human-in-the-loop requirement). */\n async continueRun(args: ContinueArgs): Promise<void> {\n const form = new FormData()\n form.append('stream', 'true')\n if (args.sessionId) form.append('session_id', args.sessionId)\n if (args.userId) form.append('user_id', args.userId)\n\n if (args.type === 'workflow') {\n if (args.stepRequirements) form.append('step_requirements', JSON.stringify(args.stepRequirements))\n } else if (args.tools) {\n form.append('tools', JSON.stringify(args.tools))\n }\n\n const url = `${this.baseUrl}/${RUN_PATH[args.type]}/${args.id}/runs/${args.runId}/continue`\n return streamRun({\n url,\n body: form,\n headers: this.headers,\n signal: args.signal,\n onEvent: (e) => args.onEvent(e as RunEventData),\n onError: args.onError,\n onComplete: args.onComplete,\n })\n }\n\n /** Cancel an in-flight run. */\n async cancelRun(type: EntityType, id: string, runId: string, sessionId?: string): Promise<boolean> {\n const url = new URL(`${this.baseUrl}/${RUN_PATH[type]}/${id}/runs/${runId}/cancel`)\n if (sessionId) url.searchParams.set('session_id', sessionId)\n try {\n const res = await fetch(url.toString(), { method: 'POST', headers: this.headers })\n return res.ok\n } catch {\n return false\n }\n }\n}\n\nexport type { StreamEvent }\n","/**\n * Helpers for turning AgentOS session history into render-ready chat messages.\n *\n * `GET /sessions/{id}/runs` returns an array of run records. Each run carries\n * the user input plus the agent's content, tools, reasoning, references and\n * media — enough to reconstruct the transcript for a past session.\n */\n\nimport type { ChatMessage, ReasoningStep, ReferenceData, RunEventData, ToolExecution } from './types'\n\ninterface SessionRun {\n run_id?: string\n session_id?: string\n run_input?: unknown\n content?: unknown\n created_at?: number\n status?: string\n /** Present when the agent was configured with `store_events`. */\n events?: RunEventData[]\n tools?: ToolExecution[]\n images?: ChatMessage['images']\n videos?: ChatMessage['videos']\n audio?: ChatMessage['audio']\n response_audio?: ChatMessage['response_audio']\n extra_data?: {\n reasoning_steps?: ReasoningStep[]\n references?: ReferenceData[]\n }\n reasoning_steps?: ReasoningStep[]\n references?: ReferenceData[]\n followups?: string[]\n}\n\nfunction toText(value: unknown): string {\n if (value == null) return ''\n if (typeof value === 'string') return value\n // Some inputs/outputs arrive as content-part arrays or objects.\n if (Array.isArray(value)) {\n return value\n .map((part) =>\n part && typeof part === 'object' && 'text' in part ? String((part as { text: unknown }).text) : '',\n )\n .filter(Boolean)\n .join(' ')\n }\n if (typeof value === 'object') {\n const obj = value as Record<string, unknown>\n if (typeof obj.input_content === 'string') return obj.input_content\n if (typeof obj.message === 'string') return obj.message\n if (typeof obj.content === 'string') return obj.content\n return '```json\\n' + JSON.stringify(value, null, 2) + '\\n```'\n }\n return String(value)\n}\n\nlet seq = 0\nconst id = (prefix: string) => `${prefix}-${seq++}`\n\n/** Convert the runs of a session into an ordered list of chat messages. */\nexport function sessionRunsToMessages(runs: SessionRun[]): ChatMessage[] {\n if (!Array.isArray(runs)) return []\n const messages: ChatMessage[] = []\n\n for (const run of runs) {\n const created = run.created_at ?? Math.floor(Date.now() / 1000)\n\n const userContent = toText(run.run_input)\n if (userContent) {\n messages.push({\n id: id('hist-u'),\n role: 'user',\n content: userContent,\n created_at: created,\n })\n }\n\n messages.push({\n id: id('hist-a'),\n role: 'agent',\n content: toText(run.content),\n created_at: created,\n status: 'completed',\n run_id: run.run_id,\n session_id: run.session_id,\n tool_calls: run.tools && run.tools.length ? run.tools : undefined,\n // Stored events let the behind-the-scenes panel look the same in history\n // as it does live.\n events: run.events && run.events.length ? run.events : undefined,\n reasoning_steps: run.reasoning_steps ?? run.extra_data?.reasoning_steps,\n references: run.references ?? run.extra_data?.references,\n followups: run.followups && run.followups.length ? run.followups : undefined,\n images: run.images,\n videos: run.videos,\n audio: run.audio,\n response_audio: run.response_audio,\n })\n }\n\n return messages\n}\n","/**\n * Helpers for classifying run events and turning them into UI labels.\n *\n * Agent, team and workflow events share shapes but use different name prefixes\n * (e.g. `RunContent` vs `TeamRunContent`). These helpers let the rest of the\n * library treat them uniformly.\n */\n\nimport type { ChatMessage, RunEventData, SubRun, ToolExecution, WorkflowStep } from './types'\n\nconst name = (e: RunEventData): string => String(e.event ?? '')\n\nexport const isStartedEvent = (e: RunEventData): boolean =>\n name(e) === 'RunStarted' ||\n name(e) === 'TeamRunStarted' ||\n name(e) === 'WorkflowStarted' ||\n name(e) === 'ReasoningStarted' ||\n name(e) === 'TeamReasoningStarted'\n\nexport const isContentEvent = (e: RunEventData): boolean =>\n name(e) === 'RunContent' || name(e) === 'TeamRunContent' || name(e) === 'WorkflowAgentCompleted'\n\nexport const isContentCompletedEvent = (e: RunEventData): boolean =>\n name(e) === 'RunContentCompleted' || name(e) === 'TeamRunContentCompleted'\n\nexport const isCompletedEvent = (e: RunEventData): boolean =>\n name(e) === 'RunCompleted' ||\n name(e) === 'TeamRunCompleted' ||\n name(e) === 'WorkflowCompleted'\n\nexport const isErrorEvent = (e: RunEventData): boolean =>\n name(e) === 'RunError' ||\n name(e) === 'TeamRunError' ||\n name(e) === 'WorkflowError' ||\n name(e) === 'StepError' ||\n name(e) === 'ToolCallError' ||\n name(e) === 'TeamToolCallError'\n\nexport const isCancelledEvent = (e: RunEventData): boolean =>\n name(e) === 'RunCancelled' ||\n name(e) === 'TeamRunCancelled' ||\n name(e) === 'WorkflowCancelled'\n\nexport const isPausedEvent = (e: RunEventData): boolean =>\n name(e) === 'RunPaused' ||\n name(e) === 'TeamRunPaused' ||\n name(e) === 'WorkflowPaused' ||\n name(e) === 'StepPaused' ||\n name(e) === 'RouterPaused' ||\n name(e) === 'ConditionPaused'\n\nexport const isToolStartedEvent = (e: RunEventData): boolean =>\n name(e) === 'ToolCallStarted' || name(e) === 'TeamToolCallStarted'\n\nexport const isToolCompletedEvent = (e: RunEventData): boolean =>\n name(e) === 'ToolCallCompleted' || name(e) === 'TeamToolCallCompleted'\n\nexport const isToolEvent = (e: RunEventData): boolean =>\n isToolStartedEvent(e) || isToolCompletedEvent(e) || name(e) === 'ToolCallError' || name(e) === 'TeamToolCallError'\n\nexport const isReasoningStepEvent = (e: RunEventData): boolean =>\n name(e) === 'ReasoningStep' || name(e) === 'TeamReasoningStep'\n\nexport const isReasoningCompletedEvent = (e: RunEventData): boolean =>\n name(e) === 'ReasoningCompleted' || name(e) === 'TeamReasoningCompleted'\n\n/** The follow-up prompts an agent built with `followups=True` suggests. */\nexport const isFollowupsCompletedEvent = (e: RunEventData): boolean =>\n name(e) === 'FollowupsCompleted' || name(e) === 'TeamFollowupsCompleted'\n\n/**\n * A nested-run event — a team member's turn or a workflow step executor.\n * Identified by a `parent_run_id` on an agent/team content/tool/run event.\n */\nexport function isSubRunEvent(e: RunEventData): boolean {\n if (!e.parent_run_id) return false\n const ev = name(e)\n return (\n isContentEvent(e) ||\n isToolEvent(e) ||\n isCompletedEvent(e) ||\n isErrorEvent(e) ||\n ev === 'RunStarted' ||\n ev === 'TeamRunStarted'\n )\n}\n\n/** A workflow step lifecycle event (start / output / complete / error). */\nexport function isStepEvent(e: RunEventData): boolean {\n const ev = name(e)\n return ev === 'StepStarted' || ev === 'StepCompleted' || ev === 'StepOutput' || ev === 'StepError'\n}\n\n/** Tool executions carried by an event, from either the single or array field. */\nexport function toolsFromEvent(e: RunEventData): ToolExecution[] {\n const out: ToolExecution[] = []\n if (e.tool) out.push(e.tool)\n if (Array.isArray(e.tools)) out.push(...e.tools)\n return out\n}\n\n/** Apply a content chunk and its related metadata to a message. */\nexport function applyContentEvent(message: ChatMessage, e: RunEventData): ChatMessage {\n const next: ChatMessage = { ...message }\n\n if (typeof e.content === 'string' && e.content) {\n next.content = message.content + e.content\n } else if (e.content && typeof e.content === 'object') {\n next.content = message.content + '\\n```json\\n' + JSON.stringify(e.content, null, 2) + '\\n```\\n'\n }\n\n if (e.reasoning_steps?.length) next.reasoning_steps = e.reasoning_steps\n if (e.extra_data?.reasoning_steps?.length) next.reasoning_steps = e.extra_data.reasoning_steps\n if (e.references?.length) next.references = e.references\n if (e.extra_data?.references?.length) next.references = e.extra_data.references\n if (e.citations) next.citations = e.citations\n\n const tools = toolsFromEvent(e)\n if (tools.length) {\n let toolCalls = message.tool_calls ?? []\n for (const tool of tools) toolCalls = mergeTool(toolCalls, tool)\n next.tool_calls = toolCalls\n }\n\n if (e.images?.length) next.images = e.images\n if (e.videos?.length) next.videos = e.videos\n if (e.audio?.length) next.audio = e.audio\n if (e.response_audio?.transcript) {\n next.response_audio = {\n ...message.response_audio,\n transcript: (message.response_audio?.transcript ?? '') + e.response_audio.transcript,\n }\n }\n\n return next\n}\n\n/**\n * A short human-readable label describing what a run is doing at the moment of\n * this event — for a live status line (\"Calling get_weather\", \"Reasoning…\").\n * Returns null for events that don't warrant a status change.\n */\nexport function activityLabel(e: RunEventData): string | null {\n const ev = name(e)\n switch (ev) {\n case 'RunStarted':\n case 'TeamRunStarted':\n case 'WorkflowStarted':\n return 'Thinking'\n case 'ModelRequestStarted':\n case 'TeamModelRequestStarted':\n return 'Generating'\n case 'ReasoningStarted':\n case 'TeamReasoningStarted':\n case 'ReasoningStep':\n case 'TeamReasoningStep':\n case 'ReasoningContentDelta':\n case 'TeamReasoningContentDelta':\n return 'Reasoning'\n case 'MemoryUpdateStarted':\n case 'TeamMemoryUpdateStarted':\n return 'Updating memory'\n case 'SessionSummaryStarted':\n case 'TeamSessionSummaryStarted':\n return 'Summarising session'\n case 'CompressionStarted':\n return 'Compressing context'\n case 'FollowupsStarted':\n case 'TeamFollowupsStarted':\n return 'Suggesting follow-ups'\n case 'ToolCallStarted':\n case 'TeamToolCallStarted': {\n const tool = e.tool?.tool_name\n return tool ? `Calling ${tool}` : 'Calling tool'\n }\n case 'ToolCallCompleted':\n case 'TeamToolCallCompleted':\n return 'Generating'\n case 'StepStarted':\n return e.step_name ? `Running step: ${e.step_name}` : 'Running step'\n case 'LoopIterationStarted':\n return `Loop iteration ${e.iteration ?? ''}`.trim()\n case 'ParallelExecutionStarted':\n return 'Running parallel steps'\n case 'RouterExecutionStarted':\n return 'Routing'\n case 'ConditionExecutionStarted':\n return 'Evaluating condition'\n default:\n return null\n }\n}\n\nfunction textOf(value: unknown): string | undefined {\n if (typeof value === 'string') return value\n if (value && typeof value === 'object') return '```json\\n' + JSON.stringify(value, null, 2) + '\\n```'\n return undefined\n}\n\n/** Apply a nested member/executor run event into a message's `members`. */\nexport function applySubRunEvent(\n message: ChatMessage,\n e: RunEventData,\n kind: SubRun['kind'],\n): ChatMessage {\n const rid = e.run_id || e.parent_run_id || 'sub'\n const members = message.members ? [...message.members] : []\n const idx = members.findIndex((s) => s.run_id === rid)\n const base: SubRun = idx >= 0 ? { ...members[idx] } : { run_id: rid, kind, content: '', status: 'running' }\n\n base.name = base.name || (e.agent_name as string) || (e.team_name as string) || (e.agent_id as string)\n\n const tools = toolsFromEvent(e)\n if (tools.length) {\n let tc = base.tool_calls ?? []\n for (const t of tools) tc = mergeTool(tc, t)\n base.tool_calls = tc\n }\n\n if (isErrorEvent(e)) {\n base.status = 'error'\n } else if (isCompletedEvent(e)) {\n base.status = 'completed'\n const final = textOf(e.content)\n if (final) base.content = final\n } else if (isContentEvent(e)) {\n const delta = typeof e.content === 'string' ? e.content : ''\n if (delta) base.content += delta\n }\n\n if (idx >= 0) members[idx] = base\n else members.push(base)\n return { ...message, members }\n}\n\n/** Apply a workflow `Step*` event into a message's `steps`. */\nexport function applyStepEvent(message: ChatMessage, e: RunEventData): ChatMessage {\n const ev = name(e)\n const key = (e.step_name as string) || `step-${JSON.stringify(e.step_index ?? '')}`\n const steps = message.steps ? [...message.steps] : []\n const idx = steps.findIndex((s) => s.key === key)\n const step: WorkflowStep =\n idx >= 0\n ? { ...steps[idx] }\n : { key, name: e.step_name, index: e.step_index, status: 'running' }\n\n if (ev === 'StepStarted') {\n step.status = 'running'\n } else if (ev === 'StepError') {\n step.status = 'error'\n step.error = e.error || (typeof e.content === 'string' ? e.content : undefined)\n } else {\n // StepCompleted / StepOutput\n step.status = 'completed'\n const stepResponse = (e.step_response ?? e.step_output) as { content?: unknown } | undefined\n const content = textOf(e.content) ?? textOf(stepResponse?.content)\n if (content) step.content = content\n }\n\n if (idx >= 0) steps[idx] = step\n else steps.push(step)\n return { ...message, steps }\n}\n\n/** Merge a tool execution into a list, updating an existing entry by id/name. */\nexport function mergeTool(list: ToolExecution[], tool: ToolExecution): ToolExecution[] {\n const key = tool.tool_call_id || `${tool.tool_name}-${tool.created_at}`\n const idx = list.findIndex((t) => {\n if (t.tool_call_id && tool.tool_call_id) return t.tool_call_id === tool.tool_call_id\n return `${t.tool_name}-${t.created_at}` === key\n })\n if (idx >= 0) {\n const next = [...list]\n next[idx] = { ...next[idx], ...tool }\n return next\n }\n return [...list, tool]\n}\n"]}
|