@zimtsui/brainswitch 0.0.54 → 0.0.56
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/DEVELOPMENT.md +13 -14
- package/README.md +7 -14
- package/build/adaptor.d.ts +5 -5
- package/build/adaptor.js +16 -16
- package/build/adaptor.js.map +1 -1
- package/build/agentloop.d.ts +5 -5
- package/build/agentloop.js +4 -4
- package/build/agentloop.js.map +1 -1
- package/build/api-types/anthropic/billing.d.ts +12 -0
- package/build/api-types/anthropic/billing.js +15 -0
- package/build/api-types/anthropic/billing.js.map +1 -0
- package/build/api-types/anthropic/tool-codec.d.ts +17 -0
- package/build/api-types/anthropic/tool-codec.js +73 -0
- package/build/api-types/anthropic/tool-codec.js.map +1 -0
- package/build/api-types/google/billing.d.ts +12 -0
- package/build/api-types/google/billing.js +24 -0
- package/build/api-types/google/billing.js.map +1 -0
- package/build/api-types/google/restful-request.d.ts +8 -0
- package/build/api-types/google/restful-request.js +2 -0
- package/build/api-types/google/restful-request.js.map +1 -0
- package/build/api-types/google/tool-codec.d.ts +16 -0
- package/build/api-types/{google.js → google/tool-codec.js} +27 -26
- package/build/api-types/google/tool-codec.js.map +1 -0
- package/build/api-types/openai-chatcompletion/billing.d.ts +13 -0
- package/build/api-types/openai-chatcompletion/billing.js +16 -0
- package/build/api-types/openai-chatcompletion/billing.js.map +1 -0
- package/build/api-types/openai-chatcompletion/tool-codec.d.ts +18 -0
- package/build/api-types/openai-chatcompletion/tool-codec.js +86 -0
- package/build/api-types/openai-chatcompletion/tool-codec.js.map +1 -0
- package/build/api-types/openai-responses/billing.d.ts +12 -0
- package/build/api-types/openai-responses/billing.js +15 -0
- package/build/api-types/openai-responses/billing.js.map +1 -0
- package/build/api-types/openai-responses/tool-codec.d.ts +16 -0
- package/build/api-types/openai-responses/tool-codec.js +72 -0
- package/build/api-types/openai-responses/tool-codec.js.map +1 -0
- package/build/compatible/engine.d/aliyun.d.ts +23 -0
- package/build/compatible/engine.d/aliyun.js +44 -0
- package/build/compatible/engine.d/aliyun.js.map +1 -0
- package/build/compatible/engine.d/anthropic.d.ts +23 -0
- package/build/compatible/engine.d/anthropic.js +41 -0
- package/build/compatible/engine.d/anthropic.js.map +1 -0
- package/build/compatible/engine.d/google.d.ts +23 -0
- package/build/compatible/engine.d/google.js +45 -0
- package/build/compatible/engine.d/google.js.map +1 -0
- package/build/compatible/engine.d/openai-responses.d.ts +23 -0
- package/build/compatible/engine.d/openai-responses.js +41 -0
- package/build/compatible/engine.d/openai-responses.js.map +1 -0
- package/build/compatible/engine.d.ts +18 -0
- package/build/compatible/engine.js +21 -0
- package/build/compatible/engine.js.map +1 -0
- package/build/compatible/session.d.ts +78 -0
- package/build/compatible/session.js +138 -0
- package/build/compatible/session.js.map +1 -0
- package/build/compatible/tool-call-validator.d.ts +11 -0
- package/build/compatible/tool-call-validator.js +12 -0
- package/build/compatible/tool-call-validator.js.map +1 -0
- package/build/compatible.d/aliyun/transport.d.ts +11 -0
- package/build/compatible.d/aliyun/transport.js +9 -0
- package/build/compatible.d/aliyun/transport.js.map +1 -0
- package/build/compatible.d/anthropic/message-codec.d.ts +31 -0
- package/build/compatible.d/anthropic/message-codec.js +88 -0
- package/build/compatible.d/anthropic/message-codec.js.map +1 -0
- package/build/compatible.d/anthropic/transport.d.ts +31 -0
- package/build/compatible.d/anthropic/transport.js +137 -0
- package/build/compatible.d/anthropic/transport.js.map +1 -0
- package/build/compatible.d/google/message-codec.d.ts +31 -0
- package/build/compatible.d/google/message-codec.js +98 -0
- package/build/compatible.d/google/message-codec.js.map +1 -0
- package/build/compatible.d/google/transport.d.ts +28 -0
- package/build/compatible.d/google/transport.js +74 -0
- package/build/compatible.d/google/transport.js.map +1 -0
- package/build/compatible.d/openai-chatcompletions/message-codec.d.ts +19 -0
- package/build/compatible.d/openai-chatcompletions/message-codec.js +66 -0
- package/build/compatible.d/openai-chatcompletions/message-codec.js.map +1 -0
- package/build/compatible.d/openai-chatcompletions/transport.d.ts +9 -0
- package/build/compatible.d/openai-chatcompletions/transport.js +25 -0
- package/build/compatible.d/openai-chatcompletions/transport.js.map +1 -0
- package/build/compatible.d/openai-chatcompletions.d/monolith.d.ts +36 -0
- package/build/compatible.d/openai-chatcompletions.d/monolith.js +74 -0
- package/build/compatible.d/openai-chatcompletions.d/monolith.js.map +1 -0
- package/build/compatible.d/openai-chatcompletions.d/stream.d.ts +35 -0
- package/build/{compatible-engines.d → compatible.d}/openai-chatcompletions.d/stream.js +52 -42
- package/build/compatible.d/openai-chatcompletions.d/stream.js.map +1 -0
- package/build/compatible.d/openai-responses/message-codec.d.ts +32 -0
- package/build/compatible.d/openai-responses/message-codec.js +105 -0
- package/build/compatible.d/openai-responses/message-codec.js.map +1 -0
- package/build/compatible.d/openai-responses/transport.d.ts +33 -0
- package/build/compatible.d/openai-responses/transport.js +88 -0
- package/build/compatible.d/openai-responses/transport.js.map +1 -0
- package/build/config.js +1 -1
- package/build/config.js.map +1 -1
- package/build/engine.d.ts +48 -26
- package/build/engine.js +78 -29
- package/build/engine.js.map +1 -1
- package/build/exports.d.ts +14 -13
- package/build/exports.js +14 -13
- package/build/exports.js.map +1 -1
- package/build/function.d.ts +25 -13
- package/build/function.js +2 -1
- package/build/function.js.map +1 -1
- package/build/inference-context.d.ts +1 -1
- package/build/native-engines.d/google/agentloop.d.ts +6 -6
- package/build/native-engines.d/google/agentloop.js +5 -5
- package/build/native-engines.d/google/agentloop.js.map +1 -1
- package/build/native-engines.d/google/engine.d.ts +28 -103
- package/build/native-engines.d/google/engine.js +63 -304
- package/build/native-engines.d/google/engine.js.map +1 -1
- package/build/native-engines.d/google/exports.d.ts +5 -5
- package/build/native-engines.d/google/exports.js +5 -5
- package/build/native-engines.d/google/exports.js.map +1 -1
- package/build/native-engines.d/google/message-codec.d.ts +21 -0
- package/build/native-engines.d/google/message-codec.js +69 -0
- package/build/native-engines.d/google/message-codec.js.map +1 -0
- package/build/native-engines.d/google/session.d.ts +16 -15
- package/build/native-engines.d/google/session.js +2 -2
- package/build/native-engines.d/google/session.js.map +1 -1
- package/build/native-engines.d/google/transport.d.ts +31 -0
- package/build/native-engines.d/google/transport.js +81 -0
- package/build/native-engines.d/google/transport.js.map +1 -0
- package/build/native-engines.d/openai-responses/agentloop.d.ts +7 -7
- package/build/native-engines.d/openai-responses/agentloop.js +6 -6
- package/build/native-engines.d/openai-responses/agentloop.js.map +1 -1
- package/build/native-engines.d/openai-responses/engine.d.ts +26 -106
- package/build/native-engines.d/openai-responses/engine.js +53 -334
- package/build/native-engines.d/openai-responses/engine.js.map +1 -1
- package/build/native-engines.d/openai-responses/exports.d.ts +6 -7
- package/build/native-engines.d/openai-responses/exports.js +6 -7
- package/build/native-engines.d/openai-responses/exports.js.map +1 -1
- package/build/native-engines.d/openai-responses/message-codec.d.ts +21 -0
- package/build/native-engines.d/openai-responses/message-codec.js +69 -0
- package/build/native-engines.d/openai-responses/message-codec.js.map +1 -0
- package/build/native-engines.d/openai-responses/session.d.ts +27 -26
- package/build/native-engines.d/openai-responses/session.js +3 -3
- package/build/native-engines.d/openai-responses/session.js.map +1 -1
- package/build/native-engines.d/openai-responses/tool-call-validator.d.ts +12 -0
- package/build/native-engines.d/openai-responses/tool-call-validator.js +33 -0
- package/build/native-engines.d/openai-responses/tool-call-validator.js.map +1 -0
- package/build/native-engines.d/openai-responses/tool.d.ts +3 -3
- package/build/native-engines.d/openai-responses/tool.js +1 -1
- package/build/native-engines.d/openai-responses/tool.js.map +1 -1
- package/build/native-engines.d/openai-responses/transport.d.ts +36 -0
- package/build/native-engines.d/openai-responses/transport.js +104 -0
- package/build/native-engines.d/openai-responses/transport.js.map +1 -0
- package/build/session.d.ts +5 -75
- package/build/session.js +0 -136
- package/build/session.js.map +1 -1
- package/build/throttle.d.ts +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/test/build/test-codecs.js +230 -0
- package/test/build/test-codecs.js.map +1 -0
- package/test/build/test-compatible-engine.d.ts +1 -0
- package/test/build/test-compatible-engine.js +27 -0
- package/test/build/test-compatible-engine.js.map +1 -0
- package/test/build/test-compatible-engines.d.ts +1 -0
- package/test/build/test-compatible-engines.js +112 -0
- package/test/build/test-compatible-engines.js.map +1 -0
- package/test/build/test-engine.d.ts +1 -0
- package/test/build/test-engine.js +97 -0
- package/test/build/test-engine.js.map +1 -0
- package/test/build/test-helpers.d.ts +46 -0
- package/test/build/test-helpers.js +45 -0
- package/test/build/test-helpers.js.map +1 -0
- package/test/build/test-native-engines.d.ts +1 -0
- package/test/build/test-native-engines.js +64 -0
- package/test/build/test-native-engines.js.map +1 -0
- package/test/build/test.d.ts +5 -0
- package/test/build/test.js +6 -0
- package/test/build/test.js.map +1 -0
- package/test/build/tsconfig.tsbuildinfo +1 -0
- package/test/src/test-codecs.ts +256 -0
- package/test/src/test-compatible-engine.ts +45 -0
- package/test/src/test-compatible-engines.ts +129 -0
- package/test/src/test-engine.ts +144 -0
- package/test/src/test-helpers.ts +53 -0
- package/test/src/test-native-engines.ts +75 -0
- package/test/src/test.ts +5 -0
- package/test/src/tsconfig.json +30 -0
- package/build/api-types/anthropic.d.ts +0 -29
- package/build/api-types/anthropic.js +0 -93
- package/build/api-types/anthropic.js.map +0 -1
- package/build/api-types/google.d.ts +0 -28
- package/build/api-types/google.js.map +0 -1
- package/build/api-types/openai-chat-completions.d.ts +0 -31
- package/build/api-types/openai-chat-completions.js +0 -113
- package/build/api-types/openai-chat-completions.js.map +0 -1
- package/build/api-types/openai-responses.d.ts +0 -23
- package/build/api-types/openai-responses.js +0 -71
- package/build/api-types/openai-responses.js.map +0 -1
- package/build/compatible-engine.d.ts +0 -51
- package/build/compatible-engine.js +0 -67
- package/build/compatible-engine.js.map +0 -1
- package/build/compatible-engines.d/aliyun.d.ts +0 -69
- package/build/compatible-engines.d/aliyun.js +0 -149
- package/build/compatible-engines.d/aliyun.js.map +0 -1
- package/build/compatible-engines.d/anthropic.d.ts +0 -78
- package/build/compatible-engines.d/anthropic.js +0 -312
- package/build/compatible-engines.d/anthropic.js.map +0 -1
- package/build/compatible-engines.d/google.d.ts +0 -83
- package/build/compatible-engines.d/google.js +0 -279
- package/build/compatible-engines.d/google.js.map +0 -1
- package/build/compatible-engines.d/openai-chatcompletions.d/monolith.d.ts +0 -15
- package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js +0 -75
- package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js.map +0 -1
- package/build/compatible-engines.d/openai-chatcompletions.d/stream.d.ts +0 -21
- package/build/compatible-engines.d/openai-chatcompletions.d/stream.js.map +0 -1
- package/build/compatible-engines.d/openai-chatcompletions.d.ts +0 -27
- package/build/compatible-engines.d/openai-chatcompletions.js +0 -76
- package/build/compatible-engines.d/openai-chatcompletions.js.map +0 -1
- package/build/compatible-engines.d/openai-responses.d.ts +0 -93
- package/build/compatible-engines.d/openai-responses.js +0 -300
- package/build/compatible-engines.d/openai-responses.js.map +0 -1
- package/build/test.js +0 -198
- package/build/test.js.map +0 -1
- /package/{build/test.d.ts → test/build/test-codecs.d.ts} +0 -0
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { CompatibleEngine } from '../compatible-engine.ts';
|
|
2
|
-
import { Function } from '../function.ts';
|
|
3
|
-
import { RoleMessage, type ChatMessage, type Session } from '../session.ts';
|
|
4
|
-
import { Engine } from '../engine.ts';
|
|
5
|
-
import { type InferenceContext } from '../inference-context.ts';
|
|
6
|
-
import OpenAI from 'openai';
|
|
7
|
-
import * as Undici from 'undici';
|
|
8
|
-
import { OpenAIResponsesEngine } from '../api-types/openai-responses.ts';
|
|
9
|
-
import { Throttle } from '../throttle.ts';
|
|
10
|
-
export declare namespace OpenAIResponsesCompatibleEngine {
|
|
11
|
-
interface Options<in out fdm extends Function.Declaration.Map> extends CompatibleEngine.Options<fdm>, OpenAIResponsesEngine.Options<fdm> {
|
|
12
|
-
}
|
|
13
|
-
interface OwnProps {
|
|
14
|
-
apiURL: URL;
|
|
15
|
-
}
|
|
16
|
-
interface Underhood<in out fdm extends Function.Declaration.Map> extends CompatibleEngine.Underhood<fdm>, OpenAIResponsesEngine.Underhood<fdm>, OwnProps {
|
|
17
|
-
convertToAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): OpenAIResponsesCompatibleEngine.Message.Ai<Function.Declaration.From<fdm>>;
|
|
18
|
-
convertFromFunctionCall(fc: Function.Call.Distributive<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseFunctionToolCall;
|
|
19
|
-
convertFromUserMessage(userMessage: RoleMessage.User<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
20
|
-
convertFromAiMessage(aiMessage: RoleMessage.Ai<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
21
|
-
convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): string;
|
|
22
|
-
convertFromChatMessage(chatMessage: ChatMessage<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
23
|
-
convertFromToolChoice(toolChoice: Function.ToolChoice<fdm>): OpenAI.Responses.ToolChoiceOptions | OpenAI.Responses.ToolChoiceAllowed;
|
|
24
|
-
makeMonolithParams(session: Session<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseCreateParamsNonStreaming;
|
|
25
|
-
logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
26
|
-
fetch(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, signal?: AbortSignal): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
|
|
27
|
-
fetchRaw(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, signal?: AbortSignal): Promise<OpenAIResponsesCompatibleEngine.Message.Ai<Function.Declaration.From<fdm>>>;
|
|
28
|
-
}
|
|
29
|
-
function convertToAiMessage<fdm extends Function.Declaration.Map>(this: OpenAIResponsesEngine.Underhood<fdm>, output: OpenAI.Responses.ResponseOutputItem[]): OpenAIResponsesCompatibleEngine.Message.Ai<Function.Declaration.From<fdm>>;
|
|
30
|
-
function convertFromFunctionCall<fdm extends Function.Declaration.Map>(fc: Function.Call.Distributive<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseFunctionToolCall;
|
|
31
|
-
function convertFromUserMessage<fdm extends Function.Declaration.Map>(this: OpenAIResponsesEngine.Underhood<fdm>, userMessage: RoleMessage.User<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
32
|
-
function convertFromAiMessage<fdm extends Function.Declaration.Map>(this: OpenAIResponsesCompatibleEngine.Underhood<fdm>, aiMessage: RoleMessage.Ai<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
33
|
-
function convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): string;
|
|
34
|
-
function convertFromChatMessage<fdm extends Function.Declaration.Map>(this: OpenAIResponsesCompatibleEngine.Underhood<fdm>, chatMessage: ChatMessage<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
35
|
-
function convertFromToolChoice<fdm extends Function.Declaration.Map>(toolChoice: Function.ToolChoice<fdm>): OpenAI.Responses.ToolChoiceOptions | OpenAI.Responses.ToolChoiceAllowed;
|
|
36
|
-
function makeMonolithParams<fdm extends Function.Declaration.Map>(this: OpenAIResponsesCompatibleEngine.Underhood<fdm>, session: Session<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseCreateParamsNonStreaming;
|
|
37
|
-
function logAiMessage<fdm extends Function.Declaration.Map>(this: Engine.Underhood<fdm>, output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
38
|
-
function fetch<fdm extends Function.Declaration.Map>(this: OpenAIResponsesCompatibleEngine.Underhood<fdm>, wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, signal?: AbortSignal): Promise<OpenAIResponsesCompatibleEngine.Message.Ai<Function.Declaration.From<fdm>>>;
|
|
39
|
-
function fetchRaw<fdm extends Function.Declaration.Map>(this: OpenAIResponsesCompatibleEngine.Underhood<fdm>, wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, signal?: AbortSignal): Promise<OpenAIResponsesCompatibleEngine.Message.Ai<Function.Declaration.From<fdm>>>;
|
|
40
|
-
class Instance<in out fdm extends Function.Declaration.Map> implements OpenAIResponsesCompatibleEngine.Underhood<fdm> {
|
|
41
|
-
baseUrl: string;
|
|
42
|
-
apiKey: string;
|
|
43
|
-
model: string;
|
|
44
|
-
name: string;
|
|
45
|
-
inputPrice: number;
|
|
46
|
-
outputPrice: number;
|
|
47
|
-
cachePrice: number;
|
|
48
|
-
fdm: fdm;
|
|
49
|
-
additionalOptions?: Record<string, unknown>;
|
|
50
|
-
throttle: Throttle;
|
|
51
|
-
timeout?: number;
|
|
52
|
-
maxTokens?: number;
|
|
53
|
-
proxyAgent?: Undici.ProxyAgent;
|
|
54
|
-
apiURL: URL;
|
|
55
|
-
parallelToolCall: boolean;
|
|
56
|
-
toolChoice: Function.ToolChoice<fdm>;
|
|
57
|
-
constructor(options: OpenAIResponsesCompatibleEngine.Options<fdm>);
|
|
58
|
-
stateless(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm, Extract<keyof fdm, string>>>>;
|
|
59
|
-
stateful(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm, Extract<keyof fdm, string>>>>;
|
|
60
|
-
appendUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm, Extract<keyof fdm, string>>>;
|
|
61
|
-
pushUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm, Extract<keyof fdm, string>>>;
|
|
62
|
-
validateToolCallsByToolChoice(toolCalls: Function.Call.Distributive<Function.Declaration.From<fdm>>[]): void;
|
|
63
|
-
convertFromFunctionResponse(fr: Function.Response.Distributive<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInputItem.FunctionCallOutput;
|
|
64
|
-
calcCost(usage: OpenAI.Responses.ResponseUsage): number;
|
|
65
|
-
convertFromFunctionDeclarationEntry(fdentry: Function.Declaration.Entry.From<fdm>): OpenAI.Responses.FunctionTool;
|
|
66
|
-
convertToFunctionCall(apifc: OpenAI.Responses.ResponseFunctionToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
|
|
67
|
-
convertToAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): OpenAIResponsesCompatibleEngine.Message.Ai<Function.Declaration.From<fdm>>;
|
|
68
|
-
convertFromFunctionCall(fc: Function.Call.Distributive<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseFunctionToolCall;
|
|
69
|
-
convertFromUserMessage(userMessage: RoleMessage.User<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
70
|
-
convertFromAiMessage(aiMessage: RoleMessage.Ai<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
71
|
-
convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): string;
|
|
72
|
-
convertFromChatMessage(chatMessage: ChatMessage<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInput;
|
|
73
|
-
convertFromToolChoice(toolChoice: Function.ToolChoice<fdm>): OpenAI.Responses.ToolChoiceOptions | OpenAI.Responses.ToolChoiceAllowed;
|
|
74
|
-
makeMonolithParams(session: Session<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseCreateParamsNonStreaming;
|
|
75
|
-
logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
76
|
-
fetch(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, signal?: AbortSignal): Promise<Message.Ai<Function.Declaration.From<fdm, Extract<keyof fdm, string>>>>;
|
|
77
|
-
fetchRaw(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, signal?: AbortSignal): Promise<OpenAIResponsesCompatibleEngine.Message.Ai<Function.Declaration.From<fdm>>>;
|
|
78
|
-
}
|
|
79
|
-
function create<fdm extends Function.Declaration.Map>(options: OpenAIResponsesCompatibleEngine.Options<fdm>): CompatibleEngine<fdm>;
|
|
80
|
-
namespace Message {
|
|
81
|
-
type Ai<fdu extends Function.Declaration> = Ai.Instance<fdu>;
|
|
82
|
-
namespace Ai {
|
|
83
|
-
function create<fdu extends Function.Declaration>(parts: RoleMessage.Ai.Part<fdu>[], raw: OpenAI.Responses.ResponseOutputItem[]): Ai<fdu>;
|
|
84
|
-
const NOMINAL: unique symbol;
|
|
85
|
-
class Instance<out fdu extends Function.Declaration> extends RoleMessage.Ai.Instance<fdu> {
|
|
86
|
-
protected raw: OpenAI.Responses.ResponseOutputItem[];
|
|
87
|
-
readonly [NOMINAL]: void;
|
|
88
|
-
constructor(parts: RoleMessage.Ai.Part<fdu>[], raw: OpenAI.Responses.ResponseOutputItem[]);
|
|
89
|
-
getRaw(): OpenAI.Responses.ResponseOutputItem[];
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
import { CompatibleEngine } from "../compatible-engine.js";
|
|
2
|
-
import { Function } from "../function.js";
|
|
3
|
-
import { RoleMessage } from "../session.js";
|
|
4
|
-
import { Engine, ResponseInvalid } from "../engine.js";
|
|
5
|
-
import {} from "../inference-context.js";
|
|
6
|
-
import OpenAI from 'openai';
|
|
7
|
-
import * as Undici from 'undici';
|
|
8
|
-
import { OpenAIResponsesEngine } from "../api-types/openai-responses.js";
|
|
9
|
-
import { Throttle } from "../throttle.js";
|
|
10
|
-
import { logger } from "../telemetry.js";
|
|
11
|
-
export var OpenAIResponsesCompatibleEngine;
|
|
12
|
-
(function (OpenAIResponsesCompatibleEngine) {
|
|
13
|
-
function convertToAiMessage(output) {
|
|
14
|
-
const parts = output.flatMap((item) => {
|
|
15
|
-
if (item.type === 'message') {
|
|
16
|
-
if (item.content.every(part => part.type === 'output_text')) { }
|
|
17
|
-
else
|
|
18
|
-
throw new Error();
|
|
19
|
-
return [RoleMessage.Part.Text.create(item.content.map(part => part.text).join(''))];
|
|
20
|
-
}
|
|
21
|
-
else if (item.type === 'function_call')
|
|
22
|
-
return [this.convertToFunctionCall(item)];
|
|
23
|
-
else if (item.type === 'reasoning')
|
|
24
|
-
return [];
|
|
25
|
-
else
|
|
26
|
-
throw new Error();
|
|
27
|
-
});
|
|
28
|
-
return OpenAIResponsesCompatibleEngine.Message.Ai.create(parts, output);
|
|
29
|
-
}
|
|
30
|
-
OpenAIResponsesCompatibleEngine.convertToAiMessage = convertToAiMessage;
|
|
31
|
-
function convertFromFunctionCall(fc) {
|
|
32
|
-
if (fc.id) { }
|
|
33
|
-
else
|
|
34
|
-
throw new Error();
|
|
35
|
-
return {
|
|
36
|
-
type: 'function_call',
|
|
37
|
-
call_id: fc.id,
|
|
38
|
-
name: fc.name,
|
|
39
|
-
arguments: JSON.stringify(fc.args),
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
OpenAIResponsesCompatibleEngine.convertFromFunctionCall = convertFromFunctionCall;
|
|
43
|
-
function convertFromUserMessage(userMessage) {
|
|
44
|
-
return userMessage.getParts().map(part => {
|
|
45
|
-
if (part instanceof RoleMessage.Part.Text.Instance)
|
|
46
|
-
return {
|
|
47
|
-
type: 'message',
|
|
48
|
-
role: 'user',
|
|
49
|
-
content: part.text,
|
|
50
|
-
};
|
|
51
|
-
else if (part instanceof Function.Response)
|
|
52
|
-
return this.convertFromFunctionResponse(part);
|
|
53
|
-
else
|
|
54
|
-
throw new Error();
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
OpenAIResponsesCompatibleEngine.convertFromUserMessage = convertFromUserMessage;
|
|
58
|
-
function convertFromAiMessage(aiMessage) {
|
|
59
|
-
if (aiMessage instanceof OpenAIResponsesCompatibleEngine.Message.Ai.Instance)
|
|
60
|
-
return aiMessage.getRaw();
|
|
61
|
-
else {
|
|
62
|
-
return aiMessage.getParts().map(part => {
|
|
63
|
-
if (part instanceof RoleMessage.Part.Text.Instance)
|
|
64
|
-
return {
|
|
65
|
-
role: 'assistant',
|
|
66
|
-
content: part.text,
|
|
67
|
-
};
|
|
68
|
-
else if (part instanceof Function.Call)
|
|
69
|
-
return this.convertFromFunctionCall(part);
|
|
70
|
-
else
|
|
71
|
-
throw new Error();
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
OpenAIResponsesCompatibleEngine.convertFromAiMessage = convertFromAiMessage;
|
|
76
|
-
function convertFromDeveloperMessage(developerMessage) {
|
|
77
|
-
return developerMessage.getOnlyText();
|
|
78
|
-
}
|
|
79
|
-
OpenAIResponsesCompatibleEngine.convertFromDeveloperMessage = convertFromDeveloperMessage;
|
|
80
|
-
function convertFromChatMessage(chatMessage) {
|
|
81
|
-
if (chatMessage instanceof RoleMessage.User.Instance)
|
|
82
|
-
return this.convertFromUserMessage(chatMessage);
|
|
83
|
-
else if (chatMessage instanceof RoleMessage.Ai.Instance)
|
|
84
|
-
return this.convertFromAiMessage(chatMessage);
|
|
85
|
-
else
|
|
86
|
-
throw new Error();
|
|
87
|
-
}
|
|
88
|
-
OpenAIResponsesCompatibleEngine.convertFromChatMessage = convertFromChatMessage;
|
|
89
|
-
function convertFromToolChoice(toolChoice) {
|
|
90
|
-
if (toolChoice === Function.ToolChoice.NONE)
|
|
91
|
-
return 'none';
|
|
92
|
-
else if (toolChoice === Function.ToolChoice.REQUIRED)
|
|
93
|
-
return 'required';
|
|
94
|
-
else if (toolChoice === Function.ToolChoice.AUTO)
|
|
95
|
-
return 'auto';
|
|
96
|
-
else {
|
|
97
|
-
return {
|
|
98
|
-
type: 'allowed_tools',
|
|
99
|
-
mode: 'required',
|
|
100
|
-
tools: toolChoice.map(name => ({ type: 'function', name })),
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
OpenAIResponsesCompatibleEngine.convertFromToolChoice = convertFromToolChoice;
|
|
105
|
-
function makeMonolithParams(session) {
|
|
106
|
-
const fdentries = Object.entries(this.fdm);
|
|
107
|
-
const tools = fdentries.map(fdentry => this.convertFromFunctionDeclarationEntry(fdentry));
|
|
108
|
-
return {
|
|
109
|
-
model: this.model,
|
|
110
|
-
include: ['reasoning.encrypted_content'],
|
|
111
|
-
store: false,
|
|
112
|
-
input: session.chatMessages.flatMap(chatMessage => this.convertFromChatMessage(chatMessage)),
|
|
113
|
-
instructions: session.developerMessage && this.convertFromDeveloperMessage(session.developerMessage),
|
|
114
|
-
tools: tools.length ? tools : undefined,
|
|
115
|
-
tool_choice: tools.length ? this.convertFromToolChoice(this.toolChoice) : undefined,
|
|
116
|
-
parallel_tool_calls: fdentries.length ? this.parallelToolCall : undefined,
|
|
117
|
-
max_output_tokens: this.maxTokens,
|
|
118
|
-
...this.additionalOptions,
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
OpenAIResponsesCompatibleEngine.makeMonolithParams = makeMonolithParams;
|
|
122
|
-
function logAiMessage(output) {
|
|
123
|
-
for (const item of output)
|
|
124
|
-
if (item.type === 'message') {
|
|
125
|
-
if (item.content.every(part => part.type === 'output_text')) { }
|
|
126
|
-
else
|
|
127
|
-
throw new Error();
|
|
128
|
-
logger.inference?.debug(item.content.map(part => part.text).join('') + '\n');
|
|
129
|
-
}
|
|
130
|
-
else if (item.type === 'function_call')
|
|
131
|
-
logger.message?.debug(item);
|
|
132
|
-
}
|
|
133
|
-
OpenAIResponsesCompatibleEngine.logAiMessage = logAiMessage;
|
|
134
|
-
async function fetch(wfctx, session, signal) {
|
|
135
|
-
return await this.fetchRaw(wfctx, session, signal).catch(e => Promise.reject(e instanceof OpenAI.APIError ? new ResponseInvalid(undefined, { cause: e }) : e));
|
|
136
|
-
}
|
|
137
|
-
OpenAIResponsesCompatibleEngine.fetch = fetch;
|
|
138
|
-
async function fetchRaw(wfctx, session, signal) {
|
|
139
|
-
const params = this.makeMonolithParams(session);
|
|
140
|
-
logger.message?.trace(params);
|
|
141
|
-
await this.throttle.requests(wfctx);
|
|
142
|
-
const res = await Undici.fetch(this.apiURL, {
|
|
143
|
-
method: 'POST',
|
|
144
|
-
headers: new Headers({
|
|
145
|
-
'Content-Type': 'application/json',
|
|
146
|
-
'Authorization': `Bearer ${this.apiKey}`,
|
|
147
|
-
}),
|
|
148
|
-
body: JSON.stringify(params),
|
|
149
|
-
dispatcher: this.proxyAgent,
|
|
150
|
-
signal,
|
|
151
|
-
});
|
|
152
|
-
if (res.ok) { }
|
|
153
|
-
else
|
|
154
|
-
throw new Error(undefined, { cause: res });
|
|
155
|
-
const response = await res.json();
|
|
156
|
-
logger.message?.trace(response);
|
|
157
|
-
if (response.status === 'incomplete' && response.incomplete_details?.reason === 'max_output_tokens')
|
|
158
|
-
throw new ResponseInvalid('Token limit exceeded.', { cause: response });
|
|
159
|
-
if (response.status === 'completed') { }
|
|
160
|
-
else
|
|
161
|
-
throw new ResponseInvalid('Abnormal response status', { cause: response });
|
|
162
|
-
this.logAiMessage(response.output);
|
|
163
|
-
if (response.usage) { }
|
|
164
|
-
else
|
|
165
|
-
throw new Error();
|
|
166
|
-
const cost = this.calcCost(response.usage);
|
|
167
|
-
wfctx.cost?.(cost);
|
|
168
|
-
logger.message?.debug(response.usage);
|
|
169
|
-
const aiMessage = this.convertToAiMessage(response.output);
|
|
170
|
-
this.validateToolCallsByToolChoice(aiMessage.getFunctionCalls());
|
|
171
|
-
return aiMessage;
|
|
172
|
-
}
|
|
173
|
-
OpenAIResponsesCompatibleEngine.fetchRaw = fetchRaw;
|
|
174
|
-
class Instance {
|
|
175
|
-
baseUrl;
|
|
176
|
-
apiKey;
|
|
177
|
-
model;
|
|
178
|
-
name;
|
|
179
|
-
inputPrice;
|
|
180
|
-
outputPrice;
|
|
181
|
-
cachePrice;
|
|
182
|
-
fdm;
|
|
183
|
-
additionalOptions;
|
|
184
|
-
throttle;
|
|
185
|
-
timeout;
|
|
186
|
-
maxTokens;
|
|
187
|
-
proxyAgent;
|
|
188
|
-
apiURL;
|
|
189
|
-
parallelToolCall;
|
|
190
|
-
toolChoice;
|
|
191
|
-
constructor(options) {
|
|
192
|
-
({
|
|
193
|
-
baseUrl: this.baseUrl,
|
|
194
|
-
apiKey: this.apiKey,
|
|
195
|
-
model: this.model,
|
|
196
|
-
name: this.name,
|
|
197
|
-
inputPrice: this.inputPrice,
|
|
198
|
-
outputPrice: this.outputPrice,
|
|
199
|
-
cachePrice: this.cachePrice,
|
|
200
|
-
fdm: this.fdm,
|
|
201
|
-
additionalOptions: this.additionalOptions,
|
|
202
|
-
throttle: this.throttle,
|
|
203
|
-
timeout: this.timeout,
|
|
204
|
-
maxTokens: this.maxTokens,
|
|
205
|
-
proxyAgent: this.proxyAgent,
|
|
206
|
-
} = (Engine.OwnProps.init).call(this, options));
|
|
207
|
-
({ toolChoice: this.toolChoice } = (CompatibleEngine.OwnProps.init).call(this, options));
|
|
208
|
-
({ parallelToolCall: this.parallelToolCall } = (OpenAIResponsesEngine.OwnProps.init).call(this, options));
|
|
209
|
-
this.apiURL = new URL(`${this.baseUrl}/responses`);
|
|
210
|
-
}
|
|
211
|
-
stateless(wfctx, session) {
|
|
212
|
-
return (CompatibleEngine.stateless).call(this, wfctx, session);
|
|
213
|
-
}
|
|
214
|
-
stateful(wfctx, session) {
|
|
215
|
-
return (CompatibleEngine.stateful).call(this, wfctx, session);
|
|
216
|
-
}
|
|
217
|
-
appendUserMessage(session, message) {
|
|
218
|
-
return (CompatibleEngine.appendUserMessage).call(this, session, message);
|
|
219
|
-
}
|
|
220
|
-
pushUserMessage(session, message) {
|
|
221
|
-
return (CompatibleEngine.pushUserMessage).call(this, session, message);
|
|
222
|
-
}
|
|
223
|
-
validateToolCallsByToolChoice(toolCalls) {
|
|
224
|
-
return (CompatibleEngine.validateToolCallsByToolChoice).call(this, toolCalls);
|
|
225
|
-
}
|
|
226
|
-
convertFromFunctionResponse(fr) {
|
|
227
|
-
return (OpenAIResponsesEngine.convertFromFunctionResponse).call(this, fr);
|
|
228
|
-
}
|
|
229
|
-
calcCost(usage) {
|
|
230
|
-
return (OpenAIResponsesEngine.calcCost).call(this, usage);
|
|
231
|
-
}
|
|
232
|
-
convertFromFunctionDeclarationEntry(fdentry) {
|
|
233
|
-
return (OpenAIResponsesEngine.convertFromFunctionDeclarationEntry).call(this, fdentry);
|
|
234
|
-
}
|
|
235
|
-
convertToFunctionCall(apifc) {
|
|
236
|
-
return (OpenAIResponsesEngine.convertToFunctionCall).call(this, apifc);
|
|
237
|
-
}
|
|
238
|
-
convertToAiMessage(output) {
|
|
239
|
-
return (OpenAIResponsesCompatibleEngine.convertToAiMessage).call(this, output);
|
|
240
|
-
}
|
|
241
|
-
convertFromFunctionCall(fc) {
|
|
242
|
-
return (OpenAIResponsesCompatibleEngine.convertFromFunctionCall).call(this, fc);
|
|
243
|
-
}
|
|
244
|
-
convertFromUserMessage(userMessage) {
|
|
245
|
-
return (OpenAIResponsesCompatibleEngine.convertFromUserMessage).call(this, userMessage);
|
|
246
|
-
}
|
|
247
|
-
convertFromAiMessage(aiMessage) {
|
|
248
|
-
return (OpenAIResponsesCompatibleEngine.convertFromAiMessage).call(this, aiMessage);
|
|
249
|
-
}
|
|
250
|
-
convertFromDeveloperMessage(developerMessage) {
|
|
251
|
-
return (OpenAIResponsesCompatibleEngine.convertFromDeveloperMessage).call(this, developerMessage);
|
|
252
|
-
}
|
|
253
|
-
convertFromChatMessage(chatMessage) {
|
|
254
|
-
return (OpenAIResponsesCompatibleEngine.convertFromChatMessage).call(this, chatMessage);
|
|
255
|
-
}
|
|
256
|
-
convertFromToolChoice(toolChoice) {
|
|
257
|
-
return (OpenAIResponsesCompatibleEngine.convertFromToolChoice).call(this, toolChoice);
|
|
258
|
-
}
|
|
259
|
-
makeMonolithParams(session) {
|
|
260
|
-
return (OpenAIResponsesCompatibleEngine.makeMonolithParams).call(this, session);
|
|
261
|
-
}
|
|
262
|
-
logAiMessage(output) {
|
|
263
|
-
return (OpenAIResponsesCompatibleEngine.logAiMessage).call(this, output);
|
|
264
|
-
}
|
|
265
|
-
fetch(wfctx, session, signal) {
|
|
266
|
-
return (OpenAIResponsesCompatibleEngine.fetch).call(this, wfctx, session, signal);
|
|
267
|
-
}
|
|
268
|
-
fetchRaw(wfctx, session, signal) {
|
|
269
|
-
return (OpenAIResponsesCompatibleEngine.fetchRaw).call(this, wfctx, session, signal);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
OpenAIResponsesCompatibleEngine.Instance = Instance;
|
|
273
|
-
function create(options) {
|
|
274
|
-
return new OpenAIResponsesCompatibleEngine.Instance(options);
|
|
275
|
-
}
|
|
276
|
-
OpenAIResponsesCompatibleEngine.create = create;
|
|
277
|
-
let Message;
|
|
278
|
-
(function (Message) {
|
|
279
|
-
let Ai;
|
|
280
|
-
(function (Ai) {
|
|
281
|
-
function create(parts, raw) {
|
|
282
|
-
return new Instance(parts, raw);
|
|
283
|
-
}
|
|
284
|
-
Ai.create = create;
|
|
285
|
-
Ai.NOMINAL = Symbol();
|
|
286
|
-
class Instance extends RoleMessage.Ai.Instance {
|
|
287
|
-
raw;
|
|
288
|
-
constructor(parts, raw) {
|
|
289
|
-
super(parts);
|
|
290
|
-
this.raw = raw;
|
|
291
|
-
}
|
|
292
|
-
getRaw() {
|
|
293
|
-
return this.raw;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
Ai.Instance = Instance;
|
|
297
|
-
})(Ai = Message.Ai || (Message.Ai = {}));
|
|
298
|
-
})(Message = OpenAIResponsesCompatibleEngine.Message || (OpenAIResponsesCompatibleEngine.Message = {}));
|
|
299
|
-
})(OpenAIResponsesCompatibleEngine || (OpenAIResponsesCompatibleEngine = {}));
|
|
300
|
-
//# sourceMappingURL=openai-responses.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/compatible-engines.d/openai-responses.ts"],"names":[],"mappings":"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"}
|
package/build/test.js
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import test from 'ava';
|
|
2
|
-
import { Type } from '@sinclair/typebox';
|
|
3
|
-
import { Adaptor } from "./adaptor.js";
|
|
4
|
-
import { CompatibleEngine } from "./compatible-engine.js";
|
|
5
|
-
import { ResponseInvalid } from "./engine.js";
|
|
6
|
-
import { Function } from "./function.js";
|
|
7
|
-
import {} from "./inference-context.js";
|
|
8
|
-
import { RoleMessage } from "./session.js";
|
|
9
|
-
import { Throttle } from "./throttle.js";
|
|
10
|
-
import { OpenAIResponsesCompatibleEngine } from "./compatible-engines.d/openai-responses.js";
|
|
11
|
-
import { GoogleCompatibleEngine } from "./compatible-engines.d/google.js";
|
|
12
|
-
import { AnthropicCompatibleEngine } from "./compatible-engines.d/anthropic.js";
|
|
13
|
-
import { AliyunEngine } from "./compatible-engines.d/aliyun.js";
|
|
14
|
-
const fdm = {
|
|
15
|
-
foo: {
|
|
16
|
-
description: 'foo tool',
|
|
17
|
-
paraschema: Type.Object({ x: Type.Number() }),
|
|
18
|
-
},
|
|
19
|
-
bar: {
|
|
20
|
-
description: 'bar tool',
|
|
21
|
-
paraschema: Type.Object({ y: Type.String() }),
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
function makeBaseOptions() {
|
|
25
|
-
return {
|
|
26
|
-
baseUrl: 'https://example.com/v1',
|
|
27
|
-
apiKey: 'test-key',
|
|
28
|
-
model: 'test-model',
|
|
29
|
-
name: 'Test Endpoint',
|
|
30
|
-
functionDeclarationMap: fdm,
|
|
31
|
-
throttle: new Throttle(60),
|
|
32
|
-
inputPrice: 1,
|
|
33
|
-
outputPrice: 2,
|
|
34
|
-
cachePrice: 3,
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
function makeSession() {
|
|
38
|
-
return { chatMessages: [] };
|
|
39
|
-
}
|
|
40
|
-
function makeUserMessage() {
|
|
41
|
-
return RoleMessage.User.create([RoleMessage.Part.Text.create('hello')]);
|
|
42
|
-
}
|
|
43
|
-
function makeAiMessage(text = 'ok') {
|
|
44
|
-
return RoleMessage.Ai.create([RoleMessage.Part.Text.create(text)]);
|
|
45
|
-
}
|
|
46
|
-
function makeInferenceContext() {
|
|
47
|
-
return {
|
|
48
|
-
busy: null,
|
|
49
|
-
signal: null,
|
|
50
|
-
cost() { },
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
test('OpenAIResponses compatible engine: composition initializes mixed own props', t => {
|
|
54
|
-
const options = {
|
|
55
|
-
...makeBaseOptions(),
|
|
56
|
-
apiType: 'openai-responses',
|
|
57
|
-
parallelToolCall: true,
|
|
58
|
-
toolChoice: Function.ToolChoice.REQUIRED,
|
|
59
|
-
};
|
|
60
|
-
const engine = new OpenAIResponsesCompatibleEngine.Instance(options);
|
|
61
|
-
t.is(engine.baseUrl, options.baseUrl);
|
|
62
|
-
t.is(engine.apiKey, options.apiKey);
|
|
63
|
-
t.is(engine.model, options.model);
|
|
64
|
-
t.is(engine.name, options.name);
|
|
65
|
-
t.is(engine.toolChoice, Function.ToolChoice.REQUIRED);
|
|
66
|
-
t.true(engine.parallelToolCall);
|
|
67
|
-
t.is(engine.apiURL.href, 'https://example.com/v1/responses');
|
|
68
|
-
});
|
|
69
|
-
test('Google compatible engine: default own-props from different parents are preserved', t => {
|
|
70
|
-
const options = {
|
|
71
|
-
...makeBaseOptions(),
|
|
72
|
-
apiType: 'google',
|
|
73
|
-
};
|
|
74
|
-
const engine = new GoogleCompatibleEngine.Instance(options);
|
|
75
|
-
t.is(engine.toolChoice, Function.ToolChoice.AUTO);
|
|
76
|
-
t.true(engine.parallelToolCall);
|
|
77
|
-
t.is(engine.apiURL.href, `${options.baseUrl}/v1beta/models/test-model:generateContent`);
|
|
78
|
-
t.is(engine.fdm, fdm);
|
|
79
|
-
});
|
|
80
|
-
test('CompatibleEngine.stateless retries ResponseInvalid and succeeds', async (t) => {
|
|
81
|
-
const options = {
|
|
82
|
-
...makeBaseOptions(),
|
|
83
|
-
apiType: 'google',
|
|
84
|
-
};
|
|
85
|
-
const engine = new GoogleCompatibleEngine.Instance(options);
|
|
86
|
-
let attempts = 0;
|
|
87
|
-
const ai = makeAiMessage('retry-ok');
|
|
88
|
-
engine.fetch = async () => {
|
|
89
|
-
attempts += 1;
|
|
90
|
-
if (attempts < 3)
|
|
91
|
-
throw new ResponseInvalid('temporary');
|
|
92
|
-
return ai;
|
|
93
|
-
};
|
|
94
|
-
const wfctx = makeInferenceContext();
|
|
95
|
-
const response = await engine.stateless(wfctx, makeSession());
|
|
96
|
-
t.is(attempts, 3);
|
|
97
|
-
t.is(response, ai);
|
|
98
|
-
});
|
|
99
|
-
test('CompatibleEngine stateful/append/push message semantics are correct', async (t) => {
|
|
100
|
-
const options = {
|
|
101
|
-
...makeBaseOptions(),
|
|
102
|
-
apiType: 'google',
|
|
103
|
-
};
|
|
104
|
-
const engine = new GoogleCompatibleEngine.Instance(options);
|
|
105
|
-
const ai = makeAiMessage('stateful-ok');
|
|
106
|
-
engine.fetch = async () => ai;
|
|
107
|
-
const session = makeSession();
|
|
108
|
-
const response = await engine.stateful(makeInferenceContext(), session);
|
|
109
|
-
t.is(response, ai);
|
|
110
|
-
t.deepEqual(session.chatMessages, [ai]);
|
|
111
|
-
const user = makeUserMessage();
|
|
112
|
-
const appended = engine.appendUserMessage(session, user);
|
|
113
|
-
t.not(appended, session);
|
|
114
|
-
t.deepEqual(appended.chatMessages, [ai, user]);
|
|
115
|
-
t.deepEqual(session.chatMessages, [ai]);
|
|
116
|
-
const pushed = engine.pushUserMessage(session, user);
|
|
117
|
-
t.is(pushed, session);
|
|
118
|
-
t.deepEqual(session.chatMessages, [ai, user]);
|
|
119
|
-
});
|
|
120
|
-
test('CompatibleEngine.validateToolCallsByToolChoice enforces REQUIRED and allowlist', t => {
|
|
121
|
-
const options = {
|
|
122
|
-
...makeBaseOptions(),
|
|
123
|
-
apiType: 'google',
|
|
124
|
-
};
|
|
125
|
-
const engine = new GoogleCompatibleEngine.Instance(options);
|
|
126
|
-
const fooCall = Function.Call.create({
|
|
127
|
-
id: 'fc-1',
|
|
128
|
-
name: 'foo',
|
|
129
|
-
args: { x: 1 },
|
|
130
|
-
});
|
|
131
|
-
const barCall = Function.Call.create({
|
|
132
|
-
id: 'fc-2',
|
|
133
|
-
name: 'bar',
|
|
134
|
-
args: { y: 'x' },
|
|
135
|
-
});
|
|
136
|
-
engine.toolChoice = Function.ToolChoice.REQUIRED;
|
|
137
|
-
t.throws(() => engine.validateToolCallsByToolChoice([]), { instanceOf: ResponseInvalid });
|
|
138
|
-
t.notThrows(() => engine.validateToolCallsByToolChoice([fooCall]));
|
|
139
|
-
engine.toolChoice = ['foo'];
|
|
140
|
-
t.notThrows(() => engine.validateToolCallsByToolChoice([fooCall]));
|
|
141
|
-
t.throws(() => engine.validateToolCallsByToolChoice([barCall]), { instanceOf: ResponseInvalid });
|
|
142
|
-
engine.toolChoice = Function.ToolChoice.NONE;
|
|
143
|
-
t.notThrows(() => engine.validateToolCallsByToolChoice([]));
|
|
144
|
-
t.throws(() => engine.validateToolCallsByToolChoice([fooCall]), { instanceOf: ResponseInvalid });
|
|
145
|
-
});
|
|
146
|
-
test('Adaptor.makeEngine returns each compatible implementation with expected mixed defaults', t => {
|
|
147
|
-
const adaptor = Adaptor.create({
|
|
148
|
-
brainswitch: {
|
|
149
|
-
endpoints: {
|
|
150
|
-
oa: {
|
|
151
|
-
baseUrl: 'https://example.com/v1',
|
|
152
|
-
apiKey: 'k',
|
|
153
|
-
model: 'm',
|
|
154
|
-
name: 'oa',
|
|
155
|
-
apiType: 'openai-responses',
|
|
156
|
-
},
|
|
157
|
-
gg: {
|
|
158
|
-
baseUrl: 'https://generativelanguage.googleapis.com',
|
|
159
|
-
apiKey: 'k',
|
|
160
|
-
model: 'gemini-test',
|
|
161
|
-
name: 'gg',
|
|
162
|
-
apiType: 'google',
|
|
163
|
-
},
|
|
164
|
-
an: {
|
|
165
|
-
baseUrl: 'https://api.anthropic.com',
|
|
166
|
-
apiKey: 'k',
|
|
167
|
-
model: 'claude-test',
|
|
168
|
-
name: 'an',
|
|
169
|
-
apiType: 'anthropic',
|
|
170
|
-
},
|
|
171
|
-
al: {
|
|
172
|
-
baseUrl: 'https://dashscope.aliyuncs.com/compatible-mode/v1',
|
|
173
|
-
apiKey: 'k',
|
|
174
|
-
model: 'qwen-test',
|
|
175
|
-
name: 'al',
|
|
176
|
-
apiType: 'aliyun',
|
|
177
|
-
},
|
|
178
|
-
},
|
|
179
|
-
},
|
|
180
|
-
});
|
|
181
|
-
const openaiEngine = adaptor.makeEngine('oa', fdm);
|
|
182
|
-
const googleEngine = adaptor.makeEngine('gg', fdm);
|
|
183
|
-
const anthropicEngine = adaptor.makeEngine('an', fdm);
|
|
184
|
-
const aliyunEngine = adaptor.makeEngine('al', fdm);
|
|
185
|
-
t.true(openaiEngine instanceof OpenAIResponsesCompatibleEngine.Instance);
|
|
186
|
-
t.true(googleEngine instanceof GoogleCompatibleEngine.Instance);
|
|
187
|
-
t.true(anthropicEngine instanceof AnthropicCompatibleEngine.Instance);
|
|
188
|
-
t.true(aliyunEngine instanceof AliyunEngine.Instance);
|
|
189
|
-
t.is(openaiEngine.toolChoice, Function.ToolChoice.AUTO);
|
|
190
|
-
t.is(googleEngine.toolChoice, Function.ToolChoice.AUTO);
|
|
191
|
-
t.is(anthropicEngine.toolChoice, Function.ToolChoice.AUTO);
|
|
192
|
-
t.is(aliyunEngine.toolChoice, Function.ToolChoice.AUTO);
|
|
193
|
-
t.false(openaiEngine.parallelToolCall);
|
|
194
|
-
t.true(googleEngine.parallelToolCall);
|
|
195
|
-
t.false(anthropicEngine.parallelToolCall);
|
|
196
|
-
t.false(aliyunEngine.parallelToolCall);
|
|
197
|
-
});
|
|
198
|
-
//# sourceMappingURL=test.js.map
|
package/build/test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|