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,160 @@
1
+ import { logger } from "../utils/logger.js";
2
+ const TOOL_BLOCK_RE = /<\|tool_call_begin\|>\s*(?<name>[^\s]+)\s*<\|tool_call_argument_begin\|>\s*(?<args>.*?)\s*<\|tool_call_end\|>/gs;
3
+ const TOOL_SECTION_BEGIN = "<|tool_calls_section_begin|>";
4
+ const TOOL_SECTION_END = "<|tool_calls_section_end|>";
5
+ function cleanThinkingTags(text) {
6
+ if (!text) {
7
+ return "";
8
+ }
9
+ let cleaned = text.replaceAll("(no content)", "");
10
+ cleaned = cleaned.replace(/<thinking\s*>(.*?)<\/thinking\s*>/gis, (_, inner) => inner);
11
+ cleaned = cleaned.replace(/<think\s*>(.*?)<\/think\s*>/gis, (_, inner) => inner);
12
+ cleaned = cleaned.replace(/<\/think(?:ing)?\s*>/gi, "");
13
+ cleaned = cleaned.replace(/<think(?:ing)?\s*>/gi, "");
14
+ cleaned = cleaned.replace(/\n\s*\n\s*\n+/g, "\n\n");
15
+ return cleaned.trim();
16
+ }
17
+ function isJsonObject(value) {
18
+ return typeof value === "object" && value !== null && !Array.isArray(value);
19
+ }
20
+ function parseToolCalls(section) {
21
+ const toolCalls = [];
22
+ const matches = section.matchAll(TOOL_BLOCK_RE);
23
+ let index = 0;
24
+ for (const match of matches) {
25
+ const rawName = match.groups?.name?.trim() ?? "";
26
+ const argsStr = match.groups?.args?.trim() ?? "";
27
+ let functionName = rawName;
28
+ let callId = `call_${index}`;
29
+ if (rawName.includes(".")) {
30
+ const [, rest] = rawName.split(".", 2);
31
+ functionName = rest;
32
+ }
33
+ if (functionName.includes(":")) {
34
+ const [name, idPart] = functionName.split(":", 2);
35
+ functionName = name;
36
+ if (idPart) {
37
+ callId = idPart;
38
+ }
39
+ }
40
+ let argumentsJson = argsStr;
41
+ try {
42
+ JSON.parse(argsStr);
43
+ }
44
+ catch (error) {
45
+ logger.warn({ err: error }, "Invalid JSON detected in tool arguments");
46
+ argumentsJson = JSON.stringify({ raw: argsStr });
47
+ }
48
+ toolCalls.push({
49
+ id: callId,
50
+ type: "function",
51
+ function: {
52
+ name: functionName,
53
+ arguments: argumentsJson,
54
+ },
55
+ });
56
+ index += 1;
57
+ }
58
+ return toolCalls;
59
+ }
60
+ export function fixKimiResponse(response) {
61
+ const metadata = {
62
+ extractedToolCalls: 0,
63
+ extractedFromReasoning: 0,
64
+ extractedFromContent: 0,
65
+ cleanedReasoningContent: false,
66
+ cleanedMessageContent: false,
67
+ };
68
+ try {
69
+ const choices = response?.choices;
70
+ if (!Array.isArray(choices) || !choices.length) {
71
+ return { response, metadata };
72
+ }
73
+ for (const choice of choices) {
74
+ if (!isJsonObject(choice)) {
75
+ continue;
76
+ }
77
+ const message = isJsonObject(choice.message)
78
+ ? choice.message
79
+ : (choice.message = {});
80
+ let aggregatedToolCalls = Array.isArray(message.tool_calls)
81
+ ? [...message.tool_calls]
82
+ : [];
83
+ if (typeof message.reasoning_content === "string") {
84
+ const original = message.reasoning_content;
85
+ const { cleanedText, extracted } = extractToolCallSections(original);
86
+ const cleanedReasoning = cleanThinkingTags(cleanedText);
87
+ if (cleanedReasoning !== original) {
88
+ console.log("[KimiFixer] Cleaned reasoning content (thinking tags).");
89
+ metadata.cleanedReasoningContent = true;
90
+ message.reasoning_content = cleanedReasoning;
91
+ }
92
+ if (extracted.length) {
93
+ console.log(`[KimiFixer] Extracted ${extracted.length} tool calls from reasoning content.`);
94
+ aggregatedToolCalls = aggregatedToolCalls.concat(extracted);
95
+ metadata.extractedFromReasoning += extracted.length;
96
+ metadata.extractedToolCalls += extracted.length;
97
+ }
98
+ }
99
+ if (typeof message.content === "string") {
100
+ const original = message.content;
101
+ const { cleanedText, extracted } = extractToolCallSections(original);
102
+ const normalizedContent = normalizeContentText(cleanedText);
103
+ if (normalizedContent !== original) {
104
+ console.log("[KimiFixer] Cleaned message content (text normalization).");
105
+ metadata.cleanedMessageContent = true;
106
+ message.content = normalizedContent;
107
+ }
108
+ if (extracted.length) {
109
+ console.log(`[KimiFixer] Extracted ${extracted.length} tool calls from message content.`);
110
+ aggregatedToolCalls = aggregatedToolCalls.concat(extracted);
111
+ metadata.extractedFromContent += extracted.length;
112
+ metadata.extractedToolCalls += extracted.length;
113
+ }
114
+ }
115
+ if (aggregatedToolCalls.length) {
116
+ message.tool_calls = aggregatedToolCalls;
117
+ choice.finish_reason = "tool_calls";
118
+ }
119
+ else if ("tool_calls" in message) {
120
+ delete message.tool_calls;
121
+ }
122
+ }
123
+ return { response, metadata };
124
+ }
125
+ catch (error) {
126
+ logger.error({ err: error }, "Failed to fix Kimi response");
127
+ return { response, metadata };
128
+ }
129
+ }
130
+ function extractToolCallSections(text) {
131
+ if (!text || !text.includes(TOOL_SECTION_BEGIN)) {
132
+ return { cleanedText: text ?? "", extracted: [] };
133
+ }
134
+ let remaining = text;
135
+ const extracted = [];
136
+ while (remaining.includes(TOOL_SECTION_BEGIN)) {
137
+ const start = remaining.indexOf(TOOL_SECTION_BEGIN);
138
+ if (start === -1) {
139
+ break;
140
+ }
141
+ const afterStart = start + TOOL_SECTION_BEGIN.length;
142
+ const end = remaining.indexOf(TOOL_SECTION_END, afterStart);
143
+ const section = end === -1
144
+ ? remaining.slice(afterStart)
145
+ : remaining.slice(afterStart, end);
146
+ extracted.push(...parseToolCalls(section));
147
+ remaining =
148
+ end === -1
149
+ ? remaining.slice(0, start)
150
+ : `${remaining.slice(0, start)}${remaining.slice(end + TOOL_SECTION_END.length)}`;
151
+ }
152
+ return { cleanedText: remaining.trim(), extracted };
153
+ }
154
+ function normalizeContentText(text) {
155
+ if (!text) {
156
+ return "";
157
+ }
158
+ return text.replaceAll("(no content)", "").trim();
159
+ }
160
+ //# sourceMappingURL=kimiFixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kimiFixer.js","sourceRoot":"","sources":["../../src/services/kimiFixer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Readable } from "node:stream";
2
+ import type { JsonObject } from "../core/types.js";
3
+ export interface StreamingOptions {
4
+ delay: number;
5
+ chunkSize: number;
6
+ }
7
+ export declare function openAIStreamFromResponse(response: JsonObject, options: StreamingOptions): Readable;
8
+ export declare function anthropicStreamFromResponse(response: JsonObject, options: StreamingOptions): Readable;
9
+ export declare function openAIResponsesStreamFromResponse(response: JsonObject, options: StreamingOptions): Readable;