kimi-proxy 0.0.1
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/LICENSE +24 -0
- package/README.md +177 -0
- package/dist/adapters/anthropicAdapter.d.ts +138 -0
- package/dist/adapters/anthropicAdapter.js +184 -0
- package/dist/adapters/anthropicAdapter.js.map +1 -0
- package/dist/config.d.ts +27 -0
- package/dist/config.js +228 -0
- package/dist/config.js.map +1 -0
- package/dist/core/converters/anthropicToOpenAI.d.ts +11 -0
- package/dist/core/converters/anthropicToOpenAI.js +18 -0
- package/dist/core/converters/anthropicToOpenAI.js.map +1 -0
- package/dist/core/converters/openaiPassthrough.d.ts +18 -0
- package/dist/core/converters/openaiPassthrough.js +794 -0
- package/dist/core/converters/openaiPassthrough.js.map +1 -0
- package/dist/core/converters/types.d.ts +14 -0
- package/dist/core/converters/types.js +16 -0
- package/dist/core/converters/types.js.map +1 -0
- package/dist/core/ensureToolCall.d.ts +24 -0
- package/dist/core/ensureToolCall.js +93 -0
- package/dist/core/ensureToolCall.js.map +1 -0
- package/dist/core/modelRegistry.d.ts +46 -0
- package/dist/core/modelRegistry.js +92 -0
- package/dist/core/modelRegistry.js.map +1 -0
- package/dist/core/pipeline.d.ts +17 -0
- package/dist/core/pipeline.js +109 -0
- package/dist/core/pipeline.js.map +1 -0
- package/dist/core/pipelineControl.d.ts +12 -0
- package/dist/core/pipelineControl.js +51 -0
- package/dist/core/pipelineControl.js.map +1 -0
- package/dist/core/providers/openRouterProvider.d.ts +52 -0
- package/dist/core/providers/openRouterProvider.js +158 -0
- package/dist/core/providers/openRouterProvider.js.map +1 -0
- package/dist/core/providers/openaiProvider.d.ts +22 -0
- package/dist/core/providers/openaiProvider.js +79 -0
- package/dist/core/providers/openaiProvider.js.map +1 -0
- package/dist/core/providers/types.d.ts +24 -0
- package/dist/core/providers/types.js +14 -0
- package/dist/core/providers/types.js.map +1 -0
- package/dist/core/providers/vertexProvider.d.ts +37 -0
- package/dist/core/providers/vertexProvider.js +167 -0
- package/dist/core/providers/vertexProvider.js.map +1 -0
- package/dist/core/syntheticResponse.d.ts +6 -0
- package/dist/core/syntheticResponse.js +36 -0
- package/dist/core/syntheticResponse.js.map +1 -0
- package/dist/core/transforms/request/ClampMaxTokensTransform.d.ts +7 -0
- package/dist/core/transforms/request/ClampMaxTokensTransform.js +29 -0
- package/dist/core/transforms/request/ClampMaxTokensTransform.js.map +1 -0
- package/dist/core/transforms/request/DisableStreamingTransform.d.ts +7 -0
- package/dist/core/transforms/request/DisableStreamingTransform.js +15 -0
- package/dist/core/transforms/request/DisableStreamingTransform.js.map +1 -0
- package/dist/core/transforms/request/EnsureToolCallRequestTransform.d.ts +12 -0
- package/dist/core/transforms/request/EnsureToolCallRequestTransform.js +120 -0
- package/dist/core/transforms/request/EnsureToolCallRequestTransform.js.map +1 -0
- package/dist/core/transforms/response/EnsureToolCallResponseTransform.d.ts +9 -0
- package/dist/core/transforms/response/EnsureToolCallResponseTransform.js +223 -0
- package/dist/core/transforms/response/EnsureToolCallResponseTransform.js.map +1 -0
- package/dist/core/transforms/response/KimiResponseTransform.d.ts +7 -0
- package/dist/core/transforms/response/KimiResponseTransform.js +32 -0
- package/dist/core/transforms/response/KimiResponseTransform.js.map +1 -0
- package/dist/core/types.d.ts +80 -0
- package/dist/core/types.js +18 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/persistence/logStore.d.ts +43 -0
- package/dist/persistence/logStore.js +115 -0
- package/dist/persistence/logStore.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.js +385 -0
- package/dist/server.js.map +1 -0
- package/dist/services/kimiFixer.d.ts +13 -0
- package/dist/services/kimiFixer.js +160 -0
- package/dist/services/kimiFixer.js.map +1 -0
- package/dist/services/streaming.d.ts +9 -0
- package/dist/services/streaming.js +513 -0
- package/dist/services/streaming.js.map +1 -0
- package/dist/utils/envResolver.d.ts +26 -0
- package/dist/utils/envResolver.js +64 -0
- package/dist/utils/envResolver.js.map +1 -0
- package/dist/utils/ids.d.ts +1 -0
- package/dist/utils/ids.js +7 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.js +12 -0
- package/dist/utils/logger.js.map +1 -0
- package/frontend/dist/assets/JSONViewer-97138fd7.js +3 -0
- package/frontend/dist/assets/index-0e7c091b.css +1 -0
- package/frontend/dist/assets/index-4b354ce2.js +40 -0
- package/frontend/dist/index.html +22 -0
- package/package.json +60 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openaiPassthrough.js","sourceRoot":"","sources":["../../../src/core/converters/openaiPassthrough.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ClientFormat, ProviderFormat, ProxyOperation, ConversionContext, ConvertedRequest, JsonValue } from "../types.js";
|
|
2
|
+
export interface Converter<TClientRequest extends JsonValue = JsonValue, TProviderRequest extends JsonValue = JsonValue, TProviderResponse extends JsonValue = JsonValue, TClientResponse extends JsonValue = JsonValue> {
|
|
3
|
+
name: string;
|
|
4
|
+
sourceFormat: ClientFormat;
|
|
5
|
+
targetFormat: ProviderFormat;
|
|
6
|
+
operations: ProxyOperation[];
|
|
7
|
+
convertRequest(body: TClientRequest, context: ConversionContext<TClientRequest>): Promise<ConvertedRequest<TProviderRequest>> | ConvertedRequest<TProviderRequest>;
|
|
8
|
+
convertResponse(body: TProviderResponse, context: ConversionContext<TClientRequest>): Promise<TClientResponse> | TClientResponse;
|
|
9
|
+
}
|
|
10
|
+
export declare class ConverterRegistry {
|
|
11
|
+
private converters;
|
|
12
|
+
register(converter: Converter): void;
|
|
13
|
+
resolve(source: ClientFormat, target: ProviderFormat, operation: ProxyOperation): Converter;
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export class ConverterRegistry {
|
|
2
|
+
converters = [];
|
|
3
|
+
register(converter) {
|
|
4
|
+
this.converters.push(converter);
|
|
5
|
+
}
|
|
6
|
+
resolve(source, target, operation) {
|
|
7
|
+
const match = this.converters.find((converter) => converter.sourceFormat === source &&
|
|
8
|
+
converter.targetFormat === target &&
|
|
9
|
+
converter.operations.includes(operation));
|
|
10
|
+
if (!match) {
|
|
11
|
+
throw new Error(`No converter registered for ${source} -> ${target} (${operation})`);
|
|
12
|
+
}
|
|
13
|
+
return match;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/converters/types.ts"],"names":[],"mappings":"AA+BA,MAAM,OAAO,iBAAiB;IACpB,UAAU,GAAgB,EAAE,CAAC;IAErC,QAAQ,CAAC,SAAoB;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CACL,MAAoB,EACpB,MAAsB,EACtB,SAAyB;QAEzB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAChC,CAAC,SAAS,EAAE,EAAE,CACZ,SAAS,CAAC,YAAY,KAAK,MAAM;YACjC,SAAS,CAAC,YAAY,KAAK,MAAM;YACjC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAC3C,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,OAAO,MAAM,KAAK,SAAS,GAAG,CACpE,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { JsonObject, JsonValue } from "./types.js";
|
|
2
|
+
export declare const ENSURE_TOOL_CALL_STATE_KEY = "__ensureToolCall";
|
|
3
|
+
export declare const DEFAULT_TERMINATION_TOOL_NAME = "done";
|
|
4
|
+
export interface EnsureToolCallState extends JsonObject {
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
terminationToolName: string;
|
|
7
|
+
reminderCount: number;
|
|
8
|
+
pendingReminder: boolean;
|
|
9
|
+
finalAnswerRequired?: boolean;
|
|
10
|
+
reminderHistory?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function createEnsureToolCallState(state: Record<string, JsonValue>, options?: {
|
|
13
|
+
terminationToolName?: string;
|
|
14
|
+
}): EnsureToolCallState;
|
|
15
|
+
export declare function getEnsureToolCallState(state: Record<string, JsonValue>): EnsureToolCallState | null;
|
|
16
|
+
export declare function buildBaseInstruction(toolName: string): string;
|
|
17
|
+
export declare function buildReminderInstruction(toolName: string): string;
|
|
18
|
+
export declare function buildFinalAnswerRequirementInstruction(toolName: string): string;
|
|
19
|
+
export declare function createTerminationToolDefinition(name: string): JsonObject;
|
|
20
|
+
/**
|
|
21
|
+
* Get messages from the last user message to the end of the array.
|
|
22
|
+
* Returns empty array if no user message is found.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getMessagesSinceLastUser(messages: JsonValue[]): JsonValue[];
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export const ENSURE_TOOL_CALL_STATE_KEY = "__ensureToolCall";
|
|
2
|
+
export const DEFAULT_TERMINATION_TOOL_NAME = "done";
|
|
3
|
+
const BASE_INSTRUCTION_TEMPLATE = (toolName) => `Always reply with at least one tool call so the client can continue orchestrating actions. When you have completely finished and are ready to hand back the final result, call the "${toolName}" function to signal completion.`;
|
|
4
|
+
const REMINDER_TEMPLATE = (toolName) => `The client will not continue unless you reply with a tool call. Use the available tools for work and call "${toolName}" when you are done.`;
|
|
5
|
+
const FINAL_ANSWER_REQUIREMENT_TEMPLATE = (toolName) => `Please use the tool "${toolName}" with a final answer. You must include a final_answer with your response.`;
|
|
6
|
+
export function createEnsureToolCallState(state, options) {
|
|
7
|
+
const terminationToolName = options?.terminationToolName ?? DEFAULT_TERMINATION_TOOL_NAME;
|
|
8
|
+
const ensureState = {
|
|
9
|
+
enabled: true,
|
|
10
|
+
terminationToolName,
|
|
11
|
+
reminderCount: 0,
|
|
12
|
+
pendingReminder: false,
|
|
13
|
+
};
|
|
14
|
+
state[ENSURE_TOOL_CALL_STATE_KEY] = ensureState;
|
|
15
|
+
return ensureState;
|
|
16
|
+
}
|
|
17
|
+
export function getEnsureToolCallState(state) {
|
|
18
|
+
const raw = state[ENSURE_TOOL_CALL_STATE_KEY];
|
|
19
|
+
if (!isJsonObject(raw)) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const ensureState = raw;
|
|
23
|
+
if (ensureState.enabled !== true) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
ensureState.terminationToolName =
|
|
27
|
+
typeof ensureState.terminationToolName === "string"
|
|
28
|
+
? ensureState.terminationToolName
|
|
29
|
+
: DEFAULT_TERMINATION_TOOL_NAME;
|
|
30
|
+
ensureState.reminderCount =
|
|
31
|
+
typeof ensureState.reminderCount === "number"
|
|
32
|
+
? ensureState.reminderCount
|
|
33
|
+
: 0;
|
|
34
|
+
ensureState.pendingReminder = Boolean(ensureState.pendingReminder);
|
|
35
|
+
return ensureState;
|
|
36
|
+
}
|
|
37
|
+
export function buildBaseInstruction(toolName) {
|
|
38
|
+
return BASE_INSTRUCTION_TEMPLATE(toolName);
|
|
39
|
+
}
|
|
40
|
+
export function buildReminderInstruction(toolName) {
|
|
41
|
+
return REMINDER_TEMPLATE(toolName);
|
|
42
|
+
}
|
|
43
|
+
export function buildFinalAnswerRequirementInstruction(toolName) {
|
|
44
|
+
return FINAL_ANSWER_REQUIREMENT_TEMPLATE(toolName);
|
|
45
|
+
}
|
|
46
|
+
export function createTerminationToolDefinition(name) {
|
|
47
|
+
return {
|
|
48
|
+
type: "function",
|
|
49
|
+
function: {
|
|
50
|
+
name,
|
|
51
|
+
description: "Call this tool exactly once when you have fully completed all reasoning and actions.",
|
|
52
|
+
parameters: {
|
|
53
|
+
type: "object",
|
|
54
|
+
properties: {
|
|
55
|
+
final_answer: {
|
|
56
|
+
type: "string",
|
|
57
|
+
description: "Optional final answer to provide when terminating.",
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
required: [],
|
|
61
|
+
additionalProperties: false,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get messages from the last user message to the end of the array.
|
|
68
|
+
* Returns empty array if no user message is found.
|
|
69
|
+
*/
|
|
70
|
+
export function getMessagesSinceLastUser(messages) {
|
|
71
|
+
if (!Array.isArray(messages) || messages.length === 0) {
|
|
72
|
+
return [];
|
|
73
|
+
}
|
|
74
|
+
// Find the index of the last user message by searching backward
|
|
75
|
+
let lastUserIndex = -1;
|
|
76
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
77
|
+
const m = messages[i];
|
|
78
|
+
if (isJsonObject(m) && m.role === "user") {
|
|
79
|
+
lastUserIndex = i;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// If no user message found, return empty array
|
|
84
|
+
if (lastUserIndex === -1) {
|
|
85
|
+
return [];
|
|
86
|
+
}
|
|
87
|
+
// Return messages from lastUserIndex to end (inclusive)
|
|
88
|
+
return messages.slice(lastUserIndex);
|
|
89
|
+
}
|
|
90
|
+
function isJsonObject(value) {
|
|
91
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=ensureToolCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensureToolCall.js","sourceRoot":"","sources":["../../src/core/ensureToolCall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export type LoadBalancingStrategy = "first" | "round_robin" | "random" | "weighted_random";
|
|
2
|
+
export interface ModelDefinition {
|
|
3
|
+
name: string;
|
|
4
|
+
provider: string;
|
|
5
|
+
upstreamModel: string;
|
|
6
|
+
weight?: number;
|
|
7
|
+
strategy?: LoadBalancingStrategy;
|
|
8
|
+
ensureToolCall?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Provider-specific configuration (e.g., api_key, base_url, routing params)
|
|
11
|
+
* Supports environment variable substitution with $ prefix (e.g., "$API_KEY")
|
|
12
|
+
* Each provider defines its own typed interface (OpenAIModelConfig, OpenRouterModelConfig, etc.)
|
|
13
|
+
* and validates this configuration during invocation.
|
|
14
|
+
*/
|
|
15
|
+
providerConfig?: Record<string, unknown>;
|
|
16
|
+
}
|
|
17
|
+
export interface ModelVariant extends ModelDefinition {
|
|
18
|
+
weight: number;
|
|
19
|
+
ensureToolCall: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface ResolvedModelRoute {
|
|
22
|
+
name: string;
|
|
23
|
+
provider: string;
|
|
24
|
+
upstreamModel: string;
|
|
25
|
+
weight: number;
|
|
26
|
+
strategy: LoadBalancingStrategy;
|
|
27
|
+
ensureToolCall: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface ModelSummary {
|
|
30
|
+
name: string;
|
|
31
|
+
strategy: LoadBalancingStrategy;
|
|
32
|
+
variants: ModelVariant[];
|
|
33
|
+
}
|
|
34
|
+
export declare class ModelRegistry {
|
|
35
|
+
private readonly defaultStrategy;
|
|
36
|
+
private readonly groups;
|
|
37
|
+
private readonly roundRobinIndices;
|
|
38
|
+
private readonly summaries;
|
|
39
|
+
constructor(definitions: ModelDefinition[], defaultStrategy?: LoadBalancingStrategy);
|
|
40
|
+
resolve(modelName: string): ModelVariant;
|
|
41
|
+
list(): ModelSummary[];
|
|
42
|
+
listRoutes(): ResolvedModelRoute[];
|
|
43
|
+
private resolveStrategy;
|
|
44
|
+
private pickRoundRobin;
|
|
45
|
+
private pickWeighted;
|
|
46
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export class ModelRegistry {
|
|
2
|
+
defaultStrategy;
|
|
3
|
+
groups = new Map();
|
|
4
|
+
roundRobinIndices = new Map();
|
|
5
|
+
summaries;
|
|
6
|
+
constructor(definitions, defaultStrategy = "first") {
|
|
7
|
+
this.defaultStrategy = defaultStrategy;
|
|
8
|
+
if (!definitions.length) {
|
|
9
|
+
throw new Error("Model registry requires at least one model definition");
|
|
10
|
+
}
|
|
11
|
+
for (const def of definitions) {
|
|
12
|
+
const entry = {
|
|
13
|
+
...def,
|
|
14
|
+
weight: typeof def.weight === "number" && def.weight > 0 ? def.weight : 1,
|
|
15
|
+
ensureToolCall: Boolean(def.ensureToolCall),
|
|
16
|
+
};
|
|
17
|
+
const list = this.groups.get(def.name) ?? [];
|
|
18
|
+
list.push(entry);
|
|
19
|
+
this.groups.set(def.name, list);
|
|
20
|
+
}
|
|
21
|
+
this.summaries = Array.from(this.groups.entries()).map(([name, variants]) => ({
|
|
22
|
+
name,
|
|
23
|
+
strategy: this.resolveStrategy(variants),
|
|
24
|
+
variants,
|
|
25
|
+
}));
|
|
26
|
+
}
|
|
27
|
+
resolve(modelName) {
|
|
28
|
+
const variants = this.groups.get(modelName);
|
|
29
|
+
if (!variants || variants.length === 0) {
|
|
30
|
+
throw new Error(`Model "${modelName}" is not configured`);
|
|
31
|
+
}
|
|
32
|
+
const strategy = this.resolveStrategy(variants);
|
|
33
|
+
switch (strategy) {
|
|
34
|
+
case "round_robin":
|
|
35
|
+
return this.pickRoundRobin(modelName, variants);
|
|
36
|
+
case "random":
|
|
37
|
+
return variants[Math.floor(Math.random() * variants.length)];
|
|
38
|
+
case "weighted_random":
|
|
39
|
+
return this.pickWeighted(variants);
|
|
40
|
+
case "first":
|
|
41
|
+
default:
|
|
42
|
+
return variants[0];
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
list() {
|
|
46
|
+
return this.summaries.map((summary) => ({
|
|
47
|
+
name: summary.name,
|
|
48
|
+
strategy: summary.strategy,
|
|
49
|
+
variants: summary.variants.map((variant) => ({ ...variant })),
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
listRoutes() {
|
|
53
|
+
const routes = [];
|
|
54
|
+
for (const [name, variants] of this.groups.entries()) {
|
|
55
|
+
const strategy = this.resolveStrategy(variants);
|
|
56
|
+
for (const variant of variants) {
|
|
57
|
+
routes.push({
|
|
58
|
+
name,
|
|
59
|
+
provider: variant.provider,
|
|
60
|
+
upstreamModel: variant.upstreamModel,
|
|
61
|
+
weight: variant.weight,
|
|
62
|
+
strategy: variant.strategy ?? strategy,
|
|
63
|
+
ensureToolCall: Boolean(variant.ensureToolCall),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return routes;
|
|
68
|
+
}
|
|
69
|
+
resolveStrategy(variants) {
|
|
70
|
+
const explicit = variants.find((variant) => variant.strategy)?.strategy;
|
|
71
|
+
return explicit ?? this.defaultStrategy;
|
|
72
|
+
}
|
|
73
|
+
pickRoundRobin(modelName, variants) {
|
|
74
|
+
const current = this.roundRobinIndices.get(modelName) ?? 0;
|
|
75
|
+
const next = (current + 1) % variants.length;
|
|
76
|
+
this.roundRobinIndices.set(modelName, next);
|
|
77
|
+
return variants[current];
|
|
78
|
+
}
|
|
79
|
+
pickWeighted(variants) {
|
|
80
|
+
const total = variants.reduce((sum, variant) => sum + variant.weight, 0);
|
|
81
|
+
const needle = Math.random() * total;
|
|
82
|
+
let cumulative = 0;
|
|
83
|
+
for (const variant of variants) {
|
|
84
|
+
cumulative += variant.weight;
|
|
85
|
+
if (needle < cumulative) {
|
|
86
|
+
return variant;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return variants[variants.length - 1];
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=modelRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modelRegistry.js","sourceRoot":"","sources":["../../src/core/modelRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PipelineResult, ProxyRequest, RequestTransform, ResponseTransform, JsonObject } from "./types.js";
|
|
2
|
+
import { ConverterRegistry } from "./converters/types.js";
|
|
3
|
+
import { LLMProvider } from "./providers/types.js";
|
|
4
|
+
interface PipelineDeps {
|
|
5
|
+
converterRegistry: ConverterRegistry;
|
|
6
|
+
requestTransforms: RequestTransform[];
|
|
7
|
+
responseTransforms: ResponseTransform[];
|
|
8
|
+
}
|
|
9
|
+
export declare class LLMProxyPipeline {
|
|
10
|
+
private readonly deps;
|
|
11
|
+
constructor(deps: PipelineDeps);
|
|
12
|
+
execute(provider: LLMProvider, request: ProxyRequest, providerConfig?: JsonObject): Promise<PipelineResult>;
|
|
13
|
+
private applyRequestTransforms;
|
|
14
|
+
private applyResponseTransforms;
|
|
15
|
+
private transformsByStage;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { clearRetryRequest, isRetryRequested, isSyntheticResponseRequested, clearSyntheticResponseRequest, resolvePipelineMaxAttempts, } from "./pipelineControl.js";
|
|
2
|
+
import { createSyntheticProviderResponse } from "./syntheticResponse.js";
|
|
3
|
+
import { logger } from "../utils/logger.js";
|
|
4
|
+
export class LLMProxyPipeline {
|
|
5
|
+
deps;
|
|
6
|
+
constructor(deps) {
|
|
7
|
+
this.deps = deps;
|
|
8
|
+
}
|
|
9
|
+
async execute(provider, request, providerConfig) {
|
|
10
|
+
const conversionContext = {
|
|
11
|
+
request,
|
|
12
|
+
providerFormat: provider.format,
|
|
13
|
+
};
|
|
14
|
+
const converter = this.deps.converterRegistry.resolve(request.clientFormat, provider.format, request.operation);
|
|
15
|
+
const maxAttempts = resolvePipelineMaxAttempts(request.state);
|
|
16
|
+
let attempt = 0;
|
|
17
|
+
while (true) {
|
|
18
|
+
attempt += 1;
|
|
19
|
+
await this.applyRequestTransforms("source" /* RequestStage.Source */, { request });
|
|
20
|
+
const convertedRequest = await converter.convertRequest(request.body, conversionContext);
|
|
21
|
+
const providerRequest = {
|
|
22
|
+
body: convertedRequest.body,
|
|
23
|
+
headers: convertedRequest.headers ?? {},
|
|
24
|
+
};
|
|
25
|
+
await this.applyRequestTransforms("post-conversion" /* RequestStage.PostConversion */, {
|
|
26
|
+
request,
|
|
27
|
+
providerRequest,
|
|
28
|
+
});
|
|
29
|
+
// Check if request transforms requested a synthetic response to abort provider call
|
|
30
|
+
const useSyntheticResponse = isSyntheticResponseRequested(request.state);
|
|
31
|
+
let providerResponse;
|
|
32
|
+
if (useSyntheticResponse) {
|
|
33
|
+
logger.warn({ requestId: request.id }, "Synthetic response requested, bypassing provider invocation");
|
|
34
|
+
providerResponse = createSyntheticProviderResponse();
|
|
35
|
+
clearSyntheticResponseRequest(request.state);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
providerResponse = await provider.invoke({
|
|
39
|
+
request,
|
|
40
|
+
body: providerRequest.body,
|
|
41
|
+
headers: providerRequest.headers,
|
|
42
|
+
stream: request.stream,
|
|
43
|
+
providerConfig,
|
|
44
|
+
});
|
|
45
|
+
if (providerResponse.status >= 400) {
|
|
46
|
+
return {
|
|
47
|
+
statusCode: providerResponse.status,
|
|
48
|
+
responseBody: providerResponse.body,
|
|
49
|
+
providerResponse,
|
|
50
|
+
providerRequestBody: providerRequest.body,
|
|
51
|
+
request,
|
|
52
|
+
isError: true,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
await this.applyResponseTransforms("provider" /* ResponseStage.Provider */, {
|
|
56
|
+
request,
|
|
57
|
+
providerResponse,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
const clientResponse = await converter.convertResponse(providerResponse.body, conversionContext);
|
|
61
|
+
const responseContext = { request, providerResponse, clientResponse };
|
|
62
|
+
await this.applyResponseTransforms("post-conversion" /* ResponseStage.PostConversion */, responseContext);
|
|
63
|
+
const result = {
|
|
64
|
+
statusCode: 200,
|
|
65
|
+
responseBody: responseContext.clientResponse,
|
|
66
|
+
providerResponse,
|
|
67
|
+
providerRequestBody: providerRequest.body,
|
|
68
|
+
request,
|
|
69
|
+
isError: false,
|
|
70
|
+
};
|
|
71
|
+
const shouldRetry = attempt < maxAttempts && isRetryRequested(request.state);
|
|
72
|
+
if (!shouldRetry) {
|
|
73
|
+
clearRetryRequest(request.state);
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
76
|
+
clearRetryRequest(request.state);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async applyRequestTransforms(stage, context) {
|
|
80
|
+
const transforms = this.transformsByStage(this.deps.requestTransforms, stage);
|
|
81
|
+
for (const transform of transforms) {
|
|
82
|
+
if (transform.applies(context)) {
|
|
83
|
+
await transform.transform(context);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async applyResponseTransforms(stage, context) {
|
|
88
|
+
const transforms = this.transformsByStage(this.deps.responseTransforms, stage);
|
|
89
|
+
for (const transform of transforms) {
|
|
90
|
+
if (transform.applies(context)) {
|
|
91
|
+
await transform.transform(context);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
transformsByStage(transforms, stage) {
|
|
96
|
+
return transforms
|
|
97
|
+
.map((transform, index) => ({ transform, index }))
|
|
98
|
+
.filter((entry) => entry.transform.stage === stage)
|
|
99
|
+
.sort((a, b) => {
|
|
100
|
+
const priorityDelta = (a.transform.priority ?? 0) - (b.transform.priority ?? 0);
|
|
101
|
+
if (priorityDelta !== 0) {
|
|
102
|
+
return priorityDelta;
|
|
103
|
+
}
|
|
104
|
+
return a.index - b.index;
|
|
105
|
+
})
|
|
106
|
+
.map((entry) => entry.transform);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAkB5C,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,OAAO,CACX,QAAqB,EACrB,OAAqB,EACrB,cAA2B;QAE3B,MAAM,iBAAiB,GAAsB;YAC3C,OAAO;YACP,cAAc,EAAE,QAAQ,CAAC,MAAM;SAChC,CAAC;QAEF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CACnD,OAAO,CAAC,YAAY,EACpB,QAAQ,CAAC,MAAM,EACf,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,OAAO,IAAI,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,CAAC;YACb,MAAM,IAAI,CAAC,sBAAsB,qCAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;YAEpE,MAAM,gBAAgB,GAAG,MAAM,SAAS,CAAC,cAAc,CACrD,OAAO,CAAC,IAAI,EACZ,iBAAiB,CAClB,CAAC;YAEF,MAAM,eAAe,GAA2B;gBAC9C,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,OAAO,EAAE,gBAAgB,CAAC,OAAO,IAAI,EAAE;aACxC,CAAC;YAEF,MAAM,IAAI,CAAC,sBAAsB,sDAA8B;gBAC7D,OAAO;gBACP,eAAe;aAChB,CAAC,CAAC;YAEH,oFAAoF;YACpF,MAAM,oBAAoB,GAAG,4BAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,IAAI,gBAAyC,CAAC;YAE9C,IAAI,oBAAoB,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CACT,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,EACzB,6DAA6D,CAC9D,CAAC;gBACF,gBAAgB,GAAG,+BAA+B,EAAE,CAAC;gBACrD,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,gBAAgB,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;oBACvC,OAAO;oBACP,IAAI,EAAE,eAAe,CAAC,IAAI;oBAC1B,OAAO,EAAE,eAAe,CAAC,OAAO;oBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,cAAc;iBACf,CAAC,CAAC;gBAEH,IAAI,gBAAgB,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBACnC,OAAO;wBACL,UAAU,EAAE,gBAAgB,CAAC,MAAM;wBACnC,YAAY,EAAE,gBAAgB,CAAC,IAAI;wBACnC,gBAAgB;wBAChB,mBAAmB,EAAE,eAAe,CAAC,IAAI;wBACzC,OAAO;wBACP,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,CAAC,uBAAuB,0CAAyB;oBACzD,OAAO;oBACP,gBAAgB;iBACjB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,eAAe,CACpD,gBAAgB,CAAC,IAAI,EACrB,iBAAiB,CAClB,CAAC;YAEF,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC;YACtE,MAAM,IAAI,CAAC,uBAAuB,uDAEhC,eAAe,CAChB,CAAC;YAEF,MAAM,MAAM,GAAmB;gBAC7B,UAAU,EAAE,GAAG;gBACf,YAAY,EAAE,eAAe,CAAC,cAAc;gBAC5C,gBAAgB;gBAChB,mBAAmB,EAAE,eAAe,CAAC,IAAI;gBACzC,OAAO;gBACP,OAAO,EAAE,KAAK;aACf,CAAC;YAEF,MAAM,WAAW,GACf,OAAO,GAAG,WAAW,IAAI,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjC,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,KAAmB,EACnB,OAGC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CACvC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAC3B,KAAK,CACN,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,KAAoB,EACpB,OAIC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CACvC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAC5B,KAAK,CACN,CAAC;QACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,iBAAiB,CACvB,UAAe,EACf,KAAa;QAEb,OAAO,UAAU;aACd,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;aACjD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC;aAClD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,MAAM,aAAa,GACjB,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,aAAa,CAAC;YACvB,CAAC;YACD,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { JsonValue } from "./types.js";
|
|
2
|
+
export declare const PIPELINE_MAX_ATTEMPTS_KEY = "__pipelineMaxAttempts";
|
|
3
|
+
export declare const PIPELINE_RETRY_FLAG_KEY = "__pipelineRetryRequested";
|
|
4
|
+
export declare const SYNTHETIC_RESPONSE_FLAG_KEY = "__syntheticResponseRequested";
|
|
5
|
+
export declare function resolvePipelineMaxAttempts(state: Record<string, JsonValue>): number;
|
|
6
|
+
export declare function setPipelineMaxAttempts(state: Record<string, JsonValue>, attempts: number): number;
|
|
7
|
+
export declare function isRetryRequested(state: Record<string, JsonValue>): boolean;
|
|
8
|
+
export declare function requestRetry(state: Record<string, JsonValue>): void;
|
|
9
|
+
export declare function clearRetryRequest(state: Record<string, JsonValue>): void;
|
|
10
|
+
export declare function isSyntheticResponseRequested(state: Record<string, JsonValue>): boolean;
|
|
11
|
+
export declare function requestSyntheticResponse(state: Record<string, JsonValue>): void;
|
|
12
|
+
export declare function clearSyntheticResponseRequest(state: Record<string, JsonValue>): void;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export const PIPELINE_MAX_ATTEMPTS_KEY = "__pipelineMaxAttempts";
|
|
2
|
+
export const PIPELINE_RETRY_FLAG_KEY = "__pipelineRetryRequested";
|
|
3
|
+
export const SYNTHETIC_RESPONSE_FLAG_KEY = "__syntheticResponseRequested";
|
|
4
|
+
const DEFAULT_MAX_ATTEMPTS = 1;
|
|
5
|
+
const MAX_ALLOWED_ATTEMPTS = 5;
|
|
6
|
+
export function resolvePipelineMaxAttempts(state) {
|
|
7
|
+
const normalized = normalizeAttempts(state[PIPELINE_MAX_ATTEMPTS_KEY]);
|
|
8
|
+
return normalized ?? DEFAULT_MAX_ATTEMPTS;
|
|
9
|
+
}
|
|
10
|
+
export function setPipelineMaxAttempts(state, attempts) {
|
|
11
|
+
const normalized = normalizeAttempts(attempts) ?? DEFAULT_MAX_ATTEMPTS;
|
|
12
|
+
state[PIPELINE_MAX_ATTEMPTS_KEY] = normalized;
|
|
13
|
+
return normalized;
|
|
14
|
+
}
|
|
15
|
+
export function isRetryRequested(state) {
|
|
16
|
+
return state[PIPELINE_RETRY_FLAG_KEY] === true;
|
|
17
|
+
}
|
|
18
|
+
export function requestRetry(state) {
|
|
19
|
+
state[PIPELINE_RETRY_FLAG_KEY] = true;
|
|
20
|
+
}
|
|
21
|
+
export function clearRetryRequest(state) {
|
|
22
|
+
delete state[PIPELINE_RETRY_FLAG_KEY];
|
|
23
|
+
}
|
|
24
|
+
export function isSyntheticResponseRequested(state) {
|
|
25
|
+
return state[SYNTHETIC_RESPONSE_FLAG_KEY] === true;
|
|
26
|
+
}
|
|
27
|
+
export function requestSyntheticResponse(state) {
|
|
28
|
+
state[SYNTHETIC_RESPONSE_FLAG_KEY] = true;
|
|
29
|
+
}
|
|
30
|
+
export function clearSyntheticResponseRequest(state) {
|
|
31
|
+
delete state[SYNTHETIC_RESPONSE_FLAG_KEY];
|
|
32
|
+
}
|
|
33
|
+
function normalizeAttempts(value) {
|
|
34
|
+
if (value === undefined || value === null) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
const numeric = typeof value === "number"
|
|
38
|
+
? value
|
|
39
|
+
: typeof value === "string"
|
|
40
|
+
? Number(value)
|
|
41
|
+
: Number.NaN;
|
|
42
|
+
if (!Number.isFinite(numeric)) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const floored = Math.floor(numeric);
|
|
46
|
+
if (floored < 1) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
return Math.min(floored, MAX_ALLOWED_ATTEMPTS);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=pipelineControl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipelineControl.js","sourceRoot":"","sources":["../../src/core/pipelineControl.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,yBAAyB,GAAG,uBAAuB,CAAC;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAClE,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AAE1E,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAE/B,MAAM,UAAU,0BAA0B,CACxC,KAAgC;IAEhC,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACvE,OAAO,UAAU,IAAI,oBAAoB,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,KAAgC,EAChC,QAAgB;IAEhB,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,oBAAoB,CAAC;IACvE,KAAK,CAAC,yBAAyB,CAAC,GAAG,UAAU,CAAC;IAC9C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAgC;IAC/D,OAAO,KAAK,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAgC;IAC3D,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAgC;IAChE,OAAO,KAAK,CAAC,uBAAuB,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAgC;IAEhC,OAAO,KAAK,CAAC,2BAA2B,CAAC,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,KAAgC;IAEhC,KAAK,CAAC,2BAA2B,CAAC,GAAG,IAAI,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAgC;IAEhC,OAAO,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GACX,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YACf,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ProviderFormat, ProxyOperation, ProviderResponsePayload, JsonValue } from "../types.js";
|
|
2
|
+
import { LLMProvider, ProviderInvokeArgs } from "./types.js";
|
|
3
|
+
export interface OpenRouterConfig {
|
|
4
|
+
baseUrl: string;
|
|
5
|
+
apiKey: string;
|
|
6
|
+
/**
|
|
7
|
+
* Comma-separated list of provider preferences.
|
|
8
|
+
* Examples: "OpenAI", "Anthropic", "OpenAI,Anthropic"
|
|
9
|
+
*/
|
|
10
|
+
providers?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Selection strategy for providers.
|
|
13
|
+
* Examples: "price", "throughput", "latency"
|
|
14
|
+
*/
|
|
15
|
+
sort?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Prioritized list of provider slugs (overrides sort).
|
|
18
|
+
* Examples: ["anthropic", "openai"]
|
|
19
|
+
*/
|
|
20
|
+
order?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Allow fallbacks to other providers (default: true)
|
|
23
|
+
*/
|
|
24
|
+
allowFallbacks?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Model slug shortcuts (e.g., ":nitro" for throughput, ":floor" for price)
|
|
27
|
+
*/
|
|
28
|
+
modelShortcut?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface OpenRouterModelConfig {
|
|
31
|
+
baseUrl?: string;
|
|
32
|
+
apiKey?: string;
|
|
33
|
+
providers?: string;
|
|
34
|
+
sort?: string;
|
|
35
|
+
order?: string[];
|
|
36
|
+
allowFallbacks?: boolean;
|
|
37
|
+
modelShortcut?: string;
|
|
38
|
+
}
|
|
39
|
+
export declare class OpenRouterProvider implements LLMProvider {
|
|
40
|
+
private readonly config;
|
|
41
|
+
key: string;
|
|
42
|
+
format: ProviderFormat;
|
|
43
|
+
supportedOperations: ProxyOperation[];
|
|
44
|
+
constructor(config: OpenRouterConfig);
|
|
45
|
+
private resolvePath;
|
|
46
|
+
private buildUrl;
|
|
47
|
+
private buildProviderBody;
|
|
48
|
+
private mergeConfig;
|
|
49
|
+
invoke({ request, body, headers, providerConfig: modelProviderConfig, }: ProviderInvokeArgs): Promise<ProviderResponsePayload>;
|
|
50
|
+
private safeJson;
|
|
51
|
+
listModels(): Promise<JsonValue>;
|
|
52
|
+
}
|