@yolk-sdk/agent 0.1.0-canary.66 → 0.1.0-canary.67

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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # @yolk-sdk/agent
2
2
 
3
- Domain-free agent protocol, loop, runtime, client, compaction, tools, React, providers, OAuth, skillset, and voice primitives.
3
+ Domain-free agent protocol, loop, runtime, Effect-native client, compaction, tools, React, providers, OAuth, skillset, and voice primitives.
4
4
 
5
- Root export is intentionally tiny. Import feature APIs from explicit subpaths.
5
+ Root export is intentionally empty. Import feature APIs from explicit subpaths.
6
6
 
7
7
  ## Install
8
8
 
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.mts","names":[],"sources":["../../src/client/state.ts"],"mappings":";;;KAcY,cAAA;AAAA,KAEA,YAAA;EAAA,SAEG,IAAA;EAAA,SACA,EAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SAA6B,IAAA,EAAM,QAAA;AAAA;EAAA,SAEnC,IAAA;EAAA,SACA,IAAA,EAAM,QAAA;EAAA,SACN,OAAA,GAAU,mBAAA;AAAA;EAAA,SAEV,IAAA;EAAA,SAAyB,UAAA;EAAA,SAA6B,MAAA;AAAA;EAAA,SACtD,IAAA;EAAA,SAAoC,OAAA,EAAS,eAAA;AAAA;EAAA,SAE7C,IAAA;EAAA,SACA,QAAA,EAAU,gBAAA;EAAA,SACV,OAAA,GAAU,eAAA;AAAA;EAAA,SAGV,IAAA;EAAA,SACA,QAAA,EAAU,gBAAA;EAAA,SACV,OAAA,GAAU,eAAA;AAAA;EAAA,SAEV,IAAA;EAAA,SAA4B,IAAA,EAAM,QAAA;EAAA,SAAmB,WAAA;AAAA;EAAA,SAErD,IAAA;EAAA,SACA,IAAA,EAAM,QAAA;EAAA,SACN,MAAA,EAAQ,UAAA;EAAA,SACR,WAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,IAAA,EAAM,QAAA;EAAA,SACN,OAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SAAoC,IAAA,EAAM,QAAA;EAAA,SAAmB,MAAA,EAAQ,UAAA;AAAA;AAAA,KAIxE,gBAAA;EAAA,SACD,MAAA,EAAQ,cAAA;EAAA,SACR,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,YAAA,EAAc,aAAA,CAAc,YAAA;EAAA,SAC5B,IAAA;EAAA,SACA,SAAA;EAAA,SACA,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,KAAA;EAAA,SACA,SAAA,EAAW,UAAA;EAAA,SACX,SAAA,EAAW,UAAA;EAAA,SACX,YAAA,EAAc,aAAA;AAAA;AAAA,KAGb,sBAAA;EAAA,SACD,KAAK;AAAA;AAAA,KAGJ,eAAA,aAA4B,YAAA,KAAiB,KAAA,CAAM,YAAA;AAAA,cAElD,uBAAA,EAAyB,gBAWrC;AAAA,cAkCY,eAAA,GAAmB,GAAA,EAAK,YAAA,KAAY,GAAA;EAAA;;;;;;iBApGC,QAAA;AAAA;EAAA;iBAG7B,QAAA;EAAA,mBACI,mBAAA;AAAA;EAAA;oBAGmC,eAAA;AAAA;EAAA;iBAWX,QAAA;EAAA;;cA0FpC,iBAAA,GAAqB,IAAA,EAAM,aAAA,CAAc,YAAA;EAAA;iBAvFjC,QAAA;EAAA,iBACE,UAAA;EAAA;;;cAyFV,wBAAA,GACX,QAAA,EAAU,aAAA,CAAc,WAAA,MACvB,aAAA,CAAc,YAAA;AAAA,cAwFJ,kBAAA,GACX,QAAA,EAAU,aAAA,CAAc,YAAA,GACxB,OAAA,EAAS,YAAA,KACR,eAAA;AAAA,cAUU,eAAA,GAAmB,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,UAAA,KAAa,gBAAA;AAAA,cAMhE,0BAAA,GACX,KAAA,EAAO,gBAAA,EACP,KAAA,EAAO,UAAA,EACP,OAAA,GAAS,sBAAA,KACR,gBAAA;AAAA,cAgMU,sBAAA,GACX,KAAA,EAAO,gBAAA,EACP,OAAA,EAAS,WAAA,KACR,gBAAA;AAAA,cAcU,cAAA,GACX,KAAA,EAAO,gBAAA,EACP,OAAA,WACA,SAAA,GAAW,UAAA,YACV,gBAAA;AAAA,cASU,gBAAA,GAAoB,KAAA,EAAO,gBAAA,KAAmB,gBAOzD;AAAA,cAEW,iBAAA,GACX,MAAA,EAAQ,aAAA,CAAc,UAAA,GACtB,YAAA,GAAc,gBAAA,EACd,OAAA,GAAS,sBAAA,KAA2B,gBAAA"}
1
+ {"version":3,"file":"state.d.mts","names":[],"sources":["../../src/client/state.ts"],"mappings":";;;KAcY,cAAA;AAAA,KAEA,YAAA;EAAA,SAEG,IAAA;EAAA,SACA,EAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SAA6B,IAAA,EAAM,QAAA;AAAA;EAAA,SAEnC,IAAA;EAAA,SACA,IAAA,EAAM,QAAA;EAAA,SACN,OAAA,GAAU,mBAAA;AAAA;EAAA,SAEV,IAAA;EAAA,SAAyB,UAAA;EAAA,SAA6B,MAAA;AAAA;EAAA,SACtD,IAAA;EAAA,SAAoC,OAAA,EAAS,eAAA;AAAA;EAAA,SAE7C,IAAA;EAAA,SACA,QAAA,EAAU,gBAAA;EAAA,SACV,OAAA,GAAU,eAAA;AAAA;EAAA,SAGV,IAAA;EAAA,SACA,QAAA,EAAU,gBAAA;EAAA,SACV,OAAA,GAAU,eAAA;AAAA;EAAA,SAEV,IAAA;EAAA,SAA4B,IAAA,EAAM,QAAA;EAAA,SAAmB,WAAA;AAAA;EAAA,SAErD,IAAA;EAAA,SACA,IAAA,EAAM,QAAA;EAAA,SACN,MAAA,EAAQ,UAAA;EAAA,SACR,WAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,IAAA,EAAM,QAAA;EAAA,SACN,OAAA;EAAA,SACA,SAAA;AAAA;EAAA,SAEA,IAAA;EAAA,SAAoC,IAAA,EAAM,QAAA;EAAA,SAAmB,MAAA,EAAQ,UAAA;AAAA;AAAA,KAIxE,gBAAA;EAAA,SACD,MAAA,EAAQ,cAAA;EAAA,SACR,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,YAAA,EAAc,aAAA,CAAc,YAAA;EAAA,SAC5B,IAAA;EAAA,SACA,SAAA;EAAA,SACA,QAAA,EAAU,aAAA,CAAc,YAAA;EAAA,SACxB,KAAA;EAAA,SACA,SAAA,EAAW,UAAA;EAAA,SACX,SAAA,EAAW,UAAA;EAAA,SACX,YAAA,EAAc,aAAA;AAAA;AAAA,KAGb,sBAAA;EAAA,SACD,KAAK;AAAA;AAAA,KAGJ,eAAA,aAA4B,YAAA,KAAiB,KAAA,CAAM,YAAA;AAAA,cAElD,uBAAA,EAAyB,gBAWrC;AAAA,cAkCY,eAAA,GAAmB,GAAA,EAAK,YAAA,KAAY,GAAA;EAAA;;;;;;iBApGC,QAAA;AAAA;EAAA;iBAG7B,QAAA;EAAA,mBACI,mBAAA;AAAA;EAAA;oBAGmC,eAAA;AAAA;EAAA;iBAWX,QAAA;EAAA;;cA0FpC,iBAAA,GAAqB,IAAA,EAAM,aAAA,CAAc,YAAA;EAAA;iBAvFjC,QAAA;EAAA,iBACE,UAAA;EAAA;;;cAyFV,wBAAA,GACX,QAAA,EAAU,aAAA,CAAc,WAAA,MACvB,aAAA,CAAc,YAAA;AAAA,cAwFJ,kBAAA,GACX,QAAA,EAAU,aAAA,CAAc,YAAA,GACxB,OAAA,EAAS,YAAA,KACR,eAAA;AAAA,cAUU,eAAA,GAAmB,KAAA,EAAO,gBAAA,EAAkB,KAAA,EAAO,UAAA,KAAa,gBAAA;AAAA,cAMhE,0BAAA,GACX,KAAA,EAAO,gBAAA,EACP,KAAA,EAAO,UAAA,EACP,OAAA,GAAS,sBAAA,KACR,gBAAA;AAAA,cAiMU,sBAAA,GACX,KAAA,EAAO,gBAAA,EACP,OAAA,EAAS,WAAA,KACR,gBAAA;AAAA,cAcU,cAAA,GACX,KAAA,EAAO,gBAAA,EACP,OAAA,WACA,SAAA,GAAW,UAAA,YACV,gBAAA;AAAA,cASU,gBAAA,GAAoB,KAAA,EAAO,gBAAA,KAAmB,gBAOzD;AAAA,cAEW,iBAAA,GACX,MAAA,EAAQ,aAAA,CAAc,UAAA,GACtB,YAAA,GAAc,gBAAA,EACd,OAAA,GAAS,sBAAA,KAA2B,gBAAA"}
@@ -227,6 +227,7 @@ const applyAgentEventUnchecked = (state, event, nowMs) => {
227
227
  result: event.result
228
228
  })
229
229
  });
