UNPKG

assistant-stream

Version:

Streaming utilities for AI assistants

41 lines • 2.1 kB
import type { AssistantStream } from "../AssistantStream.js"; import type { AssistantStreamChunk } from "../AssistantStreamChunk.js"; import { type ToolResponseLike } from "../tool/ToolResponse.js"; import type { ReadonlyJSONValue } from "../../utils/json/json-value.js"; import type { ToolCallApproval } from "../utils/types.js"; import type { UnderlyingReadable } from "../utils/stream/UnderlyingReadable.js"; import { TextStreamControllerImpl, type TextStreamController } from "./text.js"; export type ToolCallStreamController = { argsText: TextStreamController; /** * Sets a tool response. Preliminary responses keep the part open; a final * response closes it automatically and subsequent calls are ignored. */ setResponse(response: ToolResponseLike<ReadonlyJSONValue>): void; /** Sets the call's approval gate, replacing any earlier one. Ignored once the part is closed. */ setApproval(approval: ToolCallApproval): void; close(): void; }; type ToolCallStreamOptions = { strict?: boolean | undefined; onClose?: (() => void) | undefined; }; export declare class ToolCallStreamControllerImpl implements ToolCallStreamController { private _isClosed; private _hasArgsText; private _argsTextState; private _controller; private _argsTextController; private _options; constructor(_controller: ReadableStreamDefaultController<AssistantStreamChunk>, options?: ToolCallStreamOptions); private _finishArgsText; get argsText(): TextStreamControllerImpl; setResponse(response: ToolResponseLike<ReadonlyJSONValue>): Promise<void>; setApproval(approval: ToolCallApproval): void; close(): Promise<void>; __internal_truncate(): void; } export declare const createToolCallStream: (readable: UnderlyingReadable<ToolCallStreamController>, options?: ToolCallStreamOptions) => AssistantStream; export declare const createToolCallStreamController: (options?: ToolCallStreamOptions) => readonly [ReadableStream<AssistantStreamChunk>, ToolCallStreamControllerImpl]; export {}; //# sourceMappingURL=tool-call.d.ts.map