@jaypie/llm 1.2.0-rc.2 → 1.2.0-rc.4
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/cjs/Llm.d.ts +7 -0
- package/dist/cjs/index.cjs +811 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/operate/OperateLoop.d.ts +0 -2
- package/dist/cjs/operate/StreamLoop.d.ts +41 -0
- package/dist/cjs/operate/adapters/AnthropicAdapter.d.ts +2 -0
- package/dist/cjs/operate/adapters/GeminiAdapter.d.ts +2 -0
- package/dist/cjs/operate/adapters/OpenAiAdapter.d.ts +2 -0
- package/dist/cjs/operate/adapters/OpenRouterAdapter.d.ts +2 -0
- package/dist/cjs/operate/adapters/ProviderAdapter.interface.d.ts +9 -0
- package/dist/cjs/operate/index.d.ts +2 -0
- package/dist/cjs/providers/anthropic/AnthropicProvider.class.d.ts +4 -0
- package/dist/cjs/providers/anthropic/utils.d.ts +1 -1
- package/dist/cjs/providers/gemini/GeminiProvider.class.d.ts +4 -0
- package/dist/cjs/providers/gemini/utils.d.ts +1 -1
- package/dist/cjs/providers/openai/OpenAiProvider.class.d.ts +4 -0
- package/dist/cjs/providers/openai/utils.d.ts +1 -1
- package/dist/cjs/providers/openrouter/OpenRouterProvider.class.d.ts +4 -0
- package/dist/cjs/providers/openrouter/utils.d.ts +1 -1
- package/dist/cjs/tools/Toolkit.class.d.ts +1 -1
- package/dist/cjs/types/LlmProvider.interface.d.ts +2 -0
- package/dist/cjs/types/LlmStreamChunk.interface.d.ts +41 -0
- package/dist/cjs/util/logger.d.ts +2 -2
- package/dist/esm/Llm.d.ts +7 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +812 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/operate/OperateLoop.d.ts +0 -2
- package/dist/esm/operate/StreamLoop.d.ts +41 -0
- package/dist/esm/operate/adapters/AnthropicAdapter.d.ts +2 -0
- package/dist/esm/operate/adapters/GeminiAdapter.d.ts +2 -0
- package/dist/esm/operate/adapters/OpenAiAdapter.d.ts +2 -0
- package/dist/esm/operate/adapters/OpenRouterAdapter.d.ts +2 -0
- package/dist/esm/operate/adapters/ProviderAdapter.interface.d.ts +9 -0
- package/dist/esm/operate/index.d.ts +2 -0
- package/dist/esm/providers/anthropic/AnthropicProvider.class.d.ts +4 -0
- package/dist/esm/providers/anthropic/utils.d.ts +1 -1
- package/dist/esm/providers/gemini/GeminiProvider.class.d.ts +4 -0
- package/dist/esm/providers/gemini/utils.d.ts +1 -1
- package/dist/esm/providers/openai/OpenAiProvider.class.d.ts +4 -0
- package/dist/esm/providers/openai/utils.d.ts +1 -1
- package/dist/esm/providers/openrouter/OpenRouterProvider.class.d.ts +4 -0
- package/dist/esm/providers/openrouter/utils.d.ts +1 -1
- package/dist/esm/tools/Toolkit.class.d.ts +1 -1
- package/dist/esm/types/LlmProvider.interface.d.ts +2 -0
- package/dist/esm/types/LlmStreamChunk.interface.d.ts +41 -0
- package/dist/esm/util/logger.d.ts +2 -2
- package/package.json +5 -5
package/dist/cjs/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export * as LLM from "./constants.js";
|
|
|
3
3
|
export type { LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProvider, } from "./types/LlmProvider.interface.js";
|
|
4
4
|
export { LlmMessageRole, LlmMessageType, } from "./types/LlmProvider.interface.js";
|
|
5
5
|
export type { LlmTool } from "./types/LlmTool.interface.js";
|
|
6
|
+
export type { LlmStreamChunk, LlmStreamChunkDone, LlmStreamChunkError, LlmStreamChunkText, LlmStreamChunkToolCall, LlmStreamChunkToolResult, } from "./types/LlmStreamChunk.interface.js";
|
|
7
|
+
export { LlmStreamChunkType } from "./types/LlmStreamChunk.interface.js";
|
|
6
8
|
export { JaypieToolkit, toolkit, Toolkit, tools } from "./tools/index.js";
|
|
7
9
|
export { GeminiProvider } from "./providers/gemini/index.js";
|
|
8
10
|
export { OpenRouterProvider } from "./providers/openrouter/index.js";
|
|
@@ -8,7 +8,6 @@ export interface OperateLoopConfig {
|
|
|
8
8
|
client: unknown;
|
|
9
9
|
hookRunner?: HookRunner;
|
|
10
10
|
inputProcessor?: InputProcessor;
|
|
11
|
-
maxRetries?: number;
|
|
12
11
|
retryPolicy?: RetryPolicy;
|
|
13
12
|
}
|
|
14
13
|
/**
|
|
@@ -24,7 +23,6 @@ export declare class OperateLoop {
|
|
|
24
23
|
private readonly client;
|
|
25
24
|
private readonly hookRunnerInstance;
|
|
26
25
|
private readonly inputProcessorInstance;
|
|
27
|
-
private readonly maxRetries;
|
|
28
26
|
private readonly retryPolicy;
|
|
29
27
|
constructor(config: OperateLoopConfig);
|
|
30
28
|
/**
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { LlmHistory, LlmInputMessage, LlmOperateOptions } from "../types/LlmProvider.interface.js";
|
|
2
|
+
import { LlmStreamChunk } from "../types/LlmStreamChunk.interface.js";
|
|
3
|
+
import { ProviderAdapter } from "./adapters/ProviderAdapter.interface.js";
|
|
4
|
+
import { HookRunner } from "./hooks/index.js";
|
|
5
|
+
import { InputProcessor } from "./input/index.js";
|
|
6
|
+
export interface StreamLoopConfig {
|
|
7
|
+
adapter: ProviderAdapter;
|
|
8
|
+
client: unknown;
|
|
9
|
+
hookRunner?: HookRunner;
|
|
10
|
+
inputProcessor?: InputProcessor;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* StreamLoop implements streaming multi-turn conversation loop.
|
|
14
|
+
* It orchestrates provider adapters and tool calling while yielding
|
|
15
|
+
* stream chunks as they become available.
|
|
16
|
+
*/
|
|
17
|
+
export declare class StreamLoop {
|
|
18
|
+
private readonly adapter;
|
|
19
|
+
private readonly client;
|
|
20
|
+
private readonly hookRunnerInstance;
|
|
21
|
+
private readonly inputProcessorInstance;
|
|
22
|
+
constructor(config: StreamLoopConfig);
|
|
23
|
+
/**
|
|
24
|
+
* Execute the streaming loop for multi-turn conversations with tool calling.
|
|
25
|
+
* Yields stream chunks as they become available.
|
|
26
|
+
*/
|
|
27
|
+
execute(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
28
|
+
private initializeState;
|
|
29
|
+
private createContext;
|
|
30
|
+
private buildInitialRequest;
|
|
31
|
+
private executeOneStreamingTurn;
|
|
32
|
+
private processToolCalls;
|
|
33
|
+
/**
|
|
34
|
+
* Convert Gemini contents format to internal history format.
|
|
35
|
+
*/
|
|
36
|
+
private convertGeminiContentsToHistory;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a StreamLoop instance with the specified configuration.
|
|
40
|
+
*/
|
|
41
|
+
export declare function createStreamLoop(config: StreamLoopConfig): StreamLoop;
|
|
@@ -3,6 +3,7 @@ import { JsonObject, NaturalSchema } from "@jaypie/types";
|
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
4
|
import { Toolkit } from "../../tools/Toolkit.class.js";
|
|
5
5
|
import { LlmHistory, LlmOperateOptions, LlmUsageItem } from "../../types/LlmProvider.interface.js";
|
|
6
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
6
7
|
import { ClassifiedError, OperateRequest, ParsedResponse, ProviderToolDefinition, StandardToolCall, StandardToolResult } from "../types.js";
|
|
7
8
|
import { BaseProviderAdapter } from "./ProviderAdapter.interface.js";
|
|
8
9
|
/**
|
|
@@ -17,6 +18,7 @@ export declare class AnthropicAdapter extends BaseProviderAdapter {
|
|
|
17
18
|
formatTools(toolkit: Toolkit, outputSchema?: JsonObject): ProviderToolDefinition[];
|
|
18
19
|
formatOutputSchema(schema: JsonObject | NaturalSchema | z.ZodType): JsonObject;
|
|
19
20
|
executeRequest(client: unknown, request: unknown): Promise<Anthropic.Message>;
|
|
21
|
+
executeStreamRequest(client: unknown, request: unknown): AsyncIterable<LlmStreamChunk>;
|
|
20
22
|
parseResponse(response: unknown, _options?: LlmOperateOptions): ParsedResponse;
|
|
21
23
|
extractToolCalls(response: unknown): StandardToolCall[];
|
|
22
24
|
extractUsage(response: unknown, model: string): LlmUsageItem;
|
|
@@ -2,6 +2,7 @@ import { JsonObject, NaturalSchema } from "@jaypie/types";
|
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
3
|
import { Toolkit } from "../../tools/Toolkit.class.js";
|
|
4
4
|
import { LlmHistory, LlmOperateOptions, LlmUsageItem } from "../../types/LlmProvider.interface.js";
|
|
5
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
5
6
|
import { ClassifiedError, OperateRequest, ParsedResponse, ProviderToolDefinition, StandardToolCall, StandardToolResult } from "../types.js";
|
|
6
7
|
import { BaseProviderAdapter } from "./ProviderAdapter.interface.js";
|
|
7
8
|
import { GeminiPart, GeminiRawResponse, GeminiRequest } from "../../providers/gemini/types.js";
|
|
@@ -17,6 +18,7 @@ export declare class GeminiAdapter extends BaseProviderAdapter {
|
|
|
17
18
|
formatTools(toolkit: Toolkit, outputSchema?: JsonObject): ProviderToolDefinition[];
|
|
18
19
|
formatOutputSchema(schema: JsonObject | NaturalSchema | z.ZodType): JsonObject;
|
|
19
20
|
executeRequest(client: unknown, request: unknown): Promise<GeminiRawResponse>;
|
|
21
|
+
executeStreamRequest(client: unknown, request: unknown): AsyncIterable<LlmStreamChunk>;
|
|
20
22
|
parseResponse(response: unknown, options?: LlmOperateOptions): ParsedResponse;
|
|
21
23
|
extractToolCalls(response: unknown): StandardToolCall[];
|
|
22
24
|
extractUsage(response: unknown, model: string): LlmUsageItem;
|
|
@@ -2,6 +2,7 @@ import { JsonObject, NaturalSchema } from "@jaypie/types";
|
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
3
|
import { Toolkit } from "../../tools/Toolkit.class.js";
|
|
4
4
|
import { LlmHistory, LlmOperateOptions, LlmToolResult, LlmUsageItem } from "../../types/LlmProvider.interface.js";
|
|
5
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
5
6
|
import { ClassifiedError, OperateRequest, ParsedResponse, ProviderToolDefinition, StandardToolCall, StandardToolResult } from "../types.js";
|
|
6
7
|
import { BaseProviderAdapter } from "./ProviderAdapter.interface.js";
|
|
7
8
|
/**
|
|
@@ -16,6 +17,7 @@ export declare class OpenAiAdapter extends BaseProviderAdapter {
|
|
|
16
17
|
formatTools(toolkit: Toolkit, _outputSchema?: JsonObject): ProviderToolDefinition[];
|
|
17
18
|
formatOutputSchema(schema: JsonObject | NaturalSchema | z.ZodType): JsonObject;
|
|
18
19
|
executeRequest(client: unknown, request: unknown): Promise<unknown>;
|
|
20
|
+
executeStreamRequest(client: unknown, request: unknown): AsyncIterable<LlmStreamChunk>;
|
|
19
21
|
parseResponse(response: unknown, options?: LlmOperateOptions): ParsedResponse;
|
|
20
22
|
extractToolCalls(response: unknown): StandardToolCall[];
|
|
21
23
|
extractUsage(response: unknown, model: string): LlmUsageItem;
|
|
@@ -2,6 +2,7 @@ import { JsonObject, NaturalSchema } from "@jaypie/types";
|
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
3
|
import { Toolkit } from "../../tools/Toolkit.class.js";
|
|
4
4
|
import { LlmHistory, LlmOperateOptions, LlmUsageItem } from "../../types/LlmProvider.interface.js";
|
|
5
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
5
6
|
import { ClassifiedError, OperateRequest, ParsedResponse, ProviderToolDefinition, StandardToolCall, StandardToolResult } from "../types.js";
|
|
6
7
|
import { BaseProviderAdapter } from "./ProviderAdapter.interface.js";
|
|
7
8
|
interface OpenRouterMessage {
|
|
@@ -78,6 +79,7 @@ export declare class OpenRouterAdapter extends BaseProviderAdapter {
|
|
|
78
79
|
formatTools(toolkit: Toolkit, outputSchema?: JsonObject): ProviderToolDefinition[];
|
|
79
80
|
formatOutputSchema(schema: JsonObject | NaturalSchema | z.ZodType): JsonObject;
|
|
80
81
|
executeRequest(client: unknown, request: unknown): Promise<OpenRouterResponse>;
|
|
82
|
+
executeStreamRequest(client: unknown, request: unknown): AsyncIterable<LlmStreamChunk>;
|
|
81
83
|
parseResponse(response: unknown, _options?: LlmOperateOptions): ParsedResponse;
|
|
82
84
|
extractToolCalls(response: unknown): StandardToolCall[];
|
|
83
85
|
extractUsage(response: unknown, model: string): LlmUsageItem;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JsonObject, NaturalSchema } from "@jaypie/types";
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
3
|
import { LlmHistory, LlmOperateOptions, LlmUsageItem } from "../../types/LlmProvider.interface.js";
|
|
4
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
4
5
|
import { Toolkit } from "../../tools/Toolkit.class.js";
|
|
5
6
|
import { ClassifiedError, OperateRequest, ParsedResponse, ProviderToolDefinition, StandardToolCall, StandardToolResult } from "../types.js";
|
|
6
7
|
/**
|
|
@@ -49,6 +50,14 @@ export interface ProviderAdapter {
|
|
|
49
50
|
* @returns Raw provider response
|
|
50
51
|
*/
|
|
51
52
|
executeRequest(client: unknown, request: unknown): Promise<unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Execute a streaming API request to the provider
|
|
55
|
+
*
|
|
56
|
+
* @param client - The provider's SDK client instance
|
|
57
|
+
* @param request - Provider-specific request object (from buildRequest)
|
|
58
|
+
* @returns AsyncIterable of stream chunks
|
|
59
|
+
*/
|
|
60
|
+
executeStreamRequest?(client: unknown, request: unknown): AsyncIterable<LlmStreamChunk>;
|
|
52
61
|
/**
|
|
53
62
|
* Parse a provider response into standardized format
|
|
54
63
|
*
|
|
@@ -2,6 +2,8 @@ export { AnthropicAdapter, anthropicAdapter, BaseProviderAdapter, GeminiAdapter,
|
|
|
2
2
|
export type { ProviderAdapter } from "./adapters/index.js";
|
|
3
3
|
export { createOperateLoop, OperateLoop } from "./OperateLoop.js";
|
|
4
4
|
export type { OperateLoopConfig } from "./OperateLoop.js";
|
|
5
|
+
export { createStreamLoop, StreamLoop } from "./StreamLoop.js";
|
|
6
|
+
export type { StreamLoopConfig } from "./StreamLoop.js";
|
|
5
7
|
export { HookRunner, hookRunner } from "./hooks/index.js";
|
|
6
8
|
export type { AfterModelResponseContext, AfterToolContext, BeforeModelRequestContext, BeforeToolContext, LlmHooks, RetryableErrorContext, ToolErrorContext, UnrecoverableErrorContext, } from "./hooks/index.js";
|
|
7
9
|
export { InputProcessor, inputProcessor } from "./input/index.js";
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { JsonObject } from "@jaypie/types";
|
|
2
2
|
import { LlmHistory, LlmInputMessage, LlmMessageOptions, LlmOperateOptions, LlmOperateResponse, LlmProvider } from "../../types/LlmProvider.interface.js";
|
|
3
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
3
4
|
export declare class AnthropicProvider implements LlmProvider {
|
|
4
5
|
private model;
|
|
5
6
|
private _client?;
|
|
6
7
|
private _operateLoop?;
|
|
8
|
+
private _streamLoop?;
|
|
7
9
|
private apiKey?;
|
|
8
10
|
private log;
|
|
9
11
|
private conversationHistory;
|
|
@@ -12,6 +14,8 @@ export declare class AnthropicProvider implements LlmProvider {
|
|
|
12
14
|
});
|
|
13
15
|
private getClient;
|
|
14
16
|
private getOperateLoop;
|
|
17
|
+
private getStreamLoop;
|
|
15
18
|
send(message: string, options?: LlmMessageOptions): Promise<string | JsonObject>;
|
|
16
19
|
operate(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): Promise<LlmOperateResponse>;
|
|
20
|
+
stream(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
17
21
|
}
|
|
@@ -3,7 +3,7 @@ import { LlmMessageOptions } from "../../types/LlmProvider.interface.js";
|
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
4
|
import { JsonObject, NaturalSchema } from "@jaypie/types";
|
|
5
5
|
export declare function loadSdk(): Promise<typeof import("@anthropic-ai/sdk")>;
|
|
6
|
-
export declare const getLogger: () =>
|
|
6
|
+
export declare const getLogger: () => any;
|
|
7
7
|
export declare function initializeClient({ apiKey, }?: {
|
|
8
8
|
apiKey?: string;
|
|
9
9
|
}): Promise<Anthropic>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { JsonObject } from "@jaypie/types";
|
|
2
2
|
import { LlmHistory, LlmInputMessage, LlmMessageOptions, LlmOperateOptions, LlmOperateResponse, LlmProvider } from "../../types/LlmProvider.interface.js";
|
|
3
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
3
4
|
export declare class GeminiProvider implements LlmProvider {
|
|
4
5
|
private model;
|
|
5
6
|
private _client?;
|
|
6
7
|
private _operateLoop?;
|
|
8
|
+
private _streamLoop?;
|
|
7
9
|
private apiKey?;
|
|
8
10
|
private log;
|
|
9
11
|
private conversationHistory;
|
|
@@ -12,6 +14,8 @@ export declare class GeminiProvider implements LlmProvider {
|
|
|
12
14
|
});
|
|
13
15
|
private getClient;
|
|
14
16
|
private getOperateLoop;
|
|
17
|
+
private getStreamLoop;
|
|
15
18
|
send(message: string, options?: LlmMessageOptions): Promise<string | JsonObject>;
|
|
16
19
|
operate(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): Promise<LlmOperateResponse>;
|
|
20
|
+
stream(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
17
21
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { GoogleGenAI } from "@google/genai";
|
|
2
2
|
import { LlmMessageOptions } from "../../types/LlmProvider.interface.js";
|
|
3
3
|
export declare function loadSdk(): Promise<typeof import("@google/genai")>;
|
|
4
|
-
export declare const getLogger: () =>
|
|
4
|
+
export declare const getLogger: () => any;
|
|
5
5
|
export declare function initializeClient({ apiKey, }?: {
|
|
6
6
|
apiKey?: string;
|
|
7
7
|
}): Promise<GoogleGenAI>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { JsonObject } from "@jaypie/types";
|
|
2
2
|
import { LlmHistory, LlmInputMessage, LlmMessageOptions, LlmOperateOptions, LlmOperateResponse, LlmProvider } from "../../types/LlmProvider.interface.js";
|
|
3
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
3
4
|
export declare class OpenAiProvider implements LlmProvider {
|
|
4
5
|
private model;
|
|
5
6
|
private _client?;
|
|
6
7
|
private _operateLoop?;
|
|
8
|
+
private _streamLoop?;
|
|
7
9
|
private apiKey?;
|
|
8
10
|
private log;
|
|
9
11
|
private conversationHistory;
|
|
@@ -12,6 +14,8 @@ export declare class OpenAiProvider implements LlmProvider {
|
|
|
12
14
|
});
|
|
13
15
|
private getClient;
|
|
14
16
|
private getOperateLoop;
|
|
17
|
+
private getStreamLoop;
|
|
15
18
|
send(message: string, options?: LlmMessageOptions): Promise<string | JsonObject>;
|
|
16
19
|
operate(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): Promise<LlmOperateResponse>;
|
|
20
|
+
stream(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
17
21
|
}
|
|
@@ -2,7 +2,7 @@ import { JsonObject, NaturalSchema } from "@jaypie/types";
|
|
|
2
2
|
import { OpenAI } from "openai";
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
4
|
import { LlmMessageOptions } from "../../types/LlmProvider.interface.js";
|
|
5
|
-
export declare const getLogger: () =>
|
|
5
|
+
export declare const getLogger: () => any;
|
|
6
6
|
export declare function initializeClient({ apiKey, }?: {
|
|
7
7
|
apiKey?: string;
|
|
8
8
|
}): Promise<OpenAI>;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { JsonObject } from "@jaypie/types";
|
|
2
2
|
import { LlmHistory, LlmInputMessage, LlmMessageOptions, LlmOperateOptions, LlmOperateResponse, LlmProvider } from "../../types/LlmProvider.interface.js";
|
|
3
|
+
import { LlmStreamChunk } from "../../types/LlmStreamChunk.interface.js";
|
|
3
4
|
export declare class OpenRouterProvider implements LlmProvider {
|
|
4
5
|
private model;
|
|
5
6
|
private _client?;
|
|
6
7
|
private _operateLoop?;
|
|
8
|
+
private _streamLoop?;
|
|
7
9
|
private apiKey?;
|
|
8
10
|
private log;
|
|
9
11
|
private conversationHistory;
|
|
@@ -12,6 +14,8 @@ export declare class OpenRouterProvider implements LlmProvider {
|
|
|
12
14
|
});
|
|
13
15
|
private getClient;
|
|
14
16
|
private getOperateLoop;
|
|
17
|
+
private getStreamLoop;
|
|
15
18
|
send(message: string, options?: LlmMessageOptions): Promise<string | JsonObject>;
|
|
16
19
|
operate(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): Promise<LlmOperateResponse>;
|
|
20
|
+
stream(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
17
21
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { OpenRouter } from "@openrouter/sdk";
|
|
2
2
|
import { LlmMessageOptions } from "../../types/LlmProvider.interface.js";
|
|
3
3
|
export declare function loadSdk(): Promise<typeof import("@openrouter/sdk")>;
|
|
4
|
-
export declare const getLogger: () =>
|
|
4
|
+
export declare const getLogger: () => any;
|
|
5
5
|
export declare function initializeClient({ apiKey, }?: {
|
|
6
6
|
apiKey?: string;
|
|
7
7
|
}): Promise<OpenRouter>;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { AnyValue, JsonObject, JsonReturn, NaturalMap, NaturalSchema } from "@jaypie/types";
|
|
2
2
|
import { z } from "zod/v4";
|
|
3
3
|
import { LlmTool } from "./LlmTool.interface.js";
|
|
4
|
+
import { LlmStreamChunk } from "./LlmStreamChunk.interface.js";
|
|
4
5
|
import { Toolkit } from "../tools/Toolkit.class.js";
|
|
5
6
|
export declare enum LlmMessageRole {
|
|
6
7
|
Assistant = "assistant",
|
|
@@ -194,5 +195,6 @@ export interface LlmOperateResponse {
|
|
|
194
195
|
export interface LlmProvider {
|
|
195
196
|
operate?(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): Promise<LlmOperateResponse>;
|
|
196
197
|
send(message: string, options?: LlmMessageOptions): Promise<string | JsonObject>;
|
|
198
|
+
stream?(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
197
199
|
}
|
|
198
200
|
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { LlmUsage } from "./LlmProvider.interface.js";
|
|
2
|
+
export declare enum LlmStreamChunkType {
|
|
3
|
+
Done = "done",
|
|
4
|
+
Error = "error",
|
|
5
|
+
Text = "text",
|
|
6
|
+
ToolCall = "tool_call",
|
|
7
|
+
ToolResult = "tool_result"
|
|
8
|
+
}
|
|
9
|
+
export interface LlmStreamChunkText {
|
|
10
|
+
type: LlmStreamChunkType.Text;
|
|
11
|
+
content: string;
|
|
12
|
+
}
|
|
13
|
+
export interface LlmStreamChunkToolCall {
|
|
14
|
+
type: LlmStreamChunkType.ToolCall;
|
|
15
|
+
toolCall: {
|
|
16
|
+
id: string;
|
|
17
|
+
name: string;
|
|
18
|
+
arguments: string;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export interface LlmStreamChunkToolResult {
|
|
22
|
+
type: LlmStreamChunkType.ToolResult;
|
|
23
|
+
toolResult: {
|
|
24
|
+
id: string;
|
|
25
|
+
name: string;
|
|
26
|
+
result: unknown;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface LlmStreamChunkDone {
|
|
30
|
+
type: LlmStreamChunkType.Done;
|
|
31
|
+
usage: LlmUsage;
|
|
32
|
+
}
|
|
33
|
+
export interface LlmStreamChunkError {
|
|
34
|
+
type: LlmStreamChunkType.Error;
|
|
35
|
+
error: {
|
|
36
|
+
detail?: string;
|
|
37
|
+
status: number | string;
|
|
38
|
+
title: string;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export type LlmStreamChunk = LlmStreamChunkDone | LlmStreamChunkError | LlmStreamChunkText | LlmStreamChunkToolCall | LlmStreamChunkToolResult;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const getLogger: () =>
|
|
2
|
-
export declare const log:
|
|
1
|
+
export declare const getLogger: () => any;
|
|
2
|
+
export declare const log: any;
|
package/dist/esm/Llm.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { JsonObject } from "@jaypie/types";
|
|
2
2
|
import { LlmProviderName } from "./constants.js";
|
|
3
3
|
import { LlmProvider, LlmHistory, LlmInputMessage, LlmMessageOptions, LlmOperateOptions, LlmOptions, LlmOperateResponse } from "./types/LlmProvider.interface.js";
|
|
4
|
+
import { LlmStreamChunk } from "./types/LlmStreamChunk.interface.js";
|
|
4
5
|
declare class Llm implements LlmProvider {
|
|
5
6
|
private _provider;
|
|
6
7
|
private _llm;
|
|
@@ -9,6 +10,7 @@ declare class Llm implements LlmProvider {
|
|
|
9
10
|
private createProvider;
|
|
10
11
|
send(message: string, options?: LlmMessageOptions): Promise<string | JsonObject>;
|
|
11
12
|
operate(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): Promise<LlmOperateResponse>;
|
|
13
|
+
stream(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
12
14
|
static send(message: string, options?: LlmMessageOptions & {
|
|
13
15
|
llm?: LlmProviderName;
|
|
14
16
|
apiKey?: string;
|
|
@@ -19,5 +21,10 @@ declare class Llm implements LlmProvider {
|
|
|
19
21
|
apiKey?: string;
|
|
20
22
|
model?: string;
|
|
21
23
|
}): Promise<LlmOperateResponse>;
|
|
24
|
+
static stream(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions & {
|
|
25
|
+
llm?: LlmProviderName;
|
|
26
|
+
apiKey?: string;
|
|
27
|
+
model?: string;
|
|
28
|
+
}): AsyncIterable<LlmStreamChunk>;
|
|
22
29
|
}
|
|
23
30
|
export default Llm;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export * as LLM from "./constants.js";
|
|
|
3
3
|
export type { LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProvider, } from "./types/LlmProvider.interface.js";
|
|
4
4
|
export { LlmMessageRole, LlmMessageType, } from "./types/LlmProvider.interface.js";
|
|
5
5
|
export type { LlmTool } from "./types/LlmTool.interface.js";
|
|
6
|
+
export type { LlmStreamChunk, LlmStreamChunkDone, LlmStreamChunkError, LlmStreamChunkText, LlmStreamChunkToolCall, LlmStreamChunkToolResult, } from "./types/LlmStreamChunk.interface.js";
|
|
7
|
+
export { LlmStreamChunkType } from "./types/LlmStreamChunk.interface.js";
|
|
6
8
|
export { JaypieToolkit, toolkit, Toolkit, tools } from "./tools/index.js";
|
|
7
9
|
export { GeminiProvider } from "./providers/gemini/index.js";
|
|
8
10
|
export { OpenRouterProvider } from "./providers/openrouter/index.js";
|