@absolutejs/absolute 0.19.0-beta.236 → 0.19.0-beta.237
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.absolutejs/eslint-cache +1 -1
- package/.absolutejs/vue-tsc.tsbuildinfo +1 -1
- package/dist/ai/index.js +16 -3
- package/dist/ai/index.js.map +3 -3
- package/dist/types/ai.d.ts +2 -1
- package/package.json +1 -1
- package/types/ai.ts +2 -2
package/dist/ai/index.js
CHANGED
|
@@ -549,7 +549,8 @@ var aiChat = (config) => {
|
|
|
549
549
|
const handleUserMessage = async (ws, rawContent, rawConversationId) => {
|
|
550
550
|
const conversationId = rawConversationId ?? crypto.randomUUID();
|
|
551
551
|
const messageId = crypto.randomUUID();
|
|
552
|
-
const
|
|
552
|
+
const parsed = parseProvider(rawContent);
|
|
553
|
+
const { content, providerName } = parsed;
|
|
553
554
|
conversations.getOrCreate(conversationId);
|
|
554
555
|
const history = conversations.getHistory(conversationId);
|
|
555
556
|
const controller = conversations.getAbortController(conversationId);
|
|
@@ -560,7 +561,19 @@ var aiChat = (config) => {
|
|
|
560
561
|
role: "user",
|
|
561
562
|
timestamp: Date.now()
|
|
562
563
|
});
|
|
563
|
-
const
|
|
564
|
+
const resolveModel = () => {
|
|
565
|
+
if (parsed.model) {
|
|
566
|
+
return parsed.model;
|
|
567
|
+
}
|
|
568
|
+
if (typeof config.model === "string") {
|
|
569
|
+
return config.model;
|
|
570
|
+
}
|
|
571
|
+
if (typeof config.model === "function") {
|
|
572
|
+
return config.model(providerName);
|
|
573
|
+
}
|
|
574
|
+
return providerName;
|
|
575
|
+
};
|
|
576
|
+
const model = resolveModel();
|
|
564
577
|
await streamAI(ws, conversationId, messageId, {
|
|
565
578
|
maxTurns: config.maxTurns,
|
|
566
579
|
messages: [...history, { content, role: "user" }],
|
|
@@ -610,5 +623,5 @@ export {
|
|
|
610
623
|
aiChat
|
|
611
624
|
};
|
|
612
625
|
|
|
613
|
-
//# debugId=
|
|
626
|
+
//# debugId=517CC75DBB05B33964756E2164756E21
|
|
614
627
|
//# sourceMappingURL=index.js.map
|
package/dist/ai/index.js.map
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"sources": ["../types/typeGuards.ts", "../src/plugins/aiChat.ts", "../src/ai/protocol.ts", "../src/ai/conversationManager.ts", "../src/ai/streamAI.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { AIClientMessage, AIServerMessage } from './ai';\nimport type { HMRClientMessage } from './messages';\n\n/* Type guard for AI client messages */\nexport const isValidAIClientMessage = (\n\tdata: unknown\n): data is AIClientMessage => {\n\tif (!data || typeof data !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (!('type' in data) || typeof data.type !== 'string') {\n\t\treturn false;\n\t}\n\n\tswitch (data.type) {\n\t\tcase 'message':\n\t\t\treturn 'content' in data && typeof data.content === 'string';\n\t\tcase 'cancel':\n\t\t\treturn (\n\t\t\t\t'conversationId' in data &&\n\t\t\t\ttypeof data.conversationId === 'string'\n\t\t\t);\n\t\tcase 'branch':\n\t\t\treturn (\n\t\t\t\t'messageId' in data &&\n\t\t\t\ttypeof data.messageId === 'string' &&\n\t\t\t\t'content' in data &&\n\t\t\t\ttypeof data.content === 'string' &&\n\t\t\t\t'conversationId' in data &&\n\t\t\t\ttypeof data.conversationId === 'string'\n\t\t\t);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n\n/* Type guard for AI server messages */\nexport const isValidAIServerMessage = (\n\tdata: unknown\n): data is AIServerMessage => {\n\tif (!data || typeof data !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (!('type' in data) || typeof data.type !== 'string') {\n\t\treturn false;\n\t}\n\n\tswitch (data.type) {\n\t\tcase 'chunk':\n\t\t\treturn (\n\t\t\t\t'content' in data &&\n\t\t\t\ttypeof data.content === 'string' &&\n\t\t\t\t'messageId' in data &&\n\t\t\t\t'conversationId' in data\n\t\t\t);\n\t\tcase 'tool_status':\n\t\t\treturn (\n\t\t\t\t'name' in data &&\n\t\t\t\t'status' in data &&\n\t\t\t\t'messageId' in data &&\n\t\t\t\t'conversationId' in data\n\t\t\t);\n\t\tcase 'complete':\n\t\t\treturn 'messageId' in data && 'conversationId' in data;\n\t\tcase 'error':\n\t\t\treturn 'message' in data && typeof data.message === 'string';\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n\n/* Type guard for HMR client messages */\nexport const isValidHMRClientMessage = (\n\tdata: unknown\n): data is HMRClientMessage => {\n\tif (!data || typeof data !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (!('type' in data) || typeof data.type !== 'string') {\n\t\treturn false;\n\t}\n\n\tswitch (data.type) {\n\t\tcase 'ping':\n\t\t\treturn true;\n\t\tcase 'ready':\n\t\t\treturn true;\n\t\tcase 'request-rebuild':\n\t\t\treturn true;\n\t\tcase 'hydration-error':\n\t\t\treturn true;\n\t\tcase 'hmr-timing':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n",
|
|
6
|
-
"import { Elysia } from 'elysia';\nimport type { AIChatPluginConfig } from '../../types/ai';\nimport { createConversationManager } from '../ai/conversationManager';\nimport { parseAIMessage } from '../ai/protocol';\nimport { streamAI } from '../ai/streamAI';\n\nconst DEFAULT_PATH = '/chat';\nconst MAX_PREFIX_LEN = 12;\n\nconst defaultParseProvider = (content: string) => {\n\tconst colonIdx = content.indexOf(':');\n\tconst hasPrefix = colonIdx > 0 && colonIdx < MAX_PREFIX_LEN;\n\n\treturn {\n\t\tcontent: hasPrefix ? content.slice(colonIdx + 1) : content,\n\t\tproviderName: hasPrefix ? content.slice(0, colonIdx) : 'anthropic'\n\t};\n};\n\nexport const aiChat = (config: AIChatPluginConfig) => {\n\tconst path = config.path ?? DEFAULT_PATH;\n\tconst conversations = createConversationManager();\n\tconst parseProvider = config.parseProvider ?? defaultParseProvider;\n\n\tconst handleCancel = (conversationId: string) => {\n\t\tconversations.abort(conversationId);\n\t};\n\n\tconst handleBranch = (\n\t\tws: { send: (data: string) => void },\n\t\tmessageId: string,\n\t\tconversationId: string\n\t) => {\n\t\tconst newConvId = conversations.branch(messageId, conversationId);\n\n\t\tif (newConvId) {\n\t\t\tws.send(\n\t\t\t\tJSON.stringify({ conversationId: newConvId, type: 'branched' })\n\t\t\t);\n\t\t}\n\t};\n\n\tconst handleUserMessage = async (\n\t\tws: { readyState: number; send: (data: string) => void },\n\t\trawContent: string,\n\t\trawConversationId?: string\n\t) => {\n\t\tconst conversationId = rawConversationId ?? crypto.randomUUID();\n\t\tconst messageId = crypto.randomUUID();\n\t\tconst { content
|
|
6
|
+
"import { Elysia } from 'elysia';\nimport type { AIChatPluginConfig } from '../../types/ai';\nimport { createConversationManager } from '../ai/conversationManager';\nimport { parseAIMessage } from '../ai/protocol';\nimport { streamAI } from '../ai/streamAI';\n\nconst DEFAULT_PATH = '/chat';\nconst MAX_PREFIX_LEN = 12;\n\nconst defaultParseProvider = (content: string) => {\n\tconst colonIdx = content.indexOf(':');\n\tconst hasPrefix = colonIdx > 0 && colonIdx < MAX_PREFIX_LEN;\n\n\treturn {\n\t\tcontent: hasPrefix ? content.slice(colonIdx + 1) : content,\n\t\tproviderName: hasPrefix ? content.slice(0, colonIdx) : 'anthropic'\n\t};\n};\n\nexport const aiChat = (config: AIChatPluginConfig) => {\n\tconst path = config.path ?? DEFAULT_PATH;\n\tconst conversations = createConversationManager();\n\tconst parseProvider = config.parseProvider ?? defaultParseProvider;\n\n\tconst handleCancel = (conversationId: string) => {\n\t\tconversations.abort(conversationId);\n\t};\n\n\tconst handleBranch = (\n\t\tws: { send: (data: string) => void },\n\t\tmessageId: string,\n\t\tconversationId: string\n\t) => {\n\t\tconst newConvId = conversations.branch(messageId, conversationId);\n\n\t\tif (newConvId) {\n\t\t\tws.send(\n\t\t\t\tJSON.stringify({ conversationId: newConvId, type: 'branched' })\n\t\t\t);\n\t\t}\n\t};\n\n\tconst handleUserMessage = async (\n\t\tws: { readyState: number; send: (data: string) => void },\n\t\trawContent: string,\n\t\trawConversationId?: string\n\t) => {\n\t\tconst conversationId = rawConversationId ?? crypto.randomUUID();\n\t\tconst messageId = crypto.randomUUID();\n\t\tconst parsed: { content: string; model?: string; providerName: string } =\n\t\t\tparseProvider(rawContent);\n\t\tconst { content, providerName } = parsed;\n\n\t\tconversations.getOrCreate(conversationId);\n\t\tconst history = conversations.getHistory(conversationId);\n\t\tconst controller = conversations.getAbortController(conversationId);\n\n\t\tconversations.appendMessage(conversationId, {\n\t\t\tcontent,\n\t\t\tconversationId,\n\t\t\tid: messageId,\n\t\t\trole: 'user',\n\t\t\ttimestamp: Date.now()\n\t\t});\n\n\t\tconst resolveModel = () => {\n\t\t\tif (parsed.model) {\n\t\t\t\treturn parsed.model;\n\t\t\t}\n\n\t\t\tif (typeof config.model === 'string') {\n\t\t\t\treturn config.model;\n\t\t\t}\n\n\t\t\tif (typeof config.model === 'function') {\n\t\t\t\treturn config.model(providerName);\n\t\t\t}\n\n\t\t\treturn providerName;\n\t\t};\n\n\t\tconst model = resolveModel();\n\n\t\tawait streamAI(ws, conversationId, messageId, {\n\t\t\tmaxTurns: config.maxTurns,\n\t\t\tmessages: [...history, { content, role: 'user' }],\n\t\t\tmodel,\n\t\t\tprovider: config.provider(providerName),\n\t\t\tsignal: controller.signal,\n\t\t\tsystemPrompt: config.systemPrompt,\n\t\t\ttools: config.tools,\n\t\t\tonComplete: (fullResponse, usage) => {\n\t\t\t\tconversations.appendMessage(conversationId, {\n\t\t\t\t\tcontent: fullResponse,\n\t\t\t\t\tconversationId,\n\t\t\t\t\tid: crypto.randomUUID(),\n\t\t\t\t\trole: 'assistant',\n\t\t\t\t\ttimestamp: Date.now()\n\t\t\t\t});\n\t\t\t\tconfig.onComplete?.(conversationId, fullResponse, usage);\n\t\t\t}\n\t\t});\n\t};\n\n\treturn new Elysia().ws(path, {\n\t\tmessage: async (ws, raw) => {\n\t\t\tconst msg = parseAIMessage(raw);\n\n\t\t\tif (!msg) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (msg.type === 'cancel' && msg.conversationId) {\n\t\t\t\thandleCancel(msg.conversationId);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (msg.type === 'branch') {\n\t\t\t\thandleBranch(ws, msg.messageId, msg.conversationId);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (msg.type === 'message') {\n\t\t\t\tawait handleUserMessage(ws, msg.content, msg.conversationId);\n\t\t\t}\n\t\t}\n\t});\n};\n",
|
|
7
7
|
"import type { AIServerMessage } from '../../types/ai';\nimport { isValidAIClientMessage } from '../../types/typeGuards';\n\nexport const generateId = () => crypto.randomUUID();\n\nexport const parseAIMessage = (raw: unknown) => {\n\tif (raw === null || raw === undefined) {\n\t\treturn null;\n\t}\n\n\tlet text: string;\n\n\tif (typeof raw === 'string') {\n\t\ttext = raw;\n\t} else if (raw instanceof ArrayBuffer) {\n\t\ttext = new TextDecoder().decode(raw);\n\t} else if (ArrayBuffer.isView(raw)) {\n\t\ttext = new TextDecoder().decode(raw);\n\t} else if (typeof raw === 'object') {\n\t\tif (isValidAIClientMessage(raw)) {\n\t\t\treturn raw;\n\t\t}\n\n\t\treturn null;\n\t} else {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(text);\n\n\t\tif (isValidAIClientMessage(parsed)) {\n\t\t\treturn parsed;\n\t\t}\n\n\t\treturn null;\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nexport const serializeAIMessage = (msg: AIServerMessage) => JSON.stringify(msg);\n",
|
|
8
8
|
"import type {\n\tAIConversation,\n\tAIMessage,\n\tAIProviderMessage\n} from '../../types/ai';\nimport { generateId } from './protocol';\n\nconst NOT_FOUND = -1;\n\nexport const createConversationManager = () => {\n\tconst conversations = new Map<string, AIConversation>();\n\n\tconst getOrCreate = (conversationId?: string) => {\n\t\tconst id = conversationId ?? generateId();\n\t\tlet conversation = conversations.get(id);\n\n\t\tif (!conversation) {\n\t\t\tconversation = { id, messages: [] };\n\t\t\tconversations.set(id, conversation);\n\t\t}\n\n\t\treturn conversation;\n\t};\n\n\tconst appendMessage = (conversationId: string, message: AIMessage) => {\n\t\tconst conversation = getOrCreate(conversationId);\n\t\tconversation.messages.push(message);\n\t};\n\n\tconst branch = (fromMessageId: string, sourceConversationId: string) => {\n\t\tconst source = conversations.get(sourceConversationId);\n\n\t\tif (!source) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst cutoffIndex = source.messages.findIndex(\n\t\t\t(msg) => msg.id === fromMessageId\n\t\t);\n\n\t\tif (cutoffIndex === NOT_FOUND) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst newId = generateId();\n\t\tconst branchedMessages = source.messages\n\t\t\t.slice(0, cutoffIndex + 1)\n\t\t\t.map((msg) => ({ ...msg, conversationId: newId }));\n\n\t\tconst newConversation: AIConversation = {\n\t\t\tid: newId,\n\t\t\tmessages: branchedMessages\n\t\t};\n\t\tconversations.set(newId, newConversation);\n\n\t\treturn newId;\n\t};\n\n\tconst emptyHistory: AIProviderMessage[] = [];\n\n\tconst getHistory = (conversationId: string) => {\n\t\tconst conversation = conversations.get(conversationId);\n\n\t\tif (!conversation) {\n\t\t\treturn emptyHistory;\n\t\t}\n\n\t\tconst history: AIProviderMessage[] = conversation.messages.map(\n\t\t\t(msg) => ({\n\t\t\t\tcontent: msg.content,\n\t\t\t\trole: msg.role\n\t\t\t})\n\t\t);\n\n\t\treturn history;\n\t};\n\n\tconst getAbortController = (conversationId: string) => {\n\t\tconst conversation = getOrCreate(conversationId);\n\t\tconst controller = new AbortController();\n\t\tconversation.activeStreamAbort = controller;\n\n\t\treturn controller;\n\t};\n\n\tconst abort = (conversationId: string) => {\n\t\tconst conversation = conversations.get(conversationId);\n\n\t\tif (conversation?.activeStreamAbort) {\n\t\t\tconversation.activeStreamAbort.abort();\n\t\t\tconversation.activeStreamAbort = undefined;\n\t\t}\n\t};\n\n\tconst get = (conversationId: string) => conversations.get(conversationId);\n\n\tconst remove = (conversationId: string) =>\n\t\tconversations.delete(conversationId);\n\n\treturn {\n\t\tabort,\n\t\tappendMessage,\n\t\tbranch,\n\t\tget,\n\t\tgetAbortController,\n\t\tgetHistory,\n\t\tgetOrCreate,\n\t\tremove\n\t};\n};\n",
|
|
9
9
|
"import type {\n\tAIChunk,\n\tAIProviderMessage,\n\tAIServerMessage,\n\tAITextChunk,\n\tAIToolMap,\n\tAIUsage,\n\tAIWebSocket,\n\tStreamAIOptions\n} from '../../types/ai';\nimport { serializeAIMessage } from './protocol';\n\nconst WS_OPEN = 1;\nconst BACKPRESSURE_THRESHOLD = 1_048_576;\nconst BACKPRESSURE_DELAY = 10;\nconst DEFAULT_MAX_TURNS = 10;\nconst INITIAL_TURN = 0;\n\nconst delay = (milliseconds: number) =>\n\t// eslint-disable-next-line promise/avoid-new\n\tnew Promise<void>((resolve) => setTimeout(resolve, milliseconds));\n\nconst checkBackpressure = async (socket: AIWebSocket) => {\n\tif (!('raw' in socket)) {\n\t\treturn;\n\t}\n\n\tconst { raw } = socket;\n\n\tif (\n\t\traw &&\n\t\ttypeof raw === 'object' &&\n\t\t'bufferedAmount' in raw &&\n\t\ttypeof raw.bufferedAmount === 'number' &&\n\t\traw.bufferedAmount > BACKPRESSURE_THRESHOLD\n\t) {\n\t\tawait delay(BACKPRESSURE_DELAY);\n\t}\n};\n\nconst sendMessage = async (socket: AIWebSocket, msg: AIServerMessage) => {\n\tif (socket.readyState !== WS_OPEN) {\n\t\treturn false;\n\t}\n\n\tawait checkBackpressure(socket);\n\n\tsocket.send(serializeAIMessage(msg));\n\n\treturn true;\n};\n\nconst buildToolDefinitions = (tools: AIToolMap) =>\n\tObject.entries(tools).map(([name, def]) => ({\n\t\tdescription: def.description,\n\t\tinput_schema: def.input,\n\t\tname\n\t}));\n\nconst extractTextContent = (\n\tchunk: AITextChunk,\n\tonChunk?: (chunk: AITextChunk) => AITextChunk | void\n) => {\n\tif (!onChunk) {\n\t\treturn chunk.content;\n\t}\n\n\tconst transformed = onChunk(chunk);\n\n\tif (\n\t\ttransformed &&\n\t\ttypeof transformed === 'object' &&\n\t\t'content' in transformed\n\t) {\n\t\treturn transformed.content;\n\t}\n\n\treturn chunk.content;\n};\n\nconst sendToolRunning = async (\n\tsocket: AIWebSocket,\n\ttoolName: string,\n\ttoolInput: unknown,\n\tmessageId: string,\n\tconversationId: string\n) =>\n\tsendMessage(socket, {\n\t\tconversationId,\n\t\tinput: toolInput,\n\t\tmessageId,\n\t\tname: toolName,\n\t\tstatus: 'running',\n\t\ttype: 'tool_status'\n\t});\n\nconst sendToolComplete = async (\n\tsocket: AIWebSocket,\n\ttoolName: string,\n\tresult: string,\n\tmessageId: string,\n\tconversationId: string\n) =>\n\tsendMessage(socket, {\n\t\tconversationId,\n\t\tmessageId,\n\t\tname: toolName,\n\t\tresult,\n\t\tstatus: 'complete',\n\t\ttype: 'tool_status'\n\t});\n\nconst executeTool = async (\n\toptions: StreamAIOptions,\n\ttoolName: string,\n\ttoolInput: unknown\n) => {\n\tconst toolDef = options.tools?.[toolName];\n\n\tif (!toolDef) {\n\t\treturn `Error: unknown tool \"${toolName}\"`;\n\t}\n\n\ttry {\n\t\treturn await toolDef.handler(toolInput);\n\t} catch (err) {\n\t\treturn `Error: ${err instanceof Error ? err.message : String(err)}`;\n\t}\n};\n\nconst buildToolUseBlock = (\n\ttoolUseId: string,\n\ttoolName: string,\n\ttoolInput: unknown\n) => [\n\t{\n\t\tid: toolUseId,\n\t\tinput: toolInput,\n\t\tname: toolName,\n\t\ttype: 'tool_use' as const\n\t}\n];\n\nconst buildToolResultBlock = (toolUseId: string, result: string) => [\n\t{\n\t\tcontent: result,\n\t\ttool_use_id: toolUseId,\n\t\ttype: 'tool_result' as const\n\t}\n];\n\ntype ToolLoopState = {\n\tcurrentFullResponse: string;\n\tcurrentMessages: AIProviderMessage[];\n\tcurrentToolInput: unknown;\n\tcurrentToolName: string;\n\tcurrentToolUseId: string;\n\tcurrentTurn: number;\n\tcurrentUsage: AIUsage | undefined;\n};\n\ntype ToolLoopResult = {\n\tfullResponse: string;\n\tusage: AIUsage | undefined;\n};\n\nconst handleToolChunkText = (\n\tchunk: AITextChunk,\n\tstate: ToolLoopState,\n\toptions: StreamAIOptions,\n\tsocket: AIWebSocket,\n\tmessageId: string,\n\tconversationId: string\n) => {\n\tconst textContent = extractTextContent(chunk, options.onChunk);\n\tstate.currentFullResponse += textContent;\n\tsendMessage(socket, {\n\t\tcontent: textContent,\n\t\tconversationId,\n\t\tmessageId,\n\t\ttype: 'chunk'\n\t});\n};\n\nconst handleToolChunkToolUse = (\n\tchunk: AIChunk & { type: 'tool_use' },\n\tstate: ToolLoopState\n) => {\n\tstate.currentToolUseId = chunk.id;\n\tstate.currentToolName = chunk.name;\n\tstate.currentToolInput = chunk.input;\n};\n\nconst processToolChunk = (\n\tchunk: AIChunk,\n\tstate: ToolLoopState,\n\toptions: StreamAIOptions,\n\tsocket: AIWebSocket,\n\tmessageId: string,\n\tconversationId: string\n) => {\n\tlet hitAnotherTool = false;\n\n\tswitch (chunk.type) {\n\t\tcase 'text':\n\t\t\thandleToolChunkText(\n\t\t\t\tchunk,\n\t\t\t\tstate,\n\t\t\t\toptions,\n\t\t\t\tsocket,\n\t\t\t\tmessageId,\n\t\t\t\tconversationId\n\t\t\t);\n\t\t\tbreak;\n\n\t\tcase 'tool_use':\n\t\t\thandleToolChunkToolUse(chunk, state);\n\t\t\thitAnotherTool = true;\n\t\t\tbreak;\n\n\t\tcase 'done':\n\t\t\tstate.currentUsage = chunk.usage;\n\t\t\tbreak;\n\t}\n\n\treturn hitAnotherTool;\n};\n\nconst processToolTurn = async (\n\tsocket: AIWebSocket,\n\toptions: StreamAIOptions,\n\tstate: ToolLoopState,\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal\n) => {\n\tawait sendToolRunning(\n\t\tsocket,\n\t\tstate.currentToolName,\n\t\tstate.currentToolInput,\n\t\tmessageId,\n\t\tconversationId\n\t);\n\n\tconst result = await executeTool(\n\t\toptions,\n\t\tstate.currentToolName,\n\t\tstate.currentToolInput\n\t);\n\n\tawait sendToolComplete(\n\t\tsocket,\n\t\tstate.currentToolName,\n\t\tresult,\n\t\tmessageId,\n\t\tconversationId\n\t);\n\n\toptions.onToolUse?.(state.currentToolName, state.currentToolInput, result);\n\n\tstate.currentMessages.push({\n\t\tcontent: buildToolUseBlock(\n\t\t\tstate.currentToolUseId,\n\t\t\tstate.currentToolName,\n\t\t\tstate.currentToolInput\n\t\t),\n\t\trole: 'assistant'\n\t});\n\n\tstate.currentMessages.push({\n\t\tcontent: buildToolResultBlock(state.currentToolUseId, result),\n\t\trole: 'user'\n\t});\n\n\tconst toolDefs = options.tools\n\t\t? buildToolDefinitions(options.tools)\n\t\t: undefined;\n\n\tconst stream = options.provider.stream({\n\t\tmessages: state.currentMessages,\n\t\tmodel: options.model,\n\t\tsignal,\n\t\tsystemPrompt: options.systemPrompt,\n\t\ttools: toolDefs\n\t});\n\n\treturn consumeToolStream(\n\t\tstream,\n\t\tstate,\n\t\toptions,\n\t\tsocket,\n\t\tmessageId,\n\t\tconversationId,\n\t\tsignal\n\t);\n};\n\nconst consumeToolStream = async (\n\tstream: AsyncIterable<AIChunk>,\n\tstate: ToolLoopState,\n\toptions: StreamAIOptions,\n\tsocket: AIWebSocket,\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal\n) => {\n\tfor await (const chunk of stream) {\n\t\tif (signal.aborted) break;\n\n\t\tconst isToolHit = processToolChunk(\n\t\t\tchunk,\n\t\t\tstate,\n\t\t\toptions,\n\t\t\tsocket,\n\t\t\tmessageId,\n\t\t\tconversationId\n\t\t);\n\n\t\tif (isToolHit) return true;\n\t}\n\n\treturn false;\n};\n\nconst shouldContinueToolLoop = (\n\tstate: ToolLoopState,\n\tmaxTurns: number,\n\tsignal: AbortSignal\n) => state.currentTurn < maxTurns && !signal.aborted;\n\nconst executeToolLoop = async (\n\tsocket: AIWebSocket,\n\toptions: StreamAIOptions,\n\tmessages: AIProviderMessage[],\n\ttoolUseId: string,\n\ttoolName: string,\n\ttoolInput: unknown,\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal,\n\tfullResponse: string,\n\tturn: number\n): Promise<ToolLoopResult> => {\n\tconst maxTurns = options.maxTurns ?? DEFAULT_MAX_TURNS;\n\n\tconst state: ToolLoopState = {\n\t\tcurrentFullResponse: fullResponse,\n\t\tcurrentMessages: [...messages],\n\t\tcurrentToolInput: toolInput,\n\t\tcurrentToolName: toolName,\n\t\tcurrentToolUseId: toolUseId,\n\t\tcurrentTurn: turn,\n\t\tcurrentUsage: undefined\n\t};\n\n\twhile (shouldContinueToolLoop(state, maxTurns, signal)) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst hitAnotherTool = await processToolTurn(\n\t\t\tsocket,\n\t\t\toptions,\n\t\t\tstate,\n\t\t\tmessageId,\n\t\t\tconversationId,\n\t\t\tsignal\n\t\t);\n\n\t\tif (!hitAnotherTool) {\n\t\t\treturn {\n\t\t\t\tfullResponse: state.currentFullResponse,\n\t\t\t\tusage: state.currentUsage\n\t\t\t};\n\t\t}\n\n\t\tstate.currentTurn++;\n\t}\n\n\treturn {\n\t\tfullResponse: state.currentFullResponse,\n\t\tusage: state.currentUsage\n\t};\n};\n\nconst sendComplete = async (\n\tsocket: AIWebSocket,\n\tmessageId: string,\n\tconversationId: string,\n\tusage?: AIUsage\n) =>\n\tsendMessage(socket, {\n\t\tconversationId,\n\t\tmessageId,\n\t\ttype: 'complete',\n\t\tusage\n\t});\n\nconst sendError = async (\n\tsocket: AIWebSocket,\n\terr: unknown,\n\tmessageId: string,\n\tconversationId: string\n) =>\n\tsendMessage(socket, {\n\t\tconversationId,\n\t\tmessage: err instanceof Error ? err.message : String(err),\n\t\tmessageId,\n\t\ttype: 'error'\n\t});\n\nconst handleTextChunk = async (\n\tchunk: AITextChunk,\n\toptions: StreamAIOptions,\n\tsocket: AIWebSocket,\n\tmessageId: string,\n\tconversationId: string\n) => {\n\tconst textContent = extractTextContent(chunk, options.onChunk);\n\n\tawait sendMessage(socket, {\n\t\tcontent: textContent,\n\t\tconversationId,\n\t\tmessageId,\n\t\ttype: 'chunk'\n\t});\n\n\treturn textContent;\n};\n\nconst handleToolUseChunk = async (\n\tsocket: AIWebSocket,\n\toptions: StreamAIOptions,\n\tmessages: AIProviderMessage[],\n\tchunkId: string,\n\tchunkName: string,\n\tchunkInput: unknown,\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal,\n\tfullResponse: string\n) => {\n\tconst toolResult = await executeToolLoop(\n\t\tsocket,\n\t\toptions,\n\t\tmessages,\n\t\tchunkId,\n\t\tchunkName,\n\t\tchunkInput,\n\t\tmessageId,\n\t\tconversationId,\n\t\tsignal,\n\t\tfullResponse,\n\t\tINITIAL_TURN\n\t);\n\n\tawait sendComplete(socket, messageId, conversationId, toolResult.usage);\n\toptions.onComplete?.(toolResult.fullResponse, toolResult.usage);\n\n\treturn toolResult;\n};\n\nconst processStreamTextChunk = async (\n\tchunk: AITextChunk,\n\toptions: StreamAIOptions,\n\tsocket: AIWebSocket,\n\tmessageId: string,\n\tconversationId: string\n) => {\n\tconst textContent = await handleTextChunk(\n\t\tchunk,\n\t\toptions,\n\t\tsocket,\n\t\tmessageId,\n\t\tconversationId\n\t);\n\n\treturn textContent;\n};\n\nconst processStreamToolUseChunk = async (\n\tchunk: AIChunk & { type: 'tool_use' },\n\tsocket: AIWebSocket,\n\toptions: StreamAIOptions,\n\tmessages: AIProviderMessage[],\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal,\n\tfullResponse: string\n) => {\n\tawait handleToolUseChunk(\n\t\tsocket,\n\t\toptions,\n\t\tmessages,\n\t\tchunk.id,\n\t\tchunk.name,\n\t\tchunk.input,\n\t\tmessageId,\n\t\tconversationId,\n\t\tsignal,\n\t\tfullResponse\n\t);\n};\n\nconst processStream = async (\n\tsocket: AIWebSocket,\n\toptions: StreamAIOptions,\n\tmessages: AIProviderMessage[],\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal\n) => {\n\tconst toolDefs = options.tools\n\t\t? buildToolDefinitions(options.tools)\n\t\t: undefined;\n\n\tconst stream = options.provider.stream({\n\t\tmessages,\n\t\tmodel: options.model,\n\t\tsignal,\n\t\tsystemPrompt: options.systemPrompt,\n\t\ttools: toolDefs\n\t});\n\n\tconst result = await consumeStream(\n\t\tstream,\n\t\toptions,\n\t\tsocket,\n\t\tmessages,\n\t\tmessageId,\n\t\tconversationId,\n\t\tsignal\n\t);\n\n\tif (!result.earlyReturn) {\n\t\tawait sendComplete(socket, messageId, conversationId, result.usage);\n\t\toptions.onComplete?.(result.fullResponse, result.usage);\n\t}\n};\n\ntype ConsumeStreamResult = {\n\tearlyReturn: boolean;\n\tfullResponse: string;\n\tusage: AIUsage | undefined;\n};\n\nconst consumeStreamChunk = async (\n\tchunk: AIChunk,\n\toptions: StreamAIOptions,\n\tsocket: AIWebSocket,\n\tmessages: AIProviderMessage[],\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal,\n\tfullResponse: string\n) => {\n\tswitch (chunk.type) {\n\t\tcase 'text':\n\t\t\treturn processStreamTextChunk(\n\t\t\t\tchunk,\n\t\t\t\toptions,\n\t\t\t\tsocket,\n\t\t\t\tmessageId,\n\t\t\t\tconversationId\n\t\t\t);\n\n\t\tcase 'tool_use':\n\t\t\tawait processStreamToolUseChunk(\n\t\t\t\tchunk,\n\t\t\t\tsocket,\n\t\t\t\toptions,\n\t\t\t\tmessages,\n\t\t\t\tmessageId,\n\t\t\t\tconversationId,\n\t\t\t\tsignal,\n\t\t\t\tfullResponse\n\t\t\t);\n\n\t\t\treturn { earlyReturn: true, fullResponse, usage: undefined };\n\n\t\tcase 'done':\n\t\t\treturn { earlyReturn: false, fullResponse, usage: chunk.usage };\n\t}\n\n\treturn '';\n};\n\ntype ConsumeStreamState = {\n\tfullResponse: string;\n\tusage: AIUsage | undefined;\n};\n\nconst applyStreamChunkResult = (\n\tresult: ConsumeStreamResult | string,\n\tstate: ConsumeStreamState\n) => {\n\tif (typeof result === 'string') {\n\t\tstate.fullResponse += result;\n\n\t\treturn undefined;\n\t}\n\n\tif (result.earlyReturn) return result;\n\n\tstate.usage = result.usage;\n\n\treturn undefined;\n};\n\nconst consumeStream = async (\n\tstream: AsyncIterable<AIChunk>,\n\toptions: StreamAIOptions,\n\tsocket: AIWebSocket,\n\tmessages: AIProviderMessage[],\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal\n) => {\n\tconst state: ConsumeStreamState = { fullResponse: '', usage: undefined };\n\n\tfor await (const chunk of stream) {\n\t\tif (signal.aborted) break;\n\n\t\tconst result = await consumeStreamChunk(\n\t\t\tchunk,\n\t\t\toptions,\n\t\t\tsocket,\n\t\t\tmessages,\n\t\t\tmessageId,\n\t\t\tconversationId,\n\t\t\tsignal,\n\t\t\tstate.fullResponse\n\t\t);\n\t\tconst earlyExit = applyStreamChunkResult(result, state);\n\n\t\tif (earlyExit) return earlyExit;\n\t}\n\n\tconst finalResult: ConsumeStreamResult = {\n\t\tearlyReturn: false,\n\t\tfullResponse: state.fullResponse,\n\t\tusage: state.usage\n\t};\n\n\treturn finalResult;\n};\n\nexport const streamAI = async (\n\tsocket: AIWebSocket,\n\tconversationId: string,\n\tmessageId: string,\n\toptions: StreamAIOptions\n) => {\n\tconst signal = options.signal ?? new AbortController().signal;\n\n\tconst messages: AIProviderMessage[] = options.messages\n\t\t? [...options.messages]\n\t\t: [];\n\n\ttry {\n\t\tawait processStream(\n\t\t\tsocket,\n\t\t\toptions,\n\t\t\tmessages,\n\t\t\tmessageId,\n\t\t\tconversationId,\n\t\t\tsignal\n\t\t);\n\t} catch (err) {\n\t\tawait handleStreamError(socket, err, messageId, conversationId, signal);\n\t}\n};\n\nconst handleStreamError = async (\n\tsocket: AIWebSocket,\n\terr: unknown,\n\tmessageId: string,\n\tconversationId: string,\n\tsignal: AbortSignal\n) => {\n\tif (signal.aborted) {\n\t\tawait sendComplete(socket, messageId, conversationId);\n\n\t\treturn;\n\t}\n\n\tawait sendError(socket, err, messageId, conversationId);\n};\n"
|
|
10
10
|
],
|
|
11
|
-
"mappings": "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",
|
|
12
|
-
"debugId": "
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "517CC75DBB05B33964756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|
package/dist/types/ai.d.ts
CHANGED
|
@@ -184,12 +184,13 @@ export type AIWebSocket = {
|
|
|
184
184
|
export type AIChatPluginConfig = {
|
|
185
185
|
path?: string;
|
|
186
186
|
provider: (providerName: string) => AIProviderConfig;
|
|
187
|
-
model?: (providerName: string) => string;
|
|
187
|
+
model?: string | ((providerName: string) => string);
|
|
188
188
|
tools?: AIToolMap;
|
|
189
189
|
systemPrompt?: string;
|
|
190
190
|
maxTurns?: number;
|
|
191
191
|
parseProvider?: (content: string) => {
|
|
192
192
|
content: string;
|
|
193
|
+
model?: string;
|
|
193
194
|
providerName: string;
|
|
194
195
|
};
|
|
195
196
|
onComplete?: (conversationId: string, fullResponse: string, usage?: AIUsage) => void;
|
package/package.json
CHANGED
package/types/ai.ts
CHANGED
|
@@ -231,11 +231,11 @@ export type AIWebSocket = {
|
|
|
231
231
|
export type AIChatPluginConfig = {
|
|
232
232
|
path?: string;
|
|
233
233
|
provider: (providerName: string) => AIProviderConfig;
|
|
234
|
-
model?: (providerName: string) => string;
|
|
234
|
+
model?: string | ((providerName: string) => string);
|
|
235
235
|
tools?: AIToolMap;
|
|
236
236
|
systemPrompt?: string;
|
|
237
237
|
maxTurns?: number;
|
|
238
|
-
parseProvider?: (content: string) => { content: string; providerName: string };
|
|
238
|
+
parseProvider?: (content: string) => { content: string; model?: string; providerName: string };
|
|
239
239
|
onComplete?: (conversationId: string, fullResponse: string, usage?: AIUsage) => void;
|
|
240
240
|
};
|
|
241
241
|
|