@mate-academy/llm-gateway 8.0.0 → 8.2.0
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/README.md +76 -4
- package/dist/LLMGateway.d.ts +2 -2
- package/dist/LLMGateway.js.map +1 -1
- package/dist/LLMGateway.typedefs.d.ts +2 -2
- package/dist/LLMService.typedefs.d.ts +20 -0
- package/dist/LLMService.typedefs.js.map +1 -1
- package/dist/client/LLMAgent.d.ts +17 -4
- package/dist/client/LLMAgent.js +4 -0
- package/dist/client/LLMAgent.js.map +1 -1
- package/dist/client/LLMClientEngine.d.ts +81 -0
- package/dist/client/LLMClientEngine.js +350 -0
- package/dist/client/LLMClientEngine.js.map +1 -0
- package/dist/client/agentRun.typedefs.d.ts +18 -3
- package/dist/client/agentRun.typedefs.js +1 -0
- package/dist/client/agentRun.typedefs.js.map +1 -1
- package/dist/client/agentRunner.d.ts +38 -3
- package/dist/client/agentRunner.js +206 -80
- package/dist/client/agentRunner.js.map +1 -1
- package/dist/client/codegen/fetchPromptRecords.d.ts +1 -1
- package/dist/client/codegen/index.d.ts +1 -0
- package/dist/client/codegen/index.js +1 -0
- package/dist/client/codegen/index.js.map +1 -1
- package/dist/client/codegen/renderSnapshot.constants.d.ts +12 -0
- package/dist/client/codegen/renderSnapshot.constants.js +21 -0
- package/dist/client/codegen/renderSnapshot.constants.js.map +1 -0
- package/dist/client/codegen/renderSnapshot.d.ts +6 -18
- package/dist/client/codegen/renderSnapshot.js +152 -125
- package/dist/client/codegen/renderSnapshot.js.map +1 -1
- package/dist/client/codegen/renderSnapshot.typedefs.d.ts +20 -0
- package/dist/client/codegen/renderSnapshot.typedefs.js +3 -0
- package/dist/client/codegen/renderSnapshot.typedefs.js.map +1 -0
- package/dist/client/coerceToolResult.d.ts +10 -0
- package/dist/client/coerceToolResult.js +38 -0
- package/dist/client/coerceToolResult.js.map +1 -0
- package/dist/client/createLLMClient.d.ts +1 -40
- package/dist/client/createLLMClient.js +5 -329
- package/dist/client/createLLMClient.js.map +1 -1
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/llmClient.typedefs.d.ts +180 -0
- package/dist/client/{createLLMClient.typedefs.js → llmClient.typedefs.js} +1 -1
- package/dist/client/llmClient.typedefs.js.map +1 -0
- package/dist/client/plainMessages.d.ts +1 -1
- package/dist/client/promptRegistry.runtime.d.ts +2 -2
- package/dist/client/promptRegistry.runtime.js.map +1 -1
- package/dist/client/promptVariables.d.ts +7 -0
- package/dist/client/promptVariables.js +13 -0
- package/dist/client/promptVariables.js.map +1 -0
- package/dist/client/snapshotRuntime.d.ts +17 -0
- package/dist/client/snapshotRuntime.js +42 -0
- package/dist/client/snapshotRuntime.js.map +1 -0
- package/dist/client/snapshotRuntime.typedefs.d.ts +13 -0
- package/dist/client/snapshotRuntime.typedefs.js +3 -0
- package/dist/client/snapshotRuntime.typedefs.js.map +1 -0
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js +6 -0
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAIAssistance.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js +6 -0
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAICompletion.service.js.map +1 -1
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js +3 -0
- package/dist/providers/GoogleGenerativeAI/services/GoogleGenerativeAISpeechToText.service.js.map +1 -1
- package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.d.ts +0 -2
- package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js +43 -25
- package/dist/providers/LLMAPI/services/LLMAPIAssistance.service.js.map +1 -1
- package/dist/providers/LLMAPI/services/LLMAPICompletion.service.d.ts +0 -2
- package/dist/providers/LLMAPI/services/LLMAPICompletion.service.js +18 -17
- package/dist/providers/LLMAPI/services/LLMAPICompletion.service.js.map +1 -1
- package/dist/providers/LLMAPI/utilities/index.d.ts +1 -1
- package/dist/providers/LLMAPI/utilities/index.js +3 -4
- package/dist/providers/LLMAPI/utilities/index.js.map +1 -1
- package/dist/providers/LLMAPI/utilities/validateStructuredResponse.d.ts +10 -0
- package/dist/providers/LLMAPI/utilities/validateStructuredResponse.js +21 -0
- package/dist/providers/LLMAPI/utilities/validateStructuredResponse.js.map +1 -0
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js +6 -0
- package/dist/providers/OpenAI/services/OpenAIAssistance.service.js.map +1 -1
- package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js +6 -0
- package/dist/providers/OpenAICompatible/OpenAICompatibleCompletion.service.js.map +1 -1
- package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.js +3 -0
- package/dist/providers/OpenAICompatible/OpenAICompatibleSpeechToText.service.js.map +1 -1
- package/dist/services/LLMBaseService.abstract.d.ts +4 -3
- package/dist/services/LLMBaseService.abstract.js +6 -3
- package/dist/services/LLMBaseService.abstract.js.map +1 -1
- package/dist/utilities/index.d.ts +0 -1
- package/dist/utilities/index.js +0 -1
- package/dist/utilities/index.js.map +1 -1
- package/dist/utilities/llmTracing/llmTracing.constants.d.ts +5 -4
- package/dist/utilities/llmTracing/llmTracing.constants.js +6 -5
- package/dist/utilities/llmTracing/llmTracing.constants.js.map +1 -1
- package/dist/utilities/llmTracing/llmTracing.typedefs.d.ts +18 -9
- package/dist/utilities/llmTracing/noopLLMTracing.d.ts +2 -2
- package/dist/utilities/llmTracing/noopLLMTracing.js.map +1 -1
- package/dist/utilities/tools/LLMTool.d.ts +3 -12
- package/dist/utilities/tools/LLMTool.js.map +1 -1
- package/package.json +2 -1
- package/dist/client/createLLMClient.typedefs.d.ts +0 -91
- package/dist/client/createLLMClient.typedefs.js.map +0 -1
- package/dist/providers/LLMAPI/utilities/LLMAPIJsonFixer.d.ts +0 -24
- package/dist/providers/LLMAPI/utilities/LLMAPIJsonFixer.js +0 -237
- package/dist/providers/LLMAPI/utilities/LLMAPIJsonFixer.js.map +0 -1
- package/dist/utilities/traceIO.d.ts +0 -17
- package/dist/utilities/traceIO.js +0 -48
- package/dist/utilities/traceIO.js.map +0 -1
|
@@ -156,7 +156,7 @@ class LLMBaseService {
|
|
|
156
156
|
if (!this.tracer.isEnabled) {
|
|
157
157
|
return undefined;
|
|
158
158
|
}
|
|
159
|
-
const { method, traceContext, input, output, modelParameters } = params;
|
|
159
|
+
const { method, traceContext, input, output, modelParameters, startedAt, } = params;
|
|
160
160
|
return {
|
|
161
161
|
name: traceContext?.prompt?.name
|
|
162
162
|
?? traceContext?.promptName
|
|
@@ -166,6 +166,7 @@ class LLMBaseService {
|
|
|
166
166
|
output,
|
|
167
167
|
modelParameters,
|
|
168
168
|
metadata: traceContext?.metadata,
|
|
169
|
+
startedAt,
|
|
169
170
|
};
|
|
170
171
|
}
|
|
171
172
|
/**
|
|
@@ -280,14 +281,16 @@ class LLMBaseService {
|
|
|
280
281
|
const generationTraceRecord = {
|
|
281
282
|
name: generationTrace.name ?? this.getDefaultTraceName(method),
|
|
282
283
|
prompt: generationTrace.prompt,
|
|
283
|
-
input:
|
|
284
|
-
output:
|
|
284
|
+
input: generationTrace.input,
|
|
285
|
+
output: generationTrace.output,
|
|
285
286
|
model: model?.name ?? null,
|
|
286
287
|
modelParameters: generationTrace.modelParameters,
|
|
287
288
|
metadata: generationTrace.metadata,
|
|
288
289
|
usageDetails,
|
|
289
290
|
costDetails,
|
|
290
291
|
isError,
|
|
292
|
+
startedAt: generationTrace.startedAt,
|
|
293
|
+
endedAt: Date.now(),
|
|
291
294
|
};
|
|
292
295
|
this.tracer.recordGeneration(generationTraceRecord);
|
|
293
296
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMBaseService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMBaseService.abstract.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AAWpC,+DAA4D;AAC5D,iEAAkF;AAElF,
|
|
1
|
+
{"version":3,"file":"LLMBaseService.abstract.js","sourceRoot":"","sources":["../../src/services/LLMBaseService.abstract.ts"],"names":[],"mappings":"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"}
|
package/dist/utilities/index.js
CHANGED
|
@@ -23,5 +23,4 @@ __exportStar(require("./reporter"), exports);
|
|
|
23
23
|
__exportStar(require("./schema"), exports);
|
|
24
24
|
__exportStar(require("./serializeError"), exports);
|
|
25
25
|
__exportStar(require("./tools"), exports);
|
|
26
|
-
__exportStar(require("./traceIO"), exports);
|
|
27
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,kDAAgC;AAChC,mDAAiC;AACjC,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,mDAAiC;AACjC,0CAAwB
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,kDAAgC;AAChC,mDAAiC;AACjC,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,mDAAiC;AACjC,0CAAwB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CloudWatch namespace + metric name for the fallback-serving alarm.
|
|
3
|
-
* is provisioned against these exact values, so they are a
|
|
2
|
+
* CloudWatch namespace + metric name for the prompt-fallback-serving alarm.
|
|
3
|
+
* The alarm is provisioned against these exact string values, so they are a
|
|
4
|
+
* published contract — renaming a value requires re-pointing the alarm first.
|
|
4
5
|
*/
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
6
|
+
export declare const LLM_GATEWAY_METRIC_NAMESPACE = "LLMGateway";
|
|
7
|
+
export declare const PROMPT_FALLBACK_SERVED_METRIC = "LangfuseFallbackServed";
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.PROMPT_FALLBACK_SERVED_METRIC = exports.LLM_GATEWAY_METRIC_NAMESPACE = void 0;
|
|
4
4
|
/**
|
|
5
|
-
* CloudWatch namespace + metric name for the fallback-serving alarm.
|
|
6
|
-
* is provisioned against these exact values, so they are a
|
|
5
|
+
* CloudWatch namespace + metric name for the prompt-fallback-serving alarm.
|
|
6
|
+
* The alarm is provisioned against these exact string values, so they are a
|
|
7
|
+
* published contract — renaming a value requires re-pointing the alarm first.
|
|
7
8
|
*/
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
9
|
+
exports.LLM_GATEWAY_METRIC_NAMESPACE = 'LLMGateway';
|
|
10
|
+
exports.PROMPT_FALLBACK_SERVED_METRIC = 'LangfuseFallbackServed';
|
|
10
11
|
//# sourceMappingURL=llmTracing.constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llmTracing.constants.js","sourceRoot":"","sources":["../../../src/utilities/llmTracing/llmTracing.constants.ts"],"names":[],"mappings":";;;AAAA
|
|
1
|
+
{"version":3,"file":"llmTracing.constants.js","sourceRoot":"","sources":["../../../src/utilities/llmTracing/llmTracing.constants.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,4BAA4B,GAAG,YAAY,CAAC;AAE5C,QAAA,6BAA6B,GAAG,wBAAwB,CAAC"}
|
|
@@ -14,8 +14,8 @@ export interface LLMTraceContext {
|
|
|
14
14
|
/**
|
|
15
15
|
* Structural reference to the managed prompt a generation was produced from.
|
|
16
16
|
* SDK-free by design: the gateway only carries `name`/`version`/`isFallback`,
|
|
17
|
-
* and
|
|
18
|
-
*
|
|
17
|
+
* and the tracer implementation turns it into a prompt link (a fallback
|
|
18
|
+
* prompt intentionally produces no link).
|
|
19
19
|
*/
|
|
20
20
|
export interface LLMTracedPrompt {
|
|
21
21
|
name: string;
|
|
@@ -23,13 +23,18 @@ export interface LLMTracedPrompt {
|
|
|
23
23
|
isFallback?: boolean;
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
|
-
* Escape-hatch update applied to the active trace of a single tracer. `name
|
|
27
|
-
* and `
|
|
28
|
-
* active scope the call is a safe no-op.
|
|
26
|
+
* Escape-hatch update applied to the active trace of a single tracer. `name`,
|
|
27
|
+
* `input` and `output` replace the previous values; `metadata` merges. Outside
|
|
28
|
+
* an active scope the call is a safe no-op.
|
|
29
|
+
*
|
|
30
|
+
* `output` is the only way a trace gets one: the root never harvests the
|
|
31
|
+
* wrapped operation's return value, so a feature that wants a meaningful trace
|
|
32
|
+
* output states it here, in whatever trimmed shape is worth reading.
|
|
29
33
|
*/
|
|
30
34
|
export interface LLMActiveTraceUpdate {
|
|
31
35
|
name?: string;
|
|
32
36
|
input?: unknown;
|
|
37
|
+
output?: unknown;
|
|
33
38
|
metadata?: LLMTraceMetadata;
|
|
34
39
|
}
|
|
35
40
|
/**
|
|
@@ -45,9 +50,11 @@ export interface LLMGenerationTrace {
|
|
|
45
50
|
metadata?: LLMTraceMetadata;
|
|
46
51
|
/**
|
|
47
52
|
* The managed prompt this generation used. Threaded through so the tracer can
|
|
48
|
-
* link the observation to its prompt version
|
|
53
|
+
* link the observation to its prompt version.
|
|
49
54
|
*/
|
|
50
55
|
prompt?: LLMTracedPrompt;
|
|
56
|
+
/** Epoch milliseconds captured immediately before the provider call. */
|
|
57
|
+
startedAt: number;
|
|
51
58
|
}
|
|
52
59
|
/**
|
|
53
60
|
* Full per-call generation record passed to `recordGeneration`. Extracted from
|
|
@@ -55,6 +62,8 @@ export interface LLMGenerationTrace {
|
|
|
55
62
|
* exact same recorded shape.
|
|
56
63
|
*/
|
|
57
64
|
export interface LLMGenerationTraceRecord extends LLMGenerationTrace {
|
|
65
|
+
/** Epoch milliseconds stamped when the generation is handed to the tracer. */
|
|
66
|
+
endedAt: number;
|
|
58
67
|
model: string | null;
|
|
59
68
|
usageDetails?: Record<string, number>;
|
|
60
69
|
costDetails?: Record<string, number>;
|
|
@@ -62,7 +71,7 @@ export interface LLMGenerationTraceRecord extends LLMGenerationTrace {
|
|
|
62
71
|
}
|
|
63
72
|
/**
|
|
64
73
|
* The tracing surface the gateway depends on. Any implementation (the no-op,
|
|
65
|
-
* or `@mate-academy/llm-tracer`
|
|
74
|
+
* or a real tracer from `@mate-academy/llm-tracer`) satisfies it, so
|
|
66
75
|
* consumers hold a single type regardless of whether tracing is configured.
|
|
67
76
|
*/
|
|
68
77
|
export interface LLMGatewayTracer {
|
|
@@ -83,7 +92,7 @@ export interface LLMGatewayTracer {
|
|
|
83
92
|
*/
|
|
84
93
|
shutdown?(): Promise<void>;
|
|
85
94
|
}
|
|
86
|
-
export interface
|
|
95
|
+
export interface LLMFallbackMetricDimensions {
|
|
87
96
|
feature?: string;
|
|
88
97
|
promptName?: string;
|
|
89
98
|
reason?: string;
|
|
@@ -93,4 +102,4 @@ export interface LangfuseFallbackMetricDimensions {
|
|
|
93
102
|
* implementation when they build the gateway; the default is a no-op so the
|
|
94
103
|
* gateway carries no AWS dependency and tracing stays fire-and-forget.
|
|
95
104
|
*/
|
|
96
|
-
export type
|
|
105
|
+
export type LLMFallbackMetricEmitter = (dimensions: LLMFallbackMetricDimensions) => void;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type LLMFallbackMetricEmitter, type LLMGatewayTracer } from '../../utilities/llmTracing/llmTracing.typedefs';
|
|
2
2
|
export declare const noopLLMGatewayTracer: LLMGatewayTracer;
|
|
3
|
-
export declare const noopFallbackMetricEmitter:
|
|
3
|
+
export declare const noopFallbackMetricEmitter: LLMFallbackMetricEmitter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"noopLLMTracing.js","sourceRoot":"","sources":["../../../src/utilities/llmTracing/noopLLMTracing.ts"],"names":[],"mappings":";;;AAMA,MAAM,oBAAoB;IACf,SAAS,GAAG,KAAK,CAAC;IAE3B,KAAK,CAAC,SAAS,CACb,KAAa,EACb,QAAyB,EACzB,EAAyB;QAEzB,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,sBAAsB;IACxB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,KAAa,EACb,MAAe,EACf,EAAyB;QAEzB,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,sBAAsB;IACxB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,sBAAsB;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,sBAAsB;IACxB,CAAC;CACF;AAEY,QAAA,oBAAoB,GAAqB,IAAI,oBAAoB,EAAE,CAAC;AAE1E,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"noopLLMTracing.js","sourceRoot":"","sources":["../../../src/utilities/llmTracing/noopLLMTracing.ts"],"names":[],"mappings":";;;AAMA,MAAM,oBAAoB;IACf,SAAS,GAAG,KAAK,CAAC;IAE3B,KAAK,CAAC,SAAS,CACb,KAAa,EACb,QAAyB,EACzB,EAAyB;QAEzB,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED,gBAAgB;QACd,sBAAsB;IACxB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,KAAa,EACb,MAAe,EACf,EAAyB;QAEzB,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;IAED,iBAAiB;QACf,sBAAsB;IACxB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,sBAAsB;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,sBAAsB;IACxB,CAAC;CACF;AAEY,QAAA,oBAAoB,GAAqB,IAAI,oBAAoB,EAAE,CAAC;AAE1E,MAAM,yBAAyB,GAA6B,GAAG,EAAE;IACtE,oCAAoC;AACtC,CAAC,CAAC;AAFW,QAAA,yBAAyB,6BAEpC"}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
|
-
import { type LLMToolDefinition
|
|
2
|
-
import { type LLMSchemaInterface
|
|
1
|
+
import { type LLMToolDefinition } from '../../LLMService.typedefs';
|
|
2
|
+
import { type LLMSchemaInterface } from '../../utilities/schema';
|
|
3
3
|
export declare class LLMTool {
|
|
4
|
-
static create<Schema extends LLMSchemaInterface>(config:
|
|
5
|
-
name: string;
|
|
6
|
-
description: string;
|
|
7
|
-
parameters: Schema;
|
|
8
|
-
execute: (args: InferSchema<Schema>) => Promise<LLMToolResult> | LLMToolResult;
|
|
9
|
-
/**
|
|
10
|
-
* Ends the turn once this tool runs; see `LLMToolDefinition.terminal`.
|
|
11
|
-
*/
|
|
12
|
-
terminal?: boolean;
|
|
13
|
-
}): LLMToolDefinition<Schema>;
|
|
4
|
+
static create<Schema extends LLMSchemaInterface>(config: LLMToolDefinition<Schema>): LLMToolDefinition<Schema>;
|
|
14
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LLMTool.js","sourceRoot":"","sources":["../../../src/utilities/tools/LLMTool.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"LLMTool.js","sourceRoot":"","sources":["../../../src/utilities/tools/LLMTool.ts"],"names":[],"mappings":";;;AAGA,MAAa,OAAO;IAClB,MAAM,CAAC,MAAM,CACX,MAAiC;QAEjC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAND,0BAMC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mate-academy/llm-gateway",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.2.0",
|
|
4
4
|
"description": "A gateway package for LLM services.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -117,6 +117,7 @@
|
|
|
117
117
|
"mime-types": "^3.0.1",
|
|
118
118
|
"music-metadata": "^11.10.1",
|
|
119
119
|
"openai": "^6.27.0",
|
|
120
|
+
"ts-morph": "^28.0.0",
|
|
120
121
|
"uuid": "^9.0.1",
|
|
121
122
|
"zod": "^4.1.12"
|
|
122
123
|
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { type LLMProviders, type LLMInstanceOptions } from '../LLMService.typedefs';
|
|
2
|
-
import { type LLMGateway } from '../LLMGateway';
|
|
3
|
-
import { type LLMLoggerInterface } from '../utilities/logger';
|
|
4
|
-
import { type LLMReporterInterface } from '../utilities/reporter';
|
|
5
|
-
import { type InferSchema, type LLMSchemaInterface } from '../utilities/schema';
|
|
6
|
-
import { type LLMGatewayPromptClient } from '../client/promptClientPort.typedefs';
|
|
7
|
-
import { type LLMPromptBinding, type LLMPromptRegistry } from '../client/defineLLMPrompts';
|
|
8
|
-
import { type LLMPromptSnapshot } from '../client/promptSnapshot.typedefs';
|
|
9
|
-
import { type LLMVariableValue } from '../client/promptSnapshot.typedefs';
|
|
10
|
-
export type LLMClientMode = 'production' | 'experiment';
|
|
11
|
-
/**
|
|
12
|
-
* The explicit opt-out for the reporter pipeline; unlike tracing/prompts,
|
|
13
|
-
* reporting has no safe silent default, so tests must opt out loudly. Passed
|
|
14
|
-
* where `reporting` is expected to disable the Reporter/DWHSync wiring (tests,
|
|
15
|
-
* scripts).
|
|
16
|
-
*/
|
|
17
|
-
export declare const ReportingDisabled: unique symbol;
|
|
18
|
-
export type ReportingDisabledToken = typeof ReportingDisabled;
|
|
19
|
-
/**
|
|
20
|
-
* Resolves provider credentials for one call, scoped by provider + prompt +
|
|
21
|
-
* product, preserving the existing per-feature Secrets Manager layout.
|
|
22
|
-
*/
|
|
23
|
-
export type LLMCredentialsResolver = <Provider extends LLMProviders>(scope: {
|
|
24
|
-
provider: Provider;
|
|
25
|
-
promptName: string;
|
|
26
|
-
product?: string;
|
|
27
|
-
}) => Promise<LLMInstanceOptions[Provider]>;
|
|
28
|
-
export interface LLMClientStaticContext {
|
|
29
|
-
product?: string;
|
|
30
|
-
appEnvironment?: string;
|
|
31
|
-
[key: string]: string | undefined;
|
|
32
|
-
}
|
|
33
|
-
export interface LLMClientCallContext {
|
|
34
|
-
userId?: string | number | null;
|
|
35
|
-
[key: string]: string | number | boolean | null | undefined;
|
|
36
|
-
}
|
|
37
|
-
export interface LLMReportingConfig {
|
|
38
|
-
reporter: LLMReporterInterface<any>;
|
|
39
|
-
}
|
|
40
|
-
export interface CreateLLMClientConfig<Registry extends LLMPromptRegistry> {
|
|
41
|
-
gateway: LLMGateway;
|
|
42
|
-
registry: Registry;
|
|
43
|
-
snapshot: LLMPromptSnapshot;
|
|
44
|
-
credentials: LLMCredentialsResolver;
|
|
45
|
-
reporting: LLMReportingConfig | ReportingDisabledToken;
|
|
46
|
-
logger?: LLMLoggerInterface;
|
|
47
|
-
context?: LLMClientStaticContext;
|
|
48
|
-
mode?: LLMClientMode;
|
|
49
|
-
promptClient?: LLMGatewayPromptClient;
|
|
50
|
-
defaultLabel?: string;
|
|
51
|
-
cacheTtlSeconds?: number;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* The variables a prompt requires. Strict on required keys, tolerant of extras
|
|
55
|
-
* (`& Record<string, LLMVariableValue>`) so a Langfuse edit that drops a variable
|
|
56
|
-
* can never break a build — the stale extra is accepted, never rejected.
|
|
57
|
-
*/
|
|
58
|
-
export type LLMPromptVariables<RequiredKeys extends string> = Record<RequiredKeys, LLMVariableValue> & Record<string, LLMVariableValue>;
|
|
59
|
-
/**
|
|
60
|
-
* The return type of `generate` for one prompt: the bound schema's inferred type
|
|
61
|
-
* when a schema is present, else the raw completion string.
|
|
62
|
-
*/
|
|
63
|
-
export type LLMGenerateResult<Binding extends LLMPromptBinding> = Binding extends {
|
|
64
|
-
schema: infer Schema;
|
|
65
|
-
} ? Schema extends LLMSchemaInterface ? InferSchema<Schema> : string : string;
|
|
66
|
-
export interface LLMGenerateOptions<Variables extends Record<string, LLMVariableValue>, Schema extends LLMSchemaInterface = never> {
|
|
67
|
-
variables: Variables;
|
|
68
|
-
context?: LLMClientCallContext;
|
|
69
|
-
history?: LLMPlainMessage[];
|
|
70
|
-
abortSignal?: AbortSignal;
|
|
71
|
-
overrides?: LLMCallOverrides;
|
|
72
|
-
/**
|
|
73
|
-
* Per-call structured-output schema. Overrides the registry binding's `schema`
|
|
74
|
-
* for this call and drives the return type (`InferSchema<Schema>`). Use it when
|
|
75
|
-
* the output contract is dynamic per call (e.g. a schema whose shape depends on
|
|
76
|
-
* runtime input). The schema is the code-owned output contract, not a routing
|
|
77
|
-
* control, so it is honored in every mode.
|
|
78
|
-
*/
|
|
79
|
-
schema?: Schema;
|
|
80
|
-
}
|
|
81
|
-
export interface LLMCallOverrides {
|
|
82
|
-
model?: string;
|
|
83
|
-
provider?: LLMProviders;
|
|
84
|
-
promptVersion?: number;
|
|
85
|
-
promptLabel?: string;
|
|
86
|
-
}
|
|
87
|
-
export type LLMPlainMessageRole = 'user' | 'assistant';
|
|
88
|
-
export interface LLMPlainMessage {
|
|
89
|
-
role: LLMPlainMessageRole;
|
|
90
|
-
text: string;
|
|
91
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createLLMClient.typedefs.js","sourceRoot":"","sources":["../../src/client/createLLMClient.typedefs.ts"],"names":[],"mappings":";;;AAeA;;;;;GAKG;AACU,QAAA,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { OpenAI } from 'openai';
|
|
2
|
-
import type { LLMLoggerInterface } from '../../../utilities/logger';
|
|
3
|
-
import type { LLMReporterInterface } from '../../../utilities/reporter';
|
|
4
|
-
import type { LLMSchemaInterface } from '../../../utilities/schema';
|
|
5
|
-
import type { LLMStructuredResult } from '../../../LLMService.typedefs';
|
|
6
|
-
import { type LLMModelUsage } from '../../../utilities';
|
|
7
|
-
interface ParseStructuredResponseOptions {
|
|
8
|
-
content: string;
|
|
9
|
-
schema: LLMSchemaInterface;
|
|
10
|
-
jsonSchema: any;
|
|
11
|
-
reporterContext?: any;
|
|
12
|
-
abortSignal?: AbortSignal;
|
|
13
|
-
primaryUsage: LLMModelUsage;
|
|
14
|
-
}
|
|
15
|
-
export declare class LLMAPIJsonFixer {
|
|
16
|
-
private readonly instance;
|
|
17
|
-
private readonly logger;
|
|
18
|
-
private readonly reporter;
|
|
19
|
-
constructor(instance: OpenAI, logger: LLMLoggerInterface | undefined, reporter: LLMReporterInterface<any> | undefined);
|
|
20
|
-
parseStructuredResponse(options: ParseStructuredResponseOptions): Promise<LLMStructuredResult>;
|
|
21
|
-
private fixAndParseJson;
|
|
22
|
-
}
|
|
23
|
-
export declare function sanitizeJsonResponse(response: string): string;
|
|
24
|
-
export {};
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LLMAPIJsonFixer = void 0;
|
|
4
|
-
exports.sanitizeJsonResponse = sanitizeJsonResponse;
|
|
5
|
-
const serializeError_1 = require("../../../utilities/serializeError");
|
|
6
|
-
const LLMAPI_typedefs_1 = require("../../../providers/LLMAPI/LLMAPI.typedefs");
|
|
7
|
-
const utilities_1 = require("../../../utilities");
|
|
8
|
-
class LLMAPIJsonFixer {
|
|
9
|
-
instance;
|
|
10
|
-
logger;
|
|
11
|
-
reporter;
|
|
12
|
-
constructor(instance, logger, reporter) {
|
|
13
|
-
this.instance = instance;
|
|
14
|
-
this.logger = logger;
|
|
15
|
-
this.reporter = reporter;
|
|
16
|
-
}
|
|
17
|
-
async parseStructuredResponse(options) {
|
|
18
|
-
const { content, schema, jsonSchema, reporterContext, abortSignal, primaryUsage, } = options;
|
|
19
|
-
const sanitized = sanitizeJsonResponse(content);
|
|
20
|
-
try {
|
|
21
|
-
const parsed = JSON.parse(sanitized);
|
|
22
|
-
const validation = schema._parse(parsed);
|
|
23
|
-
if (validation.error) {
|
|
24
|
-
this.logger
|
|
25
|
-
?.child('parseStructuredResponse')
|
|
26
|
-
.warn('Schema validation failed, attempting fix', { validationError: validation.error });
|
|
27
|
-
return this.fixAndParseJson({
|
|
28
|
-
rawResponse: sanitized,
|
|
29
|
-
parsingError: validation.error,
|
|
30
|
-
schema,
|
|
31
|
-
jsonSchema,
|
|
32
|
-
reporterContext,
|
|
33
|
-
abortSignal,
|
|
34
|
-
primaryUsage,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
text: sanitized,
|
|
39
|
-
data: validation.data,
|
|
40
|
-
usage: primaryUsage,
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
catch (parseError) {
|
|
44
|
-
this.logger
|
|
45
|
-
?.child('parseStructuredResponse')
|
|
46
|
-
.warn('Failed to parse JSON response, attempting fix', {
|
|
47
|
-
content: sanitized,
|
|
48
|
-
parseError: parseError.message,
|
|
49
|
-
});
|
|
50
|
-
return this.fixAndParseJson({
|
|
51
|
-
rawResponse: sanitized,
|
|
52
|
-
parsingError: parseError.message,
|
|
53
|
-
schema,
|
|
54
|
-
jsonSchema,
|
|
55
|
-
reporterContext,
|
|
56
|
-
abortSignal,
|
|
57
|
-
primaryUsage,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
async fixAndParseJson(options) {
|
|
62
|
-
const { rawResponse, parsingError, schema, jsonSchema, reporterContext, abortSignal, primaryUsage, } = options;
|
|
63
|
-
const fixWriteMetrics = this.reporter?.initWriter(reporterContext);
|
|
64
|
-
try {
|
|
65
|
-
abortSignal?.throwIfAborted();
|
|
66
|
-
const fixCompletion = await this.instance.chat.completions.create({
|
|
67
|
-
model: LLMAPI_typedefs_1.LLMAPI_JSON_FIX_MODEL.name,
|
|
68
|
-
messages: [
|
|
69
|
-
{
|
|
70
|
-
role: 'system',
|
|
71
|
-
content: 'You are a JSON fixer.'
|
|
72
|
-
+ ' Fix the provided broken or invalid JSON'
|
|
73
|
-
+ ' so it matches the expected schema.'
|
|
74
|
-
+ ' Return ONLY the corrected JSON'
|
|
75
|
-
+ ' without any explanations or formatting.',
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
role: 'user',
|
|
79
|
-
content: buildFixJsonPrompt({
|
|
80
|
-
rawResponse,
|
|
81
|
-
parsingError,
|
|
82
|
-
jsonSchema,
|
|
83
|
-
}),
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
n: 1,
|
|
87
|
-
...LLMAPI_typedefs_1.LLMAPI_JSON_FIX_MODEL.config,
|
|
88
|
-
response_format: { type: 'json_object' },
|
|
89
|
-
}, {
|
|
90
|
-
signal: abortSignal,
|
|
91
|
-
});
|
|
92
|
-
const fixedContent = sanitizeJsonResponse(fixCompletion.choices[0]?.message.content ?? '');
|
|
93
|
-
const fixPromptTokens = fixCompletion.usage?.prompt_tokens ?? 0;
|
|
94
|
-
const fixCachedTokens = fixCompletion.usage?.prompt_tokens_details
|
|
95
|
-
?.cached_tokens ?? 0;
|
|
96
|
-
const fixOutputTokens = fixCompletion.usage?.completion_tokens ?? 0;
|
|
97
|
-
const fixUsage = {
|
|
98
|
-
inputTextTokens: fixPromptTokens - fixCachedTokens,
|
|
99
|
-
inputCachedTextTokens: fixCachedTokens,
|
|
100
|
-
outputTextTokens: fixOutputTokens,
|
|
101
|
-
};
|
|
102
|
-
await writeSuccessMetrics({
|
|
103
|
-
model: LLMAPI_typedefs_1.LLMAPI_JSON_FIX_MODEL,
|
|
104
|
-
usage: fixUsage,
|
|
105
|
-
writeMetrics: fixWriteMetrics,
|
|
106
|
-
});
|
|
107
|
-
const combinedUsage = (0, utilities_1.addUsage)(primaryUsage, fixUsage);
|
|
108
|
-
const parsed = JSON.parse(fixedContent);
|
|
109
|
-
const validation = schema._parse(parsed);
|
|
110
|
-
if (validation.error) {
|
|
111
|
-
this.logger
|
|
112
|
-
?.child('fixAndParseJson')
|
|
113
|
-
.error('JSON fix attempt failed schema validation', {
|
|
114
|
-
fixedContent,
|
|
115
|
-
validationError: validation.error,
|
|
116
|
-
});
|
|
117
|
-
return {
|
|
118
|
-
text: fixedContent,
|
|
119
|
-
parseError: validation.error,
|
|
120
|
-
usage: combinedUsage,
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
this.logger
|
|
124
|
-
?.child('fixAndParseJson')
|
|
125
|
-
.info('JSON fix succeeded');
|
|
126
|
-
return {
|
|
127
|
-
text: fixedContent,
|
|
128
|
-
data: validation.data,
|
|
129
|
-
usage: combinedUsage,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
catch (fixError) {
|
|
133
|
-
await writeErrorMetrics({
|
|
134
|
-
model: LLMAPI_typedefs_1.LLMAPI_JSON_FIX_MODEL,
|
|
135
|
-
isAborted: abortSignal?.aborted,
|
|
136
|
-
writeMetrics: fixWriteMetrics,
|
|
137
|
-
});
|
|
138
|
-
const fixLogger = this.logger?.child('fixAndParseJson');
|
|
139
|
-
const fixErrorPayload = { error: (0, serializeError_1.serializeError)(fixError) };
|
|
140
|
-
if (abortSignal?.aborted) {
|
|
141
|
-
fixLogger?.warn('JSON fix request failed', fixErrorPayload);
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
fixLogger?.error('JSON fix request failed', fixErrorPayload);
|
|
145
|
-
}
|
|
146
|
-
return {
|
|
147
|
-
text: rawResponse,
|
|
148
|
-
error: fixError,
|
|
149
|
-
parseError: 'Failed to fix structured response from LLMAPI',
|
|
150
|
-
usage: primaryUsage,
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
exports.LLMAPIJsonFixer = LLMAPIJsonFixer;
|
|
156
|
-
function sanitizeJsonResponse(response) {
|
|
157
|
-
return response
|
|
158
|
-
.replace(/^```(?:json)?/, '')
|
|
159
|
-
.replace(/```$/, '')
|
|
160
|
-
.trim();
|
|
161
|
-
}
|
|
162
|
-
function buildFixJsonPrompt(options) {
|
|
163
|
-
const { rawResponse, parsingError, jsonSchema } = options;
|
|
164
|
-
return [
|
|
165
|
-
'Fix the following JSON response'
|
|
166
|
-
+ ' so it matches the expected schema.',
|
|
167
|
-
'',
|
|
168
|
-
'Expected JSON Schema:',
|
|
169
|
-
JSON.stringify(jsonSchema, null, 2),
|
|
170
|
-
'',
|
|
171
|
-
'Broken JSON response:',
|
|
172
|
-
rawResponse,
|
|
173
|
-
'',
|
|
174
|
-
'Parsing error:',
|
|
175
|
-
parsingError,
|
|
176
|
-
'',
|
|
177
|
-
'Common issues to fix:',
|
|
178
|
-
'- Missing or extra commas',
|
|
179
|
-
'- Unescaped special characters in strings',
|
|
180
|
-
'- Missing quotes around keys or values',
|
|
181
|
-
'- Wrong field names (rename to match schema)',
|
|
182
|
-
'- Wrong field types (convert to match schema)',
|
|
183
|
-
'- Truncated JSON (complete it logically)',
|
|
184
|
-
'',
|
|
185
|
-
'Return ONLY the corrected JSON.',
|
|
186
|
-
].join('\n');
|
|
187
|
-
}
|
|
188
|
-
async function writeSuccessMetrics(params) {
|
|
189
|
-
const { model, usage: { inputTextTokens = 0, outputTextTokens = 0, inputAudioTokens = 0, outputAudioTokens = 0, }, writeMetrics, } = params;
|
|
190
|
-
if (!writeMetrics) {
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
const costs = (0, utilities_1.calculateCosts)(model, {
|
|
194
|
-
inputTextTokens,
|
|
195
|
-
outputTextTokens,
|
|
196
|
-
inputAudioTokens,
|
|
197
|
-
outputAudioTokens,
|
|
198
|
-
});
|
|
199
|
-
const input = inputTextTokens + inputAudioTokens;
|
|
200
|
-
const output = outputTextTokens + outputAudioTokens;
|
|
201
|
-
return writeMetrics({
|
|
202
|
-
provider: 'LLMAPI',
|
|
203
|
-
purpose: 'Completion',
|
|
204
|
-
model: model.name,
|
|
205
|
-
modelConfig: model.config ?? null,
|
|
206
|
-
method: 'fixAndParseJson',
|
|
207
|
-
status: 'success',
|
|
208
|
-
tokens: {
|
|
209
|
-
input,
|
|
210
|
-
output,
|
|
211
|
-
total: input + output,
|
|
212
|
-
},
|
|
213
|
-
costs,
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
async function writeErrorMetrics(params) {
|
|
217
|
-
const { model, isAborted = false, writeMetrics } = params;
|
|
218
|
-
if (!writeMetrics) {
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
return writeMetrics({
|
|
222
|
-
provider: 'LLMAPI',
|
|
223
|
-
purpose: 'Completion',
|
|
224
|
-
model: model.name,
|
|
225
|
-
modelConfig: model.config ?? null,
|
|
226
|
-
method: 'fixAndParseJson',
|
|
227
|
-
status: isAborted ? 'cancelled' : 'error',
|
|
228
|
-
tokens: { input: 0, output: 0, total: 0 },
|
|
229
|
-
costs: {
|
|
230
|
-
total: 0,
|
|
231
|
-
input: 0,
|
|
232
|
-
output: 0,
|
|
233
|
-
currency: 'USD',
|
|
234
|
-
},
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
//# sourceMappingURL=LLMAPIJsonFixer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LLMAPIJsonFixer.js","sourceRoot":"","sources":["../../../../src/providers/LLMAPI/utilities/LLMAPIJsonFixer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface TruncateTraceIOOptions {
|
|
2
|
-
maxChars?: number;
|
|
3
|
-
}
|
|
4
|
-
/**
|
|
5
|
-
* Caps a single trace/observation IO value so a large prompt or completion
|
|
6
|
-
* cannot inflate trace payloads (the PR1 carry-over: `withTrace` serialized full
|
|
7
|
-
* results). Strings over the limit are sliced with a notice; objects are
|
|
8
|
-
* serialized first, then capped; non-serializable values fall back to `String`.
|
|
9
|
-
* Returns the value unchanged when it is already within budget so small payloads
|
|
10
|
-
* keep their original type in the UI.
|
|
11
|
-
*
|
|
12
|
-
* Applied by `LLMBaseService` to every generation it records, so each tracing
|
|
13
|
-
* path (completion, assistance, speech-to-text) is capped at the single point
|
|
14
|
-
* that stamps the observation rather than per call site.
|
|
15
|
-
*/
|
|
16
|
-
export declare function truncateTraceIO(value: unknown, options?: TruncateTraceIOOptions): unknown;
|
|
17
|
-
export declare const TRACE_IO_MAX_CHARS = 16384;
|