supercompat 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/supercompat.ts","../src/adapters/client/mistralClientAdapter/index.ts","../src/adapters/client/perplexityClientAdapter/index.ts","../src/adapters/run/completionsRunAdapter/index.ts","../src/adapters/run/completionsRunAdapter/messages.ts","../src/adapters/run/completionsRunAdapter/serializeMessage.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/serializeThread.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/messages/serializeMessage.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/messages/create.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/messages/index.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/serializeRun.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/create.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunInProgress.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunFailed.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunCompleted.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunRequiresAction.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/serializeRunStep.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepCreated.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepDelta.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCreated.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageDelta.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCompleted.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/index.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/index.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/getMessages.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputs.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputsStream.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/list.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/index.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/runs/index.ts","../src/adapters/storage/prismaStorageAdapter/beta/threads/index.ts","../src/adapters/storage/prismaStorageAdapter/beta/index.ts","../src/adapters/storage/prismaStorageAdapter/index.ts"],"names":["messages","content","getMessages","onEvent","dayjs","assign","serializeMessage","create","last","list","runs","status","prisma"],"mappings":"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","sourcesContent":["import OpenAI from 'openai'\nimport { assign, partob } from 'radash'\nimport { RunAdapter, StorageAdapterArgs } from '@/types'\n\nexport const supercompat = ({\n client,\n storage,\n runAdapter,\n}: {\n client: OpenAI\n storage: (arg0: StorageAdapterArgs) => OpenAI\n runAdapter: RunAdapter\n}) => (\n assign(\n client,\n storage({\n runAdapter: partob(runAdapter, { client }),\n }),\n )\n)\n","import type OpenAI from 'openai'\nimport type MistralClient from '@mistralai/mistralai'\n\nexport const mistralClientAdapter = ({\n mistral,\n}: {\n mistral: MistralClient\n}) => ({\n chat: {\n completions: {\n // @ts-ignore-next-line\n create: (...args: Parameters<OpenAI.Chat.Completions['create']>): ReturnType<OpenAI.Chat.Completions['create']> => (\n // @ts-ignore-next-line\n (args[0].stream ? mistral.chatStream(...args) : mistral.chat(...args))\n )\n },\n },\n})\n","import type OpenAI from 'openai'\n\nconst agentSideRoles = ['assistant', 'system']\n\nexport const perplexityClientAdapter = ({\n perplexity,\n}: {\n perplexity: OpenAI\n}) => ({\n chat: {\n completions: {\n create: (...args: Parameters<OpenAI.Chat.Completions['create']>): ReturnType<OpenAI.Chat.Completions['create']> => {\n const [firstArg, ...restArgs] = args\n\n const messages = [] as OpenAI.Chat.ChatCompletionMessageParam[]\n\n firstArg.messages.forEach((message: OpenAI.Chat.ChatCompletionMessageParam, index: number) => {\n messages.push(message)\n\n const nextMessage = firstArg.messages[index + 1]\n if (!nextMessage) return\n\n if (message.role === 'user' && nextMessage.role === 'user') {\n messages.push({\n role: 'assistant',\n content: '',\n })\n } else if (agentSideRoles.includes(message.role) && agentSideRoles.includes(nextMessage.role)) {\n messages.push({\n role: 'user',\n content: '',\n })\n }\n })\n\n return perplexity.chat.completions.create({\n ...firstArg,\n messages,\n }, ...restArgs)\n },\n },\n },\n})\n","import _ from 'lodash'\nimport { uid, omit, isEmpty } from 'radash'\nimport dayjs from 'dayjs'\nimport type OpenAI from 'openai'\nimport { MessageWithRun } from '@/types'\nimport { messages } from './messages'\n\nconst updatedToolCall = ({\n toolCall,\n delta,\n}: {\n toolCall: any\n delta: any\n}) => {\n if (!toolCall) return omit(delta, ['index'])\n\n // if (delta.type !== 'function') return toolCall\n\n const result = _.cloneDeep(toolCall)\n\n for (const [key, value] of Object.entries(delta.function)) {\n result.function[key] = `${result.function[key] ?? ''}${value}`\n }\n\n return result\n}\n\nconst toolCallsData = ({\n prevToolCalls,\n delta,\n}: {\n prevToolCalls: any\n delta: any\n}) => {\n if (!prevToolCalls) {\n return delta.tool_calls.map((tc: any) => ({\n id: uid(24),\n type: 'function',\n ...omit(tc, ['index']),\n }))\n }\n\n const newToolCalls = _.cloneDeep(prevToolCalls)\n\n for (const runStepDelta of delta.tool_calls) {\n newToolCalls[runStepDelta.index] = updatedToolCall({\n toolCall: newToolCalls[runStepDelta.index],\n delta: runStepDelta,\n })\n }\n\n return newToolCalls\n}\n\nexport const completionsRunAdapter = async ({\n client,\n run,\n onEvent,\n getMessages,\n}: {\n client: OpenAI\n run: OpenAI.Beta.Threads.Run\n onEvent: (event: OpenAI.Beta.AssistantStreamEvent) => Promise<any>\n getMessages: () => Promise<MessageWithRun[]>\n}) => {\n if (run.status !== 'queued') return\n\n onEvent({\n event: 'thread.run.in_progress',\n data: {\n ...run,\n status: 'in_progress',\n },\n })\n\n const opts = {\n messages: await messages({\n run,\n getMessages,\n }),\n model: run.model,\n stream: true,\n ...(isEmpty(run.tools) ? {} : { tools: run.tools }),\n } as OpenAI.ChatCompletionCreateParamsStreaming\n\n console.dir({ opts }, { depth: null })\n let providerResponse\n\n try {\n providerResponse = await client.chat.completions.create(opts)\n } catch(e) {\n console.error(e)\n return onEvent({\n event: 'thread.run.failed',\n data: {\n ...run,\n failed_at: dayjs().unix(),\n status: 'in_progress',\n last_error: (e as { message: OpenAI.Beta.Threads.Runs.Run.LastError }).message,\n },\n })\n }\n\n let message = await onEvent({\n event: 'thread.message.created',\n data: {\n id: 'THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID',\n object: 'thread.message',\n completed_at: null,\n run_id: run.id,\n created_at: dayjs().unix(),\n assistant_id: run.assistant_id,\n incomplete_at: null,\n incomplete_details: null,\n metadata: {},\n file_ids: [],\n thread_id: run.thread_id,\n content: [{ text: { value: '', annotations: [] }, type: 'text' }],\n role: 'assistant',\n status: 'in_progress',\n },\n })\n\n onEvent({\n event: 'thread.run.step.created',\n data: {\n id: 'THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID',\n object: 'thread.run.step',\n run_id: run.id,\n assistant_id: run.assistant_id,\n thread_id: run.thread_id,\n type: 'message_creation',\n status: 'completed',\n completed_at: dayjs().unix(),\n created_at: dayjs().unix(),\n expired_at: null,\n last_error: null,\n metadata: {},\n failed_at: null,\n cancelled_at: null,\n usage: null,\n step_details: {\n type: 'message_creation',\n message_creation: {\n message_id: message.id,\n },\n },\n },\n })\n\n let toolCallsRunStep\n let currentContent = ''\n let currentToolCalls\n\n console.dir({ providerResponse }, { depth: null })\n for await (const chunk of providerResponse) {\n const delta = chunk.choices[0].delta\n\n if (delta.content) {\n currentContent = `${currentContent}${delta.content ?? ''}`\n }\n\n if (delta.tool_calls) {\n if (!toolCallsRunStep) {\n toolCallsRunStep = await onEvent({\n event: 'thread.run.step.created',\n data: {\n id: 'THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID',\n object: 'thread.run.step',\n run_id: run.id,\n assistant_id: run.assistant_id,\n thread_id: run.thread_id,\n type: 'tool_calls',\n status: 'in_progress',\n completed_at: null,\n created_at: dayjs().unix(),\n expired_at: null,\n last_error: null,\n metadata: {},\n failed_at: null,\n cancelled_at: null,\n usage: null,\n step_details: {\n type: 'tool_calls',\n tool_calls: [],\n },\n },\n })\n }\n\n onEvent({\n event: 'thread.run.step.delta',\n data: {\n object: 'thread.run.step.delta',\n run_id: run.id,\n id: toolCallsRunStep.id,\n delta: {\n step_details: {\n type: 'tool_calls',\n tool_calls: delta.tool_calls.map((tc: any) => ({\n id: uid(24),\n type: 'function',\n ...tc,\n })),\n },\n },\n },\n } as OpenAI.Beta.AssistantStreamEvent.ThreadRunStepDelta)\n\n currentToolCalls = toolCallsData({ prevToolCalls: currentToolCalls, delta })\n }\n\n if (delta.content) {\n onEvent({\n event: 'thread.message.delta',\n data: {\n id: message.id,\n delta: {\n content: [\n {\n type: 'text',\n index: 0,\n text: {\n value: delta.content,\n },\n },\n ],\n },\n },\n } as OpenAI.Beta.AssistantStreamEvent.ThreadMessageDelta)\n }\n }\n\n message = await onEvent({\n event: 'thread.message.completed',\n data: {\n ...message,\n status: 'completed',\n content: [{ text: { value: currentContent, annotations: [] }, type: 'text' }],\n tool_calls: currentToolCalls,\n },\n })\n\n if (isEmpty(message.toolCalls)) {\n return onEvent({\n event: 'thread.run.completed',\n data: {\n ...run,\n status: 'completed',\n completed_at: dayjs().unix(),\n },\n })\n }\n\n return onEvent({\n event: 'thread.run.requires_action',\n data: {\n ...run,\n status: 'requires_action',\n required_action: {\n type: 'submit_tool_outputs',\n submit_tool_outputs: {\n tool_calls: message.toolCalls,\n },\n },\n },\n })\n}\n","import type OpenAI from 'openai'\nimport { flat } from 'radash'\nimport { MessageWithRun } from '@/types'\nimport { serializeMessage } from './serializeMessage'\n\nexport const messages = async ({\n run,\n getMessages,\n}: {\n run: OpenAI.Beta.Threads.Run\n getMessages: () => Promise<MessageWithRun[]>\n}) => (\n [\n ...(run.instructions ? [{\n role: 'system',\n content: run.instructions,\n }] : []),\n ...flat((await getMessages()).map((message: MessageWithRun) => serializeMessage({ message }))),\n ]\n)\n","import type OpenAI from 'openai'\nimport { MessageWithRun } from '@/types'\n\nconst serializeToolCalls = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => {\n if (runStep.step_details.type !== 'tool_calls') return []\n\n const functionToolCalls = runStep.step_details.tool_calls.filter(tc => tc.type === 'function') as OpenAI.Beta.Threads.Runs.Steps.FunctionToolCall[]\n\n return functionToolCalls.map((toolCall) => ({\n tool_call_id: toolCall.id,\n role: 'tool' as 'tool',\n name: toolCall.function.name,\n content: toolCall.function.output,\n }))\n}\n\nconst serializeMessageWithContent = ({\n message,\n}: {\n message: MessageWithRun\n}) => ({\n role: message.role,\n content: serializeContent({\n content: message.content as unknown as OpenAI.Beta.Threads.Messages.TextContentBlock[],\n }),\n ...(message?.metadata?.toolCalls ? { tool_calls: message.metadata.toolCalls } : {}),\n})\n\nconst serializeContent = ({\n content,\n}: {\n content: OpenAI.Beta.Threads.Messages.TextContentBlock[]\n}) => content.map((content) => content.text.value).join('\\n')\n\nexport const serializeMessage = ({\n message\n}: {\n message: MessageWithRun\n}) => {\n console.log('serializing msg')\n console.dir({\n message,\n }, { depth: null })\n const result = [serializeMessageWithContent({ message })]\n\n if (!message.run) return result\n // if (isEmpty(message.toolCalls)) return result\n\n const toolCallsRunSteps = message.run.runSteps.filter((runStep) => runStep.type === 'tool_calls')\n\n toolCallsRunSteps.forEach((runStep) => {\n result.push(...serializeToolCalls({ runStep }))\n })\n\n console.dir({ result }, { depth: null })\n\n return result\n}\n","import type { PrismaClient } from '@prisma/client'\nimport dayjs from 'dayjs'\nimport type OpenAI from 'openai'\nimport { serializeThread } from './serializeThread'\n\nexport const create = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => async (...args: Parameters<OpenAI.Beta.Threads['create']>): Promise<ReturnType<OpenAI.Beta.Threads['create']>> => {\n const {\n // @ts-ignore-next-line\n body: {\n messages,\n metadata,\n },\n } = args[0]\n\n const initialCreatedAt = dayjs().subtract(messages.length, 'seconds').format()\n\n const thread = await prisma.thread.create({\n data: {\n assistantId: metadata.superinterfaceAssistantId,\n metadata,\n messages: {\n create: messages.map((message: OpenAI.Beta.ThreadCreateParams.Message, index: number) => ({\n role: message.role,\n content: [{\n type: 'text',\n text: {\n annotations: [],\n value: message.content,\n },\n },\n ],\n fileIds: message.file_ids,\n metadata: message.metadata,\n createdAt: dayjs(initialCreatedAt).add(index, 'seconds').toDate(),\n })),\n },\n },\n })\n\n return serializeThread({ thread })\n}\n","import type { Thread } from '@prisma/client'\nimport dayjs from 'dayjs'\n\nexport const serializeThread = ({\n thread,\n}: {\n thread: Thread\n}) => ({\n id: thread.id,\n object: 'thread' as 'thread',\n created_at: dayjs(thread.createdAt).unix(),\n metadata: thread.metadata,\n})\n","import type { PrismaClient } from '@prisma/client'\nimport type OpenAI from 'openai'\nimport { assign, last } from 'radash'\nimport { serializeMessage } from './serializeMessage'\n\nexport const list = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => async (...args: Parameters<OpenAI.Beta.Threads.Messages['list']>): Promise<ReturnType<OpenAI.Beta.Threads.Messages['list']>> => {\n const threadId = args[0]\n const {\n // @ts-ignore-next-line\n limit,\n // @ts-ignore-next-line\n order,\n } = assign({\n // @ts-ignore-next-line\n limit: 20,\n order: 'desc',\n }, args[1] ?? {})\n\n const messages = await prisma.message.findMany({\n where: {\n threadId,\n },\n take: limit,\n orderBy: {\n createdAt: order,\n },\n })\n\n // @ts-ignore-next-line\n return {\n data: messages.map((message) => (\n serializeMessage({ message })\n )),\n hasNextPage: () => false,\n body: {\n last_id: last(messages)?.id ?? null,\n },\n }\n}\n","import type { Message } from '@prisma/client'\nimport dayjs from 'dayjs'\nimport type OpenAI from 'openai'\nimport { assign } from 'radash'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: Message\n}) => ({\n id: message.id,\n object: 'thread.message' as 'thread.message',\n created_at: dayjs(message.createdAt).unix(),\n thread_id: message.threadId,\n completed_at: message.completedAt ? dayjs(message.completedAt).unix() : null,\n incomplete_at: message.incompleteAt ? dayjs(message.incompleteAt).unix() : null,\n incomplete_details: message.incompleteDetails as unknown as OpenAI.Beta.Threads.Messages.Message.IncompleteDetails,\n role: message.role.toLowerCase() as 'user' | 'assistant',\n content: message.content as unknown as OpenAI.Beta.Threads.Messages.TextContentBlock[],\n assistant_id: message.assistantId,\n run_id: message.runId,\n file_ids: message.fileIds,\n status: message.status.toLowerCase() as OpenAI.Beta.Threads.Messages.Message['status'],\n metadata: assign(message.metadata as Record<any, any> ?? {}, { toolCalls: message.toolCalls }),\n})\n","import type OpenAI from 'openai'\nimport type { PrismaClient } from '@prisma/client'\nimport { serializeMessage } from './serializeMessage'\n\nconst messageContentBlocks = ({\n content,\n}: {\n content: string\n}) => ([\n {\n type: 'text',\n text: {\n value: content ?? '',\n annotations: [],\n },\n },\n])\n\nexport const create = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => async (...args: Parameters<OpenAI.Beta.Threads.Messages['create']>): Promise<ReturnType<OpenAI.Beta.Threads.Messages['create']>> => {\n const threadId = args[0]\n const { content } = args[1]\n\n const message = await prisma.message.create({\n data: {\n threadId,\n content: messageContentBlocks({ content }),\n role: 'USER',\n },\n })\n\n return serializeMessage({ message })\n}\n","import type { PrismaClient } from '@prisma/client'\nimport { list } from './list'\nimport { create } from './create'\n\nexport const messages = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => ({\n list: list({ prisma }),\n create: create({ prisma }),\n})\n","import type { PrismaClient } from '@prisma/client'\nimport type OpenAI from 'openai'\nimport { assign, last } from 'radash'\nimport { serializeRun } from './serializeRun'\n\nexport const list = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => async (...args: Parameters<OpenAI.Beta.Threads.Runs['list']>): Promise<ReturnType<OpenAI.Beta.Threads.Runs['list']>> => {\n const threadId = args[0]\n\n const {\n // @ts-ignore-next-line\n limit,\n // @ts-ignore-next-line\n order,\n } = assign({\n // @ts-ignore-next-line\n limit: 20,\n order: 'desc',\n }, args[1] ?? {})\n\n const runs = await prisma.run.findMany({\n where: {\n threadId,\n },\n take: limit,\n orderBy: {\n createdAt: order,\n },\n })\n\n // @ts-ignore-next-line\n return {\n data: runs.map((run) => serializeRun({ run })),\n hasNextPage: () => false,\n body: {\n last_id: last(runs)?.id ?? null,\n },\n }\n}\n","import type OpenAI from 'openai'\nimport type { Run } from '@prisma/client'\nimport dayjs from 'dayjs'\n\nexport const serializeRun = ({\n run,\n}: {\n run: Run\n}) => ({\n id: run.id,\n object: 'thread.run' as 'thread.run',\n created_at: dayjs(run.createdAt).unix(),\n thread_id: run.threadId,\n assistant_id: run.assistantId,\n status: run.status.toLowerCase() as OpenAI.Beta.Threads.Run['status'],\n required_action: run.requiredAction as OpenAI.Beta.Threads.Run['required_action'],\n last_error: run.lastError as OpenAI.Beta.Threads.Run['last_error'],\n expires_at: dayjs(run.expiresAt).unix(),\n started_at: run.startedAt ? dayjs(run.startedAt).unix() : null,\n cancelled_at: run.cancelledAt ? dayjs(run.cancelledAt).unix() : null,\n failed_at: run.failedAt ? dayjs(run.failedAt).unix() : null,\n completed_at: run.completedAt ? dayjs(run.completedAt).unix() : null,\n model: run.model,\n instructions: run.instructions,\n // @ts-ignore-next-line\n tools: run.tools as OpenAI.Beta.Threads.Run['tools'],\n file_ids: run.fileIds,\n metadata: run.metadata,\n usage: run.usage as OpenAI.Beta.Threads.Run['usage'],\n})\n","import type OpenAI from 'openai'\nimport type { PrismaClient } from '@prisma/client'\nimport dayjs from 'dayjs'\nimport { assign } from 'radash'\nimport { serializeRun } from './serializeRun'\n\nexport const create = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => async (...args: Parameters<OpenAI.Beta.Threads.Runs['create']>): Promise<ReturnType<OpenAI.Beta.Threads.Runs['create']>> => {\n const threadId = args[0]\n const { assistant_id } = args[1]\n\n const assistant = await prisma.assistant.findUnique({\n where: {\n id: assistant_id,\n },\n })\n\n if (!assistant) {\n throw new Error('Assistant not found')\n }\n\n const {\n model,\n instructions,\n // additional_instructions,\n tools,\n metadata,\n // @ts-ignore-next-line\n } = assign({\n model: assistant.modelSlug,\n instructions: '',\n additional_instructions: null,\n // tools: [],\n // metadata: {},\n }, args[1])\n\n const run = await prisma.run.create({\n data: {\n status: 'QUEUED',\n expiresAt: dayjs().add(1, 'hour').unix(),\n // @ts-ignore-next-line\n model,\n // @ts-ignore-next-line\n instructions,\n // @ts-ignore-next-line\n tools,\n // @ts-ignore-next-line\n metadata,\n thread: {\n connect: {\n id: threadId,\n },\n },\n assistant: {\n connect: {\n id: assistant_id,\n },\n },\n },\n })\n\n return serializeRun({ run })\n}\n","import type { PrismaClient } from '@prisma/client'\nimport type OpenAI from 'openai'\nimport { assign } from 'radash'\nimport dayjs from 'dayjs'\nimport { serializeRun } from './serializeRun'\nimport { RunAdapter } from '@/types'\nimport { onEvent } from './onEvent'\nimport { getMessages } from './getMessages'\n\nexport const createAndStream = ({\n prisma,\n runAdapter,\n}: {\n prisma: PrismaClient\n runAdapter: RunAdapter\n}) => (...args: Parameters<OpenAI.Beta.Threads.Runs['createAndStream']>): ReturnType<OpenAI.Beta.Threads.Runs['createAndStream']> => {\n return new ReadableStream({\n async start(controller) {\n const threadId = args[0]\n const { assistant_id } = args[1]\n\n const assistant = await prisma.assistant.findUnique({\n where: {\n id: assistant_id,\n },\n })\n\n if (!assistant) {\n throw new Error('Assistant not found')\n }\n\n const {\n model,\n instructions,\n // additional_instructions,\n tools,\n metadata,\n // @ts-ignore-next-line\n } = assign({\n model: assistant.modelSlug,\n instructions: '',\n additional_instructions: null,\n // tools: [],\n // metadata: {},\n }, args[1])\n\n const run = await prisma.run.create({\n data: {\n status: 'QUEUED',\n expiresAt: dayjs().add(1, 'hour').unix(),\n // @ts-ignore-next-line\n model,\n // @ts-ignore-next-line\n instructions,\n // @ts-ignore-next-line\n tools,\n // @ts-ignore-next-line\n metadata,\n thread: {\n connect: {\n id: threadId,\n },\n },\n assistant: {\n connect: {\n id: assistant_id,\n },\n },\n },\n })\n\n const data = serializeRun({ run })\n\n controller.enqueue({\n event: 'thread.run.created',\n data,\n })\n\n console.log('createAndStream', { getMessages })\n await runAdapter({\n run: data,\n onEvent: onEvent({ controller, prisma }),\n getMessages: getMessages({ prisma, run }),\n })\n\n console.log('Stream ended inside cloud storage')\n controller.close()\n },\n })\n}\n","import type OpenAI from 'openai'\nimport { RunStatus } from '@/types/prisma'\nimport type { PrismaClient } from '@prisma/client'\n\nexport const threadRunInProgress = ({\n prisma,\n event,\n controller,\n}: {\n prisma: PrismaClient\n event: OpenAI.Beta.AssistantStreamEvent.ThreadRunInProgress\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadRunInProgress>\n}) => {\n controller.enqueue(event)\n\n return prisma.run.update({\n where: {\n id: event.data.id,\n },\n data: {\n status: RunStatus.IN_PROGRESS,\n },\n })\n}\n","import type OpenAI from 'openai'\nimport { RunStatus } from '@/types/prisma'\nimport type { PrismaClient } from '@prisma/client'\n\nexport const threadRunFailed = ({\n prisma,\n event,\n controller,\n}: {\n prisma: PrismaClient\n event: OpenAI.Beta.AssistantStreamEvent.ThreadRunFailed\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadRunFailed>\n}) => {\n controller.enqueue(event)\n\n return prisma.run.update({\n where: {\n id: event.data.id,\n },\n data: {\n status: RunStatus.FAILED,\n failedAt: event.data.failed_at,\n lastError: event.data.last_error,\n },\n })\n}\n","import type OpenAI from 'openai'\nimport { RunStatus } from '@/types/prisma'\nimport type { PrismaClient } from '@prisma/client'\n\nexport const threadRunCompleted = ({\n prisma,\n event,\n controller,\n}: {\n prisma: PrismaClient\n event: OpenAI.Beta.AssistantStreamEvent.ThreadRunCompleted\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadRunCompleted>\n}) => {\n controller.enqueue(event)\n\n return prisma.run.update({\n where: {\n id: event.data.id,\n },\n data: {\n status: RunStatus.COMPLETED,\n requiredAction: undefined,\n },\n })\n}\n","import type OpenAI from 'openai'\nimport type { PrismaClient, RunStatus } from '@prisma/client'\n\nexport const threadRunRequiresAction = ({\n prisma,\n event,\n controller,\n}: {\n prisma: PrismaClient\n event: OpenAI.Beta.AssistantStreamEvent.ThreadRunRequiresAction\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadRunRequiresAction>\n}) => {\n controller.enqueue(event)\n\n return prisma.run.update({\n where: {\n id: event.data.id,\n },\n data: {\n status: RunStatus.REQUIRES_ACTION,\n requiredAction: event.data.required_action,\n },\n })\n}\n","import dayjs from 'dayjs'\nimport type { RunStep } from '@prisma/client'\nimport type OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: RunStep\n}) => ({\n id: runStep.id,\n object: 'thread.run.step' as 'thread.run.step',\n created_at: dayjs(runStep.createdAt).unix(),\n assistant_id: runStep.assistantId,\n thread_id: runStep.threadId,\n run_id: runStep.runId,\n type: runStep.type.toLowerCase() as OpenAI.Beta.Threads.Runs.RunStep['type'],\n status: runStep.status.toLowerCase() as OpenAI.Beta.Threads.Runs.RunStep['status'],\n // @ts-ignore-next-line\n step_details: runStep.stepDetails as OpenAI.Beta.Threads.Runs.RunStep['step_details'],\n last_error: runStep.lastError as OpenAI.Beta.Threads.Runs.RunStep['last_error'],\n expired_at: runStep.expiredAt ? dayjs(runStep.expiredAt).unix() : null,\n cancelled_at: runStep.cancelledAt ? dayjs(runStep.cancelledAt).unix() : null,\n failed_at: runStep.failedAt ? dayjs(runStep.failedAt).unix() : null,\n completed_at: runStep.completedAt ? dayjs(runStep.completedAt).unix() : null,\n metadata: runStep.metadata,\n usage: runStep.usage as OpenAI.Beta.Threads.Runs.RunStep['usage'],\n})\n","import type OpenAI from 'openai'\nimport { RunStepType, RunStepStatus } from '@/types/prisma'\nimport type { PrismaClient } from '@prisma/client'\nimport { serializeRunStep } from '../../steps/serializeRunStep'\n\nconst type = (event: OpenAI.Beta.AssistantStreamEvent.ThreadRunStepCreated) => {\n if (event.data.type === 'message_creation') return RunStepType.MESSAGE_CREATION\n if (event.data.type === 'tool_calls') return RunStepType.TOOL_CALLS\n\n throw new Error(`Unknown type: ${event.data.type}`)\n}\n\nconst status = (event: OpenAI.Beta.AssistantStreamEvent.ThreadRunStepCreated) => {\n if (event.data.status === 'in_progress') return RunStepStatus.IN_PROGRESS\n if (event.data.status === 'cancelled') return RunStepStatus.CANCELLED\n if (event.data.status === 'completed') return RunStepStatus.COMPLETED\n if (event.data.status === 'failed') return RunStepStatus.FAILED\n if (event.data.status === 'expired') return RunStepStatus.EXPIRED\n\n throw new Error(`Unknown status: ${event.data.status}`)\n}\n\nexport const threadRunStepCreated = async ({\n prisma,\n event,\n controller,\n}: {\n prisma: PrismaClient\n event: OpenAI.Beta.AssistantStreamEvent.ThreadRunStepCreated\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadRunStepCreated>\n}) => {\n const runStep = await prisma.runStep.create({\n data: {\n runId: event.data.run_id,\n assistantId: event.data.assistant_id,\n threadId: event.data.thread_id,\n type: type(event),\n status: status(event),\n stepDetails: event.data.step_details,\n completedAt: event.data.completed_at,\n },\n })\n\n const serializedRunStep = serializeRunStep({ runStep })\n\n controller.enqueue({\n ...event,\n data: serializedRunStep,\n })\n\n return serializedRunStep\n}\n","import type OpenAI from 'openai'\n\nexport const threadRunStepDelta = ({\n event,\n controller,\n}: {\n event: OpenAI.Beta.AssistantStreamEvent.ThreadRunStepDelta\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadRunStepDelta>\n}) => (\n controller.enqueue(event)\n)\n","import type OpenAI from 'openai'\nimport { MessageStatus } from '@/types/prisma'\nimport type { PrismaClient } from '@prisma/client'\nimport { serializeMessage } from '../../../messages/serializeMessage'\n\nconst status = (event: OpenAI.Beta.AssistantStreamEvent.ThreadMessageCreated) => {\n if (event.data.status === 'completed') return MessageStatus.COMPLETED\n if (event.data.status === 'in_progress') return MessageStatus.IN_PROGRESS\n if (event.data.status === 'incomplete') return MessageStatus.INCOMPLETE\n\n throw new Error(`Unknown status: ${event.data.status}`)\n}\n\nexport const threadMessageCreated = async ({\n prisma,\n event,\n controller,\n}: {\n prisma: PrismaClient\n event: OpenAI.Beta.AssistantStreamEvent.ThreadMessageCreated\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadMessageCreated>\n}) => {\n const message = await prisma.message.create({\n data: {\n threadId: event.data.thread_id,\n content: event.data.content as unknown as OpenAI.Beta.Threads.Messages.TextContentBlock[],\n role: event.data.role === 'assistant' ? 'ASSISTANT' : 'USER',\n assistantId: event.data.assistant_id,\n runId: event.data.run_id,\n status: status(event),\n },\n })\n\n const serializedMessage = serializeMessage({ message })\n\n controller.enqueue({\n ...event,\n data: serializedMessage,\n })\n\n return serializedMessage\n}\n","import type OpenAI from 'openai'\n\nexport const threadMessageDelta = ({\n event,\n controller,\n}: {\n event: OpenAI.Beta.AssistantStreamEvent.ThreadMessageDelta\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadMessageDelta>\n}) => (\n controller.enqueue(event)\n)\n","import type OpenAI from 'openai'\nimport { MessageStatus, RunStepType } from '@/types/prisma'\nimport type { PrismaClient } from '@prisma/client'\n\nexport const threadMessageCompleted = async ({\n prisma,\n event,\n controller,\n}: {\n prisma: PrismaClient\n event: OpenAI.Beta.AssistantStreamEvent.ThreadMessageCompleted\n controller: ReadableStreamDefaultController<OpenAI.Beta.AssistantStreamEvent.ThreadMessageCompleted>\n}) => {\n controller.enqueue(event)\n\n if (event.data.tool_calls) {\n const latestRunStep = await prisma.runStep.findFirst({\n where: {\n threadId: event.data.thread_id,\n type: RunStepType.TOOL_CALLS,\n },\n orderBy: {\n createdAt: 'desc',\n },\n })\n\n if (!latestRunStep) {\n throw new Error('No run step found')\n }\n\n await prisma.runStep.update({\n where: {\n id: latestRunStep.id,\n },\n data: {\n stepDetails: {\n type: 'tool_calls',\n tool_calls: event.data.tool_calls,\n },\n },\n })\n }\n\n return prisma.message.update({\n where: {\n id: event.data.id,\n },\n data: {\n status: MessageStatus.COMPLETED,\n ...(event.data.content ? { content: event.data.content } : {}),\n ...(event.data.tool_calls ? { toolCalls: event.data.tool_calls } : {}),\n },\n })\n}\n","import { threadRunInProgress } from './threadRunInProgress'\nimport { threadRunFailed } from './threadRunFailed'\nimport { threadRunCompleted } from './threadRunCompleted'\nimport { threadRunRequiresAction } from './threadRunRequiresAction'\nimport { threadRunStepCreated } from './threadRunStepCreated'\nimport { threadRunStepDelta } from './threadRunStepDelta'\nimport { threadMessageCreated } from './threadMessageCreated'\nimport { threadMessageDelta } from './threadMessageDelta'\nimport { threadMessageCompleted } from './threadMessageCompleted'\n\nexport const handlers = {\n 'thread.run.in_progress': threadRunInProgress,\n 'thread.run.failed': threadRunFailed,\n 'thread.run.completed': threadRunCompleted,\n 'thread.run.requires_action': threadRunRequiresAction,\n 'thread.run.step.created': threadRunStepCreated,\n 'thread.run.step.delta': threadRunStepDelta,\n 'thread.message.created': threadMessageCreated,\n 'thread.message.delta': threadMessageDelta,\n 'thread.message.completed': threadMessageCompleted,\n}\n","import type OpenAI from 'openai'\nimport type { PrismaClient } from '@prisma/client'\nimport { handlers } from './handlers'\n\nexport const onEvent = ({\n prisma,\n controller,\n}: {\n prisma: PrismaClient\n controller: ReadableStreamDefaultController\n}) => (event: OpenAI.Beta.AssistantStreamEvent) => {\n // @ts-ignore-next-line\n const handler = handlers[event.event]\n\n if (!handler) {\n console.log('No handler for event', event)\n return\n }\n\n return handler({ prisma, controller, event })\n}\n","import type { PrismaClient } from '@prisma/client'\nimport { serializeMessage } from '../messages/serializeMessage'\nimport { serializeRunStep } from './steps/serializeRunStep'\nimport { serializeRun } from './serializeRun'\nimport type { Run, MessageWithRun, RunStep } from '@/types/prisma'\n\nexport const getMessages = ({\n prisma,\n run,\n}: {\n prisma: PrismaClient\n run: Run\n}) => async () => {\n const messages = await prisma.message.findMany({\n where: {\n threadId: run.threadId,\n },\n include: {\n run: {\n include: {\n runSteps: true,\n },\n },\n },\n take: -10,\n orderBy: {\n createdAt: 'asc',\n },\n })\n\n return messages.map((message: MessageWithRun) => ({\n ...serializeMessage({ message }),\n run: message.run ? ({\n ...serializeRun({ run: message.run }),\n runSteps: message.run.runSteps.map((runStep: RunStep) => (\n serializeRunStep({ runStep })\n )),\n }) : null,\n }))\n}\n","import type { PrismaClient } from '@prisma/client'\nimport type OpenAI from 'openai'\nimport dayjs from 'dayjs'\nimport { RunAdapter } from '@/types'\nimport { serializeRun } from './serializeRun'\nimport { onEvent } from './onEvent'\nimport { getMessages } from './getMessages'\n\nexport const submitToolOutputs = ({\n prisma,\n runAdapter,\n}: {\n prisma: PrismaClient\n runAdapter: RunAdapter\n}) => async (...args: Parameters<OpenAI.Beta.Threads.Runs['submitToolOutputs']>): Promise<ReturnType<OpenAI.Beta.Threads.Runs['submitToolOutputs']>> => {\n const [threadId, runId, body] = args\n const {\n tool_outputs,\n } = body\n\n const run = await prisma.$transaction(async (prisma) => {\n const runSteps = await prisma.runStep.findMany({\n where: {\n threadId,\n runId,\n type: 'TOOL_CALLS',\n status: 'IN_PROGRESS',\n },\n })\n\n for (const runStep of runSteps) {\n await prisma.runStep.update({\n where: {\n id: runStep.id,\n },\n data: {\n status: 'COMPLETED',\n completedAt: dayjs().unix(),\n stepDetails: {\n type: 'tool_calls',\n tool_calls: runStep.stepDetails!.tool_calls.map((toolCall) => {\n const toolOutput = tool_outputs.find((output) => output.tool_call_id === toolCall.id) || tool_outputs[0]\n\n if (!toolOutput) {\n console.dir({ toolOutput, runStep, tool_outputs, runSteps }, { depth: null })\n throw new Error('Tool output not found')\n }\n\n return {\n id: toolCall.id,\n type: toolCall.type,\n function: {\n ...toolCall.function,\n output: toolOutput.output,\n },\n }\n }),\n },\n },\n })\n }\n\n return prisma.run.update({\n where: {\n id: runId,\n },\n data: {\n status: 'QUEUED',\n },\n })\n })\n\n const data = serializeRun({ run })\n\n await new Promise((resolve) => (\n new ReadableStream({\n async start(controller) {\n await runAdapter({\n run: data,\n onEvent: onEvent({ controller, prisma }),\n // @ts-ignore-next-line\n getMessages: getMessages({ prisma, run }),\n })\n\n controller.close()\n resolve(void 0)\n },\n })\n ))\n\n return data\n}\n","import type { PrismaClient } from '@prisma/client'\nimport type OpenAI from 'openai'\nimport dayjs from 'dayjs'\nimport { RunAdapter } from '@/types'\nimport { serializeRun } from './serializeRun'\nimport { onEvent } from './onEvent'\nimport { getMessages } from './getMessages'\nimport { serializeRunStep } from './steps/serializeRunStep'\n\nexport const submitToolOutputsStream = ({\n prisma,\n runAdapter,\n}: {\n prisma: PrismaClient\n runAdapter: RunAdapter\n}) => (...args: Parameters<OpenAI.Beta.Threads.Runs['submitToolOutputsStream']>): ReturnType<OpenAI.Beta.Threads.Runs['submitToolOutputsStream']> => {\n return new ReadableStream({\n async start(controller) {\n const [threadId, runId, body] = args\n const {\n tool_outputs,\n } = body\n\n const run = await prisma.$transaction(async (prisma) => {\n const runSteps = await prisma.runStep.findMany({\n where: {\n threadId,\n runId,\n type: 'TOOL_CALLS',\n status: 'IN_PROGRESS',\n },\n orderBy: {\n createdAt: 'asc',\n },\n })\n\n for (const runStep of runSteps) {\n const completedRunStep = await prisma.runStep.update({\n where: {\n id: runStep.id,\n },\n data: {\n status: 'COMPLETED',\n completedAt: dayjs().unix(),\n stepDetails: {\n type: 'tool_calls',\n tool_calls: runStep.stepDetails!.tool_calls.map((toolCall) => {\n const toolOutput = tool_outputs.find((output) => output.tool_call_id === toolCall.id) || tool_outputs[0]\n\n if (!toolOutput) {\n console.dir({ toolOutput, runStep, tool_outputs, runSteps }, { depth: null })\n throw new Error('Tool output not found')\n }\n\n return {\n id: toolCall.id,\n type: toolCall.type,\n function: {\n ...toolCall.function,\n output: toolOutput.output,\n },\n }\n }),\n },\n },\n })\n\n controller.enqueue({\n event: 'thread.run.step.completed',\n data: serializeRunStep({ runStep: completedRunStep }),\n })\n }\n\n return prisma.run.update({\n where: {\n id: runId,\n },\n data: {\n status: 'QUEUED',\n },\n })\n })\n\n await runAdapter({\n run: serializeRun({ run }),\n onEvent: onEvent({ controller, prisma }),\n // @ts-ignore-next-line\n getMessages: getMessages({ prisma, run }),\n })\n\n console.log('Stream ended inside cloud storage')\n controller.close()\n },\n })\n}\n","import type { PrismaClient } from '@prisma/client'\nimport type OpenAI from 'openai'\nimport { assign, last } from 'radash'\nimport { serializeRunStep } from './serializeRunStep'\n\nexport const list = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => async (...args: Parameters<OpenAI.Beta.Threads.Runs.Steps['list']>): Promise<ReturnType<OpenAI.Beta.Threads.Runs.Steps['list']>> => {\n const threadId = args[0]\n const runId = args[1]\n\n const {\n // @ts-ignore-next-line\n limit,\n // @ts-ignore-next-line\n order,\n } = assign({\n // @ts-ignore-next-line\n limit: 20,\n order: 'desc',\n }, args[2] ?? {})\n\n const runSteps = await prisma.runStep.findMany({\n where: {\n threadId,\n runId,\n },\n take: limit,\n orderBy: {\n createdAt: order,\n },\n })\n\n // @ts-ignore-next-line\n return {\n data: runSteps.map((runStep) => serializeRunStep({ runStep })),\n hasNextPage: () => false,\n body: {\n last_id: last(runSteps)?.id ?? null,\n },\n }\n}\n","import type { PrismaClient } from '@prisma/client'\nimport { list } from './list'\n\nexport const steps = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => ({\n list: list({ prisma }),\n})\n","import type { PrismaClient } from '@prisma/client'\nimport { RunAdapter } from '@/types'\nimport { list } from './list'\nimport { create } from './create'\nimport { createAndStream } from './createAndStream'\nimport { submitToolOutputs } from './submitToolOutputs'\nimport { submitToolOutputsStream } from './submitToolOutputsStream'\nimport { steps } from './steps'\n\nexport const runs = ({\n prisma,\n runAdapter,\n}: {\n prisma: PrismaClient\n runAdapter: RunAdapter\n}) => ({\n list: list({ prisma }),\n create: create({ prisma }),\n createAndStream: createAndStream({ prisma, runAdapter }),\n submitToolOutputs: submitToolOutputs({ prisma, runAdapter }),\n submitToolOutputsStream: submitToolOutputsStream({ prisma, runAdapter }),\n steps: steps({ prisma }),\n})\n","import type { PrismaClient } from '@prisma/client'\nimport { RunAdapter } from '@/types'\nimport { create } from './create'\nimport { messages } from './messages'\nimport { runs } from './runs'\n\nexport const threads = ({\n prisma,\n runAdapter,\n}: {\n prisma: PrismaClient\n runAdapter: RunAdapter\n}) => ({\n create: create({ prisma }),\n messages: messages({ prisma }),\n runs: runs({ prisma, runAdapter }),\n})\n","import type { PrismaClient } from '@prisma/client'\nimport { RunAdapter } from '@/types'\nimport { threads } from './threads'\n\nexport const beta = ({\n prisma,\n runAdapter,\n}: {\n prisma: PrismaClient\n runAdapter: RunAdapter\n}) => ({\n threads: threads({ prisma, runAdapter }),\n})\n","import type { PrismaClient } from '@prisma/client'\nimport { StorageAdapterArgs } from '@/types'\nimport { beta } from './beta'\n\nexport const prismaStorageAdapter = ({\n prisma,\n}: {\n prisma: PrismaClient\n}) => ({\n runAdapter,\n}: StorageAdapterArgs) => ({\n beta: beta({ prisma, runAdapter }),\n})\n"]}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = function(target, all) {
7
+ for(var name in all)__defProp(target, name, {
8
+ get: all[name],
9
+ enumerable: true
10
+ });
11
+ };
12
+ var __copyProps = function(to, from, except, desc) {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
15
+ try {
16
+ var _loop = function() {
17
+ var key = _step.value;
18
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: function() {
20
+ return from[key];
21
+ },
22
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23
+ });
24
+ };
25
+ for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
26
+ } catch (err) {
27
+ _didIteratorError = true;
28
+ _iteratorError = err;
29
+ } finally{
30
+ try {
31
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
32
+ _iterator.return();
33
+ }
34
+ } finally{
35
+ if (_didIteratorError) {
36
+ throw _iteratorError;
37
+ }
38
+ }
39
+ }
40
+ }
41
+ return to;
42
+ };
43
+ var __toCommonJS = function(mod) {
44
+ return __copyProps(__defProp({}, "__esModule", {
45
+ value: true
46
+ }), mod);
47
+ };
48
+ // src/supercompat.ts
49
+ var supercompat_exports = {};
50
+ __export(supercompat_exports, {
51
+ supercompat: function() {
52
+ return supercompat;
53
+ }
54
+ });
55
+ module.exports = __toCommonJS(supercompat_exports);
56
+ var import_radash = require("radash");
57
+ var supercompat = function(param) {
58
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
59
+ return (0, import_radash.assign)(client, storage({
60
+ runAdapter: (0, import_radash.partob)(runAdapter, {
61
+ client: client
62
+ })
63
+ }));
64
+ };
65
+ // Annotate the CommonJS export names for ESM import in node:
66
+ 0 && (module.exports = {
67
+ supercompat: supercompat
68
+ });
69
+ //# sourceMappingURL=supercompat.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/supercompat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAGxB,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,UAKE;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,IACN,gBAAY,sBAAO,YAAY,EAAE,OAAO,CAAC;AAAA,EAC3C,CAAC;AACH","sourcesContent":["import OpenAI from 'openai'\nimport { assign, partob } from 'radash'\nimport { RunAdapter, StorageAdapterArgs } from '@/types'\n\nexport const supercompat = ({\n client,\n storage,\n runAdapter,\n}: {\n client: OpenAI\n storage: (arg0: StorageAdapterArgs) => OpenAI\n runAdapter: RunAdapter\n}) => (\n assign(\n client,\n storage({\n runAdapter: partob(runAdapter, { client }),\n }),\n )\n)\n"]}
@@ -0,0 +1,10 @@
1
+ import OpenAI from 'openai';
2
+ import { StorageAdapterArgs, RunAdapter } from './types/index.cjs';
3
+
4
+ declare const supercompat: ({ client, storage, runAdapter, }: {
5
+ client: OpenAI;
6
+ storage: (arg0: StorageAdapterArgs) => OpenAI;
7
+ runAdapter: RunAdapter;
8
+ }) => OpenAI;
9
+
10
+ export { supercompat };
@@ -0,0 +1,10 @@
1
+ import OpenAI from 'openai';
2
+ import { StorageAdapterArgs, RunAdapter } from './types/index.js';
3
+
4
+ declare const supercompat: ({ client, storage, runAdapter, }: {
5
+ client: OpenAI;
6
+ storage: (arg0: StorageAdapterArgs) => OpenAI;
7
+ runAdapter: RunAdapter;
8
+ }) => OpenAI;
9
+
10
+ export { supercompat };
@@ -0,0 +1,12 @@
1
+ // src/supercompat.ts
2
+ import { assign, partob } from "radash";
3
+ var supercompat = function(param) {
4
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
5
+ return assign(client, storage({
6
+ runAdapter: partob(runAdapter, {
7
+ client: client
8
+ })
9
+ }));
10
+ };
11
+ export { supercompat };
12
+ //# sourceMappingURL=supercompat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/supercompat.ts"],"names":[],"mappings":";AACA,SAAS,QAAQ,cAAc;AAGxB,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAKE;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,IACN,YAAY,OAAO,YAAY,EAAE,OAAO,CAAC;AAAA,EAC3C,CAAC;AACH","sourcesContent":["import OpenAI from 'openai'\nimport { assign, partob } from 'radash'\nimport { RunAdapter, StorageAdapterArgs } from '@/types'\n\nexport const supercompat = ({\n client,\n storage,\n runAdapter,\n}: {\n client: OpenAI\n storage: (arg0: StorageAdapterArgs) => OpenAI\n runAdapter: RunAdapter\n}) => (\n assign(\n client,\n storage({\n runAdapter: partob(runAdapter, { client }),\n }),\n )\n)\n"]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = function(to, from, except, desc) {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
9
+ try {
10
+ var _loop = function() {
11
+ var key = _step.value;
12
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
+ get: function() {
14
+ return from[key];
15
+ },
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ };
19
+ for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
20
+ } catch (err) {
21
+ _didIteratorError = true;
22
+ _iteratorError = err;
23
+ } finally{
24
+ try {
25
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
26
+ _iterator.return();
27
+ }
28
+ } finally{
29
+ if (_didIteratorError) {
30
+ throw _iteratorError;
31
+ }
32
+ }
33
+ }
34
+ }
35
+ return to;
36
+ };
37
+ var __toCommonJS = function(mod) {
38
+ return __copyProps(__defProp({}, "__esModule", {
39
+ value: true
40
+ }), mod);
41
+ };
42
+ // src/types/index.ts
43
+ var types_exports = {};
44
+ module.exports = __toCommonJS(types_exports);
45
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA","sourcesContent":["import type OpenAI from 'openai'\n\nexport type MessageWithRun = OpenAI.Beta.Threads.Message & {\n run: (OpenAI.Beta.Threads.Run & {\n runSteps: OpenAI.Beta.Threads.Runs.RunStep[]\n }) | null\n}\n\nexport type RunAdapter = ({\n client,\n run,\n onEvent,\n getMessages,\n}: {\n client: OpenAI\n run: OpenAI.Beta.Threads.Run\n onEvent: (event: OpenAI.Beta.AssistantStreamEvent) => Promise<any>\n getMessages: () => Promise<MessageWithRun>\n}) => Promise<void>\n\nexport type StorageAdapterArgs = {\n runAdapter: RunAdapter\n}\n"]}
@@ -0,0 +1,18 @@
1
+ import OpenAI from 'openai';
2
+
3
+ type MessageWithRun = OpenAI.Beta.Threads.Message & {
4
+ run: (OpenAI.Beta.Threads.Run & {
5
+ runSteps: OpenAI.Beta.Threads.Runs.RunStep[];
6
+ }) | null;
7
+ };
8
+ type RunAdapter = ({ client, run, onEvent, getMessages, }: {
9
+ client: OpenAI;
10
+ run: OpenAI.Beta.Threads.Run;
11
+ onEvent: (event: OpenAI.Beta.AssistantStreamEvent) => Promise<any>;
12
+ getMessages: () => Promise<MessageWithRun>;
13
+ }) => Promise<void>;
14
+ type StorageAdapterArgs = {
15
+ runAdapter: RunAdapter;
16
+ };
17
+
18
+ export type { MessageWithRun, RunAdapter, StorageAdapterArgs };
@@ -0,0 +1,18 @@
1
+ import OpenAI from 'openai';
2
+
3
+ type MessageWithRun = OpenAI.Beta.Threads.Message & {
4
+ run: (OpenAI.Beta.Threads.Run & {
5
+ runSteps: OpenAI.Beta.Threads.Runs.RunStep[];
6
+ }) | null;
7
+ };
8
+ type RunAdapter = ({ client, run, onEvent, getMessages, }: {
9
+ client: OpenAI;
10
+ run: OpenAI.Beta.Threads.Run;
11
+ onEvent: (event: OpenAI.Beta.AssistantStreamEvent) => Promise<any>;
12
+ getMessages: () => Promise<MessageWithRun>;
13
+ }) => Promise<void>;
14
+ type StorageAdapterArgs = {
15
+ runAdapter: RunAdapter;
16
+ };
17
+
18
+ export type { MessageWithRun, RunAdapter, StorageAdapterArgs };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = function(target, all) {
7
+ for(var name in all)__defProp(target, name, {
8
+ get: all[name],
9
+ enumerable: true
10
+ });
11
+ };
12
+ var __copyProps = function(to, from, except, desc) {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
15
+ try {
16
+ var _loop = function() {
17
+ var key = _step.value;
18
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: function() {
20
+ return from[key];
21
+ },
22
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
23
+ });
24
+ };
25
+ for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
26
+ } catch (err) {
27
+ _didIteratorError = true;
28
+ _iteratorError = err;
29
+ } finally{
30
+ try {
31
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
32
+ _iterator.return();
33
+ }
34
+ } finally{
35
+ if (_didIteratorError) {
36
+ throw _iteratorError;
37
+ }
38
+ }
39
+ }
40
+ }
41
+ return to;
42
+ };
43
+ var __toCommonJS = function(mod) {
44
+ return __copyProps(__defProp({}, "__esModule", {
45
+ value: true
46
+ }), mod);
47
+ };
48
+ // src/types/prisma.ts
49
+ var prisma_exports = {};
50
+ __export(prisma_exports, {
51
+ MessageRole: function() {
52
+ return MessageRole;
53
+ },
54
+ MessageStatus: function() {
55
+ return MessageStatus;
56
+ },
57
+ RunStatus: function() {
58
+ return RunStatus;
59
+ },
60
+ RunStepStatus: function() {
61
+ return RunStepStatus;
62
+ },
63
+ RunStepType: function() {
64
+ return RunStepType;
65
+ }
66
+ });
67
+ module.exports = __toCommonJS(prisma_exports);
68
+ var RunStatus = /* @__PURE__ */ function(RunStatus2) {
69
+ RunStatus2["QUEUED"] = "QUEUED";
70
+ RunStatus2["IN_PROGRESS"] = "IN_PROGRESS";
71
+ RunStatus2["REQUIRES_ACTION"] = "REQUIRES_ACTION";
72
+ RunStatus2["CANCELLING"] = "CANCELLING";
73
+ RunStatus2["CANCELLED"] = "CANCELLED";
74
+ RunStatus2["FAILED"] = "FAILED";
75
+ RunStatus2["COMPLETED"] = "COMPLETED";
76
+ RunStatus2["EXPIRED"] = "EXPIRED";
77
+ return RunStatus2;
78
+ }(RunStatus || {});
79
+ var MessageRole = /* @__PURE__ */ function(MessageRole2) {
80
+ MessageRole2["USER"] = "USER";
81
+ MessageRole2["ASSISTANT"] = "ASSISTANT";
82
+ return MessageRole2;
83
+ }(MessageRole || {});
84
+ var MessageStatus = /* @__PURE__ */ function(MessageStatus2) {
85
+ MessageStatus2["IN_PROGRESS"] = "IN_PROGRESS";
86
+ MessageStatus2["INCOMPLETE"] = "INCOMPLETE";
87
+ MessageStatus2["COMPLETED"] = "COMPLETED";
88
+ return MessageStatus2;
89
+ }(MessageStatus || {});
90
+ var RunStepType = /* @__PURE__ */ function(RunStepType2) {
91
+ RunStepType2["MESSAGE_CREATION"] = "MESSAGE_CREATION";
92
+ RunStepType2["TOOL_CALLS"] = "TOOL_CALLS";
93
+ return RunStepType2;
94
+ }(RunStepType || {});
95
+ var RunStepStatus = /* @__PURE__ */ function(RunStepStatus2) {
96
+ RunStepStatus2["IN_PROGRESS"] = "IN_PROGRESS";
97
+ RunStepStatus2["CANCELLED"] = "CANCELLED";
98
+ RunStepStatus2["FAILED"] = "FAILED";
99
+ RunStepStatus2["COMPLETED"] = "COMPLETED";
100
+ RunStepStatus2["EXPIRED"] = "EXPIRED";
101
+ return RunStepStatus2;
102
+ }(RunStepStatus || {});
103
+ // Annotate the CommonJS export names for ESM import in node:
104
+ 0 && (module.exports = {
105
+ MessageRole: MessageRole,
106
+ MessageStatus: MessageStatus,
107
+ RunStatus: RunStatus,
108
+ RunStepStatus: RunStepStatus,
109
+ RunStepType: RunStepType
110
+ });
111
+ //# sourceMappingURL=prisma.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types/prisma.ts"],"names":["RunStatus","MessageRole","MessageStatus","RunStepType","RunStepStatus"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,iBAAc;AACd,EAAAA,WAAA,qBAAkB;AAClB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,aAAU;AARA,SAAAA;AAAA,GAAA;AAiCL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,eAAY;AAFF,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAwBL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,sBAAmB;AACnB,EAAAA,aAAA,gBAAa;AAFH,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,aAAU;AALA,SAAAA;AAAA,GAAA","sourcesContent":["export enum RunStatus {\n QUEUED = \"QUEUED\",\n IN_PROGRESS = \"IN_PROGRESS\",\n REQUIRES_ACTION = \"REQUIRES_ACTION\",\n CANCELLING = \"CANCELLING\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type Run = {\n id: string\n threadId: string\n assistantId: string\n status: RunStatus\n requiredAction?: JSON\n lastError?: JSON\n expiresAt: number\n startedAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n model: string\n instructions: string\n tools: JSON[]\n fileIds: string[]\n metadata?: JSON\n usage?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum MessageRole {\n USER = \"USER\",\n ASSISTANT = \"ASSISTANT\",\n}\n\nexport enum MessageStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n INCOMPLETE = \"INCOMPLETE\",\n COMPLETED = \"COMPLETED\",\n}\n\nexport type Message = {\n id: string\n threadId: string\n role: MessageRole\n content: JSON[]\n status: MessageStatus\n assistantId?: string\n runId?: string\n completedAt?: string\n incompleteAt?: string\n incompleteDetails?: JSON\n fileIds: string[]\n metadata?: JSON\n toolCalls?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum RunStepType {\n MESSAGE_CREATION = \"MESSAGE_CREATION\",\n TOOL_CALLS = \"TOOL_CALLS\",\n}\n\nexport enum RunStepStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type RunStep = {\n id: string\n threadId: string\n assistantId: string\n runId: string\n type: RunStepType\n status: RunStepStatus\n stepDetails: JSON\n lastError?: JSON\n expiredAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n metadata?: JSON\n usage?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport type MessageWithRun = Message & {\n run: (Run & {\n runSteps: RunStep[]\n }) | null\n}\n"]}
@@ -0,0 +1,93 @@
1
+ declare enum RunStatus {
2
+ QUEUED = "QUEUED",
3
+ IN_PROGRESS = "IN_PROGRESS",
4
+ REQUIRES_ACTION = "REQUIRES_ACTION",
5
+ CANCELLING = "CANCELLING",
6
+ CANCELLED = "CANCELLED",
7
+ FAILED = "FAILED",
8
+ COMPLETED = "COMPLETED",
9
+ EXPIRED = "EXPIRED"
10
+ }
11
+ type Run = {
12
+ id: string;
13
+ threadId: string;
14
+ assistantId: string;
15
+ status: RunStatus;
16
+ requiredAction?: JSON;
17
+ lastError?: JSON;
18
+ expiresAt: number;
19
+ startedAt?: number;
20
+ cancelledAt?: number;
21
+ failedAt?: number;
22
+ completedAt?: number;
23
+ model: string;
24
+ instructions: string;
25
+ tools: JSON[];
26
+ fileIds: string[];
27
+ metadata?: JSON;
28
+ usage?: JSON;
29
+ createdAt: string;
30
+ updatedAt: string;
31
+ };
32
+ declare enum MessageRole {
33
+ USER = "USER",
34
+ ASSISTANT = "ASSISTANT"
35
+ }
36
+ declare enum MessageStatus {
37
+ IN_PROGRESS = "IN_PROGRESS",
38
+ INCOMPLETE = "INCOMPLETE",
39
+ COMPLETED = "COMPLETED"
40
+ }
41
+ type Message = {
42
+ id: string;
43
+ threadId: string;
44
+ role: MessageRole;
45
+ content: JSON[];
46
+ status: MessageStatus;
47
+ assistantId?: string;
48
+ runId?: string;
49
+ completedAt?: string;
50
+ incompleteAt?: string;
51
+ incompleteDetails?: JSON;
52
+ fileIds: string[];
53
+ metadata?: JSON;
54
+ toolCalls?: JSON;
55
+ createdAt: string;
56
+ updatedAt: string;
57
+ };
58
+ declare enum RunStepType {
59
+ MESSAGE_CREATION = "MESSAGE_CREATION",
60
+ TOOL_CALLS = "TOOL_CALLS"
61
+ }
62
+ declare enum RunStepStatus {
63
+ IN_PROGRESS = "IN_PROGRESS",
64
+ CANCELLED = "CANCELLED",
65
+ FAILED = "FAILED",
66
+ COMPLETED = "COMPLETED",
67
+ EXPIRED = "EXPIRED"
68
+ }
69
+ type RunStep = {
70
+ id: string;
71
+ threadId: string;
72
+ assistantId: string;
73
+ runId: string;
74
+ type: RunStepType;
75
+ status: RunStepStatus;
76
+ stepDetails: JSON;
77
+ lastError?: JSON;
78
+ expiredAt?: number;
79
+ cancelledAt?: number;
80
+ failedAt?: number;
81
+ completedAt?: number;
82
+ metadata?: JSON;
83
+ usage?: JSON;
84
+ createdAt: string;
85
+ updatedAt: string;
86
+ };
87
+ type MessageWithRun = Message & {
88
+ run: (Run & {
89
+ runSteps: RunStep[];
90
+ }) | null;
91
+ };
92
+
93
+ export { type Message, MessageRole, MessageStatus, type MessageWithRun, type Run, RunStatus, type RunStep, RunStepStatus, RunStepType };