assistant-stream 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-sdk.js.map +1 -1
- package/dist/ai-sdk.mjs +1 -1
- package/dist/ai-sdk.mjs.map +1 -1
- package/dist/chunk-C6LFLHS6.mjs +36 -0
- package/dist/chunk-C6LFLHS6.mjs.map +1 -0
- package/dist/index.mjs +929 -7
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/dist/chunk-7CCRZC5D.mjs +0 -969
- package/dist/chunk-7CCRZC5D.mjs.map +0 -1
package/dist/ai-sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ai-sdk.ts","../src/core/AssistantStream.ts","../src/core/utils/generateId.tsx","../src/ai-sdk/index.ts"],"sourcesContent":["export * from \"./ai-sdk/index\";\n","export type AssistantStream2 = {\n // kind: AssistantStreamKind;\n readable: ReadableStream<AssistantStreamChunk>;\n toResponse(\n format: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ): Response;\n toByteStream(\n format: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ): ReadableStream<Uint8Array>;\n tee(): [AssistantStream, AssistantStream];\n};\n\nexport type AssistantStreamChunk =\n | {\n type: \"text-delta\";\n textDelta: string;\n }\n | {\n type: \"tool-call-begin\";\n toolCallId: string;\n toolName: string;\n }\n | {\n type: \"tool-call-delta\";\n toolCallId: string;\n argsTextDelta: string;\n }\n | {\n type: \"tool-result\";\n toolCallId: string;\n result: any;\n };\n\nexport class AssistantStream {\n constructor(public readonly readable: ReadableStream<AssistantStreamChunk>) {\n this.readable = readable;\n }\n\n toResponse(\n transformer: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ) {\n return new Response(this.toByteStream(transformer));\n }\n\n static fromResponse(\n response: Response,\n transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>,\n ) {\n return AssistantStream.fromByteStream(response.body!, transformer);\n }\n\n toByteStream(\n transformer: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ) {\n return this.readable.pipeThrough(transformer);\n }\n\n static fromByteStream(\n readable: ReadableStream<Uint8Array>,\n transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>,\n ) {\n return new AssistantStream(readable.pipeThrough(transformer));\n }\n\n tee(): [AssistantStream, AssistantStream] {\n const [readable1, readable2] = this.readable.tee();\n return [new AssistantStream(readable1), new AssistantStream(readable2)];\n }\n}\n","import { customAlphabet } from \"nanoid/non-secure\";\n\nexport const generateId = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n);\n","import type { TextStreamPart, CoreTool, ObjectStreamPart } from \"ai\";\nimport { AssistantStream, AssistantStreamChunk } from \"../core\";\nimport { generateId } from \"../core/utils/generateId\";\n\nexport const fromAISDKStreamText = (\n stream: ReadableStream<TextStreamPart<Record<string, CoreTool>>>,\n): AssistantStream => {\n const transformer = new TransformStream<\n TextStreamPart<Record<string, CoreTool>>,\n AssistantStreamChunk\n >({\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.enqueue({\n type: \"text-delta\",\n textDelta,\n });\n break;\n }\n case \"tool-call-streaming-start\": {\n const { toolCallId, toolName } = chunk;\n controller.enqueue({\n type: \"tool-call-begin\",\n toolCallId,\n toolName,\n });\n break;\n }\n case \"tool-call-delta\": {\n const { toolCallId, argsTextDelta } = chunk;\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta,\n });\n break;\n }\n case \"tool-result\" as string: {\n const { toolCallId, result } = chunk as unknown as {\n toolCallId: string;\n result: unknown;\n };\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n result,\n });\n break;\n }\n case \"tool-call\": {\n const { toolCallId, toolName, args } = chunk;\n controller.enqueue({\n type: \"tool-call-begin\",\n toolCallId,\n toolName,\n });\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta: JSON.stringify(args),\n });\n break;\n }\n case \"step-finish\":\n case \"error\":\n case \"finish\": {\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return new AssistantStream(stream.pipeThrough(transformer));\n};\n\nexport const fromAISDKStreamObject = (\n stream: ReadableStream<ObjectStreamPart<unknown>>,\n toolName: string,\n): AssistantStream => {\n const toolCallId = generateId();\n const transformer = new TransformStream<\n ObjectStreamPart<unknown>,\n AssistantStreamChunk\n >({\n start(controller) {\n controller.enqueue({\n type: \"tool-call-begin\",\n toolName,\n toolCallId,\n });\n },\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta: textDelta,\n });\n break;\n }\n case \"finish\": {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n result: \"\",\n });\n break;\n }\n\n case \"object\":\n case \"error\": {\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return new AssistantStream(stream.pipeThrough(transformer));\n};\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/ai-sdk.ts","../src/core/AssistantStream.ts","../src/core/utils/generateId.tsx","../src/ai-sdk/index.ts"],"sourcesContent":["export * from \"./ai-sdk/index\";\n","export type AssistantStream2 = {\n // kind: AssistantStreamKind;\n readable: ReadableStream<AssistantStreamChunk>;\n toResponse(\n format: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ): Response;\n toByteStream(\n format: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ): ReadableStream<Uint8Array>;\n tee(): [AssistantStream, AssistantStream];\n};\n\nexport type AssistantStreamChunk =\n | {\n type: \"text-delta\";\n textDelta: string;\n }\n | {\n type: \"tool-call-begin\";\n toolCallId: string;\n toolName: string;\n }\n | {\n type: \"tool-call-delta\";\n toolCallId: string;\n argsTextDelta: string;\n }\n | {\n type: \"tool-result\";\n toolCallId: string;\n result: any;\n };\n\nexport class AssistantStream {\n constructor(public readonly readable: ReadableStream<AssistantStreamChunk>) {\n this.readable = readable;\n }\n\n toResponse(\n transformer: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ) {\n return new Response(this.toByteStream(transformer));\n }\n\n static fromResponse(\n response: Response,\n transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>,\n ) {\n return AssistantStream.fromByteStream(response.body!, transformer);\n }\n\n toByteStream(\n transformer: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ) {\n return this.readable.pipeThrough(transformer);\n }\n\n static fromByteStream(\n readable: ReadableStream<Uint8Array>,\n transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>,\n ) {\n return new AssistantStream(readable.pipeThrough(transformer));\n }\n\n tee(): [AssistantStream, AssistantStream] {\n const [readable1, readable2] = this.readable.tee();\n return [new AssistantStream(readable1), new AssistantStream(readable2)];\n }\n}\n","import { customAlphabet } from \"nanoid/non-secure\";\n\nexport const generateId = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n);\n","import type { TextStreamPart, CoreTool, ObjectStreamPart } from \"ai\";\nimport { AssistantStream, AssistantStreamChunk } from \"../core/AssistantStream\";\nimport { generateId } from \"../core/utils/generateId\";\n\nexport const fromAISDKStreamText = (\n stream: ReadableStream<TextStreamPart<Record<string, CoreTool>>>,\n): AssistantStream => {\n const transformer = new TransformStream<\n TextStreamPart<Record<string, CoreTool>>,\n AssistantStreamChunk\n >({\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.enqueue({\n type: \"text-delta\",\n textDelta,\n });\n break;\n }\n case \"tool-call-streaming-start\": {\n const { toolCallId, toolName } = chunk;\n controller.enqueue({\n type: \"tool-call-begin\",\n toolCallId,\n toolName,\n });\n break;\n }\n case \"tool-call-delta\": {\n const { toolCallId, argsTextDelta } = chunk;\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta,\n });\n break;\n }\n case \"tool-result\" as string: {\n const { toolCallId, result } = chunk as unknown as {\n toolCallId: string;\n result: unknown;\n };\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n result,\n });\n break;\n }\n case \"tool-call\": {\n const { toolCallId, toolName, args } = chunk;\n controller.enqueue({\n type: \"tool-call-begin\",\n toolCallId,\n toolName,\n });\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta: JSON.stringify(args),\n });\n break;\n }\n case \"step-finish\":\n case \"error\":\n case \"finish\": {\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return new AssistantStream(stream.pipeThrough(transformer));\n};\n\nexport const fromAISDKStreamObject = (\n stream: ReadableStream<ObjectStreamPart<unknown>>,\n toolName: string,\n): AssistantStream => {\n const toolCallId = generateId();\n const transformer = new TransformStream<\n ObjectStreamPart<unknown>,\n AssistantStreamChunk\n >({\n start(controller) {\n controller.enqueue({\n type: \"tool-call-begin\",\n toolName,\n toolCallId,\n });\n },\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta: textDelta,\n });\n break;\n }\n case \"finish\": {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n result: \"\",\n });\n break;\n }\n\n case \"object\":\n case \"error\": {\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return new AssistantStream(stream.pipeThrough(transformer));\n};\n"],"mappings":"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","names":[]}
|
package/dist/ai-sdk.mjs
CHANGED
package/dist/ai-sdk.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ai-sdk/index.ts"],"sourcesContent":["import type { TextStreamPart, CoreTool, ObjectStreamPart } from \"ai\";\nimport { AssistantStream, AssistantStreamChunk } from \"../core\";\nimport { generateId } from \"../core/utils/generateId\";\n\nexport const fromAISDKStreamText = (\n stream: ReadableStream<TextStreamPart<Record<string, CoreTool>>>,\n): AssistantStream => {\n const transformer = new TransformStream<\n TextStreamPart<Record<string, CoreTool>>,\n AssistantStreamChunk\n >({\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.enqueue({\n type: \"text-delta\",\n textDelta,\n });\n break;\n }\n case \"tool-call-streaming-start\": {\n const { toolCallId, toolName } = chunk;\n controller.enqueue({\n type: \"tool-call-begin\",\n toolCallId,\n toolName,\n });\n break;\n }\n case \"tool-call-delta\": {\n const { toolCallId, argsTextDelta } = chunk;\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta,\n });\n break;\n }\n case \"tool-result\" as string: {\n const { toolCallId, result } = chunk as unknown as {\n toolCallId: string;\n result: unknown;\n };\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n result,\n });\n break;\n }\n case \"tool-call\": {\n const { toolCallId, toolName, args } = chunk;\n controller.enqueue({\n type: \"tool-call-begin\",\n toolCallId,\n toolName,\n });\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta: JSON.stringify(args),\n });\n break;\n }\n case \"step-finish\":\n case \"error\":\n case \"finish\": {\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return new AssistantStream(stream.pipeThrough(transformer));\n};\n\nexport const fromAISDKStreamObject = (\n stream: ReadableStream<ObjectStreamPart<unknown>>,\n toolName: string,\n): AssistantStream => {\n const toolCallId = generateId();\n const transformer = new TransformStream<\n ObjectStreamPart<unknown>,\n AssistantStreamChunk\n >({\n start(controller) {\n controller.enqueue({\n type: \"tool-call-begin\",\n toolName,\n toolCallId,\n });\n },\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta: textDelta,\n });\n break;\n }\n case \"finish\": {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n result: \"\",\n });\n break;\n }\n\n case \"object\":\n case \"error\": {\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return new AssistantStream(stream.pipeThrough(transformer));\n};\n"],"mappings":";;;;;;AAIO,IAAM,sBAAsB,CACjC,WACoB;AACpB,QAAM,cAAc,IAAI,gBAGtB;AAAA,IACA,UAAU,OAAO,YAAY;AAC3B,YAAM,EAAE,KAAK,IAAI;AACjB,cAAQ,MAAM;AAAA,QACZ,KAAK,cAAc;AACjB,gBAAM,EAAE,UAAU,IAAI;AACtB,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,6BAA6B;AAChC,gBAAM,EAAE,YAAY,SAAS,IAAI;AACjC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,mBAAmB;AACtB,gBAAM,EAAE,YAAY,cAAc,IAAI;AACtC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,eAAyB;AAC5B,gBAAM,EAAE,YAAY,OAAO,IAAI;AAI/B,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AAChB,gBAAM,EAAE,YAAY,UAAU,KAAK,IAAI;AACvC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF,CAAC;AACD,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA,eAAe,KAAK,UAAU,IAAI;AAAA,UACpC,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,UAAU;AACb;AAAA,QACF;AAAA,QAEA,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,IAAI,gBAAgB,OAAO,YAAY,WAAW,CAAC;AAC5D;AAEO,IAAM,wBAAwB,CACnC,QACA,aACoB;AACpB,QAAM,aAAa,WAAW;AAC9B,QAAM,cAAc,IAAI,gBAGtB;AAAA,IACA,MAAM,YAAY;AAChB,iBAAW,QAAQ;AAAA,QACjB,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,UAAU,OAAO,YAAY;AAC3B,YAAM,EAAE,KAAK,IAAI;AACjB,cAAQ,MAAM;AAAA,QACZ,KAAK,cAAc;AACjB,gBAAM,EAAE,UAAU,IAAI;AACtB,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA,eAAe;AAAA,UACjB,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,UAAU;AACb,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA,QAAQ;AAAA,UACV,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK;AAAA,QACL,KAAK,SAAS;AACZ;AAAA,QACF;AAAA,QAEA,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,IAAI,gBAAgB,OAAO,YAAY,WAAW,CAAC;AAC5D;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/ai-sdk/index.ts"],"sourcesContent":["import type { TextStreamPart, CoreTool, ObjectStreamPart } from \"ai\";\nimport { AssistantStream, AssistantStreamChunk } from \"../core/AssistantStream\";\nimport { generateId } from \"../core/utils/generateId\";\n\nexport const fromAISDKStreamText = (\n stream: ReadableStream<TextStreamPart<Record<string, CoreTool>>>,\n): AssistantStream => {\n const transformer = new TransformStream<\n TextStreamPart<Record<string, CoreTool>>,\n AssistantStreamChunk\n >({\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.enqueue({\n type: \"text-delta\",\n textDelta,\n });\n break;\n }\n case \"tool-call-streaming-start\": {\n const { toolCallId, toolName } = chunk;\n controller.enqueue({\n type: \"tool-call-begin\",\n toolCallId,\n toolName,\n });\n break;\n }\n case \"tool-call-delta\": {\n const { toolCallId, argsTextDelta } = chunk;\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta,\n });\n break;\n }\n case \"tool-result\" as string: {\n const { toolCallId, result } = chunk as unknown as {\n toolCallId: string;\n result: unknown;\n };\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n result,\n });\n break;\n }\n case \"tool-call\": {\n const { toolCallId, toolName, args } = chunk;\n controller.enqueue({\n type: \"tool-call-begin\",\n toolCallId,\n toolName,\n });\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta: JSON.stringify(args),\n });\n break;\n }\n case \"step-finish\":\n case \"error\":\n case \"finish\": {\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return new AssistantStream(stream.pipeThrough(transformer));\n};\n\nexport const fromAISDKStreamObject = (\n stream: ReadableStream<ObjectStreamPart<unknown>>,\n toolName: string,\n): AssistantStream => {\n const toolCallId = generateId();\n const transformer = new TransformStream<\n ObjectStreamPart<unknown>,\n AssistantStreamChunk\n >({\n start(controller) {\n controller.enqueue({\n type: \"tool-call-begin\",\n toolName,\n toolCallId,\n });\n },\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.enqueue({\n type: \"tool-call-delta\",\n toolCallId,\n argsTextDelta: textDelta,\n });\n break;\n }\n case \"finish\": {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId,\n result: \"\",\n });\n break;\n }\n\n case \"object\":\n case \"error\": {\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return new AssistantStream(stream.pipeThrough(transformer));\n};\n"],"mappings":";;;;;;AAIO,IAAM,sBAAsB,CACjC,WACoB;AACpB,QAAM,cAAc,IAAI,gBAGtB;AAAA,IACA,UAAU,OAAO,YAAY;AAC3B,YAAM,EAAE,KAAK,IAAI;AACjB,cAAQ,MAAM;AAAA,QACZ,KAAK,cAAc;AACjB,gBAAM,EAAE,UAAU,IAAI;AACtB,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,6BAA6B;AAChC,gBAAM,EAAE,YAAY,SAAS,IAAI;AACjC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,mBAAmB;AACtB,gBAAM,EAAE,YAAY,cAAc,IAAI;AACtC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,eAAyB;AAC5B,gBAAM,EAAE,YAAY,OAAO,IAAI;AAI/B,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AAChB,gBAAM,EAAE,YAAY,UAAU,KAAK,IAAI;AACvC,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA;AAAA,UACF,CAAC;AACD,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA,eAAe,KAAK,UAAU,IAAI;AAAA,UACpC,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK,UAAU;AACb;AAAA,QACF;AAAA,QAEA,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,IAAI,gBAAgB,OAAO,YAAY,WAAW,CAAC;AAC5D;AAEO,IAAM,wBAAwB,CACnC,QACA,aACoB;AACpB,QAAM,aAAa,WAAW;AAC9B,QAAM,cAAc,IAAI,gBAGtB;AAAA,IACA,MAAM,YAAY;AAChB,iBAAW,QAAQ;AAAA,QACjB,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,UAAU,OAAO,YAAY;AAC3B,YAAM,EAAE,KAAK,IAAI;AACjB,cAAQ,MAAM;AAAA,QACZ,KAAK,cAAc;AACjB,gBAAM,EAAE,UAAU,IAAI;AACtB,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA,eAAe;AAAA,UACjB,CAAC;AACD;AAAA,QACF;AAAA,QACA,KAAK,UAAU;AACb,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN;AAAA,YACA,QAAQ;AAAA,UACV,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK;AAAA,QACL,KAAK,SAAS;AACZ;AAAA,QACF;AAAA,QAEA,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,IAAI,gBAAgB,OAAO,YAAY,WAAW,CAAC;AAC5D;","names":[]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// src/core/AssistantStream.ts
|
|
2
|
+
var AssistantStream = class _AssistantStream {
|
|
3
|
+
constructor(readable) {
|
|
4
|
+
this.readable = readable;
|
|
5
|
+
this.readable = readable;
|
|
6
|
+
}
|
|
7
|
+
toResponse(transformer) {
|
|
8
|
+
return new Response(this.toByteStream(transformer));
|
|
9
|
+
}
|
|
10
|
+
static fromResponse(response, transformer) {
|
|
11
|
+
return _AssistantStream.fromByteStream(response.body, transformer);
|
|
12
|
+
}
|
|
13
|
+
toByteStream(transformer) {
|
|
14
|
+
return this.readable.pipeThrough(transformer);
|
|
15
|
+
}
|
|
16
|
+
static fromByteStream(readable, transformer) {
|
|
17
|
+
return new _AssistantStream(readable.pipeThrough(transformer));
|
|
18
|
+
}
|
|
19
|
+
tee() {
|
|
20
|
+
const [readable1, readable2] = this.readable.tee();
|
|
21
|
+
return [new _AssistantStream(readable1), new _AssistantStream(readable2)];
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
// src/core/utils/generateId.tsx
|
|
26
|
+
import { customAlphabet } from "nanoid/non-secure";
|
|
27
|
+
var generateId = customAlphabet(
|
|
28
|
+
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
|
|
29
|
+
7
|
|
30
|
+
);
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
AssistantStream,
|
|
34
|
+
generateId
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=chunk-C6LFLHS6.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/AssistantStream.ts","../src/core/utils/generateId.tsx"],"sourcesContent":["export type AssistantStream2 = {\n // kind: AssistantStreamKind;\n readable: ReadableStream<AssistantStreamChunk>;\n toResponse(\n format: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ): Response;\n toByteStream(\n format: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ): ReadableStream<Uint8Array>;\n tee(): [AssistantStream, AssistantStream];\n};\n\nexport type AssistantStreamChunk =\n | {\n type: \"text-delta\";\n textDelta: string;\n }\n | {\n type: \"tool-call-begin\";\n toolCallId: string;\n toolName: string;\n }\n | {\n type: \"tool-call-delta\";\n toolCallId: string;\n argsTextDelta: string;\n }\n | {\n type: \"tool-result\";\n toolCallId: string;\n result: any;\n };\n\nexport class AssistantStream {\n constructor(public readonly readable: ReadableStream<AssistantStreamChunk>) {\n this.readable = readable;\n }\n\n toResponse(\n transformer: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ) {\n return new Response(this.toByteStream(transformer));\n }\n\n static fromResponse(\n response: Response,\n transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>,\n ) {\n return AssistantStream.fromByteStream(response.body!, transformer);\n }\n\n toByteStream(\n transformer: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ) {\n return this.readable.pipeThrough(transformer);\n }\n\n static fromByteStream(\n readable: ReadableStream<Uint8Array>,\n transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>,\n ) {\n return new AssistantStream(readable.pipeThrough(transformer));\n }\n\n tee(): [AssistantStream, AssistantStream] {\n const [readable1, readable2] = this.readable.tee();\n return [new AssistantStream(readable1), new AssistantStream(readable2)];\n }\n}\n","import { customAlphabet } from \"nanoid/non-secure\";\n\nexport const generateId = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n);\n"],"mappings":";AAiCO,IAAM,kBAAN,MAAM,iBAAgB;AAAA,EAC3B,YAA4B,UAAgD;AAAhD;AAC1B,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,WACE,aACA;AACA,WAAO,IAAI,SAAS,KAAK,aAAa,WAAW,CAAC;AAAA,EACpD;AAAA,EAEA,OAAO,aACL,UACA,aACA;AACA,WAAO,iBAAgB,eAAe,SAAS,MAAO,WAAW;AAAA,EACnE;AAAA,EAEA,aACE,aACA;AACA,WAAO,KAAK,SAAS,YAAY,WAAW;AAAA,EAC9C;AAAA,EAEA,OAAO,eACL,UACA,aACA;AACA,WAAO,IAAI,iBAAgB,SAAS,YAAY,WAAW,CAAC;AAAA,EAC9D;AAAA,EAEA,MAA0C;AACxC,UAAM,CAAC,WAAW,SAAS,IAAI,KAAK,SAAS,IAAI;AACjD,WAAO,CAAC,IAAI,iBAAgB,SAAS,GAAG,IAAI,iBAAgB,SAAS,CAAC;AAAA,EACxE;AACF;;;ACpEA,SAAS,sBAAsB;AAExB,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;","names":[]}
|