@assistant-ui/react 0.5.21 → 0.5.23
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/dist/{AssistantTypes-D93BmqD5.d.mts → AssistantTypes-BNB-knVq.d.mts} +1 -1
 - package/dist/{AssistantTypes-D93BmqD5.d.ts → AssistantTypes-BNB-knVq.d.ts} +1 -1
 - package/dist/chunk-DCHYNTHI.js +11 -0
 - package/dist/chunk-DCHYNTHI.js.map +1 -0
 - package/dist/chunk-NSPHKRLF.js +819 -0
 - package/dist/chunk-NSPHKRLF.js.map +1 -0
 - package/dist/{chunk-2RKUKZSZ.mjs → chunk-ZWRFAYHH.mjs} +61 -3
 - package/dist/chunk-ZWRFAYHH.mjs.map +1 -0
 - package/dist/edge.d.mts +90 -5
 - package/dist/edge.d.ts +90 -5
 - package/dist/edge.js +0 -1
 - package/dist/edge.js.map +1 -1
 - package/dist/edge.mjs +799 -49
 - package/dist/edge.mjs.map +1 -1
 - package/dist/index.d.mts +164 -7
 - package/dist/index.d.ts +164 -7
 - package/dist/index.js +761 -1607
 - package/dist/index.js.map +1 -1
 - package/dist/index.mjs +833 -252
 - package/dist/index.mjs.map +1 -1
 - package/dist/tailwindcss/index.js +24 -53
 - package/dist/tailwindcss/index.js.map +1 -1
 - package/package.json +1 -12
 - package/dist/Thread-BbLf1cc4.d.mts +0 -156
 - package/dist/Thread-jfAlPLli.d.ts +0 -156
 - package/dist/chunk-2RKUKZSZ.mjs.map +0 -1
 - package/dist/chunk-QBS6JLLN.mjs +0 -63
 - package/dist/chunk-QBS6JLLN.mjs.map +0 -1
 - package/dist/chunk-V66MVXBH.mjs +0 -608
 - package/dist/chunk-V66MVXBH.mjs.map +0 -1
 - package/dist/internal.d.mts +0 -9
 - package/dist/internal.d.ts +0 -9
 - package/dist/internal.js +0 -620
 - package/dist/internal.js.map +0 -1
 - package/dist/internal.mjs +0 -24
 - package/dist/internal.mjs.map +0 -1
 - package/internal/README.md +0 -1
 - package/internal/package.json +0 -5
 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["/home/runner/work/assistant-ui/assistant-ui/packages/react/dist/chunk-NSPHKRLF.js","../src/runtimes/edge/converters/toLanguageModelMessages.ts","../src/runtimes/edge/converters/toCoreMessages.ts","../src/runtimes/edge/converters/toLanguageModelTools.ts","../src/types/ModelConfigTypes.ts","../src/runtimes/edge/partial-json/parse-partial-json.ts","../src/runtimes/edge/partial-json/fix-json.ts","../src/runtimes/edge/streams/runResultStream.ts","../src/runtimes/edge/streams/toolResultStream.ts"],"names":["message"],"mappings":"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","file":"/home/runner/work/assistant-ui/assistant-ui/packages/react/dist/chunk-NSPHKRLF.js","sourcesContent":[null,"import {\n  LanguageModelV1ImagePart,\n  LanguageModelV1Message,\n  LanguageModelV1TextPart,\n  LanguageModelV1ToolCallPart,\n  LanguageModelV1ToolResultPart,\n} from \"@ai-sdk/provider\";\nimport {\n  CoreMessage,\n  ThreadMessage,\n  TextContentPart,\n  CoreToolCallContentPart,\n} from \"../../../types/AssistantTypes\";\n\nconst assistantMessageSplitter = () => {\n  const stash: LanguageModelV1Message[] = [];\n  let assistantMessage = {\n    role: \"assistant\" as const,\n    content: [] as (LanguageModelV1TextPart | LanguageModelV1ToolCallPart)[],\n  };\n  let toolMessage = {\n    role: \"tool\" as const,\n    content: [] as LanguageModelV1ToolResultPart[],\n  };\n\n  return {\n    addTextContentPart: (part: TextContentPart) => {\n      if (toolMessage.content.length > 0) {\n        stash.push(assistantMessage);\n        stash.push(toolMessage);\n\n        assistantMessage = {\n          role: \"assistant\" as const,\n          content: [] as (\n            | LanguageModelV1TextPart\n            | LanguageModelV1ToolCallPart\n          )[],\n        };\n\n        toolMessage = {\n          role: \"tool\" as const,\n          content: [] as LanguageModelV1ToolResultPart[],\n        };\n      }\n\n      assistantMessage.content.push(part);\n    },\n    addToolCallPart: (part: CoreToolCallContentPart) => {\n      assistantMessage.content.push({\n        type: \"tool-call\",\n        toolCallId: part.toolCallId,\n        toolName: part.toolName,\n        args: part.args,\n      });\n      if (part.result) {\n        toolMessage.content.push({\n          type: \"tool-result\",\n          toolCallId: part.toolCallId,\n          toolName: part.toolName,\n          result: part.result,\n          // isError\n        });\n      }\n    },\n    getMessages: () => {\n      if (toolMessage.content.length > 0) {\n        return [...stash, assistantMessage, toolMessage];\n      }\n\n      return [...stash, assistantMessage];\n    },\n  };\n};\n\nexport function toLanguageModelMessages(\n  message: readonly CoreMessage[] | readonly ThreadMessage[],\n): LanguageModelV1Message[] {\n  return message.flatMap((message) => {\n    const role = message.role;\n    switch (role) {\n      case \"system\": {\n        return [{ role: \"system\", content: message.content[0].text }];\n      }\n\n      case \"user\": {\n        const msg: LanguageModelV1Message = {\n          role: \"user\",\n          content: message.content.map(\n            (part): LanguageModelV1TextPart | LanguageModelV1ImagePart => {\n              const type = part.type;\n              switch (type) {\n                case \"text\": {\n                  return part;\n                }\n\n                case \"image\": {\n                  return {\n                    type: \"image\",\n                    image: new URL(part.image),\n                  };\n                }\n\n                default: {\n                  const unhandledType: \"ui\" = type;\n                  throw new Error(\n                    `Unspported content part type: ${unhandledType}`,\n                  );\n                }\n              }\n            },\n          ),\n        };\n        return [msg];\n      }\n\n      case \"assistant\": {\n        const splitter = assistantMessageSplitter();\n        for (const part of message.content) {\n          const type = part.type;\n          switch (type) {\n            case \"text\": {\n              splitter.addTextContentPart(part);\n              break;\n            }\n            case \"tool-call\": {\n              splitter.addToolCallPart(part);\n              break;\n            }\n            default: {\n              const unhandledType: \"ui\" = type;\n              throw new Error(`Unhandled content part type: ${unhandledType}`);\n            }\n          }\n        }\n        return splitter.getMessages();\n      }\n\n      default: {\n        const unhandledRole: never = role;\n        throw new Error(`Unknown message role: ${unhandledRole}`);\n      }\n    }\n  });\n}\n","import { ThreadMessage, CoreMessage } from \"../../../types\";\n\nexport const toCoreMessages = (message: ThreadMessage[]): CoreMessage[] => {\n  return message.map(toCoreMessage);\n};\n\nexport const toCoreMessage = (message: ThreadMessage): CoreMessage => {\n  const role = message.role;\n  switch (role) {\n    case \"assistant\":\n      return {\n        role,\n        content: message.content.map((part) => {\n          if (part.type === \"ui\") throw new Error(\"UI parts are not supported\");\n          if (part.type === \"tool-call\") {\n            const { argsText, ...rest } = part;\n            return rest;\n          }\n          return part;\n        }),\n      };\n\n    case \"user\":\n      return {\n        role,\n        content: message.content.map((part) => {\n          if (part.type === \"ui\") throw new Error(\"UI parts are not supported\");\n          return part;\n        }),\n      };\n\n    case \"system\":\n      return {\n        role,\n        content: message.content,\n      };\n\n    default: {\n      const unsupportedRole: never = role;\n      throw new Error(`Unknown message role: ${unsupportedRole}`);\n    }\n  }\n};\n","import { LanguageModelV1FunctionTool } from \"@ai-sdk/provider\";\nimport { JSONSchema7 } from \"json-schema\";\nimport { z } from \"zod\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\nimport { Tool } from \"../../../types/ModelConfigTypes\";\n\nexport const toLanguageModelTools = (\n  tools: Record<string, Tool<any, any>>,\n): LanguageModelV1FunctionTool[] => {\n  return Object.entries(tools).map(([name, tool]) => ({\n    type: \"function\",\n    name,\n    ...(tool.description ? { description: tool.description } : undefined),\n    parameters: (tool.parameters instanceof z.ZodType\n      ? zodToJsonSchema(tool.parameters)\n      : tool.parameters) as JSONSchema7,\n  }));\n};\n","import { z } from \"zod\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nexport const LanguageModelV1CallSettingsSchema = z.object({\n  maxTokens: z.number().int().positive().optional(),\n  temperature: z.number().optional(),\n  topP: z.number().optional(),\n  presencePenalty: z.number().optional(),\n  frequencyPenalty: z.number().optional(),\n  seed: z.number().int().optional(),\n  headers: z.record(z.string().optional()).optional(),\n});\n\nexport type LanguageModelV1CallSettings = z.infer<\n  typeof LanguageModelV1CallSettingsSchema\n>;\n\nexport const LanguageModelConfigSchema = z.object({\n  apiKey: z.string().optional(),\n  baseUrl: z.string().optional(),\n  modelName: z.string().optional(),\n});\n\nexport type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;\n\ntype ToolExecuteFunction<TArgs, TResult> = (\n  args: TArgs,\n) => TResult | Promise<TResult>;\n\nexport type Tool<\n  TArgs extends Record<string, unknown> = Record<string | number, unknown>,\n  TResult = unknown,\n> = {\n  description?: string | undefined;\n  parameters: z.ZodSchema<TArgs> | JSONSchema7;\n  execute?: ToolExecuteFunction<TArgs, TResult>;\n};\n\nexport type ModelConfig = {\n  priority?: number | undefined;\n  system?: string | undefined;\n  tools?: Record<string, Tool<any, any>> | undefined;\n  callSettings?: LanguageModelV1CallSettings | undefined;\n  config?: LanguageModelConfig | undefined;\n};\n\nexport type ModelConfigProvider = { getModelConfig: () => ModelConfig };\n\nexport const mergeModelConfigs = (\n  configSet: Set<ModelConfigProvider>,\n): ModelConfig => {\n  const configs = Array.from(configSet)\n    .map((c) => c.getModelConfig())\n    .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n\n  return configs.reduce((acc, config) => {\n    if (config.system) {\n      if (acc.system) {\n        // TODO should the separator be configurable?\n        acc.system += `\\n\\n${config.system}`;\n      } else {\n        acc.system = config.system;\n      }\n    }\n    if (config.tools) {\n      for (const [name, tool] of Object.entries(config.tools)) {\n        if (acc.tools?.[name]) {\n          throw new Error(\n            `You tried to define a tool with the name ${name}, but it already exists.`,\n          );\n        }\n        if (!acc.tools) acc.tools = {};\n        acc.tools[name] = tool;\n      }\n    }\n    if (config.config) {\n      acc.config = {\n        ...acc.config,\n        ...config.config,\n      };\n    }\n    if (config.callSettings) {\n      acc.callSettings = {\n        ...acc.callSettings,\n        ...config.callSettings,\n      };\n    }\n    return acc;\n  }, {} as ModelConfig);\n};\n","import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\n\nexport const parsePartialJson = (json: string) => {\n  try {\n    return sjson.parse(json);\n  } catch {\n    try {\n      return sjson.parse(fixJson(json));\n    } catch {\n      return undefined;\n    }\n  }\n};\n","// LICENSE for this file only\n\n// Copyright 2023 Vercel, Inc.\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n//     http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype State =\n  | \"ROOT\"\n  | \"FINISH\"\n  | \"INSIDE_STRING\"\n  | \"INSIDE_STRING_ESCAPE\"\n  | \"INSIDE_LITERAL\"\n  | \"INSIDE_NUMBER\"\n  | \"INSIDE_OBJECT_START\"\n  | \"INSIDE_OBJECT_KEY\"\n  | \"INSIDE_OBJECT_AFTER_KEY\"\n  | \"INSIDE_OBJECT_BEFORE_VALUE\"\n  | \"INSIDE_OBJECT_AFTER_VALUE\"\n  | \"INSIDE_OBJECT_AFTER_COMMA\"\n  | \"INSIDE_ARRAY_START\"\n  | \"INSIDE_ARRAY_AFTER_VALUE\"\n  | \"INSIDE_ARRAY_AFTER_COMMA\";\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n  const stack: State[] = [\"ROOT\"];\n  let lastValidIndex = -1;\n  let literalStart: number | null = null;\n\n  function processValueStart(char: string, i: number, swapState: State) {\n    {\n      switch (char) {\n        case '\"': {\n          lastValidIndex = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_STRING\");\n          break;\n        }\n\n        case \"f\":\n        case \"t\":\n        case \"n\": {\n          lastValidIndex = i;\n          literalStart = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_LITERAL\");\n          break;\n        }\n\n        case \"-\": {\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_NUMBER\");\n          break;\n        }\n        case \"0\":\n        case \"1\":\n        case \"2\":\n        case \"3\":\n        case \"4\":\n        case \"5\":\n        case \"6\":\n        case \"7\":\n        case \"8\":\n        case \"9\": {\n          lastValidIndex = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_NUMBER\");\n          break;\n        }\n\n        case \"{\": {\n          lastValidIndex = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_OBJECT_START\");\n          break;\n        }\n\n        case \"[\": {\n          lastValidIndex = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_ARRAY_START\");\n          break;\n        }\n      }\n    }\n  }\n\n  function processAfterObjectValue(char: string, i: number) {\n    switch (char) {\n      case \",\": {\n        stack.pop();\n        stack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n        break;\n      }\n      case \"}\": {\n        lastValidIndex = i;\n        stack.pop();\n        break;\n      }\n    }\n  }\n\n  function processAfterArrayValue(char: string, i: number) {\n    switch (char) {\n      case \",\": {\n        stack.pop();\n        stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n        break;\n      }\n      case \"]\": {\n        lastValidIndex = i;\n        stack.pop();\n        break;\n      }\n    }\n  }\n\n  for (let i = 0; i < input.length; i++) {\n    const char = input[i]!;\n    const currentState = stack[stack.length - 1];\n\n    switch (currentState) {\n      case \"ROOT\":\n        processValueStart(char, i, \"FINISH\");\n        break;\n\n      case \"INSIDE_OBJECT_START\": {\n        switch (char) {\n          case '\"': {\n            stack.pop();\n            stack.push(\"INSIDE_OBJECT_KEY\");\n            break;\n          }\n          case \"}\": {\n            lastValidIndex = i;\n            stack.pop();\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_OBJECT_AFTER_COMMA\": {\n        switch (char) {\n          case '\"': {\n            stack.pop();\n            stack.push(\"INSIDE_OBJECT_KEY\");\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_OBJECT_KEY\": {\n        switch (char) {\n          case '\"': {\n            stack.pop();\n            stack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_OBJECT_AFTER_KEY\": {\n        switch (char) {\n          case \":\": {\n            stack.pop();\n            stack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_OBJECT_BEFORE_VALUE\": {\n        processValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n        break;\n      }\n\n      case \"INSIDE_OBJECT_AFTER_VALUE\": {\n        processAfterObjectValue(char, i);\n        break;\n      }\n\n      case \"INSIDE_STRING\": {\n        switch (char) {\n          case '\"': {\n            stack.pop();\n            lastValidIndex = i;\n            break;\n          }\n\n          case \"\\\\\": {\n            stack.push(\"INSIDE_STRING_ESCAPE\");\n            break;\n          }\n\n          default: {\n            lastValidIndex = i;\n          }\n        }\n\n        break;\n      }\n\n      case \"INSIDE_ARRAY_START\": {\n        switch (char) {\n          case \"]\": {\n            lastValidIndex = i;\n            stack.pop();\n            break;\n          }\n\n          default: {\n            lastValidIndex = i;\n            processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_ARRAY_AFTER_VALUE\": {\n        switch (char) {\n          case \",\": {\n            stack.pop();\n            stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n            break;\n          }\n\n          case \"]\": {\n            lastValidIndex = i;\n            stack.pop();\n            break;\n          }\n\n          default: {\n            lastValidIndex = i;\n            break;\n          }\n        }\n\n        break;\n      }\n\n      case \"INSIDE_ARRAY_AFTER_COMMA\": {\n        processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n        break;\n      }\n\n      case \"INSIDE_STRING_ESCAPE\": {\n        stack.pop();\n        lastValidIndex = i;\n\n        break;\n      }\n\n      case \"INSIDE_NUMBER\": {\n        switch (char) {\n          case \"0\":\n          case \"1\":\n          case \"2\":\n          case \"3\":\n          case \"4\":\n          case \"5\":\n          case \"6\":\n          case \"7\":\n          case \"8\":\n          case \"9\": {\n            lastValidIndex = i;\n            break;\n          }\n\n          case \"e\":\n          case \"E\":\n          case \"-\":\n          case \".\": {\n            break;\n          }\n\n          case \",\": {\n            stack.pop();\n\n            if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n              processAfterArrayValue(char, i);\n            }\n\n            if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n              processAfterObjectValue(char, i);\n            }\n\n            break;\n          }\n\n          case \"}\": {\n            stack.pop();\n\n            if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n              processAfterObjectValue(char, i);\n            }\n\n            break;\n          }\n\n          case \"]\": {\n            stack.pop();\n\n            if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n              processAfterArrayValue(char, i);\n            }\n\n            break;\n          }\n\n          default: {\n            stack.pop();\n            break;\n          }\n        }\n\n        break;\n      }\n\n      case \"INSIDE_LITERAL\": {\n        const partialLiteral = input.substring(literalStart!, i + 1);\n\n        if (\n          !\"false\".startsWith(partialLiteral) &&\n          !\"true\".startsWith(partialLiteral) &&\n          !\"null\".startsWith(partialLiteral)\n        ) {\n          stack.pop();\n\n          if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n            processAfterObjectValue(char, i);\n          } else if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n            processAfterArrayValue(char, i);\n          }\n        } else {\n          lastValidIndex = i;\n        }\n\n        break;\n      }\n    }\n  }\n\n  let result = input.slice(0, lastValidIndex + 1);\n\n  for (let i = stack.length - 1; i >= 0; i--) {\n    const state = stack[i];\n\n    switch (state) {\n      case \"INSIDE_STRING\": {\n        result += '\"';\n        break;\n      }\n\n      case \"INSIDE_OBJECT_KEY\":\n      case \"INSIDE_OBJECT_AFTER_KEY\":\n      case \"INSIDE_OBJECT_AFTER_COMMA\":\n      case \"INSIDE_OBJECT_START\":\n      case \"INSIDE_OBJECT_BEFORE_VALUE\":\n      case \"INSIDE_OBJECT_AFTER_VALUE\": {\n        result += \"}\";\n        break;\n      }\n\n      case \"INSIDE_ARRAY_START\":\n      case \"INSIDE_ARRAY_AFTER_COMMA\":\n      case \"INSIDE_ARRAY_AFTER_VALUE\": {\n        result += \"]\";\n        break;\n      }\n\n      case \"INSIDE_LITERAL\": {\n        const partialLiteral = input.substring(literalStart!, input.length);\n\n        if (\"true\".startsWith(partialLiteral)) {\n          result += \"true\".slice(partialLiteral.length);\n        } else if (\"false\".startsWith(partialLiteral)) {\n          result += \"false\".slice(partialLiteral.length);\n        } else if (\"null\".startsWith(partialLiteral)) {\n          result += \"null\".slice(partialLiteral.length);\n        }\n      }\n    }\n  }\n\n  return result;\n}\n","import { ChatModelRunResult } from \"../../local/ChatModelAdapter\";\nimport { parsePartialJson } from \"../partial-json/parse-partial-json\";\nimport { LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\nimport { MessageStatus } from \"../../../types\";\n\nexport function runResultStream() {\n  let message: ChatModelRunResult = {\n    content: [],\n    status: { type: \"running\" },\n  };\n  const currentToolCall = { toolCallId: \"\", argsText: \"\" };\n\n  return new TransformStream<ToolResultStreamPart, ChatModelRunResult>({\n    transform(chunk, controller) {\n      const chunkType = chunk.type;\n      switch (chunkType) {\n        case \"text-delta\": {\n          message = appendOrUpdateText(message, chunk.textDelta);\n          controller.enqueue(message);\n          break;\n        }\n        case \"tool-call-delta\": {\n          const { toolCallId, toolName, argsTextDelta } = chunk;\n          if (currentToolCall.toolCallId !== toolCallId) {\n            currentToolCall.toolCallId = toolCallId;\n            currentToolCall.argsText = argsTextDelta;\n          } else {\n            currentToolCall.argsText += argsTextDelta;\n          }\n\n          message = appendOrUpdateToolCall(\n            message,\n            toolCallId,\n            toolName,\n            currentToolCall.argsText,\n          );\n          controller.enqueue(message);\n          break;\n        }\n        case \"tool-call\": {\n          break;\n        }\n        case \"tool-result\": {\n          message = appendOrUpdateToolResult(\n            message,\n            chunk.toolCallId,\n            chunk.toolName,\n            chunk.result,\n          );\n          controller.enqueue(message);\n          break;\n        }\n        case \"finish\": {\n          message = appendOrUpdateFinish(message, chunk);\n          controller.enqueue(message);\n          break;\n        }\n        case \"error\": {\n          if (\n            chunk.error instanceof Error &&\n            chunk.error.name === \"AbortError\"\n          ) {\n            message = appendOrUpdateCancel(message);\n            controller.enqueue(message);\n            break;\n          } else {\n            throw chunk.error;\n          }\n        }\n        default: {\n          const unhandledType: never = chunkType;\n          throw new Error(`Unhandled chunk type: ${unhandledType}`);\n        }\n      }\n    },\n  });\n}\n\nconst appendOrUpdateText = (message: ChatModelRunResult, textDelta: string) => {\n  let contentParts = message.content;\n  let contentPart = message.content.at(-1);\n  if (contentPart?.type !== \"text\") {\n    contentPart = { type: \"text\", text: textDelta };\n  } else {\n    contentParts = contentParts.slice(0, -1);\n    contentPart = { type: \"text\", text: contentPart.text + textDelta };\n  }\n  return {\n    ...message,\n    content: contentParts.concat([contentPart]),\n  };\n};\n\nconst appendOrUpdateToolCall = (\n  message: ChatModelRunResult,\n  toolCallId: string,\n  toolName: string,\n  argsText: string,\n) => {\n  let contentParts = message.content;\n  let contentPart = message.content.at(-1);\n  if (\n    contentPart?.type !== \"tool-call\" ||\n    contentPart.toolCallId !== toolCallId\n  ) {\n    contentPart = {\n      type: \"tool-call\",\n      toolCallId,\n      toolName,\n      argsText,\n      args: parsePartialJson(argsText),\n    };\n  } else {\n    contentParts = contentParts.slice(0, -1);\n    contentPart = {\n      ...contentPart,\n      argsText,\n      args: parsePartialJson(argsText),\n    };\n  }\n  return {\n    ...message,\n    content: contentParts.concat([contentPart]),\n  };\n};\n\nconst appendOrUpdateToolResult = (\n  message: ChatModelRunResult,\n  toolCallId: string,\n  toolName: string,\n  result: any,\n) => {\n  let found = false;\n  const newContentParts = message.content.map((part) => {\n    if (part.type !== \"tool-call\" || part.toolCallId !== toolCallId)\n      return part;\n    found = true;\n\n    if (part.toolName !== toolName)\n      throw new Error(\n        `Tool call ${toolCallId} found with tool name ${part.toolName}, but expected ${toolName}`,\n      );\n\n    return {\n      ...part,\n      result,\n    };\n  });\n  if (!found)\n    throw new Error(\n      `Received tool result for unknown tool call \"${toolName}\" / \"${toolCallId}\". This is likely an internal bug in assistant-ui.`,\n    );\n\n  return {\n    ...message,\n    content: newContentParts,\n  };\n};\n\nconst appendOrUpdateFinish = (\n  message: ChatModelRunResult,\n  chunk: LanguageModelV1StreamPart & { type: \"finish\" },\n): ChatModelRunResult => {\n  const { type, ...rest } = chunk;\n  return {\n    ...message,\n    status: getStatus(chunk),\n    roundtrips: [\n      ...(message.roundtrips ?? []),\n      {\n        logprobs: rest.logprobs,\n        usage: rest.usage,\n      },\n    ],\n  };\n};\n\nconst getStatus = (\n  chunk: LanguageModelV1StreamPart & { type: \"finish\" },\n): MessageStatus => {\n  if (chunk.finishReason === \"tool-calls\") {\n    return {\n      type: \"requires-action\",\n      reason: \"tool-calls\",\n    };\n  } else if (\n    chunk.finishReason === \"stop\" ||\n    chunk.finishReason === \"unknown\"\n  ) {\n    return {\n      type: \"complete\",\n      reason: chunk.finishReason,\n    };\n  } else {\n    return {\n      type: \"incomplete\",\n      reason: chunk.finishReason,\n    };\n  }\n};\n\nconst appendOrUpdateCancel = (\n  message: ChatModelRunResult,\n): ChatModelRunResult => {\n  return {\n    ...message,\n    status: {\n      type: \"incomplete\",\n      reason: \"cancelled\",\n    },\n  };\n};\n","import { Tool } from \"../../../types/ModelConfigTypes\";\nimport { LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\nimport { z } from \"zod\";\nimport sjson from \"secure-json-parse\";\n\nexport type ToolResultStreamPart =\n  | LanguageModelV1StreamPart\n  | {\n      type: \"tool-result\";\n      toolCallType: \"function\";\n      toolCallId: string;\n      toolName: string;\n      result: unknown;\n      isError?: boolean;\n    };\n\nexport function toolResultStream(tools: Record<string, Tool> | undefined) {\n  const toolCallExecutions = new Map<string, Promise<any>>();\n\n  return new TransformStream<ToolResultStreamPart, ToolResultStreamPart>({\n    transform(chunk, controller) {\n      // forward everything\n      controller.enqueue(chunk);\n\n      // handle tool calls\n      const chunkType = chunk.type;\n      switch (chunkType) {\n        case \"tool-call\": {\n          const { toolCallId, toolCallType, toolName, args: argsText } = chunk;\n          const tool = tools?.[toolName];\n          if (!tool || !tool.execute) return;\n\n          const args = sjson.parse(argsText);\n          if (tool.parameters instanceof z.ZodType) {\n            const result = tool.parameters.safeParse(args);\n            if (!result.success) {\n              controller.enqueue({\n                type: \"tool-result\",\n                toolCallType,\n                toolCallId,\n                toolName,\n                result:\n                  \"Function parameter validation failed. \" +\n                  JSON.stringify(result.error.issues),\n                isError: true,\n              });\n              return;\n            } else {\n              toolCallExecutions.set(\n                toolCallId,\n                (async () => {\n                  try {\n                    const result = await tool.execute!(args);\n\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallType,\n                      toolCallId,\n                      toolName,\n                      result,\n                    });\n                  } catch (error) {\n                    console.error(\"Error: \", error);\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallType,\n                      toolCallId,\n                      toolName,\n                      result: \"Error: \" + error,\n                      isError: true,\n                    });\n                  } finally {\n                    toolCallExecutions.delete(toolCallId);\n                  }\n                })(),\n              );\n            }\n          }\n          break;\n        }\n\n        // ignore other parts\n        case \"text-delta\":\n        case \"tool-call-delta\":\n        case \"tool-result\":\n        case \"finish\":\n        case \"error\":\n          break;\n\n        default: {\n          const unhandledType: never = chunkType;\n          throw new Error(`Unhandled chunk type: ${unhandledType}`);\n        }\n      }\n    },\n\n    async flush() {\n      await Promise.all(toolCallExecutions.values());\n    },\n  });\n}\n"]}
         
     | 
