47 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { ChatCompletion, ChatCompletionCreateParams, ChatCompletionCreateParamsBase, ChatCompletionFunctionTool, ChatCompletionMessage, ChatCompletionMessageFunctionToolCall, ChatCompletionStreamingToolRunnerParams, ChatCompletionStreamParams, ChatCompletionToolRunnerParams, ParsedChatCompletion } from "../resources/chat/completions.mjs";
 | |
| import { type ResponseFormatTextJSONSchemaConfig } from "../resources/responses/responses.mjs";
 | |
| import { ResponseFormatJSONSchema } from "../resources/shared.mjs";
 | |
| type AnyChatCompletionCreateParams = ChatCompletionCreateParams | ChatCompletionToolRunnerParams<any> | ChatCompletionStreamingToolRunnerParams<any> | ChatCompletionStreamParams;
 | |
| type Unpacked<T> = T extends (infer U)[] ? U : T;
 | |
| type ToolCall = Unpacked<ChatCompletionCreateParamsBase['tools']>;
 | |
| export declare function isChatCompletionFunctionTool(tool: ToolCall): tool is ChatCompletionFunctionTool;
 | |
| export type ExtractParsedContentFromParams<Params extends AnyChatCompletionCreateParams> = Params['response_format'] extends AutoParseableResponseFormat<infer P> ? P : null;
 | |
| export type AutoParseableResponseFormat<ParsedT> = ResponseFormatJSONSchema & {
 | |
|     __output: ParsedT;
 | |
|     $brand: 'auto-parseable-response-format';
 | |
|     $parseRaw(content: string): ParsedT;
 | |
| };
 | |
| export declare function makeParseableResponseFormat<ParsedT>(response_format: ResponseFormatJSONSchema, parser: (content: string) => ParsedT): AutoParseableResponseFormat<ParsedT>;
 | |
| export type AutoParseableTextFormat<ParsedT> = ResponseFormatTextJSONSchemaConfig & {
 | |
|     __output: ParsedT;
 | |
|     $brand: 'auto-parseable-response-format';
 | |
|     $parseRaw(content: string): ParsedT;
 | |
| };
 | |
| export declare function makeParseableTextFormat<ParsedT>(response_format: ResponseFormatTextJSONSchemaConfig, parser: (content: string) => ParsedT): AutoParseableTextFormat<ParsedT>;
 | |
| export declare function isAutoParsableResponseFormat<ParsedT>(response_format: any): response_format is AutoParseableResponseFormat<ParsedT>;
 | |
| type ToolOptions = {
 | |
|     name: string;
 | |
|     arguments: any;
 | |
|     function?: ((args: any) => any) | undefined;
 | |
| };
 | |
| export type AutoParseableTool<OptionsT extends ToolOptions, HasFunction = OptionsT['function'] extends Function ? true : false> = ChatCompletionFunctionTool & {
 | |
|     __arguments: OptionsT['arguments'];
 | |
|     __name: OptionsT['name'];
 | |
|     __hasFunction: HasFunction;
 | |
|     $brand: 'auto-parseable-tool';
 | |
|     $callback: ((args: OptionsT['arguments']) => any) | undefined;
 | |
|     $parseRaw(args: string): OptionsT['arguments'];
 | |
| };
 | |
| export declare function makeParseableTool<OptionsT extends ToolOptions>(tool: ChatCompletionFunctionTool, { parser, callback, }: {
 | |
|     parser: (content: string) => OptionsT['arguments'];
 | |
|     callback: ((args: any) => any) | undefined;
 | |
| }): AutoParseableTool<OptionsT['arguments']>;
 | |
| export declare function isAutoParsableTool(tool: any): tool is AutoParseableTool<any>;
 | |
| export declare function maybeParseChatCompletion<Params extends ChatCompletionCreateParams | null, ParsedT = Params extends null ? null : ExtractParsedContentFromParams<NonNullable<Params>>>(completion: ChatCompletion, params: Params): ParsedChatCompletion<ParsedT>;
 | |
| export declare function parseChatCompletion<Params extends ChatCompletionCreateParams, ParsedT = ExtractParsedContentFromParams<Params>>(completion: ChatCompletion, params: Params): ParsedChatCompletion<ParsedT>;
 | |
| export declare function shouldParseToolCall(params: ChatCompletionCreateParams | null | undefined, toolCall: ChatCompletionMessageFunctionToolCall): boolean;
 | |
| export declare function hasAutoParseableInput(params: AnyChatCompletionCreateParams): boolean;
 | |
| export declare function assertToolCallsAreChatCompletionFunctionToolCalls(toolCalls: ChatCompletionMessage['tool_calls']): asserts toolCalls is ChatCompletionMessageFunctionToolCall[];
 | |
| export declare function validateInputTools(tools: ChatCompletionCreateParamsBase['tools']): void;
 | |
| export {};
 | |
| //# sourceMappingURL=parser.d.mts.map
 |