@jaypie/llm 1.3.6 → 1.3.8
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/index.cjs +219 -36
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +76 -6
- package/dist/cjs/src/index.d.ts +2 -2
- package/dist/cjs/src/operate/OperateLoop.d.ts +5 -0
- package/dist/cjs/src/operate/hooks/HookRunner.d.ts +3 -0
- package/dist/cjs/src/operate/progress/emitProgress.d.ts +10 -0
- package/dist/cjs/src/operate/progress/index.d.ts +1 -0
- package/dist/cjs/src/tools/Toolkit.class.d.ts +13 -1
- package/dist/cjs/src/types/LlmProvider.interface.d.ts +61 -3
- package/dist/esm/index.d.ts +76 -6
- package/dist/esm/index.js +220 -37
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/src/index.d.ts +2 -2
- package/dist/esm/src/operate/OperateLoop.d.ts +5 -0
- package/dist/esm/src/operate/hooks/HookRunner.d.ts +3 -0
- package/dist/esm/src/operate/progress/emitProgress.d.ts +10 -0
- package/dist/esm/src/operate/progress/index.d.ts +1 -0
- package/dist/esm/src/tools/Toolkit.class.d.ts +13 -1
- package/dist/esm/src/types/LlmProvider.interface.d.ts +61 -3
- package/package.json +1 -1
package/dist/cjs/index.d.cts
CHANGED
|
@@ -227,9 +227,21 @@ declare class Toolkit {
|
|
|
227
227
|
private readonly log;
|
|
228
228
|
constructor(tools: LlmTool[], options?: ToolkitOptions);
|
|
229
229
|
get tools(): Omit<LlmTool, "call">[];
|
|
230
|
-
|
|
230
|
+
private parseArgs;
|
|
231
|
+
/**
|
|
232
|
+
* Resolve a tool's `message` (static string or function of args) without
|
|
233
|
+
* calling the tool. Returns undefined when the tool is missing or defines
|
|
234
|
+
* no message. Never throws; resolution errors log at warn.
|
|
235
|
+
*/
|
|
236
|
+
resolveMessage({ name, arguments: args, }: {
|
|
231
237
|
name: string;
|
|
232
238
|
arguments: string;
|
|
239
|
+
}): Promise<string | undefined>;
|
|
240
|
+
call({ name, arguments: args, message: resolvedMessage, }: {
|
|
241
|
+
name: string;
|
|
242
|
+
arguments: string;
|
|
243
|
+
/** Pre-resolved tool message; skips re-resolving `tool.message` for logging */
|
|
244
|
+
message?: string;
|
|
233
245
|
}): Promise<_jaypie_types.AnyValue>;
|
|
234
246
|
extend(tools: LlmTool[], options?: {
|
|
235
247
|
warn?: boolean;
|
|
@@ -402,6 +414,51 @@ interface LlmMessageOptions {
|
|
|
402
414
|
response?: NaturalSchema | z.ZodType;
|
|
403
415
|
system?: string;
|
|
404
416
|
}
|
|
417
|
+
declare enum LlmProgressEventType {
|
|
418
|
+
Done = "done",
|
|
419
|
+
ModelRequest = "model_request",
|
|
420
|
+
ModelResponse = "model_response",
|
|
421
|
+
Retry = "retry",
|
|
422
|
+
Start = "start",
|
|
423
|
+
ToolCall = "tool_call",
|
|
424
|
+
ToolError = "tool_error",
|
|
425
|
+
ToolResult = "tool_result"
|
|
426
|
+
}
|
|
427
|
+
interface LlmProgressToolCall {
|
|
428
|
+
/** JSON string of arguments (tool_call events only) */
|
|
429
|
+
arguments?: string;
|
|
430
|
+
/** Resolved `LlmTool.message`, when the tool defines one (tool_call events only) */
|
|
431
|
+
message?: string;
|
|
432
|
+
/** Tool name */
|
|
433
|
+
name: string;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Lightweight, serializable progress event emitted by the operate loop.
|
|
437
|
+
* Suitable for forwarding directly to websockets, queues, or UI updates.
|
|
438
|
+
*/
|
|
439
|
+
interface LlmProgressEvent {
|
|
440
|
+
/** Text or structured content (model_response, done) */
|
|
441
|
+
content?: string | JsonObject;
|
|
442
|
+
/** Error message (tool_error, retry) */
|
|
443
|
+
error?: string;
|
|
444
|
+
/** Maximum turns allowed for the loop (start) */
|
|
445
|
+
maxTurns?: number;
|
|
446
|
+
/** Model handling the request (start, model_request) */
|
|
447
|
+
model?: string;
|
|
448
|
+
/** Provider name (start) */
|
|
449
|
+
provider?: string;
|
|
450
|
+
/** The tool involved (tool_call, tool_result, tool_error) */
|
|
451
|
+
tool?: LlmProgressToolCall;
|
|
452
|
+
/** Tools the model requested (model_response) */
|
|
453
|
+
toolCalls?: LlmProgressToolCall[];
|
|
454
|
+
/** Current turn, 1-indexed */
|
|
455
|
+
turn?: number;
|
|
456
|
+
/** Event type */
|
|
457
|
+
type: LlmProgressEventType;
|
|
458
|
+
/** Usage: this turn for model_response, cumulative for done */
|
|
459
|
+
usage?: LlmUsage;
|
|
460
|
+
}
|
|
461
|
+
type LlmProgressCallback = (event: LlmProgressEvent) => unknown | Promise<unknown>;
|
|
405
462
|
interface LlmOperateOptions {
|
|
406
463
|
data?: NaturalMap;
|
|
407
464
|
explain?: boolean;
|
|
@@ -418,19 +475,23 @@ interface LlmOperateOptions {
|
|
|
418
475
|
content: string | JsonObject;
|
|
419
476
|
usage: LlmUsage;
|
|
420
477
|
}) => unknown | Promise<unknown>;
|
|
421
|
-
afterEachTool?: ({ result, toolName, args, }: {
|
|
478
|
+
afterEachTool?: ({ result, toolName, args, message, }: {
|
|
422
479
|
result: unknown;
|
|
423
480
|
toolName: string;
|
|
424
481
|
args: string;
|
|
482
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
483
|
+
message?: string;
|
|
425
484
|
}) => unknown | Promise<unknown>;
|
|
426
485
|
beforeEachModelRequest?: ({ input, options, providerRequest, }: {
|
|
427
486
|
input: string | LlmHistory | LlmInputMessage;
|
|
428
487
|
options?: LlmOperateOptions;
|
|
429
488
|
providerRequest: any;
|
|
430
489
|
}) => unknown | Promise<unknown>;
|
|
431
|
-
beforeEachTool?: ({ toolName, args, }: {
|
|
490
|
+
beforeEachTool?: ({ toolName, args, message, }: {
|
|
432
491
|
toolName: string;
|
|
433
492
|
args: string;
|
|
493
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
494
|
+
message?: string;
|
|
434
495
|
}) => unknown | Promise<unknown>;
|
|
435
496
|
onRetryableModelError?: ({ input, options, providerRequest, error, }: {
|
|
436
497
|
input: string | LlmHistory | LlmInputMessage;
|
|
@@ -438,10 +499,12 @@ interface LlmOperateOptions {
|
|
|
438
499
|
providerRequest: any;
|
|
439
500
|
error: any;
|
|
440
501
|
}) => unknown | Promise<unknown>;
|
|
441
|
-
onToolError?: ({ error, toolName, args, }: {
|
|
502
|
+
onToolError?: ({ error, toolName, args, message, }: {
|
|
442
503
|
error: Error;
|
|
443
504
|
toolName: string;
|
|
444
505
|
args: string;
|
|
506
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
507
|
+
message?: string;
|
|
445
508
|
}) => unknown | Promise<unknown>;
|
|
446
509
|
onUnrecoverableModelError?: ({ input, options, providerRequest, error, }: {
|
|
447
510
|
input: string | LlmHistory | LlmInputMessage;
|
|
@@ -452,6 +515,13 @@ interface LlmOperateOptions {
|
|
|
452
515
|
};
|
|
453
516
|
instructions?: string;
|
|
454
517
|
model?: string;
|
|
518
|
+
/**
|
|
519
|
+
* Receives lightweight progress events as the operate loop runs:
|
|
520
|
+
* start, model_request, model_response, tool_call, tool_result,
|
|
521
|
+
* tool_error, retry, done. Errors thrown by the callback are logged
|
|
522
|
+
* and never interrupt the loop.
|
|
523
|
+
*/
|
|
524
|
+
onProgress?: LlmProgressCallback;
|
|
455
525
|
placeholders?: {
|
|
456
526
|
input?: boolean;
|
|
457
527
|
instructions?: boolean;
|
|
@@ -669,5 +739,5 @@ declare class XaiProvider implements LlmProvider {
|
|
|
669
739
|
stream(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
670
740
|
}
|
|
671
741
|
|
|
672
|
-
export { BedrockProvider, GoogleProvider as GeminiProvider, GoogleProvider, JaypieToolkit, constants as LLM, Llm, LlmMessageRole, LlmMessageType, LlmStreamChunkType, OpenRouterProvider, Toolkit, XaiProvider, extractReasoning, isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, jsonSchemaToNaturalSchema, naturalSchemaToJsonSchema, toolkit, tools };
|
|
673
|
-
export type { LlmFallbackConfig, LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateInput, LlmOperateInputContent, LlmOperateInputFile, LlmOperateInputImage, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProvider, LlmStreamChunk, LlmStreamChunkDone, LlmStreamChunkError, LlmStreamChunkText, LlmStreamChunkToolCall, LlmStreamChunkToolResult, LlmTool };
|
|
742
|
+
export { BedrockProvider, GoogleProvider as GeminiProvider, GoogleProvider, JaypieToolkit, constants as LLM, Llm, LlmMessageRole, LlmMessageType, LlmProgressEventType, LlmStreamChunkType, OpenRouterProvider, Toolkit, XaiProvider, extractReasoning, isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, jsonSchemaToNaturalSchema, naturalSchemaToJsonSchema, toolkit, tools };
|
|
743
|
+
export type { LlmFallbackConfig, LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateInput, LlmOperateInputContent, LlmOperateInputFile, LlmOperateInputImage, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProgressCallback, LlmProgressEvent, LlmProgressToolCall, LlmProvider, LlmStreamChunk, LlmStreamChunkDone, LlmStreamChunkError, LlmStreamChunkText, LlmStreamChunkToolCall, LlmStreamChunkToolResult, LlmTool };
|
package/dist/cjs/src/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { default as Llm } from "./Llm.js";
|
|
2
2
|
export * as LLM from "./constants.js";
|
|
3
|
-
export type { LlmFallbackConfig, LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateInput, LlmOperateInputContent, LlmOperateInputFile, LlmOperateInputImage, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProvider, } from "./types/LlmProvider.interface.js";
|
|
4
|
-
export { LlmMessageRole, LlmMessageType, } from "./types/LlmProvider.interface.js";
|
|
3
|
+
export type { LlmFallbackConfig, LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateInput, LlmOperateInputContent, LlmOperateInputFile, LlmOperateInputImage, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProgressCallback, LlmProgressEvent, LlmProgressToolCall, LlmProvider, } from "./types/LlmProvider.interface.js";
|
|
4
|
+
export { LlmMessageRole, LlmMessageType, LlmProgressEventType, } from "./types/LlmProvider.interface.js";
|
|
5
5
|
export { isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, } from "./types/LlmOperateInput.guards.js";
|
|
6
6
|
export type { LlmTool } from "./types/LlmTool.interface.js";
|
|
7
7
|
export type { LlmStreamChunk, LlmStreamChunkDone, LlmStreamChunkError, LlmStreamChunkText, LlmStreamChunkToolCall, LlmStreamChunkToolResult, } from "./types/LlmStreamChunk.interface.js";
|
|
@@ -34,6 +34,11 @@ export declare class OperateLoop {
|
|
|
34
34
|
private createContext;
|
|
35
35
|
private buildInitialRequest;
|
|
36
36
|
private executeOneTurn;
|
|
37
|
+
/**
|
|
38
|
+
* Draconian summary of a history item for trace logging: string message
|
|
39
|
+
* content is kept; everything else is reduced to its type.
|
|
40
|
+
*/
|
|
41
|
+
private summarizeHistoryItem;
|
|
37
42
|
/**
|
|
38
43
|
* Reconcile structured output against the declared `format` contract. A
|
|
39
44
|
* declared `format` is a schema contract: returned keys should match the
|
|
@@ -15,16 +15,19 @@ export interface AfterModelResponseContext {
|
|
|
15
15
|
}
|
|
16
16
|
export interface BeforeToolContext {
|
|
17
17
|
args: string;
|
|
18
|
+
message?: string;
|
|
18
19
|
toolName: string;
|
|
19
20
|
}
|
|
20
21
|
export interface AfterToolContext {
|
|
21
22
|
args: string;
|
|
23
|
+
message?: string;
|
|
22
24
|
result: unknown;
|
|
23
25
|
toolName: string;
|
|
24
26
|
}
|
|
25
27
|
export interface ToolErrorContext {
|
|
26
28
|
args: string;
|
|
27
29
|
error: Error;
|
|
30
|
+
message?: string;
|
|
28
31
|
toolName: string;
|
|
29
32
|
}
|
|
30
33
|
export interface RetryableErrorContext {
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { LlmProgressCallback, LlmProgressEvent } from "../../types/LlmProvider.interface.js";
|
|
2
|
+
/**
|
|
3
|
+
* Deliver a progress event to the caller's onProgress callback.
|
|
4
|
+
* Errors thrown by the callback are logged and swallowed — progress
|
|
5
|
+
* reporting must never interrupt the operate loop.
|
|
6
|
+
*/
|
|
7
|
+
export declare function emitProgress({ event, onProgress, }: {
|
|
8
|
+
event: LlmProgressEvent;
|
|
9
|
+
onProgress?: LlmProgressCallback;
|
|
10
|
+
}): Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { emitProgress } from "./emitProgress.js";
|
|
@@ -14,9 +14,21 @@ export declare class Toolkit {
|
|
|
14
14
|
private readonly log;
|
|
15
15
|
constructor(tools: LlmTool[], options?: ToolkitOptions);
|
|
16
16
|
get tools(): Omit<LlmTool, "call">[];
|
|
17
|
-
|
|
17
|
+
private parseArgs;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve a tool's `message` (static string or function of args) without
|
|
20
|
+
* calling the tool. Returns undefined when the tool is missing or defines
|
|
21
|
+
* no message. Never throws; resolution errors log at warn.
|
|
22
|
+
*/
|
|
23
|
+
resolveMessage({ name, arguments: args, }: {
|
|
18
24
|
name: string;
|
|
19
25
|
arguments: string;
|
|
26
|
+
}): Promise<string | undefined>;
|
|
27
|
+
call({ name, arguments: args, message: resolvedMessage, }: {
|
|
28
|
+
name: string;
|
|
29
|
+
arguments: string;
|
|
30
|
+
/** Pre-resolved tool message; skips re-resolving `tool.message` for logging */
|
|
31
|
+
message?: string;
|
|
20
32
|
}): Promise<import("@jaypie/types").AnyValue>;
|
|
21
33
|
extend(tools: LlmTool[], options?: {
|
|
22
34
|
warn?: boolean;
|
|
@@ -166,6 +166,51 @@ export interface LlmMessageOptions {
|
|
|
166
166
|
response?: NaturalSchema | z.ZodType;
|
|
167
167
|
system?: string;
|
|
168
168
|
}
|
|
169
|
+
export declare enum LlmProgressEventType {
|
|
170
|
+
Done = "done",
|
|
171
|
+
ModelRequest = "model_request",
|
|
172
|
+
ModelResponse = "model_response",
|
|
173
|
+
Retry = "retry",
|
|
174
|
+
Start = "start",
|
|
175
|
+
ToolCall = "tool_call",
|
|
176
|
+
ToolError = "tool_error",
|
|
177
|
+
ToolResult = "tool_result"
|
|
178
|
+
}
|
|
179
|
+
export interface LlmProgressToolCall {
|
|
180
|
+
/** JSON string of arguments (tool_call events only) */
|
|
181
|
+
arguments?: string;
|
|
182
|
+
/** Resolved `LlmTool.message`, when the tool defines one (tool_call events only) */
|
|
183
|
+
message?: string;
|
|
184
|
+
/** Tool name */
|
|
185
|
+
name: string;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Lightweight, serializable progress event emitted by the operate loop.
|
|
189
|
+
* Suitable for forwarding directly to websockets, queues, or UI updates.
|
|
190
|
+
*/
|
|
191
|
+
export interface LlmProgressEvent {
|
|
192
|
+
/** Text or structured content (model_response, done) */
|
|
193
|
+
content?: string | JsonObject;
|
|
194
|
+
/** Error message (tool_error, retry) */
|
|
195
|
+
error?: string;
|
|
196
|
+
/** Maximum turns allowed for the loop (start) */
|
|
197
|
+
maxTurns?: number;
|
|
198
|
+
/** Model handling the request (start, model_request) */
|
|
199
|
+
model?: string;
|
|
200
|
+
/** Provider name (start) */
|
|
201
|
+
provider?: string;
|
|
202
|
+
/** The tool involved (tool_call, tool_result, tool_error) */
|
|
203
|
+
tool?: LlmProgressToolCall;
|
|
204
|
+
/** Tools the model requested (model_response) */
|
|
205
|
+
toolCalls?: LlmProgressToolCall[];
|
|
206
|
+
/** Current turn, 1-indexed */
|
|
207
|
+
turn?: number;
|
|
208
|
+
/** Event type */
|
|
209
|
+
type: LlmProgressEventType;
|
|
210
|
+
/** Usage: this turn for model_response, cumulative for done */
|
|
211
|
+
usage?: LlmUsage;
|
|
212
|
+
}
|
|
213
|
+
export type LlmProgressCallback = (event: LlmProgressEvent) => unknown | Promise<unknown>;
|
|
169
214
|
export interface LlmOperateOptions {
|
|
170
215
|
data?: NaturalMap;
|
|
171
216
|
explain?: boolean;
|
|
@@ -182,19 +227,23 @@ export interface LlmOperateOptions {
|
|
|
182
227
|
content: string | JsonObject;
|
|
183
228
|
usage: LlmUsage;
|
|
184
229
|
}) => unknown | Promise<unknown>;
|
|
185
|
-
afterEachTool?: ({ result, toolName, args, }: {
|
|
230
|
+
afterEachTool?: ({ result, toolName, args, message, }: {
|
|
186
231
|
result: unknown;
|
|
187
232
|
toolName: string;
|
|
188
233
|
args: string;
|
|
234
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
235
|
+
message?: string;
|
|
189
236
|
}) => unknown | Promise<unknown>;
|
|
190
237
|
beforeEachModelRequest?: ({ input, options, providerRequest, }: {
|
|
191
238
|
input: string | LlmHistory | LlmInputMessage;
|
|
192
239
|
options?: LlmOperateOptions;
|
|
193
240
|
providerRequest: any;
|
|
194
241
|
}) => unknown | Promise<unknown>;
|
|
195
|
-
beforeEachTool?: ({ toolName, args, }: {
|
|
242
|
+
beforeEachTool?: ({ toolName, args, message, }: {
|
|
196
243
|
toolName: string;
|
|
197
244
|
args: string;
|
|
245
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
246
|
+
message?: string;
|
|
198
247
|
}) => unknown | Promise<unknown>;
|
|
199
248
|
onRetryableModelError?: ({ input, options, providerRequest, error, }: {
|
|
200
249
|
input: string | LlmHistory | LlmInputMessage;
|
|
@@ -202,10 +251,12 @@ export interface LlmOperateOptions {
|
|
|
202
251
|
providerRequest: any;
|
|
203
252
|
error: any;
|
|
204
253
|
}) => unknown | Promise<unknown>;
|
|
205
|
-
onToolError?: ({ error, toolName, args, }: {
|
|
254
|
+
onToolError?: ({ error, toolName, args, message, }: {
|
|
206
255
|
error: Error;
|
|
207
256
|
toolName: string;
|
|
208
257
|
args: string;
|
|
258
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
259
|
+
message?: string;
|
|
209
260
|
}) => unknown | Promise<unknown>;
|
|
210
261
|
onUnrecoverableModelError?: ({ input, options, providerRequest, error, }: {
|
|
211
262
|
input: string | LlmHistory | LlmInputMessage;
|
|
@@ -216,6 +267,13 @@ export interface LlmOperateOptions {
|
|
|
216
267
|
};
|
|
217
268
|
instructions?: string;
|
|
218
269
|
model?: string;
|
|
270
|
+
/**
|
|
271
|
+
* Receives lightweight progress events as the operate loop runs:
|
|
272
|
+
* start, model_request, model_response, tool_call, tool_result,
|
|
273
|
+
* tool_error, retry, done. Errors thrown by the callback are logged
|
|
274
|
+
* and never interrupt the loop.
|
|
275
|
+
*/
|
|
276
|
+
onProgress?: LlmProgressCallback;
|
|
219
277
|
placeholders?: {
|
|
220
278
|
input?: boolean;
|
|
221
279
|
instructions?: boolean;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -227,9 +227,21 @@ declare class Toolkit {
|
|
|
227
227
|
private readonly log;
|
|
228
228
|
constructor(tools: LlmTool[], options?: ToolkitOptions);
|
|
229
229
|
get tools(): Omit<LlmTool, "call">[];
|
|
230
|
-
|
|
230
|
+
private parseArgs;
|
|
231
|
+
/**
|
|
232
|
+
* Resolve a tool's `message` (static string or function of args) without
|
|
233
|
+
* calling the tool. Returns undefined when the tool is missing or defines
|
|
234
|
+
* no message. Never throws; resolution errors log at warn.
|
|
235
|
+
*/
|
|
236
|
+
resolveMessage({ name, arguments: args, }: {
|
|
231
237
|
name: string;
|
|
232
238
|
arguments: string;
|
|
239
|
+
}): Promise<string | undefined>;
|
|
240
|
+
call({ name, arguments: args, message: resolvedMessage, }: {
|
|
241
|
+
name: string;
|
|
242
|
+
arguments: string;
|
|
243
|
+
/** Pre-resolved tool message; skips re-resolving `tool.message` for logging */
|
|
244
|
+
message?: string;
|
|
233
245
|
}): Promise<_jaypie_types.AnyValue>;
|
|
234
246
|
extend(tools: LlmTool[], options?: {
|
|
235
247
|
warn?: boolean;
|
|
@@ -402,6 +414,51 @@ interface LlmMessageOptions {
|
|
|
402
414
|
response?: NaturalSchema | z.ZodType;
|
|
403
415
|
system?: string;
|
|
404
416
|
}
|
|
417
|
+
declare enum LlmProgressEventType {
|
|
418
|
+
Done = "done",
|
|
419
|
+
ModelRequest = "model_request",
|
|
420
|
+
ModelResponse = "model_response",
|
|
421
|
+
Retry = "retry",
|
|
422
|
+
Start = "start",
|
|
423
|
+
ToolCall = "tool_call",
|
|
424
|
+
ToolError = "tool_error",
|
|
425
|
+
ToolResult = "tool_result"
|
|
426
|
+
}
|
|
427
|
+
interface LlmProgressToolCall {
|
|
428
|
+
/** JSON string of arguments (tool_call events only) */
|
|
429
|
+
arguments?: string;
|
|
430
|
+
/** Resolved `LlmTool.message`, when the tool defines one (tool_call events only) */
|
|
431
|
+
message?: string;
|
|
432
|
+
/** Tool name */
|
|
433
|
+
name: string;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Lightweight, serializable progress event emitted by the operate loop.
|
|
437
|
+
* Suitable for forwarding directly to websockets, queues, or UI updates.
|
|
438
|
+
*/
|
|
439
|
+
interface LlmProgressEvent {
|
|
440
|
+
/** Text or structured content (model_response, done) */
|
|
441
|
+
content?: string | JsonObject;
|
|
442
|
+
/** Error message (tool_error, retry) */
|
|
443
|
+
error?: string;
|
|
444
|
+
/** Maximum turns allowed for the loop (start) */
|
|
445
|
+
maxTurns?: number;
|
|
446
|
+
/** Model handling the request (start, model_request) */
|
|
447
|
+
model?: string;
|
|
448
|
+
/** Provider name (start) */
|
|
449
|
+
provider?: string;
|
|
450
|
+
/** The tool involved (tool_call, tool_result, tool_error) */
|
|
451
|
+
tool?: LlmProgressToolCall;
|
|
452
|
+
/** Tools the model requested (model_response) */
|
|
453
|
+
toolCalls?: LlmProgressToolCall[];
|
|
454
|
+
/** Current turn, 1-indexed */
|
|
455
|
+
turn?: number;
|
|
456
|
+
/** Event type */
|
|
457
|
+
type: LlmProgressEventType;
|
|
458
|
+
/** Usage: this turn for model_response, cumulative for done */
|
|
459
|
+
usage?: LlmUsage;
|
|
460
|
+
}
|
|
461
|
+
type LlmProgressCallback = (event: LlmProgressEvent) => unknown | Promise<unknown>;
|
|
405
462
|
interface LlmOperateOptions {
|
|
406
463
|
data?: NaturalMap;
|
|
407
464
|
explain?: boolean;
|
|
@@ -418,19 +475,23 @@ interface LlmOperateOptions {
|
|
|
418
475
|
content: string | JsonObject;
|
|
419
476
|
usage: LlmUsage;
|
|
420
477
|
}) => unknown | Promise<unknown>;
|
|
421
|
-
afterEachTool?: ({ result, toolName, args, }: {
|
|
478
|
+
afterEachTool?: ({ result, toolName, args, message, }: {
|
|
422
479
|
result: unknown;
|
|
423
480
|
toolName: string;
|
|
424
481
|
args: string;
|
|
482
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
483
|
+
message?: string;
|
|
425
484
|
}) => unknown | Promise<unknown>;
|
|
426
485
|
beforeEachModelRequest?: ({ input, options, providerRequest, }: {
|
|
427
486
|
input: string | LlmHistory | LlmInputMessage;
|
|
428
487
|
options?: LlmOperateOptions;
|
|
429
488
|
providerRequest: any;
|
|
430
489
|
}) => unknown | Promise<unknown>;
|
|
431
|
-
beforeEachTool?: ({ toolName, args, }: {
|
|
490
|
+
beforeEachTool?: ({ toolName, args, message, }: {
|
|
432
491
|
toolName: string;
|
|
433
492
|
args: string;
|
|
493
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
494
|
+
message?: string;
|
|
434
495
|
}) => unknown | Promise<unknown>;
|
|
435
496
|
onRetryableModelError?: ({ input, options, providerRequest, error, }: {
|
|
436
497
|
input: string | LlmHistory | LlmInputMessage;
|
|
@@ -438,10 +499,12 @@ interface LlmOperateOptions {
|
|
|
438
499
|
providerRequest: any;
|
|
439
500
|
error: any;
|
|
440
501
|
}) => unknown | Promise<unknown>;
|
|
441
|
-
onToolError?: ({ error, toolName, args, }: {
|
|
502
|
+
onToolError?: ({ error, toolName, args, message, }: {
|
|
442
503
|
error: Error;
|
|
443
504
|
toolName: string;
|
|
444
505
|
args: string;
|
|
506
|
+
/** Resolved `LlmTool.message`, when the tool defines one */
|
|
507
|
+
message?: string;
|
|
445
508
|
}) => unknown | Promise<unknown>;
|
|
446
509
|
onUnrecoverableModelError?: ({ input, options, providerRequest, error, }: {
|
|
447
510
|
input: string | LlmHistory | LlmInputMessage;
|
|
@@ -452,6 +515,13 @@ interface LlmOperateOptions {
|
|
|
452
515
|
};
|
|
453
516
|
instructions?: string;
|
|
454
517
|
model?: string;
|
|
518
|
+
/**
|
|
519
|
+
* Receives lightweight progress events as the operate loop runs:
|
|
520
|
+
* start, model_request, model_response, tool_call, tool_result,
|
|
521
|
+
* tool_error, retry, done. Errors thrown by the callback are logged
|
|
522
|
+
* and never interrupt the loop.
|
|
523
|
+
*/
|
|
524
|
+
onProgress?: LlmProgressCallback;
|
|
455
525
|
placeholders?: {
|
|
456
526
|
input?: boolean;
|
|
457
527
|
instructions?: boolean;
|
|
@@ -669,5 +739,5 @@ declare class XaiProvider implements LlmProvider {
|
|
|
669
739
|
stream(input: string | LlmHistory | LlmInputMessage, options?: LlmOperateOptions): AsyncIterable<LlmStreamChunk>;
|
|
670
740
|
}
|
|
671
741
|
|
|
672
|
-
export { BedrockProvider, GoogleProvider as GeminiProvider, GoogleProvider, JaypieToolkit, constants as LLM, Llm, LlmMessageRole, LlmMessageType, LlmStreamChunkType, OpenRouterProvider, Toolkit, XaiProvider, extractReasoning, isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, jsonSchemaToNaturalSchema, naturalSchemaToJsonSchema, toolkit, tools };
|
|
673
|
-
export type { LlmFallbackConfig, LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateInput, LlmOperateInputContent, LlmOperateInputFile, LlmOperateInputImage, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProvider, LlmStreamChunk, LlmStreamChunkDone, LlmStreamChunkError, LlmStreamChunkText, LlmStreamChunkToolCall, LlmStreamChunkToolResult, LlmTool };
|
|
742
|
+
export { BedrockProvider, GoogleProvider as GeminiProvider, GoogleProvider, JaypieToolkit, constants as LLM, Llm, LlmMessageRole, LlmMessageType, LlmProgressEventType, LlmStreamChunkType, OpenRouterProvider, Toolkit, XaiProvider, extractReasoning, isLlmOperateInput, isLlmOperateInputContent, isLlmOperateInputFile, isLlmOperateInputImage, jsonSchemaToNaturalSchema, naturalSchemaToJsonSchema, toolkit, tools };
|
|
743
|
+
export type { LlmFallbackConfig, LlmHistory, LlmInputContent, LlmInputContentFile, LlmInputContentImage, LlmInputContentText, LlmInputMessage, LlmMessageOptions, LlmOperateInput, LlmOperateInputContent, LlmOperateInputFile, LlmOperateInputImage, LlmOperateOptions, LlmOperateResponse, LlmOptions, LlmProgressCallback, LlmProgressEvent, LlmProgressToolCall, LlmProvider, LlmStreamChunk, LlmStreamChunkDone, LlmStreamChunkError, LlmStreamChunkText, LlmStreamChunkToolCall, LlmStreamChunkToolResult, LlmTool };
|