| 
         @@ -167,6 +167,61 @@ var toLanguageModelTools = (tools) => { 
     | 
|
| 
       167 
167 
     | 
    
         
             
              }));
         
     | 
| 
       168 
168 
     | 
    
         
             
            };
         
     | 
| 
       169 
169 
     | 
    
         | 
| 
      
 170 
     | 
    
         
            +
            // src/types/ModelConfigTypes.ts
         
     | 
| 
      
 171 
     | 
    
         
            +
            import { z as z2 } from "zod";
         
     | 
| 
      
 172 
     | 
    
         
            +
            var LanguageModelV1CallSettingsSchema = z2.object({
         
     | 
| 
      
 173 
     | 
    
         
            +
              maxTokens: z2.number().int().positive().optional(),
         
     | 
| 
      
 174 
     | 
    
         
            +
              temperature: z2.number().optional(),
         
     | 
| 
      
 175 
     | 
    
         
            +
              topP: z2.number().optional(),
         
     | 
| 
      
 176 
     | 
    
         
            +
              presencePenalty: z2.number().optional(),
         
     | 
| 
      
 177 
     | 
    
         
            +
              frequencyPenalty: z2.number().optional(),
         
     | 
| 
      
 178 
     | 
    
         
            +
              seed: z2.number().int().optional(),
         
     | 
| 
      
 179 
     | 
    
         
            +
              headers: z2.record(z2.string().optional()).optional()
         
     | 
| 
      
 180 
     | 
    
         
            +
            });
         
     | 
