claudebox 0.1.0 ā 0.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 +10 -2
- package/dist/background-update.d.ts +2 -0
- package/dist/background-update.d.ts.map +1 -0
- package/dist/background-update.js +48 -0
- package/dist/background-update.js.map +1 -0
- package/dist/cli.js +58 -50
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +1 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +69 -47
- package/dist/config.js.map +1 -1
- package/dist/configure.d.ts +2 -0
- package/dist/configure.d.ts.map +1 -0
- package/dist/configure.js +121 -0
- package/dist/configure.js.map +1 -0
- package/dist/converter.d.ts.map +1 -1
- package/dist/converter.js +42 -33
- package/dist/converter.js.map +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +20 -16
- package/dist/logger.js.map +1 -1
- package/dist/providers/gemini.d.ts +2 -2
- package/dist/providers/gemini.d.ts.map +1 -1
- package/dist/providers/gemini.js +14 -11
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +3 -3
- package/dist/providers/index.js +3 -3
- package/dist/providers/ollama.d.ts +2 -2
- package/dist/providers/ollama.d.ts.map +1 -1
- package/dist/providers/ollama.js +14 -11
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.d.ts +2 -2
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +10 -10
- package/dist/providers/openai.js.map +1 -1
- package/dist/server.js +20 -20
- package/dist/translator.d.ts +1 -1
- package/dist/translator.d.ts.map +1 -1
- package/dist/translator.js +40 -42
- package/dist/translator.js.map +1 -1
- package/dist/types.d.ts +14 -14
- package/dist/update-checker.d.ts +4 -0
- package/dist/update-checker.d.ts.map +1 -0
- package/dist/update-checker.js +96 -0
- package/dist/update-checker.js.map +1 -0
- package/package.json +12 -4
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { select, confirm, input, password } from '@inquirer/prompts';
|
|
2
|
+
import { config } from './config.js';
|
|
3
|
+
export async function runConfigure() {
|
|
4
|
+
console.log('Current Configuration:');
|
|
5
|
+
console.log(JSON.stringify(config.summary(), null, 2));
|
|
6
|
+
console.log('\n---');
|
|
7
|
+
const proceed = await confirm({
|
|
8
|
+
message: 'Do you want to update this configuration interactively?',
|
|
9
|
+
default: true,
|
|
10
|
+
});
|
|
11
|
+
if (!proceed) {
|
|
12
|
+
console.log('Configuration unchanged.');
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const preferredProvider = await select({
|
|
16
|
+
message: 'Select your preferred provider:',
|
|
17
|
+
choices: [
|
|
18
|
+
{ name: 'Ollama', value: 'ollama' },
|
|
19
|
+
{ name: 'OpenAI', value: 'openai' },
|
|
20
|
+
{ name: 'Gemini', value: 'gemini' },
|
|
21
|
+
],
|
|
22
|
+
default: 'ollama',
|
|
23
|
+
});
|
|
24
|
+
const updates = {
|
|
25
|
+
preferredProvider,
|
|
26
|
+
providers: {},
|
|
27
|
+
};
|
|
28
|
+
if (preferredProvider === 'ollama') {
|
|
29
|
+
let models = [];
|
|
30
|
+
const apiBase = config.providers.ollama.apiBase || 'http://localhost:11434';
|
|
31
|
+
console.log('\nš” Tip: To use cloud models (like kimi-k2.5:cloud), pull them first using `ollama pull <model>`.');
|
|
32
|
+
console.log(' Search for available cloud models at: https://ollama.com/search?c=cloud\n');
|
|
33
|
+
let bigModel = '';
|
|
34
|
+
let smallModel = '';
|
|
35
|
+
while (true) {
|
|
36
|
+
let models = [];
|
|
37
|
+
try {
|
|
38
|
+
const res = await fetch(`${apiBase}/api/tags`);
|
|
39
|
+
if (res.ok) {
|
|
40
|
+
const data = await res.json();
|
|
41
|
+
models = data.models?.map((m) => m.name) || [];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
// Silently ignore or warn below
|
|
46
|
+
}
|
|
47
|
+
if (models.length > 0) {
|
|
48
|
+
const choices = [
|
|
49
|
+
{ name: 'š Refresh list...', value: 'refresh_list_flag' },
|
|
50
|
+
...models.map((m) => ({ name: m, value: m })),
|
|
51
|
+
];
|
|
52
|
+
bigModel = await select({
|
|
53
|
+
message: 'Select a large model for complex reasoning:',
|
|
54
|
+
choices,
|
|
55
|
+
});
|
|
56
|
+
if (bigModel === 'refresh_list_flag') {
|
|
57
|
+
console.log('\nRefreshing models...');
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
smallModel = await select({
|
|
61
|
+
message: 'Select a small model for fast responses:',
|
|
62
|
+
choices,
|
|
63
|
+
});
|
|
64
|
+
if (smallModel === 'refresh_list_flag') {
|
|
65
|
+
console.log('\nRefreshing models...');
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.log(`\nCould not fetch local models from ${apiBase}. Is Ollama running?`);
|
|
72
|
+
const action = await select({
|
|
73
|
+
message: 'No models found.',
|
|
74
|
+
choices: [
|
|
75
|
+
{ name: 'š Refresh list', value: 'refresh_list_flag' },
|
|
76
|
+
{ name: 'ā Cancel configuration', value: 'cancel' },
|
|
77
|
+
],
|
|
78
|
+
});
|
|
79
|
+
if (action === 'refresh_list_flag') {
|
|
80
|
+
console.log('\nRefreshing models...');
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return; // Exit configuration entirely
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
updates.providers.ollama = {
|
|
89
|
+
bigModel,
|
|
90
|
+
smallModel,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// For OpenAI or Gemini
|
|
95
|
+
const apiKey = await password({
|
|
96
|
+
message: `Enter your ${preferredProvider} API key (leave blank to keep current):`,
|
|
97
|
+
mask: '*',
|
|
98
|
+
});
|
|
99
|
+
if (!updates.providers[preferredProvider]) {
|
|
100
|
+
updates.providers[preferredProvider] = {};
|
|
101
|
+
}
|
|
102
|
+
if (apiKey) {
|
|
103
|
+
updates.providers[preferredProvider].apiKey = apiKey;
|
|
104
|
+
}
|
|
105
|
+
const bigModel = await input({
|
|
106
|
+
message: `Enter the big model for ${preferredProvider}:`,
|
|
107
|
+
default: config.providers[preferredProvider]?.bigModel || '',
|
|
108
|
+
});
|
|
109
|
+
const smallModel = await input({
|
|
110
|
+
message: `Enter the small model for ${preferredProvider}:`,
|
|
111
|
+
default: config.providers[preferredProvider]?.smallModel || '',
|
|
112
|
+
});
|
|
113
|
+
updates.providers[preferredProvider].bigModel = bigModel;
|
|
114
|
+
updates.providers[preferredProvider].smallModel = smallModel;
|
|
115
|
+
}
|
|
116
|
+
config.save(updates);
|
|
117
|
+
console.log('\nā
Configuration updated successfully!');
|
|
118
|
+
console.log('Current Configuration Summary:');
|
|
119
|
+
console.log(JSON.stringify(config.summary(), null, 2));
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=configure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../src/configure.ts"],"names":[],"mappings":"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"}
|
package/dist/converter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM;;;;;
|
|
1
|
+
{"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,MAAM;;;;;cAMlF,MAAM;eACL,MAAM;aACR,MAAM;eACJ,MAAM;gBACL,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;EAyClC;AAmBD,wBAAuB,aAAa,CAClC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,EAC7B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,cAAc,CAAC,MAAM,CAAC,CAwHxB"}
|
package/dist/converter.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
export function convertNonStreaming(openAIResponse, claudeModel) {
|
|
2
2
|
const choice = openAIResponse.choices?.[0];
|
|
3
3
|
if (!choice)
|
|
4
|
-
throw new Error(
|
|
4
|
+
throw new Error('No choices in response');
|
|
5
5
|
const msg = choice.message;
|
|
6
6
|
const content = [];
|
|
7
7
|
if (msg.content) {
|
|
8
|
-
content.push({ type:
|
|
8
|
+
content.push({ type: 'text', text: msg.content });
|
|
9
9
|
}
|
|
10
10
|
if (msg.tool_calls?.length) {
|
|
11
11
|
for (const tc of msg.tool_calls) {
|
|
12
12
|
let parsedInput = {};
|
|
13
13
|
try {
|
|
14
|
-
parsedInput = JSON.parse(tc.function.arguments ||
|
|
14
|
+
parsedInput = JSON.parse(tc.function.arguments || '{}');
|
|
15
15
|
}
|
|
16
16
|
catch {
|
|
17
17
|
// IMP: Provider returned malformed tool-call JSON, falling back to empty input
|
|
18
18
|
parsedInput = {};
|
|
19
19
|
}
|
|
20
20
|
content.push({
|
|
21
|
-
type:
|
|
21
|
+
type: 'tool_use',
|
|
22
22
|
id: tc.id,
|
|
23
23
|
name: tc.function.name,
|
|
24
24
|
input: parsedInput,
|
|
@@ -29,8 +29,8 @@ export function convertNonStreaming(openAIResponse, claudeModel) {
|
|
|
29
29
|
const usage = openAIResponse.usage;
|
|
30
30
|
return {
|
|
31
31
|
id: openAIResponse.id ?? `msg_${Date.now()}`,
|
|
32
|
-
type:
|
|
33
|
-
role:
|
|
32
|
+
type: 'message',
|
|
33
|
+
role: 'assistant',
|
|
34
34
|
content,
|
|
35
35
|
model: claudeModel,
|
|
36
36
|
stop_reason: stopReason,
|
|
@@ -43,11 +43,16 @@ export function convertNonStreaming(openAIResponse, claudeModel) {
|
|
|
43
43
|
}
|
|
44
44
|
function mapStopReason(finishReason) {
|
|
45
45
|
switch (finishReason) {
|
|
46
|
-
case
|
|
47
|
-
|
|
48
|
-
case
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
case 'stop':
|
|
47
|
+
return 'end_turn';
|
|
48
|
+
case 'length':
|
|
49
|
+
return 'max_tokens';
|
|
50
|
+
case 'tool_calls':
|
|
51
|
+
return 'tool_use';
|
|
52
|
+
case 'content_filter':
|
|
53
|
+
return 'end_turn';
|
|
54
|
+
default:
|
|
55
|
+
return 'end_turn';
|
|
51
56
|
}
|
|
52
57
|
}
|
|
53
58
|
// āāā Streaming āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
|
|
@@ -55,11 +60,11 @@ export async function* convertStream(stream, claudeModel, msgId) {
|
|
|
55
60
|
const id = msgId || `msg_${Date.now()}`;
|
|
56
61
|
// message_start
|
|
57
62
|
yield `event: message_start\ndata: ${JSON.stringify({
|
|
58
|
-
type:
|
|
63
|
+
type: 'message_start',
|
|
59
64
|
message: {
|
|
60
65
|
id,
|
|
61
|
-
type:
|
|
62
|
-
role:
|
|
66
|
+
type: 'message',
|
|
67
|
+
role: 'assistant',
|
|
63
68
|
content: [],
|
|
64
69
|
model: claudeModel,
|
|
65
70
|
stop_reason: null,
|
|
@@ -73,10 +78,10 @@ export async function* convertStream(stream, claudeModel, msgId) {
|
|
|
73
78
|
let inputTokens = 0;
|
|
74
79
|
let outputTokens = 0;
|
|
75
80
|
for await (const line of stream) {
|
|
76
|
-
if (!line.startsWith(
|
|
81
|
+
if (!line.startsWith('data: '))
|
|
77
82
|
continue;
|
|
78
83
|
const data = line.slice(6).trim();
|
|
79
|
-
if (data ===
|
|
84
|
+
if (data === '[DONE]')
|
|
80
85
|
break;
|
|
81
86
|
let chunk;
|
|
82
87
|
try {
|
|
@@ -96,22 +101,22 @@ export async function* convertStream(stream, claudeModel, msgId) {
|
|
|
96
101
|
}
|
|
97
102
|
// Text delta
|
|
98
103
|
if (delta?.content !== undefined && delta.content !== null) {
|
|
99
|
-
if (currentBlockType !==
|
|
104
|
+
if (currentBlockType !== 'text') {
|
|
100
105
|
if (currentBlockType !== null) {
|
|
101
|
-
yield `event: content_block_stop\ndata: ${JSON.stringify({ type:
|
|
106
|
+
yield `event: content_block_stop\ndata: ${JSON.stringify({ type: 'content_block_stop', index: blockIndex })}\n\n`;
|
|
102
107
|
blockIndex++;
|
|
103
108
|
}
|
|
104
|
-
currentBlockType =
|
|
109
|
+
currentBlockType = 'text';
|
|
105
110
|
yield `event: content_block_start\ndata: ${JSON.stringify({
|
|
106
|
-
type:
|
|
111
|
+
type: 'content_block_start',
|
|
107
112
|
index: blockIndex,
|
|
108
|
-
content_block: { type:
|
|
113
|
+
content_block: { type: 'text', text: '' },
|
|
109
114
|
})}\n\n`;
|
|
110
115
|
}
|
|
111
116
|
yield `event: content_block_delta\ndata: ${JSON.stringify({
|
|
112
|
-
type:
|
|
117
|
+
type: 'content_block_delta',
|
|
113
118
|
index: blockIndex,
|
|
114
|
-
delta: { type:
|
|
119
|
+
delta: { type: 'text_delta', text: delta.content },
|
|
115
120
|
})}\n\n`;
|
|
116
121
|
}
|
|
117
122
|
// Tool call deltas
|
|
@@ -121,23 +126,27 @@ export async function* convertStream(stream, claudeModel, msgId) {
|
|
|
121
126
|
if (!toolCallAccumulators[tcIdx]) {
|
|
122
127
|
// New tool call block
|
|
123
128
|
if (currentBlockType !== null) {
|
|
124
|
-
yield `event: content_block_stop\ndata: ${JSON.stringify({ type:
|
|
129
|
+
yield `event: content_block_stop\ndata: ${JSON.stringify({ type: 'content_block_stop', index: blockIndex })}\n\n`;
|
|
125
130
|
blockIndex++;
|
|
126
131
|
}
|
|
127
|
-
toolCallAccumulators[tcIdx] = {
|
|
128
|
-
|
|
132
|
+
toolCallAccumulators[tcIdx] = {
|
|
133
|
+
id: tc.id ?? '',
|
|
134
|
+
name: tc.function?.name ?? '',
|
|
135
|
+
args: '',
|
|
136
|
+
};
|
|
137
|
+
currentBlockType = 'tool_use';
|
|
129
138
|
yield `event: content_block_start\ndata: ${JSON.stringify({
|
|
130
|
-
type:
|
|
139
|
+
type: 'content_block_start',
|
|
131
140
|
index: blockIndex,
|
|
132
|
-
content_block: { type:
|
|
141
|
+
content_block: { type: 'tool_use', id: tc.id, name: tc.function?.name, input: {} },
|
|
133
142
|
})}\n\n`;
|
|
134
143
|
}
|
|
135
144
|
if (tc.function?.arguments) {
|
|
136
145
|
toolCallAccumulators[tcIdx].args += tc.function.arguments;
|
|
137
146
|
yield `event: content_block_delta\ndata: ${JSON.stringify({
|
|
138
|
-
type:
|
|
147
|
+
type: 'content_block_delta',
|
|
139
148
|
index: blockIndex,
|
|
140
|
-
delta: { type:
|
|
149
|
+
delta: { type: 'input_json_delta', partial_json: tc.function.arguments },
|
|
141
150
|
})}\n\n`;
|
|
142
151
|
}
|
|
143
152
|
}
|
|
@@ -145,14 +154,14 @@ export async function* convertStream(stream, claudeModel, msgId) {
|
|
|
145
154
|
// Finish
|
|
146
155
|
if (choice.finish_reason) {
|
|
147
156
|
if (currentBlockType !== null) {
|
|
148
|
-
yield `event: content_block_stop\ndata: ${JSON.stringify({ type:
|
|
157
|
+
yield `event: content_block_stop\ndata: ${JSON.stringify({ type: 'content_block_stop', index: blockIndex })}\n\n`;
|
|
149
158
|
}
|
|
150
159
|
yield `event: message_delta\ndata: ${JSON.stringify({
|
|
151
|
-
type:
|
|
160
|
+
type: 'message_delta',
|
|
152
161
|
delta: { stop_reason: mapStopReason(choice.finish_reason), stop_sequence: null },
|
|
153
162
|
usage: { output_tokens: outputTokens },
|
|
154
163
|
})}\n\n`;
|
|
155
|
-
yield `event: message_stop\ndata: ${JSON.stringify({ type:
|
|
164
|
+
yield `event: message_stop\ndata: ${JSON.stringify({ type: 'message_stop' })}\n\n`;
|
|
156
165
|
}
|
|
157
166
|
}
|
|
158
167
|
}
|
package/dist/converter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,cAAmC,EAAE,WAAmB;IAC1F,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3B,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare function logRequestStart(requestId: string, claudeModel: string, targetModel: string, provider: string, numMessages: number, numTools: number): void;
|
|
2
2
|
export declare function logRequest(requestId: string, claudeModel: string, targetModel: string, provider: string, numMessages: number, numTools: number, statusCode: number, durationMs: number): void;
|
|
3
|
-
export declare function logVerbose(requestId: string, type:
|
|
3
|
+
export declare function logVerbose(requestId: string, type: 'PROMPT' | 'RESPONSE', data: any): void;
|
|
4
4
|
export declare function logInfo(requestId: string, message: string): void;
|
|
5
5
|
//# sourceMappingURL=logger.d.ts.map
|
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAqDA,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,QAcjB;AAED,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,QAyBnB;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,UAAU,EAAE,IAAI,EAAE,GAAG,QAWnF;AAED,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAQzD"}
|
package/dist/logger.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { config } from
|
|
2
|
-
const RESET =
|
|
3
|
-
const BOLD =
|
|
4
|
-
const DIM =
|
|
5
|
-
const CYAN =
|
|
6
|
-
const GREEN =
|
|
7
|
-
const YELLOW =
|
|
8
|
-
const MAGENTA =
|
|
9
|
-
const BLUE =
|
|
10
|
-
const RED =
|
|
1
|
+
import { config } from './config.js';
|
|
2
|
+
const RESET = '\x1b[0m';
|
|
3
|
+
const BOLD = '\x1b[1m';
|
|
4
|
+
const DIM = '\x1b[2m';
|
|
5
|
+
const CYAN = '\x1b[36m';
|
|
6
|
+
const GREEN = '\x1b[32m';
|
|
7
|
+
const YELLOW = '\x1b[33m';
|
|
8
|
+
const MAGENTA = '\x1b[35m';
|
|
9
|
+
const BLUE = '\x1b[34m';
|
|
10
|
+
const RED = '\x1b[31m';
|
|
11
11
|
const PROVIDER_COLORS = {
|
|
12
12
|
openai: GREEN,
|
|
13
13
|
gemini: BLUE,
|
|
@@ -17,10 +17,14 @@ function getLogLine(requestId, claudeModel, targetModel, provider, numMessages,
|
|
|
17
17
|
const providerColor = PROVIDER_COLORS[provider] ?? CYAN;
|
|
18
18
|
const statusStr = statusCode === undefined
|
|
19
19
|
? `${YELLOW}processing...${RESET}`
|
|
20
|
-
:
|
|
20
|
+
: statusCode >= 400
|
|
21
|
+
? `${RED}${statusCode}${RESET}`
|
|
22
|
+
: `${GREEN}${statusCode}${RESET}`;
|
|
21
23
|
const durationStr = durationMs === undefined
|
|
22
|
-
?
|
|
23
|
-
:
|
|
24
|
+
? ''
|
|
25
|
+
: durationMs > 2000
|
|
26
|
+
? `${YELLOW}${durationMs}ms${RESET}`
|
|
27
|
+
: `${DIM}${durationMs}ms${RESET}`;
|
|
24
28
|
return (`${DIM}[${new Date().toISOString()}]${RESET} ` +
|
|
25
29
|
`${BOLD}${requestId}${RESET} ` +
|
|
26
30
|
`${CYAN}${claudeModel}${RESET} ${DIM}ā${RESET} ` +
|
|
@@ -36,7 +40,7 @@ export function logRequestStart(requestId, claudeModel, targetModel, provider, n
|
|
|
36
40
|
`${CYAN}${claudeModel}${RESET} ā ${BOLD}${provider}/${targetModel}${RESET}`);
|
|
37
41
|
return;
|
|
38
42
|
}
|
|
39
|
-
process.stdout.write(getLogLine(requestId, claudeModel, targetModel, provider, numMessages, numTools) +
|
|
43
|
+
process.stdout.write(getLogLine(requestId, claudeModel, targetModel, provider, numMessages, numTools) + '\r');
|
|
40
44
|
}
|
|
41
45
|
export function logRequest(requestId, claudeModel, targetModel, provider, numMessages, numTools, statusCode, durationMs) {
|
|
42
46
|
const line = getLogLine(requestId, claudeModel, targetModel, provider, numMessages, numTools, statusCode, durationMs);
|
|
@@ -50,14 +54,14 @@ export function logRequest(requestId, claudeModel, targetModel, provider, numMes
|
|
|
50
54
|
}
|
|
51
55
|
else {
|
|
52
56
|
// Clear line and write final
|
|
53
|
-
process.stdout.write(
|
|
57
|
+
process.stdout.write('\x1b[2K\r' + line + '\n');
|
|
54
58
|
}
|
|
55
59
|
}
|
|
56
60
|
export function logVerbose(requestId, type, data) {
|
|
57
61
|
// Only log JSON if verbose level is 2
|
|
58
62
|
if (config.verbose < 2)
|
|
59
63
|
return;
|
|
60
|
-
const color = type ===
|
|
64
|
+
const color = type === 'PROMPT' ? YELLOW : GREEN;
|
|
61
65
|
console.log(`${DIM}[${new Date().toISOString()}]${RESET} ` +
|
|
62
66
|
`${BOLD}${requestId}${RESET} ` +
|
|
63
67
|
`${color}${BOLD}[${type} JSON]${RESET}`);
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,MAAM,GAAG,UAAU,CAAC;AAC1B,MAAM,OAAO,GAAG,UAAU,CAAC;AAC3B,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,GAAG,GAAG,UAAU,CAAC;AAEvB,MAAM,eAAe,GAA2B;IAC9C,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,OAAO;CAChB,CAAC;AAEF,SAAS,UAAU,CACjB,SAAiB,EACjB,WAAmB,EACnB,WAAmB,EACnB,QAAgB,EAChB,WAAmB,EACnB,QAAgB,EAChB,UAAmB,EACnB,UAAmB;IAEnB,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;IACxD,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { OpenAIRequest } from
|
|
2
|
-
import type { FastifyReply } from
|
|
1
|
+
import type { OpenAIRequest } from '../types.js';
|
|
2
|
+
import type { FastifyReply } from 'fastify';
|
|
3
3
|
export declare function forwardToGemini(req: OpenAIRequest, model: string, reply: FastifyReply, requestId?: string): Promise<{
|
|
4
4
|
id: any;
|
|
5
5
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAe5C,wBAAsB,eAAe,
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAe5C,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EACnB,SAAS,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;GAsCnB"}
|
package/dist/providers/gemini.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import OpenAI from
|
|
2
|
-
import { config } from
|
|
3
|
-
import { convertNonStreaming, convertStream } from
|
|
4
|
-
import { logVerbose } from
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
import { config } from '../config.js';
|
|
3
|
+
import { convertNonStreaming, convertStream } from '../converter.js';
|
|
4
|
+
import { logVerbose } from '../logger.js';
|
|
5
5
|
let client = null;
|
|
6
6
|
function getClient() {
|
|
7
7
|
if (!client) {
|
|
8
8
|
client = new OpenAI({
|
|
9
9
|
apiKey: config.geminiApiKey,
|
|
10
|
-
baseURL:
|
|
10
|
+
baseURL: 'https://generativelanguage.googleapis.com/v1beta/openai/',
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
13
|
return client;
|
|
@@ -19,18 +19,21 @@ export async function forwardToGemini(req, model, reply, requestId) {
|
|
|
19
19
|
if (cleanReq.top_p === 1)
|
|
20
20
|
delete cleanReq.top_p;
|
|
21
21
|
if (cleanReq.stream) {
|
|
22
|
-
reply.raw.setHeader(
|
|
23
|
-
reply.raw.setHeader(
|
|
24
|
-
reply.raw.setHeader(
|
|
25
|
-
const stream = await client.chat.completions.create({
|
|
22
|
+
reply.raw.setHeader('Content-Type', 'text/event-stream');
|
|
23
|
+
reply.raw.setHeader('Cache-Control', 'no-cache');
|
|
24
|
+
reply.raw.setHeader('Connection', 'keep-alive');
|
|
25
|
+
const stream = (await client.chat.completions.create({
|
|
26
|
+
...cleanReq,
|
|
27
|
+
stream: true,
|
|
28
|
+
}));
|
|
26
29
|
async function* lines() {
|
|
27
30
|
for await (const chunk of stream) {
|
|
28
31
|
if (config.verbose >= 2 && requestId) {
|
|
29
|
-
logVerbose(requestId,
|
|
32
|
+
logVerbose(requestId, 'RESPONSE', chunk);
|
|
30
33
|
}
|
|
31
34
|
yield `data: ${JSON.stringify(chunk)}\n`;
|
|
32
35
|
}
|
|
33
|
-
yield
|
|
36
|
+
yield 'data: [DONE]\n';
|
|
34
37
|
}
|
|
35
38
|
const msgId = `msg_${Date.now()}`;
|
|
36
39
|
for await (const sseEvent of convertStream(lines(), model, msgId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,SAAS,SAAS;IAChB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC,YAAY;YAC3B,OAAO,EAAE,0DAA0D;SACpE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,SAAS,SAAS;IAChB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC,YAAY;YAC3B,OAAO,EAAE,0DAA0D;SACpE,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAkB,EAClB,KAAa,EACb,KAAmB,EACnB,SAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC5B,IAAI,QAAQ,CAAC,KAAK,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;IAEhD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACzD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACnD,GAAG,QAAQ;YACX,MAAM,EAAE,IAAI;SACN,CAAC,CAAQ,CAAC;QAElB,KAAK,SAAS,CAAC,CAAC,KAAK;YACnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;oBACrC,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3C,CAAC;YACD,MAAM,gBAAgB,CAAC;QACzB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAClC,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAS,CAAC,CAAC;IAC7F,OAAO,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { forwardToOpenAI } from
|
|
2
|
-
export { forwardToGemini } from
|
|
3
|
-
export { forwardToOllama } from
|
|
1
|
+
export { forwardToOpenAI } from './openai.js';
|
|
2
|
+
export { forwardToGemini } from './gemini.js';
|
|
3
|
+
export { forwardToOllama } from './ollama.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/providers/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { forwardToOpenAI } from
|
|
2
|
-
export { forwardToGemini } from
|
|
3
|
-
export { forwardToOllama } from
|
|
1
|
+
export { forwardToOpenAI } from './openai.js';
|
|
2
|
+
export { forwardToGemini } from './gemini.js';
|
|
3
|
+
export { forwardToOllama } from './ollama.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { OpenAIRequest } from
|
|
2
|
-
import type { FastifyReply } from
|
|
1
|
+
import type { OpenAIRequest } from '../types.js';
|
|
2
|
+
import type { FastifyReply } from 'fastify';
|
|
3
3
|
export declare function forwardToOllama(req: OpenAIRequest, model: string, reply: FastifyReply, requestId?: string): Promise<{
|
|
4
4
|
id: any;
|
|
5
5
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAe5C,wBAAsB,eAAe,
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAe5C,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EACnB,SAAS,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;GAsCnB"}
|
package/dist/providers/ollama.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import OpenAI from
|
|
2
|
-
import { config } from
|
|
3
|
-
import { convertNonStreaming, convertStream } from
|
|
4
|
-
import { logVerbose } from
|
|
1
|
+
import OpenAI from 'openai';
|
|
2
|
+
import { config } from '../config.js';
|
|
3
|
+
import { convertNonStreaming, convertStream } from '../converter.js';
|
|
4
|
+
import { logVerbose } from '../logger.js';
|
|
5
5
|
let client = null;
|
|
6
6
|
function getClient() {
|
|
7
7
|
if (!client) {
|
|
8
8
|
client = new OpenAI({
|
|
9
|
-
apiKey:
|
|
9
|
+
apiKey: 'ollama', // Ollama doesn't require a real key
|
|
10
10
|
baseURL: `${config.ollamaApiBase}/v1`,
|
|
11
11
|
});
|
|
12
12
|
}
|
|
@@ -18,18 +18,21 @@ export async function forwardToOllama(req, model, reply, requestId) {
|
|
|
18
18
|
// IMP: Ollama doesn't support parallel_tool_calls ā consider adding this to OpenAIRequest type instead of any-cast
|
|
19
19
|
delete cleanReq.parallel_tool_calls;
|
|
20
20
|
if (cleanReq.stream) {
|
|
21
|
-
reply.raw.setHeader(
|
|
22
|
-
reply.raw.setHeader(
|
|
23
|
-
reply.raw.setHeader(
|
|
24
|
-
const stream = await client.chat.completions.create({
|
|
21
|
+
reply.raw.setHeader('Content-Type', 'text/event-stream');
|
|
22
|
+
reply.raw.setHeader('Cache-Control', 'no-cache');
|
|
23
|
+
reply.raw.setHeader('Connection', 'keep-alive');
|
|
24
|
+
const stream = (await client.chat.completions.create({
|
|
25
|
+
...cleanReq,
|
|
26
|
+
stream: true,
|
|
27
|
+
}));
|
|
25
28
|
async function* lines() {
|
|
26
29
|
for await (const chunk of stream) {
|
|
27
30
|
if (config.verbose >= 2 && requestId) {
|
|
28
|
-
logVerbose(requestId,
|
|
31
|
+
logVerbose(requestId, 'RESPONSE', chunk);
|
|
29
32
|
}
|
|
30
33
|
yield `data: ${JSON.stringify(chunk)}\n`;
|
|
31
34
|
}
|
|
32
|
-
yield
|
|
35
|
+
yield 'data: [DONE]\n';
|
|
33
36
|
}
|
|
34
37
|
const msgId = `msg_${Date.now()}`;
|
|
35
38
|
for await (const sseEvent of convertStream(lines(), model, msgId)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,SAAS,SAAS;IAChB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,MAAM,CAAC;YAClB,MAAM,EAAE,QAAQ,EAAE,oCAAoC;YACtD,OAAO,EAAE,GAAG,MAAM,CAAC,aAAa,KAAK;SACtC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,
|
|
1
|
+
{"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../src/providers/ollama.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,IAAI,MAAM,GAAkB,IAAI,CAAC;AAEjC,SAAS,SAAS;IAChB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,IAAI,MAAM,CAAC;YAClB,MAAM,EAAE,QAAQ,EAAE,oCAAoC;YACtD,OAAO,EAAE,GAAG,MAAM,CAAC,aAAa,KAAK;SACtC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAkB,EAClB,KAAa,EACb,KAAmB,EACnB,SAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC5B,mHAAmH;IACnH,OAAQ,QAAgB,CAAC,mBAAmB,CAAC;IAE7C,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACzD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YACnD,GAAG,QAAQ;YACX,MAAM,EAAE,IAAI;SACN,CAAC,CAAQ,CAAC;QAElB,KAAK,SAAS,CAAC,CAAC,KAAK;YACnB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;oBACrC,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC3C,CAAC;gBACD,MAAM,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3C,CAAC;YACD,MAAM,gBAAgB,CAAC;QACzB,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAClC,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAS,CAAC,CAAC;IAC7F,OAAO,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { OpenAIRequest } from
|
|
2
|
-
import type { FastifyReply } from
|
|
1
|
+
import type { OpenAIRequest } from '../types.js';
|
|
2
|
+
import type { FastifyReply } from 'fastify';
|
|
3
3
|
export declare function forwardToOpenAI(req: OpenAIRequest, model: string, reply: FastifyReply, requestId?: string): Promise<{
|
|
4
4
|
id: any;
|
|
5
5
|
type: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAY5C,wBAAsB,eAAe,
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAY5C,wBAAsB,eAAe,CACnC,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EACnB,SAAS,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;GA+BnB"}
|