230
+ case "UserMessage":
230
231
  case "AssistantMessage": return clearRetryInfo({
231
232
  ...state,
232
233
  liveMessages: [...state.liveMessages, event.message],
@@ -1 +1 @@
1
- {"version":3,"file":"state.mjs","names":[],"sources":["../../src/client/state.ts"],"sourcesContent":["import {\n type AgentError,\n type AgentEvent,\n type AgentMessage,\n type AgentRetry,\n type HitlRequest,\n type QuestionRequest,\n type QuestionResponse,\n type ToolCall,\n type ToolApprovalRequest,\n type ToolResult,\n type UserMessage\n} from '@yolk-sdk/agent/protocol'\n\nexport type AgentRunStatus = 'idle' | 'running' | 'waiting' | 'done' | 'error' | 'aborted'\n\nexport type AgentToolRun =\n | {\n readonly _tag: 'InputStreaming'\n readonly id: string\n readonly name?: string\n readonly input: string\n }\n | { readonly _tag: 'InputReady'; readonly call: ToolCall }\n | {\n readonly _tag: 'ApprovalRequested'\n readonly call: ToolCall\n readonly request?: ToolApprovalRequest\n }\n | { readonly _tag: 'Denied'; readonly toolCallId: string; readonly reason: string }\n | { readonly _tag: 'QuestionRequested'; readonly request: QuestionRequest }\n | {\n readonly _tag: 'QuestionAnswered'\n readonly response: QuestionResponse\n readonly request?: QuestionRequest\n }\n | {\n readonly _tag: 'QuestionCancelled'\n readonly response: QuestionResponse\n readonly request?: QuestionRequest\n }\n | { readonly _tag: 'Executing'; readonly call: ToolCall; readonly startedAtMs: number }\n | {\n readonly _tag: 'Completed'\n readonly call: ToolCall\n readonly result: ToolResult\n readonly startedAtMs: number\n readonly endedAtMs: number\n }\n | {\n readonly _tag: 'Errored'\n readonly call: ToolCall\n readonly message: string\n readonly endedAtMs: number\n }\n | { readonly _tag: 'ProviderCompleted'; readonly call: ToolCall; readonly result: ToolResult }\n\ntype StartedAgentToolRun = Extract<AgentToolRun, { readonly _tag: 'Executing' | 'Completed' }>\n\nexport type AgentClientState = {\n readonly status: AgentRunStatus\n readonly messages: ReadonlyArray<AgentMessage>\n readonly liveMessages: ReadonlyArray<AgentMessage>\n readonly text: string\n readonly reasoning: string\n readonly toolRuns: ReadonlyArray<AgentToolRun>\n readonly error: string | null\n readonly errorInfo: AgentError | null\n readonly retryInfo: AgentRetry | null\n readonly seenEventIds: ReadonlyArray<string>\n}\n\nexport type ApplyAgentEventOptions = {\n readonly nowMs?: number\n}\n\nexport type AgentTranscript = readonly [AgentMessage, ...Array<AgentMessage>]\n\nexport const initialAgentClientState: AgentClientState = {\n status: 'idle',\n messages: [],\n liveMessages: [],\n text: '',\n reasoning: '',\n toolRuns: [],\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: []\n}\n\nconst clearRetryInfo = (state: AgentClientState): AgentClientState =>\n state.retryInfo === null ? state : { ...state, retryInfo: null }\n\nconst hasSeenEvent = (state: AgentClientState, event: AgentEvent) =>\n event.eventId !== undefined && state.seenEventIds.includes(event.eventId)\n\nconst rememberEvent = (state: AgentClientState, event: AgentEvent): AgentClientState =>\n event.eventId === undefined\n ? state\n : { ...state, seenEventIds: [...state.seenEventIds, event.eventId] }\n\nconst toolRunId = (run: AgentToolRun) => {\n switch (run._tag) {\n case 'InputStreaming':\n return run.id\n case 'Denied':\n return run.toolCallId\n case 'QuestionRequested':\n return run.request.toolCallId\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return run.response.toolCallId\n case 'InputReady':\n case 'ApprovalRequested':\n case 'Executing':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return run.call.id\n }\n}\n\nexport const isActiveToolRun = (run: AgentToolRun) =>\n run._tag !== 'Completed' &&\n run._tag !== 'Errored' &&\n run._tag !== 'Denied' &&\n run._tag !== 'QuestionAnswered' &&\n run._tag !== 'QuestionCancelled' &&\n run._tag !== 'ProviderCompleted'\n\nexport const completedToolRuns = (runs: ReadonlyArray<AgentToolRun>) =>\n runs.filter(run => run._tag === 'Completed')\n\nexport const toolRunsFromHitlRequests = (\n requests: ReadonlyArray<HitlRequest>\n): ReadonlyArray<AgentToolRun> =>\n requests.map(request => {\n switch (request._tag) {\n case 'QuestionRequest':\n return { _tag: 'QuestionRequested', request }\n case 'ToolApprovalRequest':\n return { _tag: 'ApprovalRequested', call: request.call, request }\n }\n })\n\nconst replaceToolRun = (\n runs: ReadonlyArray<AgentToolRun>,\n run: AgentToolRun\n): ReadonlyArray<AgentToolRun> => {\n const id = toolRunId(run)\n const replaceIndex = runs.findIndex(current => toolRunId(current) === id)\n\n if (replaceIndex === -1) {\n return [...runs, run]\n }\n\n return runs.flatMap((current, index) => {\n if (toolRunId(current) !== id) {\n return [current]\n }\n\n return index === replaceIndex ? [run] : []\n })\n}\n\nconst isStartedToolRun = (run: AgentToolRun): run is StartedAgentToolRun =>\n run._tag === 'Executing' || run._tag === 'Completed'\n\nconst startedAtMsFor = (runs: ReadonlyArray<AgentToolRun>, toolCallId: string) =>\n runs.filter(isStartedToolRun).find(run => run.call.id === toolCallId)?.startedAtMs\n\nconst appendToolInputDelta = (\n runs: ReadonlyArray<AgentToolRun>,\n id: string,\n delta: string\n): ReadonlyArray<AgentToolRun> =>\n runs.map(run =>\n run._tag === 'InputStreaming' && run.id === id ? { ...run, input: `${run.input}${delta}` } : run\n )\n\nconst questionRequestForToolCall = (\n runs: ReadonlyArray<AgentToolRun>,\n toolCallId: string\n): QuestionRequest | undefined =>\n runs.flatMap(run => {\n if (toolRunId(run) !== toolCallId) {\n return []\n }\n\n switch (run._tag) {\n case 'QuestionRequested':\n return [run.request]\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return run.request === undefined ? [] : [run.request]\n case 'InputStreaming':\n case 'InputReady':\n case 'ApprovalRequested':\n case 'Denied':\n case 'Executing':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return []\n }\n })[0]\n\nconst questionAnsweredRun = (\n response: QuestionResponse,\n request: QuestionRequest | undefined\n): AgentToolRun =>\n request === undefined\n ? { _tag: 'QuestionAnswered', response }\n : { _tag: 'QuestionAnswered', response, request }\n\nconst questionCancelledRun = (\n response: QuestionResponse,\n request: QuestionRequest | undefined\n): AgentToolRun =>\n request === undefined\n ? { _tag: 'QuestionCancelled', response }\n : { _tag: 'QuestionCancelled', response, request }\n\nexport const appendAgentMessage = (\n messages: ReadonlyArray<AgentMessage>,\n message: AgentMessage\n): AgentTranscript => {\n const first = messages[0]\n\n if (first === undefined) {\n return [message]\n }\n\n return [first, ...messages.slice(1), message]\n}\n\nexport const applyAgentEvent = (state: AgentClientState, event: AgentEvent): AgentClientState => {\n const nowMs = 0\n\n return applyAgentEventWithOptions(state, event, { nowMs })\n}\n\nexport const applyAgentEventWithOptions = (\n state: AgentClientState,\n event: AgentEvent,\n options: ApplyAgentEventOptions = {}\n): AgentClientState => {\n const nowMs = options.nowMs ?? 0\n\n if (hasSeenEvent(state, event)) {\n return state\n }\n\n return rememberEvent(applyAgentEventUnchecked(state, event, nowMs), event)\n}\n\nconst applyAgentEventUnchecked = (\n state: AgentClientState,\n event: AgentEvent,\n nowMs: number\n): AgentClientState => {\n switch (event._tag) {\n case 'AgentStart':\n return {\n ...state,\n status: 'running',\n text: '',\n reasoning: '',\n liveMessages: [],\n toolRuns: completedToolRuns(state.toolRuns),\n error: null,\n errorInfo: null,\n retryInfo: null\n }\n case 'AgentError':\n return markAgentError(state, event.message, event)\n case 'LLMTextDelta':\n return clearRetryInfo({ ...state, text: `${state.text}${event.text}` })\n case 'LLMReasoningDelta':\n return clearRetryInfo({ ...state, reasoning: `${state.reasoning}${event.text}` })\n case 'ToolInputStart':\n return clearRetryInfo({\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'InputStreaming',\n id: event.id,\n name: event.name,\n input: ''\n })\n })\n case 'ToolInputDelta':\n return clearRetryInfo({\n ...state,\n toolRuns: appendToolInputDelta(state.toolRuns, event.id, event.delta)\n })\n case 'ToolInputEnd':\n return clearRetryInfo({\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, { _tag: 'InputReady', call: event.call })\n })\n case 'ToolApprovalRequested':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'ApprovalRequested',\n call: event.call,\n request: event.request\n })\n }\n case 'ToolApprovalGranted':\n return state\n case 'ToolApprovalDenied':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'Denied',\n toolCallId: event.toolCallId,\n reason: event.reason\n })\n }\n case 'QuestionRequested':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'QuestionRequested',\n request: event.request\n })\n }\n case 'QuestionAnswered':\n return {\n ...state,\n toolRuns: replaceToolRun(\n state.toolRuns,\n questionAnsweredRun(\n event.response,\n questionRequestForToolCall(state.toolRuns, event.response.toolCallId)\n )\n )\n }\n case 'QuestionCancelled':\n return {\n ...state,\n toolRuns: replaceToolRun(\n state.toolRuns,\n questionCancelledRun(\n event.response,\n questionRequestForToolCall(state.toolRuns, event.response.toolCallId)\n )\n )\n }\n case 'ToolExecutionStarted':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'Executing',\n call: event.call,\n startedAtMs: nowMs\n })\n }\n case 'ToolExecutionCompleted': {\n const endedAtMs = nowMs\n const startedAtMs = startedAtMsFor(state.toolRuns, event.call.id) ?? endedAtMs\n\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'Completed',\n call: event.call,\n result: event.result,\n startedAtMs,\n endedAtMs\n })\n }\n }\n case 'ToolExecutionError':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'Errored',\n call: event.call,\n message: event.message,\n endedAtMs: nowMs\n })\n }\n case 'ProviderToolResult':\n return clearRetryInfo({\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'ProviderCompleted',\n call: event.call,\n result: event.result\n })\n })\n case 'AssistantMessage':\n return clearRetryInfo({\n ...state,\n liveMessages: [...state.liveMessages, event.message],\n text: '',\n reasoning: ''\n })\n case 'AgentEnd':\n return {\n ...state,\n status: 'done',\n messages: [...state.messages, ...event.messages],\n liveMessages: [],\n text: '',\n reasoning: '',\n toolRuns: completedToolRuns(state.toolRuns),\n retryInfo: null\n }\n case 'AgentAwaitingInput':\n return {\n ...state,\n status: 'waiting',\n messages: [...state.messages, ...event.messages],\n liveMessages: [],\n text: '',\n reasoning: '',\n error: null,\n errorInfo: null,\n retryInfo: null\n }\n case 'AgentRetry':\n return { ...state, retryInfo: event }\n case 'CompactionEnd':\n case 'CompactionStart':\n case 'LLMStreamEnd':\n case 'LLMStreamStart':\n case 'SubagentCompleted':\n case 'SubagentStarted':\n case 'TurnEnd':\n case 'TurnStart':\n case 'UsageUpdate':\n return state\n }\n}\n\nexport const submitAgentUserMessage = (\n state: AgentClientState,\n message: UserMessage\n): AgentClientState => ({\n ...state,\n status: 'running',\n messages: appendAgentMessage(state.messages, message),\n liveMessages: [],\n text: '',\n reasoning: '',\n toolRuns: completedToolRuns(state.toolRuns),\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: []\n})\n\nexport const markAgentError = (\n state: AgentClientState,\n message = 'Agent request failed',\n errorInfo: AgentError | null = null\n): AgentClientState => ({\n ...state,\n status: 'error',\n toolRuns: completedToolRuns(state.toolRuns),\n error: message,\n errorInfo,\n retryInfo: null\n})\n\nexport const markAgentAborted = (state: AgentClientState): AgentClientState => ({\n ...state,\n status: 'aborted',\n toolRuns: completedToolRuns(state.toolRuns),\n error: null,\n errorInfo: null,\n retryInfo: null\n})\n\nexport const reduceAgentEvents = (\n events: ReadonlyArray<AgentEvent>,\n initialState: AgentClientState = initialAgentClientState,\n options: ApplyAgentEventOptions = {}\n) =>\n events.reduce((state, event) => applyAgentEventWithOptions(state, event, options), initialState)\n"],"mappings":"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"}
1
+ {"version":3,"file":"state.mjs","names":[],"sources":["../../src/client/state.ts"],"sourcesContent":["import {\n type AgentError,\n type AgentEvent,\n type AgentMessage,\n type AgentRetry,\n type HitlRequest,\n type QuestionRequest,\n type QuestionResponse,\n type ToolCall,\n type ToolApprovalRequest,\n type ToolResult,\n type UserMessage\n} from '@yolk-sdk/agent/protocol'\n\nexport type AgentRunStatus = 'idle' | 'running' | 'waiting' | 'done' | 'error' | 'aborted'\n\nexport type AgentToolRun =\n | {\n readonly _tag: 'InputStreaming'\n readonly id: string\n readonly name?: string\n readonly input: string\n }\n | { readonly _tag: 'InputReady'; readonly call: ToolCall }\n | {\n readonly _tag: 'ApprovalRequested'\n readonly call: ToolCall\n readonly request?: ToolApprovalRequest\n }\n | { readonly _tag: 'Denied'; readonly toolCallId: string; readonly reason: string }\n | { readonly _tag: 'QuestionRequested'; readonly request: QuestionRequest }\n | {\n readonly _tag: 'QuestionAnswered'\n readonly response: QuestionResponse\n readonly request?: QuestionRequest\n }\n | {\n readonly _tag: 'QuestionCancelled'\n readonly response: QuestionResponse\n readonly request?: QuestionRequest\n }\n | { readonly _tag: 'Executing'; readonly call: ToolCall; readonly startedAtMs: number }\n | {\n readonly _tag: 'Completed'\n readonly call: ToolCall\n readonly result: ToolResult\n readonly startedAtMs: number\n readonly endedAtMs: number\n }\n | {\n readonly _tag: 'Errored'\n readonly call: ToolCall\n readonly message: string\n readonly endedAtMs: number\n }\n | { readonly _tag: 'ProviderCompleted'; readonly call: ToolCall; readonly result: ToolResult }\n\ntype StartedAgentToolRun = Extract<AgentToolRun, { readonly _tag: 'Executing' | 'Completed' }>\n\nexport type AgentClientState = {\n readonly status: AgentRunStatus\n readonly messages: ReadonlyArray<AgentMessage>\n readonly liveMessages: ReadonlyArray<AgentMessage>\n readonly text: string\n readonly reasoning: string\n readonly toolRuns: ReadonlyArray<AgentToolRun>\n readonly error: string | null\n readonly errorInfo: AgentError | null\n readonly retryInfo: AgentRetry | null\n readonly seenEventIds: ReadonlyArray<string>\n}\n\nexport type ApplyAgentEventOptions = {\n readonly nowMs?: number\n}\n\nexport type AgentTranscript = readonly [AgentMessage, ...Array<AgentMessage>]\n\nexport const initialAgentClientState: AgentClientState = {\n status: 'idle',\n messages: [],\n liveMessages: [],\n text: '',\n reasoning: '',\n toolRuns: [],\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: []\n}\n\nconst clearRetryInfo = (state: AgentClientState): AgentClientState =>\n state.retryInfo === null ? state : { ...state, retryInfo: null }\n\nconst hasSeenEvent = (state: AgentClientState, event: AgentEvent) =>\n event.eventId !== undefined && state.seenEventIds.includes(event.eventId)\n\nconst rememberEvent = (state: AgentClientState, event: AgentEvent): AgentClientState =>\n event.eventId === undefined\n ? state\n : { ...state, seenEventIds: [...state.seenEventIds, event.eventId] }\n\nconst toolRunId = (run: AgentToolRun) => {\n switch (run._tag) {\n case 'InputStreaming':\n return run.id\n case 'Denied':\n return run.toolCallId\n case 'QuestionRequested':\n return run.request.toolCallId\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return run.response.toolCallId\n case 'InputReady':\n case 'ApprovalRequested':\n case 'Executing':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return run.call.id\n }\n}\n\nexport const isActiveToolRun = (run: AgentToolRun) =>\n run._tag !== 'Completed' &&\n run._tag !== 'Errored' &&\n run._tag !== 'Denied' &&\n run._tag !== 'QuestionAnswered' &&\n run._tag !== 'QuestionCancelled' &&\n run._tag !== 'ProviderCompleted'\n\nexport const completedToolRuns = (runs: ReadonlyArray<AgentToolRun>) =>\n runs.filter(run => run._tag === 'Completed')\n\nexport const toolRunsFromHitlRequests = (\n requests: ReadonlyArray<HitlRequest>\n): ReadonlyArray<AgentToolRun> =>\n requests.map(request => {\n switch (request._tag) {\n case 'QuestionRequest':\n return { _tag: 'QuestionRequested', request }\n case 'ToolApprovalRequest':\n return { _tag: 'ApprovalRequested', call: request.call, request }\n }\n })\n\nconst replaceToolRun = (\n runs: ReadonlyArray<AgentToolRun>,\n run: AgentToolRun\n): ReadonlyArray<AgentToolRun> => {\n const id = toolRunId(run)\n const replaceIndex = runs.findIndex(current => toolRunId(current) === id)\n\n if (replaceIndex === -1) {\n return [...runs, run]\n }\n\n return runs.flatMap((current, index) => {\n if (toolRunId(current) !== id) {\n return [current]\n }\n\n return index === replaceIndex ? [run] : []\n })\n}\n\nconst isStartedToolRun = (run: AgentToolRun): run is StartedAgentToolRun =>\n run._tag === 'Executing' || run._tag === 'Completed'\n\nconst startedAtMsFor = (runs: ReadonlyArray<AgentToolRun>, toolCallId: string) =>\n runs.filter(isStartedToolRun).find(run => run.call.id === toolCallId)?.startedAtMs\n\nconst appendToolInputDelta = (\n runs: ReadonlyArray<AgentToolRun>,\n id: string,\n delta: string\n): ReadonlyArray<AgentToolRun> =>\n runs.map(run =>\n run._tag === 'InputStreaming' && run.id === id ? { ...run, input: `${run.input}${delta}` } : run\n )\n\nconst questionRequestForToolCall = (\n runs: ReadonlyArray<AgentToolRun>,\n toolCallId: string\n): QuestionRequest | undefined =>\n runs.flatMap(run => {\n if (toolRunId(run) !== toolCallId) {\n return []\n }\n\n switch (run._tag) {\n case 'QuestionRequested':\n return [run.request]\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return run.request === undefined ? [] : [run.request]\n case 'InputStreaming':\n case 'InputReady':\n case 'ApprovalRequested':\n case 'Denied':\n case 'Executing':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return []\n }\n })[0]\n\nconst questionAnsweredRun = (\n response: QuestionResponse,\n request: QuestionRequest | undefined\n): AgentToolRun =>\n request === undefined\n ? { _tag: 'QuestionAnswered', response }\n : { _tag: 'QuestionAnswered', response, request }\n\nconst questionCancelledRun = (\n response: QuestionResponse,\n request: QuestionRequest | undefined\n): AgentToolRun =>\n request === undefined\n ? { _tag: 'QuestionCancelled', response }\n : { _tag: 'QuestionCancelled', response, request }\n\nexport const appendAgentMessage = (\n messages: ReadonlyArray<AgentMessage>,\n message: AgentMessage\n): AgentTranscript => {\n const first = messages[0]\n\n if (first === undefined) {\n return [message]\n }\n\n return [first, ...messages.slice(1), message]\n}\n\nexport const applyAgentEvent = (state: AgentClientState, event: AgentEvent): AgentClientState => {\n const nowMs = 0\n\n return applyAgentEventWithOptions(state, event, { nowMs })\n}\n\nexport const applyAgentEventWithOptions = (\n state: AgentClientState,\n event: AgentEvent,\n options: ApplyAgentEventOptions = {}\n): AgentClientState => {\n const nowMs = options.nowMs ?? 0\n\n if (hasSeenEvent(state, event)) {\n return state\n }\n\n return rememberEvent(applyAgentEventUnchecked(state, event, nowMs), event)\n}\n\nconst applyAgentEventUnchecked = (\n state: AgentClientState,\n event: AgentEvent,\n nowMs: number\n): AgentClientState => {\n switch (event._tag) {\n case 'AgentStart':\n return {\n ...state,\n status: 'running',\n text: '',\n reasoning: '',\n liveMessages: [],\n toolRuns: completedToolRuns(state.toolRuns),\n error: null,\n errorInfo: null,\n retryInfo: null\n }\n case 'AgentError':\n return markAgentError(state, event.message, event)\n case 'LLMTextDelta':\n return clearRetryInfo({ ...state, text: `${state.text}${event.text}` })\n case 'LLMReasoningDelta':\n return clearRetryInfo({ ...state, reasoning: `${state.reasoning}${event.text}` })\n case 'ToolInputStart':\n return clearRetryInfo({\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'InputStreaming',\n id: event.id,\n name: event.name,\n input: ''\n })\n })\n case 'ToolInputDelta':\n return clearRetryInfo({\n ...state,\n toolRuns: appendToolInputDelta(state.toolRuns, event.id, event.delta)\n })\n case 'ToolInputEnd':\n return clearRetryInfo({\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, { _tag: 'InputReady', call: event.call })\n })\n case 'ToolApprovalRequested':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'ApprovalRequested',\n call: event.call,\n request: event.request\n })\n }\n case 'ToolApprovalGranted':\n return state\n case 'ToolApprovalDenied':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'Denied',\n toolCallId: event.toolCallId,\n reason: event.reason\n })\n }\n case 'QuestionRequested':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'QuestionRequested',\n request: event.request\n })\n }\n case 'QuestionAnswered':\n return {\n ...state,\n toolRuns: replaceToolRun(\n state.toolRuns,\n questionAnsweredRun(\n event.response,\n questionRequestForToolCall(state.toolRuns, event.response.toolCallId)\n )\n )\n }\n case 'QuestionCancelled':\n return {\n ...state,\n toolRuns: replaceToolRun(\n state.toolRuns,\n questionCancelledRun(\n event.response,\n questionRequestForToolCall(state.toolRuns, event.response.toolCallId)\n )\n )\n }\n case 'ToolExecutionStarted':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'Executing',\n call: event.call,\n startedAtMs: nowMs\n })\n }\n case 'ToolExecutionCompleted': {\n const endedAtMs = nowMs\n const startedAtMs = startedAtMsFor(state.toolRuns, event.call.id) ?? endedAtMs\n\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'Completed',\n call: event.call,\n result: event.result,\n startedAtMs,\n endedAtMs\n })\n }\n }\n case 'ToolExecutionError':\n return {\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'Errored',\n call: event.call,\n message: event.message,\n endedAtMs: nowMs\n })\n }\n case 'ProviderToolResult':\n return clearRetryInfo({\n ...state,\n toolRuns: replaceToolRun(state.toolRuns, {\n _tag: 'ProviderCompleted',\n call: event.call,\n result: event.result\n })\n })\n case 'UserMessage':\n case 'AssistantMessage':\n return clearRetryInfo({\n ...state,\n liveMessages: [...state.liveMessages, event.message],\n text: '',\n reasoning: ''\n })\n case 'AgentEnd':\n return {\n ...state,\n status: 'done',\n messages: [...state.messages, ...event.messages],\n liveMessages: [],\n text: '',\n reasoning: '',\n toolRuns: completedToolRuns(state.toolRuns),\n retryInfo: null\n }\n case 'AgentAwaitingInput':\n return {\n ...state,\n status: 'waiting',\n messages: [...state.messages, ...event.messages],\n liveMessages: [],\n text: '',\n reasoning: '',\n error: null,\n errorInfo: null,\n retryInfo: null\n }\n case 'AgentRetry':\n return { ...state, retryInfo: event }\n case 'CompactionEnd':\n case 'CompactionStart':\n case 'LLMStreamEnd':\n case 'LLMStreamStart':\n case 'SubagentCompleted':\n case 'SubagentStarted':\n case 'TurnEnd':\n case 'TurnStart':\n case 'UsageUpdate':\n return state\n }\n}\n\nexport const submitAgentUserMessage = (\n state: AgentClientState,\n message: UserMessage\n): AgentClientState => ({\n ...state,\n status: 'running',\n messages: appendAgentMessage(state.messages, message),\n liveMessages: [],\n text: '',\n reasoning: '',\n toolRuns: completedToolRuns(state.toolRuns),\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: []\n})\n\nexport const markAgentError = (\n state: AgentClientState,\n message = 'Agent request failed',\n errorInfo: AgentError | null = null\n): AgentClientState => ({\n ...state,\n status: 'error',\n toolRuns: completedToolRuns(state.toolRuns),\n error: message,\n errorInfo,\n retryInfo: null\n})\n\nexport const markAgentAborted = (state: AgentClientState): AgentClientState => ({\n ...state,\n status: 'aborted',\n toolRuns: completedToolRuns(state.toolRuns),\n error: null,\n errorInfo: null,\n retryInfo: null\n})\n\nexport const reduceAgentEvents = (\n events: ReadonlyArray<AgentEvent>,\n initialState: AgentClientState = initialAgentClientState,\n options: ApplyAgentEventOptions = {}\n) =>\n events.reduce((state, event) => applyAgentEventWithOptions(state, event, options), initialState)\n"],"mappings":"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"}
@@ -78,16 +78,16 @@ declare const agentRunStreamTailIndexFromHeaders: (headers: Readonly<Record<stri
78
78
  declare const agentRunStreamStartIndexFromHeaders: (headers: Readonly<Record<string, string | undefined>>) => number | undefined;
79
79
  declare const agentRunEndpointWithStartIndex: (endpoint: string, startIndex?: number) => string;
80
80
  declare const cancelAgentRun: (request: CancelAgentRunRequest) => Effect.Effect<undefined, AgentTransportError, never>;
81
- declare const streamAgentEventStream: (request: StreamAgentEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
82
- declare const streamAgentRunEventStream: (request: StreamAgentRunEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
83
- declare const streamAgentRunHitlResponseEventStream: (request: StreamAgentRunHitlResponseEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
84
- declare const streamToolApprovalResponseEventStream: (request: SubmitToolApprovalResponseRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
85
- declare const streamQuestionResponseEventStream: (request: SubmitQuestionResponseRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
86
- declare const streamAgentEventStreamUntilTerminal: (request: StreamAgentEventsUntilTerminalRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
87
- declare const streamAgentRunEventStreamUntilTerminal: (request: StreamAgentRunEventsUntilTerminalRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
88
- declare const streamAgentRunHitlResponseEventStreamUntilTerminal: (request: StreamAgentRunHitlResponseEventsUntilTerminalRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
89
- declare const streamCloudflareAgentEventStream: (request: StreamCloudflareAgentEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
90
- declare const collectAgentEvents: (request: StreamAgentEventsRequest) => Effect.Effect<(import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted)[], AgentTransportError, never>;
81
+ declare const streamAgentEventStream: (request: StreamAgentEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
82
+ declare const streamAgentRunEventStream: (request: StreamAgentRunEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
83
+ declare const streamAgentRunHitlResponseEventStream: (request: StreamAgentRunHitlResponseEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
84
+ declare const streamToolApprovalResponseEventStream: (request: SubmitToolApprovalResponseRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
85
+ declare const streamQuestionResponseEventStream: (request: SubmitQuestionResponseRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
86
+ declare const streamAgentEventStreamUntilTerminal: (request: StreamAgentEventsUntilTerminalRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
87
+ declare const streamAgentRunEventStreamUntilTerminal: (request: StreamAgentRunEventsUntilTerminalRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
88
+ declare const streamAgentRunHitlResponseEventStreamUntilTerminal: (request: StreamAgentRunHitlResponseEventsUntilTerminalRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
89
+ declare const streamCloudflareAgentEventStream: (request: StreamCloudflareAgentEventsRequest) => Stream.Stream<import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted, AgentTransportError, never>;
90
+ declare const collectAgentEvents: (request: StreamAgentEventsRequest) => Effect.Effect<(import("@yolk-sdk/agent/protocol").AgentStart | import("@yolk-sdk/agent/protocol").AgentError | import("@yolk-sdk/agent/protocol").AgentEnd | import("@yolk-sdk/agent/protocol").AgentAwaitingInput | import("@yolk-sdk/agent/protocol").UsageUpdate | import("@yolk-sdk/agent/protocol").AgentRetry | import("@yolk-sdk/agent/protocol").CompactionStart | import("@yolk-sdk/agent/protocol").CompactionEnd | import("@yolk-sdk/agent/protocol").TurnStart | import("@yolk-sdk/agent/protocol").TurnEnd | import("@yolk-sdk/agent/protocol").LLMStreamStart | import("@yolk-sdk/agent/protocol").LLMTextDelta | import("@yolk-sdk/agent/protocol").LLMReasoningDelta | import("@yolk-sdk/agent/protocol").ToolInputStart | import("@yolk-sdk/agent/protocol").ToolInputDelta | import("@yolk-sdk/agent/protocol").ToolInputEnd | import("@yolk-sdk/agent/protocol").LLMStreamEnd | import("@yolk-sdk/agent/protocol").UserMessageEvent | import("@yolk-sdk/agent/protocol").AssistantMessageEvent | import("@yolk-sdk/agent/protocol").ToolApprovalRequested | import("@yolk-sdk/agent/protocol").ToolApprovalGranted | import("@yolk-sdk/agent/protocol").ToolApprovalDenied | import("@yolk-sdk/agent/protocol").QuestionRequested | import("@yolk-sdk/agent/protocol").QuestionAnswered | import("@yolk-sdk/agent/protocol").QuestionCancelled | import("@yolk-sdk/agent/protocol").ToolExecutionStarted | import("@yolk-sdk/agent/protocol").ToolExecutionCompleted | import("@yolk-sdk/agent/protocol").ToolExecutionError | import("@yolk-sdk/agent/protocol").ProviderToolResult | import("@yolk-sdk/agent/protocol").SubagentStarted | import("@yolk-sdk/agent/protocol").SubagentCompleted)[], AgentTransportError, never>;
91
91
  //#endregion
92
92
  export { AgentHttpResponseInfo, AgentRunContinuationOptions, AgentRunIdleReconnectOptions, AgentTransportError, CancelAgentRunRequest, StreamAgentEventHandler, StreamAgentEventsRequest, StreamAgentEventsUntilTerminalRequest, StreamAgentRunEventsRequest, StreamAgentRunEventsUntilTerminalRequest, StreamAgentRunHitlResponseEventsRequest, StreamAgentRunHitlResponseEventsUntilTerminalRequest, StreamCloudflareAgentEventsRequest, SubmitQuestionResponseRequest, SubmitToolApprovalResponseRequest, agentRunEndpointWithStartIndex, agentRunIdFromHeaders, agentRunStreamStartIndexFromHeaders, agentRunStreamTailIndexFromHeaders, cancelAgentRun, collectAgentEvents, streamAgentEventStream, streamAgentEventStreamUntilTerminal, streamAgentRunEventStream, streamAgentRunEventStreamUntilTerminal, streamAgentRunHitlResponseEventStream, streamAgentRunHitlResponseEventStreamUntilTerminal, streamCloudflareAgentEventStream, streamQuestionResponseEventStream, streamToolApprovalResponseEventStream };
93
93
  //# sourceMappingURL=transport.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.mts","names":[],"sources":["../../src/client/transport.ts"],"mappings":"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"}
1
+ {"version":3,"file":"transport.d.mts","names":[],"sources":["../../src/client/transport.ts"],"mappings":"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"}
@@ -178,6 +178,12 @@ declare const LLMStreamEnd_base: Schema.Class<LLMStreamEnd, Schema.TaggedStruct<
178
178
  readonly createdAtMs: Schema.optional<Schema.Number>;
179
179
  }>, {}>;
180
180
  declare class LLMStreamEnd extends LLMStreamEnd_base {}
181
+ declare const UserMessageEvent_base: Schema.Class<UserMessageEvent, Schema.TaggedStruct<"UserMessage", {
182
+ readonly message: typeof UserMessage;
183
+ readonly eventId: Schema.optional<Schema.Trimmed>;
184
+ readonly createdAtMs: Schema.optional<Schema.Number>;
185
+ }>, {}>;
186
+ declare class UserMessageEvent extends UserMessageEvent_base {}
181
187
  declare const AssistantMessageEvent_base: Schema.Class<AssistantMessageEvent, Schema.TaggedStruct<"AssistantMessage", {
182
188
  readonly message: typeof AssistantAgentMessage;
183
189
  readonly eventId: Schema.optional<Schema.Trimmed>;
@@ -237,12 +243,12 @@ declare const SubagentCompleted_base: Schema.Class<SubagentCompleted, Schema.Tag
237
243
  declare class SubagentCompleted extends SubagentCompleted_base {}
238
244
  declare const makeSubagentRunId: (parentToolCallId: string) => string;
239
245
  declare const hitlResponseEvent: (response: HitlResponse) => AgentEvent;
240
- declare const AgentEvent: Schema.Union<readonly [typeof AgentStart, typeof AgentError, typeof AgentEnd, typeof AgentAwaitingInput, typeof UsageUpdate, typeof AgentRetry, typeof CompactionStart, typeof CompactionEnd, typeof TurnStart, typeof TurnEnd, typeof LLMStreamStart, typeof LLMTextDelta, typeof LLMReasoningDelta, typeof ToolInputStart, typeof ToolInputDelta, typeof ToolInputEnd, typeof LLMStreamEnd, typeof AssistantMessageEvent, typeof ToolApprovalRequested, typeof ToolApprovalGranted, typeof ToolApprovalDenied, typeof QuestionRequested, typeof QuestionAnswered, typeof QuestionCancelled, typeof ToolExecutionStarted, typeof ToolExecutionCompleted, typeof ToolExecutionError, typeof ProviderToolResult, typeof SubagentStarted, typeof SubagentCompleted]>;
246
+ declare const AgentEvent: Schema.Union<readonly [typeof AgentStart, typeof AgentError, typeof AgentEnd, typeof AgentAwaitingInput, typeof UsageUpdate, typeof AgentRetry, typeof CompactionStart, typeof CompactionEnd, typeof TurnStart, typeof TurnEnd, typeof LLMStreamStart, typeof LLMTextDelta, typeof LLMReasoningDelta, typeof ToolInputStart, typeof ToolInputDelta, typeof ToolInputEnd, typeof LLMStreamEnd, typeof UserMessageEvent, typeof AssistantMessageEvent, typeof ToolApprovalRequested, typeof ToolApprovalGranted, typeof ToolApprovalDenied, typeof QuestionRequested, typeof QuestionAnswered, typeof QuestionCancelled, typeof ToolExecutionStarted, typeof ToolExecutionCompleted, typeof ToolExecutionError, typeof ProviderToolResult, typeof SubagentStarted, typeof SubagentCompleted]>;
241
247
  type AgentEvent = typeof AgentEvent.Type;
242
248
  type TerminalAgentEvent = Extract<AgentEvent, {
243
249
  readonly _tag: 'AgentEnd' | 'AgentError' | 'AgentAwaitingInput';
244
250
  }>;
245
251
  declare const isTerminalAgentEvent: (event: AgentEvent) => event is TerminalAgentEvent;
246
252
  //#endregion
247
- export { AgentAwaitingInput, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderErrorInfo, ProviderFailureKind, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, SubagentStatus, TerminalAgentEvent, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, hitlResponseEvent, isTerminalAgentEvent, makeSubagentRunId };
253
+ export { AgentAwaitingInput, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderErrorInfo, ProviderFailureKind, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, SubagentStatus, TerminalAgentEvent, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, UserMessageEvent, hitlResponseEvent, isTerminalAgentEvent, makeSubagentRunId };
248
254
  //# sourceMappingURL=event.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.d.mts","names":[],"sources":["../../src/protocol/event.ts"],"mappings":"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"}
1
+ {"version":3,"file":"event.d.mts","names":[],"sources":["../../src/protocol/event.ts"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { HitlRequest, QuestionAnswer, QuestionRequest, QuestionResponse, ToolApprovalRequest, ToolApprovalResponse, ToolCall, ToolResult } from "./tool.mjs";
2
- import { AgentMessage, AssistantAgentMessage } from "./message.mjs";
2
+ import { AgentMessage, AssistantAgentMessage, UserMessage } from "./message.mjs";
3
3
  import { AgentUsage } from "./usage.mjs";
4
4
  import * as Schema from "effect/Schema";
5
5
  //#region src/protocol/event.ts
@@ -159,6 +159,10 @@ var LLMStreamEnd = class extends Schema.TaggedClass()("LLMStreamEnd", {
159
159
  ...EventIdentity,
160
160
  turn: Schema.Number
161
161
  }) {};
162
+ var UserMessageEvent = class extends Schema.TaggedClass()("UserMessage", {
163
+ ...EventIdentity,
164
+ message: UserMessage
165
+ }) {};
162
166
  var AssistantMessageEvent = class extends Schema.TaggedClass()("AssistantMessage", {
163
167
  ...EventIdentity,
164
168
  message: AssistantAgentMessage
@@ -260,6 +264,7 @@ const AgentEvent = Schema.Union([
260
264
  ToolInputDelta,
261
265
  ToolInputEnd,
262
266
  LLMStreamEnd,
267
+ UserMessageEvent,
263
268
  AssistantMessageEvent,
264
269
  ToolApprovalRequested,
265
270
  ToolApprovalGranted,
@@ -276,6 +281,6 @@ const AgentEvent = Schema.Union([
276
281
  ]);
277
282
  const isTerminalAgentEvent = (event) => event._tag === "AgentEnd" || event._tag === "AgentError" || event._tag === "AgentAwaitingInput";
278
283
  //#endregion
279
- export { AgentAwaitingInput, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderErrorInfo, ProviderFailureKind, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, SubagentStatus, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, hitlResponseEvent, isTerminalAgentEvent, makeSubagentRunId };
284
+ export { AgentAwaitingInput, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderErrorInfo, ProviderFailureKind, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, SubagentStatus, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, UserMessageEvent, hitlResponseEvent, isTerminalAgentEvent, makeSubagentRunId };
280
285
 
281
286
  //# sourceMappingURL=event.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"event.mjs","names":[],"sources":["../../src/protocol/event.ts"],"sourcesContent":["import * as Schema from 'effect/Schema'\nimport { AssistantAgentMessage, AgentMessage } from './message.ts'\nimport {\n HitlRequest,\n QuestionAnswer,\n QuestionRequest,\n QuestionResponse,\n ToolApprovalRequest,\n ToolApprovalResponse,\n ToolCall,\n ToolResult,\n type HitlResponse\n} from './tool.ts'\nimport { AgentUsage } from './usage.ts'\n\nconst NonEmptyTrimmedString = Schema.Trimmed.pipe(Schema.check(Schema.isNonEmpty()))\n\nconst EventIdentity = {\n eventId: Schema.optional(NonEmptyTrimmedString),\n createdAtMs: Schema.optional(Schema.Number)\n}\n\nexport const SubagentStatus = Schema.Literals(['running', 'completed', 'error'])\nexport type SubagentStatus = typeof SubagentStatus.Type\n\nexport const AgentErrorCode = Schema.Literals([\n 'validation_error',\n 'provider_error',\n 'rate_limit',\n 'overloaded',\n 'context_overflow',\n 'invalid_response',\n 'tool_error',\n 'tool_denied',\n 'tool_timeout',\n 'store_error',\n 'aborted',\n 'session_not_found',\n 'conflict',\n 'unknown'\n])\nexport type AgentErrorCode = typeof AgentErrorCode.Type\n\nexport const ProviderFailureKind = Schema.Literals([\n 'rate_limit',\n 'overloaded',\n 'server_error',\n 'network',\n 'stream',\n 'auth',\n 'context_overflow',\n 'invalid_response',\n 'unknown'\n])\nexport type ProviderFailureKind = typeof ProviderFailureKind.Type\n\nexport class ProviderErrorInfo extends Schema.Class<ProviderErrorInfo>('ProviderErrorInfo')({\n provider: NonEmptyTrimmedString,\n kind: ProviderFailureKind,\n status: Schema.optional(Schema.Number),\n providerCode: Schema.optional(Schema.String),\n retryAfterMs: Schema.optional(Schema.Number)\n}) {}\n\nexport class AgentStart extends Schema.TaggedClass<AgentStart>()('AgentStart', {\n ...EventIdentity\n}) {}\n\nexport class AgentError extends Schema.TaggedClass<AgentError>()('AgentError', {\n ...EventIdentity,\n code: AgentErrorCode,\n message: Schema.String,\n retryable: Schema.Boolean,\n provider: Schema.optional(ProviderErrorInfo)\n}) {}\n\nexport class AgentEnd extends Schema.TaggedClass<AgentEnd>()('AgentEnd', {\n ...EventIdentity,\n messages: Schema.Array(AgentMessage),\n turns: Schema.Number,\n usage: AgentUsage\n}) {}\n\nexport class AgentAwaitingInput extends Schema.TaggedClass<AgentAwaitingInput>()(\n 'AgentAwaitingInput',\n {\n ...EventIdentity,\n requests: Schema.NonEmptyArray(HitlRequest),\n messages: Schema.Array(AgentMessage),\n turns: Schema.Number,\n usage: AgentUsage\n }\n) {}\n\nexport class UsageUpdate extends Schema.TaggedClass<UsageUpdate>()('UsageUpdate', {\n ...EventIdentity,\n usage: AgentUsage\n}) {}\n\nexport class AgentRetry extends Schema.TaggedClass<AgentRetry>()('AgentRetry', {\n ...EventIdentity,\n attempt: Schema.Number,\n reason: AgentErrorCode,\n delayMs: Schema.Number,\n message: Schema.String,\n provider: Schema.optional(ProviderErrorInfo)\n}) {}\n\nexport class CompactionStart extends Schema.TaggedClass<CompactionStart>()('CompactionStart', {\n ...EventIdentity,\n strategy: Schema.String\n}) {}\n\nexport class CompactionEnd extends Schema.TaggedClass<CompactionEnd>()('CompactionEnd', {\n ...EventIdentity,\n strategy: Schema.String,\n beforeTokens: Schema.optional(Schema.Number),\n afterTokens: Schema.optional(Schema.Number)\n}) {}\n\nexport class TurnStart extends Schema.TaggedClass<TurnStart>()('TurnStart', {\n ...EventIdentity,\n turn: Schema.Number\n}) {}\n\nexport class TurnEnd extends Schema.TaggedClass<TurnEnd>()('TurnEnd', {\n ...EventIdentity,\n turn: Schema.Number,\n reason: Schema.Literals(['stop', 'tool_use'])\n}) {}\n\nexport class LLMStreamStart extends Schema.TaggedClass<LLMStreamStart>()('LLMStreamStart', {\n ...EventIdentity,\n turn: Schema.Number\n}) {}\n\nexport class LLMTextDelta extends Schema.TaggedClass<LLMTextDelta>()('LLMTextDelta', {\n ...EventIdentity,\n text: Schema.String,\n textSoFar: Schema.optional(Schema.String)\n}) {}\n\nexport class LLMReasoningDelta extends Schema.TaggedClass<LLMReasoningDelta>()(\n 'LLMReasoningDelta',\n {\n ...EventIdentity,\n text: Schema.String,\n reasoningSoFar: Schema.optional(Schema.String)\n }\n) {}\n\nexport class ToolInputStart extends Schema.TaggedClass<ToolInputStart>()('ToolInputStart', {\n ...EventIdentity,\n id: Schema.String,\n name: Schema.optional(Schema.String)\n}) {}\n\nexport class ToolInputDelta extends Schema.TaggedClass<ToolInputDelta>()('ToolInputDelta', {\n ...EventIdentity,\n id: Schema.String,\n delta: Schema.String\n}) {}\n\nexport class ToolInputEnd extends Schema.TaggedClass<ToolInputEnd>()('ToolInputEnd', {\n ...EventIdentity,\n call: ToolCall\n}) {}\n\nexport class ToolApprovalRequested extends Schema.TaggedClass<ToolApprovalRequested>()(\n 'ToolApprovalRequested',\n {\n ...EventIdentity,\n call: ToolCall,\n request: Schema.optional(ToolApprovalRequest)\n }\n) {}\n\nexport class ToolApprovalGranted extends Schema.TaggedClass<ToolApprovalGranted>()(\n 'ToolApprovalGranted',\n {\n ...EventIdentity,\n toolCallId: Schema.String,\n response: Schema.optional(ToolApprovalResponse)\n }\n) {}\n\nexport class ToolApprovalDenied extends Schema.TaggedClass<ToolApprovalDenied>()(\n 'ToolApprovalDenied',\n {\n ...EventIdentity,\n toolCallId: Schema.String,\n reason: Schema.String,\n response: Schema.optional(ToolApprovalResponse)\n }\n) {}\n\nexport class QuestionRequested extends Schema.TaggedClass<QuestionRequested>()(\n 'QuestionRequested',\n {\n ...EventIdentity,\n request: QuestionRequest\n }\n) {}\n\nexport class QuestionAnswered extends Schema.TaggedClass<QuestionAnswered>()('QuestionAnswered', {\n ...EventIdentity,\n response: QuestionResponse\n}) {}\n\nexport class QuestionCancelled extends Schema.TaggedClass<QuestionCancelled>()(\n 'QuestionCancelled',\n {\n ...EventIdentity,\n response: QuestionResponse\n }\n) {}\n\nexport class LLMStreamEnd extends Schema.TaggedClass<LLMStreamEnd>()('LLMStreamEnd', {\n ...EventIdentity,\n turn: Schema.Number\n}) {}\n\nexport class AssistantMessageEvent extends Schema.TaggedClass<AssistantMessageEvent>()(\n 'AssistantMessage',\n {\n ...EventIdentity,\n message: AssistantAgentMessage\n }\n) {}\n\nexport class ToolExecutionStarted extends Schema.TaggedClass<ToolExecutionStarted>()(\n 'ToolExecutionStarted',\n {\n ...EventIdentity,\n call: ToolCall\n }\n) {}\n\nexport class ToolExecutionCompleted extends Schema.TaggedClass<ToolExecutionCompleted>()(\n 'ToolExecutionCompleted',\n {\n ...EventIdentity,\n call: ToolCall,\n result: ToolResult\n }\n) {}\n\nexport class ToolExecutionError extends Schema.TaggedClass<ToolExecutionError>()(\n 'ToolExecutionError',\n {\n ...EventIdentity,\n call: ToolCall,\n message: Schema.String,\n code: AgentErrorCode\n }\n) {}\n\nexport class ProviderToolResult extends Schema.TaggedClass<ProviderToolResult>()(\n 'ProviderToolResult',\n {\n ...EventIdentity,\n call: ToolCall,\n result: ToolResult\n }\n) {}\n\nexport class SubagentStarted extends Schema.TaggedClass<SubagentStarted>()('SubagentStarted', {\n ...EventIdentity,\n parentToolCallId: NonEmptyTrimmedString,\n subagentRunId: NonEmptyTrimmedString,\n subagentType: NonEmptyTrimmedString,\n description: Schema.String,\n model: Schema.String\n}) {}\n\nexport class SubagentCompleted extends Schema.TaggedClass<SubagentCompleted>()(\n 'SubagentCompleted',\n {\n ...EventIdentity,\n parentToolCallId: NonEmptyTrimmedString,\n subagentRunId: NonEmptyTrimmedString,\n subagentType: NonEmptyTrimmedString,\n description: Schema.String,\n model: Schema.String,\n status: SubagentStatus,\n durationMs: Schema.Number,\n summary: Schema.optional(Schema.String)\n }\n) {}\n\nexport const makeSubagentRunId = (parentToolCallId: string) => `subagent:${parentToolCallId}`\n\nconst questionAnswerValue = (answer: QuestionAnswer) =>\n QuestionAnswer.make({\n questionId: answer.questionId,\n ...(answer.optionIds === undefined ? {} : { optionIds: [...answer.optionIds] }),\n ...(answer.customAnswer === undefined ? {} : { customAnswer: answer.customAnswer })\n })\n\nconst questionResponseValue = (response: QuestionResponse) =>\n QuestionResponse.make({\n requestId: response.requestId,\n toolCallId: response.toolCallId,\n outcome: response.outcome,\n source: response.source,\n ...(response.answers === undefined\n ? {}\n : { answers: response.answers.map(answer => questionAnswerValue(answer)) }),\n ...(response.reason === undefined ? {} : { reason: response.reason })\n })\n\nconst toolApprovalResponseValue = (response: ToolApprovalResponse) =>\n ToolApprovalResponse.make({\n requestId: response.requestId,\n toolCallId: response.toolCallId,\n decision: response.decision,\n source: response.source,\n ...(response.reason === undefined ? {} : { reason: response.reason })\n })\n\nexport const hitlResponseEvent = (response: HitlResponse): AgentEvent => {\n switch (response._tag) {\n case 'QuestionResponse': {\n const responseValue = questionResponseValue(response)\n\n return response.outcome === 'answered'\n ? QuestionAnswered.make({ response: responseValue })\n : QuestionCancelled.make({ response: responseValue })\n }\n case 'ToolApprovalResponse': {\n const responseValue = toolApprovalResponseValue(response)\n\n return response.decision === 'approved'\n ? ToolApprovalGranted.make({ toolCallId: response.toolCallId, response: responseValue })\n : ToolApprovalDenied.make({\n toolCallId: response.toolCallId,\n reason: response.reason ?? 'Denied by user',\n response: responseValue\n })\n }\n }\n}\n\nexport const AgentEvent = Schema.Union([\n AgentStart,\n AgentError,\n AgentEnd,\n AgentAwaitingInput,\n UsageUpdate,\n AgentRetry,\n CompactionStart,\n CompactionEnd,\n TurnStart,\n TurnEnd,\n LLMStreamStart,\n LLMTextDelta,\n LLMReasoningDelta,\n ToolInputStart,\n ToolInputDelta,\n ToolInputEnd,\n LLMStreamEnd,\n AssistantMessageEvent,\n ToolApprovalRequested,\n ToolApprovalGranted,\n ToolApprovalDenied,\n QuestionRequested,\n QuestionAnswered,\n QuestionCancelled,\n ToolExecutionStarted,\n ToolExecutionCompleted,\n ToolExecutionError,\n ProviderToolResult,\n SubagentStarted,\n SubagentCompleted\n])\nexport type AgentEvent = typeof AgentEvent.Type\n\nexport type TerminalAgentEvent = Extract<\n AgentEvent,\n { readonly _tag: 'AgentEnd' | 'AgentError' | 'AgentAwaitingInput' }\n>\n\nexport const isTerminalAgentEvent = (event: AgentEvent): event is TerminalAgentEvent =>\n event._tag === 'AgentEnd' || event._tag === 'AgentError' || event._tag === 'AgentAwaitingInput'\n"],"mappings":"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"}
1
+ {"version":3,"file":"event.mjs","names":[],"sources":["../../src/protocol/event.ts"],"sourcesContent":["import * as Schema from 'effect/Schema'\nimport { AssistantAgentMessage, AgentMessage, UserMessage } from './message.ts'\nimport {\n HitlRequest,\n QuestionAnswer,\n QuestionRequest,\n QuestionResponse,\n ToolApprovalRequest,\n ToolApprovalResponse,\n ToolCall,\n ToolResult,\n type HitlResponse\n} from './tool.ts'\nimport { AgentUsage } from './usage.ts'\n\nconst NonEmptyTrimmedString = Schema.Trimmed.pipe(Schema.check(Schema.isNonEmpty()))\n\nconst EventIdentity = {\n eventId: Schema.optional(NonEmptyTrimmedString),\n createdAtMs: Schema.optional(Schema.Number)\n}\n\nexport const SubagentStatus = Schema.Literals(['running', 'completed', 'error'])\nexport type SubagentStatus = typeof SubagentStatus.Type\n\nexport const AgentErrorCode = Schema.Literals([\n 'validation_error',\n 'provider_error',\n 'rate_limit',\n 'overloaded',\n 'context_overflow',\n 'invalid_response',\n 'tool_error',\n 'tool_denied',\n 'tool_timeout',\n 'store_error',\n 'aborted',\n 'session_not_found',\n 'conflict',\n 'unknown'\n])\nexport type AgentErrorCode = typeof AgentErrorCode.Type\n\nexport const ProviderFailureKind = Schema.Literals([\n 'rate_limit',\n 'overloaded',\n 'server_error',\n 'network',\n 'stream',\n 'auth',\n 'context_overflow',\n 'invalid_response',\n 'unknown'\n])\nexport type ProviderFailureKind = typeof ProviderFailureKind.Type\n\nexport class ProviderErrorInfo extends Schema.Class<ProviderErrorInfo>('ProviderErrorInfo')({\n provider: NonEmptyTrimmedString,\n kind: ProviderFailureKind,\n status: Schema.optional(Schema.Number),\n providerCode: Schema.optional(Schema.String),\n retryAfterMs: Schema.optional(Schema.Number)\n}) {}\n\nexport class AgentStart extends Schema.TaggedClass<AgentStart>()('AgentStart', {\n ...EventIdentity\n}) {}\n\nexport class AgentError extends Schema.TaggedClass<AgentError>()('AgentError', {\n ...EventIdentity,\n code: AgentErrorCode,\n message: Schema.String,\n retryable: Schema.Boolean,\n provider: Schema.optional(ProviderErrorInfo)\n}) {}\n\nexport class AgentEnd extends Schema.TaggedClass<AgentEnd>()('AgentEnd', {\n ...EventIdentity,\n messages: Schema.Array(AgentMessage),\n turns: Schema.Number,\n usage: AgentUsage\n}) {}\n\nexport class AgentAwaitingInput extends Schema.TaggedClass<AgentAwaitingInput>()(\n 'AgentAwaitingInput',\n {\n ...EventIdentity,\n requests: Schema.NonEmptyArray(HitlRequest),\n messages: Schema.Array(AgentMessage),\n turns: Schema.Number,\n usage: AgentUsage\n }\n) {}\n\nexport class UsageUpdate extends Schema.TaggedClass<UsageUpdate>()('UsageUpdate', {\n ...EventIdentity,\n usage: AgentUsage\n}) {}\n\nexport class AgentRetry extends Schema.TaggedClass<AgentRetry>()('AgentRetry', {\n ...EventIdentity,\n attempt: Schema.Number,\n reason: AgentErrorCode,\n delayMs: Schema.Number,\n message: Schema.String,\n provider: Schema.optional(ProviderErrorInfo)\n}) {}\n\nexport class CompactionStart extends Schema.TaggedClass<CompactionStart>()('CompactionStart', {\n ...EventIdentity,\n strategy: Schema.String\n}) {}\n\nexport class CompactionEnd extends Schema.TaggedClass<CompactionEnd>()('CompactionEnd', {\n ...EventIdentity,\n strategy: Schema.String,\n beforeTokens: Schema.optional(Schema.Number),\n afterTokens: Schema.optional(Schema.Number)\n}) {}\n\nexport class TurnStart extends Schema.TaggedClass<TurnStart>()('TurnStart', {\n ...EventIdentity,\n turn: Schema.Number\n}) {}\n\nexport class TurnEnd extends Schema.TaggedClass<TurnEnd>()('TurnEnd', {\n ...EventIdentity,\n turn: Schema.Number,\n reason: Schema.Literals(['stop', 'tool_use'])\n}) {}\n\nexport class LLMStreamStart extends Schema.TaggedClass<LLMStreamStart>()('LLMStreamStart', {\n ...EventIdentity,\n turn: Schema.Number\n}) {}\n\nexport class LLMTextDelta extends Schema.TaggedClass<LLMTextDelta>()('LLMTextDelta', {\n ...EventIdentity,\n text: Schema.String,\n textSoFar: Schema.optional(Schema.String)\n}) {}\n\nexport class LLMReasoningDelta extends Schema.TaggedClass<LLMReasoningDelta>()(\n 'LLMReasoningDelta',\n {\n ...EventIdentity,\n text: Schema.String,\n reasoningSoFar: Schema.optional(Schema.String)\n }\n) {}\n\nexport class ToolInputStart extends Schema.TaggedClass<ToolInputStart>()('ToolInputStart', {\n ...EventIdentity,\n id: Schema.String,\n name: Schema.optional(Schema.String)\n}) {}\n\nexport class ToolInputDelta extends Schema.TaggedClass<ToolInputDelta>()('ToolInputDelta', {\n ...EventIdentity,\n id: Schema.String,\n delta: Schema.String\n}) {}\n\nexport class ToolInputEnd extends Schema.TaggedClass<ToolInputEnd>()('ToolInputEnd', {\n ...EventIdentity,\n call: ToolCall\n}) {}\n\nexport class ToolApprovalRequested extends Schema.TaggedClass<ToolApprovalRequested>()(\n 'ToolApprovalRequested',\n {\n ...EventIdentity,\n call: ToolCall,\n request: Schema.optional(ToolApprovalRequest)\n }\n) {}\n\nexport class ToolApprovalGranted extends Schema.TaggedClass<ToolApprovalGranted>()(\n 'ToolApprovalGranted',\n {\n ...EventIdentity,\n toolCallId: Schema.String,\n response: Schema.optional(ToolApprovalResponse)\n }\n) {}\n\nexport class ToolApprovalDenied extends Schema.TaggedClass<ToolApprovalDenied>()(\n 'ToolApprovalDenied',\n {\n ...EventIdentity,\n toolCallId: Schema.String,\n reason: Schema.String,\n response: Schema.optional(ToolApprovalResponse)\n }\n) {}\n\nexport class QuestionRequested extends Schema.TaggedClass<QuestionRequested>()(\n 'QuestionRequested',\n {\n ...EventIdentity,\n request: QuestionRequest\n }\n) {}\n\nexport class QuestionAnswered extends Schema.TaggedClass<QuestionAnswered>()('QuestionAnswered', {\n ...EventIdentity,\n response: QuestionResponse\n}) {}\n\nexport class QuestionCancelled extends Schema.TaggedClass<QuestionCancelled>()(\n 'QuestionCancelled',\n {\n ...EventIdentity,\n response: QuestionResponse\n }\n) {}\n\nexport class LLMStreamEnd extends Schema.TaggedClass<LLMStreamEnd>()('LLMStreamEnd', {\n ...EventIdentity,\n turn: Schema.Number\n}) {}\n\nexport class UserMessageEvent extends Schema.TaggedClass<UserMessageEvent>()('UserMessage', {\n ...EventIdentity,\n message: UserMessage\n}) {}\n\nexport class AssistantMessageEvent extends Schema.TaggedClass<AssistantMessageEvent>()(\n 'AssistantMessage',\n {\n ...EventIdentity,\n message: AssistantAgentMessage\n }\n) {}\n\nexport class ToolExecutionStarted extends Schema.TaggedClass<ToolExecutionStarted>()(\n 'ToolExecutionStarted',\n {\n ...EventIdentity,\n call: ToolCall\n }\n) {}\n\nexport class ToolExecutionCompleted extends Schema.TaggedClass<ToolExecutionCompleted>()(\n 'ToolExecutionCompleted',\n {\n ...EventIdentity,\n call: ToolCall,\n result: ToolResult\n }\n) {}\n\nexport class ToolExecutionError extends Schema.TaggedClass<ToolExecutionError>()(\n 'ToolExecutionError',\n {\n ...EventIdentity,\n call: ToolCall,\n message: Schema.String,\n code: AgentErrorCode\n }\n) {}\n\nexport class ProviderToolResult extends Schema.TaggedClass<ProviderToolResult>()(\n 'ProviderToolResult',\n {\n ...EventIdentity,\n call: ToolCall,\n result: ToolResult\n }\n) {}\n\nexport class SubagentStarted extends Schema.TaggedClass<SubagentStarted>()('SubagentStarted', {\n ...EventIdentity,\n parentToolCallId: NonEmptyTrimmedString,\n subagentRunId: NonEmptyTrimmedString,\n subagentType: NonEmptyTrimmedString,\n description: Schema.String,\n model: Schema.String\n}) {}\n\nexport class SubagentCompleted extends Schema.TaggedClass<SubagentCompleted>()(\n 'SubagentCompleted',\n {\n ...EventIdentity,\n parentToolCallId: NonEmptyTrimmedString,\n subagentRunId: NonEmptyTrimmedString,\n subagentType: NonEmptyTrimmedString,\n description: Schema.String,\n model: Schema.String,\n status: SubagentStatus,\n durationMs: Schema.Number,\n summary: Schema.optional(Schema.String)\n }\n) {}\n\nexport const makeSubagentRunId = (parentToolCallId: string) => `subagent:${parentToolCallId}`\n\nconst questionAnswerValue = (answer: QuestionAnswer) =>\n QuestionAnswer.make({\n questionId: answer.questionId,\n ...(answer.optionIds === undefined ? {} : { optionIds: [...answer.optionIds] }),\n ...(answer.customAnswer === undefined ? {} : { customAnswer: answer.customAnswer })\n })\n\nconst questionResponseValue = (response: QuestionResponse) =>\n QuestionResponse.make({\n requestId: response.requestId,\n toolCallId: response.toolCallId,\n outcome: response.outcome,\n source: response.source,\n ...(response.answers === undefined\n ? {}\n : { answers: response.answers.map(answer => questionAnswerValue(answer)) }),\n ...(response.reason === undefined ? {} : { reason: response.reason })\n })\n\nconst toolApprovalResponseValue = (response: ToolApprovalResponse) =>\n ToolApprovalResponse.make({\n requestId: response.requestId,\n toolCallId: response.toolCallId,\n decision: response.decision,\n source: response.source,\n ...(response.reason === undefined ? {} : { reason: response.reason })\n })\n\nexport const hitlResponseEvent = (response: HitlResponse): AgentEvent => {\n switch (response._tag) {\n case 'QuestionResponse': {\n const responseValue = questionResponseValue(response)\n\n return response.outcome === 'answered'\n ? QuestionAnswered.make({ response: responseValue })\n : QuestionCancelled.make({ response: responseValue })\n }\n case 'ToolApprovalResponse': {\n const responseValue = toolApprovalResponseValue(response)\n\n return response.decision === 'approved'\n ? ToolApprovalGranted.make({ toolCallId: response.toolCallId, response: responseValue })\n : ToolApprovalDenied.make({\n toolCallId: response.toolCallId,\n reason: response.reason ?? 'Denied by user',\n response: responseValue\n })\n }\n }\n}\n\nexport const AgentEvent = Schema.Union([\n AgentStart,\n AgentError,\n AgentEnd,\n AgentAwaitingInput,\n UsageUpdate,\n AgentRetry,\n CompactionStart,\n CompactionEnd,\n TurnStart,\n TurnEnd,\n LLMStreamStart,\n LLMTextDelta,\n LLMReasoningDelta,\n ToolInputStart,\n ToolInputDelta,\n ToolInputEnd,\n LLMStreamEnd,\n UserMessageEvent,\n AssistantMessageEvent,\n ToolApprovalRequested,\n ToolApprovalGranted,\n ToolApprovalDenied,\n QuestionRequested,\n QuestionAnswered,\n QuestionCancelled,\n ToolExecutionStarted,\n ToolExecutionCompleted,\n ToolExecutionError,\n ProviderToolResult,\n SubagentStarted,\n SubagentCompleted\n])\nexport type AgentEvent = typeof AgentEvent.Type\n\nexport type TerminalAgentEvent = Extract<\n AgentEvent,\n { readonly _tag: 'AgentEnd' | 'AgentError' | 'AgentAwaitingInput' }\n>\n\nexport const isTerminalAgentEvent = (event: AgentEvent): event is TerminalAgentEvent =>\n event._tag === 'AgentEnd' || event._tag === 'AgentError' || event._tag === 'AgentAwaitingInput'\n"],"mappings":";;;;;AAeA,MAAM,wBAAwB,OAAO,QAAQ,KAAK,OAAO,MAAM,OAAO,WAAW,CAAC,CAAC;AAEnF,MAAM,gBAAgB;CACpB,SAAS,OAAO,SAAS,qBAAqB;CAC9C,aAAa,OAAO,SAAS,OAAO,MAAM;AAC5C;AAEA,MAAa,iBAAiB,OAAO,SAAS;CAAC;CAAW;CAAa;AAAO,CAAC;AAG/E,MAAa,iBAAiB,OAAO,SAAS;CAC5C;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAGD,MAAa,sBAAsB,OAAO,SAAS;CACjD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAGD,IAAa,oBAAb,cAAuC,OAAO,MAAyB,mBAAmB,EAAE;CAC1F,UAAU;CACV,MAAM;CACN,QAAQ,OAAO,SAAS,OAAO,MAAM;CACrC,cAAc,OAAO,SAAS,OAAO,MAAM;CAC3C,cAAc,OAAO,SAAS,OAAO,MAAM;AAC7C,CAAC,EAAE,CAAC;AAEJ,IAAa,aAAb,cAAgC,OAAO,YAAwB,EAAE,cAAc,EAC7E,GAAG,cACL,CAAC,EAAE,CAAC;AAEJ,IAAa,aAAb,cAAgC,OAAO,YAAwB,EAAE,cAAc;CAC7E,GAAG;CACH,MAAM;CACN,SAAS,OAAO;CAChB,WAAW,OAAO;CAClB,UAAU,OAAO,SAAS,iBAAiB;AAC7C,CAAC,EAAE,CAAC;AAEJ,IAAa,WAAb,cAA8B,OAAO,YAAsB,EAAE,YAAY;CACvE,GAAG;CACH,UAAU,OAAO,MAAM,YAAY;CACnC,OAAO,OAAO;CACd,OAAO;AACT,CAAC,EAAE,CAAC;AAEJ,IAAa,qBAAb,cAAwC,OAAO,YAAgC,EAC7E,sBACA;CACE,GAAG;CACH,UAAU,OAAO,cAAc,WAAW;CAC1C,UAAU,OAAO,MAAM,YAAY;CACnC,OAAO,OAAO;CACd,OAAO;AACT,CACF,EAAE,CAAC;AAEH,IAAa,cAAb,cAAiC,OAAO,YAAyB,EAAE,eAAe;CAChF,GAAG;CACH,OAAO;AACT,CAAC,EAAE,CAAC;AAEJ,IAAa,aAAb,cAAgC,OAAO,YAAwB,EAAE,cAAc;CAC7E,GAAG;CACH,SAAS,OAAO;CAChB,QAAQ;CACR,SAAS,OAAO;CAChB,SAAS,OAAO;CAChB,UAAU,OAAO,SAAS,iBAAiB;AAC7C,CAAC,EAAE,CAAC;AAEJ,IAAa,kBAAb,cAAqC,OAAO,YAA6B,EAAE,mBAAmB;CAC5F,GAAG;CACH,UAAU,OAAO;AACnB,CAAC,EAAE,CAAC;AAEJ,IAAa,gBAAb,cAAmC,OAAO,YAA2B,EAAE,iBAAiB;CACtF,GAAG;CACH,UAAU,OAAO;CACjB,cAAc,OAAO,SAAS,OAAO,MAAM;CAC3C,aAAa,OAAO,SAAS,OAAO,MAAM;AAC5C,CAAC,EAAE,CAAC;AAEJ,IAAa,YAAb,cAA+B,OAAO,YAAuB,EAAE,aAAa;CAC1E,GAAG;CACH,MAAM,OAAO;AACf,CAAC,EAAE,CAAC;AAEJ,IAAa,UAAb,cAA6B,OAAO,YAAqB,EAAE,WAAW;CACpE,GAAG;CACH,MAAM,OAAO;CACb,QAAQ,OAAO,SAAS,CAAC,QAAQ,UAAU,CAAC;AAC9C,CAAC,EAAE,CAAC;AAEJ,IAAa,iBAAb,cAAoC,OAAO,YAA4B,EAAE,kBAAkB;CACzF,GAAG;CACH,MAAM,OAAO;AACf,CAAC,EAAE,CAAC;AAEJ,IAAa,eAAb,cAAkC,OAAO,YAA0B,EAAE,gBAAgB;CACnF,GAAG;CACH,MAAM,OAAO;CACb,WAAW,OAAO,SAAS,OAAO,MAAM;AAC1C,CAAC,EAAE,CAAC;AAEJ,IAAa,oBAAb,cAAuC,OAAO,YAA+B,EAC3E,qBACA;CACE,GAAG;CACH,MAAM,OAAO;CACb,gBAAgB,OAAO,SAAS,OAAO,MAAM;AAC/C,CACF,EAAE,CAAC;AAEH,IAAa,iBAAb,cAAoC,OAAO,YAA4B,EAAE,kBAAkB;CACzF,GAAG;CACH,IAAI,OAAO;CACX,MAAM,OAAO,SAAS,OAAO,MAAM;AACrC,CAAC,EAAE,CAAC;AAEJ,IAAa,iBAAb,cAAoC,OAAO,YAA4B,EAAE,kBAAkB;CACzF,GAAG;CACH,IAAI,OAAO;CACX,OAAO,OAAO;AAChB,CAAC,EAAE,CAAC;AAEJ,IAAa,eAAb,cAAkC,OAAO,YAA0B,EAAE,gBAAgB;CACnF,GAAG;CACH,MAAM;AACR,CAAC,EAAE,CAAC;AAEJ,IAAa,wBAAb,cAA2C,OAAO,YAAmC,EACnF,yBACA;CACE,GAAG;CACH,MAAM;CACN,SAAS,OAAO,SAAS,mBAAmB;AAC9C,CACF,EAAE,CAAC;AAEH,IAAa,sBAAb,cAAyC,OAAO,YAAiC,EAC/E,uBACA;CACE,GAAG;CACH,YAAY,OAAO;CACnB,UAAU,OAAO,SAAS,oBAAoB;AAChD,CACF,EAAE,CAAC;AAEH,IAAa,qBAAb,cAAwC,OAAO,YAAgC,EAC7E,sBACA;CACE,GAAG;CACH,YAAY,OAAO;CACnB,QAAQ,OAAO;CACf,UAAU,OAAO,SAAS,oBAAoB;AAChD,CACF,EAAE,CAAC;AAEH,IAAa,oBAAb,cAAuC,OAAO,YAA+B,EAC3E,qBACA;CACE,GAAG;CACH,SAAS;AACX,CACF,EAAE,CAAC;AAEH,IAAa,mBAAb,cAAsC,OAAO,YAA8B,EAAE,oBAAoB;CAC/F,GAAG;CACH,UAAU;AACZ,CAAC,EAAE,CAAC;AAEJ,IAAa,oBAAb,cAAuC,OAAO,YAA+B,EAC3E,qBACA;CACE,GAAG;CACH,UAAU;AACZ,CACF,EAAE,CAAC;AAEH,IAAa,eAAb,cAAkC,OAAO,YAA0B,EAAE,gBAAgB;CACnF,GAAG;CACH,MAAM,OAAO;AACf,CAAC,EAAE,CAAC;AAEJ,IAAa,mBAAb,cAAsC,OAAO,YAA8B,EAAE,eAAe;CAC1F,GAAG;CACH,SAAS;AACX,CAAC,EAAE,CAAC;AAEJ,IAAa,wBAAb,cAA2C,OAAO,YAAmC,EACnF,oBACA;CACE,GAAG;CACH,SAAS;AACX,CACF,EAAE,CAAC;AAEH,IAAa,uBAAb,cAA0C,OAAO,YAAkC,EACjF,wBACA;CACE,GAAG;CACH,MAAM;AACR,CACF,EAAE,CAAC;AAEH,IAAa,yBAAb,cAA4C,OAAO,YAAoC,EACrF,0BACA;CACE,GAAG;CACH,MAAM;CACN,QAAQ;AACV,CACF,EAAE,CAAC;AAEH,IAAa,qBAAb,cAAwC,OAAO,YAAgC,EAC7E,sBACA;CACE,GAAG;CACH,MAAM;CACN,SAAS,OAAO;CAChB,MAAM;AACR,CACF,EAAE,CAAC;AAEH,IAAa,qBAAb,cAAwC,OAAO,YAAgC,EAC7E,sBACA;CACE,GAAG;CACH,MAAM;CACN,QAAQ;AACV,CACF,EAAE,CAAC;AAEH,IAAa,kBAAb,cAAqC,OAAO,YAA6B,EAAE,mBAAmB;CAC5F,GAAG;CACH,kBAAkB;CAClB,eAAe;CACf,cAAc;CACd,aAAa,OAAO;CACpB,OAAO,OAAO;AAChB,CAAC,EAAE,CAAC;AAEJ,IAAa,oBAAb,cAAuC,OAAO,YAA+B,EAC3E,qBACA;CACE,GAAG;CACH,kBAAkB;CAClB,eAAe;CACf,cAAc;CACd,aAAa,OAAO;CACpB,OAAO,OAAO;CACd,QAAQ;CACR,YAAY,OAAO;CACnB,SAAS,OAAO,SAAS,OAAO,MAAM;AACxC,CACF,EAAE,CAAC;AAEH,MAAa,qBAAqB,qBAA6B,YAAY;AAE3E,MAAM,uBAAuB,WAC3B,eAAe,KAAK;CAClB,YAAY,OAAO;CACnB,GAAI,OAAO,cAAc,KAAA,IAAY,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,OAAO,SAAS,EAAE;CAC7E,GAAI,OAAO,iBAAiB,KAAA,IAAY,CAAC,IAAI,EAAE,cAAc,OAAO,aAAa;AACnF,CAAC;AAEH,MAAM,yBAAyB,aAC7B,iBAAiB,KAAK;CACpB,WAAW,SAAS;CACpB,YAAY,SAAS;CACrB,SAAS,SAAS;CAClB,QAAQ,SAAS;CACjB,GAAI,SAAS,YAAY,KAAA,IACrB,CAAC,IACD,EAAE,SAAS,SAAS,QAAQ,KAAI,WAAU,oBAAoB,MAAM,CAAC,EAAE;CAC3E,GAAI,SAAS,WAAW,KAAA,IAAY,CAAC,IAAI,EAAE,QAAQ,SAAS,OAAO;AACrE,CAAC;AAEH,MAAM,6BAA6B,aACjC,qBAAqB,KAAK;CACxB,WAAW,SAAS;CACpB,YAAY,SAAS;CACrB,UAAU,SAAS;CACnB,QAAQ,SAAS;CACjB,GAAI,SAAS,WAAW,KAAA,IAAY,CAAC,IAAI,EAAE,QAAQ,SAAS,OAAO;AACrE,CAAC;AAEH,MAAa,qBAAqB,aAAuC;CACvE,QAAQ,SAAS,MAAjB;EACE,KAAK,oBAAoB;GACvB,MAAM,gBAAgB,sBAAsB,QAAQ;GAEpD,OAAO,SAAS,YAAY,aACxB,iBAAiB,KAAK,EAAE,UAAU,cAAc,CAAC,IACjD,kBAAkB,KAAK,EAAE,UAAU,cAAc,CAAC;EACxD;EACA,KAAK,wBAAwB;GAC3B,MAAM,gBAAgB,0BAA0B,QAAQ;GAExD,OAAO,SAAS,aAAa,aACzB,oBAAoB,KAAK;IAAE,YAAY,SAAS;IAAY,UAAU;GAAc,CAAC,IACrF,mBAAmB,KAAK;IACtB,YAAY,SAAS;IACrB,QAAQ,SAAS,UAAU;IAC3B,UAAU;GACZ,CAAC;EACP;CACF;AACF;AAEA,MAAa,aAAa,OAAO,MAAM;CACrC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAQD,MAAa,wBAAwB,UACnC,MAAM,SAAS,cAAc,MAAM,SAAS,gBAAgB,MAAM,SAAS"}
@@ -3,12 +3,12 @@ import { AttachmentContentPart, AttachmentSource, AttachmentSourceResolver, Audi
3
3
  import { ErrorToolResultInput, HitlRequest, HitlResponse, HitlResponseSource, PlainHitlResponse, PlainQuestionAnswer, PlainQuestionResponse, PlainToolApprovalResponse, QuestionAnswer, QuestionOption, QuestionPrompt, QuestionRequest, QuestionResponse, QuestionResponseOutcome, QuestionResponseStructuredContent, QuestionToolParams, ToolApprovalDecision, ToolApprovalMode, ToolApprovalPolicy, ToolApprovalRequest, ToolApprovalResponse, ToolCall, ToolDef, ToolResult, formatQuestionResponseContent, makeErrorToolResult, plainHitlResponse, plainQuestionAnswer, plainQuestionResponse, plainToolApprovalResponse, questionResponseStructuredContent } from "./tool.mjs";
4
4
  import { AgentMessage, AssistantAgentMessage, AssistantPart, AssistantReasoningPart, AssistantTextPart, DanglingHostToolCall, HostToolCallPart, MessageAnnotations, MessageAuthor, MessageEnvelope, ProviderToolCallPart, ProviderToolResultPart, RepairDanglingHostToolCallsOptions, ToolResultMessage, TranscriptInvariantValidation, UserMessage, assistantContent, assistantHostToolCalls, assistantReasoningText, danglingHostToolCalls, messageContextText, prependMessageContextToContent, repairDanglingHostToolCalls, validateNoDanglingHostToolCalls } from "./message.mjs";
5
5
  import { AgentInputUsage, AgentOutputUsage, AgentUsage, addAgentUsage, zeroAgentUsage } from "./usage.mjs";
6
- import { AgentAwaitingInput, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderErrorInfo, ProviderFailureKind, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, SubagentStatus, TerminalAgentEvent, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, hitlResponseEvent, isTerminalAgentEvent, makeSubagentRunId } from "./event.mjs";
6
+ import { AgentAwaitingInput, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderErrorInfo, ProviderFailureKind, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, SubagentStatus, TerminalAgentEvent, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, UserMessageEvent, hitlResponseEvent, isTerminalAgentEvent, makeSubagentRunId } from "./event.mjs";
7
7
  import { AgentReasoningEffort } from "./reasoning.mjs";
8
8
  import { AgentWebSocketClientMessage, AgentWebSocketServerMessage, QuestionResponseInput, SessionSnapshot, ToolApprovalResponseInput, UserInput } from "./session.mjs";
9
9
 
10
10
  //#region src/protocol/index.d.ts
11
11
  type MessageId = string;
12
12
  //#endregion
13
- export { AgentAwaitingInput, AgentContentCapabilities, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentInputUsage, AgentMessage, AgentModelCapabilities, AgentOutputUsage, AgentReasoningEffort, AgentRetry, AgentStart, AgentUsage, AgentWebSocketClientMessage, AgentWebSocketServerMessage, AssistantAgentMessage, AssistantMessageEvent, AssistantPart, AssistantReasoningPart, AssistantTextPart, type AttachmentContentPart, AttachmentSource, type AttachmentSourceResolver, AudioPart, CompactionEnd, CompactionStart, Content, ContentPart, type DanglingHostToolCall, DocumentPart, type ErrorToolResultInput, HitlRequest, HitlResponse, HitlResponseSource, HostToolCallPart, ImagePart, InlineBase64AttachmentSource, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, MessageAnnotations, MessageAuthor, type MessageEnvelope, MessageId, type PlainHitlResponse, type PlainQuestionAnswer, type PlainQuestionResponse, type PlainToolApprovalResponse, ProviderErrorInfo, ProviderFailureKind, ProviderToolCallPart, ProviderToolResult, ProviderToolResultPart, QuestionAnswer, QuestionAnswered, QuestionCancelled, QuestionOption, QuestionPrompt, QuestionRequest, QuestionRequested, QuestionResponse, QuestionResponseInput, QuestionResponseOutcome, type QuestionResponseStructuredContent, QuestionToolParams, RefAttachmentSource, type RepairDanglingHostToolCallsOptions, SessionSnapshot, SubagentCompleted, SubagentStarted, SubagentStatus, type TerminalAgentEvent, TextPart, ToolApprovalDecision, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalMode, ToolApprovalPolicy, ToolApprovalRequest, ToolApprovalRequested, ToolApprovalResponse, ToolApprovalResponseInput, ToolCall, ToolDef, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, ToolResult, ToolResultMessage, type TranscriptInvariantValidation, TurnEnd, TurnStart, UrlAttachmentSource, UsageUpdate, UserInput, UserMessage, addAgentUsage, appendTextToContent, assistantContent, assistantHostToolCalls, assistantReasoningText, attachmentSourceBase64, attachmentSourceDataUrl, attachmentSourcePreview, attachmentSourceText, attachmentSourceUrl, contentPartPreview, contentPartText, contentParts, contentPreview, contentText, danglingHostToolCalls, documentPartFromText, formatQuestionResponseContent, hitlResponseEvent, inferTextDocumentMimeType, inlineBase64AttachmentSource, inlineBase64Source, isContentEmpty, isTerminalAgentEvent, isTextDocumentMimeType, makeErrorToolResult, makeSubagentRunId, messageContextText, plainHitlResponse, plainQuestionAnswer, plainQuestionResponse, plainToolApprovalResponse, prependMessageContextToContent, questionResponseStructuredContent, refAttachmentSource, repairDanglingHostToolCalls, replaceLoneSurrogates, replaceLoneSurrogatesDeep, resolveContentAttachmentSources, textDocumentMimeTypeFromFilename, textImageDocumentModelCapabilities, textImageModelCapabilities, textOnlyModelCapabilities, textToBase64Utf8, urlAttachmentSource, validateNoDanglingHostToolCalls, zeroAgentUsage };
13
+ export { AgentAwaitingInput, AgentContentCapabilities, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentInputUsage, AgentMessage, AgentModelCapabilities, AgentOutputUsage, AgentReasoningEffort, AgentRetry, AgentStart, AgentUsage, AgentWebSocketClientMessage, AgentWebSocketServerMessage, AssistantAgentMessage, AssistantMessageEvent, AssistantPart, AssistantReasoningPart, AssistantTextPart, type AttachmentContentPart, AttachmentSource, type AttachmentSourceResolver, AudioPart, CompactionEnd, CompactionStart, Content, ContentPart, type DanglingHostToolCall, DocumentPart, type ErrorToolResultInput, HitlRequest, HitlResponse, HitlResponseSource, HostToolCallPart, ImagePart, InlineBase64AttachmentSource, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, MessageAnnotations, MessageAuthor, type MessageEnvelope, MessageId, type PlainHitlResponse, type PlainQuestionAnswer, type PlainQuestionResponse, type PlainToolApprovalResponse, ProviderErrorInfo, ProviderFailureKind, ProviderToolCallPart, ProviderToolResult, ProviderToolResultPart, QuestionAnswer, QuestionAnswered, QuestionCancelled, QuestionOption, QuestionPrompt, QuestionRequest, QuestionRequested, QuestionResponse, QuestionResponseInput, QuestionResponseOutcome, type QuestionResponseStructuredContent, QuestionToolParams, RefAttachmentSource, type RepairDanglingHostToolCallsOptions, SessionSnapshot, SubagentCompleted, SubagentStarted, SubagentStatus, type TerminalAgentEvent, TextPart, ToolApprovalDecision, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalMode, ToolApprovalPolicy, ToolApprovalRequest, ToolApprovalRequested, ToolApprovalResponse, ToolApprovalResponseInput, ToolCall, ToolDef, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, ToolResult, ToolResultMessage, type TranscriptInvariantValidation, TurnEnd, TurnStart, UrlAttachmentSource, UsageUpdate, UserInput, UserMessage, UserMessageEvent, addAgentUsage, appendTextToContent, assistantContent, assistantHostToolCalls, assistantReasoningText, attachmentSourceBase64, attachmentSourceDataUrl, attachmentSourcePreview, attachmentSourceText, attachmentSourceUrl, contentPartPreview, contentPartText, contentParts, contentPreview, contentText, danglingHostToolCalls, documentPartFromText, formatQuestionResponseContent, hitlResponseEvent, inferTextDocumentMimeType, inlineBase64AttachmentSource, inlineBase64Source, isContentEmpty, isTerminalAgentEvent, isTextDocumentMimeType, makeErrorToolResult, makeSubagentRunId, messageContextText, plainHitlResponse, plainQuestionAnswer, plainQuestionResponse, plainToolApprovalResponse, prependMessageContextToContent, questionResponseStructuredContent, refAttachmentSource, repairDanglingHostToolCalls, replaceLoneSurrogates, replaceLoneSurrogatesDeep, resolveContentAttachmentSources, textDocumentMimeTypeFromFilename, textImageDocumentModelCapabilities, textImageModelCapabilities, textOnlyModelCapabilities, textToBase64Utf8, urlAttachmentSource, validateNoDanglingHostToolCalls, zeroAgentUsage };
14
14
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/protocol/index.ts"],"mappings":";;;;;;;;;;KAsKY,SAAA"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/protocol/index.ts"],"mappings":";;;;;;;;;;KAuKY,SAAA"}
@@ -3,7 +3,7 @@ import { AttachmentSource, AudioPart, Content, ContentPart, DocumentPart, ImageP
3
3
  import { HitlRequest, HitlResponse, HitlResponseSource, QuestionAnswer, QuestionOption, QuestionPrompt, QuestionRequest, QuestionResponse, QuestionResponseOutcome, QuestionToolParams, ToolApprovalDecision, ToolApprovalMode, ToolApprovalPolicy, ToolApprovalRequest, ToolApprovalResponse, ToolCall, ToolDef, ToolResult, formatQuestionResponseContent, makeErrorToolResult, plainHitlResponse, plainQuestionAnswer, plainQuestionResponse, plainToolApprovalResponse, questionResponseStructuredContent } from "./tool.mjs";
4
4
  import { AgentMessage, AssistantAgentMessage, AssistantPart, AssistantReasoningPart, AssistantTextPart, HostToolCallPart, MessageAnnotations, MessageAuthor, ProviderToolCallPart, ProviderToolResultPart, ToolResultMessage, UserMessage, assistantContent, assistantHostToolCalls, assistantReasoningText, danglingHostToolCalls, messageContextText, prependMessageContextToContent, repairDanglingHostToolCalls, validateNoDanglingHostToolCalls } from "./message.mjs";
5
5
  import { AgentInputUsage, AgentOutputUsage, AgentUsage, addAgentUsage, zeroAgentUsage } from "./usage.mjs";
6
- import { AgentAwaitingInput, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderErrorInfo, ProviderFailureKind, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, SubagentStatus, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, hitlResponseEvent, isTerminalAgentEvent, makeSubagentRunId } from "./event.mjs";
6
+ import { AgentAwaitingInput, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderErrorInfo, ProviderFailureKind, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, SubagentStatus, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, UserMessageEvent, hitlResponseEvent, isTerminalAgentEvent, makeSubagentRunId } from "./event.mjs";
7
7
  import { AgentReasoningEffort } from "./reasoning.mjs";
8
8
  import { AgentWebSocketClientMessage, AgentWebSocketServerMessage, QuestionResponseInput, SessionSnapshot, ToolApprovalResponseInput, UserInput } from "./session.mjs";
9
- export { AgentAwaitingInput, AgentContentCapabilities, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentInputUsage, AgentMessage, AgentModelCapabilities, AgentOutputUsage, AgentReasoningEffort, AgentRetry, AgentStart, AgentUsage, AgentWebSocketClientMessage, AgentWebSocketServerMessage, AssistantAgentMessage, AssistantMessageEvent, AssistantPart, AssistantReasoningPart, AssistantTextPart, AttachmentSource, AudioPart, CompactionEnd, CompactionStart, Content, ContentPart, DocumentPart, HitlRequest, HitlResponse, HitlResponseSource, HostToolCallPart, ImagePart, InlineBase64AttachmentSource, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, MessageAnnotations, MessageAuthor, ProviderErrorInfo, ProviderFailureKind, ProviderToolCallPart, ProviderToolResult, ProviderToolResultPart, QuestionAnswer, QuestionAnswered, QuestionCancelled, QuestionOption, QuestionPrompt, QuestionRequest, QuestionRequested, QuestionResponse, QuestionResponseInput, QuestionResponseOutcome, QuestionToolParams, RefAttachmentSource, SessionSnapshot, SubagentCompleted, SubagentStarted, SubagentStatus, TextPart, ToolApprovalDecision, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalMode, ToolApprovalPolicy, ToolApprovalRequest, ToolApprovalRequested, ToolApprovalResponse, ToolApprovalResponseInput, ToolCall, ToolDef, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, ToolResult, ToolResultMessage, TurnEnd, TurnStart, UrlAttachmentSource, UsageUpdate, UserInput, UserMessage, addAgentUsage, appendTextToContent, assistantContent, assistantHostToolCalls, assistantReasoningText, attachmentSourceBase64, attachmentSourceDataUrl, attachmentSourcePreview, attachmentSourceText, attachmentSourceUrl, contentPartPreview, contentPartText, contentParts, contentPreview, contentText, danglingHostToolCalls, documentPartFromText, formatQuestionResponseContent, hitlResponseEvent, inferTextDocumentMimeType, inlineBase64AttachmentSource, inlineBase64Source, isContentEmpty, isTerminalAgentEvent, isTextDocumentMimeType, makeErrorToolResult, makeSubagentRunId, messageContextText, plainHitlResponse, plainQuestionAnswer, plainQuestionResponse, plainToolApprovalResponse, prependMessageContextToContent, questionResponseStructuredContent, refAttachmentSource, repairDanglingHostToolCalls, replaceLoneSurrogates, replaceLoneSurrogatesDeep, resolveContentAttachmentSources, textDocumentMimeTypeFromFilename, textImageDocumentModelCapabilities, textImageModelCapabilities, textOnlyModelCapabilities, textToBase64Utf8, urlAttachmentSource, validateNoDanglingHostToolCalls, zeroAgentUsage };
9
+ export { AgentAwaitingInput, AgentContentCapabilities, AgentEnd, AgentError, AgentErrorCode, AgentEvent, AgentInputUsage, AgentMessage, AgentModelCapabilities, AgentOutputUsage, AgentReasoningEffort, AgentRetry, AgentStart, AgentUsage, AgentWebSocketClientMessage, AgentWebSocketServerMessage, AssistantAgentMessage, AssistantMessageEvent, AssistantPart, AssistantReasoningPart, AssistantTextPart, AttachmentSource, AudioPart, CompactionEnd, CompactionStart, Content, ContentPart, DocumentPart, HitlRequest, HitlResponse, HitlResponseSource, HostToolCallPart, ImagePart, InlineBase64AttachmentSource, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, MessageAnnotations, MessageAuthor, ProviderErrorInfo, ProviderFailureKind, ProviderToolCallPart, ProviderToolResult, ProviderToolResultPart, QuestionAnswer, QuestionAnswered, QuestionCancelled, QuestionOption, QuestionPrompt, QuestionRequest, QuestionRequested, QuestionResponse, QuestionResponseInput, QuestionResponseOutcome, QuestionToolParams, RefAttachmentSource, SessionSnapshot, SubagentCompleted, SubagentStarted, SubagentStatus, TextPart, ToolApprovalDecision, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalMode, ToolApprovalPolicy, ToolApprovalRequest, ToolApprovalRequested, ToolApprovalResponse, ToolApprovalResponseInput, ToolCall, ToolDef, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, ToolResult, ToolResultMessage, TurnEnd, TurnStart, UrlAttachmentSource, UsageUpdate, UserInput, UserMessage, UserMessageEvent, addAgentUsage, appendTextToContent, assistantContent, assistantHostToolCalls, assistantReasoningText, attachmentSourceBase64, attachmentSourceDataUrl, attachmentSourcePreview, attachmentSourceText, attachmentSourceUrl, contentPartPreview, contentPartText, contentParts, contentPreview, contentText, danglingHostToolCalls, documentPartFromText, formatQuestionResponseContent, hitlResponseEvent, inferTextDocumentMimeType, inlineBase64AttachmentSource, inlineBase64Source, isContentEmpty, isTerminalAgentEvent, isTextDocumentMimeType, makeErrorToolResult, makeSubagentRunId, messageContextText, plainHitlResponse, plainQuestionAnswer, plainQuestionResponse, plainToolApprovalResponse, prependMessageContextToContent, questionResponseStructuredContent, refAttachmentSource, repairDanglingHostToolCalls, replaceLoneSurrogates, replaceLoneSurrogatesDeep, resolveContentAttachmentSources, textDocumentMimeTypeFromFilename, textImageDocumentModelCapabilities, textImageModelCapabilities, textOnlyModelCapabilities, textToBase64Utf8, urlAttachmentSource, validateNoDanglingHostToolCalls, zeroAgentUsage };
@@ -1,6 +1,6 @@
1
1
  import { QuestionResponse, ToolApprovalResponse } from "./tool.mjs";
2
2
  import { AssistantAgentMessage, ToolResultMessage, UserMessage } from "./message.mjs";
3
- import { AgentAwaitingInput, AgentEnd, AgentError, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate } from "./event.mjs";
3
+ import { AgentAwaitingInput, AgentEnd, AgentError, AgentRetry, AgentStart, AssistantMessageEvent, CompactionEnd, CompactionStart, LLMReasoningDelta, LLMStreamEnd, LLMStreamStart, LLMTextDelta, ProviderToolResult, QuestionAnswered, QuestionCancelled, QuestionRequested, SubagentCompleted, SubagentStarted, ToolApprovalDenied, ToolApprovalGranted, ToolApprovalRequested, ToolExecutionCompleted, ToolExecutionError, ToolExecutionStarted, ToolInputDelta, ToolInputEnd, ToolInputStart, TurnEnd, TurnStart, UsageUpdate, UserMessageEvent } from "./event.mjs";
4
4
  import * as Schema from "effect/Schema";
5
5
 
6
6
  //#region src/protocol/session.d.ts
@@ -32,7 +32,7 @@ declare const QuestionResponseInput_base: Schema.Class<QuestionResponseInput, Sc
32
32
  declare class QuestionResponseInput extends QuestionResponseInput_base {}
33
33
  declare const AgentWebSocketClientMessage: Schema.Union<readonly [typeof UserInput, typeof ToolApprovalResponseInput, typeof QuestionResponseInput]>;
34
34
  type AgentWebSocketClientMessage = typeof AgentWebSocketClientMessage.Type;
35
- declare const AgentWebSocketServerMessage: Schema.Union<readonly [typeof SessionSnapshot, Schema.Union<readonly [typeof AgentStart, typeof AgentError, typeof AgentEnd, typeof AgentAwaitingInput, typeof UsageUpdate, typeof AgentRetry, typeof CompactionStart, typeof CompactionEnd, typeof TurnStart, typeof TurnEnd, typeof LLMStreamStart, typeof LLMTextDelta, typeof LLMReasoningDelta, typeof ToolInputStart, typeof ToolInputDelta, typeof ToolInputEnd, typeof LLMStreamEnd, typeof AssistantMessageEvent, typeof ToolApprovalRequested, typeof ToolApprovalGranted, typeof ToolApprovalDenied, typeof QuestionRequested, typeof QuestionAnswered, typeof QuestionCancelled, typeof ToolExecutionStarted, typeof ToolExecutionCompleted, typeof ToolExecutionError, typeof ProviderToolResult, typeof SubagentStarted, typeof SubagentCompleted]>]>;
35
+ declare const AgentWebSocketServerMessage: Schema.Union<readonly [typeof SessionSnapshot, Schema.Union<readonly [typeof AgentStart, typeof AgentError, typeof AgentEnd, typeof AgentAwaitingInput, typeof UsageUpdate, typeof AgentRetry, typeof CompactionStart, typeof CompactionEnd, typeof TurnStart, typeof TurnEnd, typeof LLMStreamStart, typeof LLMTextDelta, typeof LLMReasoningDelta, typeof ToolInputStart, typeof ToolInputDelta, typeof ToolInputEnd, typeof LLMStreamEnd, typeof UserMessageEvent, typeof AssistantMessageEvent, typeof ToolApprovalRequested, typeof ToolApprovalGranted, typeof ToolApprovalDenied, typeof QuestionRequested, typeof QuestionAnswered, typeof QuestionCancelled, typeof ToolExecutionStarted, typeof ToolExecutionCompleted, typeof ToolExecutionError, typeof ProviderToolResult, typeof SubagentStarted, typeof SubagentCompleted]>]>;
36
36
  type AgentWebSocketServerMessage = typeof AgentWebSocketServerMessage.Type;
37
37
  //#endregion
38
38
  export { AgentWebSocketClientMessage, AgentWebSocketServerMessage, QuestionResponseInput, SessionSnapshot, ToolApprovalResponseInput, UserInput };
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.mts","names":[],"sources":["../../src/protocol/session.ts"],"mappings":";;;;;;cAIkE,oBAAA;;;;cAErD,eAAA,SAAwB,oBAGnC;AAAA,cAAG,cAAA;;;;;;cAEQ,SAAA,SAAkB,cAK7B;AAAA,cAAG,8BAAA;;;;;;cAEQ,yBAAA,SAAkC,8BAQ9C;AAAA,cAAG,0BAAA;;;;;;cAES,qBAAA,SAA8B,0BAQ1C;AAAA,cAEY,2BAAA,EAA2B,MAAA,CAAA,KAAA,kBAAA,SAAA,SAAA,yBAAA,SAAA,qBAAA;AAAA,KAK5B,2BAAA,UAAqC,2BAAA,CAA4B,IAAI;AAAA,cAEpE,2BAAA,EAA2B,MAAA,CAAA,KAAA,kBAAA,eAAA,EAAA,MAAA,CAAA,KAAA,kBAAA,UAAA,SAAA,UAAA,SAAA,QAAA,SAAA,kBAAA,SAAA,WAAA,SAAA,UAAA,SAAA,eAAA,SAAA,aAAA,SAAA,SAAA,SAAA,OAAA,SAAA,cAAA,SAAA,YAAA,SAAA,iBAAA,SAAA,cAAA,SAAA,cAAA,SAAA,YAAA,SAAA,YAAA,SAAA,qBAAA,SAAA,qBAAA,SAAA,mBAAA,SAAA,kBAAA,SAAA,iBAAA,SAAA,gBAAA,SAAA,iBAAA,SAAA,oBAAA,SAAA,sBAAA,SAAA,kBAAA,SAAA,kBAAA,SAAA,eAAA,SAAA,iBAAA;AAAA,KAC5B,2BAAA,UAAqC,2BAAA,CAA4B,IAAI"}
1
+ {"version":3,"file":"session.d.mts","names":[],"sources":["../../src/protocol/session.ts"],"mappings":";;;;;;cAIkE,oBAAA;;;;cAErD,eAAA,SAAwB,oBAGnC;AAAA,cAAG,cAAA;;;;;;cAEQ,SAAA,SAAkB,cAK7B;AAAA,cAAG,8BAAA;;;;;;cAEQ,yBAAA,SAAkC,8BAQ9C;AAAA,cAAG,0BAAA;;;;;;cAES,qBAAA,SAA8B,0BAQ1C;AAAA,cAEY,2BAAA,EAA2B,MAAA,CAAA,KAAA,kBAAA,SAAA,SAAA,yBAAA,SAAA,qBAAA;AAAA,KAK5B,2BAAA,UAAqC,2BAAA,CAA4B,IAAI;AAAA,cAEpE,2BAAA,EAA2B,MAAA,CAAA,KAAA,kBAAA,eAAA,EAAA,MAAA,CAAA,KAAA,kBAAA,UAAA,SAAA,UAAA,SAAA,QAAA,SAAA,kBAAA,SAAA,WAAA,SAAA,UAAA,SAAA,eAAA,SAAA,aAAA,SAAA,SAAA,SAAA,OAAA,SAAA,cAAA,SAAA,YAAA,SAAA,iBAAA,SAAA,cAAA,SAAA,cAAA,SAAA,YAAA,SAAA,YAAA,SAAA,gBAAA,SAAA,qBAAA,SAAA,qBAAA,SAAA,mBAAA,SAAA,kBAAA,SAAA,iBAAA,SAAA,gBAAA,SAAA,iBAAA,SAAA,oBAAA,SAAA,sBAAA,SAAA,kBAAA,SAAA,kBAAA,SAAA,eAAA,SAAA,iBAAA;AAAA,KAC5B,2BAAA,UAAqC,2BAAA,CAA4B,IAAI"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-core.d.mts","names":[],"sources":["../../src/react/chat-core.ts"],"mappings":";;;;;KA8BY,cAAA;AAAA,KAEA,cAAA;EAAA,SACD,MAAA,EAAQ,cAAA;EAAA,SACR,KAAA;EAAA,SACA,SAAA,EAAW,UAAA;EAAA,SACX,SAAA,EAAW,UAAA;EAAA,SACX,YAAA,EAAc,aAAA,CAAc,gBAAA;EAAA,SAC5B,aAAA,EAAe,aAAA,CAAc,qBAAA;EAAA,SAC7B,YAAA,EAAc,aAAA;AAAA;AAAA,KAGb,6BAAA;EAAA,SACD,YAAA,EAAc,aAAA,CAAc,gBAAA;EAAA,SAC5B,YAAA,EAAc,aAAA;AAAA;AAAA,cAGZ,qBAAA,EAAuB,cAQnC;AAAA,cAmBY,iCAAA,GACX,YAAA,GAAc,aAAA,CAAc,gBAAA,MAC3B,6BAAA;;;;;;;cAWU,+BAAA,GACX,KAAA,EAAO,6BAAA,EACP,KAAA,EAAO,UAAA,EACP,OAAA,GAAS,oCAAA,KACR,6BAAA;AAAA,KAWS,eAAA;EAAA,SACG,IAAA;EAAA,SAAiC,OAAA,EAAS,YAAA;AAAA;EAAA,SAC1C,IAAA;EAAA,SAAyB,OAAA,EAAS,WAAA;AAAA;EAAA,SAClC,IAAA;EAAA,SAAgC,OAAA,EAAS,YAAA;AAAA;EAAA,SACzC,IAAA;EAAA,SAAqC,QAAA,EAAU,YAAA;AAAA;EAAA,SAC/C,IAAA;EAAA,SAA6B,SAAA;AAAA;EAAA,SAC7B,IAAA;EAAA,SAAiC,SAAA;AAAA;EAAA,SACjC,IAAA;EAAA,SAAkC,SAAA;EAAA,SAA4B,OAAA,EAAS,OAAA;AAAA;EAAA,SACtE,IAAA;EAAA,SAAwB,KAAA,EAAO,UAAA;AAAA,IAAe,oCAAA;EAAA,SAC/C,IAAA;EAAA,SAAwB,OAAA;AAAA;EAAA,SACxB,IAAA;AAAA;AAAA,cAEF,oBAAA,GACX,KAAA,EAAO,cAAA,EACP,MAAA,EAAQ,eAAA,KACP,cAAA;AAAA,cAwOU,wBAAA,GAA4B,OAAqB,EAAZ,YAAY;AAAA,cAIjD,4BAAA,GAAgC,KAAqB,EAAd,cAAc;AAAA,cAKrD,oBAAA,GAAwB,IAAmB,EAAb,aAAa;AAAA,KAQ5C,kBAAA,GAAqB,OAAO,CAAC,aAAA;EAAA,SAA0B,IAAA;AAAA;AAAA,cAEtD,uBAAA,GAA2B,IAAmB,EAAb,aAAa;AAAA,KAE/C,qBAAA,GAAwB,OAAO,CAAC,aAAA;EAAA,SAA0B,IAAA;AAAA;AAAA,cAEzD,sBAAA,GAA0B,QAAA,EAAU,aAAA,CAAc,gBAAA;EAAA;;;kBAAD,aAAA;AAAA;AAAA,cAKjD,yBAAA,GAA6B,QAAA,EAAU,aAAA,CAAc,gBAAA;EAAA;;;kBAAD,aAAA;AAAA;AAAA,KAK5D,0BAAA;EAAA,SACM,aAAA;EAAA,SACA,mBAAA;EAAA,SACA,aAAA;AAAA;AAAA,cAGE,6BAAA;EAAiC,aAAA;EAAA,mBAAA;EAAA;AAAA,GAI3C,0BAAA"}
1
+ {"version":3,"file":"chat-core.d.mts","names":[],"sources":["../../src/react/chat-core.ts"],"mappings":";;;;;KA8BY,cAAA;AAAA,KAEA,cAAA;EAAA,SACD,MAAA,EAAQ,cAAA;EAAA,SACR,KAAA;EAAA,SACA,SAAA,EAAW,UAAA;EAAA,SACX,SAAA,EAAW,UAAA;EAAA,SACX,YAAA,EAAc,aAAA,CAAc,gBAAA;EAAA,SAC5B,aAAA,EAAe,aAAA,CAAc,qBAAA;EAAA,SAC7B,YAAA,EAAc,aAAA;AAAA;AAAA,KAGb,6BAAA;EAAA,SACD,YAAA,EAAc,aAAA,CAAc,gBAAA;EAAA,SAC5B,YAAA,EAAc,aAAA;AAAA;AAAA,cAGZ,qBAAA,EAAuB,cAQnC;AAAA,cAmBY,iCAAA,GACX,YAAA,GAAc,aAAA,CAAc,gBAAA,MAC3B,6BAAA;;;;;;;cAWU,+BAAA,GACX,KAAA,EAAO,6BAAA,EACP,KAAA,EAAO,UAAA,EACP,OAAA,GAAS,oCAAA,KACR,6BAAA;AAAA,KAWS,eAAA;EAAA,SACG,IAAA;EAAA,SAAiC,OAAA,EAAS,YAAA;AAAA;EAAA,SAC1C,IAAA;EAAA,SAAyB,OAAA,EAAS,WAAA;AAAA;EAAA,SAClC,IAAA;EAAA,SAAgC,OAAA,EAAS,YAAA;AAAA;EAAA,SACzC,IAAA;EAAA,SAAqC,QAAA,EAAU,YAAA;AAAA;EAAA,SAC/C,IAAA;EAAA,SAA6B,SAAA;AAAA;EAAA,SAC7B,IAAA;EAAA,SAAiC,SAAA;AAAA;EAAA,SACjC,IAAA;EAAA,SAAkC,SAAA;EAAA,SAA4B,OAAA,EAAS,OAAA;AAAA;EAAA,SACtE,IAAA;EAAA,SAAwB,KAAA,EAAO,UAAA;AAAA,IAAe,oCAAA;EAAA,SAC/C,IAAA;EAAA,SAAwB,OAAA;AAAA;EAAA,SACxB,IAAA;AAAA;AAAA,cAEF,oBAAA,GACX,KAAA,EAAO,cAAA,EACP,MAAA,EAAQ,eAAA,KACP,cAAA;AAAA,cAyOU,wBAAA,GAA4B,OAAqB,EAAZ,YAAY;AAAA,cAIjD,4BAAA,GAAgC,KAAqB,EAAd,cAAc;AAAA,cAKrD,oBAAA,GAAwB,IAAmB,EAAb,aAAa;AAAA,KAQ5C,kBAAA,GAAqB,OAAO,CAAC,aAAA;EAAA,SAA0B,IAAA;AAAA;AAAA,cAEtD,uBAAA,GAA2B,IAAmB,EAAb,aAAa;AAAA,KAE/C,qBAAA,GAAwB,OAAO,CAAC,aAAA;EAAA,SAA0B,IAAA;AAAA;AAAA,cAEzD,sBAAA,GAA0B,QAAA,EAAU,aAAA,CAAc,gBAAA;EAAA;;;kBAAD,aAAA;AAAA;AAAA,cAKjD,yBAAA,GAA6B,QAAA,EAAU,aAAA,CAAc,gBAAA;EAAA;;;kBAAD,aAAA;AAAA;AAAA,KAK5D,0BAAA;EAAA,SACM,aAAA;EAAA,SACA,mBAAA;EAAA,SACA,aAAA;AAAA;AAAA,cAGE,6BAAA;EAAiC,aAAA;EAAA,mBAAA;EAAA;AAAA,GAI3C,0BAAA"}
@@ -189,7 +189,8 @@ const reduceAgentChatState = (state, action) => {
189
189
  case "ToolInputStart":
190
190
  case "TurnEnd":
191
191
  case "TurnStart":
192
- case "UsageUpdate": return rememberEvent(clearRetryInfo({
192
+ case "UsageUpdate":
193
+ case "UserMessage": return rememberEvent(clearRetryInfo({
193
194
  ...state,
194
195
  chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)
195
196
  }), action.event);
@@ -1 +1 @@
1
- {"version":3,"file":"chat-core.mjs","names":[],"sources":["../../src/react/chat-core.ts"],"sourcesContent":["import {\n hitlResponseEvent,\n type AgentError,\n type AgentEvent,\n type AgentMessage,\n type AgentRetry,\n type Content,\n type HitlResponse,\n type UserMessage\n} from '@yolk-sdk/agent/protocol'\nimport {\n appendProtocolMessage,\n applyAgentEventToChatMessages,\n deleteChatTurn,\n editChatUserMessage,\n markChatError,\n regenerateChatMessagesFrom,\n type AgentChatMessage,\n type AgentChatPart,\n type ApplyAgentEventToChatMessagesOptions\n} from './chat-messages.ts'\nimport {\n MessagesRegenerated,\n ProtocolMessageAppended,\n TurnDeleted,\n UserMessageEdited,\n UserMessageSubmitted,\n type AgentChatSessionEvent\n} from './chat-session-events.ts'\n\nexport type AgentRunStatus = 'idle' | 'running' | 'waiting' | 'done' | 'error' | 'aborted'\n\nexport type AgentChatState = {\n readonly status: AgentRunStatus\n readonly error: string | null\n readonly errorInfo: AgentError | null\n readonly retryInfo: AgentRetry | null\n readonly chatMessages: ReadonlyArray<AgentChatMessage>\n readonly sessionEvents: ReadonlyArray<AgentChatSessionEvent>\n readonly seenEventIds: ReadonlyArray<string>\n}\n\nexport type AgentChatEventProjectionState = {\n readonly chatMessages: ReadonlyArray<AgentChatMessage>\n readonly seenEventIds: ReadonlyArray<string>\n}\n\nexport const initialAgentChatState: AgentChatState = {\n status: 'idle',\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: [],\n sessionEvents: [],\n seenEventIds: []\n}\n\nconst hasSeenEventId = (seenEventIds: ReadonlyArray<string>, event: AgentEvent) =>\n event.eventId !== undefined && seenEventIds.includes(event.eventId)\n\nconst rememberEventId = (seenEventIds: ReadonlyArray<string>, event: AgentEvent) =>\n event.eventId === undefined ? seenEventIds : [...seenEventIds, event.eventId]\n\nconst hasSeenEvent = (state: AgentChatState, event: AgentEvent) =>\n hasSeenEventId(state.seenEventIds, event)\n\nconst rememberEvent = (state: AgentChatState, event: AgentEvent): AgentChatState =>\n event.eventId === undefined\n ? state\n : { ...state, seenEventIds: rememberEventId(state.seenEventIds, event) }\n\nconst clearRetryInfo = (state: AgentChatState): AgentChatState =>\n state.retryInfo === null ? state : { ...state, retryInfo: null }\n\nexport const makeAgentChatEventProjectionState = (\n chatMessages: ReadonlyArray<AgentChatMessage> = []\n): AgentChatEventProjectionState => ({\n chatMessages,\n seenEventIds: []\n})\n\n/**\n * Applies replayable agent events to chat messages while deduping by `eventId`.\n *\n * Use this for durable streams that may reconnect, overlap, or replay events.\n * For ephemeral local streams, `applyAgentEventToChatMessages` is still useful.\n */\nexport const applyAgentEventToChatProjection = (\n state: AgentChatEventProjectionState,\n event: AgentEvent,\n options: ApplyAgentEventToChatMessagesOptions = {}\n): AgentChatEventProjectionState => {\n if (hasSeenEventId(state.seenEventIds, event)) {\n return state\n }\n\n return {\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, event, options),\n seenEventIds: rememberEventId(state.seenEventIds, event)\n }\n}\n\nexport type AgentChatAction =\n | { readonly _tag: 'HydrateMessage'; readonly message: AgentMessage }\n | { readonly _tag: 'Submit'; readonly message: UserMessage }\n | { readonly _tag: 'AppendMessage'; readonly message: AgentMessage }\n | { readonly _tag: 'SubmitHitlResponse'; readonly response: HitlResponse }\n | { readonly _tag: 'DeleteTurn'; readonly messageId: string }\n | { readonly _tag: 'RegenerateFrom'; readonly messageId: string }\n | { readonly _tag: 'EditUserMessage'; readonly messageId: string; readonly content: Content }\n | ({ readonly _tag: 'Event'; readonly event: AgentEvent } & ApplyAgentEventToChatMessagesOptions)\n | { readonly _tag: 'Error'; readonly message: string }\n | { readonly _tag: 'Abort' }\n\nexport const reduceAgentChatState = (\n state: AgentChatState,\n action: AgentChatAction\n): AgentChatState => {\n switch (action._tag) {\n case 'HydrateMessage':\n return {\n ...state,\n chatMessages: appendProtocolMessage(state.chatMessages, action.message),\n error: null,\n errorInfo: null,\n retryInfo: null\n }\n case 'Submit':\n return {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: [],\n chatMessages: appendProtocolMessage(state.chatMessages, action.message),\n sessionEvents: [\n ...state.sessionEvents,\n UserMessageSubmitted.make({ message: action.message })\n ]\n }\n case 'AppendMessage':\n return {\n ...state,\n chatMessages: appendProtocolMessage(state.chatMessages, action.message),\n error: null,\n errorInfo: null,\n retryInfo: null,\n sessionEvents: [\n ...state.sessionEvents,\n ProtocolMessageAppended.make({ message: action.message })\n ]\n }\n case 'SubmitHitlResponse':\n return {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: [],\n chatMessages: applyAgentEventToChatMessages(\n state.chatMessages,\n hitlResponseEvent(action.response)\n )\n }\n case 'DeleteTurn': {\n const next = deleteChatTurn(state.chatMessages, action.messageId)\n\n if (next._tag === 'NotFound') {\n return state\n }\n\n return {\n ...state,\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: next.messages,\n sessionEvents: [\n ...state.sessionEvents,\n TurnDeleted.make({\n turnStartMessageId: next.turnStartMessageId,\n deletedMessageIds: next.deletedMessageIds\n })\n ]\n }\n }\n case 'RegenerateFrom': {\n const next = regenerateChatMessagesFrom(state.chatMessages, action.messageId)\n\n if (next._tag === 'NotFound') {\n return state\n }\n\n return {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: [],\n chatMessages: next.messages,\n sessionEvents: [\n ...state.sessionEvents,\n MessagesRegenerated.make({\n fromMessageId: action.messageId,\n keptMessageIds: next.messages.map(message => message.id)\n })\n ]\n }\n }\n case 'EditUserMessage': {\n const next = editChatUserMessage(state.chatMessages, action.messageId, action.content)\n\n if (next._tag !== 'Edited') {\n return state\n }\n\n return {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: [],\n chatMessages: next.messages,\n sessionEvents: [\n ...state.sessionEvents,\n UserMessageEdited.make({\n messageId: next.messageId,\n content: action.content,\n keptMessageIds: next.messages.map(message => message.id)\n })\n ]\n }\n }\n case 'Event': {\n if (hasSeenEvent(state, action.event)) {\n return state\n }\n\n switch (action.event._tag) {\n case 'AgentStart':\n return rememberEvent(\n {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'AgentError':\n return rememberEvent(\n {\n ...state,\n status: 'error',\n error: action.event.message,\n errorInfo: action.event,\n retryInfo: null,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'AgentEnd':\n return rememberEvent(\n {\n ...state,\n status: 'done',\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'AgentAwaitingInput':\n return rememberEvent(\n {\n ...state,\n status: 'waiting',\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'AgentRetry':\n return rememberEvent(\n {\n ...state,\n retryInfo: action.event,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'CompactionEnd':\n case 'AssistantMessage':\n case 'CompactionStart':\n case 'LLMReasoningDelta':\n case 'LLMStreamEnd':\n case 'LLMStreamStart':\n case 'LLMTextDelta':\n case 'ProviderToolResult':\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n case 'QuestionRequested':\n case 'SubagentCompleted':\n case 'SubagentStarted':\n case 'ToolApprovalDenied':\n case 'ToolApprovalGranted':\n case 'ToolApprovalRequested':\n case 'ToolExecutionCompleted':\n case 'ToolExecutionError':\n case 'ToolExecutionStarted':\n case 'ToolInputDelta':\n case 'ToolInputEnd':\n case 'ToolInputStart':\n case 'TurnEnd':\n case 'TurnStart':\n case 'UsageUpdate':\n return rememberEvent(\n clearRetryInfo({\n ...state,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n }),\n action.event\n )\n }\n }\n case 'Error': {\n return {\n ...state,\n status: 'error',\n error: action.message,\n errorInfo: null,\n retryInfo: null,\n chatMessages: markChatError(state.chatMessages, action.message)\n }\n }\n case 'Abort':\n return { ...state, status: 'aborted', error: null, errorInfo: null, retryInfo: null }\n }\n}\n\nexport const hasAgentMessageReasoning = (message: AgentMessage) =>\n message._tag === 'Assistant' &&\n message.parts.some(part => part._tag === 'Reasoning' && part.text.length > 0)\n\nexport const hasAgentChatReasoningSummary = (state: AgentChatState) =>\n state.chatMessages.some(message =>\n message.parts.some(part => part._tag === 'Reasoning' && part.text.length > 0)\n )\n\nexport const isActiveChatToolPart = (part: AgentChatPart) =>\n part._tag === 'ToolCall' &&\n part.state._tag !== 'Completed' &&\n part.state._tag !== 'ProviderCompleted' &&\n part.state._tag !== 'QuestionAnswered' &&\n part.state._tag !== 'QuestionCancelled' &&\n part.state._tag !== 'Errored' &&\n part.state._tag !== 'Denied'\nexport type ActiveChatToolPart = Extract<AgentChatPart, { readonly _tag: 'ToolCall' }>\n\nexport const isCompletedChatToolPart = (part: AgentChatPart) =>\n part._tag === 'ToolCall' && part.state._tag === 'Completed'\nexport type CompletedChatToolPart = Extract<AgentChatPart, { readonly _tag: 'ToolCall' }>\n\nexport const getActiveChatToolParts = (messages: ReadonlyArray<AgentChatMessage>) =>\n messages.flatMap(message =>\n message.parts.filter((part): part is ActiveChatToolPart => isActiveChatToolPart(part))\n )\n\nexport const getCompletedChatToolParts = (messages: ReadonlyArray<AgentChatMessage>) =>\n messages.flatMap(message =>\n message.parts.filter((part): part is CompletedChatToolPart => isCompletedChatToolPart(part))\n )\n\ntype AgentChatLiveActivityInput = {\n readonly isTextRunning: boolean\n readonly activeToolCallCount: number\n readonly isVoiceActive: boolean\n}\n\nexport const getAgentChatLiveActivityCount = ({\n isTextRunning,\n activeToolCallCount,\n isVoiceActive\n}: AgentChatLiveActivityInput) =>\n (isTextRunning ? 1 : 0) + activeToolCallCount + (isVoiceActive ? 1 : 0)\n"],"mappings":";;;;AA+CA,MAAa,wBAAwC;CACnD,QAAQ;CACR,OAAO;CACP,WAAW;CACX,WAAW;CACX,cAAc,CAAC;CACf,eAAe,CAAC;CAChB,cAAc,CAAC;AACjB;AAEA,MAAM,kBAAkB,cAAqC,UAC3D,MAAM,YAAY,KAAA,KAAa,aAAa,SAAS,MAAM,OAAO;AAEpE,MAAM,mBAAmB,cAAqC,UAC5D,MAAM,YAAY,KAAA,IAAY,eAAe,CAAC,GAAG,cAAc,MAAM,OAAO;AAE9E,MAAM,gBAAgB,OAAuB,UAC3C,eAAe,MAAM,cAAc,KAAK;AAE1C,MAAM,iBAAiB,OAAuB,UAC5C,MAAM,YAAY,KAAA,IACd,QACA;CAAE,GAAG;CAAO,cAAc,gBAAgB,MAAM,cAAc,KAAK;AAAE;AAE3E,MAAM,kBAAkB,UACtB,MAAM,cAAc,OAAO,QAAQ;CAAE,GAAG;CAAO,WAAW;AAAK;AAEjE,MAAa,qCACX,eAAgD,CAAC,OACd;CACnC;CACA,cAAc,CAAC;AACjB;;;;;;;AAQA,MAAa,mCACX,OACA,OACA,UAAgD,CAAC,MACf;CAClC,IAAI,eAAe,MAAM,cAAc,KAAK,GAC1C,OAAO;CAGT,OAAO;EACL,cAAc,8BAA8B,MAAM,cAAc,OAAO,OAAO;EAC9E,cAAc,gBAAgB,MAAM,cAAc,KAAK;CACzD;AACF;AAcA,MAAa,wBACX,OACA,WACmB;CACnB,QAAQ,OAAO,MAAf;EACE,KAAK,kBACH,OAAO;GACL,GAAG;GACH,cAAc,sBAAsB,MAAM,cAAc,OAAO,OAAO;GACtE,OAAO;GACP,WAAW;GACX,WAAW;EACb;EACF,KAAK,UACH,OAAO;GACL,GAAG;GACH,QAAQ;GACR,OAAO;GACP,WAAW;GACX,WAAW;GACX,cAAc,CAAC;GACf,cAAc,sBAAsB,MAAM,cAAc,OAAO,OAAO;GACtE,eAAe,CACb,GAAG,MAAM,eACT,qBAAqB,KAAK,EAAE,SAAS,OAAO,QAAQ,CAAC,CACvD;EACF;EACF,KAAK,iBACH,OAAO;GACL,GAAG;GACH,cAAc,sBAAsB,MAAM,cAAc,OAAO,OAAO;GACtE,OAAO;GACP,WAAW;GACX,WAAW;GACX,eAAe,CACb,GAAG,MAAM,eACT,wBAAwB,KAAK,EAAE,SAAS,OAAO,QAAQ,CAAC,CAC1D;EACF;EACF,KAAK,sBACH,OAAO;GACL,GAAG;GACH,QAAQ;GACR,OAAO;GACP,WAAW;GACX,WAAW;GACX,cAAc,CAAC;GACf,cAAc,8BACZ,MAAM,cACN,kBAAkB,OAAO,QAAQ,CACnC;EACF;EACF,KAAK,cAAc;GACjB,MAAM,OAAO,eAAe,MAAM,cAAc,OAAO,SAAS;GAEhE,IAAI,KAAK,SAAS,YAChB,OAAO;GAGT,OAAO;IACL,GAAG;IACH,OAAO;IACP,WAAW;IACX,WAAW;IACX,cAAc,KAAK;IACnB,eAAe,CACb,GAAG,MAAM,eACT,YAAY,KAAK;KACf,oBAAoB,KAAK;KACzB,mBAAmB,KAAK;IAC1B,CAAC,CACH;GACF;EACF;EACA,KAAK,kBAAkB;GACrB,MAAM,OAAO,2BAA2B,MAAM,cAAc,OAAO,SAAS;GAE5E,IAAI,KAAK,SAAS,YAChB,OAAO;GAGT,OAAO;IACL,GAAG;IACH,QAAQ;IACR,OAAO;IACP,WAAW;IACX,WAAW;IACX,cAAc,CAAC;IACf,cAAc,KAAK;IACnB,eAAe,CACb,GAAG,MAAM,eACT,oBAAoB,KAAK;KACvB,eAAe,OAAO;KACtB,gBAAgB,KAAK,SAAS,KAAI,YAAW,QAAQ,EAAE;IACzD,CAAC,CACH;GACF;EACF;EACA,KAAK,mBAAmB;GACtB,MAAM,OAAO,oBAAoB,MAAM,cAAc,OAAO,WAAW,OAAO,OAAO;GAErF,IAAI,KAAK,SAAS,UAChB,OAAO;GAGT,OAAO;IACL,GAAG;IACH,QAAQ;IACR,OAAO;IACP,WAAW;IACX,WAAW;IACX,cAAc,CAAC;IACf,cAAc,KAAK;IACnB,eAAe,CACb,GAAG,MAAM,eACT,kBAAkB,KAAK;KACrB,WAAW,KAAK;KAChB,SAAS,OAAO;KAChB,gBAAgB,KAAK,SAAS,KAAI,YAAW,QAAQ,EAAE;IACzD,CAAC,CACH;GACF;EACF;EACA,KAAK;GACH,IAAI,aAAa,OAAO,OAAO,KAAK,GAClC,OAAO;GAGT,QAAQ,OAAO,MAAM,MAArB;IACE,KAAK,cACH,OAAO,cACL;KACE,GAAG;KACH,QAAQ;KACR,OAAO;KACP,WAAW;KACX,WAAW;KACX,cAAc,8BAA8B,MAAM,cAAc,OAAO,OAAO,MAAM;IACtF,GACA,OAAO,KACT;IACF,KAAK,cACH,OAAO,cACL;KACE,GAAG;KACH,QAAQ;KACR,OAAO,OAAO,MAAM;KACpB,WAAW,OAAO;KAClB,WAAW;KACX,cAAc,8BAA8B,MAAM,cAAc,OAAO,OAAO,MAAM;IACtF,GACA,OAAO,KACT;IACF,KAAK,YACH,OAAO,cACL;KACE,GAAG;KACH,QAAQ;KACR,OAAO;KACP,WAAW;KACX,WAAW;KACX,cAAc,8BAA8B,MAAM,cAAc,OAAO,OAAO,MAAM;IACtF,GACA,OAAO,KACT;IACF,KAAK,sBACH,OAAO,cACL;KACE,GAAG;KACH,QAAQ;KACR,OAAO;KACP,WAAW;KACX,WAAW;KACX,cAAc,8BAA8B,MAAM,cAAc,OAAO,OAAO,MAAM;IACtF,GACA,OAAO,KACT;IACF,KAAK,cACH,OAAO,cACL;KACE,GAAG;KACH,WAAW,OAAO;KAClB,cAAc,8BAA8B,MAAM,cAAc,OAAO,OAAO,MAAM;IACtF,GACA,OAAO,KACT;IACF,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK,eACH,OAAO,cACL,eAAe;KACb,GAAG;KACH,cAAc,8BAA8B,MAAM,cAAc,OAAO,OAAO,MAAM;IACtF,CAAC,GACD,OAAO,KACT;GACJ;EAEF,KAAK,SACH,OAAO;GACL,GAAG;GACH,QAAQ;GACR,OAAO,OAAO;GACd,WAAW;GACX,WAAW;GACX,cAAc,cAAc,MAAM,cAAc,OAAO,OAAO;EAChE;EAEF,KAAK,SACH,OAAO;GAAE,GAAG;GAAO,QAAQ;GAAW,OAAO;GAAM,WAAW;GAAM,WAAW;EAAK;CACxF;AACF;AAEA,MAAa,4BAA4B,YACvC,QAAQ,SAAS,eACjB,QAAQ,MAAM,MAAK,SAAQ,KAAK,SAAS,eAAe,KAAK,KAAK,SAAS,CAAC;AAE9E,MAAa,gCAAgC,UAC3C,MAAM,aAAa,MAAK,YACtB,QAAQ,MAAM,MAAK,SAAQ,KAAK,SAAS,eAAe,KAAK,KAAK,SAAS,CAAC,CAC9E;AAEF,MAAa,wBAAwB,SACnC,KAAK,SAAS,cACd,KAAK,MAAM,SAAS,eACpB,KAAK,MAAM,SAAS,uBACpB,KAAK,MAAM,SAAS,sBACpB,KAAK,MAAM,SAAS,uBACpB,KAAK,MAAM,SAAS,aACpB,KAAK,MAAM,SAAS;AAGtB,MAAa,2BAA2B,SACtC,KAAK,SAAS,cAAc,KAAK,MAAM,SAAS;AAGlD,MAAa,0BAA0B,aACrC,SAAS,SAAQ,YACf,QAAQ,MAAM,QAAQ,SAAqC,qBAAqB,IAAI,CAAC,CACvF;AAEF,MAAa,6BAA6B,aACxC,SAAS,SAAQ,YACf,QAAQ,MAAM,QAAQ,SAAwC,wBAAwB,IAAI,CAAC,CAC7F;AAQF,MAAa,iCAAiC,EAC5C,eACA,qBACA,qBAEC,gBAAgB,IAAI,KAAK,uBAAuB,gBAAgB,IAAI"}
1
+ {"version":3,"file":"chat-core.mjs","names":[],"sources":["../../src/react/chat-core.ts"],"sourcesContent":["import {\n hitlResponseEvent,\n type AgentError,\n type AgentEvent,\n type AgentMessage,\n type AgentRetry,\n type Content,\n type HitlResponse,\n type UserMessage\n} from '@yolk-sdk/agent/protocol'\nimport {\n appendProtocolMessage,\n applyAgentEventToChatMessages,\n deleteChatTurn,\n editChatUserMessage,\n markChatError,\n regenerateChatMessagesFrom,\n type AgentChatMessage,\n type AgentChatPart,\n type ApplyAgentEventToChatMessagesOptions\n} from './chat-messages.ts'\nimport {\n MessagesRegenerated,\n ProtocolMessageAppended,\n TurnDeleted,\n UserMessageEdited,\n UserMessageSubmitted,\n type AgentChatSessionEvent\n} from './chat-session-events.ts'\n\nexport type AgentRunStatus = 'idle' | 'running' | 'waiting' | 'done' | 'error' | 'aborted'\n\nexport type AgentChatState = {\n readonly status: AgentRunStatus\n readonly error: string | null\n readonly errorInfo: AgentError | null\n readonly retryInfo: AgentRetry | null\n readonly chatMessages: ReadonlyArray<AgentChatMessage>\n readonly sessionEvents: ReadonlyArray<AgentChatSessionEvent>\n readonly seenEventIds: ReadonlyArray<string>\n}\n\nexport type AgentChatEventProjectionState = {\n readonly chatMessages: ReadonlyArray<AgentChatMessage>\n readonly seenEventIds: ReadonlyArray<string>\n}\n\nexport const initialAgentChatState: AgentChatState = {\n status: 'idle',\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: [],\n sessionEvents: [],\n seenEventIds: []\n}\n\nconst hasSeenEventId = (seenEventIds: ReadonlyArray<string>, event: AgentEvent) =>\n event.eventId !== undefined && seenEventIds.includes(event.eventId)\n\nconst rememberEventId = (seenEventIds: ReadonlyArray<string>, event: AgentEvent) =>\n event.eventId === undefined ? seenEventIds : [...seenEventIds, event.eventId]\n\nconst hasSeenEvent = (state: AgentChatState, event: AgentEvent) =>\n hasSeenEventId(state.seenEventIds, event)\n\nconst rememberEvent = (state: AgentChatState, event: AgentEvent): AgentChatState =>\n event.eventId === undefined\n ? state\n : { ...state, seenEventIds: rememberEventId(state.seenEventIds, event) }\n\nconst clearRetryInfo = (state: AgentChatState): AgentChatState =>\n state.retryInfo === null ? state : { ...state, retryInfo: null }\n\nexport const makeAgentChatEventProjectionState = (\n chatMessages: ReadonlyArray<AgentChatMessage> = []\n): AgentChatEventProjectionState => ({\n chatMessages,\n seenEventIds: []\n})\n\n/**\n * Applies replayable agent events to chat messages while deduping by `eventId`.\n *\n * Use this for durable streams that may reconnect, overlap, or replay events.\n * For ephemeral local streams, `applyAgentEventToChatMessages` is still useful.\n */\nexport const applyAgentEventToChatProjection = (\n state: AgentChatEventProjectionState,\n event: AgentEvent,\n options: ApplyAgentEventToChatMessagesOptions = {}\n): AgentChatEventProjectionState => {\n if (hasSeenEventId(state.seenEventIds, event)) {\n return state\n }\n\n return {\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, event, options),\n seenEventIds: rememberEventId(state.seenEventIds, event)\n }\n}\n\nexport type AgentChatAction =\n | { readonly _tag: 'HydrateMessage'; readonly message: AgentMessage }\n | { readonly _tag: 'Submit'; readonly message: UserMessage }\n | { readonly _tag: 'AppendMessage'; readonly message: AgentMessage }\n | { readonly _tag: 'SubmitHitlResponse'; readonly response: HitlResponse }\n | { readonly _tag: 'DeleteTurn'; readonly messageId: string }\n | { readonly _tag: 'RegenerateFrom'; readonly messageId: string }\n | { readonly _tag: 'EditUserMessage'; readonly messageId: string; readonly content: Content }\n | ({ readonly _tag: 'Event'; readonly event: AgentEvent } & ApplyAgentEventToChatMessagesOptions)\n | { readonly _tag: 'Error'; readonly message: string }\n | { readonly _tag: 'Abort' }\n\nexport const reduceAgentChatState = (\n state: AgentChatState,\n action: AgentChatAction\n): AgentChatState => {\n switch (action._tag) {\n case 'HydrateMessage':\n return {\n ...state,\n chatMessages: appendProtocolMessage(state.chatMessages, action.message),\n error: null,\n errorInfo: null,\n retryInfo: null\n }\n case 'Submit':\n return {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: [],\n chatMessages: appendProtocolMessage(state.chatMessages, action.message),\n sessionEvents: [\n ...state.sessionEvents,\n UserMessageSubmitted.make({ message: action.message })\n ]\n }\n case 'AppendMessage':\n return {\n ...state,\n chatMessages: appendProtocolMessage(state.chatMessages, action.message),\n error: null,\n errorInfo: null,\n retryInfo: null,\n sessionEvents: [\n ...state.sessionEvents,\n ProtocolMessageAppended.make({ message: action.message })\n ]\n }\n case 'SubmitHitlResponse':\n return {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: [],\n chatMessages: applyAgentEventToChatMessages(\n state.chatMessages,\n hitlResponseEvent(action.response)\n )\n }\n case 'DeleteTurn': {\n const next = deleteChatTurn(state.chatMessages, action.messageId)\n\n if (next._tag === 'NotFound') {\n return state\n }\n\n return {\n ...state,\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: next.messages,\n sessionEvents: [\n ...state.sessionEvents,\n TurnDeleted.make({\n turnStartMessageId: next.turnStartMessageId,\n deletedMessageIds: next.deletedMessageIds\n })\n ]\n }\n }\n case 'RegenerateFrom': {\n const next = regenerateChatMessagesFrom(state.chatMessages, action.messageId)\n\n if (next._tag === 'NotFound') {\n return state\n }\n\n return {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: [],\n chatMessages: next.messages,\n sessionEvents: [\n ...state.sessionEvents,\n MessagesRegenerated.make({\n fromMessageId: action.messageId,\n keptMessageIds: next.messages.map(message => message.id)\n })\n ]\n }\n }\n case 'EditUserMessage': {\n const next = editChatUserMessage(state.chatMessages, action.messageId, action.content)\n\n if (next._tag !== 'Edited') {\n return state\n }\n\n return {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n seenEventIds: [],\n chatMessages: next.messages,\n sessionEvents: [\n ...state.sessionEvents,\n UserMessageEdited.make({\n messageId: next.messageId,\n content: action.content,\n keptMessageIds: next.messages.map(message => message.id)\n })\n ]\n }\n }\n case 'Event': {\n if (hasSeenEvent(state, action.event)) {\n return state\n }\n\n switch (action.event._tag) {\n case 'AgentStart':\n return rememberEvent(\n {\n ...state,\n status: 'running',\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'AgentError':\n return rememberEvent(\n {\n ...state,\n status: 'error',\n error: action.event.message,\n errorInfo: action.event,\n retryInfo: null,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'AgentEnd':\n return rememberEvent(\n {\n ...state,\n status: 'done',\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'AgentAwaitingInput':\n return rememberEvent(\n {\n ...state,\n status: 'waiting',\n error: null,\n errorInfo: null,\n retryInfo: null,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'AgentRetry':\n return rememberEvent(\n {\n ...state,\n retryInfo: action.event,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n },\n action.event\n )\n case 'CompactionEnd':\n case 'AssistantMessage':\n case 'CompactionStart':\n case 'LLMReasoningDelta':\n case 'LLMStreamEnd':\n case 'LLMStreamStart':\n case 'LLMTextDelta':\n case 'ProviderToolResult':\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n case 'QuestionRequested':\n case 'SubagentCompleted':\n case 'SubagentStarted':\n case 'ToolApprovalDenied':\n case 'ToolApprovalGranted':\n case 'ToolApprovalRequested':\n case 'ToolExecutionCompleted':\n case 'ToolExecutionError':\n case 'ToolExecutionStarted':\n case 'ToolInputDelta':\n case 'ToolInputEnd':\n case 'ToolInputStart':\n case 'TurnEnd':\n case 'TurnStart':\n case 'UsageUpdate':\n case 'UserMessage':\n return rememberEvent(\n clearRetryInfo({\n ...state,\n chatMessages: applyAgentEventToChatMessages(state.chatMessages, action.event, action)\n }),\n action.event\n )\n }\n }\n case 'Error': {\n return {\n ...state,\n status: 'error',\n error: action.message,\n errorInfo: null,\n retryInfo: null,\n chatMessages: markChatError(state.chatMessages, action.message)\n }\n }\n case 'Abort':\n return { ...state, status: 'aborted', error: null, errorInfo: null, retryInfo: null }\n }\n}\n\nexport const hasAgentMessageReasoning = (message: AgentMessage) =>\n message._tag === 'Assistant' &&\n message.parts.some(part => part._tag === 'Reasoning' && part.text.length > 0)\n\nexport const hasAgentChatReasoningSummary = (state: AgentChatState) =>\n state.chatMessages.some(message =>\n message.parts.some(part => part._tag === 'Reasoning' && part.text.length > 0)\n )\n\nexport const isActiveChatToolPart = (part: AgentChatPart) =>\n part._tag === 'ToolCall' &&\n part.state._tag !== 'Completed' &&\n part.state._tag !== 'ProviderCompleted' &&\n part.state._tag !== 'QuestionAnswered' &&\n part.state._tag !== 'QuestionCancelled' &&\n part.state._tag !== 'Errored' &&\n part.state._tag !== 'Denied'\nexport type ActiveChatToolPart = Extract<AgentChatPart, { readonly _tag: 'ToolCall' }>\n\nexport const isCompletedChatToolPart = (part: AgentChatPart) =>\n part._tag === 'ToolCall' && part.state._tag === 'Completed'\nexport type CompletedChatToolPart = Extract<AgentChatPart, { readonly _tag: 'ToolCall' }>\n\nexport const getActiveChatToolParts = (messages: ReadonlyArray<AgentChatMessage>) =>\n messages.flatMap(message =>\n message.parts.filter((part): part is ActiveChatToolPart => isActiveChatToolPart(part))\n )\n\nexport const getCompletedChatToolParts = (messages: ReadonlyArray<AgentChatMessage>) =>\n messages.flatMap(message =>\n message.parts.filter((part): part is CompletedChatToolPart => isCompletedChatToolPart(part))\n )\n\ntype AgentChatLiveActivityInput = {\n readonly isTextRunning: boolean\n readonly activeToolCallCount: number\n readonly isVoiceActive: boolean\n}\n\nexport const getAgentChatLiveActivityCount = ({\n isTextRunning,\n activeToolCallCount,\n isVoiceActive\n}: AgentChatLiveActivityInput) =>\n (isTextRunning ? 1 : 0) + activeToolCallCount + (isVoiceActive ? 1 : 0)\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-messages.d.mts","names":[],"sources":["../../src/react/chat-messages.ts"],"mappings":"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"}
1
+ {"version":3,"file":"chat-messages.d.mts","names":[],"sources":["../../src/react/chat-messages.ts"],"mappings":"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"}
@@ -501,6 +501,7 @@ const applyAgentEventToChatMessages = (messages, event, options = {}) => {
501
501
  reasoningSoFar: event.reasoningSoFar
502
502
  });
503
503
  case "ToolInputEnd": return upsertToolCallPart(messages, event.call, { _tag: "Called" });
504
+ case "UserMessage": return appendProtocolMessage(messages, event.message);
504
505
  case "AssistantMessage": return appendOrReplaceAssistantMessage(messages, event.message);
505
506
  case "ToolInputStart": return upsertToolCallPart(messages, inputStreamingToolCall(event.id, event.name), {
506
507
  _tag: "InputStreaming",
@@ -1 +1 @@
1
- {"version":3,"file":"chat-messages.mjs","names":["Arr"],"sources":["../../src/react/chat-messages.ts"],"sourcesContent":["import { Array as Arr, Option } from 'effect'\nimport type { AgentToolRun } from '@yolk-sdk/agent/client'\nimport {\n AssistantAgentMessage,\n AssistantReasoningPart,\n AssistantTextPart,\n HostToolCallPart,\n ProviderToolCallPart,\n ProviderToolResultPart,\n type QuestionRequest,\n type QuestionResponse,\n type ToolApprovalRequest,\n ToolResult,\n ToolResultMessage,\n ToolCall,\n UserMessage,\n appendTextToContent,\n contentParts,\n formatQuestionResponseContent,\n isContentEmpty,\n questionResponseStructuredContent,\n type AgentEvent,\n type AgentMessage,\n type AssistantPart,\n type Content,\n type MessageAnnotations,\n type MessageAuthor,\n type MessageEnvelope\n} from '@yolk-sdk/agent/protocol'\n\nexport type ChatPartState = 'streaming' | 'done'\n\nexport type ChatToolState =\n | { readonly _tag: 'Called' }\n | { readonly _tag: 'InputStreaming'; readonly input: string }\n | { readonly _tag: 'ApprovalRequested'; readonly request?: ToolApprovalRequest }\n | { readonly _tag: 'Denied'; readonly reason: string }\n | { readonly _tag: 'QuestionRequested'; readonly request: QuestionRequest }\n | {\n readonly _tag: 'QuestionAnswered'\n readonly response: QuestionResponse\n readonly request?: QuestionRequest\n }\n | {\n readonly _tag: 'QuestionCancelled'\n readonly response: QuestionResponse\n readonly request?: QuestionRequest\n }\n | { readonly _tag: 'Running'; readonly startedAtMs: number }\n | {\n readonly _tag: 'Completed'\n readonly result: ToolResult\n readonly startedAtMs?: number\n readonly endedAtMs?: number\n }\n | {\n readonly _tag: 'Errored'\n readonly message: string\n readonly startedAtMs?: number\n readonly endedAtMs?: number\n }\n | { readonly _tag: 'ProviderCompleted'; readonly result: ToolResult }\n\nexport type AgentChatPart =\n | {\n readonly _tag: 'Text'\n readonly id: string\n readonly content: Content\n readonly state: ChatPartState\n }\n | {\n readonly _tag: 'Reasoning'\n readonly id: string\n readonly text: string\n readonly state: ChatPartState\n }\n | {\n readonly _tag: 'ToolCall'\n readonly id: string\n readonly call: ToolCall\n readonly state: ChatToolState\n }\n | {\n readonly _tag: 'ToolResult'\n readonly id: string\n readonly toolCallId: string\n readonly name: string\n readonly content: Content\n readonly isError?: boolean\n readonly structuredContent?: unknown\n }\n | { readonly _tag: 'Error'; readonly id: string; readonly message: string }\n\nexport type AgentChatMessage = {\n readonly id: string\n readonly turnId: string\n readonly sequence: number\n readonly role: 'user' | 'assistant' | 'system'\n readonly createdAtMs?: number\n readonly author?: MessageAuthor\n readonly annotations?: MessageAnnotations\n readonly parts: ReadonlyArray<AgentChatPart>\n}\n\nexport type DeleteChatTurnResult =\n | { readonly _tag: 'NotFound' }\n | {\n readonly _tag: 'Deleted'\n readonly turnStartMessageId: string\n readonly deletedMessageIds: ReadonlyArray<string>\n readonly messages: ReadonlyArray<AgentChatMessage>\n }\n\nexport type EditChatUserMessageResult =\n | { readonly _tag: 'NotFound' }\n | { readonly _tag: 'NotUserMessage' }\n | {\n readonly _tag: 'Edited'\n readonly messageId: string\n readonly messages: ReadonlyArray<AgentChatMessage>\n }\n\nexport type RegenerateChatMessagesResult =\n | { readonly _tag: 'NotFound' }\n | {\n readonly _tag: 'Regenerated'\n readonly messages: ReadonlyArray<AgentChatMessage>\n }\n\nexport type ApplyAgentEventToChatMessagesOptions = {\n readonly nowMs?: number\n}\n\nconst messageId = (sequence: number, role: AgentChatMessage['role']) =>\n `message-${sequence}-${role}`\n\nconst turnId = (sequence: number) => `turn-${sequence}`\n\nconst lastTurnId = (messages: ReadonlyArray<AgentChatMessage>) => messages.at(-1)?.turnId\n\nconst nextMessageSequence = (messages: ReadonlyArray<AgentChatMessage>) =>\n messages.reduce((max, message) => Math.max(max, message.sequence), -1) + 1\n\nconst chatMessageEnvelope = (message: MessageEnvelope) => ({\n ...(message.createdAtMs === undefined ? {} : { createdAtMs: message.createdAtMs }),\n ...(message.author === undefined ? {} : { author: message.author }),\n ...(message.annotations === undefined ? {} : { annotations: message.annotations })\n})\n\nconst userChatMessage = (message: UserMessage, sequence: number): AgentChatMessage => ({\n id: messageId(sequence, 'user'),\n turnId: turnId(sequence),\n sequence,\n role: 'user',\n ...chatMessageEnvelope(message),\n parts: [\n {\n _tag: 'Text',\n id: `message-${sequence}-user-text`,\n content: message.content,\n state: 'done'\n }\n ]\n})\n\nexport type BuildAgentChatMessagesInput = {\n readonly messages: ReadonlyArray<AgentMessage>\n readonly userDraft: string\n readonly assistantDraft: string\n readonly reasoningDraft: string\n readonly toolRuns: ReadonlyArray<AgentToolRun>\n readonly error: string | null\n}\n\nconst toolRunNameEntry = (run: AgentToolRun): ReadonlyArray<readonly [string, string]> => {\n switch (run._tag) {\n case 'InputStreaming':\n return run.name === undefined ? [] : [[run.id, run.name]]\n case 'Denied':\n return []\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return run.request === undefined ? [] : [[run.request.call.id, run.request.call.name]]\n case 'QuestionRequested':\n return [[run.request.call.id, run.request.call.name]]\n case 'InputReady':\n case 'ApprovalRequested':\n case 'Executing':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return [[run.call.id, run.call.name]]\n }\n}\n\nconst assistantToolNameEntries = (\n message: AgentMessage\n): ReadonlyArray<readonly [string, string]> =>\n message._tag === 'Assistant'\n ? message.parts.flatMap(part =>\n part._tag === 'HostToolCall' || part._tag === 'ProviderToolCall'\n ? [[part.call.id, part.call.name]]\n : []\n )\n : []\n\nconst collectToolNames = (\n messages: ReadonlyArray<AgentMessage>,\n toolRuns: ReadonlyArray<AgentToolRun>\n): ReadonlyMap<string, string> =>\n new Map([...toolRuns.flatMap(toolRunNameEntry), ...messages.flatMap(assistantToolNameEntries)])\n\nconst toolResultEntry = (message: AgentMessage): ReadonlyArray<readonly [string, ToolResult]> =>\n message._tag === 'ToolResult'\n ? [\n [\n message.toolCallId,\n ToolResult.make({\n toolCallId: message.toolCallId,\n content: message.content,\n isError: message.isError,\n structuredContent: message.structuredContent\n })\n ]\n ]\n : []\n\nconst collectToolResultsById = (messages: ReadonlyArray<AgentMessage>) =>\n new Map(messages.flatMap(toolResultEntry))\n\nconst collectToolCallIds = (messages: ReadonlyArray<AgentMessage>): ReadonlySet<string> =>\n new Set(\n messages.flatMap(message =>\n message._tag === 'Assistant'\n ? message.parts.flatMap(part =>\n part._tag === 'HostToolCall' || part._tag === 'ProviderToolCall' ? [part.call.id] : []\n )\n : []\n )\n )\n\nconst toolRunEntry = (run: AgentToolRun): readonly [string, AgentToolRun] => {\n switch (run._tag) {\n case 'InputStreaming':\n return [run.id, run]\n case 'Denied':\n return [run.toolCallId, run]\n case 'QuestionRequested':\n return [run.request.toolCallId, run]\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return [run.response.toolCallId, run]\n case 'InputReady':\n case 'ApprovalRequested':\n case 'Executing':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return [run.call.id, run]\n }\n}\n\nconst collectToolRunsById = (\n runs: ReadonlyArray<AgentToolRun>\n): ReadonlyMap<string, AgentToolRun> => new Map(runs.map(toolRunEntry))\n\nconst questionRequestFromToolState = (state: ChatToolState): QuestionRequest | undefined => {\n switch (state._tag) {\n case 'QuestionRequested':\n return state.request\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return state.request\n case 'Called':\n case 'InputStreaming':\n case 'ApprovalRequested':\n case 'Denied':\n case 'Running':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return undefined\n }\n}\n\ntype QuestionTerminalState = Extract<\n ChatToolState,\n { readonly _tag: 'QuestionAnswered' | 'QuestionCancelled' }\n>\n\nconst preserveQuestionRequest = (\n request: QuestionRequest | undefined,\n state: QuestionTerminalState\n): QuestionTerminalState =>\n state.request !== undefined || request === undefined ? state : { ...state, request }\n\nconst toolStateFor = (\n run: AgentToolRun | undefined,\n result: ToolResult | undefined\n): ChatToolState => {\n if (run?._tag === 'Executing') {\n return { _tag: 'Running', startedAtMs: run.startedAtMs }\n }\n\n if (run?._tag === 'InputStreaming') {\n return { _tag: 'InputStreaming', input: run.input }\n }\n\n if (run?._tag === 'ApprovalRequested') {\n return { _tag: 'ApprovalRequested', request: run.request }\n }\n\n if (run?._tag === 'Denied') {\n return { _tag: 'Denied', reason: run.reason }\n }\n\n if (run?._tag === 'QuestionRequested') {\n return { _tag: 'QuestionRequested', request: run.request }\n }\n\n if (run?._tag === 'QuestionAnswered') {\n return preserveQuestionRequest(run.request, {\n _tag: 'QuestionAnswered',\n response: run.response\n })\n }\n\n if (run?._tag === 'QuestionCancelled') {\n return preserveQuestionRequest(run.request, {\n _tag: 'QuestionCancelled',\n response: run.response\n })\n }\n\n if (run?._tag === 'Completed') {\n return {\n _tag: 'Completed',\n result: run.result,\n startedAtMs: run.startedAtMs,\n endedAtMs: run.endedAtMs\n }\n }\n\n if (run?._tag === 'Errored') {\n return { _tag: 'Errored', message: run.message, endedAtMs: run.endedAtMs }\n }\n\n if (run?._tag === 'ProviderCompleted') {\n return { _tag: 'ProviderCompleted', result: run.result }\n }\n\n if (result !== undefined) {\n return { _tag: 'Completed', result }\n }\n\n return { _tag: 'Called' }\n}\n\nconst assistantPartsFromMessage = ({\n message,\n messageIndex,\n toolResultsById,\n toolRunsById\n}: {\n readonly message: Extract<AgentMessage, { readonly _tag: 'Assistant' }>\n readonly messageIndex: number\n readonly toolResultsById: ReadonlyMap<string, ToolResult>\n readonly toolRunsById: ReadonlyMap<string, AgentToolRun>\n}): ReadonlyArray<AgentChatPart> => {\n return message.parts.flatMap((part, partIndex): ReadonlyArray<AgentChatPart> => {\n switch (part._tag) {\n case 'Reasoning':\n return part.text.length > 0\n ? [\n {\n _tag: 'Reasoning',\n id: `message-${messageIndex}-reasoning-${partIndex}`,\n text: part.text,\n state: 'done'\n }\n ]\n : []\n case 'Text':\n return [\n {\n _tag: 'Text',\n id: `message-${messageIndex}-assistant-text-${partIndex}`,\n content: part.content,\n state: 'done'\n }\n ]\n case 'HostToolCall':\n case 'ProviderToolCall':\n return [\n {\n _tag: 'ToolCall',\n id: `message-${messageIndex}-tool-call-${part.call.id}`,\n call: part.call,\n state: toolStateFor(toolRunsById.get(part.call.id), toolResultsById.get(part.call.id))\n }\n ]\n case 'ProviderToolResult':\n return [\n {\n _tag: 'ToolResult',\n id: `message-${messageIndex}-provider-tool-result-${part.toolCallId}`,\n toolCallId: part.toolCallId,\n name: part.toolCallId,\n content: part.result.content,\n isError: part.result.isError,\n structuredContent: part.result.structuredContent\n }\n ]\n }\n })\n}\n\nconst assistantChatMessage = (\n message: AssistantAgentMessage,\n sequence: number,\n currentTurnId: string,\n parts: ReadonlyArray<AgentChatPart> = assistantPartsFromMessage({\n message,\n messageIndex: sequence,\n toolResultsById: new Map(),\n toolRunsById: new Map()\n })\n): AgentChatMessage => ({\n id: messageId(sequence, 'assistant'),\n turnId: currentTurnId,\n sequence,\n role: 'assistant',\n ...chatMessageEnvelope(message),\n parts\n})\n\nconst hasStreamingPart = (message: AgentChatMessage) =>\n message.parts.some(\n part => (part._tag === 'Text' || part._tag === 'Reasoning') && part.state === 'streaming'\n )\n\nconst hasStreamingTextPart = (message: AgentChatMessage) =>\n message.parts.some(part => part._tag === 'Text' && part.state === 'streaming')\n\nconst hasToolCall = (message: AgentChatMessage, callId: string) =>\n message.parts.some(part => part._tag === 'ToolCall' && part.call.id === callId)\n\nconst isOpenToolState = (state: ChatToolState) =>\n state._tag === 'Called' ||\n state._tag === 'InputStreaming' ||\n state._tag === 'ApprovalRequested' ||\n state._tag === 'QuestionRequested' ||\n state._tag === 'Running'\n\nconst hasOpenToolCall = (message: AgentChatMessage) =>\n message.parts.some(part => part._tag === 'ToolCall' && isOpenToolState(part.state))\n\nconst findLastMessageIndex = (\n messages: ReadonlyArray<AgentChatMessage>,\n predicate: (message: AgentChatMessage) => boolean\n) => messages.reduce((lastIndex, message, index) => (predicate(message) ? index : lastIndex), -1)\n\nconst findMessageIndex = (messages: ReadonlyArray<AgentChatMessage>, messageId: string) =>\n messages.findIndex(message => message.id === messageId)\n\nexport const deleteChatTurn = (\n messages: ReadonlyArray<AgentChatMessage>,\n messageId: string\n): DeleteChatTurnResult => {\n const targetIndex = findMessageIndex(messages, messageId)\n\n if (targetIndex === -1) {\n return { _tag: 'NotFound' }\n }\n\n const target = messages[targetIndex]\n\n if (target === undefined) {\n return { _tag: 'NotFound' }\n }\n\n const deletedMessages = messages.filter(message => message.turnId === target.turnId)\n const turnStartMessage = deletedMessages[0]\n\n return {\n _tag: 'Deleted',\n turnStartMessageId: turnStartMessage?.id ?? target.id,\n deletedMessageIds: deletedMessages.map(message => message.id),\n messages: messages.filter(message => message.turnId !== target.turnId)\n }\n}\n\nexport const regenerateChatMessagesFrom = (\n messages: ReadonlyArray<AgentChatMessage>,\n messageId: string\n): RegenerateChatMessagesResult => {\n const targetIndex = findMessageIndex(messages, messageId)\n\n if (targetIndex === -1) {\n return { _tag: 'NotFound' }\n }\n\n const target = messages[targetIndex]\n\n if (target === undefined) {\n return { _tag: 'NotFound' }\n }\n\n return {\n _tag: 'Regenerated',\n messages: messages.slice(0, target.role === 'user' ? targetIndex + 1 : targetIndex)\n }\n}\n\nexport const editChatUserMessage = (\n messages: ReadonlyArray<AgentChatMessage>,\n messageId: string,\n content: Content\n): EditChatUserMessageResult => {\n const targetIndex = findMessageIndex(messages, messageId)\n\n if (targetIndex === -1) {\n return { _tag: 'NotFound' }\n }\n\n const target = messages[targetIndex]\n\n if (target === undefined) {\n return { _tag: 'NotFound' }\n }\n\n if (target.role !== 'user') {\n return { _tag: 'NotUserMessage' }\n }\n\n return {\n _tag: 'Edited',\n messageId: target.id,\n messages: [\n ...messages.slice(0, targetIndex),\n {\n ...target,\n parts: [\n {\n _tag: 'Text',\n id: `message-${target.sequence}-user-text`,\n content,\n state: 'done'\n }\n ]\n }\n ]\n }\n}\n\nconst lastAssistantIndex = (messages: ReadonlyArray<AgentChatMessage>) => {\n const index = findLastMessageIndex(messages, message => message.role === 'assistant')\n\n return index === -1 ? Option.none<number>() : Option.some(index)\n}\n\nconst targetAssistantIndex = (messages: ReadonlyArray<AgentChatMessage>) =>\n Option.filter(lastAssistantIndex(messages), index => hasStreamingPart(messages[index]))\n\nconst appendAssistantPart = (\n messages: ReadonlyArray<AgentChatMessage>,\n part: AgentChatPart\n): ReadonlyArray<AgentChatMessage> =>\n Option.match(targetAssistantIndex(messages), {\n onNone: () => {\n const sequence = nextMessageSequence(messages)\n const currentTurnId = lastTurnId(messages) ?? turnId(sequence)\n\n return [\n ...messages,\n {\n id: messageId(sequence, 'assistant'),\n turnId: currentTurnId,\n sequence,\n role: 'assistant',\n parts: [part]\n }\n ]\n },\n onSome: index =>\n messages.map((message, messageIndex) =>\n messageIndex === index ? { ...message, parts: [...message.parts, part] } : message\n )\n })\n\nconst appendAssistantTextDelta = (\n messages: ReadonlyArray<AgentChatMessage>,\n input: { readonly delta: string; readonly textSoFar?: string }\n): ReadonlyArray<AgentChatMessage> => {\n const index = targetAssistantIndex(messages)\n const content = input.textSoFar ?? input.delta\n\n if (Option.isNone(index)) {\n const sequence = nextMessageSequence(messages)\n\n return appendAssistantPart(messages, {\n _tag: 'Text',\n id: `message-${sequence}-assistant-text`,\n content,\n state: 'streaming'\n })\n }\n\n return messages.map((message, messageIndex) =>\n messageIndex === index.value\n ? {\n ...message,\n parts: hasStreamingTextPart(message)\n ? message.parts.map(part =>\n part._tag === 'Text' && part.state === 'streaming'\n ? {\n ...part,\n content: input.textSoFar ?? appendTextToContent(part.content, input.delta)\n }\n : part\n )\n : [\n ...message.parts,\n {\n _tag: 'Text',\n id: `message-${message.sequence}-assistant-text`,\n content,\n state: 'streaming'\n }\n ]\n }\n : message\n )\n}\n\nconst appendAssistantReasoningDelta = (\n messages: ReadonlyArray<AgentChatMessage>,\n input: { readonly delta: string; readonly reasoningSoFar?: string }\n): ReadonlyArray<AgentChatMessage> => {\n const index = targetAssistantIndex(messages)\n const text = input.reasoningSoFar ?? input.delta\n\n if (Option.isNone(index)) {\n const sequence = nextMessageSequence(messages)\n\n return appendAssistantPart(messages, {\n _tag: 'Reasoning',\n id: `message-${sequence}-reasoning`,\n text,\n state: 'streaming'\n })\n }\n\n return messages.map((message, messageIndex) =>\n messageIndex === index.value\n ? {\n ...message,\n parts: message.parts.some(part => part._tag === 'Reasoning' && part.state === 'streaming')\n ? message.parts.map(part =>\n part._tag === 'Reasoning' && part.state === 'streaming'\n ? { ...part, text: input.reasoningSoFar ?? `${part.text}${input.delta}` }\n : part\n )\n : [\n ...message.parts,\n {\n _tag: 'Reasoning',\n id: `message-${message.sequence}-reasoning`,\n text,\n state: 'streaming'\n }\n ]\n }\n : message\n )\n}\n\nconst mergeToolState = (existing: ChatToolState, next: ChatToolState): ChatToolState => {\n if (next._tag === 'Errored') {\n return {\n ...next,\n startedAtMs:\n next.startedAtMs ??\n (existing._tag === 'Running' || existing._tag === 'Completed' || existing._tag === 'Errored'\n ? existing.startedAtMs\n : undefined),\n endedAtMs: next.endedAtMs ?? (existing._tag === 'Errored' ? existing.endedAtMs : undefined)\n }\n }\n\n if (next._tag === 'QuestionAnswered' || next._tag === 'QuestionCancelled') {\n return preserveQuestionRequest(questionRequestFromToolState(existing), next)\n }\n\n if (next._tag === 'Denied' || next._tag === 'ProviderCompleted') {\n return next\n }\n\n if (next._tag === 'Completed') {\n return {\n ...next,\n startedAtMs:\n next.startedAtMs ??\n (existing._tag === 'Running' || existing._tag === 'Completed'\n ? existing.startedAtMs\n : undefined),\n endedAtMs: next.endedAtMs ?? (existing._tag === 'Completed' ? existing.endedAtMs : undefined)\n }\n }\n\n if (next._tag === 'Running' && existing._tag === 'Completed') {\n return existing\n }\n\n return next\n}\n\nconst appendToolCallPart = (\n messages: ReadonlyArray<AgentChatMessage>,\n call: ToolCall,\n state: ChatToolState\n): ReadonlyArray<AgentChatMessage> => {\n const index = Option.filter(lastAssistantIndex(messages), assistantIndex => {\n const message = messages[assistantIndex]\n\n return hasStreamingPart(message) || hasOpenToolCall(message)\n })\n\n return Option.match(index, {\n onNone: () => {\n const sequence = nextMessageSequence(messages)\n const currentTurnId = lastTurnId(messages) ?? turnId(sequence)\n\n return [\n ...messages,\n {\n id: messageId(sequence, 'assistant'),\n turnId: currentTurnId,\n sequence,\n role: 'assistant',\n parts: [\n {\n _tag: 'ToolCall',\n id: `tool-call-${call.id}`,\n call,\n state\n }\n ]\n }\n ]\n },\n onSome: assistantIndex =>\n messages.map((message, messageIndex) =>\n messageIndex === assistantIndex\n ? {\n ...message,\n parts: [\n ...message.parts,\n {\n _tag: 'ToolCall',\n id: `tool-call-${call.id}`,\n call,\n state\n }\n ]\n }\n : message\n )\n })\n}\n\nconst upsertToolCallPart = (\n messages: ReadonlyArray<AgentChatMessage>,\n call: ToolCall,\n state: ChatToolState\n): ReadonlyArray<AgentChatMessage> => {\n const existingIndex = findLastMessageIndex(messages, message => hasToolCall(message, call.id))\n\n if (existingIndex !== -1) {\n return messages.map((message, messageIndex) =>\n messageIndex === existingIndex\n ? {\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === call.id\n ? { ...part, call, state: mergeToolState(part.state, state) }\n : part\n )\n }\n : message\n )\n }\n\n return appendToolCallPart(messages, call, state)\n}\n\nconst inputStreamingToolCall = (id: string, name: string | undefined) =>\n ToolCall.make({ id, name: name ?? id, params: {} })\n\nconst appendToolInputDelta = (\n messages: ReadonlyArray<AgentChatMessage>,\n id: string,\n delta: string\n): ReadonlyArray<AgentChatMessage> =>\n messages.map(message => ({\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === id && part.state._tag === 'InputStreaming'\n ? { ...part, state: { ...part.state, input: `${part.state.input}${delta}` } }\n : part\n )\n }))\n\nconst finalizeAssistantParts = (\n parts: ReadonlyArray<AgentChatPart>\n): ReadonlyArray<AgentChatPart> =>\n parts.map(part => {\n switch (part._tag) {\n case 'Text':\n case 'Reasoning':\n return { ...part, state: 'done' satisfies ChatPartState }\n case 'Error':\n case 'ToolCall':\n case 'ToolResult':\n return part\n }\n })\n\nconst toolStateEntry = (part: AgentChatPart): ReadonlyArray<readonly [string, ChatToolState]> =>\n part._tag === 'ToolCall' ? [[part.call.id, part.state]] : []\n\nconst toolStateByCallId = (parts: ReadonlyArray<AgentChatPart>) =>\n new Map(parts.flatMap(toolStateEntry))\n\nconst partsFromAssistantMessage = (\n message: AssistantAgentMessage,\n messageIndex: number,\n existingParts: ReadonlyArray<AgentChatPart>\n) => {\n const states = toolStateByCallId(existingParts)\n\n return assistantPartsFromMessage({\n message,\n messageIndex,\n toolResultsById: new Map(),\n toolRunsById: new Map()\n }).map(part =>\n part._tag === 'ToolCall' ? { ...part, state: states.get(part.call.id) ?? part.state } : part\n )\n}\n\nconst appendOrReplaceAssistantMessage = (\n messages: ReadonlyArray<AgentChatMessage>,\n message: AssistantAgentMessage\n) => {\n const messageToolCallIds = message.parts.flatMap(part =>\n part._tag === 'HostToolCall' || part._tag === 'ProviderToolCall' ? [part.call.id] : []\n )\n const index = Option.filter(lastAssistantIndex(messages), assistantIndex => {\n const current = messages[assistantIndex]\n\n return (\n hasStreamingPart(current) || messageToolCallIds.some(callId => hasToolCall(current, callId))\n )\n })\n\n return Option.match(index, {\n onNone: () => {\n const sequence = nextMessageSequence(messages)\n\n return [\n ...messages,\n assistantChatMessage(message, sequence, lastTurnId(messages) ?? turnId(sequence))\n ]\n },\n onSome: assistantIndex =>\n messages.map((current, messageIndex) =>\n messageIndex === assistantIndex\n ? {\n ...current,\n parts: partsFromAssistantMessage(message, current.sequence, current.parts)\n }\n : current\n )\n })\n}\n\nconst appendOrphanToolResult = (\n messages: ReadonlyArray<AgentChatMessage>,\n result: ToolResult\n): ReadonlyArray<AgentChatMessage> => {\n const sequence = nextMessageSequence(messages)\n const currentTurnId = lastTurnId(messages) ?? turnId(sequence)\n\n return [\n ...messages,\n {\n id: `message-${sequence}-tool-result-message`,\n turnId: currentTurnId,\n sequence,\n role: 'system',\n parts: [\n {\n _tag: 'ToolResult',\n id: `tool-result-${result.toolCallId}`,\n toolCallId: result.toolCallId,\n name: result.toolCallId,\n content: result.content,\n isError: result.isError,\n structuredContent: result.structuredContent\n }\n ]\n }\n ]\n}\n\nconst clearTransientParts = (\n messages: ReadonlyArray<AgentChatMessage>\n): ReadonlyArray<AgentChatMessage> =>\n messages.flatMap(message => {\n const parts = message.parts.filter(part => part._tag !== 'Error')\n\n return parts.length > 0 ? [{ ...message, parts }] : []\n })\n\nconst finalizeStreamingParts = (\n messages: ReadonlyArray<AgentChatMessage>\n): ReadonlyArray<AgentChatMessage> =>\n messages.map(message =>\n message.role === 'assistant'\n ? { ...message, parts: finalizeAssistantParts(message.parts) }\n : message\n )\n\nconst appendRunMessagesIfEmpty = (\n messages: ReadonlyArray<AgentChatMessage>,\n runMessages: ReadonlyArray<AgentMessage>\n) => {\n const lastUserMessageIndex = findLastMessageIndex(messages, message => message.role === 'user')\n const hasAssistantAfterLastUser = messages.some(\n (message, index) => message.role === 'assistant' && index > lastUserMessageIndex\n )\n\n if (runMessages.length === 0 || hasAssistantAfterLastUser) {\n return messages\n }\n\n return [\n ...messages,\n ...buildAgentChatMessages({\n messages: runMessages,\n userDraft: '',\n assistantDraft: '',\n reasoningDraft: '',\n toolRuns: [],\n error: null\n })\n ]\n}\n\nexport const appendProtocolMessage = (\n messages: ReadonlyArray<AgentChatMessage>,\n message: AgentMessage\n) => {\n const sequence = nextMessageSequence(messages)\n\n switch (message._tag) {\n case 'User':\n return [...messages, userChatMessage(message, sequence)]\n case 'Assistant':\n return [\n ...messages,\n assistantChatMessage(message, sequence, lastTurnId(messages) ?? turnId(sequence))\n ]\n case 'ToolResult':\n return appendOrphanToolResult(\n messages,\n ToolResult.make({\n toolCallId: message.toolCallId,\n content: message.content,\n isError: message.isError,\n structuredContent: message.structuredContent\n })\n )\n }\n}\n\nexport const markChatError = (\n messages: ReadonlyArray<AgentChatMessage>,\n message: string\n): ReadonlyArray<AgentChatMessage> => [\n ...messages.filter(chatMessage => !chatMessage.parts.some(part => part._tag === 'Error')),\n {\n id: 'error-message',\n turnId: 'error-turn',\n sequence: nextMessageSequence(messages),\n role: 'system',\n parts: [{ _tag: 'Error', id: 'error', message }]\n }\n]\n\n/**\n * Applies one event without tracking `eventId` replay state.\n *\n * Prefer `applyAgentEventToChatProjection` for durable streams that can replay\n * or overlap. Append-only text and reasoning deltas are not idempotent here.\n */\nexport const applyAgentEventToChatMessages = (\n messages: ReadonlyArray<AgentChatMessage>,\n event: AgentEvent,\n options: ApplyAgentEventToChatMessagesOptions = {}\n): ReadonlyArray<AgentChatMessage> => {\n const eventTimeMs = event.createdAtMs ?? options.nowMs ?? 0\n\n switch (event._tag) {\n case 'AgentStart':\n return clearTransientParts(messages)\n case 'LLMTextDelta':\n return appendAssistantTextDelta(messages, { delta: event.text, textSoFar: event.textSoFar })\n case 'LLMReasoningDelta':\n return appendAssistantReasoningDelta(messages, {\n delta: event.text,\n reasoningSoFar: event.reasoningSoFar\n })\n case 'ToolInputEnd':\n return upsertToolCallPart(messages, event.call, { _tag: 'Called' })\n case 'AssistantMessage':\n return appendOrReplaceAssistantMessage(messages, event.message)\n case 'ToolInputStart':\n return upsertToolCallPart(messages, inputStreamingToolCall(event.id, event.name), {\n _tag: 'InputStreaming',\n input: ''\n })\n case 'ToolInputDelta':\n return appendToolInputDelta(messages, event.id, event.delta)\n case 'ToolApprovalRequested':\n return upsertToolCallPart(messages, event.call, {\n _tag: 'ApprovalRequested',\n request: event.request\n })\n case 'ToolApprovalGranted':\n return messages\n case 'ToolApprovalDenied':\n return messages.map(message => ({\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === event.toolCallId\n ? { ...part, state: { _tag: 'Denied', reason: event.reason } }\n : part\n )\n }))\n case 'QuestionRequested':\n return upsertToolCallPart(messages, event.request.call, {\n _tag: 'QuestionRequested',\n request: event.request\n })\n case 'QuestionAnswered':\n return messages.map(message => ({\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === event.response.toolCallId\n ? {\n ...part,\n state: preserveQuestionRequest(questionRequestFromToolState(part.state), {\n _tag: 'QuestionAnswered',\n response: event.response\n })\n }\n : part\n )\n }))\n case 'QuestionCancelled':\n return messages.map(message => ({\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === event.response.toolCallId\n ? {\n ...part,\n state: preserveQuestionRequest(questionRequestFromToolState(part.state), {\n _tag: 'QuestionCancelled',\n response: event.response\n })\n }\n : part\n )\n }))\n case 'ToolExecutionStarted':\n return upsertToolCallPart(messages, event.call, { _tag: 'Running', startedAtMs: eventTimeMs })\n case 'ToolExecutionCompleted':\n return upsertToolCallPart(messages, event.call, {\n _tag: 'Completed',\n result: event.result,\n endedAtMs: eventTimeMs\n })\n case 'ToolExecutionError':\n return upsertToolCallPart(messages, event.call, {\n _tag: 'Errored',\n message: event.message,\n endedAtMs: eventTimeMs\n })\n case 'ProviderToolResult':\n return upsertToolCallPart(messages, event.call, {\n _tag: 'ProviderCompleted',\n result: event.result\n })\n case 'AgentError':\n return markChatError(messages, event.message)\n case 'AgentEnd':\n return appendRunMessagesIfEmpty(finalizeStreamingParts(messages), event.messages)\n case 'AgentAwaitingInput':\n return appendRunMessagesIfEmpty(finalizeStreamingParts(messages), event.messages)\n case 'AgentRetry':\n case 'CompactionEnd':\n case 'CompactionStart':\n case 'LLMStreamEnd':\n case 'LLMStreamStart':\n case 'SubagentCompleted':\n case 'SubagentStarted':\n case 'TurnEnd':\n case 'TurnStart':\n case 'UsageUpdate':\n return messages\n }\n}\n\nconst chatMessagesFromProtocolMessage = ({\n message,\n sequence,\n currentTurnId,\n toolNames,\n toolResultsById,\n toolCallIds,\n toolRunsById\n}: {\n readonly message: AgentMessage\n readonly sequence: number\n readonly currentTurnId: string\n readonly toolNames: ReadonlyMap<string, string>\n readonly toolResultsById: ReadonlyMap<string, ToolResult>\n readonly toolCallIds: ReadonlySet<string>\n readonly toolRunsById: ReadonlyMap<string, AgentToolRun>\n}): ReadonlyArray<AgentChatMessage> => {\n switch (message._tag) {\n case 'User':\n return [userChatMessage(message, sequence)]\n case 'Assistant':\n return [\n {\n id: messageId(sequence, 'assistant'),\n turnId: currentTurnId,\n sequence,\n role: 'assistant',\n parts: assistantPartsFromMessage({\n message,\n messageIndex: sequence,\n toolResultsById,\n toolRunsById\n })\n }\n ]\n case 'ToolResult':\n return toolCallIds.has(message.toolCallId)\n ? []\n : [\n {\n id: `message-${sequence}-tool-result-message`,\n turnId: currentTurnId,\n sequence,\n role: 'system',\n parts: [\n {\n _tag: 'ToolResult',\n id: `message-${sequence}-tool-result-${message.toolCallId}`,\n toolCallId: message.toolCallId,\n name: toolNames.get(message.toolCallId) ?? message.toolCallId,\n content: message.content,\n isError: message.isError,\n structuredContent: message.structuredContent\n }\n ]\n }\n ]\n }\n}\n\nconst draftUserMessage = (userDraft: string): ReadonlyArray<AgentChatMessage> =>\n userDraft.length > 0\n ? [\n {\n id: 'draft-user',\n turnId: 'draft-user-turn',\n sequence: -1,\n role: 'user',\n parts: [{ _tag: 'Text', id: 'draft-user-text', content: userDraft, state: 'streaming' }]\n }\n ]\n : []\n\nconst draftReasoningPart = (reasoningDraft: string): ReadonlyArray<AgentChatPart> =>\n reasoningDraft.length > 0\n ? [\n {\n _tag: 'Reasoning',\n id: 'draft-reasoning',\n text: reasoningDraft,\n state: 'streaming'\n }\n ]\n : []\n\nconst draftTextPart = (assistantDraft: string): ReadonlyArray<AgentChatPart> =>\n assistantDraft.length > 0\n ? [\n {\n _tag: 'Text',\n id: 'draft-assistant-text',\n content: assistantDraft,\n state: 'streaming'\n }\n ]\n : []\n\nconst draftAssistantPart = ({\n reasoningDraft,\n assistantDraft\n}: {\n readonly reasoningDraft: string\n readonly assistantDraft: string\n}): ReadonlyArray<AgentChatPart> => [\n ...draftReasoningPart(reasoningDraft),\n ...draftTextPart(assistantDraft)\n]\n\nconst draftAssistantMessage = ({\n reasoningDraft,\n assistantDraft\n}: {\n readonly reasoningDraft: string\n readonly assistantDraft: string\n}): ReadonlyArray<AgentChatMessage> => {\n const parts = draftAssistantPart({ reasoningDraft, assistantDraft })\n\n return parts.length > 0\n ? [\n {\n id: 'draft-assistant',\n turnId: 'draft-assistant-turn',\n sequence: -1,\n role: 'assistant',\n parts\n }\n ]\n : []\n}\n\nconst errorChatMessage = (message: string | null): ReadonlyArray<AgentChatMessage> =>\n message === null\n ? []\n : [\n {\n id: 'error-message',\n turnId: 'error-turn',\n sequence: -1,\n role: 'system',\n parts: [{ _tag: 'Error', id: 'error', message }]\n }\n ]\n\nexport const buildAgentChatMessages = ({\n messages,\n userDraft,\n assistantDraft,\n reasoningDraft,\n toolRuns,\n error\n}: BuildAgentChatMessagesInput): ReadonlyArray<AgentChatMessage> => {\n const toolNames = collectToolNames(messages, toolRuns)\n const toolResultsById = collectToolResultsById(messages)\n const toolCallIds = collectToolCallIds(messages)\n const toolRunsById = collectToolRunsById(toolRuns)\n\n const builtMessages = messages.reduce<ReadonlyArray<AgentChatMessage>>(\n (current, message, index) => {\n const currentTurnId =\n message._tag === 'User' ? turnId(index) : (lastTurnId(current) ?? turnId(index))\n\n return [\n ...current,\n ...chatMessagesFromProtocolMessage({\n message,\n sequence: index,\n currentTurnId,\n toolNames,\n toolResultsById,\n toolCallIds,\n toolRunsById\n })\n ]\n },\n []\n )\n\n return [\n ...builtMessages,\n ...draftUserMessage(userDraft),\n ...draftAssistantMessage({ reasoningDraft, assistantDraft }),\n ...errorChatMessage(error)\n ]\n}\n\nconst collectContent = (parts: ReadonlyArray<AgentChatPart>): Content => {\n const contentPartsList = parts\n .filter(part => part._tag === 'Text')\n .flatMap(part => contentParts(part.content))\n\n const onlyPart = contentPartsList[0]\n\n if (onlyPart !== undefined && contentPartsList.length === 1 && onlyPart._tag === 'Text') {\n return onlyPart.text\n }\n\n return contentPartsList\n}\n\nconst collectToolResultMessages = (parts: ReadonlyArray<AgentChatPart>) =>\n parts.flatMap(part => {\n switch (part._tag) {\n case 'ToolCall': {\n if (part.state._tag === 'Completed') {\n return [\n ToolResultMessage.make({\n toolCallId: part.state.result.toolCallId,\n content: part.state.result.content,\n isError: part.state.result.isError,\n structuredContent: part.state.result.structuredContent\n })\n ]\n }\n\n if (part.state._tag === 'Denied') {\n return [\n ToolResultMessage.make({\n toolCallId: part.call.id,\n content: `Tool call denied: ${part.state.reason}`,\n isError: true,\n structuredContent: { type: 'tool_approval_denied', reason: part.state.reason }\n })\n ]\n }\n\n if (part.state._tag === 'QuestionAnswered' || part.state._tag === 'QuestionCancelled') {\n const response = part.state.response\n\n return [\n ToolResultMessage.make({\n toolCallId: response.toolCallId,\n content: formatQuestionResponseContent(response, part.state.request?.questions),\n isError: response.outcome === 'cancelled' ? true : undefined,\n structuredContent: questionResponseStructuredContent(response)\n })\n ]\n }\n\n return []\n }\n case 'ToolResult':\n return [\n ToolResultMessage.make({\n toolCallId: part.toolCallId,\n content: part.content,\n isError: part.isError,\n structuredContent: part.structuredContent\n })\n ]\n case 'Error':\n case 'Reasoning':\n case 'Text':\n return []\n }\n })\n\nconst assistantProtocolPartsFromChatParts = (\n parts: ReadonlyArray<AgentChatPart>\n): ReadonlyArray<AssistantPart> =>\n parts.flatMap((part): ReadonlyArray<AssistantPart> => {\n switch (part._tag) {\n case 'Text':\n return isContentEmpty(part.content)\n ? []\n : [AssistantTextPart.make({ content: part.content })]\n case 'Reasoning':\n return part.text.length === 0 ? [] : [AssistantReasoningPart.make({ text: part.text })]\n case 'ToolCall':\n return part.state._tag === 'ProviderCompleted'\n ? [\n ProviderToolCallPart.make({ call: part.call }),\n ProviderToolResultPart.make({\n toolCallId: part.call.id,\n result: part.state.result\n })\n ]\n : [HostToolCallPart.make({ call: part.call })]\n case 'Error':\n case 'ToolResult':\n return []\n }\n })\n\nconst assistantMessageFromParts = (message: AgentChatMessage) => {\n const parts = message.parts\n const assistantParts = assistantProtocolPartsFromChatParts(parts)\n\n if (assistantParts.length === 0) {\n return Option.none<AgentMessage>()\n }\n\n return Option.some(\n AssistantAgentMessage.make({ ...chatMessageEnvelope(message), parts: assistantParts })\n )\n}\n\nconst protocolMessagesFromChatMessage = (\n message: AgentChatMessage\n): ReadonlyArray<AgentMessage> => {\n switch (message.role) {\n case 'user': {\n const content = collectContent(message.parts)\n\n return isContentEmpty(content)\n ? []\n : [UserMessage.make({ ...chatMessageEnvelope(message), content })]\n }\n case 'assistant':\n return [\n ...Arr.getSomes([assistantMessageFromParts(message)]),\n ...collectToolResultMessages(message.parts)\n ]\n case 'system':\n return collectToolResultMessages(message.parts)\n }\n}\n\nexport const toAgentMessages = (messages: ReadonlyArray<AgentChatMessage>) =>\n Arr.flatMap(messages, protocolMessagesFromChatMessage)\n"],"mappings":"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"}
1
+ {"version":3,"file":"chat-messages.mjs","names":["Arr"],"sources":["../../src/react/chat-messages.ts"],"sourcesContent":["import { Array as Arr, Option } from 'effect'\nimport type { AgentToolRun } from '@yolk-sdk/agent/client'\nimport {\n AssistantAgentMessage,\n AssistantReasoningPart,\n AssistantTextPart,\n HostToolCallPart,\n ProviderToolCallPart,\n ProviderToolResultPart,\n type QuestionRequest,\n type QuestionResponse,\n type ToolApprovalRequest,\n ToolResult,\n ToolResultMessage,\n ToolCall,\n UserMessage,\n appendTextToContent,\n contentParts,\n formatQuestionResponseContent,\n isContentEmpty,\n questionResponseStructuredContent,\n type AgentEvent,\n type AgentMessage,\n type AssistantPart,\n type Content,\n type MessageAnnotations,\n type MessageAuthor,\n type MessageEnvelope\n} from '@yolk-sdk/agent/protocol'\n\nexport type ChatPartState = 'streaming' | 'done'\n\nexport type ChatToolState =\n | { readonly _tag: 'Called' }\n | { readonly _tag: 'InputStreaming'; readonly input: string }\n | { readonly _tag: 'ApprovalRequested'; readonly request?: ToolApprovalRequest }\n | { readonly _tag: 'Denied'; readonly reason: string }\n | { readonly _tag: 'QuestionRequested'; readonly request: QuestionRequest }\n | {\n readonly _tag: 'QuestionAnswered'\n readonly response: QuestionResponse\n readonly request?: QuestionRequest\n }\n | {\n readonly _tag: 'QuestionCancelled'\n readonly response: QuestionResponse\n readonly request?: QuestionRequest\n }\n | { readonly _tag: 'Running'; readonly startedAtMs: number }\n | {\n readonly _tag: 'Completed'\n readonly result: ToolResult\n readonly startedAtMs?: number\n readonly endedAtMs?: number\n }\n | {\n readonly _tag: 'Errored'\n readonly message: string\n readonly startedAtMs?: number\n readonly endedAtMs?: number\n }\n | { readonly _tag: 'ProviderCompleted'; readonly result: ToolResult }\n\nexport type AgentChatPart =\n | {\n readonly _tag: 'Text'\n readonly id: string\n readonly content: Content\n readonly state: ChatPartState\n }\n | {\n readonly _tag: 'Reasoning'\n readonly id: string\n readonly text: string\n readonly state: ChatPartState\n }\n | {\n readonly _tag: 'ToolCall'\n readonly id: string\n readonly call: ToolCall\n readonly state: ChatToolState\n }\n | {\n readonly _tag: 'ToolResult'\n readonly id: string\n readonly toolCallId: string\n readonly name: string\n readonly content: Content\n readonly isError?: boolean\n readonly structuredContent?: unknown\n }\n | { readonly _tag: 'Error'; readonly id: string; readonly message: string }\n\nexport type AgentChatMessage = {\n readonly id: string\n readonly turnId: string\n readonly sequence: number\n readonly role: 'user' | 'assistant' | 'system'\n readonly createdAtMs?: number\n readonly author?: MessageAuthor\n readonly annotations?: MessageAnnotations\n readonly parts: ReadonlyArray<AgentChatPart>\n}\n\nexport type DeleteChatTurnResult =\n | { readonly _tag: 'NotFound' }\n | {\n readonly _tag: 'Deleted'\n readonly turnStartMessageId: string\n readonly deletedMessageIds: ReadonlyArray<string>\n readonly messages: ReadonlyArray<AgentChatMessage>\n }\n\nexport type EditChatUserMessageResult =\n | { readonly _tag: 'NotFound' }\n | { readonly _tag: 'NotUserMessage' }\n | {\n readonly _tag: 'Edited'\n readonly messageId: string\n readonly messages: ReadonlyArray<AgentChatMessage>\n }\n\nexport type RegenerateChatMessagesResult =\n | { readonly _tag: 'NotFound' }\n | {\n readonly _tag: 'Regenerated'\n readonly messages: ReadonlyArray<AgentChatMessage>\n }\n\nexport type ApplyAgentEventToChatMessagesOptions = {\n readonly nowMs?: number\n}\n\nconst messageId = (sequence: number, role: AgentChatMessage['role']) =>\n `message-${sequence}-${role}`\n\nconst turnId = (sequence: number) => `turn-${sequence}`\n\nconst lastTurnId = (messages: ReadonlyArray<AgentChatMessage>) => messages.at(-1)?.turnId\n\nconst nextMessageSequence = (messages: ReadonlyArray<AgentChatMessage>) =>\n messages.reduce((max, message) => Math.max(max, message.sequence), -1) + 1\n\nconst chatMessageEnvelope = (message: MessageEnvelope) => ({\n ...(message.createdAtMs === undefined ? {} : { createdAtMs: message.createdAtMs }),\n ...(message.author === undefined ? {} : { author: message.author }),\n ...(message.annotations === undefined ? {} : { annotations: message.annotations })\n})\n\nconst userChatMessage = (message: UserMessage, sequence: number): AgentChatMessage => ({\n id: messageId(sequence, 'user'),\n turnId: turnId(sequence),\n sequence,\n role: 'user',\n ...chatMessageEnvelope(message),\n parts: [\n {\n _tag: 'Text',\n id: `message-${sequence}-user-text`,\n content: message.content,\n state: 'done'\n }\n ]\n})\n\nexport type BuildAgentChatMessagesInput = {\n readonly messages: ReadonlyArray<AgentMessage>\n readonly userDraft: string\n readonly assistantDraft: string\n readonly reasoningDraft: string\n readonly toolRuns: ReadonlyArray<AgentToolRun>\n readonly error: string | null\n}\n\nconst toolRunNameEntry = (run: AgentToolRun): ReadonlyArray<readonly [string, string]> => {\n switch (run._tag) {\n case 'InputStreaming':\n return run.name === undefined ? [] : [[run.id, run.name]]\n case 'Denied':\n return []\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return run.request === undefined ? [] : [[run.request.call.id, run.request.call.name]]\n case 'QuestionRequested':\n return [[run.request.call.id, run.request.call.name]]\n case 'InputReady':\n case 'ApprovalRequested':\n case 'Executing':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return [[run.call.id, run.call.name]]\n }\n}\n\nconst assistantToolNameEntries = (\n message: AgentMessage\n): ReadonlyArray<readonly [string, string]> =>\n message._tag === 'Assistant'\n ? message.parts.flatMap(part =>\n part._tag === 'HostToolCall' || part._tag === 'ProviderToolCall'\n ? [[part.call.id, part.call.name]]\n : []\n )\n : []\n\nconst collectToolNames = (\n messages: ReadonlyArray<AgentMessage>,\n toolRuns: ReadonlyArray<AgentToolRun>\n): ReadonlyMap<string, string> =>\n new Map([...toolRuns.flatMap(toolRunNameEntry), ...messages.flatMap(assistantToolNameEntries)])\n\nconst toolResultEntry = (message: AgentMessage): ReadonlyArray<readonly [string, ToolResult]> =>\n message._tag === 'ToolResult'\n ? [\n [\n message.toolCallId,\n ToolResult.make({\n toolCallId: message.toolCallId,\n content: message.content,\n isError: message.isError,\n structuredContent: message.structuredContent\n })\n ]\n ]\n : []\n\nconst collectToolResultsById = (messages: ReadonlyArray<AgentMessage>) =>\n new Map(messages.flatMap(toolResultEntry))\n\nconst collectToolCallIds = (messages: ReadonlyArray<AgentMessage>): ReadonlySet<string> =>\n new Set(\n messages.flatMap(message =>\n message._tag === 'Assistant'\n ? message.parts.flatMap(part =>\n part._tag === 'HostToolCall' || part._tag === 'ProviderToolCall' ? [part.call.id] : []\n )\n : []\n )\n )\n\nconst toolRunEntry = (run: AgentToolRun): readonly [string, AgentToolRun] => {\n switch (run._tag) {\n case 'InputStreaming':\n return [run.id, run]\n case 'Denied':\n return [run.toolCallId, run]\n case 'QuestionRequested':\n return [run.request.toolCallId, run]\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return [run.response.toolCallId, run]\n case 'InputReady':\n case 'ApprovalRequested':\n case 'Executing':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return [run.call.id, run]\n }\n}\n\nconst collectToolRunsById = (\n runs: ReadonlyArray<AgentToolRun>\n): ReadonlyMap<string, AgentToolRun> => new Map(runs.map(toolRunEntry))\n\nconst questionRequestFromToolState = (state: ChatToolState): QuestionRequest | undefined => {\n switch (state._tag) {\n case 'QuestionRequested':\n return state.request\n case 'QuestionAnswered':\n case 'QuestionCancelled':\n return state.request\n case 'Called':\n case 'InputStreaming':\n case 'ApprovalRequested':\n case 'Denied':\n case 'Running':\n case 'Completed':\n case 'Errored':\n case 'ProviderCompleted':\n return undefined\n }\n}\n\ntype QuestionTerminalState = Extract<\n ChatToolState,\n { readonly _tag: 'QuestionAnswered' | 'QuestionCancelled' }\n>\n\nconst preserveQuestionRequest = (\n request: QuestionRequest | undefined,\n state: QuestionTerminalState\n): QuestionTerminalState =>\n state.request !== undefined || request === undefined ? state : { ...state, request }\n\nconst toolStateFor = (\n run: AgentToolRun | undefined,\n result: ToolResult | undefined\n): ChatToolState => {\n if (run?._tag === 'Executing') {\n return { _tag: 'Running', startedAtMs: run.startedAtMs }\n }\n\n if (run?._tag === 'InputStreaming') {\n return { _tag: 'InputStreaming', input: run.input }\n }\n\n if (run?._tag === 'ApprovalRequested') {\n return { _tag: 'ApprovalRequested', request: run.request }\n }\n\n if (run?._tag === 'Denied') {\n return { _tag: 'Denied', reason: run.reason }\n }\n\n if (run?._tag === 'QuestionRequested') {\n return { _tag: 'QuestionRequested', request: run.request }\n }\n\n if (run?._tag === 'QuestionAnswered') {\n return preserveQuestionRequest(run.request, {\n _tag: 'QuestionAnswered',\n response: run.response\n })\n }\n\n if (run?._tag === 'QuestionCancelled') {\n return preserveQuestionRequest(run.request, {\n _tag: 'QuestionCancelled',\n response: run.response\n })\n }\n\n if (run?._tag === 'Completed') {\n return {\n _tag: 'Completed',\n result: run.result,\n startedAtMs: run.startedAtMs,\n endedAtMs: run.endedAtMs\n }\n }\n\n if (run?._tag === 'Errored') {\n return { _tag: 'Errored', message: run.message, endedAtMs: run.endedAtMs }\n }\n\n if (run?._tag === 'ProviderCompleted') {\n return { _tag: 'ProviderCompleted', result: run.result }\n }\n\n if (result !== undefined) {\n return { _tag: 'Completed', result }\n }\n\n return { _tag: 'Called' }\n}\n\nconst assistantPartsFromMessage = ({\n message,\n messageIndex,\n toolResultsById,\n toolRunsById\n}: {\n readonly message: Extract<AgentMessage, { readonly _tag: 'Assistant' }>\n readonly messageIndex: number\n readonly toolResultsById: ReadonlyMap<string, ToolResult>\n readonly toolRunsById: ReadonlyMap<string, AgentToolRun>\n}): ReadonlyArray<AgentChatPart> => {\n return message.parts.flatMap((part, partIndex): ReadonlyArray<AgentChatPart> => {\n switch (part._tag) {\n case 'Reasoning':\n return part.text.length > 0\n ? [\n {\n _tag: 'Reasoning',\n id: `message-${messageIndex}-reasoning-${partIndex}`,\n text: part.text,\n state: 'done'\n }\n ]\n : []\n case 'Text':\n return [\n {\n _tag: 'Text',\n id: `message-${messageIndex}-assistant-text-${partIndex}`,\n content: part.content,\n state: 'done'\n }\n ]\n case 'HostToolCall':\n case 'ProviderToolCall':\n return [\n {\n _tag: 'ToolCall',\n id: `message-${messageIndex}-tool-call-${part.call.id}`,\n call: part.call,\n state: toolStateFor(toolRunsById.get(part.call.id), toolResultsById.get(part.call.id))\n }\n ]\n case 'ProviderToolResult':\n return [\n {\n _tag: 'ToolResult',\n id: `message-${messageIndex}-provider-tool-result-${part.toolCallId}`,\n toolCallId: part.toolCallId,\n name: part.toolCallId,\n content: part.result.content,\n isError: part.result.isError,\n structuredContent: part.result.structuredContent\n }\n ]\n }\n })\n}\n\nconst assistantChatMessage = (\n message: AssistantAgentMessage,\n sequence: number,\n currentTurnId: string,\n parts: ReadonlyArray<AgentChatPart> = assistantPartsFromMessage({\n message,\n messageIndex: sequence,\n toolResultsById: new Map(),\n toolRunsById: new Map()\n })\n): AgentChatMessage => ({\n id: messageId(sequence, 'assistant'),\n turnId: currentTurnId,\n sequence,\n role: 'assistant',\n ...chatMessageEnvelope(message),\n parts\n})\n\nconst hasStreamingPart = (message: AgentChatMessage) =>\n message.parts.some(\n part => (part._tag === 'Text' || part._tag === 'Reasoning') && part.state === 'streaming'\n )\n\nconst hasStreamingTextPart = (message: AgentChatMessage) =>\n message.parts.some(part => part._tag === 'Text' && part.state === 'streaming')\n\nconst hasToolCall = (message: AgentChatMessage, callId: string) =>\n message.parts.some(part => part._tag === 'ToolCall' && part.call.id === callId)\n\nconst isOpenToolState = (state: ChatToolState) =>\n state._tag === 'Called' ||\n state._tag === 'InputStreaming' ||\n state._tag === 'ApprovalRequested' ||\n state._tag === 'QuestionRequested' ||\n state._tag === 'Running'\n\nconst hasOpenToolCall = (message: AgentChatMessage) =>\n message.parts.some(part => part._tag === 'ToolCall' && isOpenToolState(part.state))\n\nconst findLastMessageIndex = (\n messages: ReadonlyArray<AgentChatMessage>,\n predicate: (message: AgentChatMessage) => boolean\n) => messages.reduce((lastIndex, message, index) => (predicate(message) ? index : lastIndex), -1)\n\nconst findMessageIndex = (messages: ReadonlyArray<AgentChatMessage>, messageId: string) =>\n messages.findIndex(message => message.id === messageId)\n\nexport const deleteChatTurn = (\n messages: ReadonlyArray<AgentChatMessage>,\n messageId: string\n): DeleteChatTurnResult => {\n const targetIndex = findMessageIndex(messages, messageId)\n\n if (targetIndex === -1) {\n return { _tag: 'NotFound' }\n }\n\n const target = messages[targetIndex]\n\n if (target === undefined) {\n return { _tag: 'NotFound' }\n }\n\n const deletedMessages = messages.filter(message => message.turnId === target.turnId)\n const turnStartMessage = deletedMessages[0]\n\n return {\n _tag: 'Deleted',\n turnStartMessageId: turnStartMessage?.id ?? target.id,\n deletedMessageIds: deletedMessages.map(message => message.id),\n messages: messages.filter(message => message.turnId !== target.turnId)\n }\n}\n\nexport const regenerateChatMessagesFrom = (\n messages: ReadonlyArray<AgentChatMessage>,\n messageId: string\n): RegenerateChatMessagesResult => {\n const targetIndex = findMessageIndex(messages, messageId)\n\n if (targetIndex === -1) {\n return { _tag: 'NotFound' }\n }\n\n const target = messages[targetIndex]\n\n if (target === undefined) {\n return { _tag: 'NotFound' }\n }\n\n return {\n _tag: 'Regenerated',\n messages: messages.slice(0, target.role === 'user' ? targetIndex + 1 : targetIndex)\n }\n}\n\nexport const editChatUserMessage = (\n messages: ReadonlyArray<AgentChatMessage>,\n messageId: string,\n content: Content\n): EditChatUserMessageResult => {\n const targetIndex = findMessageIndex(messages, messageId)\n\n if (targetIndex === -1) {\n return { _tag: 'NotFound' }\n }\n\n const target = messages[targetIndex]\n\n if (target === undefined) {\n return { _tag: 'NotFound' }\n }\n\n if (target.role !== 'user') {\n return { _tag: 'NotUserMessage' }\n }\n\n return {\n _tag: 'Edited',\n messageId: target.id,\n messages: [\n ...messages.slice(0, targetIndex),\n {\n ...target,\n parts: [\n {\n _tag: 'Text',\n id: `message-${target.sequence}-user-text`,\n content,\n state: 'done'\n }\n ]\n }\n ]\n }\n}\n\nconst lastAssistantIndex = (messages: ReadonlyArray<AgentChatMessage>) => {\n const index = findLastMessageIndex(messages, message => message.role === 'assistant')\n\n return index === -1 ? Option.none<number>() : Option.some(index)\n}\n\nconst targetAssistantIndex = (messages: ReadonlyArray<AgentChatMessage>) =>\n Option.filter(lastAssistantIndex(messages), index => hasStreamingPart(messages[index]))\n\nconst appendAssistantPart = (\n messages: ReadonlyArray<AgentChatMessage>,\n part: AgentChatPart\n): ReadonlyArray<AgentChatMessage> =>\n Option.match(targetAssistantIndex(messages), {\n onNone: () => {\n const sequence = nextMessageSequence(messages)\n const currentTurnId = lastTurnId(messages) ?? turnId(sequence)\n\n return [\n ...messages,\n {\n id: messageId(sequence, 'assistant'),\n turnId: currentTurnId,\n sequence,\n role: 'assistant',\n parts: [part]\n }\n ]\n },\n onSome: index =>\n messages.map((message, messageIndex) =>\n messageIndex === index ? { ...message, parts: [...message.parts, part] } : message\n )\n })\n\nconst appendAssistantTextDelta = (\n messages: ReadonlyArray<AgentChatMessage>,\n input: { readonly delta: string; readonly textSoFar?: string }\n): ReadonlyArray<AgentChatMessage> => {\n const index = targetAssistantIndex(messages)\n const content = input.textSoFar ?? input.delta\n\n if (Option.isNone(index)) {\n const sequence = nextMessageSequence(messages)\n\n return appendAssistantPart(messages, {\n _tag: 'Text',\n id: `message-${sequence}-assistant-text`,\n content,\n state: 'streaming'\n })\n }\n\n return messages.map((message, messageIndex) =>\n messageIndex === index.value\n ? {\n ...message,\n parts: hasStreamingTextPart(message)\n ? message.parts.map(part =>\n part._tag === 'Text' && part.state === 'streaming'\n ? {\n ...part,\n content: input.textSoFar ?? appendTextToContent(part.content, input.delta)\n }\n : part\n )\n : [\n ...message.parts,\n {\n _tag: 'Text',\n id: `message-${message.sequence}-assistant-text`,\n content,\n state: 'streaming'\n }\n ]\n }\n : message\n )\n}\n\nconst appendAssistantReasoningDelta = (\n messages: ReadonlyArray<AgentChatMessage>,\n input: { readonly delta: string; readonly reasoningSoFar?: string }\n): ReadonlyArray<AgentChatMessage> => {\n const index = targetAssistantIndex(messages)\n const text = input.reasoningSoFar ?? input.delta\n\n if (Option.isNone(index)) {\n const sequence = nextMessageSequence(messages)\n\n return appendAssistantPart(messages, {\n _tag: 'Reasoning',\n id: `message-${sequence}-reasoning`,\n text,\n state: 'streaming'\n })\n }\n\n return messages.map((message, messageIndex) =>\n messageIndex === index.value\n ? {\n ...message,\n parts: message.parts.some(part => part._tag === 'Reasoning' && part.state === 'streaming')\n ? message.parts.map(part =>\n part._tag === 'Reasoning' && part.state === 'streaming'\n ? { ...part, text: input.reasoningSoFar ?? `${part.text}${input.delta}` }\n : part\n )\n : [\n ...message.parts,\n {\n _tag: 'Reasoning',\n id: `message-${message.sequence}-reasoning`,\n text,\n state: 'streaming'\n }\n ]\n }\n : message\n )\n}\n\nconst mergeToolState = (existing: ChatToolState, next: ChatToolState): ChatToolState => {\n if (next._tag === 'Errored') {\n return {\n ...next,\n startedAtMs:\n next.startedAtMs ??\n (existing._tag === 'Running' || existing._tag === 'Completed' || existing._tag === 'Errored'\n ? existing.startedAtMs\n : undefined),\n endedAtMs: next.endedAtMs ?? (existing._tag === 'Errored' ? existing.endedAtMs : undefined)\n }\n }\n\n if (next._tag === 'QuestionAnswered' || next._tag === 'QuestionCancelled') {\n return preserveQuestionRequest(questionRequestFromToolState(existing), next)\n }\n\n if (next._tag === 'Denied' || next._tag === 'ProviderCompleted') {\n return next\n }\n\n if (next._tag === 'Completed') {\n return {\n ...next,\n startedAtMs:\n next.startedAtMs ??\n (existing._tag === 'Running' || existing._tag === 'Completed'\n ? existing.startedAtMs\n : undefined),\n endedAtMs: next.endedAtMs ?? (existing._tag === 'Completed' ? existing.endedAtMs : undefined)\n }\n }\n\n if (next._tag === 'Running' && existing._tag === 'Completed') {\n return existing\n }\n\n return next\n}\n\nconst appendToolCallPart = (\n messages: ReadonlyArray<AgentChatMessage>,\n call: ToolCall,\n state: ChatToolState\n): ReadonlyArray<AgentChatMessage> => {\n const index = Option.filter(lastAssistantIndex(messages), assistantIndex => {\n const message = messages[assistantIndex]\n\n return hasStreamingPart(message) || hasOpenToolCall(message)\n })\n\n return Option.match(index, {\n onNone: () => {\n const sequence = nextMessageSequence(messages)\n const currentTurnId = lastTurnId(messages) ?? turnId(sequence)\n\n return [\n ...messages,\n {\n id: messageId(sequence, 'assistant'),\n turnId: currentTurnId,\n sequence,\n role: 'assistant',\n parts: [\n {\n _tag: 'ToolCall',\n id: `tool-call-${call.id}`,\n call,\n state\n }\n ]\n }\n ]\n },\n onSome: assistantIndex =>\n messages.map((message, messageIndex) =>\n messageIndex === assistantIndex\n ? {\n ...message,\n parts: [\n ...message.parts,\n {\n _tag: 'ToolCall',\n id: `tool-call-${call.id}`,\n call,\n state\n }\n ]\n }\n : message\n )\n })\n}\n\nconst upsertToolCallPart = (\n messages: ReadonlyArray<AgentChatMessage>,\n call: ToolCall,\n state: ChatToolState\n): ReadonlyArray<AgentChatMessage> => {\n const existingIndex = findLastMessageIndex(messages, message => hasToolCall(message, call.id))\n\n if (existingIndex !== -1) {\n return messages.map((message, messageIndex) =>\n messageIndex === existingIndex\n ? {\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === call.id\n ? { ...part, call, state: mergeToolState(part.state, state) }\n : part\n )\n }\n : message\n )\n }\n\n return appendToolCallPart(messages, call, state)\n}\n\nconst inputStreamingToolCall = (id: string, name: string | undefined) =>\n ToolCall.make({ id, name: name ?? id, params: {} })\n\nconst appendToolInputDelta = (\n messages: ReadonlyArray<AgentChatMessage>,\n id: string,\n delta: string\n): ReadonlyArray<AgentChatMessage> =>\n messages.map(message => ({\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === id && part.state._tag === 'InputStreaming'\n ? { ...part, state: { ...part.state, input: `${part.state.input}${delta}` } }\n : part\n )\n }))\n\nconst finalizeAssistantParts = (\n parts: ReadonlyArray<AgentChatPart>\n): ReadonlyArray<AgentChatPart> =>\n parts.map(part => {\n switch (part._tag) {\n case 'Text':\n case 'Reasoning':\n return { ...part, state: 'done' satisfies ChatPartState }\n case 'Error':\n case 'ToolCall':\n case 'ToolResult':\n return part\n }\n })\n\nconst toolStateEntry = (part: AgentChatPart): ReadonlyArray<readonly [string, ChatToolState]> =>\n part._tag === 'ToolCall' ? [[part.call.id, part.state]] : []\n\nconst toolStateByCallId = (parts: ReadonlyArray<AgentChatPart>) =>\n new Map(parts.flatMap(toolStateEntry))\n\nconst partsFromAssistantMessage = (\n message: AssistantAgentMessage,\n messageIndex: number,\n existingParts: ReadonlyArray<AgentChatPart>\n) => {\n const states = toolStateByCallId(existingParts)\n\n return assistantPartsFromMessage({\n message,\n messageIndex,\n toolResultsById: new Map(),\n toolRunsById: new Map()\n }).map(part =>\n part._tag === 'ToolCall' ? { ...part, state: states.get(part.call.id) ?? part.state } : part\n )\n}\n\nconst appendOrReplaceAssistantMessage = (\n messages: ReadonlyArray<AgentChatMessage>,\n message: AssistantAgentMessage\n) => {\n const messageToolCallIds = message.parts.flatMap(part =>\n part._tag === 'HostToolCall' || part._tag === 'ProviderToolCall' ? [part.call.id] : []\n )\n const index = Option.filter(lastAssistantIndex(messages), assistantIndex => {\n const current = messages[assistantIndex]\n\n return (\n hasStreamingPart(current) || messageToolCallIds.some(callId => hasToolCall(current, callId))\n )\n })\n\n return Option.match(index, {\n onNone: () => {\n const sequence = nextMessageSequence(messages)\n\n return [\n ...messages,\n assistantChatMessage(message, sequence, lastTurnId(messages) ?? turnId(sequence))\n ]\n },\n onSome: assistantIndex =>\n messages.map((current, messageIndex) =>\n messageIndex === assistantIndex\n ? {\n ...current,\n parts: partsFromAssistantMessage(message, current.sequence, current.parts)\n }\n : current\n )\n })\n}\n\nconst appendOrphanToolResult = (\n messages: ReadonlyArray<AgentChatMessage>,\n result: ToolResult\n): ReadonlyArray<AgentChatMessage> => {\n const sequence = nextMessageSequence(messages)\n const currentTurnId = lastTurnId(messages) ?? turnId(sequence)\n\n return [\n ...messages,\n {\n id: `message-${sequence}-tool-result-message`,\n turnId: currentTurnId,\n sequence,\n role: 'system',\n parts: [\n {\n _tag: 'ToolResult',\n id: `tool-result-${result.toolCallId}`,\n toolCallId: result.toolCallId,\n name: result.toolCallId,\n content: result.content,\n isError: result.isError,\n structuredContent: result.structuredContent\n }\n ]\n }\n ]\n}\n\nconst clearTransientParts = (\n messages: ReadonlyArray<AgentChatMessage>\n): ReadonlyArray<AgentChatMessage> =>\n messages.flatMap(message => {\n const parts = message.parts.filter(part => part._tag !== 'Error')\n\n return parts.length > 0 ? [{ ...message, parts }] : []\n })\n\nconst finalizeStreamingParts = (\n messages: ReadonlyArray<AgentChatMessage>\n): ReadonlyArray<AgentChatMessage> =>\n messages.map(message =>\n message.role === 'assistant'\n ? { ...message, parts: finalizeAssistantParts(message.parts) }\n : message\n )\n\nconst appendRunMessagesIfEmpty = (\n messages: ReadonlyArray<AgentChatMessage>,\n runMessages: ReadonlyArray<AgentMessage>\n) => {\n const lastUserMessageIndex = findLastMessageIndex(messages, message => message.role === 'user')\n const hasAssistantAfterLastUser = messages.some(\n (message, index) => message.role === 'assistant' && index > lastUserMessageIndex\n )\n\n if (runMessages.length === 0 || hasAssistantAfterLastUser) {\n return messages\n }\n\n return [\n ...messages,\n ...buildAgentChatMessages({\n messages: runMessages,\n userDraft: '',\n assistantDraft: '',\n reasoningDraft: '',\n toolRuns: [],\n error: null\n })\n ]\n}\n\nexport const appendProtocolMessage = (\n messages: ReadonlyArray<AgentChatMessage>,\n message: AgentMessage\n) => {\n const sequence = nextMessageSequence(messages)\n\n switch (message._tag) {\n case 'User':\n return [...messages, userChatMessage(message, sequence)]\n case 'Assistant':\n return [\n ...messages,\n assistantChatMessage(message, sequence, lastTurnId(messages) ?? turnId(sequence))\n ]\n case 'ToolResult':\n return appendOrphanToolResult(\n messages,\n ToolResult.make({\n toolCallId: message.toolCallId,\n content: message.content,\n isError: message.isError,\n structuredContent: message.structuredContent\n })\n )\n }\n}\n\nexport const markChatError = (\n messages: ReadonlyArray<AgentChatMessage>,\n message: string\n): ReadonlyArray<AgentChatMessage> => [\n ...messages.filter(chatMessage => !chatMessage.parts.some(part => part._tag === 'Error')),\n {\n id: 'error-message',\n turnId: 'error-turn',\n sequence: nextMessageSequence(messages),\n role: 'system',\n parts: [{ _tag: 'Error', id: 'error', message }]\n }\n]\n\n/**\n * Applies one event without tracking `eventId` replay state.\n *\n * Prefer `applyAgentEventToChatProjection` for durable streams that can replay\n * or overlap. Append-only text and reasoning deltas are not idempotent here.\n */\nexport const applyAgentEventToChatMessages = (\n messages: ReadonlyArray<AgentChatMessage>,\n event: AgentEvent,\n options: ApplyAgentEventToChatMessagesOptions = {}\n): ReadonlyArray<AgentChatMessage> => {\n const eventTimeMs = event.createdAtMs ?? options.nowMs ?? 0\n\n switch (event._tag) {\n case 'AgentStart':\n return clearTransientParts(messages)\n case 'LLMTextDelta':\n return appendAssistantTextDelta(messages, { delta: event.text, textSoFar: event.textSoFar })\n case 'LLMReasoningDelta':\n return appendAssistantReasoningDelta(messages, {\n delta: event.text,\n reasoningSoFar: event.reasoningSoFar\n })\n case 'ToolInputEnd':\n return upsertToolCallPart(messages, event.call, { _tag: 'Called' })\n case 'UserMessage':\n return appendProtocolMessage(messages, event.message)\n case 'AssistantMessage':\n return appendOrReplaceAssistantMessage(messages, event.message)\n case 'ToolInputStart':\n return upsertToolCallPart(messages, inputStreamingToolCall(event.id, event.name), {\n _tag: 'InputStreaming',\n input: ''\n })\n case 'ToolInputDelta':\n return appendToolInputDelta(messages, event.id, event.delta)\n case 'ToolApprovalRequested':\n return upsertToolCallPart(messages, event.call, {\n _tag: 'ApprovalRequested',\n request: event.request\n })\n case 'ToolApprovalGranted':\n return messages\n case 'ToolApprovalDenied':\n return messages.map(message => ({\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === event.toolCallId\n ? { ...part, state: { _tag: 'Denied', reason: event.reason } }\n : part\n )\n }))\n case 'QuestionRequested':\n return upsertToolCallPart(messages, event.request.call, {\n _tag: 'QuestionRequested',\n request: event.request\n })\n case 'QuestionAnswered':\n return messages.map(message => ({\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === event.response.toolCallId\n ? {\n ...part,\n state: preserveQuestionRequest(questionRequestFromToolState(part.state), {\n _tag: 'QuestionAnswered',\n response: event.response\n })\n }\n : part\n )\n }))\n case 'QuestionCancelled':\n return messages.map(message => ({\n ...message,\n parts: message.parts.map(part =>\n part._tag === 'ToolCall' && part.call.id === event.response.toolCallId\n ? {\n ...part,\n state: preserveQuestionRequest(questionRequestFromToolState(part.state), {\n _tag: 'QuestionCancelled',\n response: event.response\n })\n }\n : part\n )\n }))\n case 'ToolExecutionStarted':\n return upsertToolCallPart(messages, event.call, { _tag: 'Running', startedAtMs: eventTimeMs })\n case 'ToolExecutionCompleted':\n return upsertToolCallPart(messages, event.call, {\n _tag: 'Completed',\n result: event.result,\n endedAtMs: eventTimeMs\n })\n case 'ToolExecutionError':\n return upsertToolCallPart(messages, event.call, {\n _tag: 'Errored',\n message: event.message,\n endedAtMs: eventTimeMs\n })\n case 'ProviderToolResult':\n return upsertToolCallPart(messages, event.call, {\n _tag: 'ProviderCompleted',\n result: event.result\n })\n case 'AgentError':\n return markChatError(messages, event.message)\n case 'AgentEnd':\n return appendRunMessagesIfEmpty(finalizeStreamingParts(messages), event.messages)\n case 'AgentAwaitingInput':\n return appendRunMessagesIfEmpty(finalizeStreamingParts(messages), event.messages)\n case 'AgentRetry':\n case 'CompactionEnd':\n case 'CompactionStart':\n case 'LLMStreamEnd':\n case 'LLMStreamStart':\n case 'SubagentCompleted':\n case 'SubagentStarted':\n case 'TurnEnd':\n case 'TurnStart':\n case 'UsageUpdate':\n return messages\n }\n}\n\nconst chatMessagesFromProtocolMessage = ({\n message,\n sequence,\n currentTurnId,\n toolNames,\n toolResultsById,\n toolCallIds,\n toolRunsById\n}: {\n readonly message: AgentMessage\n readonly sequence: number\n readonly currentTurnId: string\n readonly toolNames: ReadonlyMap<string, string>\n readonly toolResultsById: ReadonlyMap<string, ToolResult>\n readonly toolCallIds: ReadonlySet<string>\n readonly toolRunsById: ReadonlyMap<string, AgentToolRun>\n}): ReadonlyArray<AgentChatMessage> => {\n switch (message._tag) {\n case 'User':\n return [userChatMessage(message, sequence)]\n case 'Assistant':\n return [\n {\n id: messageId(sequence, 'assistant'),\n turnId: currentTurnId,\n sequence,\n role: 'assistant',\n parts: assistantPartsFromMessage({\n message,\n messageIndex: sequence,\n toolResultsById,\n toolRunsById\n })\n }\n ]\n case 'ToolResult':\n return toolCallIds.has(message.toolCallId)\n ? []\n : [\n {\n id: `message-${sequence}-tool-result-message`,\n turnId: currentTurnId,\n sequence,\n role: 'system',\n parts: [\n {\n _tag: 'ToolResult',\n id: `message-${sequence}-tool-result-${message.toolCallId}`,\n toolCallId: message.toolCallId,\n name: toolNames.get(message.toolCallId) ?? message.toolCallId,\n content: message.content,\n isError: message.isError,\n structuredContent: message.structuredContent\n }\n ]\n }\n ]\n }\n}\n\nconst draftUserMessage = (userDraft: string): ReadonlyArray<AgentChatMessage> =>\n userDraft.length > 0\n ? [\n {\n id: 'draft-user',\n turnId: 'draft-user-turn',\n sequence: -1,\n role: 'user',\n parts: [{ _tag: 'Text', id: 'draft-user-text', content: userDraft, state: 'streaming' }]\n }\n ]\n : []\n\nconst draftReasoningPart = (reasoningDraft: string): ReadonlyArray<AgentChatPart> =>\n reasoningDraft.length > 0\n ? [\n {\n _tag: 'Reasoning',\n id: 'draft-reasoning',\n text: reasoningDraft,\n state: 'streaming'\n }\n ]\n : []\n\nconst draftTextPart = (assistantDraft: string): ReadonlyArray<AgentChatPart> =>\n assistantDraft.length > 0\n ? [\n {\n _tag: 'Text',\n id: 'draft-assistant-text',\n content: assistantDraft,\n state: 'streaming'\n }\n ]\n : []\n\nconst draftAssistantPart = ({\n reasoningDraft,\n assistantDraft\n}: {\n readonly reasoningDraft: string\n readonly assistantDraft: string\n}): ReadonlyArray<AgentChatPart> => [\n ...draftReasoningPart(reasoningDraft),\n ...draftTextPart(assistantDraft)\n]\n\nconst draftAssistantMessage = ({\n reasoningDraft,\n assistantDraft\n}: {\n readonly reasoningDraft: string\n readonly assistantDraft: string\n}): ReadonlyArray<AgentChatMessage> => {\n const parts = draftAssistantPart({ reasoningDraft, assistantDraft })\n\n return parts.length > 0\n ? [\n {\n id: 'draft-assistant',\n turnId: 'draft-assistant-turn',\n sequence: -1,\n role: 'assistant',\n parts\n }\n ]\n : []\n}\n\nconst errorChatMessage = (message: string | null): ReadonlyArray<AgentChatMessage> =>\n message === null\n ? []\n : [\n {\n id: 'error-message',\n turnId: 'error-turn',\n sequence: -1,\n role: 'system',\n parts: [{ _tag: 'Error', id: 'error', message }]\n }\n ]\n\nexport const buildAgentChatMessages = ({\n messages,\n userDraft,\n assistantDraft,\n reasoningDraft,\n toolRuns,\n error\n}: BuildAgentChatMessagesInput): ReadonlyArray<AgentChatMessage> => {\n const toolNames = collectToolNames(messages, toolRuns)\n const toolResultsById = collectToolResultsById(messages)\n const toolCallIds = collectToolCallIds(messages)\n const toolRunsById = collectToolRunsById(toolRuns)\n\n const builtMessages = messages.reduce<ReadonlyArray<AgentChatMessage>>(\n (current, message, index) => {\n const currentTurnId =\n message._tag === 'User' ? turnId(index) : (lastTurnId(current) ?? turnId(index))\n\n return [\n ...current,\n ...chatMessagesFromProtocolMessage({\n message,\n sequence: index,\n currentTurnId,\n toolNames,\n toolResultsById,\n toolCallIds,\n toolRunsById\n })\n ]\n },\n []\n )\n\n return [\n ...builtMessages,\n ...draftUserMessage(userDraft),\n ...draftAssistantMessage({ reasoningDraft, assistantDraft }),\n ...errorChatMessage(error)\n ]\n}\n\nconst collectContent = (parts: ReadonlyArray<AgentChatPart>): Content => {\n const contentPartsList = parts\n .filter(part => part._tag === 'Text')\n .flatMap(part => contentParts(part.content))\n\n const onlyPart = contentPartsList[0]\n\n if (onlyPart !== undefined && contentPartsList.length === 1 && onlyPart._tag === 'Text') {\n return onlyPart.text\n }\n\n return contentPartsList\n}\n\nconst collectToolResultMessages = (parts: ReadonlyArray<AgentChatPart>) =>\n parts.flatMap(part => {\n switch (part._tag) {\n case 'ToolCall': {\n if (part.state._tag === 'Completed') {\n return [\n ToolResultMessage.make({\n toolCallId: part.state.result.toolCallId,\n content: part.state.result.content,\n isError: part.state.result.isError,\n structuredContent: part.state.result.structuredContent\n })\n ]\n }\n\n if (part.state._tag === 'Denied') {\n return [\n ToolResultMessage.make({\n toolCallId: part.call.id,\n content: `Tool call denied: ${part.state.reason}`,\n isError: true,\n structuredContent: { type: 'tool_approval_denied', reason: part.state.reason }\n })\n ]\n }\n\n if (part.state._tag === 'QuestionAnswered' || part.state._tag === 'QuestionCancelled') {\n const response = part.state.response\n\n return [\n ToolResultMessage.make({\n toolCallId: response.toolCallId,\n content: formatQuestionResponseContent(response, part.state.request?.questions),\n isError: response.outcome === 'cancelled' ? true : undefined,\n structuredContent: questionResponseStructuredContent(response)\n })\n ]\n }\n\n return []\n }\n case 'ToolResult':\n return [\n ToolResultMessage.make({\n toolCallId: part.toolCallId,\n content: part.content,\n isError: part.isError,\n structuredContent: part.structuredContent\n })\n ]\n case 'Error':\n case 'Reasoning':\n case 'Text':\n return []\n }\n })\n\nconst assistantProtocolPartsFromChatParts = (\n parts: ReadonlyArray<AgentChatPart>\n): ReadonlyArray<AssistantPart> =>\n parts.flatMap((part): ReadonlyArray<AssistantPart> => {\n switch (part._tag) {\n case 'Text':\n return isContentEmpty(part.content)\n ? []\n : [AssistantTextPart.make({ content: part.content })]\n case 'Reasoning':\n return part.text.length === 0 ? [] : [AssistantReasoningPart.make({ text: part.text })]\n case 'ToolCall':\n return part.state._tag === 'ProviderCompleted'\n ? [\n ProviderToolCallPart.make({ call: part.call }),\n ProviderToolResultPart.make({\n toolCallId: part.call.id,\n result: part.state.result\n })\n ]\n : [HostToolCallPart.make({ call: part.call })]\n case 'Error':\n case 'ToolResult':\n return []\n }\n })\n\nconst assistantMessageFromParts = (message: AgentChatMessage) => {\n const parts = message.parts\n const assistantParts = assistantProtocolPartsFromChatParts(parts)\n\n if (assistantParts.length === 0) {\n return Option.none<AgentMessage>()\n }\n\n return Option.some(\n AssistantAgentMessage.make({ ...chatMessageEnvelope(message), parts: assistantParts })\n )\n}\n\nconst protocolMessagesFromChatMessage = (\n message: AgentChatMessage\n): ReadonlyArray<AgentMessage> => {\n switch (message.role) {\n case 'user': {\n const content = collectContent(message.parts)\n\n return isContentEmpty(content)\n ? []\n : [UserMessage.make({ ...chatMessageEnvelope(message), content })]\n }\n case 'assistant':\n return [\n ...Arr.getSomes([assistantMessageFromParts(message)]),\n ...collectToolResultMessages(message.parts)\n ]\n case 'system':\n return collectToolResultMessages(message.parts)\n }\n}\n\nexport const toAgentMessages = (messages: ReadonlyArray<AgentChatMessage>) =>\n Arr.flatMap(messages, protocolMessagesFromChatMessage)\n"],"mappings":"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"}
@@ -17,8 +17,8 @@ declare const mergeSkillsets: (sources: ReadonlyArray<SkillsetSource>) => Effect
17
17
  skills: {
18
18
  readonly name: string;
19
19
  readonly description: string;
20
- readonly location: string;
21
20
  readonly content: string;
21
+ readonly location: string;
22
22
  readonly source?: string | undefined;
23
23
  }[];
24
24
  commands: {
@@ -27,7 +27,6 @@ declare const mergeSkillsets: (sources: ReadonlyArray<SkillsetSource>) => Effect
27
27
  readonly template: string;
28
28
  readonly description?: string | undefined;
29
29
  readonly source?: string | undefined;
30
- readonly location?: string | undefined;
31
30
  readonly arguments?: readonly {
32
31
  readonly required: boolean;
33
32
  readonly name: string;
@@ -35,6 +34,7 @@ declare const mergeSkillsets: (sources: ReadonlyArray<SkillsetSource>) => Effect
35
34
  }[] | undefined;
36
35
  readonly access?: "read" | "write" | "destructive" | undefined;
37
36
  readonly fileRefs?: boolean | undefined;
37
+ readonly location?: string | undefined;
38
38
  }[];
39
39
  }, SkillsetError, never>;
40
40
  //#endregion
@@ -3,8 +3,8 @@ import { Effect } from "effect";
3
3
 
4
4
  //#region src/skillset/name.d.ts
5
5
  declare const isValidSkillsetName: (name: string) => boolean;
6
- declare const validateSkillsetName: (name: string) => Effect.Effect<never, SkillsetError, never> | Effect.Effect<string, never, never>;
7
- declare const validateDirectoryName: (expected: string, actual: string) => Effect.Effect<never, SkillsetError, never> | Effect.Effect<string, never, never>;
6
+ declare const validateSkillsetName: (name: string) => Effect.Effect<string, never, never> | Effect.Effect<never, SkillsetError, never>;
7
+ declare const validateDirectoryName: (expected: string, actual: string) => Effect.Effect<string, never, never> | Effect.Effect<never, SkillsetError, never>;
8
8
  //#endregion
9
9
  export { isValidSkillsetName, validateDirectoryName, validateSkillsetName };
10
10
  //# sourceMappingURL=name.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"name.d.mts","names":[],"sources":["../../src/skillset/name.ts"],"mappings":";;;;cAMa,mBAAA,GAAuB,IAAY;AAAA,cAGnC,oBAAA,GAAwB,IAAA,aAAY,MAAA,CAAA,MAAA,QAAA,aAAA,WAAA,MAAA,CAAA,MAAA;AAAA,cAUpC,qBAAA,GAAyB,QAAA,UAAkB,MAAA,aAAc,MAAA,CAAA,MAAA,QAAA,aAAA,WAAA,MAAA,CAAA,MAAA"}
1
+ {"version":3,"file":"name.d.mts","names":[],"sources":["../../src/skillset/name.ts"],"mappings":";;;;cAMa,mBAAA,GAAuB,IAAY;AAAA,cAGnC,oBAAA,GAAwB,IAAA,aAAY,MAAA,CAAA,MAAA,yBAAA,MAAA,CAAA,MAAA,QAAA,aAAA;AAAA,cAUpC,qBAAA,GAAyB,QAAA,UAAkB,MAAA,aAAc,MAAA,CAAA,MAAA,yBAAA,MAAA,CAAA,MAAA,QAAA,aAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@yolk-sdk/agent",
3
- "version": "0.1.0-canary.66",
4
- "description": "Protocol, loop, runtime, client, compaction, tools, React, providers, OAuth, skillset, and voice primitives for building Yolk agents.",
3
+ "version": "0.1.0-canary.67",
4
+ "description": "Agent protocol, loop, runtime, Effect-native client, compaction, tools, React, providers, OAuth, skillset, and voice primitives.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "sideEffects": false,
@@ -392,6 +392,7 @@ const applyAgentEventUnchecked = (
392
392
  result: event.result
393
393
  })
394
394
  })
395
+ case 'UserMessage':
395
396
  case 'AssistantMessage':
396
397
  return clearRetryInfo({
397
398
  ...state,
@@ -1,5 +1,5 @@
1
1
  import * as Schema from 'effect/Schema'
2
- import { AssistantAgentMessage, AgentMessage } from './message.ts'
2
+ import { AssistantAgentMessage, AgentMessage, UserMessage } from './message.ts'
3
3
  import {
4
4
  HitlRequest,
5
5
  QuestionAnswer,
@@ -220,6 +220,11 @@ export class LLMStreamEnd extends Schema.TaggedClass<LLMStreamEnd>()('LLMStreamE
220
220
  turn: Schema.Number
221
221
  }) {}
222
222
 
223
+ export class UserMessageEvent extends Schema.TaggedClass<UserMessageEvent>()('UserMessage', {
224
+ ...EventIdentity,
225
+ message: UserMessage
226
+ }) {}
227
+
223
228
  export class AssistantMessageEvent extends Schema.TaggedClass<AssistantMessageEvent>()(
224
229
  'AssistantMessage',
225
230
  {
@@ -359,6 +364,7 @@ export const AgentEvent = Schema.Union([
359
364
  ToolInputDelta,
360
365
  ToolInputEnd,
361
366
  LLMStreamEnd,
367
+ UserMessageEvent,
362
368
  AssistantMessageEvent,
363
369
  ToolApprovalRequested,
364
370
  ToolApprovalGranted,
@@ -81,6 +81,7 @@ export {
81
81
  TurnEnd,
82
82
  TurnStart,
83
83
  UsageUpdate,
84
+ UserMessageEvent,
84
85
  isTerminalAgentEvent,
85
86
  type TerminalAgentEvent
86
87
  } from './event.ts'
@@ -323,6 +323,7 @@ export const reduceAgentChatState = (
323
323
  case 'TurnEnd':
324
324
  case 'TurnStart':
325
325
  case 'UsageUpdate':
326
+ case 'UserMessage':
326
327
  return rememberEvent(
327
328
  clearRetryInfo({
328
329
  ...state,
@@ -1024,6 +1024,8 @@ export const applyAgentEventToChatMessages = (
1024
1024
  })
1025
1025
  case 'ToolInputEnd':
1026
1026
  return upsertToolCallPart(messages, event.call, { _tag: 'Called' })
1027
+ case 'UserMessage':
1028
+ return appendProtocolMessage(messages, event.message)
1027
1029
  case 'AssistantMessage':
1028
1030
  return appendOrReplaceAssistantMessage(messages, event.message)
1029
1031
  case 'ToolInputStart':