| 
      
 181 
     | 
    
         
            +
            var LanguageModelConfigSchema = z2.object({
         
     | 
| 
      
 182 
     | 
    
         
            +
              apiKey: z2.string().optional(),
         
     | 
| 
      
 183 
     | 
    
         
            +
              baseUrl: z2.string().optional(),
         
     | 
| 
      
 184 
     | 
    
         
            +
              modelName: z2.string().optional()
         
     | 
| 
      
 185 
     | 
    
         
            +
            });
         
     | 
| 
      
 186 
     | 
    
         
            +
            var mergeModelConfigs = (configSet) => {
         
     | 
| 
      
 187 
     | 
    
         
            +
              const configs = Array.from(configSet).map((c) => c.getModelConfig()).sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
         
     | 
| 
      
 188 
     | 
    
         
            +
              return configs.reduce((acc, config) => {
         
     | 
| 
      
 189 
     | 
    
         
            +
                if (config.system) {
         
     | 
| 
      
 190 
     | 
    
         
            +
                  if (acc.system) {
         
     | 
| 
      
 191 
     | 
    
         
            +
                    acc.system += `
         
     | 
| 
      
 192 
     | 
    
         
            +
             
     | 
| 
      
 193 
     | 
    
         
            +
            ${config.system}`;
         
     | 
| 
      
 194 
     | 
    
         
            +
                  } else {
         
     | 
| 
      
 195 
     | 
    
         
            +
                    acc.system = config.system;
         
     | 
| 
      
 196 
     | 
    
         
            +
                  }
         
     | 
| 
      
 197 
     | 
    
         
            +
                }
         
     | 
| 
      
 198 
     | 
    
         
            +
                if (config.tools) {
         
     | 
| 
      
 199 
     | 
    
         
            +
                  for (const [name, tool] of Object.entries(config.tools)) {
         
     | 
| 
      
 200 
     | 
    
         
            +
                    if (acc.tools?.[name]) {
         
     | 
| 
      
 201 
     | 
    
         
            +
                      throw new Error(
         
     | 
| 
      
 202 
     | 
    
         
            +
                        `You tried to define a tool with the name ${name}, but it already exists.`
         
     | 
| 
      
 203 
     | 
    
         
            +
                      );
         
     | 
| 
      
 204 
     | 
    
         
            +
                    }
         
     | 
| 
      
 205 
     | 
    
         
            +
                    if (!acc.tools) acc.tools = {};
         
     | 
| 
      
 206 
     | 
    
         
            +
                    acc.tools[name] = tool;
         
     | 
| 
      
 207 
     | 
    
         
            +
                  }
         
     | 
| 
      
 208 
     | 
    
         
            +
                }
         
     | 
| 
      
 209 
     | 
    
         
            +
                if (config.config) {
         
     | 
| 
      
 210 
     | 
    
         
            +
                  acc.config = {
         
     | 
| 
      
 211 
     | 
    
         
            +
                    ...acc.config,
         
     | 
| 
      
 212 
     | 
    
         
            +
                    ...config.config
         
     | 
| 
      
 213 
     | 
    
         
            +
                  };
         
     | 
| 
      
 214 
     | 
    
         
            +
                }
         
     | 
| 
      
 215 
     | 
    
         
            +
                if (config.callSettings) {
         
     | 
| 
      
 216 
     | 
    
         
            +
                  acc.callSettings = {
         
     | 
| 
      
 217 
     | 
    
         
            +
                    ...acc.callSettings,
         
     | 
| 
      
 218 
     | 
    
         
            +
                    ...config.callSettings
         
     | 
| 
      
 219 
     | 
    
         
            +
                  };
         
     | 
| 
      
 220 
     | 
    
         
            +
                }
         
     | 
| 
      
 221 
     | 
    
         
            +
                return acc;
         
     | 
| 
      
 222 
     | 
    
         
            +
              }, {});
         
     | 
| 
      
 223 
     | 
    
         
            +
            };
         
     | 
