@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 +2 -2
- package/dist/client/state.d.mts.map +1 -1
- package/dist/client/state.mjs +1 -0
- package/dist/client/state.mjs.map +1 -1
- package/dist/client/transport.d.mts +10 -10
- package/dist/client/transport.d.mts.map +1 -1
- package/dist/protocol/event.d.mts +8 -2
- package/dist/protocol/event.d.mts.map +1 -1
- package/dist/protocol/event.mjs +7 -2
- package/dist/protocol/event.mjs.map +1 -1
- package/dist/protocol/index.d.mts +2 -2
- package/dist/protocol/index.d.mts.map +1 -1
- package/dist/protocol/index.mjs +2 -2
- package/dist/protocol/session.d.mts +2 -2
- package/dist/protocol/session.d.mts.map +1 -1
- package/dist/react/chat-core.d.mts.map +1 -1
- package/dist/react/chat-core.mjs +2 -1
- package/dist/react/chat-core.mjs.map +1 -1
- package/dist/react/chat-messages.d.mts.map +1 -1
- package/dist/react/chat-messages.mjs +1 -0
- package/dist/react/chat-messages.mjs.map +1 -1
- package/dist/skillset/merge.d.mts +2 -2
- package/dist/skillset/name.d.mts +2 -2
- package/dist/skillset/name.d.mts.map +1 -1
- package/package.json +2 -2
- package/src/client/state.ts +1 -0
- package/src/protocol/event.ts +7 -1
- package/src/protocol/index.ts +1 -0
- package/src/react/chat-core.ts +1 -0
- package/src/react/chat-messages.ts +2 -0
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
|
|
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,
|
|
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"}
|
package/dist/client/state.mjs
CHANGED
|
@@ -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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"}
|
package/dist/protocol/event.mjs
CHANGED
|
@@ -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":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/protocol/index.ts"],"mappings":";;;;;;;;;;KAuKY,SAAA"}
|
package/dist/protocol/index.mjs
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/react/chat-core.mjs
CHANGED
|
@@ -189,7 +189,8 @@ const reduceAgentChatState = (state, action) => {
|
|
|
189
189
|
case "ToolInputStart":
|
|
190
190
|
case "TurnEnd":
|
|
191
191
|
case "TurnStart":
|
|
192
|
-
case "UsageUpdate":
|
|
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":"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"}
|
|
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
|
package/dist/skillset/name.d.mts
CHANGED
|
@@ -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<
|
|
7
|
-
declare const validateDirectoryName: (expected: string, actual: string) => Effect.Effect<
|
|
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,
|
|
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.
|
|
4
|
-
"description": "
|
|
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,
|
package/src/client/state.ts
CHANGED
package/src/protocol/event.ts
CHANGED
|
@@ -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,
|
package/src/protocol/index.ts
CHANGED
package/src/react/chat-core.ts
CHANGED
|
@@ -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':
|