@superinterface/react 3.0.2 → 3.2.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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server.ts","../src/lib/runSteps/serializeRunStep.ts","../src/lib/messages/serializeMessage.ts","../src/lib/messages/messagesResponse/data/messages/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/messages/extendMessage.ts","../src/lib/messages/messagesResponse/data/messages/runMessages/index.ts","../src/lib/messages/messagesResponse/data/messages/runMessages/getLatestRun.ts","../src/lib/optimistic/optimisticId.ts","../src/lib/messages/messagesResponse/data/index.ts","../src/lib/messages/messagesResponse/limit.ts","../src/lib/messages/messagesResponse/hasNextPage.ts","../src/lib/messages/messagesResponse/index.ts","../src/lib/runs/serializeRun.ts","../src/lib/streams/enqueueJson.ts","../src/lib/messages/createMessageResponse/actionsStream.ts","../src/lib/messages/createMessageResponse/handleStream.ts","../src/lib/messages/createMessageResponse/index.ts"],"names":["import_radash","dayjs","messagesResponse","pMap","import_p_map"],"mappings":"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","sourcesContent":["export { messagesResponse } from '@/lib/messages/messagesResponse'\nexport { createMessageResponse } from '@/lib/messages/createMessageResponse'\nexport { extendMessage } from '@/lib/messages/extendMessage'\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => (\n pick(runStep, [\n 'id',\n 'run_id',\n 'step_details',\n 'completed_at',\n 'cancelled_at',\n 'failed_at',\n 'status',\n ])\n)\n","import OpenAI from 'openai'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: OpenAI.Beta.Threads.Messages.Message & {\n runSteps?: OpenAI.Beta.Threads.Runs.RunStep[]\n }\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => (\n serializeRunStep({ runStep })\n )),\n status: message.status,\n})\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { runMessages } from './runMessages'\n\nexport const messages = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => {\n const result = await pMap(messagesResponse.data, (message) => (\n extendMessage({\n client,\n message,\n })\n ))\n\n if (pageParam) {\n return result\n }\n\n return [\n ...await runMessages({\n result,\n threadId,\n client,\n }),\n ...result,\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n runId: string\n client: OpenAI\n}\n\nexport const getRunSteps = async ({\n threadId,\n runId,\n client,\n}: Args) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId,\n )\n\n return runStepsResponse.data\n}\n","import OpenAI from 'openai'\nimport { getRunSteps } from '@/lib/runSteps/getRunSteps'\n\ntype Args = {\n message: OpenAI.Beta.Threads.Messages.Message\n client: OpenAI\n}\n\nexport const extendMessage = async ({\n message,\n client,\n}: Args) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: [],\n }\n }\n\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client,\n }),\n }\n}\n","import dayjs from 'dayjs'\nimport OpenAI from 'openai'\nimport { getLatestRun } from './getLatestRun'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { optimisticId } from '@/lib/optimistic/optimisticId'\n\ntype Args = {\n result: OpenAI.Beta.Threads.Messages.Message[]\n threadId: string\n client: OpenAI\n}\n\nconst progressStatuses = [\n 'queued',\n 'in_progress',\n 'requires_action',\n 'cancelling',\n]\n\nexport const runMessages = async ({\n result,\n threadId,\n client,\n}: Args) => {\n const latestRun = await getLatestRun({ threadId, client })\n\n if (!latestRun) {\n return []\n }\n\n const messageFromLatestRun = result.find(m => m.run_id === latestRun.id)\n\n if (messageFromLatestRun) {\n return []\n }\n\n if (!progressStatuses.includes(latestRun.status)) {\n return []\n }\n\n return [\n await extendMessage({\n message: {\n id: optimisticId(),\n role: 'assistant' as OpenAI.Beta.Threads.Messages.Message['role'],\n created_at: dayjs().unix(),\n object: 'thread.message' as OpenAI.Beta.Threads.Messages.Message['object'],\n incomplete_details: null,\n completed_at: dayjs().unix(),\n incomplete_at: null,\n status: 'completed',\n content: [],\n run_id: latestRun.id,\n assistant_id: latestRun.assistant_id,\n thread_id: latestRun.thread_id,\n attachments: [],\n metadata: {},\n },\n client,\n }),\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n client: OpenAI\n}\n\nexport const getLatestRun = async ({\n threadId,\n client,\n}: Args) => {\n const runsResponse = await client.beta.threads.runs.list(threadId, {\n limit: 1,\n })\n\n return runsResponse.data[0]\n}\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import OpenAI from 'openai'\nimport { serializeMessage } from '@/lib/messages/serializeMessage'\nimport { messages } from './messages'\n\nexport const data = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => (\n (await messages({\n messagesResponse,\n pageParam,\n threadId,\n client,\n })).map((message) => (\n serializeMessage({ message })\n ))\n)\n","export const limit = 10\n","import OpenAI from 'openai'\nimport { limit } from './limit'\n\nexport const hasNextPage = ({\n messagesResponse,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n}) => {\n if (messagesResponse.data.length < limit) return false\n\n return messagesResponse.hasNextPage()\n}\n","import _ from 'lodash'\nimport OpenAI from 'openai'\nimport { MessagesPage } from '@/types'\nimport { data } from './data'\nimport { limit } from './limit'\nimport { hasNextPage } from './hasNextPage'\n\ntype Args = {\n client: OpenAI\n threadId: string\n pageParam?: string\n}\n\nexport const messagesResponse = async ({\n client,\n threadId,\n pageParam,\n}: Args): Promise<MessagesPage> => {\n const messagesResponse = await client.beta.threads.messages.list(threadId, {\n ...(pageParam ? { after: pageParam } : {}),\n limit,\n })\n\n return {\n data: await data({\n client,\n messagesResponse,\n pageParam,\n threadId,\n }),\n hasNextPage: hasNextPage({ messagesResponse }),\n // @ts-ignore-next-line\n lastId: messagesResponse.body.last_id,\n }\n}\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRun = ({\n run\n}: {\n run: OpenAI.Beta.Threads.Runs.Run\n}) => (\n pick(run, [\n 'id',\n 'thread_id',\n 'assistant_id',\n 'created_at',\n ])\n)\n","export const enqueueJson = ({\n controller,\n value,\n}: {\n controller: ReadableStreamDefaultController\n value: any\n}) => (\n controller.enqueue(new TextEncoder().encode(JSON.stringify(value)))\n)\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\n\nexport const actionsStream = async ({\n client,\n run,\n handleToolCall,\n controller,\n}: {\n client: any\n run: OpenAI.Beta.Threads.Runs.Run\n handleToolCall: any\n controller: ReadableStreamDefaultController\n}) => {\n if (!run.required_action) {\n throw new Error('Run does not have a required action')\n }\n\n const toolCalls = run.required_action.submit_tool_outputs.tool_calls\n\n return client.beta.threads.runs.submitToolOutputsStream(\n run.thread_id,\n run.id,\n {\n tool_outputs: await pMap(toolCalls, (toolCall) => (\n handleToolCall({\n toolCall,\n run,\n controller,\n }))\n ),\n },\n )\n}\n","import { serializeMessage } from '@/lib/messages/serializeMessage'\nimport { serializeRun } from '@/lib/runs/serializeRun'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\nimport { enqueueJson } from '@/lib/streams/enqueueJson'\nimport { actionsStream } from './actionsStream'\n\nexport const handleStream = async ({\n client,\n stream,\n controller,\n handleToolCall,\n onEvent,\n}: {\n client: any\n stream: ReadableStream\n controller: ReadableStreamDefaultController\n handleToolCall: any\n onEvent: ({\n controller,\n event,\n data,\n }: {\n controller: ReadableStreamDefaultController\n event: string\n data: any\n }) => void\n}) => {\n for await (const value of stream) {\n onEvent({ controller, event: value.event, data: value.data })\n\n if (['thread.message.created', 'thread.message.completed'].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeMessage({\n message: value.data,\n }),\n },\n })\n } else if (['thread.message.delta', 'thread.run.step.delta'].includes(value.event)) {\n enqueueJson({\n controller,\n value,\n })\n } else if (value.event === 'thread.run.created') {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data,\n }),\n },\n })\n } else if (value.event === 'thread.run.failed') {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data,\n }),\n },\n })\n } else if (['thread.run.step.created', 'thread.run.step.completed'].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRunStep({\n runStep: value.data,\n }),\n },\n })\n } else if (value.event === 'thread.run.requires_action') {\n enqueueJson({\n controller,\n value,\n })\n\n await handleStream({\n client,\n stream: await actionsStream({\n client,\n run: value.data,\n handleToolCall,\n controller,\n }),\n controller,\n handleToolCall,\n onEvent,\n })\n } else {\n console.dir({ value }, { depth: null })\n }\n }\n}\n","import { handleStream } from './handleStream'\n\ntype CallbackArgs = {\n controller: ReadableStreamDefaultController<Uint8Array>\n}\n\nexport const createMessageResponse = ({\n client,\n createRunStream,\n handleToolCall,\n onStart = () => {},\n onError = () => {},\n onClose = () => {},\n onEvent = () => {},\n}: {\n client: any\n createRunStream: any\n handleToolCall: any\n onStart?: (args: CallbackArgs) => void\n onError?: (args: CallbackArgs & { error: any }) => void\n onClose?: (args: CallbackArgs) => void\n onEvent?: (args: CallbackArgs & { event: string, data: any }) => void\n}) => (\n new ReadableStream({\n async start(controller) {\n onStart({ controller })\n\n try {\n await handleStream({\n client,\n stream: createRunStream,\n controller,\n handleToolCall,\n onEvent,\n })\n } catch (error) {\n onError({ error, controller })\n controller.error(error)\n }\n\n onClose({ controller })\n controller.close()\n },\n })\n)\n"]}
1
+ {"version":3,"sources":["/Users/domas/Developer/supercorp/superinterface/packages/react/dist/server.cjs","../src/server.ts","../src/lib/runSteps/serializeRunStep.ts","../src/lib/messages/serializeMessage.ts","../src/lib/messages/messagesResponse/data/messages/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/messages/extendMessage.ts","../src/lib/messages/messagesResponse/data/messages/runMessages/index.ts","../src/lib/messages/messagesResponse/data/messages/runMessages/getLatestRun.ts","../src/lib/optimistic/optimisticId.ts","../src/lib/messages/messagesResponse/data/index.ts","../src/lib/messages/messagesResponse/limit.ts","../src/lib/messages/messagesResponse/hasNextPage.ts","../src/lib/messages/messagesResponse/index.ts","../src/lib/runs/serializeRun.ts","../src/lib/streams/enqueueJson.ts","../src/lib/messages/createMessageResponse/actionsStream.ts","../src/lib/messages/createMessageResponse/handleStream.ts","../src/lib/messages/createMessageResponse/index.ts"],"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","server_exports","createMessageResponse","extendMessage","messagesResponse","module","exports","import_radash","require","serializeRunStep","runStep","pick","serializeMessage","message","id","role","created_at","content","run_id","assistant_id","thread_id","attachments","metadata","runSteps","map","status","import_p_map","getRunSteps","threadId","runId","client","runStepsResponse","beta","threads","runs","steps","list","data","import_dayjs","getLatestRun","runsResponse","limit","optimisticId","import_radash2","uid","progressStatuses","runMessages","result","latestRun","messageFromLatestRun","find","m","includes","dayjs","unix","object","incomplete_details","completed_at","incomplete_at","messages","pageParam","pMap","hasNextPage","length","after","lastId","body","last_id","serializeRun","run","import_radash3","enqueueJson","controller","enqueue","TextEncoder","encode","JSON","stringify","actionsStream","handleToolCall","toolCalls","required_action","Error","submit_tool_outputs","tool_calls","submitToolOutputsStream","import_p_map2","toolCall","tool_outputs","handleStream","stream","onEvent","event","console","dir","depth","createRunStream","onStart","onError","onClose","ReadableStream","start","error","close"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/server.ts\nvar server_exports = {};\n__export(server_exports, {\n createMessageResponse: () => createMessageResponse,\n extendMessage: () => extendMessage,\n messagesResponse: () => messagesResponse\n});\nmodule.exports = __toCommonJS(server_exports);\n\n// src/lib/runSteps/serializeRunStep.ts\nvar import_radash = require(\"radash\");\nvar serializeRunStep = ({\n runStep\n}) => (0, import_radash.pick)(runStep, [\n \"id\",\n \"run_id\",\n \"step_details\",\n \"completed_at\",\n \"cancelled_at\",\n \"failed_at\",\n \"status\"\n]);\n\n// src/lib/messages/serializeMessage.ts\nvar serializeMessage = ({\n message\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => serializeRunStep({ runStep })),\n status: message.status\n});\n\n// src/lib/messages/messagesResponse/data/messages/index.ts\nvar import_p_map = __toESM(require(\"p-map\"), 1);\n\n// src/lib/runSteps/getRunSteps/index.ts\nvar getRunSteps = async ({\n threadId,\n runId,\n client\n}) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId\n );\n return runStepsResponse.data;\n};\n\n// src/lib/messages/extendMessage.ts\nvar extendMessage = async ({\n message,\n client\n}) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: []\n };\n }\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client\n })\n };\n};\n\n// src/lib/messages/messagesResponse/data/messages/runMessages/index.ts\nvar import_dayjs = __toESM(require(\"dayjs\"), 1);\n\n// src/lib/messages/messagesResponse/data/messages/runMessages/getLatestRun.ts\nvar getLatestRun = async ({\n threadId,\n client\n}) => {\n const runsResponse = await client.beta.threads.runs.list(threadId, {\n limit: 1\n });\n return runsResponse.data[0];\n};\n\n// src/lib/optimistic/optimisticId.ts\nvar import_radash2 = require(\"radash\");\nvar optimisticId = () => `-${(0, import_radash2.uid)(24)}`;\n\n// src/lib/messages/messagesResponse/data/messages/runMessages/index.ts\nvar progressStatuses = [\n \"queued\",\n \"in_progress\",\n \"requires_action\",\n \"cancelling\"\n];\nvar runMessages = async ({\n result,\n threadId,\n client\n}) => {\n const latestRun = await getLatestRun({ threadId, client });\n if (!latestRun) {\n return [];\n }\n const messageFromLatestRun = result.find((m) => m.run_id === latestRun.id);\n if (messageFromLatestRun) {\n return [];\n }\n if (!progressStatuses.includes(latestRun.status)) {\n return [];\n }\n return [\n await extendMessage({\n message: {\n id: optimisticId(),\n role: \"assistant\",\n created_at: (0, import_dayjs.default)().unix(),\n object: \"thread.message\",\n incomplete_details: null,\n completed_at: (0, import_dayjs.default)().unix(),\n incomplete_at: null,\n status: \"completed\",\n content: [],\n run_id: latestRun.id,\n assistant_id: latestRun.assistant_id,\n thread_id: latestRun.thread_id,\n attachments: [],\n metadata: {}\n },\n client\n })\n ];\n};\n\n// src/lib/messages/messagesResponse/data/messages/index.ts\nvar messages = async ({\n messagesResponse: messagesResponse2,\n pageParam,\n threadId,\n client\n}) => {\n const result = await (0, import_p_map.default)(messagesResponse2.data, (message) => extendMessage({\n client,\n message\n }));\n if (pageParam) {\n return result;\n }\n return [\n ...await runMessages({\n result,\n threadId,\n client\n }),\n ...result\n ];\n};\n\n// src/lib/messages/messagesResponse/data/index.ts\nvar data = async ({\n messagesResponse: messagesResponse2,\n pageParam,\n threadId,\n client\n}) => (await messages({\n messagesResponse: messagesResponse2,\n pageParam,\n threadId,\n client\n})).map((message) => serializeMessage({ message }));\n\n// src/lib/messages/messagesResponse/limit.ts\nvar limit = 10;\n\n// src/lib/messages/messagesResponse/hasNextPage.ts\nvar hasNextPage = ({\n messagesResponse: messagesResponse2\n}) => {\n if (messagesResponse2.data.length < limit) return false;\n return messagesResponse2.hasNextPage();\n};\n\n// src/lib/messages/messagesResponse/index.ts\nvar messagesResponse = async ({\n client,\n threadId,\n pageParam\n}) => {\n const messagesResponse2 = await client.beta.threads.messages.list(threadId, {\n ...pageParam ? { after: pageParam } : {},\n limit\n });\n return {\n data: await data({\n client,\n messagesResponse: messagesResponse2,\n pageParam,\n threadId\n }),\n hasNextPage: hasNextPage({ messagesResponse: messagesResponse2 }),\n // @ts-ignore-next-line\n lastId: messagesResponse2.body.last_id\n };\n};\n\n// src/lib/runs/serializeRun.ts\nvar import_radash3 = require(\"radash\");\nvar serializeRun = ({\n run\n}) => (0, import_radash3.pick)(run, [\n \"id\",\n \"thread_id\",\n \"assistant_id\",\n \"created_at\"\n]);\n\n// src/lib/streams/enqueueJson.ts\nvar enqueueJson = ({\n controller,\n value\n}) => controller.enqueue(new TextEncoder().encode(JSON.stringify(value)));\n\n// src/lib/messages/createMessageResponse/actionsStream.ts\nvar import_p_map2 = __toESM(require(\"p-map\"), 1);\nvar actionsStream = async ({\n client,\n run,\n handleToolCall,\n controller\n}) => {\n if (!run.required_action) {\n throw new Error(\"Run does not have a required action\");\n }\n const toolCalls = run.required_action.submit_tool_outputs.tool_calls;\n return client.beta.threads.runs.submitToolOutputsStream(\n run.thread_id,\n run.id,\n {\n tool_outputs: await (0, import_p_map2.default)(\n toolCalls,\n (toolCall) => handleToolCall({\n toolCall,\n run,\n controller\n })\n )\n }\n );\n};\n\n// src/lib/messages/createMessageResponse/handleStream.ts\nvar handleStream = async ({\n client,\n stream,\n controller,\n handleToolCall,\n onEvent\n}) => {\n for await (const value of stream) {\n onEvent({ controller, event: value.event, data: value.data });\n if ([\"thread.message.created\", \"thread.message.completed\"].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeMessage({\n message: value.data\n })\n }\n });\n } else if ([\"thread.message.delta\", \"thread.run.step.delta\"].includes(value.event)) {\n enqueueJson({\n controller,\n value\n });\n } else if (value.event === \"thread.run.created\") {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data\n })\n }\n });\n } else if (value.event === \"thread.run.failed\") {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data\n })\n }\n });\n } else if ([\"thread.run.step.created\", \"thread.run.step.completed\"].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRunStep({\n runStep: value.data\n })\n }\n });\n } else if (value.event === \"thread.run.requires_action\") {\n enqueueJson({\n controller,\n value\n });\n await handleStream({\n client,\n stream: await actionsStream({\n client,\n run: value.data,\n handleToolCall,\n controller\n }),\n controller,\n handleToolCall,\n onEvent\n });\n } else {\n console.dir({ value }, { depth: null });\n }\n }\n};\n\n// src/lib/messages/createMessageResponse/index.ts\nvar createMessageResponse = ({\n client,\n createRunStream,\n handleToolCall,\n onStart = () => {\n },\n onError = () => {\n },\n onClose = () => {\n },\n onEvent = () => {\n }\n}) => new ReadableStream({\n async start(controller) {\n onStart({ controller });\n try {\n await handleStream({\n client,\n stream: createRunStream,\n controller,\n handleToolCall,\n onEvent\n });\n } catch (error) {\n onError({ error, controller });\n controller.error(error);\n }\n onClose({ controller });\n controller.close();\n }\n});\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n createMessageResponse,\n extendMessage,\n messagesResponse\n});\n","export { messagesResponse } from '@/lib/messages/messagesResponse'\nexport { createMessageResponse } from '@/lib/messages/createMessageResponse'\nexport { extendMessage } from '@/lib/messages/extendMessage'\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => (\n pick(runStep, [\n 'id',\n 'run_id',\n 'step_details',\n 'completed_at',\n 'cancelled_at',\n 'failed_at',\n 'status',\n ])\n)\n","import OpenAI from 'openai'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: OpenAI.Beta.Threads.Messages.Message & {\n runSteps?: OpenAI.Beta.Threads.Runs.RunStep[]\n }\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => (\n serializeRunStep({ runStep })\n )),\n status: message.status,\n})\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { runMessages } from './runMessages'\n\nexport const messages = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => {\n const result = await pMap(messagesResponse.data, (message) => (\n extendMessage({\n client,\n message,\n })\n ))\n\n if (pageParam) {\n return result\n }\n\n return [\n ...await runMessages({\n result,\n threadId,\n client,\n }),\n ...result,\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n runId: string\n client: OpenAI\n}\n\nexport const getRunSteps = async ({\n threadId,\n runId,\n client,\n}: Args) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId,\n )\n\n return runStepsResponse.data\n}\n","import OpenAI from 'openai'\nimport { getRunSteps } from '@/lib/runSteps/getRunSteps'\n\ntype Args = {\n message: OpenAI.Beta.Threads.Messages.Message\n client: OpenAI\n}\n\nexport const extendMessage = async ({\n message,\n client,\n}: Args) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: [],\n }\n }\n\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client,\n }),\n }\n}\n","import dayjs from 'dayjs'\nimport OpenAI from 'openai'\nimport { getLatestRun } from './getLatestRun'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { optimisticId } from '@/lib/optimistic/optimisticId'\n\ntype Args = {\n result: OpenAI.Beta.Threads.Messages.Message[]\n threadId: string\n client: OpenAI\n}\n\nconst progressStatuses = [\n 'queued',\n 'in_progress',\n 'requires_action',\n 'cancelling',\n]\n\nexport const runMessages = async ({\n result,\n threadId,\n client,\n}: Args) => {\n const latestRun = await getLatestRun({ threadId, client })\n\n if (!latestRun) {\n return []\n }\n\n const messageFromLatestRun = result.find(m => m.run_id === latestRun.id)\n\n if (messageFromLatestRun) {\n return []\n }\n\n if (!progressStatuses.includes(latestRun.status)) {\n return []\n }\n\n return [\n await extendMessage({\n message: {\n id: optimisticId(),\n role: 'assistant' as OpenAI.Beta.Threads.Messages.Message['role'],\n created_at: dayjs().unix(),\n object: 'thread.message' as OpenAI.Beta.Threads.Messages.Message['object'],\n incomplete_details: null,\n completed_at: dayjs().unix(),\n incomplete_at: null,\n status: 'completed',\n content: [],\n run_id: latestRun.id,\n assistant_id: latestRun.assistant_id,\n thread_id: latestRun.thread_id,\n attachments: [],\n metadata: {},\n },\n client,\n }),\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n client: OpenAI\n}\n\nexport const getLatestRun = async ({\n threadId,\n client,\n}: Args) => {\n const runsResponse = await client.beta.threads.runs.list(threadId, {\n limit: 1,\n })\n\n return runsResponse.data[0]\n}\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import OpenAI from 'openai'\nimport { serializeMessage } from '@/lib/messages/serializeMessage'\nimport { messages } from './messages'\n\nexport const data = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => (\n (await messages({\n messagesResponse,\n pageParam,\n threadId,\n client,\n })).map((message) => (\n serializeMessage({ message })\n ))\n)\n","export const limit = 10\n","import OpenAI from 'openai'\nimport { limit } from './limit'\n\nexport const hasNextPage = ({\n messagesResponse,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n}) => {\n if (messagesResponse.data.length < limit) return false\n\n return messagesResponse.hasNextPage()\n}\n","import _ from 'lodash'\nimport OpenAI from 'openai'\nimport { MessagesPage } from '@/types'\nimport { data } from './data'\nimport { limit } from './limit'\nimport { hasNextPage } from './hasNextPage'\n\ntype Args = {\n client: OpenAI\n threadId: string\n pageParam?: string\n}\n\nexport const messagesResponse = async ({\n client,\n threadId,\n pageParam,\n}: Args): Promise<MessagesPage> => {\n const messagesResponse = await client.beta.threads.messages.list(threadId, {\n ...(pageParam ? { after: pageParam } : {}),\n limit,\n })\n\n return {\n data: await data({\n client,\n messagesResponse,\n pageParam,\n threadId,\n }),\n hasNextPage: hasNextPage({ messagesResponse }),\n // @ts-ignore-next-line\n lastId: messagesResponse.body.last_id,\n }\n}\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRun = ({\n run\n}: {\n run: OpenAI.Beta.Threads.Runs.Run\n}) => (\n pick(run, [\n 'id',\n 'thread_id',\n 'assistant_id',\n 'created_at',\n ])\n)\n","export const enqueueJson = ({\n controller,\n value,\n}: {\n controller: ReadableStreamDefaultController\n value: any\n}) => (\n controller.enqueue(new TextEncoder().encode(JSON.stringify(value)))\n)\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\n\nexport const actionsStream = async ({\n client,\n run,\n handleToolCall,\n controller,\n}: {\n client: any\n run: OpenAI.Beta.Threads.Runs.Run\n handleToolCall: any\n controller: ReadableStreamDefaultController\n}) => {\n if (!run.required_action) {\n throw new Error('Run does not have a required action')\n }\n\n const toolCalls = run.required_action.submit_tool_outputs.tool_calls\n\n return client.beta.threads.runs.submitToolOutputsStream(\n run.thread_id,\n run.id,\n {\n tool_outputs: await pMap(toolCalls, (toolCall) => (\n handleToolCall({\n toolCall,\n run,\n controller,\n }))\n ),\n },\n )\n}\n","import { serializeMessage } from '@/lib/messages/serializeMessage'\nimport { serializeRun } from '@/lib/runs/serializeRun'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\nimport { enqueueJson } from '@/lib/streams/enqueueJson'\nimport { actionsStream } from './actionsStream'\n\nexport const handleStream = async ({\n client,\n stream,\n controller,\n handleToolCall,\n onEvent,\n}: {\n client: any\n stream: ReadableStream\n controller: ReadableStreamDefaultController\n handleToolCall: any\n onEvent: ({\n controller,\n event,\n data,\n }: {\n controller: ReadableStreamDefaultController\n event: string\n data: any\n }) => void\n}) => {\n // @ts-ignore-next-line\n for await (const value of stream) {\n onEvent({ controller, event: value.event, data: value.data })\n\n if (['thread.message.created', 'thread.message.completed'].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeMessage({\n message: value.data,\n }),\n },\n })\n } else if (['thread.message.delta', 'thread.run.step.delta'].includes(value.event)) {\n enqueueJson({\n controller,\n value,\n })\n } else if (value.event === 'thread.run.created') {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data,\n }),\n },\n })\n } else if (value.event === 'thread.run.failed') {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data,\n }),\n },\n })\n } else if (['thread.run.step.created', 'thread.run.step.completed'].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRunStep({\n runStep: value.data,\n }),\n },\n })\n } else if (value.event === 'thread.run.requires_action') {\n enqueueJson({\n controller,\n value,\n })\n\n await handleStream({\n client,\n stream: await actionsStream({\n client,\n run: value.data,\n handleToolCall,\n controller,\n }),\n controller,\n handleToolCall,\n onEvent,\n })\n } else {\n console.dir({ value }, { depth: null })\n }\n }\n}\n","import { handleStream } from './handleStream'\n\ntype CallbackArgs = {\n controller: ReadableStreamDefaultController<Uint8Array>\n}\n\nexport const createMessageResponse = ({\n client,\n createRunStream,\n handleToolCall,\n onStart = () => {},\n onError = () => {},\n onClose = () => {},\n onEvent = () => {},\n}: {\n client: any\n createRunStream: any\n handleToolCall: any\n onStart?: (args: CallbackArgs) => void\n onError?: (args: CallbackArgs & { error: any }) => void\n onClose?: (args: CallbackArgs) => void\n onEvent?: (args: CallbackArgs & { event: string, data: any }) => void\n}) => (\n new ReadableStream({\n async start(controller) {\n onStart({ controller })\n\n try {\n await handleStream({\n client,\n stream: createRunStream,\n controller,\n handleToolCall,\n onEvent,\n })\n } catch (error) {\n onError({ error, controller })\n controller.error(error)\n }\n\n onClose({ controller })\n controller.close()\n },\n })\n)\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/runSteps/serializeRunStep.ts","../src/lib/messages/serializeMessage.ts","../src/lib/messages/messagesResponse/data/messages/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/messages/extendMessage.ts","../src/lib/messages/messagesResponse/data/messages/runMessages/index.ts","../src/lib/messages/messagesResponse/data/messages/runMessages/getLatestRun.ts","../src/lib/optimistic/optimisticId.ts","../src/lib/messages/messagesResponse/data/index.ts","../src/lib/messages/messagesResponse/limit.ts","../src/lib/messages/messagesResponse/hasNextPage.ts","../src/lib/messages/messagesResponse/index.ts","../src/lib/runs/serializeRun.ts","../src/lib/streams/enqueueJson.ts","../src/lib/messages/createMessageResponse/actionsStream.ts","../src/lib/messages/createMessageResponse/handleStream.ts","../src/lib/messages/createMessageResponse/index.ts"],"names":["messagesResponse","pick","pMap"],"mappings":"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","sourcesContent":["import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => (\n pick(runStep, [\n 'id',\n 'run_id',\n 'step_details',\n 'completed_at',\n 'cancelled_at',\n 'failed_at',\n 'status',\n ])\n)\n","import OpenAI from 'openai'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: OpenAI.Beta.Threads.Messages.Message & {\n runSteps?: OpenAI.Beta.Threads.Runs.RunStep[]\n }\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => (\n serializeRunStep({ runStep })\n )),\n status: message.status,\n})\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { runMessages } from './runMessages'\n\nexport const messages = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => {\n const result = await pMap(messagesResponse.data, (message) => (\n extendMessage({\n client,\n message,\n })\n ))\n\n if (pageParam) {\n return result\n }\n\n return [\n ...await runMessages({\n result,\n threadId,\n client,\n }),\n ...result,\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n runId: string\n client: OpenAI\n}\n\nexport const getRunSteps = async ({\n threadId,\n runId,\n client,\n}: Args) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId,\n )\n\n return runStepsResponse.data\n}\n","import OpenAI from 'openai'\nimport { getRunSteps } from '@/lib/runSteps/getRunSteps'\n\ntype Args = {\n message: OpenAI.Beta.Threads.Messages.Message\n client: OpenAI\n}\n\nexport const extendMessage = async ({\n message,\n client,\n}: Args) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: [],\n }\n }\n\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client,\n }),\n }\n}\n","import dayjs from 'dayjs'\nimport OpenAI from 'openai'\nimport { getLatestRun } from './getLatestRun'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { optimisticId } from '@/lib/optimistic/optimisticId'\n\ntype Args = {\n result: OpenAI.Beta.Threads.Messages.Message[]\n threadId: string\n client: OpenAI\n}\n\nconst progressStatuses = [\n 'queued',\n 'in_progress',\n 'requires_action',\n 'cancelling',\n]\n\nexport const runMessages = async ({\n result,\n threadId,\n client,\n}: Args) => {\n const latestRun = await getLatestRun({ threadId, client })\n\n if (!latestRun) {\n return []\n }\n\n const messageFromLatestRun = result.find(m => m.run_id === latestRun.id)\n\n if (messageFromLatestRun) {\n return []\n }\n\n if (!progressStatuses.includes(latestRun.status)) {\n return []\n }\n\n return [\n await extendMessage({\n message: {\n id: optimisticId(),\n role: 'assistant' as OpenAI.Beta.Threads.Messages.Message['role'],\n created_at: dayjs().unix(),\n object: 'thread.message' as OpenAI.Beta.Threads.Messages.Message['object'],\n incomplete_details: null,\n completed_at: dayjs().unix(),\n incomplete_at: null,\n status: 'completed',\n content: [],\n run_id: latestRun.id,\n assistant_id: latestRun.assistant_id,\n thread_id: latestRun.thread_id,\n attachments: [],\n metadata: {},\n },\n client,\n }),\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n client: OpenAI\n}\n\nexport const getLatestRun = async ({\n threadId,\n client,\n}: Args) => {\n const runsResponse = await client.beta.threads.runs.list(threadId, {\n limit: 1,\n })\n\n return runsResponse.data[0]\n}\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import OpenAI from 'openai'\nimport { serializeMessage } from '@/lib/messages/serializeMessage'\nimport { messages } from './messages'\n\nexport const data = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => (\n (await messages({\n messagesResponse,\n pageParam,\n threadId,\n client,\n })).map((message) => (\n serializeMessage({ message })\n ))\n)\n","export const limit = 10\n","import OpenAI from 'openai'\nimport { limit } from './limit'\n\nexport const hasNextPage = ({\n messagesResponse,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n}) => {\n if (messagesResponse.data.length < limit) return false\n\n return messagesResponse.hasNextPage()\n}\n","import _ from 'lodash'\nimport OpenAI from 'openai'\nimport { MessagesPage } from '@/types'\nimport { data } from './data'\nimport { limit } from './limit'\nimport { hasNextPage } from './hasNextPage'\n\ntype Args = {\n client: OpenAI\n threadId: string\n pageParam?: string\n}\n\nexport const messagesResponse = async ({\n client,\n threadId,\n pageParam,\n}: Args): Promise<MessagesPage> => {\n const messagesResponse = await client.beta.threads.messages.list(threadId, {\n ...(pageParam ? { after: pageParam } : {}),\n limit,\n })\n\n return {\n data: await data({\n client,\n messagesResponse,\n pageParam,\n threadId,\n }),\n hasNextPage: hasNextPage({ messagesResponse }),\n // @ts-ignore-next-line\n lastId: messagesResponse.body.last_id,\n }\n}\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRun = ({\n run\n}: {\n run: OpenAI.Beta.Threads.Runs.Run\n}) => (\n pick(run, [\n 'id',\n 'thread_id',\n 'assistant_id',\n 'created_at',\n ])\n)\n","export const enqueueJson = ({\n controller,\n value,\n}: {\n controller: ReadableStreamDefaultController\n value: any\n}) => (\n controller.enqueue(new TextEncoder().encode(JSON.stringify(value)))\n)\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\n\nexport const actionsStream = async ({\n client,\n run,\n handleToolCall,\n controller,\n}: {\n client: any\n run: OpenAI.Beta.Threads.Runs.Run\n handleToolCall: any\n controller: ReadableStreamDefaultController\n}) => {\n if (!run.required_action) {\n throw new Error('Run does not have a required action')\n }\n\n const toolCalls = run.required_action.submit_tool_outputs.tool_calls\n\n return client.beta.threads.runs.submitToolOutputsStream(\n run.thread_id,\n run.id,\n {\n tool_outputs: await pMap(toolCalls, (toolCall) => (\n handleToolCall({\n toolCall,\n run,\n controller,\n }))\n ),\n },\n )\n}\n","import { serializeMessage } from '@/lib/messages/serializeMessage'\nimport { serializeRun } from '@/lib/runs/serializeRun'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\nimport { enqueueJson } from '@/lib/streams/enqueueJson'\nimport { actionsStream } from './actionsStream'\n\nexport const handleStream = async ({\n client,\n stream,\n controller,\n handleToolCall,\n onEvent,\n}: {\n client: any\n stream: ReadableStream\n controller: ReadableStreamDefaultController\n handleToolCall: any\n onEvent: ({\n controller,\n event,\n data,\n }: {\n controller: ReadableStreamDefaultController\n event: string\n data: any\n }) => void\n}) => {\n for await (const value of stream) {\n onEvent({ controller, event: value.event, data: value.data })\n\n if (['thread.message.created', 'thread.message.completed'].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeMessage({\n message: value.data,\n }),\n },\n })\n } else if (['thread.message.delta', 'thread.run.step.delta'].includes(value.event)) {\n enqueueJson({\n controller,\n value,\n })\n } else if (value.event === 'thread.run.created') {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data,\n }),\n },\n })\n } else if (value.event === 'thread.run.failed') {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data,\n }),\n },\n })\n } else if (['thread.run.step.created', 'thread.run.step.completed'].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRunStep({\n runStep: value.data,\n }),\n },\n })\n } else if (value.event === 'thread.run.requires_action') {\n enqueueJson({\n controller,\n value,\n })\n\n await handleStream({\n client,\n stream: await actionsStream({\n client,\n run: value.data,\n handleToolCall,\n controller,\n }),\n controller,\n handleToolCall,\n onEvent,\n })\n } else {\n console.dir({ value }, { depth: null })\n }\n }\n}\n","import { handleStream } from './handleStream'\n\ntype CallbackArgs = {\n controller: ReadableStreamDefaultController<Uint8Array>\n}\n\nexport const createMessageResponse = ({\n client,\n createRunStream,\n handleToolCall,\n onStart = () => {},\n onError = () => {},\n onClose = () => {},\n onEvent = () => {},\n}: {\n client: any\n createRunStream: any\n handleToolCall: any\n onStart?: (args: CallbackArgs) => void\n onError?: (args: CallbackArgs & { error: any }) => void\n onClose?: (args: CallbackArgs) => void\n onEvent?: (args: CallbackArgs & { event: string, data: any }) => void\n}) => (\n new ReadableStream({\n async start(controller) {\n onStart({ controller })\n\n try {\n await handleStream({\n client,\n stream: createRunStream,\n controller,\n handleToolCall,\n onEvent,\n })\n } catch (error) {\n onError({ error, controller })\n controller.error(error)\n }\n\n onClose({ controller })\n controller.close()\n },\n })\n)\n"]}
1
+ {"version":3,"sources":["/Users/domas/Developer/supercorp/superinterface/packages/react/dist/server.js","../src/lib/runSteps/serializeRunStep.ts","../src/lib/messages/serializeMessage.ts","../src/lib/messages/messagesResponse/data/messages/index.ts","../src/lib/runSteps/getRunSteps/index.ts","../src/lib/messages/extendMessage.ts","../src/lib/messages/messagesResponse/data/messages/runMessages/index.ts","../src/lib/messages/messagesResponse/data/messages/runMessages/getLatestRun.ts","../src/lib/optimistic/optimisticId.ts","../src/lib/messages/messagesResponse/data/index.ts","../src/lib/messages/messagesResponse/limit.ts","../src/lib/messages/messagesResponse/hasNextPage.ts","../src/lib/messages/messagesResponse/index.ts","../src/lib/runs/serializeRun.ts","../src/lib/streams/enqueueJson.ts","../src/lib/messages/createMessageResponse/actionsStream.ts","../src/lib/messages/createMessageResponse/handleStream.ts","../src/lib/messages/createMessageResponse/index.ts"],"names":["pick","serializeRunStep","runStep","serializeMessage","message","id","role","created_at","content","run_id","assistant_id","thread_id","attachments","metadata","runSteps","map","status","pMap","getRunSteps","threadId","runId","client","runStepsResponse","beta","threads","runs","steps","list","data","extendMessage","dayjs","getLatestRun","runsResponse","limit","uid","optimisticId","progressStatuses","runMessages","result","latestRun","messageFromLatestRun","find","m","includes","unix","object","incomplete_details","completed_at","incomplete_at","messages","messagesResponse","pageParam","hasNextPage","length","after","lastId","body","last_id","serializeRun","run","enqueueJson","controller","value","enqueue","TextEncoder","encode","JSON","stringify","actionsStream","handleToolCall","toolCalls","required_action","Error","submit_tool_outputs","tool_calls","submitToolOutputsStream","toolCall","tool_outputs","handleStream","stream","onEvent","event","console","dir","depth","createMessageResponse","createRunStream","onStart","onError","onClose","ReadableStream","start","error","close"],"mappings":"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","sourcesContent":["// src/lib/runSteps/serializeRunStep.ts\nimport { pick } from \"radash\";\nvar serializeRunStep = ({\n runStep\n}) => pick(runStep, [\n \"id\",\n \"run_id\",\n \"step_details\",\n \"completed_at\",\n \"cancelled_at\",\n \"failed_at\",\n \"status\"\n]);\n\n// src/lib/messages/serializeMessage.ts\nvar serializeMessage = ({\n message\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => serializeRunStep({ runStep })),\n status: message.status\n});\n\n// src/lib/messages/messagesResponse/data/messages/index.ts\nimport pMap from \"p-map\";\n\n// src/lib/runSteps/getRunSteps/index.ts\nvar getRunSteps = async ({\n threadId,\n runId,\n client\n}) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId\n );\n return runStepsResponse.data;\n};\n\n// src/lib/messages/extendMessage.ts\nvar extendMessage = async ({\n message,\n client\n}) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: []\n };\n }\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client\n })\n };\n};\n\n// src/lib/messages/messagesResponse/data/messages/runMessages/index.ts\nimport dayjs from \"dayjs\";\n\n// src/lib/messages/messagesResponse/data/messages/runMessages/getLatestRun.ts\nvar getLatestRun = async ({\n threadId,\n client\n}) => {\n const runsResponse = await client.beta.threads.runs.list(threadId, {\n limit: 1\n });\n return runsResponse.data[0];\n};\n\n// src/lib/optimistic/optimisticId.ts\nimport { uid } from \"radash\";\nvar optimisticId = () => `-${uid(24)}`;\n\n// src/lib/messages/messagesResponse/data/messages/runMessages/index.ts\nvar progressStatuses = [\n \"queued\",\n \"in_progress\",\n \"requires_action\",\n \"cancelling\"\n];\nvar runMessages = async ({\n result,\n threadId,\n client\n}) => {\n const latestRun = await getLatestRun({ threadId, client });\n if (!latestRun) {\n return [];\n }\n const messageFromLatestRun = result.find((m) => m.run_id === latestRun.id);\n if (messageFromLatestRun) {\n return [];\n }\n if (!progressStatuses.includes(latestRun.status)) {\n return [];\n }\n return [\n await extendMessage({\n message: {\n id: optimisticId(),\n role: \"assistant\",\n created_at: dayjs().unix(),\n object: \"thread.message\",\n incomplete_details: null,\n completed_at: dayjs().unix(),\n incomplete_at: null,\n status: \"completed\",\n content: [],\n run_id: latestRun.id,\n assistant_id: latestRun.assistant_id,\n thread_id: latestRun.thread_id,\n attachments: [],\n metadata: {}\n },\n client\n })\n ];\n};\n\n// src/lib/messages/messagesResponse/data/messages/index.ts\nvar messages = async ({\n messagesResponse: messagesResponse2,\n pageParam,\n threadId,\n client\n}) => {\n const result = await pMap(messagesResponse2.data, (message) => extendMessage({\n client,\n message\n }));\n if (pageParam) {\n return result;\n }\n return [\n ...await runMessages({\n result,\n threadId,\n client\n }),\n ...result\n ];\n};\n\n// src/lib/messages/messagesResponse/data/index.ts\nvar data = async ({\n messagesResponse: messagesResponse2,\n pageParam,\n threadId,\n client\n}) => (await messages({\n messagesResponse: messagesResponse2,\n pageParam,\n threadId,\n client\n})).map((message) => serializeMessage({ message }));\n\n// src/lib/messages/messagesResponse/limit.ts\nvar limit = 10;\n\n// src/lib/messages/messagesResponse/hasNextPage.ts\nvar hasNextPage = ({\n messagesResponse: messagesResponse2\n}) => {\n if (messagesResponse2.data.length < limit) return false;\n return messagesResponse2.hasNextPage();\n};\n\n// src/lib/messages/messagesResponse/index.ts\nvar messagesResponse = async ({\n client,\n threadId,\n pageParam\n}) => {\n const messagesResponse2 = await client.beta.threads.messages.list(threadId, {\n ...pageParam ? { after: pageParam } : {},\n limit\n });\n return {\n data: await data({\n client,\n messagesResponse: messagesResponse2,\n pageParam,\n threadId\n }),\n hasNextPage: hasNextPage({ messagesResponse: messagesResponse2 }),\n // @ts-ignore-next-line\n lastId: messagesResponse2.body.last_id\n };\n};\n\n// src/lib/runs/serializeRun.ts\nimport { pick as pick2 } from \"radash\";\nvar serializeRun = ({\n run\n}) => pick2(run, [\n \"id\",\n \"thread_id\",\n \"assistant_id\",\n \"created_at\"\n]);\n\n// src/lib/streams/enqueueJson.ts\nvar enqueueJson = ({\n controller,\n value\n}) => controller.enqueue(new TextEncoder().encode(JSON.stringify(value)));\n\n// src/lib/messages/createMessageResponse/actionsStream.ts\nimport pMap2 from \"p-map\";\nvar actionsStream = async ({\n client,\n run,\n handleToolCall,\n controller\n}) => {\n if (!run.required_action) {\n throw new Error(\"Run does not have a required action\");\n }\n const toolCalls = run.required_action.submit_tool_outputs.tool_calls;\n return client.beta.threads.runs.submitToolOutputsStream(\n run.thread_id,\n run.id,\n {\n tool_outputs: await pMap2(\n toolCalls,\n (toolCall) => handleToolCall({\n toolCall,\n run,\n controller\n })\n )\n }\n );\n};\n\n// src/lib/messages/createMessageResponse/handleStream.ts\nvar handleStream = async ({\n client,\n stream,\n controller,\n handleToolCall,\n onEvent\n}) => {\n for await (const value of stream) {\n onEvent({ controller, event: value.event, data: value.data });\n if ([\"thread.message.created\", \"thread.message.completed\"].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeMessage({\n message: value.data\n })\n }\n });\n } else if ([\"thread.message.delta\", \"thread.run.step.delta\"].includes(value.event)) {\n enqueueJson({\n controller,\n value\n });\n } else if (value.event === \"thread.run.created\") {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data\n })\n }\n });\n } else if (value.event === \"thread.run.failed\") {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data\n })\n }\n });\n } else if ([\"thread.run.step.created\", \"thread.run.step.completed\"].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRunStep({\n runStep: value.data\n })\n }\n });\n } else if (value.event === \"thread.run.requires_action\") {\n enqueueJson({\n controller,\n value\n });\n await handleStream({\n client,\n stream: await actionsStream({\n client,\n run: value.data,\n handleToolCall,\n controller\n }),\n controller,\n handleToolCall,\n onEvent\n });\n } else {\n console.dir({ value }, { depth: null });\n }\n }\n};\n\n// src/lib/messages/createMessageResponse/index.ts\nvar createMessageResponse = ({\n client,\n createRunStream,\n handleToolCall,\n onStart = () => {\n },\n onError = () => {\n },\n onClose = () => {\n },\n onEvent = () => {\n }\n}) => new ReadableStream({\n async start(controller) {\n onStart({ controller });\n try {\n await handleStream({\n client,\n stream: createRunStream,\n controller,\n handleToolCall,\n onEvent\n });\n } catch (error) {\n onError({ error, controller });\n controller.error(error);\n }\n onClose({ controller });\n controller.close();\n }\n});\nexport {\n createMessageResponse,\n extendMessage,\n messagesResponse\n};\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => (\n pick(runStep, [\n 'id',\n 'run_id',\n 'step_details',\n 'completed_at',\n 'cancelled_at',\n 'failed_at',\n 'status',\n ])\n)\n","import OpenAI from 'openai'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: OpenAI.Beta.Threads.Messages.Message & {\n runSteps?: OpenAI.Beta.Threads.Runs.RunStep[]\n }\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => (\n serializeRunStep({ runStep })\n )),\n status: message.status,\n})\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { runMessages } from './runMessages'\n\nexport const messages = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => {\n const result = await pMap(messagesResponse.data, (message) => (\n extendMessage({\n client,\n message,\n })\n ))\n\n if (pageParam) {\n return result\n }\n\n return [\n ...await runMessages({\n result,\n threadId,\n client,\n }),\n ...result,\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n runId: string\n client: OpenAI\n}\n\nexport const getRunSteps = async ({\n threadId,\n runId,\n client,\n}: Args) => {\n const runStepsResponse = await client.beta.threads.runs.steps.list(\n threadId,\n runId,\n )\n\n return runStepsResponse.data\n}\n","import OpenAI from 'openai'\nimport { getRunSteps } from '@/lib/runSteps/getRunSteps'\n\ntype Args = {\n message: OpenAI.Beta.Threads.Messages.Message\n client: OpenAI\n}\n\nexport const extendMessage = async ({\n message,\n client,\n}: Args) => {\n if (!message.run_id) {\n return {\n ...message,\n runSteps: [],\n }\n }\n\n return {\n ...message,\n runSteps: await getRunSteps({\n threadId: message.thread_id,\n runId: message.run_id,\n client,\n }),\n }\n}\n","import dayjs from 'dayjs'\nimport OpenAI from 'openai'\nimport { getLatestRun } from './getLatestRun'\nimport { extendMessage } from '@/lib/messages/extendMessage'\nimport { optimisticId } from '@/lib/optimistic/optimisticId'\n\ntype Args = {\n result: OpenAI.Beta.Threads.Messages.Message[]\n threadId: string\n client: OpenAI\n}\n\nconst progressStatuses = [\n 'queued',\n 'in_progress',\n 'requires_action',\n 'cancelling',\n]\n\nexport const runMessages = async ({\n result,\n threadId,\n client,\n}: Args) => {\n const latestRun = await getLatestRun({ threadId, client })\n\n if (!latestRun) {\n return []\n }\n\n const messageFromLatestRun = result.find(m => m.run_id === latestRun.id)\n\n if (messageFromLatestRun) {\n return []\n }\n\n if (!progressStatuses.includes(latestRun.status)) {\n return []\n }\n\n return [\n await extendMessage({\n message: {\n id: optimisticId(),\n role: 'assistant' as OpenAI.Beta.Threads.Messages.Message['role'],\n created_at: dayjs().unix(),\n object: 'thread.message' as OpenAI.Beta.Threads.Messages.Message['object'],\n incomplete_details: null,\n completed_at: dayjs().unix(),\n incomplete_at: null,\n status: 'completed',\n content: [],\n run_id: latestRun.id,\n assistant_id: latestRun.assistant_id,\n thread_id: latestRun.thread_id,\n attachments: [],\n metadata: {},\n },\n client,\n }),\n ]\n}\n","import OpenAI from 'openai'\n\ntype Args = {\n threadId: string\n client: OpenAI\n}\n\nexport const getLatestRun = async ({\n threadId,\n client,\n}: Args) => {\n const runsResponse = await client.beta.threads.runs.list(threadId, {\n limit: 1,\n })\n\n return runsResponse.data[0]\n}\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import OpenAI from 'openai'\nimport { serializeMessage } from '@/lib/messages/serializeMessage'\nimport { messages } from './messages'\n\nexport const data = async ({\n messagesResponse,\n pageParam,\n threadId,\n client,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n pageParam?: string\n threadId: string\n client: OpenAI\n}) => (\n (await messages({\n messagesResponse,\n pageParam,\n threadId,\n client,\n })).map((message) => (\n serializeMessage({ message })\n ))\n)\n","export const limit = 10\n","import OpenAI from 'openai'\nimport { limit } from './limit'\n\nexport const hasNextPage = ({\n messagesResponse,\n}: {\n messagesResponse: OpenAI.CursorPage<OpenAI.Beta.Threads.Messages.Message>\n}) => {\n if (messagesResponse.data.length < limit) return false\n\n return messagesResponse.hasNextPage()\n}\n","import _ from 'lodash'\nimport OpenAI from 'openai'\nimport { MessagesPage } from '@/types'\nimport { data } from './data'\nimport { limit } from './limit'\nimport { hasNextPage } from './hasNextPage'\n\ntype Args = {\n client: OpenAI\n threadId: string\n pageParam?: string\n}\n\nexport const messagesResponse = async ({\n client,\n threadId,\n pageParam,\n}: Args): Promise<MessagesPage> => {\n const messagesResponse = await client.beta.threads.messages.list(threadId, {\n ...(pageParam ? { after: pageParam } : {}),\n limit,\n })\n\n return {\n data: await data({\n client,\n messagesResponse,\n pageParam,\n threadId,\n }),\n hasNextPage: hasNextPage({ messagesResponse }),\n // @ts-ignore-next-line\n lastId: messagesResponse.body.last_id,\n }\n}\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRun = ({\n run\n}: {\n run: OpenAI.Beta.Threads.Runs.Run\n}) => (\n pick(run, [\n 'id',\n 'thread_id',\n 'assistant_id',\n 'created_at',\n ])\n)\n","export const enqueueJson = ({\n controller,\n value,\n}: {\n controller: ReadableStreamDefaultController\n value: any\n}) => (\n controller.enqueue(new TextEncoder().encode(JSON.stringify(value)))\n)\n","import OpenAI from 'openai'\nimport pMap from 'p-map'\n\nexport const actionsStream = async ({\n client,\n run,\n handleToolCall,\n controller,\n}: {\n client: any\n run: OpenAI.Beta.Threads.Runs.Run\n handleToolCall: any\n controller: ReadableStreamDefaultController\n}) => {\n if (!run.required_action) {\n throw new Error('Run does not have a required action')\n }\n\n const toolCalls = run.required_action.submit_tool_outputs.tool_calls\n\n return client.beta.threads.runs.submitToolOutputsStream(\n run.thread_id,\n run.id,\n {\n tool_outputs: await pMap(toolCalls, (toolCall) => (\n handleToolCall({\n toolCall,\n run,\n controller,\n }))\n ),\n },\n )\n}\n","import { serializeMessage } from '@/lib/messages/serializeMessage'\nimport { serializeRun } from '@/lib/runs/serializeRun'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\nimport { enqueueJson } from '@/lib/streams/enqueueJson'\nimport { actionsStream } from './actionsStream'\n\nexport const handleStream = async ({\n client,\n stream,\n controller,\n handleToolCall,\n onEvent,\n}: {\n client: any\n stream: ReadableStream\n controller: ReadableStreamDefaultController\n handleToolCall: any\n onEvent: ({\n controller,\n event,\n data,\n }: {\n controller: ReadableStreamDefaultController\n event: string\n data: any\n }) => void\n}) => {\n // @ts-ignore-next-line\n for await (const value of stream) {\n onEvent({ controller, event: value.event, data: value.data })\n\n if (['thread.message.created', 'thread.message.completed'].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeMessage({\n message: value.data,\n }),\n },\n })\n } else if (['thread.message.delta', 'thread.run.step.delta'].includes(value.event)) {\n enqueueJson({\n controller,\n value,\n })\n } else if (value.event === 'thread.run.created') {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data,\n }),\n },\n })\n } else if (value.event === 'thread.run.failed') {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRun({\n run: value.data,\n }),\n },\n })\n } else if (['thread.run.step.created', 'thread.run.step.completed'].includes(value.event)) {\n enqueueJson({\n controller,\n value: {\n event: value.event,\n data: serializeRunStep({\n runStep: value.data,\n }),\n },\n })\n } else if (value.event === 'thread.run.requires_action') {\n enqueueJson({\n controller,\n value,\n })\n\n await handleStream({\n client,\n stream: await actionsStream({\n client,\n run: value.data,\n handleToolCall,\n controller,\n }),\n controller,\n handleToolCall,\n onEvent,\n })\n } else {\n console.dir({ value }, { depth: null })\n }\n }\n}\n","import { handleStream } from './handleStream'\n\ntype CallbackArgs = {\n controller: ReadableStreamDefaultController<Uint8Array>\n}\n\nexport const createMessageResponse = ({\n client,\n createRunStream,\n handleToolCall,\n onStart = () => {},\n onError = () => {},\n onClose = () => {},\n onEvent = () => {},\n}: {\n client: any\n createRunStream: any\n handleToolCall: any\n onStart?: (args: CallbackArgs) => void\n onError?: (args: CallbackArgs & { error: any }) => void\n onClose?: (args: CallbackArgs) => void\n onEvent?: (args: CallbackArgs & { event: string, data: any }) => void\n}) => (\n new ReadableStream({\n async start(controller) {\n onStart({ controller })\n\n try {\n await handleStream({\n client,\n stream: createRunStream,\n controller,\n handleToolCall,\n onEvent,\n })\n } catch (error) {\n onError({ error, controller })\n controller.error(error)\n }\n\n onClose({ controller })\n controller.close()\n },\n })\n)\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA","sourcesContent":["import OpenAI from 'openai'\nimport { AvatarType, IconAvatarName } from '@/lib/enums'\n\nexport type SerializedRunStep = Pick<OpenAI.Beta.Threads.Runs.RunStep, 'id' | 'run_id' | 'step_details' | 'completed_at' | 'cancelled_at' | 'failed_at' | 'status'>\n\nexport type SerializedMessage = Pick<OpenAI.Beta.Threads.Messages.Message, 'id' | 'role' | 'created_at' | 'content' | 'run_id' | 'assistant_id' | 'thread_id' | 'attachments' | 'metadata' | 'status'> & {\n runSteps: SerializedRunStep[]\n}\n\nexport type ToolCall = OpenAI.Beta.Threads.Runs.CodeInterpreterToolCall\n | OpenAI.Beta.Threads.Runs.FileSearchToolCall\n | OpenAI.Beta.Threads.Runs.FunctionToolCall\n\nexport type MessagesPage = {\n data: SerializedMessage[]\n hasNextPage: boolean\n lastId: string\n}\n\nexport type MessageGroup = {\n id: string\n role: \"user\" | \"assistant\"\n messages: SerializedMessage[]\n createdAt: number\n}\n\nexport type AudioEngine = {\n source: MediaStreamAudioSourceNode | GainNode\n audioContext: AudioContext\n}\n\nexport type Toast = {\n type: 'success' | 'error'\n message: string\n}\n\nexport type ThreadMessageCreatedEvent = OpenAI.Beta.Assistants.AssistantStreamEvent.ThreadMessageCreated & {\n data: SerializedMessage\n}\n\nexport type ThreadMessageCompletedEvent = OpenAI.Beta.Assistants.AssistantStreamEvent.ThreadMessageCompleted & {\n data: SerializedMessage\n}\n\nexport type ThreadRunStepDeltaEvent = OpenAI.Beta.Assistants.AssistantStreamEvent.ThreadRunStepDelta & {\n data: {\n run_id: string\n }\n}\n\nexport type MessagesQueryKey = (string | Record<string, any>)[]\n\nexport type IconAvatar = {\n name: IconAvatarName\n}\n\nexport type ImageAvatar = {\n url: string\n}\n\nexport type Avatar = {\n type: AvatarType\n iconAvatar: IconAvatar | null\n imageAvatar: ImageAvatar | null\n}\n\nexport type Size = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'\n"]}
1
+ {"version":3,"sources":["/Users/domas/Developer/supercorp/superinterface/packages/react/dist/types/index.cjs","../../src/types/index.ts"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__copyProps","to","from","except","desc","key","call","get","enumerable","__toCommonJS","mod","value","types_exports","module","exports"],"mappings":"AAAA;;;;;AACA,IAAIA,YAAYC,OAAOC,cAAc;AACrC,IAAIC,mBAAmBF,OAAOG,wBAAwB;AACtD,IAAIC,oBAAoBJ,OAAOK,mBAAmB;AAClD,IAAIC,eAAeN,OAAOO,SAAS,CAACC,cAAc;AAClD,IAAIC,cAAc,SAACC,IAAIC,MAAMC,QAAQC;IACnC,IAAIF,QAAQ,CAAA,OAAOA,qCAAP,SAAOA,KAAG,MAAM,YAAY,OAAOA,SAAS,YAAY;YAC7D,kCAAA,2BAAA;;;gBAAA,IAAIG,MAAJ;gBACH,IAAI,CAACR,aAAaS,IAAI,CAACL,IAAII,QAAQA,QAAQF,QACzCb,UAAUW,IAAII,KAAK;oBAAEE,KAAK;+BAAML,IAAI,CAACG,IAAI;;oBAAEG,YAAY,CAAEJ,CAAAA,OAAOX,iBAAiBS,MAAMG,IAAG,KAAMD,KAAKI,UAAU;gBAAC;;YAFpH,QAAK,YAAWb,kBAAkBO,0BAA7B,SAAA,6BAAA,QAAA,yBAAA;;YAAA;YAAA;;;qBAAA,6BAAA;oBAAA;;;oBAAA;0BAAA;;;;IAGP;IACA,OAAOD;AACT;AACA,IAAIQ,eAAe,SAACC;WAAQV,YAAYV,UAAU,CAAC,GAAG,cAAc;QAAEqB,OAAO;IAAK,IAAID;;AAEtF,qBAAqB;ACfrB,IAAAE,gBAAA,CAAA;AAAAC,OAAAC,OAAA,GAAAL,aAAAG","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/types/index.ts\nvar types_exports = {};\nmodule.exports = __toCommonJS(types_exports);\n","import OpenAI from 'openai'\nimport { AvatarType, IconAvatarName } from '@/lib/enums'\n\nexport type SerializedRunStep = Pick<OpenAI.Beta.Threads.Runs.RunStep, 'id' | 'run_id' | 'step_details' | 'completed_at' | 'cancelled_at' | 'failed_at' | 'status'>\n\nexport type SerializedMessage = Pick<OpenAI.Beta.Threads.Messages.Message, 'id' | 'role' | 'created_at' | 'content' | 'run_id' | 'assistant_id' | 'thread_id' | 'attachments' | 'metadata' | 'status'> & {\n runSteps: SerializedRunStep[]\n}\n\nexport type ToolCall = OpenAI.Beta.Threads.Runs.CodeInterpreterToolCall\n | OpenAI.Beta.Threads.Runs.FileSearchToolCall\n | OpenAI.Beta.Threads.Runs.FunctionToolCall\n\nexport type MessagesPage = {\n data: SerializedMessage[]\n hasNextPage: boolean\n lastId: string\n}\n\nexport type MessageGroup = {\n id: string\n role: \"user\" | \"assistant\"\n messages: SerializedMessage[]\n createdAt: number\n}\n\nexport type AudioEngine = {\n source: MediaStreamAudioSourceNode | GainNode\n audioContext: AudioContext\n}\n\nexport type Toast = {\n type: 'success' | 'error'\n message: string\n}\n\nexport type ThreadMessageCreatedEvent = OpenAI.Beta.Assistants.AssistantStreamEvent.ThreadMessageCreated & {\n data: SerializedMessage\n}\n\nexport type ThreadMessageCompletedEvent = OpenAI.Beta.Assistants.AssistantStreamEvent.ThreadMessageCompleted & {\n data: SerializedMessage\n}\n\nexport type ThreadRunStepDeltaEvent = OpenAI.Beta.Assistants.AssistantStreamEvent.ThreadRunStepDelta & {\n data: {\n run_id: string\n }\n}\n\nexport type MessagesQueryKey = (string | Record<string, any>)[]\n\nexport type IconAvatar = {\n name: IconAvatarName\n}\n\nexport type ImageAvatar = {\n url: string\n}\n\nexport type Avatar = {\n type: AvatarType\n iconAvatar: IconAvatar | null\n imageAvatar: ImageAvatar | null\n}\n\nexport type Size = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'\n\nexport type StyleProps = {\n style?: React.CSSProperties\n className?: string\n}\n"]}
@@ -67,5 +67,9 @@ type Avatar = {
67
67
  imageAvatar: ImageAvatar | null;
68
68
  };
69
69
  type Size = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
70
+ type StyleProps = {
71
+ style?: React.CSSProperties;
72
+ className?: string;
73
+ };
70
74
 
71
- export type { AudioEngine, Avatar, IconAvatar, ImageAvatar, MessageGroup, MessagesPage, MessagesQueryKey, SerializedMessage, SerializedRunStep, Size, ThreadMessageCompletedEvent, ThreadMessageCreatedEvent, ThreadRunStepDeltaEvent, Toast, ToolCall };
75
+ export type { AudioEngine, Avatar, IconAvatar, ImageAvatar, MessageGroup, MessagesPage, MessagesQueryKey, SerializedMessage, SerializedRunStep, Size, StyleProps, ThreadMessageCompletedEvent, ThreadMessageCreatedEvent, ThreadRunStepDeltaEvent, Toast, ToolCall };
@@ -67,5 +67,9 @@ type Avatar = {
67
67
  imageAvatar: ImageAvatar | null;
68
68
  };
69
69
  type Size = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';
70
+ type StyleProps = {
71
+ style?: React.CSSProperties;
72
+ className?: string;
73
+ };
70
74
 
71
- export type { AudioEngine, Avatar, IconAvatar, ImageAvatar, MessageGroup, MessagesPage, MessagesQueryKey, SerializedMessage, SerializedRunStep, Size, ThreadMessageCompletedEvent, ThreadMessageCreatedEvent, ThreadRunStepDeltaEvent, Toast, ToolCall };
75
+ export type { AudioEngine, Avatar, IconAvatar, ImageAvatar, MessageGroup, MessagesPage, MessagesQueryKey, SerializedMessage, SerializedRunStep, Size, StyleProps, ThreadMessageCompletedEvent, ThreadMessageCreatedEvent, ThreadRunStepDeltaEvent, Toast, ToolCall };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts","../src/lib/optimistic/optimisticId.ts","../src/lib/runSteps/serializeRunStep.ts","../src/lib/messages/serializeMessage.ts","../src/lib/threadIdCookies/key.ts","../src/lib/streams/enqueueJson.ts"],"names":["import_radash"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAAoB;AAEb,IAAM,eAAe,MAC1B,QAAI,mBAAI,EAAE,CAAC;;;ACHb,IAAAA,iBAAqB;AAGd,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AACF,UAGE,qBAAK,SAAS;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;ACbI,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AACF,OAIO;AAAA,EACL,IAAI,QAAQ;AAAA,EACZ,MAAM,QAAQ;AAAA,EACd,YAAY,QAAQ;AAAA,EACpB,SAAS,QAAQ;AAAA,EACjB,QAAQ,QAAQ;AAAA,EAChB,cAAc,QAAQ;AAAA,EACtB,WAAW,QAAQ;AAAA,EACnB,aAAa,QAAQ;AAAA,EACrB,UAAU,QAAQ;AAAA,EAClB,WAAW,QAAQ,YAAY,CAAC,GAAG,IAAI,CAAC,YACtC,iBAAiB,EAAE,QAAQ,CAAC,CAC7B;AAAA,EACD,QAAQ,QAAQ;AAClB;;;ACvBO,IAAM,MAAM,CAAC;AAAA,EAClB;AACF,MAGE,kBAAkB,WAAW;;;ACLxB,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AACF,MAIE,WAAW,QAAQ,IAAI,YAAY,EAAE,OAAO,KAAK,UAAU,KAAK,CAAC,CAAC","sourcesContent":["export { optimisticId } from '@/lib/optimistic/optimisticId'\nexport { serializeMessage } from '@/lib/messages/serializeMessage'\nexport { key as threadIdCookieKey } from '@/lib/threadIdCookies/key'\nexport { enqueueJson } from '@/lib/streams/enqueueJson'\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => (\n pick(runStep, [\n 'id',\n 'run_id',\n 'step_details',\n 'completed_at',\n 'cancelled_at',\n 'failed_at',\n 'status',\n ])\n)\n","import OpenAI from 'openai'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: OpenAI.Beta.Threads.Messages.Message & {\n runSteps?: OpenAI.Beta.Threads.Runs.RunStep[]\n }\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => (\n serializeRunStep({ runStep })\n )),\n status: message.status,\n})\n","export const key = ({\n assistantId,\n}: {\n assistantId: string\n}) => (\n `superinterface-${assistantId}-threadId`\n)\n","export const enqueueJson = ({\n controller,\n value,\n}: {\n controller: ReadableStreamDefaultController\n value: any\n}) => (\n controller.enqueue(new TextEncoder().encode(JSON.stringify(value)))\n)\n"]}
1
+ {"version":3,"sources":["/Users/domas/Developer/supercorp/superinterface/packages/react/dist/utils.cjs","../src/utils.ts","../src/lib/optimistic/optimisticId.ts","../src/lib/runSteps/serializeRunStep.ts","../src/lib/messages/serializeMessage.ts","../src/lib/threadIdCookies/key.ts","../src/lib/streams/enqueueJson.ts"],"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key2","call","__toCommonJS","mod","value","utils_exports","enqueueJson","optimisticId","serializeMessage","threadIdCookieKey","key","module","exports","import_radash","require","uid","serializeRunStep","runStep","import_radash2","pick","message","id","role","created_at","content","run_id","assistant_id","thread_id","attachments","metadata","runSteps","map","status","assistantId","controller","enqueue","TextEncoder","encode","JSON","stringify"],"mappings":"AAAA;;;;;AACA,IAAIA,YAAYC,OAAOC,cAAc;AACrC,IAAIC,mBAAmBF,OAAOG,wBAAwB;AACtD,IAAIC,oBAAoBJ,OAAOK,mBAAmB;AAClD,IAAIC,eAAeN,OAAOO,SAAS,CAACC,cAAc;AAClD,IAAIC,WAAW,SAACC,QAAQC;IACtB,IAAK,IAAIC,QAAQD,IACfZ,UAAUW,QAAQE,MAAM;QAAEC,KAAKF,GAAG,CAACC,KAAK;QAAEE,YAAY;IAAK;AAC/D;AACA,IAAIC,cAAc,SAACC,IAAIC,MAAMC,QAAQC;IACnC,IAAIF,QAAQ,CAAA,OAAOA,qCAAP,SAAOA,KAAG,MAAM,YAAY,OAAOA,SAAS,YAAY;YAC7D,kCAAA,2BAAA;;;gBAAA,IAAIG,OAAJ;gBACH,IAAI,CAACd,aAAae,IAAI,CAACL,IAAII,SAASA,SAASF,QAC3CnB,UAAUiB,IAAII,MAAM;oBAAEP,KAAK;+BAAMI,IAAI,CAACG,KAAK;;oBAAEN,YAAY,CAAEK,CAAAA,OAAOjB,iBAAiBe,MAAMG,KAAI,KAAMD,KAAKL,UAAU;gBAAC;;YAFvH,QAAK,YAAYV,kBAAkBa,0BAA9B,SAAA,6BAAA,QAAA,yBAAA;;YAAA;YAAA;;;qBAAA,6BAAA;oBAAA;;;oBAAA;0BAAA;;;;IAGP;IACA,OAAOD;AACT;AACA,IAAIM,eAAe,SAACC;WAAQR,YAAYhB,UAAU,CAAC,GAAG,cAAc;QAAEyB,OAAO;IAAK,IAAID;;AAEtF,eAAe;ACnBf,IAAAE,gBAAA,CAAA;AAAAhB,SAAAgB,eAAA;IAAAC,aAAA;eAAAA;;IAAAC,cAAA;eAAAA;;IAAAC,kBAAA;eAAAA;;IAAAC,mBAAA;eAAAC;;AAAA;AAAAC,OAAAC,OAAA,GAAAV,aAAAG;AD6BA,qCAAqC;AE7BrC,IAAAQ,gBAAoBC,QAAA;AAEb,IAAMP,eAAe;WAC1B,IAAW,OAAX,CAAA,GAAIM,cAAAE,GAAA,EAAI;;AF8BV,uCAAuC;AGjCvC,IAAAF,iBAAqBC,QAAA;AAGd,IAAME,mBAAmB;QAC9BC,gBAAAA;WACF,CAAA,GAGEC,eAAAC,IAAA,EAAKF,SAAS;QACZ;QACA;QACA;QACA;QACA;QACA;QACA;KACD;;AH+BH,uCAAuC;AI5ChC,IAAMT,mBAAmB;QAC9BY,gBAAAA;QAeWA;WAVN;QACLC,IAAID,QAAQC,EAAA;QACZC,MAAMF,QAAQE,IAAA;QACdC,YAAYH,QAAQG,UAAA;QACpBC,SAASJ,QAAQI,OAAA;QACjBC,QAAQL,QAAQK,MAAA;QAChBC,cAAcN,QAAQM,YAAA;QACtBC,WAAWP,QAAQO,SAAA;QACnBC,aAAaR,QAAQQ,WAAA;QACrBC,UAAUT,QAAQS,QAAA;QAClBC,UAAA,AAAWV,CAAAA,CAAAA,oBAAAA,QAAQU,QAAA,cAARV,+BAAAA,oBAAoB,EAAC,EAAGW,GAAA,CAAI,SAACd;mBACtCD,iBAAiB;gBAAEC,SAAAA;YAAQ;;QAE7Be,QAAQZ,QAAQY,MAAA;IAClB;;AJyCA,iCAAiC;AKhE1B,IAAMtB,MAAM;QACjBuB,oBAAAA;WAIA,kBAA6B,OAAXA,aAAW;;ALgE/B,iCAAiC;AMrE1B,IAAM3B,cAAc;QACzB4B,mBAAAA,YACA9B,cAAAA;WAKA8B,WAAWC,OAAA,CAAQ,IAAIC,cAAcC,MAAA,CAAOC,KAAKC,SAAA,CAAUnC;;ANmE7D,6DAA6D;AAC7D,KAAMO,CAAAA,OAAOC,OAAO,GAAG;IACrBN,aAAAA;IACAC,cAAAA;IACAC,kBAAAA;IACAC,mBAAAA;AACF,CAAA","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key2 of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key2) && key2 !== except)\n __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/utils.ts\nvar utils_exports = {};\n__export(utils_exports, {\n enqueueJson: () => enqueueJson,\n optimisticId: () => optimisticId,\n serializeMessage: () => serializeMessage,\n threadIdCookieKey: () => key\n});\nmodule.exports = __toCommonJS(utils_exports);\n\n// src/lib/optimistic/optimisticId.ts\nvar import_radash = require(\"radash\");\nvar optimisticId = () => `-${(0, import_radash.uid)(24)}`;\n\n// src/lib/runSteps/serializeRunStep.ts\nvar import_radash2 = require(\"radash\");\nvar serializeRunStep = ({\n runStep\n}) => (0, import_radash2.pick)(runStep, [\n \"id\",\n \"run_id\",\n \"step_details\",\n \"completed_at\",\n \"cancelled_at\",\n \"failed_at\",\n \"status\"\n]);\n\n// src/lib/messages/serializeMessage.ts\nvar serializeMessage = ({\n message\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => serializeRunStep({ runStep })),\n status: message.status\n});\n\n// src/lib/threadIdCookies/key.ts\nvar key = ({\n assistantId\n}) => `superinterface-${assistantId}-threadId`;\n\n// src/lib/streams/enqueueJson.ts\nvar enqueueJson = ({\n controller,\n value\n}) => controller.enqueue(new TextEncoder().encode(JSON.stringify(value)));\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n enqueueJson,\n optimisticId,\n serializeMessage,\n threadIdCookieKey\n});\n","export { optimisticId } from '@/lib/optimistic/optimisticId'\nexport { serializeMessage } from '@/lib/messages/serializeMessage'\nexport { key as threadIdCookieKey } from '@/lib/threadIdCookies/key'\nexport { enqueueJson } from '@/lib/streams/enqueueJson'\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => (\n pick(runStep, [\n 'id',\n 'run_id',\n 'step_details',\n 'completed_at',\n 'cancelled_at',\n 'failed_at',\n 'status',\n ])\n)\n","import OpenAI from 'openai'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: OpenAI.Beta.Threads.Messages.Message & {\n runSteps?: OpenAI.Beta.Threads.Runs.RunStep[]\n }\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => (\n serializeRunStep({ runStep })\n )),\n status: message.status,\n})\n","export const key = ({\n assistantId,\n}: {\n assistantId: string\n}) => (\n `superinterface-${assistantId}-threadId`\n)\n","export const enqueueJson = ({\n controller,\n value,\n}: {\n controller: ReadableStreamDefaultController\n value: any\n}) => (\n controller.enqueue(new TextEncoder().encode(JSON.stringify(value)))\n)\n"]}
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/lib/optimistic/optimisticId.ts","../src/lib/runSteps/serializeRunStep.ts","../src/lib/messages/serializeMessage.ts","../src/lib/threadIdCookies/key.ts","../src/lib/streams/enqueueJson.ts"],"names":[],"mappings":";AAAA,SAAS,WAAW;AAEb,IAAM,eAAe,MAC1B,IAAI,IAAI,EAAE,CAAC;;;ACHb,SAAS,YAAY;AAGd,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AACF,MAGE,KAAK,SAAS;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;ACbI,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AACF,OAIO;AAAA,EACL,IAAI,QAAQ;AAAA,EACZ,MAAM,QAAQ;AAAA,EACd,YAAY,QAAQ;AAAA,EACpB,SAAS,QAAQ;AAAA,EACjB,QAAQ,QAAQ;AAAA,EAChB,cAAc,QAAQ;AAAA,EACtB,WAAW,QAAQ;AAAA,EACnB,aAAa,QAAQ;AAAA,EACrB,UAAU,QAAQ;AAAA,EAClB,WAAW,QAAQ,YAAY,CAAC,GAAG,IAAI,CAAC,YACtC,iBAAiB,EAAE,QAAQ,CAAC,CAC7B;AAAA,EACD,QAAQ,QAAQ;AAClB;;;ACvBO,IAAM,MAAM,CAAC;AAAA,EAClB;AACF,MAGE,kBAAkB,WAAW;;;ACLxB,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AACF,MAIE,WAAW,QAAQ,IAAI,YAAY,EAAE,OAAO,KAAK,UAAU,KAAK,CAAC,CAAC","sourcesContent":["import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => (\n pick(runStep, [\n 'id',\n 'run_id',\n 'step_details',\n 'completed_at',\n 'cancelled_at',\n 'failed_at',\n 'status',\n ])\n)\n","import OpenAI from 'openai'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: OpenAI.Beta.Threads.Messages.Message & {\n runSteps?: OpenAI.Beta.Threads.Runs.RunStep[]\n }\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => (\n serializeRunStep({ runStep })\n )),\n status: message.status,\n})\n","export const key = ({\n assistantId,\n}: {\n assistantId: string\n}) => (\n `superinterface-${assistantId}-threadId`\n)\n","export const enqueueJson = ({\n controller,\n value,\n}: {\n controller: ReadableStreamDefaultController\n value: any\n}) => (\n controller.enqueue(new TextEncoder().encode(JSON.stringify(value)))\n)\n"]}
1
+ {"version":3,"sources":["/Users/domas/Developer/supercorp/superinterface/packages/react/dist/utils.js","../src/lib/optimistic/optimisticId.ts","../src/lib/runSteps/serializeRunStep.ts","../src/lib/messages/serializeMessage.ts","../src/lib/threadIdCookies/key.ts","../src/lib/streams/enqueueJson.ts"],"names":["uid","optimisticId","pick","serializeRunStep","runStep","serializeMessage","message","id","role","created_at","content","run_id","assistant_id","thread_id","attachments","metadata","runSteps","map","status","key","assistantId","enqueueJson","controller","value","enqueue","TextEncoder","encode","JSON","stringify","threadIdCookieKey"],"mappings":"AAAA,qCAAqC;ACArC,SAASA,GAAA,QAAW,SAAA;AAEb,IAAMC,eAAe;WAC1B,IAAW,OAAPD,IAAI;;ADCV,uCAAuC;AEJvC,SAASE,IAAA,QAAY,SAAA;AAGd,IAAMC,mBAAmB;QAC9BC,gBAAAA;WAIAF,KAAKE,SAAS;QACZ;QACA;QACA;QACA;QACA;QACA;QACA;KACD;;AFEH,uCAAuC;AGfhC,IAAMC,mBAAmB;QAC9BC,gBAAAA;QAeWA;WAVN;QACLC,IAAID,QAAQC,EAAA;QACZC,MAAMF,QAAQE,IAAA;QACdC,YAAYH,QAAQG,UAAA;QACpBC,SAASJ,QAAQI,OAAA;QACjBC,QAAQL,QAAQK,MAAA;QAChBC,cAAcN,QAAQM,YAAA;QACtBC,WAAWP,QAAQO,SAAA;QACnBC,aAAaR,QAAQQ,WAAA;QACrBC,UAAUT,QAAQS,QAAA;QAClBC,UAAA,AAAWV,CAAAA,CAAAA,oBAAAA,QAAQU,QAAA,cAARV,+BAAAA,oBAAoB,EAAC,EAAGW,GAAA,CAAI,SAACb;mBACtCD,iBAAiB;gBAAEC,SAAAA;YAAQ;;QAE7Bc,QAAQZ,QAAQY,MAAA;IAClB;;AHYA,iCAAiC;AInC1B,IAAMC,MAAM;QACjBC,oBAAAA;WAIA,kBAA6B,OAAXA,aAAW;;AJmC/B,iCAAiC;AKxC1B,IAAMC,cAAc;QACzBC,mBAAAA,YACAC,cAAAA;WAKAD,WAAWE,OAAA,CAAQ,IAAIC,cAAcC,MAAA,CAAOC,KAAKC,SAAA,CAAUL;;ALsC7D,SACEF,WAAW,EACXpB,YAAY,EACZI,gBAAgB,EAChBc,OAAOU,iBAAiB,GACxB","sourcesContent":["// src/lib/optimistic/optimisticId.ts\nimport { uid } from \"radash\";\nvar optimisticId = () => `-${uid(24)}`;\n\n// src/lib/runSteps/serializeRunStep.ts\nimport { pick } from \"radash\";\nvar serializeRunStep = ({\n runStep\n}) => pick(runStep, [\n \"id\",\n \"run_id\",\n \"step_details\",\n \"completed_at\",\n \"cancelled_at\",\n \"failed_at\",\n \"status\"\n]);\n\n// src/lib/messages/serializeMessage.ts\nvar serializeMessage = ({\n message\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => serializeRunStep({ runStep })),\n status: message.status\n});\n\n// src/lib/threadIdCookies/key.ts\nvar key = ({\n assistantId\n}) => `superinterface-${assistantId}-threadId`;\n\n// src/lib/streams/enqueueJson.ts\nvar enqueueJson = ({\n controller,\n value\n}) => controller.enqueue(new TextEncoder().encode(JSON.stringify(value)));\nexport {\n enqueueJson,\n optimisticId,\n serializeMessage,\n key as threadIdCookieKey\n};\n","import { uid } from 'radash'\n\nexport const optimisticId = () => (\n `-${uid(24)}`\n)\n","import { pick } from 'radash'\nimport OpenAI from 'openai'\n\nexport const serializeRunStep = ({\n runStep,\n}: {\n runStep: OpenAI.Beta.Threads.Runs.RunStep\n}) => (\n pick(runStep, [\n 'id',\n 'run_id',\n 'step_details',\n 'completed_at',\n 'cancelled_at',\n 'failed_at',\n 'status',\n ])\n)\n","import OpenAI from 'openai'\nimport { serializeRunStep } from '@/lib/runSteps/serializeRunStep'\n\nexport const serializeMessage = ({\n message,\n}: {\n message: OpenAI.Beta.Threads.Messages.Message & {\n runSteps?: OpenAI.Beta.Threads.Runs.RunStep[]\n }\n}) => ({\n id: message.id,\n role: message.role,\n created_at: message.created_at,\n content: message.content,\n run_id: message.run_id,\n assistant_id: message.assistant_id,\n thread_id: message.thread_id,\n attachments: message.attachments,\n metadata: message.metadata,\n runSteps: (message.runSteps ?? []).map((runStep) => (\n serializeRunStep({ runStep })\n )),\n status: message.status,\n})\n","export const key = ({\n assistantId,\n}: {\n assistantId: string\n}) => (\n `superinterface-${assistantId}-threadId`\n)\n","export const enqueueJson = ({\n controller,\n value,\n}: {\n controller: ReadableStreamDefaultController\n value: any\n}) => (\n controller.enqueue(new TextEncoder().encode(JSON.stringify(value)))\n)\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superinterface/react",
3
- "version": "3.0.2",
3
+ "version": "3.2.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -19,25 +19,25 @@
19
19
  "build": "tsup"
20
20
  },
21
21
  "dependencies": {
22
- "@hookform/resolvers": "^3.9.0",
23
- "@radix-ui/react-icons": "^1.3.0",
24
- "@radix-ui/react-toast": "^1.2.1",
22
+ "@hookform/resolvers": "^3.9.1",
23
+ "@radix-ui/react-icons": "^1.3.2",
24
+ "@radix-ui/react-toast": "^1.2.2",
25
25
  "@streamparser/json-whatwg": "^0.0.21",
26
26
  "@vidstack/react": "^1.12.12",
27
- "compromise": "^14.13.0",
28
- "dayjs": "^1.11.11",
27
+ "compromise": "^14.14.2",
28
+ "dayjs": "^1.11.13",
29
29
  "detect-browser": "^5.3.0",
30
30
  "howler": "^2.2.4",
31
31
  "js-cookie": "^3.0.5",
32
32
  "lodash": "^4.17.21",
33
- "openai": "^4.52.3",
33
+ "openai": "^4.72.0",
34
34
  "p-map": "^7.0.2",
35
35
  "radash": "^12.1.0",
36
36
  "react-children-utilities": "^2.10.0",
37
- "react-hook-form": "^7.52.1",
38
- "react-intersection-observer": "^9.10.3",
37
+ "react-hook-form": "^7.53.2",
38
+ "react-intersection-observer": "^9.13.1",
39
39
  "react-markdown": "^9.0.1",
40
- "react-textarea-autosize": "^8.5.3",
40
+ "react-textarea-autosize": "^8.5.5",
41
41
  "react-use-audio-player": "^2.2.0",
42
42
  "regenerator-runtime": "^0.14.1",
43
43
  "remark-gfm": "^4.0.0",
@@ -51,16 +51,25 @@
51
51
  "@radix-ui/themes": ">=3.0.0",
52
52
  "@tanstack/query-core": ">=5.0.0",
53
53
  "@tanstack/react-query": ">=5.0.0",
54
+ "react": "*",
54
55
  "@types/react": "*",
55
- "@types/react-dom": "*",
56
- "react": ">=18.0.0"
56
+ "@types/react-dom": "*"
57
57
  },
58
58
  "devDependencies": {
59
- "@tanstack/react-query": ">=5.50.1",
60
- "@types/lodash": "^4.17.6",
61
- "@types/react": "^18.3.3",
62
- "@types/unist": "^3.0.2",
63
- "react": ">=18.3.1",
64
- "tsup": "^8.1.0"
59
+ "@tanstack/react-query": ">=5.60.6",
60
+ "@types/howler": "^2.2.12",
61
+ "@types/js-cookie": "^3.0.6",
62
+ "@types/lodash": "^4.17.13",
63
+ "@types/react": "npm:types-react@rc",
64
+ "@types/react-dom": "npm:types-react-dom@rc",
65
+ "react": "19.0.0-rc-66855b96-20241106",
66
+ "@types/unist": "^3.0.3",
67
+ "tsup": "^8.3.5",
68
+ "typedoc": "^0.26.11",
69
+ "typedoc-plugin-markdown": "^4.2.10"
70
+ },
71
+ "overrides": {
72
+ "react": "*",
73
+ "react-dom": "*"
65
74
  }
66
75
  }