| 
      
 224 
     | 
    
         
            +
             
     | 
| 
       170 
225 
     | 
    
         
             
            // src/runtimes/edge/partial-json/parse-partial-json.ts
         
     | 
| 
       171 
226 
     | 
    
         
             
            import sjson from "secure-json-parse";
         
     | 
| 
       172 
227 
     | 
    
         | 
| 
         @@ -674,7 +729,7 @@ var appendOrUpdateCancel = (message) => { 
     | 
|
| 
       674 
729 
     | 
    
         
             
            };
         
     | 
| 
       675 
730 
     | 
    
         | 
| 
       676 
731 
     | 
    
         
             
            // src/runtimes/edge/streams/toolResultStream.ts
         
     | 
| 
       677 
     | 
    
         
            -
            import { z as  
     | 
| 
      
 732 
     | 
    
         
            +
            import { z as z3 } from "zod";
         
     | 
| 
       678 
733 
     | 
    
         
             
            import sjson2 from "secure-json-parse";
         
     | 
| 
       679 
734 
     | 
    
         
             
            function toolResultStream(tools) {
         
     | 
| 
       680 
735 
     | 
    
         
             
              const toolCallExecutions = /* @__PURE__ */ new Map();
         
     | 
| 
         @@ -688,7 +743,7 @@ function toolResultStream(tools) { 
     | 
|
| 
       688 
743 
     | 
    
         
             
                      const tool = tools?.[toolName];
         
     | 
| 
       689 
744 
     | 
    
         
             
                      if (!tool || !tool.execute) return;
         
     | 
| 
       690 
745 
     | 
    
         
             
                      const args = sjson2.parse(argsText);
         
     | 
| 
       691 
     | 
    
         
            -
                      if (tool.parameters instanceof  
     | 
| 
      
 746 
     | 
    
         
            +
                      if (tool.parameters instanceof z3.ZodType) {
         
     | 
| 
       692 
747 
     | 
    
         
             
                        const result = tool.parameters.safeParse(args);
         
     | 
| 
       693 
748 
     | 
    
         
             
                        if (!result.success) {
         
     | 
| 
       694 
749 
     | 
    
         
             
                          controller.enqueue({
         
     | 
| 
         @@ -751,6 +806,9 @@ function toolResultStream(tools) { 
     | 
|
| 
       751 
806 
     | 
    
         
             
            }
         
     | 
| 
       752 
807 
     | 
    
         | 
| 
       753 
808 
     | 
    
         
             
            export {
         
     | 
| 
      
 809 
     | 
    
         
            +
              LanguageModelV1CallSettingsSchema,
         
     | 
| 
      
 810 
     | 
    
         
            +
              LanguageModelConfigSchema,
         
     | 
| 
      
 811 
     | 
    
         
            +
              mergeModelConfigs,
         
     | 
| 
       754 
812 
     | 
    
         
             
              toLanguageModelMessages,
         
     | 
| 
       755 
813 
     | 
    
         
             
              toCoreMessages,
         
     | 
| 
       756 
814 
     | 
    
         
             
              toCoreMessage,
         
     | 
| 
         @@ -758,4 +816,4 @@ export { 
     | 
|
| 
       758 
816 
     | 
    
         
             
              runResultStream,
         
     | 
| 
       759 
817 
     | 
    
         
             
              toolResultStream
         
     | 
| 
       760 
818 
     | 
    
         
             
            };
         
     | 
| 
       761 
     | 
    
         
            -
            //# sourceMappingURL=chunk- 
     | 
| 
      
 819 
     | 
    
         
            +
            //# sourceMappingURL=chunk-ZWRFAYHH.mjs.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/runtimes/edge/converters/toLanguageModelMessages.ts","../src/runtimes/edge/converters/toCoreMessages.ts","../src/runtimes/edge/converters/toLanguageModelTools.ts","../src/types/ModelConfigTypes.ts","../src/runtimes/edge/partial-json/parse-partial-json.ts","../src/runtimes/edge/partial-json/fix-json.ts","../src/runtimes/edge/streams/runResultStream.ts","../src/runtimes/edge/streams/toolResultStream.ts"],"sourcesContent":["import {\n  LanguageModelV1ImagePart,\n  LanguageModelV1Message,\n  LanguageModelV1TextPart,\n  LanguageModelV1ToolCallPart,\n  LanguageModelV1ToolResultPart,\n} from \"@ai-sdk/provider\";\nimport {\n  CoreMessage,\n  ThreadMessage,\n  TextContentPart,\n  CoreToolCallContentPart,\n} from \"../../../types/AssistantTypes\";\n\nconst assistantMessageSplitter = () => {\n  const stash: LanguageModelV1Message[] = [];\n  let assistantMessage = {\n    role: \"assistant\" as const,\n    content: [] as (LanguageModelV1TextPart | LanguageModelV1ToolCallPart)[],\n  };\n  let toolMessage = {\n    role: \"tool\" as const,\n    content: [] as LanguageModelV1ToolResultPart[],\n  };\n\n  return {\n    addTextContentPart: (part: TextContentPart) => {\n      if (toolMessage.content.length > 0) {\n        stash.push(assistantMessage);\n        stash.push(toolMessage);\n\n        assistantMessage = {\n          role: \"assistant\" as const,\n          content: [] as (\n            | LanguageModelV1TextPart\n            | LanguageModelV1ToolCallPart\n          )[],\n        };\n\n        toolMessage = {\n          role: \"tool\" as const,\n          content: [] as LanguageModelV1ToolResultPart[],\n        };\n      }\n\n      assistantMessage.content.push(part);\n    },\n    addToolCallPart: (part: CoreToolCallContentPart) => {\n      assistantMessage.content.push({\n        type: \"tool-call\",\n        toolCallId: part.toolCallId,\n        toolName: part.toolName,\n        args: part.args,\n      });\n      if (part.result) {\n        toolMessage.content.push({\n          type: \"tool-result\",\n          toolCallId: part.toolCallId,\n          toolName: part.toolName,\n          result: part.result,\n          // isError\n        });\n      }\n    },\n    getMessages: () => {\n      if (toolMessage.content.length > 0) {\n        return [...stash, assistantMessage, toolMessage];\n      }\n\n      return [...stash, assistantMessage];\n    },\n  };\n};\n\nexport function toLanguageModelMessages(\n  message: readonly CoreMessage[] | readonly ThreadMessage[],\n): LanguageModelV1Message[] {\n  return message.flatMap((message) => {\n    const role = message.role;\n    switch (role) {\n      case \"system\": {\n        return [{ role: \"system\", content: message.content[0].text }];\n      }\n\n      case \"user\": {\n        const msg: LanguageModelV1Message = {\n          role: \"user\",\n          content: message.content.map(\n            (part): LanguageModelV1TextPart | LanguageModelV1ImagePart => {\n              const type = part.type;\n              switch (type) {\n                case \"text\": {\n                  return part;\n                }\n\n                case \"image\": {\n                  return {\n                    type: \"image\",\n                    image: new URL(part.image),\n                  };\n                }\n\n                default: {\n                  const unhandledType: \"ui\" = type;\n                  throw new Error(\n                    `Unspported content part type: ${unhandledType}`,\n                  );\n                }\n              }\n            },\n          ),\n        };\n        return [msg];\n      }\n\n      case \"assistant\": {\n        const splitter = assistantMessageSplitter();\n        for (const part of message.content) {\n          const type = part.type;\n          switch (type) {\n            case \"text\": {\n              splitter.addTextContentPart(part);\n              break;\n            }\n            case \"tool-call\": {\n              splitter.addToolCallPart(part);\n              break;\n            }\n            default: {\n              const unhandledType: \"ui\" = type;\n              throw new Error(`Unhandled content part type: ${unhandledType}`);\n            }\n          }\n        }\n        return splitter.getMessages();\n      }\n\n      default: {\n        const unhandledRole: never = role;\n        throw new Error(`Unknown message role: ${unhandledRole}`);\n      }\n    }\n  });\n}\n","import { ThreadMessage, CoreMessage } from \"../../../types\";\n\nexport const toCoreMessages = (message: ThreadMessage[]): CoreMessage[] => {\n  return message.map(toCoreMessage);\n};\n\nexport const toCoreMessage = (message: ThreadMessage): CoreMessage => {\n  const role = message.role;\n  switch (role) {\n    case \"assistant\":\n      return {\n        role,\n        content: message.content.map((part) => {\n          if (part.type === \"ui\") throw new Error(\"UI parts are not supported\");\n          if (part.type === \"tool-call\") {\n            const { argsText, ...rest } = part;\n            return rest;\n          }\n          return part;\n        }),\n      };\n\n    case \"user\":\n      return {\n        role,\n        content: message.content.map((part) => {\n          if (part.type === \"ui\") throw new Error(\"UI parts are not supported\");\n          return part;\n        }),\n      };\n\n    case \"system\":\n      return {\n        role,\n        content: message.content,\n      };\n\n    default: {\n      const unsupportedRole: never = role;\n      throw new Error(`Unknown message role: ${unsupportedRole}`);\n    }\n  }\n};\n","import { LanguageModelV1FunctionTool } from \"@ai-sdk/provider\";\nimport { JSONSchema7 } from \"json-schema\";\nimport { z } from \"zod\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\nimport { Tool } from \"../../../types/ModelConfigTypes\";\n\nexport const toLanguageModelTools = (\n  tools: Record<string, Tool<any, any>>,\n): LanguageModelV1FunctionTool[] => {\n  return Object.entries(tools).map(([name, tool]) => ({\n    type: \"function\",\n    name,\n    ...(tool.description ? { description: tool.description } : undefined),\n    parameters: (tool.parameters instanceof z.ZodType\n      ? zodToJsonSchema(tool.parameters)\n      : tool.parameters) as JSONSchema7,\n  }));\n};\n","import { z } from \"zod\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nexport const LanguageModelV1CallSettingsSchema = z.object({\n  maxTokens: z.number().int().positive().optional(),\n  temperature: z.number().optional(),\n  topP: z.number().optional(),\n  presencePenalty: z.number().optional(),\n  frequencyPenalty: z.number().optional(),\n  seed: z.number().int().optional(),\n  headers: z.record(z.string().optional()).optional(),\n});\n\nexport type LanguageModelV1CallSettings = z.infer<\n  typeof LanguageModelV1CallSettingsSchema\n>;\n\nexport const LanguageModelConfigSchema = z.object({\n  apiKey: z.string().optional(),\n  baseUrl: z.string().optional(),\n  modelName: z.string().optional(),\n});\n\nexport type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;\n\ntype ToolExecuteFunction<TArgs, TResult> = (\n  args: TArgs,\n) => TResult | Promise<TResult>;\n\nexport type Tool<\n  TArgs extends Record<string, unknown> = Record<string | number, unknown>,\n  TResult = unknown,\n> = {\n  description?: string | undefined;\n  parameters: z.ZodSchema<TArgs> | JSONSchema7;\n  execute?: ToolExecuteFunction<TArgs, TResult>;\n};\n\nexport type ModelConfig = {\n  priority?: number | undefined;\n  system?: string | undefined;\n  tools?: Record<string, Tool<any, any>> | undefined;\n  callSettings?: LanguageModelV1CallSettings | undefined;\n  config?: LanguageModelConfig | undefined;\n};\n\nexport type ModelConfigProvider = { getModelConfig: () => ModelConfig };\n\nexport const mergeModelConfigs = (\n  configSet: Set<ModelConfigProvider>,\n): ModelConfig => {\n  const configs = Array.from(configSet)\n    .map((c) => c.getModelConfig())\n    .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n\n  return configs.reduce((acc, config) => {\n    if (config.system) {\n      if (acc.system) {\n        // TODO should the separator be configurable?\n        acc.system += `\\n\\n${config.system}`;\n      } else {\n        acc.system = config.system;\n      }\n    }\n    if (config.tools) {\n      for (const [name, tool] of Object.entries(config.tools)) {\n        if (acc.tools?.[name]) {\n          throw new Error(\n            `You tried to define a tool with the name ${name}, but it already exists.`,\n          );\n        }\n        if (!acc.tools) acc.tools = {};\n        acc.tools[name] = tool;\n      }\n    }\n    if (config.config) {\n      acc.config = {\n        ...acc.config,\n        ...config.config,\n      };\n    }\n    if (config.callSettings) {\n      acc.callSettings = {\n        ...acc.callSettings,\n        ...config.callSettings,\n      };\n    }\n    return acc;\n  }, {} as ModelConfig);\n};\n","import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\n\nexport const parsePartialJson = (json: string) => {\n  try {\n    return sjson.parse(json);\n  } catch {\n    try {\n      return sjson.parse(fixJson(json));\n    } catch {\n      return undefined;\n    }\n  }\n};\n","// LICENSE for this file only\n\n// Copyright 2023 Vercel, Inc.\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n//     http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype State =\n  | \"ROOT\"\n  | \"FINISH\"\n  | \"INSIDE_STRING\"\n  | \"INSIDE_STRING_ESCAPE\"\n  | \"INSIDE_LITERAL\"\n  | \"INSIDE_NUMBER\"\n  | \"INSIDE_OBJECT_START\"\n  | \"INSIDE_OBJECT_KEY\"\n  | \"INSIDE_OBJECT_AFTER_KEY\"\n  | \"INSIDE_OBJECT_BEFORE_VALUE\"\n  | \"INSIDE_OBJECT_AFTER_VALUE\"\n  | \"INSIDE_OBJECT_AFTER_COMMA\"\n  | \"INSIDE_ARRAY_START\"\n  | \"INSIDE_ARRAY_AFTER_VALUE\"\n  | \"INSIDE_ARRAY_AFTER_COMMA\";\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n  const stack: State[] = [\"ROOT\"];\n  let lastValidIndex = -1;\n  let literalStart: number | null = null;\n\n  function processValueStart(char: string, i: number, swapState: State) {\n    {\n      switch (char) {\n        case '\"': {\n          lastValidIndex = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_STRING\");\n          break;\n        }\n\n        case \"f\":\n        case \"t\":\n        case \"n\": {\n          lastValidIndex = i;\n          literalStart = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_LITERAL\");\n          break;\n        }\n\n        case \"-\": {\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_NUMBER\");\n          break;\n        }\n        case \"0\":\n        case \"1\":\n        case \"2\":\n        case \"3\":\n        case \"4\":\n        case \"5\":\n        case \"6\":\n        case \"7\":\n        case \"8\":\n        case \"9\": {\n          lastValidIndex = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_NUMBER\");\n          break;\n        }\n\n        case \"{\": {\n          lastValidIndex = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_OBJECT_START\");\n          break;\n        }\n\n        case \"[\": {\n          lastValidIndex = i;\n          stack.pop();\n          stack.push(swapState);\n          stack.push(\"INSIDE_ARRAY_START\");\n          break;\n        }\n      }\n    }\n  }\n\n  function processAfterObjectValue(char: string, i: number) {\n    switch (char) {\n      case \",\": {\n        stack.pop();\n        stack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n        break;\n      }\n      case \"}\": {\n        lastValidIndex = i;\n        stack.pop();\n        break;\n      }\n    }\n  }\n\n  function processAfterArrayValue(char: string, i: number) {\n    switch (char) {\n      case \",\": {\n        stack.pop();\n        stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n        break;\n      }\n      case \"]\": {\n        lastValidIndex = i;\n        stack.pop();\n        break;\n      }\n    }\n  }\n\n  for (let i = 0; i < input.length; i++) {\n    const char = input[i]!;\n    const currentState = stack[stack.length - 1];\n\n    switch (currentState) {\n      case \"ROOT\":\n        processValueStart(char, i, \"FINISH\");\n        break;\n\n      case \"INSIDE_OBJECT_START\": {\n        switch (char) {\n          case '\"': {\n            stack.pop();\n            stack.push(\"INSIDE_OBJECT_KEY\");\n            break;\n          }\n          case \"}\": {\n            lastValidIndex = i;\n            stack.pop();\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_OBJECT_AFTER_COMMA\": {\n        switch (char) {\n          case '\"': {\n            stack.pop();\n            stack.push(\"INSIDE_OBJECT_KEY\");\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_OBJECT_KEY\": {\n        switch (char) {\n          case '\"': {\n            stack.pop();\n            stack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_OBJECT_AFTER_KEY\": {\n        switch (char) {\n          case \":\": {\n            stack.pop();\n            stack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_OBJECT_BEFORE_VALUE\": {\n        processValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n        break;\n      }\n\n      case \"INSIDE_OBJECT_AFTER_VALUE\": {\n        processAfterObjectValue(char, i);\n        break;\n      }\n\n      case \"INSIDE_STRING\": {\n        switch (char) {\n          case '\"': {\n            stack.pop();\n            lastValidIndex = i;\n            break;\n          }\n\n          case \"\\\\\": {\n            stack.push(\"INSIDE_STRING_ESCAPE\");\n            break;\n          }\n\n          default: {\n            lastValidIndex = i;\n          }\n        }\n\n        break;\n      }\n\n      case \"INSIDE_ARRAY_START\": {\n        switch (char) {\n          case \"]\": {\n            lastValidIndex = i;\n            stack.pop();\n            break;\n          }\n\n          default: {\n            lastValidIndex = i;\n            processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n            break;\n          }\n        }\n        break;\n      }\n\n      case \"INSIDE_ARRAY_AFTER_VALUE\": {\n        switch (char) {\n          case \",\": {\n            stack.pop();\n            stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n            break;\n          }\n\n          case \"]\": {\n            lastValidIndex = i;\n            stack.pop();\n            break;\n          }\n\n          default: {\n            lastValidIndex = i;\n            break;\n          }\n        }\n\n        break;\n      }\n\n      case \"INSIDE_ARRAY_AFTER_COMMA\": {\n        processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n        break;\n      }\n\n      case \"INSIDE_STRING_ESCAPE\": {\n        stack.pop();\n        lastValidIndex = i;\n\n        break;\n      }\n\n      case \"INSIDE_NUMBER\": {\n        switch (char) {\n          case \"0\":\n          case \"1\":\n          case \"2\":\n          case \"3\":\n          case \"4\":\n          case \"5\":\n          case \"6\":\n          case \"7\":\n          case \"8\":\n          case \"9\": {\n            lastValidIndex = i;\n            break;\n          }\n\n          case \"e\":\n          case \"E\":\n          case \"-\":\n          case \".\": {\n            break;\n          }\n\n          case \",\": {\n            stack.pop();\n\n            if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n              processAfterArrayValue(char, i);\n            }\n\n            if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n              processAfterObjectValue(char, i);\n            }\n\n            break;\n          }\n\n          case \"}\": {\n            stack.pop();\n\n            if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n              processAfterObjectValue(char, i);\n            }\n\n            break;\n          }\n\n          case \"]\": {\n            stack.pop();\n\n            if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n              processAfterArrayValue(char, i);\n            }\n\n            break;\n          }\n\n          default: {\n            stack.pop();\n            break;\n          }\n        }\n\n        break;\n      }\n\n      case \"INSIDE_LITERAL\": {\n        const partialLiteral = input.substring(literalStart!, i + 1);\n\n        if (\n          !\"false\".startsWith(partialLiteral) &&\n          !\"true\".startsWith(partialLiteral) &&\n          !\"null\".startsWith(partialLiteral)\n        ) {\n          stack.pop();\n\n          if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n            processAfterObjectValue(char, i);\n          } else if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n            processAfterArrayValue(char, i);\n          }\n        } else {\n          lastValidIndex = i;\n        }\n\n        break;\n      }\n    }\n  }\n\n  let result = input.slice(0, lastValidIndex + 1);\n\n  for (let i = stack.length - 1; i >= 0; i--) {\n    const state = stack[i];\n\n    switch (state) {\n      case \"INSIDE_STRING\": {\n        result += '\"';\n        break;\n      }\n\n      case \"INSIDE_OBJECT_KEY\":\n      case \"INSIDE_OBJECT_AFTER_KEY\":\n      case \"INSIDE_OBJECT_AFTER_COMMA\":\n      case \"INSIDE_OBJECT_START\":\n      case \"INSIDE_OBJECT_BEFORE_VALUE\":\n      case \"INSIDE_OBJECT_AFTER_VALUE\": {\n        result += \"}\";\n        break;\n      }\n\n      case \"INSIDE_ARRAY_START\":\n      case \"INSIDE_ARRAY_AFTER_COMMA\":\n      case \"INSIDE_ARRAY_AFTER_VALUE\": {\n        result += \"]\";\n        break;\n      }\n\n      case \"INSIDE_LITERAL\": {\n        const partialLiteral = input.substring(literalStart!, input.length);\n\n        if (\"true\".startsWith(partialLiteral)) {\n          result += \"true\".slice(partialLiteral.length);\n        } else if (\"false\".startsWith(partialLiteral)) {\n          result += \"false\".slice(partialLiteral.length);\n        } else if (\"null\".startsWith(partialLiteral)) {\n          result += \"null\".slice(partialLiteral.length);\n        }\n      }\n    }\n  }\n\n  return result;\n}\n","import { ChatModelRunResult } from \"../../local/ChatModelAdapter\";\nimport { parsePartialJson } from \"../partial-json/parse-partial-json\";\nimport { LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\nimport { MessageStatus } from \"../../../types\";\n\nexport function runResultStream() {\n  let message: ChatModelRunResult = {\n    content: [],\n    status: { type: \"running\" },\n  };\n  const currentToolCall = { toolCallId: \"\", argsText: \"\" };\n\n  return new TransformStream<ToolResultStreamPart, ChatModelRunResult>({\n    transform(chunk, controller) {\n      const chunkType = chunk.type;\n      switch (chunkType) {\n        case \"text-delta\": {\n          message = appendOrUpdateText(message, chunk.textDelta);\n          controller.enqueue(message);\n          break;\n        }\n        case \"tool-call-delta\": {\n          const { toolCallId, toolName, argsTextDelta } = chunk;\n          if (currentToolCall.toolCallId !== toolCallId) {\n            currentToolCall.toolCallId = toolCallId;\n            currentToolCall.argsText = argsTextDelta;\n          } else {\n            currentToolCall.argsText += argsTextDelta;\n          }\n\n          message = appendOrUpdateToolCall(\n            message,\n            toolCallId,\n            toolName,\n            currentToolCall.argsText,\n          );\n          controller.enqueue(message);\n          break;\n        }\n        case \"tool-call\": {\n          break;\n        }\n        case \"tool-result\": {\n          message = appendOrUpdateToolResult(\n            message,\n            chunk.toolCallId,\n            chunk.toolName,\n            chunk.result,\n          );\n          controller.enqueue(message);\n          break;\n        }\n        case \"finish\": {\n          message = appendOrUpdateFinish(message, chunk);\n          controller.enqueue(message);\n          break;\n        }\n        case \"error\": {\n          if (\n            chunk.error instanceof Error &&\n            chunk.error.name === \"AbortError\"\n          ) {\n            message = appendOrUpdateCancel(message);\n            controller.enqueue(message);\n            break;\n          } else {\n            throw chunk.error;\n          }\n        }\n        default: {\n          const unhandledType: never = chunkType;\n          throw new Error(`Unhandled chunk type: ${unhandledType}`);\n        }\n      }\n    },\n  });\n}\n\nconst appendOrUpdateText = (message: ChatModelRunResult, textDelta: string) => {\n  let contentParts = message.content;\n  let contentPart = message.content.at(-1);\n  if (contentPart?.type !== \"text\") {\n    contentPart = { type: \"text\", text: textDelta };\n  } else {\n    contentParts = contentParts.slice(0, -1);\n    contentPart = { type: \"text\", text: contentPart.text + textDelta };\n  }\n  return {\n    ...message,\n    content: contentParts.concat([contentPart]),\n  };\n};\n\nconst appendOrUpdateToolCall = (\n  message: ChatModelRunResult,\n  toolCallId: string,\n  toolName: string,\n  argsText: string,\n) => {\n  let contentParts = message.content;\n  let contentPart = message.content.at(-1);\n  if (\n    contentPart?.type !== \"tool-call\" ||\n    contentPart.toolCallId !== toolCallId\n  ) {\n    contentPart = {\n      type: \"tool-call\",\n      toolCallId,\n      toolName,\n      argsText,\n      args: parsePartialJson(argsText),\n    };\n  } else {\n    contentParts = contentParts.slice(0, -1);\n    contentPart = {\n      ...contentPart,\n      argsText,\n      args: parsePartialJson(argsText),\n    };\n  }\n  return {\n    ...message,\n    content: contentParts.concat([contentPart]),\n  };\n};\n\nconst appendOrUpdateToolResult = (\n  message: ChatModelRunResult,\n  toolCallId: string,\n  toolName: string,\n  result: any,\n) => {\n  let found = false;\n  const newContentParts = message.content.map((part) => {\n    if (part.type !== \"tool-call\" || part.toolCallId !== toolCallId)\n      return part;\n    found = true;\n\n    if (part.toolName !== toolName)\n      throw new Error(\n        `Tool call ${toolCallId} found with tool name ${part.toolName}, but expected ${toolName}`,\n      );\n\n    return {\n      ...part,\n      result,\n    };\n  });\n  if (!found)\n    throw new Error(\n      `Received tool result for unknown tool call \"${toolName}\" / \"${toolCallId}\". This is likely an internal bug in assistant-ui.`,\n    );\n\n  return {\n    ...message,\n    content: newContentParts,\n  };\n};\n\nconst appendOrUpdateFinish = (\n  message: ChatModelRunResult,\n  chunk: LanguageModelV1StreamPart & { type: \"finish\" },\n): ChatModelRunResult => {\n  const { type, ...rest } = chunk;\n  return {\n    ...message,\n    status: getStatus(chunk),\n    roundtrips: [\n      ...(message.roundtrips ?? []),\n      {\n        logprobs: rest.logprobs,\n        usage: rest.usage,\n      },\n    ],\n  };\n};\n\nconst getStatus = (\n  chunk: LanguageModelV1StreamPart & { type: \"finish\" },\n): MessageStatus => {\n  if (chunk.finishReason === \"tool-calls\") {\n    return {\n      type: \"requires-action\",\n      reason: \"tool-calls\",\n    };\n  } else if (\n    chunk.finishReason === \"stop\" ||\n    chunk.finishReason === \"unknown\"\n  ) {\n    return {\n      type: \"complete\",\n      reason: chunk.finishReason,\n    };\n  } else {\n    return {\n      type: \"incomplete\",\n      reason: chunk.finishReason,\n    };\n  }\n};\n\nconst appendOrUpdateCancel = (\n  message: ChatModelRunResult,\n): ChatModelRunResult => {\n  return {\n    ...message,\n    status: {\n      type: \"incomplete\",\n      reason: \"cancelled\",\n    },\n  };\n};\n","import { Tool } from \"../../../types/ModelConfigTypes\";\nimport { LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\nimport { z } from \"zod\";\nimport sjson from \"secure-json-parse\";\n\nexport type ToolResultStreamPart =\n  | LanguageModelV1StreamPart\n  | {\n      type: \"tool-result\";\n      toolCallType: \"function\";\n      toolCallId: string;\n      toolName: string;\n      result: unknown;\n      isError?: boolean;\n    };\n\nexport function toolResultStream(tools: Record<string, Tool> | undefined) {\n  const toolCallExecutions = new Map<string, Promise<any>>();\n\n  return new TransformStream<ToolResultStreamPart, ToolResultStreamPart>({\n    transform(chunk, controller) {\n      // forward everything\n      controller.enqueue(chunk);\n\n      // handle tool calls\n      const chunkType = chunk.type;\n      switch (chunkType) {\n        case \"tool-call\": {\n          const { toolCallId, toolCallType, toolName, args: argsText } = chunk;\n          const tool = tools?.[toolName];\n          if (!tool || !tool.execute) return;\n\n          const args = sjson.parse(argsText);\n          if (tool.parameters instanceof z.ZodType) {\n            const result = tool.parameters.safeParse(args);\n            if (!result.success) {\n              controller.enqueue({\n                type: \"tool-result\",\n                toolCallType,\n                toolCallId,\n                toolName,\n                result:\n                  \"Function parameter validation failed. \" +\n                  JSON.stringify(result.error.issues),\n                isError: true,\n              });\n              return;\n            } else {\n              toolCallExecutions.set(\n                toolCallId,\n                (async () => {\n                  try {\n                    const result = await tool.execute!(args);\n\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallType,\n                      toolCallId,\n                      toolName,\n                      result,\n                    });\n                  } catch (error) {\n                    console.error(\"Error: \", error);\n                    controller.enqueue({\n                      type: \"tool-result\",\n                      toolCallType,\n                      toolCallId,\n                      toolName,\n                      result: \"Error: \" + error,\n                      isError: true,\n                    });\n                  } finally {\n                    toolCallExecutions.delete(toolCallId);\n                  }\n                })(),\n              );\n            }\n          }\n          break;\n        }\n\n        // ignore other parts\n        case \"text-delta\":\n        case \"tool-call-delta\":\n        case \"tool-result\":\n        case \"finish\":\n        case \"error\":\n          break;\n\n        default: {\n          const unhandledType: never = chunkType;\n          throw new Error(`Unhandled chunk type: ${unhandledType}`);\n        }\n      }\n    },\n\n    async flush() {\n      await Promise.all(toolCallExecutions.values());\n    },\n  });\n}\n"],"mappings":"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","names":["message","z","z","sjson","result"]}
         
     | 
    
        package/dist/edge.d.mts
    CHANGED
    
    | 
         @@ -1,8 +1,93 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { LanguageModelV1, LanguageModelV1ToolChoice } from '@ai-sdk/provider';
         
     | 
| 
       2 
     | 
    
         
            -
            import {  
     | 
| 
       3 
     | 
    
         
            -
            import ' 
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            import { LanguageModelV1LogProbs, LanguageModelV1, LanguageModelV1ToolChoice } from '@ai-sdk/provider';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { z } from 'zod';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { JSONSchema7 } from 'json-schema';
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            type TextContentPart = {
         
     | 
| 
      
 6 
     | 
    
         
            +
                type: "text";
         
     | 
| 
      
 7 
     | 
    
         
            +
                text: string;
         
     | 
| 
      
 8 
     | 
    
         
            +
            };
         
     | 
| 
      
 9 
     | 
    
         
            +
            type ImageContentPart = {
         
     | 
| 
      
 10 
     | 
    
         
            +
                type: "image";
         
     | 
| 
      
 11 
     | 
    
         
            +
                image: string;
         
     | 
| 
      
 12 
     | 
    
         
            +
            };
         
     | 
| 
      
 13 
     | 
    
         
            +
            type CoreToolCallContentPart<TArgs extends Record<string, unknown> = Record<string | number, unknown>, TResult = unknown> = {
         
     | 
| 
      
 14 
     | 
    
         
            +
                type: "tool-call";
         
     | 
| 
      
 15 
     | 
    
         
            +
                toolCallId: string;
         
     | 
| 
      
 16 
     | 
    
         
            +
                toolName: string;
         
     | 
| 
      
 17 
     | 
    
         
            +
                args: TArgs;
         
     | 
| 
      
 18 
     | 
    
         
            +
                result?: TResult | undefined;
         
     | 
| 
      
 19 
     | 
    
         
            +
                isError?: boolean | undefined;
         
     | 
| 
      
 20 
     | 
    
         
            +
            };
         
     | 
| 
      
 21 
     | 
    
         
            +
            type ThreadRoundtrip = {
         
     | 
| 
      
 22 
     | 
    
         
            +
                logprobs?: LanguageModelV1LogProbs | undefined;
         
     | 
| 
      
 23 
     | 
    
         
            +
                usage?: {
         
     | 
| 
      
 24 
     | 
    
         
            +
                    promptTokens: number;
         
     | 
| 
      
 25 
     | 
    
         
            +
                    completionTokens: number;
         
     | 
| 
      
 26 
     | 
    
         
            +
                } | undefined;
         
     | 
| 
      
 27 
     | 
    
         
            +
            };
         
     | 
| 
      
 28 
     | 
    
         
            +
            /** Core Message Types (without UI content parts) */
         
     | 
| 
      
 29 
     | 
    
         
            +
            type CoreUserContentPart = TextContentPart | ImageContentPart;
         
     | 
| 
      
 30 
     | 
    
         
            +
            type CoreAssistantContentPart = TextContentPart | CoreToolCallContentPart;
         
     | 
| 
      
 31 
     | 
    
         
            +
            type CoreSystemMessage = {
         
     | 
| 
      
 32 
     | 
    
         
            +
                role: "system";
         
     | 
| 
      
 33 
     | 
    
         
            +
                content: [TextContentPart];
         
     | 
| 
      
 34 
     | 
    
         
            +
            };
         
     | 
| 
      
 35 
     | 
    
         
            +
            type CoreUserMessage = {
         
     | 
| 
      
 36 
     | 
    
         
            +
                role: "user";
         
     | 
| 
      
 37 
     | 
    
         
            +
                content: CoreUserContentPart[];
         
     | 
| 
      
 38 
     | 
    
         
            +
            };
         
     | 
| 
      
 39 
     | 
    
         
            +
            type CoreAssistantMessage = {
         
     | 
| 
      
 40 
     | 
    
         
            +
                role: "assistant";
         
     | 
| 
      
 41 
     | 
    
         
            +
                content: CoreAssistantContentPart[];
         
     | 
| 
      
 42 
     | 
    
         
            +
            };
         
     | 
| 
      
 43 
     | 
    
         
            +
            type CoreMessage = CoreSystemMessage | CoreUserMessage | CoreAssistantMessage;
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            declare const LanguageModelV1CallSettingsSchema: z.ZodObject<{
         
     | 
| 
      
 46 
     | 
    
         
            +
                maxTokens: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 47 
     | 
    
         
            +
                temperature: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 48 
     | 
    
         
            +
                topP: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 49 
     | 
    
         
            +
                presencePenalty: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 50 
     | 
    
         
            +
                frequencyPenalty: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 51 
     | 
    
         
            +
                seed: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 52 
     | 
    
         
            +
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
         
     | 
| 
      
 53 
     | 
    
         
            +
            }, "strip", z.ZodTypeAny, {
         
     | 
| 
      
 54 
     | 
    
         
            +
                maxTokens?: number | undefined;
         
     | 
| 
      
 55 
     | 
    
         
            +
                temperature?: number | undefined;
         
     | 
| 
      
 56 
     | 
    
         
            +
                topP?: number | undefined;
         
     | 
| 
      
 57 
     | 
    
         
            +
                presencePenalty?: number | undefined;
         
     | 
| 
      
 58 
     | 
    
         
            +
                frequencyPenalty?: number | undefined;
         
     | 
| 
      
 59 
     | 
    
         
            +
                seed?: number | undefined;
         
     | 
| 
      
 60 
     | 
    
         
            +
                headers?: Record<string, string | undefined> | undefined;
         
     | 
| 
      
 61 
     | 
    
         
            +
            }, {
         
     | 
| 
      
 62 
     | 
    
         
            +
                maxTokens?: number | undefined;
         
     | 
| 
      
 63 
     | 
    
         
            +
                temperature?: number | undefined;
         
     | 
| 
      
 64 
     | 
    
         
            +
                topP?: number | undefined;
         
     | 
| 
      
 65 
     | 
    
         
            +
                presencePenalty?: number | undefined;
         
     | 
| 
      
 66 
     | 
    
         
            +
                frequencyPenalty?: number | undefined;
         
     | 
| 
      
 67 
     | 
    
         
            +
                seed?: number | undefined;
         
     | 
| 
      
 68 
     | 
    
         
            +
                headers?: Record<string, string | undefined> | undefined;
         
     | 
| 
      
 69 
     | 
    
         
            +
            }>;
         
     | 
| 
      
 70 
     | 
    
         
            +
            type LanguageModelV1CallSettings = z.infer<typeof LanguageModelV1CallSettingsSchema>;
         
     | 
| 
      
 71 
     | 
    
         
            +
            declare const LanguageModelConfigSchema: z.ZodObject<{
         
     | 
| 
      
 72 
     | 
    
         
            +
                apiKey: z.ZodOptional<z.ZodString>;
         
     | 
| 
      
 73 
     | 
    
         
            +
                baseUrl: z.ZodOptional<z.ZodString>;
         
     | 
| 
      
 74 
     | 
    
         
            +
                modelName: z.ZodOptional<z.ZodString>;
         
     | 
| 
      
 75 
     | 
    
         
            +
            }, "strip", z.ZodTypeAny, {
         
     | 
| 
      
 76 
     | 
    
         
            +
                apiKey?: string | undefined;
         
     | 
| 
      
 77 
     | 
    
         
            +
                baseUrl?: string | undefined;
         
     | 
| 
      
 78 
     | 
    
         
            +
                modelName?: string | undefined;
         
     | 
| 
      
 79 
     | 
    
         
            +
            }, {
         
     | 
| 
      
 80 
     | 
    
         
            +
                apiKey?: string | undefined;
         
     | 
| 
      
 81 
     | 
    
         
            +
                baseUrl?: string | undefined;
         
     | 
| 
      
 82 
     | 
    
         
            +
                modelName?: string | undefined;
         
     | 
| 
      
 83 
     | 
    
         
            +
            }>;
         
     | 
| 
      
 84 
     | 
    
         
            +
            type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;
         
     | 
| 
      
 85 
     | 
    
         
            +
            type ToolExecuteFunction<TArgs, TResult> = (args: TArgs) => TResult | Promise<TResult>;
         
     | 
| 
      
 86 
     | 
    
         
            +
            type Tool<TArgs extends Record<string, unknown> = Record<string | number, unknown>, TResult = unknown> = {
         
     | 
| 
      
 87 
     | 
    
         
            +
                description?: string | undefined;
         
     | 
| 
      
 88 
     | 
    
         
            +
                parameters: z.ZodSchema<TArgs> | JSONSchema7;
         
     | 
| 
      
 89 
     | 
    
         
            +
                execute?: ToolExecuteFunction<TArgs, TResult>;
         
     | 
| 
      
 90 
     | 
    
         
            +
            };
         
     | 
| 
       6 
91 
     | 
    
         | 
| 
       7 
92 
     | 
    
         
             
            type FinishResult = {
         
     | 
| 
       8 
93 
     | 
    
         
             
                messages: CoreMessage[];
         
     | 
    
        package/dist/edge.d.ts
    CHANGED
    
    | 
         @@ -1,8 +1,93 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            import { LanguageModelV1, LanguageModelV1ToolChoice } from '@ai-sdk/provider';
         
     | 
| 
       2 
     | 
    
         
            -
            import {  
     | 
| 
       3 
     | 
    
         
            -
            import ' 
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            import { LanguageModelV1LogProbs, LanguageModelV1, LanguageModelV1ToolChoice } from '@ai-sdk/provider';
         
     | 
| 
      
 2 
     | 
    
         
            +
            import { z } from 'zod';
         
     | 
| 
      
 3 
     | 
    
         
            +
            import { JSONSchema7 } from 'json-schema';
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            type TextContentPart = {
         
     | 
| 
      
 6 
     | 
    
         
            +
                type: "text";
         
     | 
| 
      
 7 
     | 
    
         
            +
                text: string;
         
     | 
| 
      
 8 
     | 
    
         
            +
            };
         
     | 
| 
      
 9 
     | 
    
         
            +
            type ImageContentPart = {
         
     | 
| 
      
 10 
     | 
    
         
            +
                type: "image";
         
     | 
| 
      
 11 
     | 
    
         
            +
                image: string;
         
     | 
| 
      
 12 
     | 
    
         
            +
            };
         
     | 
| 
      
 13 
     | 
    
         
            +
            type CoreToolCallContentPart<TArgs extends Record<string, unknown> = Record<string | number, unknown>, TResult = unknown> = {
         
     | 
| 
      
 14 
     | 
    
         
            +
                type: "tool-call";
         
     | 
| 
      
 15 
     | 
    
         
            +
                toolCallId: string;
         
     | 
| 
      
 16 
     | 
    
         
            +
                toolName: string;
         
     | 
| 
      
 17 
     | 
    
         
            +
                args: TArgs;
         
     | 
| 
      
 18 
     | 
    
         
            +
                result?: TResult | undefined;
         
     | 
| 
      
 19 
     | 
    
         
            +
                isError?: boolean | undefined;
         
     | 
| 
      
 20 
     | 
    
         
            +
            };
         
     | 
| 
      
 21 
     | 
    
         
            +
            type ThreadRoundtrip = {
         
     | 
| 
      
 22 
     | 
    
         
            +
                logprobs?: LanguageModelV1LogProbs | undefined;
         
     | 
| 
      
 23 
     | 
    
         
            +
                usage?: {
         
     | 
| 
      
 24 
     | 
    
         
            +
                    promptTokens: number;
         
     | 
| 
      
 25 
     | 
    
         
            +
                    completionTokens: number;
         
     | 
| 
      
 26 
     | 
    
         
            +
                } | undefined;
         
     | 
| 
      
 27 
     | 
    
         
            +
            };
         
     | 
| 
      
 28 
     | 
    
         
            +
            /** Core Message Types (without UI content parts) */
         
     | 
| 
      
 29 
     | 
    
         
            +
            type CoreUserContentPart = TextContentPart | ImageContentPart;
         
     | 
| 
      
 30 
     | 
    
         
            +
            type CoreAssistantContentPart = TextContentPart | CoreToolCallContentPart;
         
     | 
| 
      
 31 
     | 
    
         
            +
            type CoreSystemMessage = {
         
     | 
| 
      
 32 
     | 
    
         
            +
                role: "system";
         
     | 
| 
      
 33 
     | 
    
         
            +
                content: [TextContentPart];
         
     | 
| 
      
 34 
     | 
    
         
            +
            };
         
     | 
| 
      
 35 
     | 
    
         
            +
            type CoreUserMessage = {
         
     | 
| 
      
 36 
     | 
    
         
            +
                role: "user";
         
     | 
| 
      
 37 
     | 
    
         
            +
                content: CoreUserContentPart[];
         
     | 
| 
      
 38 
     | 
    
         
            +
            };
         
     | 
| 
      
 39 
     | 
    
         
            +
            type CoreAssistantMessage = {
         
     | 
| 
      
 40 
     | 
    
         
            +
                role: "assistant";
         
     | 
| 
      
 41 
     | 
    
         
            +
                content: CoreAssistantContentPart[];
         
     | 
| 
      
 42 
     | 
    
         
            +
            };
         
     | 
| 
      
 43 
     | 
    
         
            +
            type CoreMessage = CoreSystemMessage | CoreUserMessage | CoreAssistantMessage;
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
            declare const LanguageModelV1CallSettingsSchema: z.ZodObject<{
         
     | 
| 
      
 46 
     | 
    
         
            +
                maxTokens: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 47 
     | 
    
         
            +
                temperature: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 48 
     | 
    
         
            +
                topP: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 49 
     | 
    
         
            +
                presencePenalty: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 50 
     | 
    
         
            +
                frequencyPenalty: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 51 
     | 
    
         
            +
                seed: z.ZodOptional<z.ZodNumber>;
         
     | 
| 
      
 52 
     | 
    
         
            +
                headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodString>>>;
         
     | 
| 
      
 53 
     | 
    
         
            +
            }, "strip", z.ZodTypeAny, {
         
     | 
| 
      
 54 
     | 
    
         
            +
                maxTokens?: number | undefined;
         
     | 
| 
      
 55 
     | 
    
         
            +
                temperature?: number | undefined;
         
     | 
| 
      
 56 
     | 
    
         
            +
                topP?: number | undefined;
         
     | 
| 
      
 57 
     | 
    
         
            +
                presencePenalty?: number | undefined;
         
     | 
| 
      
 58 
     | 
    
         
            +
                frequencyPenalty?: number | undefined;
         
     | 
| 
      
 59 
     | 
    
         
            +
                seed?: number | undefined;
         
     | 
| 
      
 60 
     | 
    
         
            +
                headers?: Record<string, string | undefined> | undefined;
         
     | 
| 
      
 61 
     | 
    
         
            +
            }, {
         
     | 
| 
      
 62 
     | 
    
         
            +
                maxTokens?: number | undefined;
         
     | 
| 
      
 63 
     | 
    
         
            +
                temperature?: number | undefined;
         
     | 
| 
      
 64 
     | 
    
         
            +
                topP?: number | undefined;
         
     | 
| 
      
 65 
     | 
    
         
            +
                presencePenalty?: number | undefined;
         
     | 
| 
      
 66 
     | 
    
         
            +
                frequencyPenalty?: number | undefined;
         
     | 
| 
      
 67 
     | 
    
         
            +
                seed?: number | undefined;
         
     | 
| 
      
 68 
     | 
    
         
            +
                headers?: Record<string, string | undefined> | undefined;
         
     | 
| 
      
 69 
     | 
    
         
            +
            }>;
         
     | 
| 
      
 70 
     | 
    
         
            +
            type LanguageModelV1CallSettings = z.infer<typeof LanguageModelV1CallSettingsSchema>;
         
     | 
| 
      
 71 
     | 
    
         
            +
            declare const LanguageModelConfigSchema: z.ZodObject<{
         
     | 
| 
      
 72 
     | 
    
         
            +
                apiKey: z.ZodOptional<z.ZodString>;
         
     | 
| 
      
 73 
     | 
    
         
            +
                baseUrl: z.ZodOptional<z.ZodString>;
         
     | 
| 
      
 74 
     | 
    
         
            +
                modelName: z.ZodOptional<z.ZodString>;
         
     | 
| 
      
 75 
     | 
    
         
            +
            }, "strip", z.ZodTypeAny, {
         
     | 
| 
      
 76 
     | 
    
         
            +
                apiKey?: string | undefined;
         
     | 
| 
      
 77 
     | 
    
         
            +
                baseUrl?: string | undefined;
         
     | 
| 
      
 78 
     | 
    
         
            +
                modelName?: string | undefined;
         
     | 
| 
      
 79 
     | 
    
         
            +
            }, {
         
     | 
| 
      
 80 
     | 
    
         
            +
                apiKey?: string | undefined;
         
     | 
| 
      
 81 
     | 
    
         
            +
                baseUrl?: string | undefined;
         
     | 
| 
      
 82 
     | 
    
         
            +
                modelName?: string | undefined;
         
     | 
| 
      
 83 
     | 
    
         
            +
            }>;
         
     | 
| 
      
 84 
     | 
    
         
            +
            type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;
         
     | 
| 
      
 85 
     | 
    
         
            +
            type ToolExecuteFunction<TArgs, TResult> = (args: TArgs) => TResult | Promise<TResult>;
         
     | 
| 
      
 86 
     | 
    
         
            +
            type Tool<TArgs extends Record<string, unknown> = Record<string | number, unknown>, TResult = unknown> = {
         
     | 
| 
      
 87 
     | 
    
         
            +
                description?: string | undefined;
         
     | 
| 
      
 88 
     | 
    
         
            +
                parameters: z.ZodSchema<TArgs> | JSONSchema7;
         
     | 
| 
      
 89 
     | 
    
         
            +
                execute?: ToolExecuteFunction<TArgs, TResult>;
         
     | 
| 
      
 90 
     | 
    
         
            +
            };
         
     | 
| 
       6 
91 
     | 
    
         | 
| 
       7 
92 
     | 
    
         
             
            type FinishResult = {
         
     | 
| 
       8 
93 
     | 
    
         
             
                messages: CoreMessage[];
         
     | 
    
        package/dist/edge.js
    CHANGED