@forestadmin/ai-proxy 1.14.5 → 1.15.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/dist/create-base-chat-model.js +6 -3
- package/dist/create-openai-chat-model.d.ts +4 -0
- package/dist/create-openai-chat-model.js +44 -0
- package/dist/langchain-adapter.d.ts +7 -0
- package/dist/langchain-adapter.js +79 -14
- package/dist/provider-dispatcher.js +15 -5
- package/dist/supported-models.js +2 -9
- package/package.json +7 -7
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.createBaseChatModel = createBaseChatModel;
|
|
4
7
|
const anthropic_1 = require("@langchain/anthropic");
|
|
5
8
|
const aws_1 = require("@langchain/aws");
|
|
6
|
-
const
|
|
9
|
+
const create_openai_chat_model_1 = __importDefault(require("./create-openai-chat-model"));
|
|
7
10
|
const errors_1 = require("./errors");
|
|
8
11
|
// LangChain infers tool_choice support from a hardcoded family list (claude-3/4, mistral-large)
|
|
9
12
|
// and throws client-side for anything else, so every claude-5 id would be rejected before reaching
|
|
@@ -27,7 +30,7 @@ function resolveBedrockRegion(region) {
|
|
|
27
30
|
function createBaseChatModel(config) {
|
|
28
31
|
if (config.provider === 'openai') {
|
|
29
32
|
const { provider, name, ...opts } = config;
|
|
30
|
-
return
|
|
33
|
+
return (0, create_openai_chat_model_1.default)({ maxRetries: 0, ...opts });
|
|
31
34
|
}
|
|
32
35
|
if (config.provider === 'anthropic') {
|
|
33
36
|
const { provider, name, model, ...opts } = config;
|
|
@@ -44,4 +47,4 @@ function createBaseChatModel(config) {
|
|
|
44
47
|
}
|
|
45
48
|
throw new errors_1.AIBadRequestError(`Unsupported AI provider '${config.provider}'.`);
|
|
46
49
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWJhc2UtY2hhdC1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGUtYmFzZS1jaGF0LW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBa0NBLGtEQTJCQztBQTFERCxvREFBcUQ7QUFDckQsd0NBQXFEO0FBRXJELDBGQUErRDtBQUMvRCxxQ0FBNkM7QUFFN0MsZ0dBQWdHO0FBQ2hHLG1HQUFtRztBQUNuRyw0RkFBNEY7QUFDNUYsK0VBQStFO0FBQy9FLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBVSxDQUFDO0FBRXBFLGdHQUFnRztBQUNoRyxnRkFBZ0Y7QUFDaEYsaUdBQWlHO0FBQ2pHLG9GQUFvRjtBQUNwRiw2RkFBNkY7QUFDN0YsU0FBUyxvQkFBb0IsQ0FBQyxNQUFlO0lBQzNDLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDO0lBRXBGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE1BQU0sSUFBSSwwQkFBaUIsQ0FDekIsaUZBQWlGO1lBQy9FLHFCQUFxQixDQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCx3REFBd0Q7QUFDeEQsU0FBZ0IsbUJBQW1CLENBQUMsTUFBdUI7SUFDekQsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRTNDLE9BQU8sSUFBQSxrQ0FBcUIsRUFBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7UUFDcEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRWxELE9BQU8sSUFBSSx5QkFBYSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRW5ELE9BQU8sSUFBSSx5QkFBbUIsQ0FBQztZQUM3QixVQUFVLEVBQUUsQ0FBQztZQUNiLHdCQUF3QixFQUFFLENBQUMsR0FBRywwQkFBMEIsQ0FBQztZQUN6RCxHQUFHLElBQUk7WUFDUCxNQUFNLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUFDO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLElBQUksMEJBQWlCLENBQ3pCLDRCQUE2QixNQUErQixDQUFDLFFBQVEsSUFBSSxDQUMxRSxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = createOpenAIChatModel;
|
|
4
|
+
const openai_1 = require("@langchain/openai");
|
|
5
|
+
// Chat Completions rejects reasoning_effort alongside function tools on these models.
|
|
6
|
+
const RESPONSES_ONLY_MODEL = /^gpt-6(?:[.-]|$)/;
|
|
7
|
+
// The Responses API stores a response for at least 30 days unless asked not to, where Chat Completions
|
|
8
|
+
// stored nothing. A configuration can still opt in through its own modelKwargs.
|
|
9
|
+
const KEEP_NOTHING_AT_OPENAI = { store: false };
|
|
10
|
+
function forcesResponsesApi(fields) {
|
|
11
|
+
return Boolean(fields.useResponsesApi) || RESPONSES_ONLY_MODEL.test(fields.model ?? '');
|
|
12
|
+
}
|
|
13
|
+
function toResponsesToolChoice(toolChoice) {
|
|
14
|
+
if (toolChoice === 'any' || toolChoice === 'required')
|
|
15
|
+
return 'required';
|
|
16
|
+
if (toolChoice === 'auto' || toolChoice === 'none')
|
|
17
|
+
return toolChoice;
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
// LangChain drops a string `tool_choice` on the Responses API. Lift this when it handles it.
|
|
21
|
+
function restoreToolChoice(responses) {
|
|
22
|
+
const invocationParams = responses.invocationParams.bind(responses);
|
|
23
|
+
responses.invocationParams = options => {
|
|
24
|
+
const params = invocationParams(options);
|
|
25
|
+
if (params.tool_choice === undefined && params.tools?.length) {
|
|
26
|
+
params.tool_choice = toResponsesToolChoice(options?.tool_choice);
|
|
27
|
+
}
|
|
28
|
+
return params;
|
|
29
|
+
};
|
|
30
|
+
return responses;
|
|
31
|
+
}
|
|
32
|
+
// LangChain also sends some models to the Responses API on its own (gpt-5.6, reasoning summaries),
|
|
33
|
+
// so the delegate it picks is always ours, whatever the route a call ends up taking.
|
|
34
|
+
function createOpenAIChatModel(fields) {
|
|
35
|
+
return new openai_1.ChatOpenAI({
|
|
36
|
+
...fields,
|
|
37
|
+
...(forcesResponsesApi(fields) && { useResponsesApi: true }),
|
|
38
|
+
responses: restoreToolChoice(new openai_1.ChatOpenAIResponses({
|
|
39
|
+
...fields,
|
|
40
|
+
modelKwargs: { ...KEEP_NOTHING_AT_OPENAI, ...fields.modelKwargs },
|
|
41
|
+
})),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9wZW5haS1jaGF0LW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NyZWF0ZS1vcGVuYWktY2hhdC1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlDQSx3Q0FXQztBQWxERCw4Q0FBb0U7QUFFcEUsc0ZBQXNGO0FBQ3RGLE1BQU0sb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7QUFFaEQsdUdBQXVHO0FBQ3ZHLGdGQUFnRjtBQUNoRixNQUFNLHNCQUFzQixHQUFHLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBRWhELFNBQVMsa0JBQWtCLENBQUMsTUFBMkQ7SUFDckYsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzFGLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLFVBQW1CO0lBQ2hELElBQUksVUFBVSxLQUFLLEtBQUssSUFBSSxVQUFVLEtBQUssVUFBVTtRQUFFLE9BQU8sVUFBVSxDQUFDO0lBQ3pFLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssTUFBTTtRQUFFLE9BQU8sVUFBVSxDQUFDO0lBRXRFLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCw2RkFBNkY7QUFDN0YsU0FBUyxpQkFBaUIsQ0FBQyxTQUE4QjtJQUN2RCxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFcEUsU0FBUyxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxFQUFFO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUM3RCxNQUFNLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUVELG1HQUFtRztBQUNuRyxxRkFBcUY7QUFDckYsU0FBd0IscUJBQXFCLENBQUMsTUFBd0I7SUFDcEUsT0FBTyxJQUFJLG1CQUFVLENBQUM7UUFDcEIsR0FBRyxNQUFNO1FBQ1QsR0FBRyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzVELFNBQVMsRUFBRSxpQkFBaUIsQ0FDMUIsSUFBSSw0QkFBbUIsQ0FBQztZQUN0QixHQUFHLE1BQU07WUFDVCxXQUFXLEVBQUUsRUFBRSxHQUFHLHNCQUFzQixFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRTtTQUNsRSxDQUFDLENBQ0g7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIn0=
|
|
@@ -38,8 +38,15 @@ export declare class LangChainAdapter {
|
|
|
38
38
|
static convertResponse(response: AIMessage, modelName: string | null): ChatCompletionResponse;
|
|
39
39
|
/** Convert OpenAI tool_choice to LangChain format. */
|
|
40
40
|
static convertToolChoice(toolChoice: ChatCompletionToolChoice | undefined): LangChainToolChoice;
|
|
41
|
+
private static finishReasonOf;
|
|
41
42
|
private static extractTextContent;
|
|
42
43
|
private static parseToolArguments;
|
|
44
|
+
/**
|
|
45
|
+
* Replace tool call arguments that are not valid JSON, so the provider's SDK accepts the history.
|
|
46
|
+
* A relayed invalid tool call leaves them there, and the next turn must still go through.
|
|
47
|
+
*/
|
|
48
|
+
static withParsableToolArguments<T>(messages: T[]): T[];
|
|
49
|
+
private static isJson;
|
|
43
50
|
}
|
|
44
51
|
export {};
|
|
45
52
|
//# sourceMappingURL=langchain-adapter.d.ts.map
|
|
@@ -52,30 +52,48 @@ class LangChainAdapter {
|
|
|
52
52
|
}
|
|
53
53
|
/** Convert a LangChain AIMessage to an OpenAI-compatible ChatCompletionResponse. */
|
|
54
54
|
static convertResponse(response, modelName) {
|
|
55
|
-
const toolCalls =
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
const toolCalls = [
|
|
56
|
+
...(response.tool_calls ?? []).map(tc => ({
|
|
57
|
+
id: tc.id || `call_${crypto_1.default.randomUUID()}`,
|
|
58
|
+
type: 'function',
|
|
59
|
+
function: {
|
|
60
|
+
name: tc.name,
|
|
61
|
+
arguments: JSON.stringify(tc.args),
|
|
62
|
+
},
|
|
63
|
+
})),
|
|
64
|
+
// A call whose arguments are not valid JSON still reaches the caller, who can report it.
|
|
65
|
+
...(response.invalid_tool_calls ?? []).map(tc => ({
|
|
66
|
+
id: tc.id || `call_${crypto_1.default.randomUUID()}`,
|
|
67
|
+
type: 'function',
|
|
68
|
+
function: {
|
|
69
|
+
name: tc.name ?? '',
|
|
70
|
+
arguments: tc.args ?? '',
|
|
71
|
+
},
|
|
72
|
+
})),
|
|
73
|
+
];
|
|
63
74
|
const usageMetadata = response.usage_metadata;
|
|
75
|
+
const metadata = response.response_metadata;
|
|
76
|
+
const isResponsesApi = metadata?.object === 'response';
|
|
77
|
+
const refusal = response.additional_kwargs?.refusal;
|
|
78
|
+
const cachedTokens = usageMetadata?.input_token_details?.cache_read;
|
|
79
|
+
const reasoningTokens = usageMetadata?.output_token_details?.reasoning;
|
|
64
80
|
return {
|
|
65
81
|
id: response.id || `msg_${crypto_1.default.randomUUID()}`,
|
|
66
82
|
object: 'chat.completion',
|
|
67
|
-
created:
|
|
68
|
-
|
|
83
|
+
created: isResponsesApi && typeof metadata.created_at === 'number'
|
|
84
|
+
? metadata.created_at
|
|
85
|
+
: Math.floor(Date.now() / 1000),
|
|
86
|
+
model: (isResponsesApi && metadata.model_name) || modelName,
|
|
69
87
|
choices: [
|
|
70
88
|
{
|
|
71
89
|
index: 0,
|
|
72
90
|
message: {
|
|
73
91
|
role: 'assistant',
|
|
74
92
|
content: LangChainAdapter.extractTextContent(response.content),
|
|
75
|
-
refusal: null,
|
|
76
|
-
tool_calls: toolCalls
|
|
93
|
+
refusal: typeof refusal === 'string' ? refusal : null,
|
|
94
|
+
tool_calls: toolCalls.length ? toolCalls : undefined,
|
|
77
95
|
},
|
|
78
|
-
finish_reason: toolCalls
|
|
96
|
+
finish_reason: LangChainAdapter.finishReasonOf(metadata, toolCalls.length > 0),
|
|
79
97
|
logprobs: null,
|
|
80
98
|
},
|
|
81
99
|
],
|
|
@@ -83,6 +101,12 @@ class LangChainAdapter {
|
|
|
83
101
|
prompt_tokens: usageMetadata?.input_tokens ?? 0,
|
|
84
102
|
completion_tokens: usageMetadata?.output_tokens ?? 0,
|
|
85
103
|
total_tokens: usageMetadata?.total_tokens ?? 0,
|
|
104
|
+
...(typeof cachedTokens === 'number' && {
|
|
105
|
+
prompt_tokens_details: { cached_tokens: cachedTokens },
|
|
106
|
+
}),
|
|
107
|
+
...(typeof reasoningTokens === 'number' && {
|
|
108
|
+
completion_tokens_details: { reasoning_tokens: reasoningTokens },
|
|
109
|
+
}),
|
|
86
110
|
},
|
|
87
111
|
};
|
|
88
112
|
}
|
|
@@ -101,6 +125,18 @@ class LangChainAdapter {
|
|
|
101
125
|
}
|
|
102
126
|
throw new errors_1.AIBadRequestError(`Unsupported tool_choice value. Expected: 'auto', 'none', 'required', or {type: 'function', function: {name: '...'}}.`);
|
|
103
127
|
}
|
|
128
|
+
// An answer cut short stays cut short even when it carries tool calls: their arguments may be
|
|
129
|
+
// incomplete, as Chat Completions reports it.
|
|
130
|
+
static finishReasonOf(metadata, hasToolCalls) {
|
|
131
|
+
switch (metadata?.incomplete_details?.reason) {
|
|
132
|
+
case 'max_output_tokens':
|
|
133
|
+
return 'length';
|
|
134
|
+
case 'content_filter':
|
|
135
|
+
return 'content_filter';
|
|
136
|
+
default:
|
|
137
|
+
return hasToolCalls ? 'tool_calls' : 'stop';
|
|
138
|
+
}
|
|
139
|
+
}
|
|
104
140
|
static extractTextContent(content) {
|
|
105
141
|
if (typeof content === 'string')
|
|
106
142
|
return content || null;
|
|
@@ -121,6 +157,35 @@ class LangChainAdapter {
|
|
|
121
157
|
throw new errors_1.AIBadRequestError(`Invalid JSON in tool_calls arguments for tool '${toolName}': ${args}`);
|
|
122
158
|
}
|
|
123
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* Replace tool call arguments that are not valid JSON, so the provider's SDK accepts the history.
|
|
162
|
+
* A relayed invalid tool call leaves them there, and the next turn must still go through.
|
|
163
|
+
*/
|
|
164
|
+
static withParsableToolArguments(messages) {
|
|
165
|
+
return messages.map(message => {
|
|
166
|
+
const { tool_calls: toolCalls } = message;
|
|
167
|
+
if (!Array.isArray(toolCalls))
|
|
168
|
+
return message;
|
|
169
|
+
return {
|
|
170
|
+
...message,
|
|
171
|
+
tool_calls: toolCalls.map(toolCall => {
|
|
172
|
+
const args = toolCall?.function?.arguments;
|
|
173
|
+
if (typeof args !== 'string' || LangChainAdapter.isJson(args))
|
|
174
|
+
return toolCall;
|
|
175
|
+
return { ...toolCall, function: { ...toolCall.function, arguments: '{}' } };
|
|
176
|
+
}),
|
|
177
|
+
};
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
static isJson(value) {
|
|
181
|
+
try {
|
|
182
|
+
JSON.parse(value);
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
catch {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
124
189
|
}
|
|
125
190
|
exports.LangChainAdapter = LangChainAdapter;
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ2NoYWluLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbGFuZ2NoYWluLWFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBR0EsdURBQStGO0FBQy9GLG9EQUE0QjtBQUU1QixxQ0FBNkM7QUEyRDdDLHVFQUF1RTtBQUN2RSxNQUFhLGdCQUFnQjtJQUMzQiw0REFBNEQ7SUFDNUQsTUFBTSxDQUFDLGVBQWUsQ0FBQyxRQUF5QjtRQUM5QyxNQUFNLE1BQU0sR0FBa0IsRUFBRSxDQUFDO1FBRWpDLEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7WUFDM0IsUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssUUFBUTtvQkFDWCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksd0JBQWEsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ2xELE1BQU07Z0JBQ1IsS0FBSyxNQUFNO29CQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSx1QkFBWSxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDakQsTUFBTTtnQkFDUixLQUFLLFdBQVc7b0JBQ2QsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7d0JBQ25CLE1BQU0sQ0FBQyxJQUFJLENBQ1QsSUFBSSxvQkFBUyxDQUFDOzRCQUNaLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTyxJQUFJLEVBQUU7NEJBQzFCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0NBQ3BDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtnQ0FDVCxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJO2dDQUN0QixJQUFJLEVBQUUsZ0JBQWdCLENBQUMsa0JBQWtCLENBQ3ZDLEVB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
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const datasource_toolkit_1 = require("@forestadmin/datasource-toolkit");
|
|
7
7
|
const anthropic_1 = require("@langchain/anthropic");
|
|
8
8
|
const function_calling_1 = require("@langchain/core/utils/function_calling");
|
|
9
|
-
const openai_1 = require("@langchain/openai");
|
|
10
9
|
const anthropic_adapter_1 = __importDefault(require("./anthropic-adapter"));
|
|
10
|
+
const create_openai_chat_model_1 = __importDefault(require("./create-openai-chat-model"));
|
|
11
11
|
const errors_1 = require("./errors");
|
|
12
12
|
const langchain_adapter_1 = require("./langchain-adapter");
|
|
13
13
|
class ProviderDispatcher {
|
|
@@ -18,11 +18,12 @@ class ProviderDispatcher {
|
|
|
18
18
|
this.remoteTools = remoteTools;
|
|
19
19
|
if (configuration?.provider === 'openai') {
|
|
20
20
|
const { provider, name, ...chatOpenAIOptions } = configuration;
|
|
21
|
-
this.openaiModel =
|
|
21
|
+
this.openaiModel = (0, create_openai_chat_model_1.default)({
|
|
22
22
|
maxRetries: 0, // No retries by default - this lib is a passthrough
|
|
23
23
|
...chatOpenAIOptions,
|
|
24
24
|
__includeRawResponse: true,
|
|
25
25
|
});
|
|
26
|
+
this.modelName = chatOpenAIOptions.model;
|
|
26
27
|
}
|
|
27
28
|
else if (configuration?.provider === 'anthropic') {
|
|
28
29
|
const { provider, name, model, ...clientOptions } = configuration;
|
|
@@ -38,11 +39,15 @@ class ProviderDispatcher {
|
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
async dispatch(body) {
|
|
42
|
+
const parsableBody = {
|
|
43
|
+
...body,
|
|
44
|
+
messages: langchain_adapter_1.LangChainAdapter.withParsableToolArguments(body.messages),
|
|
45
|
+
};
|
|
41
46
|
if (this.openaiModel) {
|
|
42
|
-
return this.dispatchOpenAI(
|
|
47
|
+
return this.dispatchOpenAI(parsableBody);
|
|
43
48
|
}
|
|
44
49
|
if (this.anthropicModel) {
|
|
45
|
-
return this.dispatchAnthropic(
|
|
50
|
+
return this.dispatchAnthropic(parsableBody);
|
|
46
51
|
}
|
|
47
52
|
throw new errors_1.AINotConfiguredError();
|
|
48
53
|
}
|
|
@@ -62,6 +67,11 @@ class ProviderDispatcher {
|
|
|
62
67
|
catch (error) {
|
|
63
68
|
throw ProviderDispatcher.wrapProviderError(error, 'OpenAI');
|
|
64
69
|
}
|
|
70
|
+
// The Responses API carries no Chat Completions payload to hand back as is.
|
|
71
|
+
const metadata = response.response_metadata;
|
|
72
|
+
if (metadata?.object === 'response') {
|
|
73
|
+
return langchain_adapter_1.LangChainAdapter.convertResponse(response, this.modelName);
|
|
74
|
+
}
|
|
65
75
|
// eslint-disable-next-line no-underscore-dangle
|
|
66
76
|
const rawResponse = response.additional_kwargs.__raw_response;
|
|
67
77
|
if (!rawResponse) {
|
|
@@ -131,4 +141,4 @@ class ProviderDispatcher {
|
|
|
131
141
|
}
|
|
132
142
|
}
|
|
133
143
|
exports.default = ProviderDispatcher;
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm92aWRlci1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0Esd0VBQW9GO0FBQ3BGLG9EQUFxRDtBQUNyRCw2RUFBaUY7QUFFakYsNEVBQW1EO0FBQ25ELDBGQUErRDtBQUMvRCxxQ0FRa0I7QUFDbEIsMkRBQXVEO0FBaUJ2RCxNQUFxQixrQkFBa0I7SUFTckMsWUFBWSxhQUFxQyxFQUFFLFdBQXdCO1FBUjFELGdCQUFXLEdBQXNCLElBQUksQ0FBQztRQUV0QyxtQkFBYyxHQUF5QixJQUFJLENBQUM7UUFFNUMsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFLL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFFL0IsSUFBSSxhQUFhLEVBQUUsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsaUJBQWlCLEVBQUUsR0FBRyxhQUFhLENBQUM7WUFDL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFBLGtDQUFxQixFQUFDO2dCQUN2QyxVQUFVLEVBQUUsQ0FBQyxFQUFFLG9EQUFvRDtnQkFDbkUsR0FBRyxpQkFBaUI7Z0JBQ3BCLG9CQUFvQixFQUFFLElBQUk7YUFDM0IsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7UUFDM0MsQ0FBQzthQUFNLElBQUksYUFBYSxFQUFFLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNuRCxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsR0FBRyxhQUFhLEVBQUUsR0FBRyxhQUFhLENBQUM7WUFDbEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHlCQUFhLENBQUM7Z0JBQ3RDLFVBQVUsRUFBRSxDQUFDLEVBQUUsb0RBQW9EO2dCQUNu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
|
package/dist/supported-models.js
CHANGED
|
@@ -28,6 +28,7 @@ const OPENAI_UNSUPPORTED_PREFIXES = [
|
|
|
28
28
|
'gpt-audio', // gpt-audio
|
|
29
29
|
'sora', // sora-2, sora-2-pro
|
|
30
30
|
'codex', // codex-mini-latest
|
|
31
|
+
'gpt-5.6', // Never checked against the live API: LangChain sends every variant to v1/responses
|
|
31
32
|
];
|
|
32
33
|
const OPENAI_UNSUPPORTED_PATTERNS = [
|
|
33
34
|
// Non-chat model variants (can appear in the middle of model names)
|
|
@@ -48,14 +49,6 @@ const OPENAI_UNSUPPORTED_PATTERNS = [
|
|
|
48
49
|
const OPENAI_UNSUPPORTED_MODELS = [
|
|
49
50
|
'us-40-51r-vm-ev3', // Not a chat model (v1/completions only)
|
|
50
51
|
'gpt-3.5-turbo-1106', // Deprecated by OpenAI (returns 404 on invocation)
|
|
51
|
-
// Reject reasoning_effort with function tools on v1/chat/completions (v1/responses only)
|
|
52
|
-
'gpt-5.6-luna',
|
|
53
|
-
'gpt-5.6-sol',
|
|
54
|
-
'gpt-5.6-terra',
|
|
55
|
-
'gpt-6-astra',
|
|
56
|
-
'gpt-6-luna',
|
|
57
|
-
'gpt-6-sol',
|
|
58
|
-
'gpt-6.1-sol',
|
|
59
52
|
];
|
|
60
53
|
const OPENAI_SUPPORTED_OVERRIDES = ['gpt-4-turbo', 'gpt-4o', 'gpt-4.1'];
|
|
61
54
|
function isOpenAIModelSupported(model) {
|
|
@@ -158,4 +151,4 @@ function isModelSupportingTools(model, provider = 'openai') {
|
|
|
158
151
|
return isBedrockModelSupported(model);
|
|
159
152
|
return isOpenAIModelSupported(model);
|
|
160
153
|
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydGVkLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdXBwb3J0ZWQtbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0xBLHlDQVFDO0FBdExELGdGQUFnRjtBQUNoRiwwREFBMEQ7QUFFMUQsTUFBTSwyQkFBMkIsR0FBRztJQUNsQyxnQkFBZ0I7SUFDaEIsT0FBTyxFQUFFLGlEQUFpRDtJQUMxRCxjQUFjO0lBQ2QsU0FBUztJQUNULE9BQU87SUFDUCxTQUFTO0lBQ1QsS0FBSztJQUNMLGdFQUFnRTtJQUNoRSxJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSiwwQkFBMEI7SUFDMUIsUUFBUTtJQUNSLFNBQVM7SUFDVCxLQUFLO0lBQ0wsZ0JBQWdCO0lBQ2hCLGlCQUFpQjtJQUNqQixTQUFTLEVBQUUsMENBQTBDO0lBQ3JELGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsV0FBVyxFQUFFLDZCQUE2QjtJQUMxQyxjQUFjLEVBQUUsa0NBQWtDO0lBQ2xELFdBQVcsRUFBRSxZQUFZO0lBQ3pCLE1BQU0sRUFBRSxxQkFBcUI7SUFDN0IsT0FBTyxFQUFFLG9CQUFvQjtJQUM3QixTQUFTLEVBQUUsb0ZBQW9GO0NBQ2hHLENBQUM7QUFFRixNQUFNLDJCQUEyQixHQUFHO0lBQ2xDLG9FQUFvRTtJQUNwRSxXQUFXO0lBQ1gsT0FBTztJQUNQLFFBQVE7SUFDUixhQUFhO0lBQ2IsTUFBTTtJQUNOLFNBQVM7SUFDVCxRQUFRO0lBQ1IsV0FBVztJQUNYLGlFQUFpRTtJQUNqRSxNQUFNO0lBQ04sZ0JBQWdCO0lBQ2hCLDBGQUEwRjtJQUMxRixjQUFjO0NBQ2YsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUc7SUFDaEMsa0JBQWtCLEVBQUUseUNBQXlDO0lBQzdELG9CQUFvQixFQUFFLG1EQUFtRDtDQUMxRSxDQUFDO0FBRUYsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/ai-proxy",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@forestadmin/agent-toolkit": "1.2.1",
|
|
16
16
|
"@forestadmin/datasource-toolkit": "1.56.2",
|
|
17
|
-
"@langchain/anthropic": "1.
|
|
18
|
-
"@langchain/aws": "1.4.
|
|
19
|
-
"@langchain/core": "1.
|
|
20
|
-
"@langchain/langgraph": "1.
|
|
17
|
+
"@langchain/anthropic": "1.5.12",
|
|
18
|
+
"@langchain/aws": "1.4.7",
|
|
19
|
+
"@langchain/core": "1.2.18",
|
|
20
|
+
"@langchain/langgraph": "1.5.0",
|
|
21
21
|
"@langchain/mcp-adapters": "1.1.3",
|
|
22
|
-
"@langchain/openai": "1.
|
|
22
|
+
"@langchain/openai": "1.6.2",
|
|
23
23
|
"zod": "^4.3.5"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
26
|
"@aws-sdk/client-bedrock": "^3.972.0",
|
|
27
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
27
|
+
"@modelcontextprotocol/sdk": "^1.31.0",
|
|
28
28
|
"@types/express": "5.0.1",
|
|
29
29
|
"express": "5.1.0",
|
|
30
30
|
"node-zendesk": "6.0.1"
|