@agent-labs/ag-ui-server
Version:
AG-UI Node.js server with OpenAI integration
1 lines • 5.6 kB
Source Map (JSON)
{"version":3,"file":"tool-call.handler-CVx-QXEI.mjs","names":["encoder: EventEncoder","chunk: OpenAI.Chat.Completions.ChatCompletionChunk","context: StreamContext","event: EventData","EventType"],"sources":["../src/agent/handlers/tool-call.handler.ts"],"sourcesContent":["import { EventType } from '@ag-ui/core';\nimport { EventEncoder } from '@ag-ui/encoder';\nimport OpenAI from 'openai';\nimport { EventData, StreamContext, StreamHandler } from '../types';\n\nexport class ToolCallHandler implements StreamHandler {\n constructor(private encoder: EventEncoder) {}\n\n async *handle(\n chunk: OpenAI.Chat.Completions.ChatCompletionChunk,\n context: StreamContext,\n ): AsyncGenerator<string, void, unknown> {\n const toolCall = chunk.choices[0].delta.tool_calls?.[0];\n if (!toolCall) {\n return;\n }\n\n if (!context.isToolCallStarted) {\n context.toolCallId = toolCall.id ?? '';\n context.toolCallName = toolCall.function?.name ?? '';\n context.isToolCallStarted = true;\n\n const event: EventData = {\n type: EventType.TOOL_CALL_START,\n toolCallId: context.toolCallId,\n toolCallName: context.toolCallName,\n toolCallArgs: '',\n toolCalls: [\n {\n id: context.toolCallId,\n type: 'function',\n function: {\n name: context.toolCallName,\n arguments: '',\n },\n },\n ],\n messages: [\n {\n id: context.messageId,\n role: 'assistant',\n toolCalls: [\n {\n id: context.toolCallId,\n type: 'function',\n function: {\n name: context.toolCallName,\n arguments: '',\n },\n },\n ],\n },\n ],\n };\n yield this.encoder.encode(event);\n }\n\n if (toolCall.function?.arguments) {\n context.toolCallArgs += toolCall.function.arguments;\n const event: EventData = {\n type: EventType.TOOL_CALL_ARGS,\n toolCallId: context.toolCallId,\n toolCallName: context.toolCallName,\n toolCallArgs: context.toolCallArgs,\n delta: toolCall.function?.arguments,\n toolCalls: [\n {\n id: context.toolCallId,\n type: 'function',\n function: {\n name: context.toolCallName,\n arguments: context.toolCallArgs,\n },\n },\n ],\n messages: [\n {\n id: context.messageId,\n role: 'assistant',\n toolCalls: [\n {\n id: context.toolCallId,\n type: 'function',\n function: {\n name: context.toolCallName,\n arguments: context.toolCallArgs,\n },\n },\n ],\n },\n ],\n };\n yield this.encoder.encode(event);\n }\n }\n\n async *finalize(\n context: StreamContext,\n ): AsyncGenerator<string, void, unknown> {\n if (context.isToolCallStarted) {\n const event: EventData = {\n type: EventType.TOOL_CALL_END,\n toolCallId: context.toolCallId,\n toolCallName: context.toolCallName,\n toolCallArgs: context.toolCallArgs,\n toolCalls: [\n {\n id: context.toolCallId,\n type: 'function',\n function: {\n name: context.toolCallName,\n arguments: context.toolCallArgs,\n },\n },\n ],\n messages: [\n {\n id: context.messageId,\n role: 'assistant',\n toolCalls: [\n {\n id: context.toolCallId,\n type: 'function',\n function: {\n name: context.toolCallName,\n arguments: context.toolCallArgs,\n },\n },\n ],\n },\n ],\n };\n yield this.encoder.encode(event);\n }\n }\n}\n"],"mappings":";;;;AAKA,IAAa,kBAAb,MAAsD;CACpD,YAAoBA,SAAuB;EAAvB;CAAyB;CAE7C,OAAO,OACLC,OACAC,SACuC;EACvC,MAAM,WAAW,MAAM,QAAQ,GAAG,MAAM,aAAa;AACrD,OAAK,SACH;AAGF,OAAK,QAAQ,mBAAmB;AAC9B,WAAQ,aAAa,SAAS,MAAM;AACpC,WAAQ,eAAe,SAAS,UAAU,QAAQ;AAClD,WAAQ,oBAAoB;GAE5B,MAAMC,QAAmB;IACvB,MAAMC,sBAAU;IAChB,YAAY,QAAQ;IACpB,cAAc,QAAQ;IACtB,cAAc;IACd,WAAW,CACT;KACE,IAAI,QAAQ;KACZ,MAAM;KACN,UAAU;MACR,MAAM,QAAQ;MACd,WAAW;KACZ;IACF,CACF;IACD,UAAU,CACR;KACE,IAAI,QAAQ;KACZ,MAAM;KACN,WAAW,CACT;MACE,IAAI,QAAQ;MACZ,MAAM;MACN,UAAU;OACR,MAAM,QAAQ;OACd,WAAW;MACZ;KACF,CACF;IACF,CACF;GACF;AACD,SAAM,KAAK,QAAQ,OAAO,MAAM;EACjC;AAED,MAAI,SAAS,UAAU,WAAW;AAChC,WAAQ,gBAAgB,SAAS,SAAS;GAC1C,MAAMD,QAAmB;IACvB,MAAMC,sBAAU;IAChB,YAAY,QAAQ;IACpB,cAAc,QAAQ;IACtB,cAAc,QAAQ;IACtB,OAAO,SAAS,UAAU;IAC1B,WAAW,CACT;KACE,IAAI,QAAQ;KACZ,MAAM;KACN,UAAU;MACR,MAAM,QAAQ;MACd,WAAW,QAAQ;KACpB;IACF,CACF;IACD,UAAU,CACR;KACE,IAAI,QAAQ;KACZ,MAAM;KACN,WAAW,CACT;MACE,IAAI,QAAQ;MACZ,MAAM;MACN,UAAU;OACR,MAAM,QAAQ;OACd,WAAW,QAAQ;MACpB;KACF,CACF;IACF,CACF;GACF;AACD,SAAM,KAAK,QAAQ,OAAO,MAAM;EACjC;CACF;CAED,OAAO,SACLF,SACuC;AACvC,MAAI,QAAQ,mBAAmB;GAC7B,MAAMC,QAAmB;IACvB,MAAMC,sBAAU;IAChB,YAAY,QAAQ;IACpB,cAAc,QAAQ;IACtB,cAAc,QAAQ;IACtB,WAAW,CACT;KACE,IAAI,QAAQ;KACZ,MAAM;KACN,UAAU;MACR,MAAM,QAAQ;MACd,WAAW,QAAQ;KACpB;IACF,CACF;IACD,UAAU,CACR;KACE,IAAI,QAAQ;KACZ,MAAM;KACN,WAAW,CACT;MACE,IAAI,QAAQ;MACZ,MAAM;MACN,UAAU;OACR,MAAM,QAAQ;OACd,WAAW,QAAQ;MACpB;KACF,CACF;IACF,CACF;GACF;AACD,SAAM,KAAK,QAAQ,OAAO,MAAM;EACjC;CACF;AACF"}