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.
Files changed (91) hide show
  1. package/LICENSE +24 -0
  2. package/README.md +177 -0
  3. package/dist/adapters/anthropicAdapter.d.ts +138 -0
  4. package/dist/adapters/anthropicAdapter.js +184 -0
  5. package/dist/adapters/anthropicAdapter.js.map +1 -0
  6. package/dist/config.d.ts +27 -0
  7. package/dist/config.js +228 -0
  8. package/dist/config.js.map +1 -0
  9. package/dist/core/converters/anthropicToOpenAI.d.ts +11 -0
  10. package/dist/core/converters/anthropicToOpenAI.js +18 -0
  11. package/dist/core/converters/anthropicToOpenAI.js.map +1 -0
  12. package/dist/core/converters/openaiPassthrough.d.ts +18 -0
  13. package/dist/core/converters/openaiPassthrough.js +794 -0
  14. package/dist/core/converters/openaiPassthrough.js.map +1 -0
  15. package/dist/core/converters/types.d.ts +14 -0
  16. package/dist/core/converters/types.js +16 -0
  17. package/dist/core/converters/types.js.map +1 -0
  18. package/dist/core/ensureToolCall.d.ts +24 -0
  19. package/dist/core/ensureToolCall.js +93 -0
  20. package/dist/core/ensureToolCall.js.map +1 -0
  21. package/dist/core/modelRegistry.d.ts +46 -0
  22. package/dist/core/modelRegistry.js +92 -0
  23. package/dist/core/modelRegistry.js.map +1 -0
  24. package/dist/core/pipeline.d.ts +17 -0
  25. package/dist/core/pipeline.js +109 -0
  26. package/dist/core/pipeline.js.map +1 -0
  27. package/dist/core/pipelineControl.d.ts +12 -0
  28. package/dist/core/pipelineControl.js +51 -0
  29. package/dist/core/pipelineControl.js.map +1 -0
  30. package/dist/core/providers/openRouterProvider.d.ts +52 -0
  31. package/dist/core/providers/openRouterProvider.js +158 -0
  32. package/dist/core/providers/openRouterProvider.js.map +1 -0
  33. package/dist/core/providers/openaiProvider.d.ts +22 -0
  34. package/dist/core/providers/openaiProvider.js +79 -0
  35. package/dist/core/providers/openaiProvider.js.map +1 -0
  36. package/dist/core/providers/types.d.ts +24 -0
  37. package/dist/core/providers/types.js +14 -0
  38. package/dist/core/providers/types.js.map +1 -0
  39. package/dist/core/providers/vertexProvider.d.ts +37 -0
  40. package/dist/core/providers/vertexProvider.js +167 -0
  41. package/dist/core/providers/vertexProvider.js.map +1 -0
  42. package/dist/core/syntheticResponse.d.ts +6 -0
  43. package/dist/core/syntheticResponse.js +36 -0
  44. package/dist/core/syntheticResponse.js.map +1 -0
  45. package/dist/core/transforms/request/ClampMaxTokensTransform.d.ts +7 -0
  46. package/dist/core/transforms/request/ClampMaxTokensTransform.js +29 -0
  47. package/dist/core/transforms/request/ClampMaxTokensTransform.js.map +1 -0
  48. package/dist/core/transforms/request/DisableStreamingTransform.d.ts +7 -0
  49. package/dist/core/transforms/request/DisableStreamingTransform.js +15 -0
  50. package/dist/core/transforms/request/DisableStreamingTransform.js.map +1 -0
  51. package/dist/core/transforms/request/EnsureToolCallRequestTransform.d.ts +12 -0
  52. package/dist/core/transforms/request/EnsureToolCallRequestTransform.js +120 -0
  53. package/dist/core/transforms/request/EnsureToolCallRequestTransform.js.map +1 -0
  54. package/dist/core/transforms/response/EnsureToolCallResponseTransform.d.ts +9 -0
  55. package/dist/core/transforms/response/EnsureToolCallResponseTransform.js +223 -0
  56. package/dist/core/transforms/response/EnsureToolCallResponseTransform.js.map +1 -0
  57. package/dist/core/transforms/response/KimiResponseTransform.d.ts +7 -0
  58. package/dist/core/transforms/response/KimiResponseTransform.js +32 -0
  59. package/dist/core/transforms/response/KimiResponseTransform.js.map +1 -0
  60. package/dist/core/types.d.ts +80 -0
  61. package/dist/core/types.js +18 -0
  62. package/dist/core/types.js.map +1 -0
  63. package/dist/index.d.ts +1 -0
  64. package/dist/index.js +17 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/persistence/logStore.d.ts +43 -0
  67. package/dist/persistence/logStore.js +115 -0
  68. package/dist/persistence/logStore.js.map +1 -0
  69. package/dist/server.d.ts +3 -0
  70. package/dist/server.js +385 -0
  71. package/dist/server.js.map +1 -0
  72. package/dist/services/kimiFixer.d.ts +13 -0
  73. package/dist/services/kimiFixer.js +160 -0
  74. package/dist/services/kimiFixer.js.map +1 -0
  75. package/dist/services/streaming.d.ts +9 -0
  76. package/dist/services/streaming.js +513 -0
  77. package/dist/services/streaming.js.map +1 -0
  78. package/dist/utils/envResolver.d.ts +26 -0
  79. package/dist/utils/envResolver.js +64 -0
  80. package/dist/utils/envResolver.js.map +1 -0
  81. package/dist/utils/ids.d.ts +1 -0
  82. package/dist/utils/ids.js +7 -0
  83. package/dist/utils/ids.js.map +1 -0
  84. package/dist/utils/logger.d.ts +3 -0
  85. package/dist/utils/logger.js +12 -0
  86. package/dist/utils/logger.js.map +1 -0
  87. package/frontend/dist/assets/JSONViewer-97138fd7.js +3 -0
  88. package/frontend/dist/assets/index-0e7c091b.css +1 -0
  89. package/frontend/dist/assets/index-4b354ce2.js +40 -0
  90. package/frontend/dist/index.html +22 -0
  91. 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":"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"}
@@ -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
+ }