assistant-stream
Version:
Streaming utilities for AI assistants
41 lines • 2.1 kB
TypeScript
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