assistant-stream 0.2.45 → 0.2.47
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/core/AssistantStream.d.ts +1 -1
- package/dist/core/AssistantStream.d.ts.map +1 -1
- package/dist/core/AssistantStream.js +15 -19
- package/dist/core/AssistantStream.js.map +1 -1
- package/dist/core/AssistantStreamChunk.d.ts +2 -2
- package/dist/core/AssistantStreamChunk.d.ts.map +1 -1
- package/dist/core/AssistantStreamChunk.js +1 -0
- package/dist/core/AssistantStreamChunk.js.map +1 -1
- package/dist/core/accumulators/AssistantMessageStream.d.ts +2 -2
- package/dist/core/accumulators/AssistantMessageStream.d.ts.map +1 -1
- package/dist/core/accumulators/AssistantMessageStream.js +45 -50
- package/dist/core/accumulators/AssistantMessageStream.js.map +1 -1
- package/dist/core/accumulators/assistant-message-accumulator.d.ts +3 -3
- package/dist/core/accumulators/assistant-message-accumulator.d.ts.map +1 -1
- package/dist/core/accumulators/assistant-message-accumulator.js +339 -329
- package/dist/core/accumulators/assistant-message-accumulator.js.map +1 -1
- package/dist/core/index.d.ts +17 -16
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +10 -44
- package/dist/core/index.js.map +1 -1
- package/dist/core/modules/assistant-stream.d.ts +7 -7
- package/dist/core/modules/assistant-stream.d.ts.map +1 -1
- package/dist/core/modules/assistant-stream.js +159 -188
- package/dist/core/modules/assistant-stream.js.map +1 -1
- package/dist/core/modules/text.d.ts +2 -2
- package/dist/core/modules/text.d.ts.map +1 -1
- package/dist/core/modules/text.js +43 -47
- package/dist/core/modules/text.js.map +1 -1
- package/dist/core/modules/tool-call.d.ts +5 -5
- package/dist/core/modules/tool-call.d.ts.map +1 -1
- package/dist/core/modules/tool-call.js +88 -89
- package/dist/core/modules/tool-call.js.map +1 -1
- package/dist/core/object/ObjectStreamAccumulator.d.ts +2 -2
- package/dist/core/object/ObjectStreamAccumulator.d.ts.map +1 -1
- package/dist/core/object/ObjectStreamAccumulator.js +49 -58
- package/dist/core/object/ObjectStreamAccumulator.js.map +1 -1
- package/dist/core/object/ObjectStreamResponse.d.ts +2 -2
- package/dist/core/object/ObjectStreamResponse.d.ts.map +1 -1
- package/dist/core/object/ObjectStreamResponse.js +70 -74
- package/dist/core/object/ObjectStreamResponse.js.map +1 -1
- package/dist/core/object/createObjectStream.d.ts +2 -2
- package/dist/core/object/createObjectStream.d.ts.map +1 -1
- package/dist/core/object/createObjectStream.js +45 -56
- package/dist/core/object/createObjectStream.js.map +1 -1
- package/dist/core/object/types.d.ts +1 -1
- package/dist/core/object/types.d.ts.map +1 -1
- package/dist/core/object/types.js +1 -0
- package/dist/core/object/types.js.map +1 -1
- package/dist/core/serialization/PlainText.d.ts +3 -3
- package/dist/core/serialization/PlainText.d.ts.map +1 -1
- package/dist/core/serialization/PlainText.js +46 -47
- package/dist/core/serialization/PlainText.js.map +1 -1
- package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts +3 -3
- package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts.map +1 -1
- package/dist/core/serialization/assistant-transport/AssistantTransport.js +117 -112
- package/dist/core/serialization/assistant-transport/AssistantTransport.js.map +1 -1
- package/dist/core/serialization/data-stream/DataStream.d.ts +3 -3
- package/dist/core/serialization/data-stream/DataStream.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/DataStream.js +355 -354
- package/dist/core/serialization/data-stream/DataStream.js.map +1 -1
- package/dist/core/serialization/data-stream/chunk-types.d.ts +2 -2
- package/dist/core/serialization/data-stream/chunk-types.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/chunk-types.js +22 -26
- package/dist/core/serialization/data-stream/chunk-types.js.map +1 -1
- package/dist/core/serialization/data-stream/serialization.d.ts +1 -1
- package/dist/core/serialization/data-stream/serialization.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/serialization.js +23 -28
- package/dist/core/serialization/data-stream/serialization.js.map +1 -1
- package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts +19 -0
- package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts.map +1 -0
- package/dist/core/serialization/ui-message-stream/UIMessageStream.js +231 -0
- package/dist/core/serialization/ui-message-stream/UIMessageStream.js.map +1 -0
- package/dist/core/serialization/ui-message-stream/chunk-types.d.ts +78 -0
- package/dist/core/serialization/ui-message-stream/chunk-types.d.ts.map +1 -0
- package/dist/core/serialization/ui-message-stream/chunk-types.js +2 -0
- package/dist/core/serialization/ui-message-stream/chunk-types.js.map +1 -0
- package/dist/core/tool/ToolCallReader.d.ts +4 -4
- package/dist/core/tool/ToolCallReader.d.ts.map +1 -1
- package/dist/core/tool/ToolCallReader.js +303 -303
- package/dist/core/tool/ToolCallReader.js.map +1 -1
- package/dist/core/tool/ToolExecutionStream.d.ts +5 -5
- package/dist/core/tool/ToolExecutionStream.d.ts.map +1 -1
- package/dist/core/tool/ToolExecutionStream.js +140 -143
- package/dist/core/tool/ToolExecutionStream.js.map +1 -1
- package/dist/core/tool/ToolResponse.d.ts +1 -1
- package/dist/core/tool/ToolResponse.d.ts.map +1 -1
- package/dist/core/tool/ToolResponse.js +25 -29
- package/dist/core/tool/ToolResponse.js.map +1 -1
- package/dist/core/tool/index.d.ts +5 -5
- package/dist/core/tool/index.d.ts.map +1 -1
- package/dist/core/tool/index.js +3 -13
- package/dist/core/tool/index.js.map +1 -1
- package/dist/core/tool/tool-types.d.ts +3 -3
- package/dist/core/tool/tool-types.d.ts.map +1 -1
- package/dist/core/tool/tool-types.js +1 -0
- package/dist/core/tool/tool-types.js.map +1 -1
- package/dist/core/tool/toolResultStream.d.ts +3 -3
- package/dist/core/tool/toolResultStream.d.ts.map +1 -1
- package/dist/core/tool/toolResultStream.js +118 -125
- package/dist/core/tool/toolResultStream.js.map +1 -1
- package/dist/core/tool/type-path-utils.js +1 -0
- package/dist/core/tool/type-path-utils.js.map +1 -1
- package/dist/core/utils/Counter.js +6 -10
- package/dist/core/utils/Counter.js.map +1 -1
- package/dist/core/utils/generateId.js +1 -8
- package/dist/core/utils/generateId.js.map +1 -1
- package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts +1 -1
- package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts.map +1 -1
- package/dist/core/utils/stream/AssistantMetaTransformStream.js +42 -43
- package/dist/core/utils/stream/AssistantMetaTransformStream.js.map +1 -1
- package/dist/core/utils/stream/AssistantTransformStream.d.ts +2 -2
- package/dist/core/utils/stream/AssistantTransformStream.d.ts.map +1 -1
- package/dist/core/utils/stream/AssistantTransformStream.js +35 -45
- package/dist/core/utils/stream/AssistantTransformStream.js.map +1 -1
- package/dist/core/utils/stream/LineDecoderStream.js +24 -26
- package/dist/core/utils/stream/LineDecoderStream.js.map +1 -1
- package/dist/core/utils/stream/PipeableTransformStream.js +10 -14
- package/dist/core/utils/stream/PipeableTransformStream.js.map +1 -1
- package/dist/core/utils/stream/SSE.d.ts +1 -1
- package/dist/core/utils/stream/SSE.d.ts.map +1 -1
- package/dist/core/utils/stream/SSE.js +90 -98
- package/dist/core/utils/stream/SSE.js.map +1 -1
- package/dist/core/utils/stream/UnderlyingReadable.js +1 -0
- package/dist/core/utils/stream/UnderlyingReadable.js.map +1 -1
- package/dist/core/utils/stream/merge.d.ts +1 -1
- package/dist/core/utils/stream/merge.d.ts.map +1 -1
- package/dist/core/utils/stream/merge.js +169 -81
- package/dist/core/utils/stream/merge.js.map +1 -1
- package/dist/core/utils/stream/path-utils.d.ts +2 -2
- package/dist/core/utils/stream/path-utils.d.ts.map +1 -1
- package/dist/core/utils/stream/path-utils.js +49 -56
- package/dist/core/utils/stream/path-utils.js.map +1 -1
- package/dist/core/utils/types.d.ts +1 -1
- package/dist/core/utils/types.d.ts.map +1 -1
- package/dist/core/utils/types.js +1 -0
- package/dist/core/utils/types.js.map +1 -1
- package/dist/core/utils/withPromiseOrValue.js +14 -14
- package/dist/core/utils/withPromiseOrValue.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/AsyncIterableStream.js +15 -16
- package/dist/utils/AsyncIterableStream.js.map +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -7
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/json/fix-json.js +365 -343
- package/dist/utils/json/fix-json.js.map +1 -1
- package/dist/utils/json/index.d.ts +1 -1
- package/dist/utils/json/index.d.ts.map +1 -1
- package/dist/utils/json/index.js +1 -0
- package/dist/utils/json/index.js.map +1 -1
- package/dist/utils/json/is-json.d.ts +1 -1
- package/dist/utils/json/is-json.d.ts.map +1 -1
- package/dist/utils/json/is-json.js +21 -25
- package/dist/utils/json/is-json.js.map +1 -1
- package/dist/utils/json/json-value.js +1 -0
- package/dist/utils/json/json-value.js.map +1 -1
- package/dist/utils/json/parse-partial-json-object.d.ts +1 -1
- package/dist/utils/json/parse-partial-json-object.d.ts.map +1 -1
- package/dist/utils/json/parse-partial-json-object.js +61 -56
- package/dist/utils/json/parse-partial-json-object.js.map +1 -1
- package/dist/utils/promiseWithResolvers.js +10 -13
- package/dist/utils/promiseWithResolvers.js.map +1 -1
- package/dist/utils.d.ts +5 -5
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +4 -17
- package/dist/utils.js.map +1 -1
- package/package.json +26 -14
- package/src/core/index.ts +6 -0
- package/src/core/serialization/ui-message-stream/UIMessageStream.test.ts +370 -0
- package/src/core/serialization/ui-message-stream/UIMessageStream.ts +300 -0
- package/src/core/serialization/ui-message-stream/chunk-types.ts +60 -0
- package/dist/core/object/ObjectStream.test.d.ts +0 -2
- package/dist/core/object/ObjectStream.test.d.ts.map +0 -1
- package/dist/core/serialization/assistant-transport/AssistantTransport.test.d.ts +0 -2
- package/dist/core/serialization/assistant-transport/AssistantTransport.test.d.ts.map +0 -1
- package/dist/core/tool/toolResultStream.test.d.ts +0 -2
- package/dist/core/tool/toolResultStream.test.d.ts.map +0 -1
- package/dist/utils/json/parse-partial-json-object.test.d.ts +0 -2
- package/dist/utils/json/parse-partial-json-object.test.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/tool/ToolCallReader.ts"],"sourcesContent":["import { promiseWithResolvers } from \"../../utils/promiseWithResolvers\";\nimport {\n parsePartialJsonObject,\n getPartialJsonObjectFieldState,\n} from \"../../utils/json/parse-partial-json-object\";\nimport {\n ToolCallArgsReader,\n ToolCallReader,\n ToolCallResponseReader,\n} from \"./tool-types\";\nimport { DeepPartial, TypeAtPath, TypePath } from \"./type-path-utils\";\nimport { ToolResponse } from \"./ToolResponse\";\nimport {\n asAsyncIterableStream,\n AsyncIterableStream,\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"../../utils\";\n\n// TODO: remove dispose\n\nfunction getField<T>(obj: T, fieldPath: (string | number)[]): unknown {\n let current: unknown = obj;\n for (const key of fieldPath) {\n if (current === undefined || current === null) {\n return undefined;\n }\n current = current[key as keyof typeof current];\n }\n return current;\n}\n\ninterface Handle {\n update(args: unknown): void;\n dispose(): void;\n}\n\nclass GetHandle<T, TValue> implements Handle {\n private resolve: (value: TValue) => void;\n private reject: (reason: unknown) => void;\n private disposed = false;\n private fieldPath: (string | number)[];\n\n constructor(\n resolve: (value: TValue) => void,\n reject: (reason: unknown) => void,\n fieldPath: (string | number)[],\n ) {\n this.resolve = resolve;\n this.reject = reject;\n this.fieldPath = fieldPath;\n }\n\n update(args: unknown): void {\n if (this.disposed) return;\n\n try {\n // Check if the field is complete\n if (\n getPartialJsonObjectFieldState(\n args as Record<string, unknown>,\n this.fieldPath,\n ) === \"complete\"\n ) {\n const value = getField(args as T, this.fieldPath);\n if (value !== undefined) {\n this.resolve(value as TValue);\n this.dispose();\n }\n }\n } catch (e) {\n this.reject(e);\n this.dispose();\n }\n }\n\n dispose(): void {\n this.disposed = true;\n }\n}\n\nclass StreamValuesHandle<T> implements Handle {\n private controller: ReadableStreamDefaultController<unknown>;\n private disposed = false;\n private fieldPath: (string | number)[];\n\n constructor(\n controller: ReadableStreamDefaultController<unknown>,\n fieldPath: (string | number)[],\n ) {\n this.controller = controller;\n this.fieldPath = fieldPath;\n }\n\n update(args: unknown): void {\n if (this.disposed) return;\n\n try {\n const value = getField(args as T, this.fieldPath);\n\n if (value !== undefined) {\n this.controller.enqueue(value);\n }\n\n // Check if the field is complete, if so close the stream\n if (\n getPartialJsonObjectFieldState(\n args as Record<string, unknown>,\n this.fieldPath,\n ) === \"complete\"\n ) {\n this.controller.close();\n this.dispose();\n }\n } catch (e) {\n this.controller.error(e);\n this.dispose();\n }\n }\n\n dispose(): void {\n this.disposed = true;\n }\n}\n\nclass StreamTextHandle<T> implements Handle {\n private controller: ReadableStreamDefaultController<unknown>;\n private disposed = false;\n private fieldPath: (string | number)[];\n private lastValue: string | undefined = undefined;\n\n constructor(\n controller: ReadableStreamDefaultController<unknown>,\n fieldPath: (string | number)[],\n ) {\n this.controller = controller;\n this.fieldPath = fieldPath;\n }\n\n update(args: unknown): void {\n if (this.disposed) return;\n\n try {\n const value = getField(args as T, this.fieldPath);\n\n if (value !== undefined && typeof value === \"string\") {\n const delta = value.substring(this.lastValue?.length || 0);\n this.lastValue = value;\n this.controller.enqueue(delta);\n }\n\n // Check if the field is complete, if so close the stream\n if (\n getPartialJsonObjectFieldState(\n args as Record<string, unknown>,\n this.fieldPath,\n ) === \"complete\"\n ) {\n this.controller.close();\n this.dispose();\n }\n } catch (e) {\n this.controller.error(e);\n this.dispose();\n }\n }\n\n dispose(): void {\n this.disposed = true;\n }\n}\n\nclass ForEachHandle<T> implements Handle {\n private controller: ReadableStreamDefaultController<unknown>;\n private disposed = false;\n private fieldPath: (string | number)[];\n private processedIndexes = new Set<number>();\n\n constructor(\n controller: ReadableStreamDefaultController<unknown>,\n fieldPath: (string | number)[],\n ) {\n this.controller = controller;\n this.fieldPath = fieldPath;\n }\n\n update(args: unknown): void {\n if (this.disposed) return;\n\n try {\n const array = getField(args as T, this.fieldPath);\n\n if (!Array.isArray(array)) {\n return;\n }\n\n // Check each array element and emit completed ones that haven't been processed\n for (let i = 0; i < array.length; i++) {\n if (!this.processedIndexes.has(i)) {\n const elementPath = [...this.fieldPath, i];\n if (\n getPartialJsonObjectFieldState(\n args as Record<string, unknown>,\n elementPath,\n ) === \"complete\"\n ) {\n this.controller.enqueue(array[i]);\n this.processedIndexes.add(i);\n }\n }\n }\n\n // Check if the entire array is complete\n if (\n getPartialJsonObjectFieldState(\n args as Record<string, unknown>,\n this.fieldPath,\n ) === \"complete\"\n ) {\n this.controller.close();\n this.dispose();\n }\n } catch (e) {\n this.controller.error(e);\n this.dispose();\n }\n }\n\n dispose(): void {\n this.disposed = true;\n }\n}\n\n// Implementation of ToolCallReader that uses stream of partial JSON\nexport class ToolCallArgsReaderImpl<T extends ReadonlyJSONObject>\n implements ToolCallArgsReader<T>\n{\n private argTextDeltas: ReadableStream<string>;\n private handles: Set<Handle> = new Set();\n private args: unknown = parsePartialJsonObject(\"\");\n\n constructor(argTextDeltas: ReadableStream<string>) {\n this.argTextDeltas = argTextDeltas;\n this.processStream();\n }\n\n private async processStream(): Promise<void> {\n try {\n let accumulatedText = \"\";\n const reader = this.argTextDeltas.getReader();\n\n while (true) {\n const { value, done } = await reader.read();\n if (done) break;\n\n accumulatedText += value;\n const parsedArgs = parsePartialJsonObject(accumulatedText);\n\n if (parsedArgs !== undefined) {\n this.args = parsedArgs;\n // Notify all handles of the updated args\n for (const handle of this.handles) {\n handle.update(parsedArgs);\n }\n }\n }\n } catch (error) {\n console.error(\"Error processing argument stream:\", error);\n // Notify handles of the error\n for (const handle of this.handles) {\n handle.dispose();\n }\n }\n }\n\n get<PathT extends TypePath<T>>(\n ...fieldPath: PathT\n ): Promise<TypeAtPath<T, PathT>> {\n return new Promise<TypeAtPath<T, PathT>>((resolve, reject) => {\n const handle = new GetHandle<T, TypeAtPath<T, PathT>>(\n resolve,\n reject,\n fieldPath,\n );\n\n // Check if the field is already complete in current args\n if (\n this.args &&\n getPartialJsonObjectFieldState(\n this.args as Record<string, unknown>,\n fieldPath,\n ) === \"complete\"\n ) {\n const value = getField(this.args as T, fieldPath);\n if (value !== undefined) {\n resolve(value as TypeAtPath<T, PathT>);\n return;\n }\n }\n\n this.handles.add(handle);\n handle.update(this.args);\n });\n }\n\n streamValues<PathT extends TypePath<T>>(\n ...fieldPath: PathT\n ): AsyncIterableStream<DeepPartial<TypeAtPath<T, PathT>>> {\n // Use a type assertion to convert the complex TypePath to a simple array\n const simplePath = fieldPath as unknown as (string | number)[];\n\n const stream = new ReadableStream<DeepPartial<TypeAtPath<T, PathT>>>({\n start: (controller) => {\n const handle = new StreamValuesHandle<T>(controller, simplePath);\n this.handles.add(handle);\n\n // Check current args immediately\n handle.update(this.args);\n },\n cancel: () => {\n // Find and dispose the corresponding handle\n for (const handle of this.handles) {\n if (handle instanceof StreamValuesHandle) {\n handle.dispose();\n this.handles.delete(handle);\n break;\n }\n }\n },\n });\n\n return asAsyncIterableStream(stream) as any;\n }\n\n streamText<PathT extends TypePath<T>>(\n ...fieldPath: PathT\n ): TypeAtPath<T, PathT> extends string & infer U\n ? AsyncIterableStream<U>\n : never {\n // Use a type assertion to convert the complex TypePath to a simple array\n const simplePath = fieldPath as unknown as (string | number)[];\n\n const stream = new ReadableStream<unknown>({\n start: (controller) => {\n const handle = new StreamTextHandle<T>(controller, simplePath);\n this.handles.add(handle);\n\n // Check current args immediately\n handle.update(this.args);\n },\n cancel: () => {\n // Find and dispose the corresponding handle\n for (const handle of this.handles) {\n if (handle instanceof StreamTextHandle) {\n handle.dispose();\n this.handles.delete(handle);\n break;\n }\n }\n },\n });\n\n return asAsyncIterableStream(stream) as any;\n }\n\n forEach<PathT extends TypePath<T>>(\n ...fieldPath: PathT\n ): TypeAtPath<T, PathT> extends Array<infer U>\n ? AsyncIterableStream<U>\n : never {\n // Use a type assertion to convert the complex TypePath to a simple array\n const simplePath = fieldPath as unknown as (string | number)[];\n\n const stream = new ReadableStream<unknown>({\n start: (controller) => {\n const handle = new ForEachHandle<T>(controller, simplePath);\n this.handles.add(handle);\n\n // Check current args immediately\n handle.update(this.args);\n },\n cancel: () => {\n // Find and dispose the corresponding handle\n for (const handle of this.handles) {\n if (handle instanceof ForEachHandle) {\n handle.dispose();\n this.handles.delete(handle);\n break;\n }\n }\n },\n });\n\n return asAsyncIterableStream(stream) as any;\n }\n}\n\nexport class ToolCallResponseReaderImpl<TResult extends ReadonlyJSONValue>\n implements ToolCallResponseReader<TResult>\n{\n constructor(private readonly promise: Promise<ToolResponse<TResult>>) {}\n\n public get() {\n return this.promise;\n }\n}\n\nexport class ToolCallReaderImpl<\n TArgs extends ReadonlyJSONObject,\n TResult extends ReadonlyJSONValue,\n> implements ToolCallReader<TArgs, TResult>\n{\n public readonly args: ToolCallArgsReaderImpl<TArgs>;\n public readonly response: ToolCallResponseReaderImpl<TResult>;\n private readonly writable: WritableStream<string>;\n private readonly resolve: (value: ToolResponse<TResult>) => void;\n\n public argsText: string = \"\";\n\n constructor() {\n const stream = new TransformStream<string, string>();\n this.writable = stream.writable;\n this.args = new ToolCallArgsReaderImpl<TArgs>(stream.readable);\n\n const { promise, resolve } = promiseWithResolvers<ToolResponse<TResult>>();\n this.resolve = resolve;\n this.response = new ToolCallResponseReaderImpl<TResult>(promise);\n }\n\n async appendArgsTextDelta(text: string): Promise<void> {\n const writer = this.writable.getWriter();\n try {\n await writer.write(text);\n } catch (err) {\n console.warn(err);\n } finally {\n writer.releaseLock();\n }\n\n this.argsText += text;\n }\n\n setResponse(value: ToolResponse<TResult>): void {\n this.resolve(value);\n }\n\n result = {\n get: async () => {\n const response = await this.response.get();\n return response.result;\n },\n };\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"file":"ToolCallReader.js","sourceRoot":"","sources":["../../../src/core/tool/ToolCallReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { AssistantStreamChunk } from "../AssistantStreamChunk";
|
|
2
|
-
import { PipeableTransformStream } from "../utils/stream/PipeableTransformStream";
|
|
3
|
-
import { ReadonlyJSONObject, ReadonlyJSONValue } from "../../utils/json/json-value";
|
|
4
|
-
import { ToolResponse } from "./ToolResponse";
|
|
5
|
-
import { ToolCallReader } from "./tool-types";
|
|
1
|
+
import { AssistantStreamChunk } from "../AssistantStreamChunk.js";
|
|
2
|
+
import { PipeableTransformStream } from "../utils/stream/PipeableTransformStream.js";
|
|
3
|
+
import { ReadonlyJSONObject, ReadonlyJSONValue } from "../../utils/json/json-value.js";
|
|
4
|
+
import { ToolResponse } from "./ToolResponse.js";
|
|
5
|
+
import { ToolCallReader } from "./tool-types.js";
|
|
6
6
|
type ToolCallback = (toolCall: {
|
|
7
7
|
toolCallId: string;
|
|
8
8
|
toolName: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolExecutionStream.d.ts","sourceRoot":"","sources":["../../../src/core/tool/ToolExecutionStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,
|
|
1
|
+
{"version":3,"file":"ToolExecutionStream.d.ts","sourceRoot":"","sources":["../../../src/core/tool/ToolExecutionStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,mCAAgC;AAK/D,OAAO,EAAE,uBAAuB,EAAE,mDAAgD;AAClF,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EAClB,uCAAoC;AACrC,OAAO,EAAE,YAAY,EAAE,0BAAuB;AAG9C,OAAO,EAAE,cAAc,EAAE,wBAAqB;AAE9C,KAAK,YAAY,GAAG,CAAC,QAAQ,EAAE;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,kBAAkB,CAAC;CAC1B,KACG,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,GACxC,YAAY,CAAC,iBAAiB,CAAC,GAC/B,SAAS,CAAC;AAEd,KAAK,kBAAkB,GAAG,CACxB,KAAK,SAAS,kBAAkB,GAAG,kBAAkB,EACrD,OAAO,SAAS,iBAAiB,GAAG,iBAAiB,EACrD,QAAQ,EAAE;IACV,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,KAAK,IAAI,CAAC;AAEX,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,gBAAgB,CAAC,EACb,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAChD,SAAS,CAAC;IACd,cAAc,CAAC,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/E,CAAC;AAEF,qBAAa,mBAAoB,SAAQ,uBAAuB,CAC9D,oBAAoB,EACpB,oBAAoB,CACrB;gBACa,OAAO,EAAE,oBAAoB;CAyK1C"}
|
|
@@ -1,151 +1,148 @@
|
|
|
1
|
-
// src/core/tool/ToolExecutionStream.ts
|
|
2
1
|
import sjson from "secure-json-parse";
|
|
3
|
-
import {
|
|
4
|
-
AssistantMetaTransformStream
|
|
5
|
-
} from "../utils/stream/AssistantMetaTransformStream.js";
|
|
2
|
+
import { AssistantMetaTransformStream, } from "../utils/stream/AssistantMetaTransformStream.js";
|
|
6
3
|
import { PipeableTransformStream } from "../utils/stream/PipeableTransformStream.js";
|
|
7
4
|
import { ToolResponse } from "./ToolResponse.js";
|
|
8
5
|
import { withPromiseOrValue } from "../utils/withPromiseOrValue.js";
|
|
9
6
|
import { ToolCallReaderImpl } from "./ToolCallReader.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
7
|
+
export class ToolExecutionStream extends PipeableTransformStream {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
const toolCallPromises = new Map();
|
|
10
|
+
const toolCallControllers = new Map();
|
|
11
|
+
super((readable) => {
|
|
12
|
+
const transform = new TransformStream({
|
|
13
|
+
transform(chunk, controller) {
|
|
14
|
+
// forward everything
|
|
15
|
+
if (chunk.type !== "part-finish" || chunk.meta.type !== "tool-call") {
|
|
16
|
+
controller.enqueue(chunk);
|
|
17
|
+
}
|
|
18
|
+
const type = chunk.type;
|
|
19
|
+
switch (type) {
|
|
20
|
+
case "part-start":
|
|
21
|
+
if (chunk.part.type === "tool-call") {
|
|
22
|
+
const reader = new ToolCallReaderImpl();
|
|
23
|
+
toolCallControllers.set(chunk.part.toolCallId, reader);
|
|
24
|
+
options.streamCall({
|
|
25
|
+
reader,
|
|
26
|
+
toolCallId: chunk.part.toolCallId,
|
|
27
|
+
toolName: chunk.part.toolName,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
break;
|
|
31
|
+
case "text-delta": {
|
|
32
|
+
if (chunk.meta.type === "tool-call") {
|
|
33
|
+
const toolCallId = chunk.meta.toolCallId;
|
|
34
|
+
const controller = toolCallControllers.get(toolCallId);
|
|
35
|
+
if (!controller)
|
|
36
|
+
throw new Error("No controller found for tool call");
|
|
37
|
+
controller.appendArgsTextDelta(chunk.textDelta);
|
|
38
|
+
}
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case "result": {
|
|
42
|
+
if (chunk.meta.type !== "tool-call")
|
|
43
|
+
break;
|
|
44
|
+
const { toolCallId } = chunk.meta;
|
|
45
|
+
const controller = toolCallControllers.get(toolCallId);
|
|
46
|
+
if (!controller)
|
|
47
|
+
throw new Error("No controller found for tool call");
|
|
48
|
+
controller.setResponse(new ToolResponse({
|
|
49
|
+
result: chunk.result,
|
|
50
|
+
artifact: chunk.artifact,
|
|
51
|
+
isError: chunk.isError,
|
|
52
|
+
}));
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
case "tool-call-args-text-finish": {
|
|
56
|
+
if (chunk.meta.type !== "tool-call")
|
|
57
|
+
break;
|
|
58
|
+
const { toolCallId, toolName } = chunk.meta;
|
|
59
|
+
const streamController = toolCallControllers.get(toolCallId);
|
|
60
|
+
if (!streamController)
|
|
61
|
+
throw new Error("No controller found for tool call");
|
|
62
|
+
let isExecuting = false;
|
|
63
|
+
const promise = withPromiseOrValue(() => {
|
|
64
|
+
let args;
|
|
65
|
+
try {
|
|
66
|
+
args = sjson.parse(streamController.argsText);
|
|
67
|
+
}
|
|
68
|
+
catch (e) {
|
|
69
|
+
throw new Error(`Function parameter parsing failed. ${JSON.stringify(e.message)}`);
|
|
70
|
+
}
|
|
71
|
+
const executeResult = options.execute({
|
|
72
|
+
toolCallId,
|
|
73
|
+
toolName,
|
|
74
|
+
args,
|
|
75
|
+
});
|
|
76
|
+
// Only mark as executing if the tool has frontend execution
|
|
77
|
+
if (executeResult !== undefined) {
|
|
78
|
+
isExecuting = true;
|
|
79
|
+
options.onExecutionStart?.(toolCallId, toolName);
|
|
80
|
+
}
|
|
81
|
+
return executeResult;
|
|
82
|
+
}, (c) => {
|
|
83
|
+
if (isExecuting) {
|
|
84
|
+
options.onExecutionEnd?.(toolCallId, toolName);
|
|
85
|
+
}
|
|
86
|
+
if (c === undefined)
|
|
87
|
+
return;
|
|
88
|
+
// TODO how to handle new ToolResult({ result: undefined })?
|
|
89
|
+
const result = new ToolResponse({
|
|
90
|
+
artifact: c.artifact,
|
|
91
|
+
result: c.result,
|
|
92
|
+
isError: c.isError,
|
|
93
|
+
});
|
|
94
|
+
streamController.setResponse(result);
|
|
95
|
+
controller.enqueue({
|
|
96
|
+
type: "result",
|
|
97
|
+
path: chunk.path,
|
|
98
|
+
...result,
|
|
99
|
+
});
|
|
100
|
+
}, (e) => {
|
|
101
|
+
if (isExecuting) {
|
|
102
|
+
options.onExecutionEnd?.(toolCallId, toolName);
|
|
103
|
+
}
|
|
104
|
+
const result = new ToolResponse({
|
|
105
|
+
result: String(e),
|
|
106
|
+
isError: true,
|
|
107
|
+
});
|
|
108
|
+
streamController.setResponse(result);
|
|
109
|
+
controller.enqueue({
|
|
110
|
+
type: "result",
|
|
111
|
+
path: chunk.path,
|
|
112
|
+
...result,
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
if (promise) {
|
|
116
|
+
toolCallPromises.set(toolCallId, promise);
|
|
117
|
+
}
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
case "part-finish": {
|
|
121
|
+
if (chunk.meta.type !== "tool-call")
|
|
122
|
+
break;
|
|
123
|
+
const { toolCallId } = chunk.meta;
|
|
124
|
+
const toolCallPromise = toolCallPromises.get(toolCallId);
|
|
125
|
+
if (toolCallPromise) {
|
|
126
|
+
toolCallPromise.then(() => {
|
|
127
|
+
toolCallPromises.delete(toolCallId);
|
|
128
|
+
toolCallControllers.delete(toolCallId);
|
|
129
|
+
controller.enqueue(chunk);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
controller.enqueue(chunk);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
85
137
|
},
|
|
86
|
-
(
|
|
87
|
-
|
|
88
|
-
options.onExecutionEnd?.(toolCallId, toolName);
|
|
89
|
-
}
|
|
90
|
-
if (c === void 0) return;
|
|
91
|
-
const result = new ToolResponse({
|
|
92
|
-
artifact: c.artifact,
|
|
93
|
-
result: c.result,
|
|
94
|
-
isError: c.isError
|
|
95
|
-
});
|
|
96
|
-
streamController.setResponse(result);
|
|
97
|
-
controller.enqueue({
|
|
98
|
-
type: "result",
|
|
99
|
-
path: chunk.path,
|
|
100
|
-
...result
|
|
101
|
-
});
|
|
138
|
+
async flush() {
|
|
139
|
+
await Promise.all(toolCallPromises.values());
|
|
102
140
|
},
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
});
|
|
111
|
-
streamController.setResponse(result);
|
|
112
|
-
controller.enqueue({
|
|
113
|
-
type: "result",
|
|
114
|
-
path: chunk.path,
|
|
115
|
-
...result
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
);
|
|
119
|
-
if (promise) {
|
|
120
|
-
toolCallPromises.set(toolCallId, promise);
|
|
121
|
-
}
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
case "part-finish": {
|
|
125
|
-
if (chunk.meta.type !== "tool-call") break;
|
|
126
|
-
const { toolCallId } = chunk.meta;
|
|
127
|
-
const toolCallPromise = toolCallPromises.get(toolCallId);
|
|
128
|
-
if (toolCallPromise) {
|
|
129
|
-
toolCallPromise.then(() => {
|
|
130
|
-
toolCallPromises.delete(toolCallId);
|
|
131
|
-
toolCallControllers.delete(toolCallId);
|
|
132
|
-
controller.enqueue(chunk);
|
|
133
|
-
});
|
|
134
|
-
} else {
|
|
135
|
-
controller.enqueue(chunk);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
},
|
|
140
|
-
async flush() {
|
|
141
|
-
await Promise.all(toolCallPromises.values());
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
return readable.pipeThrough(new AssistantMetaTransformStream()).pipeThrough(transform);
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
export {
|
|
149
|
-
ToolExecutionStream
|
|
150
|
-
};
|
|
141
|
+
});
|
|
142
|
+
return readable
|
|
143
|
+
.pipeThrough(new AssistantMetaTransformStream())
|
|
144
|
+
.pipeThrough(transform);
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
151
148
|
//# sourceMappingURL=ToolExecutionStream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/tool/ToolExecutionStream.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { AssistantStreamChunk } from \"../AssistantStreamChunk\";\nimport {\n AssistantMetaStreamChunk,\n AssistantMetaTransformStream,\n} from \"../utils/stream/AssistantMetaTransformStream\";\nimport { PipeableTransformStream } from \"../utils/stream/PipeableTransformStream\";\nimport {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"../../utils/json/json-value\";\nimport { ToolResponse } from \"./ToolResponse\";\nimport { withPromiseOrValue } from \"../utils/withPromiseOrValue\";\nimport { ToolCallReaderImpl } from \"./ToolCallReader\";\nimport { ToolCallReader } from \"./tool-types\";\n\ntype ToolCallback = (toolCall: {\n toolCallId: string;\n toolName: string;\n args: ReadonlyJSONObject;\n}) =>\n | Promise<ToolResponse<ReadonlyJSONValue>>\n | ToolResponse<ReadonlyJSONValue>\n | undefined;\n\ntype ToolStreamCallback = <\n TArgs extends ReadonlyJSONObject = ReadonlyJSONObject,\n TResult extends ReadonlyJSONValue = ReadonlyJSONValue,\n>(toolCall: {\n reader: ToolCallReader<TArgs, TResult>;\n toolCallId: string;\n toolName: string;\n}) => void;\n\ntype ToolExecutionOptions = {\n execute: ToolCallback;\n streamCall: ToolStreamCallback;\n onExecutionStart?:\n | ((toolCallId: string, toolName: string) => void)\n | undefined;\n onExecutionEnd?: ((toolCallId: string, toolName: string) => void) | undefined;\n};\n\nexport class ToolExecutionStream extends PipeableTransformStream<\n AssistantStreamChunk,\n AssistantStreamChunk\n> {\n constructor(options: ToolExecutionOptions) {\n const toolCallPromises = new Map<string, PromiseLike<void>>();\n const toolCallControllers = new Map<\n string,\n ToolCallReaderImpl<ReadonlyJSONObject, ReadonlyJSONValue>\n >();\n\n super((readable) => {\n const transform = new TransformStream<\n AssistantMetaStreamChunk,\n AssistantStreamChunk\n >({\n transform(chunk, controller) {\n // forward everything\n if (chunk.type !== \"part-finish\" || chunk.meta.type !== \"tool-call\") {\n controller.enqueue(chunk);\n }\n\n const type = chunk.type;\n\n switch (type) {\n case \"part-start\":\n if (chunk.part.type === \"tool-call\") {\n const reader = new ToolCallReaderImpl<\n ReadonlyJSONObject,\n ReadonlyJSONValue\n >();\n toolCallControllers.set(chunk.part.toolCallId, reader);\n\n options.streamCall({\n reader,\n toolCallId: chunk.part.toolCallId,\n toolName: chunk.part.toolName,\n });\n }\n break;\n case \"text-delta\": {\n if (chunk.meta.type === \"tool-call\") {\n const toolCallId = chunk.meta.toolCallId;\n\n const controller = toolCallControllers.get(toolCallId);\n if (!controller)\n throw new Error(\"No controller found for tool call\");\n controller.appendArgsTextDelta(chunk.textDelta);\n }\n break;\n }\n case \"result\": {\n if (chunk.meta.type !== \"tool-call\") break;\n\n const { toolCallId } = chunk.meta;\n const controller = toolCallControllers.get(toolCallId);\n if (!controller)\n throw new Error(\"No controller found for tool call\");\n controller.setResponse(\n new ToolResponse({\n result: chunk.result,\n artifact: chunk.artifact,\n isError: chunk.isError,\n }),\n );\n break;\n }\n case \"tool-call-args-text-finish\": {\n if (chunk.meta.type !== \"tool-call\") break;\n\n const { toolCallId, toolName } = chunk.meta;\n const streamController = toolCallControllers.get(toolCallId)!;\n if (!streamController)\n throw new Error(\"No controller found for tool call\");\n\n let isExecuting = false;\n const promise = withPromiseOrValue(\n () => {\n let args;\n try {\n args = sjson.parse(streamController.argsText);\n } catch (e) {\n throw new Error(\n `Function parameter parsing failed. ${JSON.stringify((e as Error).message)}`,\n );\n }\n\n const executeResult = options.execute({\n toolCallId,\n toolName,\n args,\n });\n\n // Only mark as executing if the tool has frontend execution\n if (executeResult !== undefined) {\n isExecuting = true;\n options.onExecutionStart?.(toolCallId, toolName);\n }\n\n return executeResult;\n },\n (c) => {\n if (isExecuting) {\n options.onExecutionEnd?.(toolCallId, toolName);\n }\n\n if (c === undefined) return;\n\n // TODO how to handle new ToolResult({ result: undefined })?\n const result = new ToolResponse({\n artifact: c.artifact,\n result: c.result,\n isError: c.isError,\n });\n streamController.setResponse(result);\n controller.enqueue({\n type: \"result\",\n path: chunk.path,\n ...result,\n });\n },\n (e) => {\n if (isExecuting) {\n options.onExecutionEnd?.(toolCallId, toolName);\n }\n\n const result = new ToolResponse({\n result: String(e),\n isError: true,\n });\n\n streamController.setResponse(result);\n controller.enqueue({\n type: \"result\",\n path: chunk.path,\n ...result,\n });\n },\n );\n if (promise) {\n toolCallPromises.set(toolCallId, promise);\n }\n break;\n }\n\n case \"part-finish\": {\n if (chunk.meta.type !== \"tool-call\") break;\n\n const { toolCallId } = chunk.meta;\n const toolCallPromise = toolCallPromises.get(toolCallId);\n if (toolCallPromise) {\n toolCallPromise.then(() => {\n toolCallPromises.delete(toolCallId);\n toolCallControllers.delete(toolCallId);\n\n controller.enqueue(chunk);\n });\n } else {\n controller.enqueue(chunk);\n }\n }\n }\n },\n async flush() {\n await Promise.all(toolCallPromises.values());\n },\n });\n\n return readable\n .pipeThrough(new AssistantMetaTransformStream())\n .pipeThrough(transform);\n });\n }\n}\n"],"mappings":"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","names":["controller"]}
|
|
1
|
+
{"version":3,"file":"ToolExecutionStream.js","sourceRoot":"","sources":["../../../src/core/tool/ToolExecutionStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolResponse.d.ts","sourceRoot":"","sources":["../../../src/core/tool/ToolResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"ToolResponse.d.ts","sourceRoot":"","sources":["../../../src/core/tool/ToolResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,uCAAoC;AAEhE,QAAA,MAAM,oBAAoB,eAAkC,CAAC;AAE7D,MAAM,MAAM,gBAAgB,CAAC,OAAO,IAAI;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF,qBAAa,YAAY,CAAC,OAAO;IAC/B,IAAI,CAAC,oBAAoB,CAAC,YAEzB;IAED,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;gBAEd,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAQ9C,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CACzB,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC;IAMzC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC;CAQtE"}
|
|
@@ -1,32 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return true;
|
|
6
|
-
}
|
|
7
|
-
artifact;
|
|
8
|
-
result;
|
|
9
|
-
isError;
|
|
10
|
-
constructor(options) {
|
|
11
|
-
if (options.artifact !== void 0) {
|
|
12
|
-
this.artifact = options.artifact;
|
|
1
|
+
const TOOL_RESPONSE_SYMBOL = Symbol.for("aui.tool-response");
|
|
2
|
+
export class ToolResponse {
|
|
3
|
+
get [TOOL_RESPONSE_SYMBOL]() {
|
|
4
|
+
return true;
|
|
13
5
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
6
|
+
artifact;
|
|
7
|
+
result;
|
|
8
|
+
isError;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
if (options.artifact !== undefined) {
|
|
11
|
+
this.artifact = options.artifact;
|
|
12
|
+
}
|
|
13
|
+
this.result = options.result;
|
|
14
|
+
this.isError = options.isError ?? false;
|
|
23
15
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
16
|
+
static [Symbol.hasInstance](obj) {
|
|
17
|
+
return (typeof obj === "object" && obj !== null && TOOL_RESPONSE_SYMBOL in obj);
|
|
18
|
+
}
|
|
19
|
+
static toResponse(result) {
|
|
20
|
+
if (result instanceof ToolResponse) {
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
return new ToolResponse({
|
|
24
|
+
result: result === undefined ? "<no result>" : result,
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
32
28
|
//# sourceMappingURL=ToolResponse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/tool/ToolResponse.ts"],"
|
|
1
|
+
{"version":3,"file":"ToolResponse.js","sourceRoot":"","sources":["../../../src/core/tool/ToolResponse.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAQ7D,MAAM,OAAO,YAAY;IACvB,IAAI,CAAC,oBAAoB,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,QAAQ,CAAqB;IAC7B,MAAM,CAAU;IAChB,OAAO,CAAU;IAE1B,YAAY,OAAkC;QAC5C,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CACzB,GAAY;QAEZ,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,oBAAoB,IAAI,GAAG,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAA+B;QAC/C,IAAI,MAAM,YAAY,YAAY,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,YAAY,CAAC;YACtB,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;SACtD,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export type { Tool } from "./tool-types";
|
|
2
|
-
export { ToolResponse, type ToolResponseLike } from "./ToolResponse";
|
|
3
|
-
export { ToolExecutionStream } from "./ToolExecutionStream";
|
|
4
|
-
export type { ToolCallReader } from "./tool-types";
|
|
5
|
-
export { toolResultStream as unstable_toolResultStream, unstable_runPendingTools, type ToolResultStreamOptions, } from "./toolResultStream";
|
|
1
|
+
export type { Tool } from "./tool-types.js";
|
|
2
|
+
export { ToolResponse, type ToolResponseLike } from "./ToolResponse.js";
|
|
3
|
+
export { ToolExecutionStream } from "./ToolExecutionStream.js";
|
|
4
|
+
export type { ToolCallReader } from "./tool-types.js";
|
|
5
|
+
export { toolResultStream as unstable_toolResultStream, unstable_runPendingTools, type ToolResultStreamOptions, } from "./toolResultStream.js";
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/tool/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/tool/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,IAAI,EAAE,wBAAqB;AACzC,OAAO,EAAE,YAAY,EAAE,KAAK,gBAAgB,EAAE,0BAAuB;AACrE,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAC5D,YAAY,EAAE,cAAc,EAAE,wBAAqB;AACnD,OAAO,EACL,gBAAgB,IAAI,yBAAyB,EAC7C,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,8BAA2B"}
|
package/dist/core/tool/index.js
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
toolResultStream,
|
|
6
|
-
unstable_runPendingTools
|
|
7
|
-
} from "./toolResultStream.js";
|
|
8
|
-
export {
|
|
9
|
-
ToolExecutionStream,
|
|
10
|
-
ToolResponse,
|
|
11
|
-
unstable_runPendingTools,
|
|
12
|
-
toolResultStream as unstable_toolResultStream
|
|
13
|
-
};
|
|
1
|
+
export { ToolResponse } from "./ToolResponse.js";
|
|
2
|
+
export { ToolExecutionStream } from "./ToolExecutionStream.js";
|
|
3
|
+
export { toolResultStream as unstable_toolResultStream, unstable_runPendingTools, } from "./toolResultStream.js";
|
|
14
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/tool/index.ts"],"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/tool/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAyB,0BAAuB;AACrE,OAAO,EAAE,mBAAmB,EAAE,iCAA8B;AAE5D,OAAO,EACL,gBAAgB,IAAI,yBAAyB,EAC7C,wBAAwB,GAEzB,8BAA2B"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { JSONSchema7 } from "json-schema";
|
|
2
|
-
import { DeepPartial, TypeAtPath, TypePath } from "./type-path-utils";
|
|
3
|
-
import { AsyncIterableStream } from "../../utils";
|
|
2
|
+
import { DeepPartial, TypeAtPath, TypePath } from "./type-path-utils.js";
|
|
3
|
+
import { AsyncIterableStream } from "../../utils.js";
|
|
4
4
|
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
5
|
-
import { ToolResponse } from "./ToolResponse";
|
|
5
|
+
import { ToolResponse } from "./ToolResponse.js";
|
|
6
6
|
/**
|
|
7
7
|
* Interface for reading tool call arguments from a stream, which are
|
|
8
8
|
* generated by a language learning model (LLM). Provides methods to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../../src/core/tool/tool-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../../src/core/tool/tool-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"tool-types.js","sourceRoot":"","sources":["../../../src/core/tool/tool-types.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Tool } from "./tool-types";
|
|
2
|
-
import { ToolExecutionStream } from "./ToolExecutionStream";
|
|
3
|
-
import { AssistantMessage } from "../utils/types";
|
|
1
|
+
import { Tool } from "./tool-types.js";
|
|
2
|
+
import { ToolExecutionStream } from "./ToolExecutionStream.js";
|
|
3
|
+
import { AssistantMessage } from "../utils/types.js";
|
|
4
4
|
export declare function unstable_runPendingTools(message: AssistantMessage, tools: Record<string, Tool> | undefined, abortSignal: AbortSignal, human: (toolCallId: string, payload: unknown) => Promise<unknown>): Promise<AssistantMessage>;
|
|
5
5
|
export type ToolResultStreamOptions = {
|
|
6
6
|
onExecutionStart?: (toolCallId: string, toolName: string) => void;
|