@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.
Files changed (215) hide show
  1. package/DEVELOPMENT.md +13 -14
  2. package/README.md +7 -14
  3. package/build/adaptor.d.ts +5 -5
  4. package/build/adaptor.js +16 -16
  5. package/build/adaptor.js.map +1 -1
  6. package/build/agentloop.d.ts +5 -5
  7. package/build/agentloop.js +4 -4
  8. package/build/agentloop.js.map +1 -1
  9. package/build/api-types/anthropic/billing.d.ts +12 -0
  10. package/build/api-types/anthropic/billing.js +15 -0
  11. package/build/api-types/anthropic/billing.js.map +1 -0
  12. package/build/api-types/anthropic/tool-codec.d.ts +17 -0
  13. package/build/api-types/anthropic/tool-codec.js +73 -0
  14. package/build/api-types/anthropic/tool-codec.js.map +1 -0
  15. package/build/api-types/google/billing.d.ts +12 -0
  16. package/build/api-types/google/billing.js +24 -0
  17. package/build/api-types/google/billing.js.map +1 -0
  18. package/build/api-types/google/restful-request.d.ts +8 -0
  19. package/build/api-types/google/restful-request.js +2 -0
  20. package/build/api-types/google/restful-request.js.map +1 -0
  21. package/build/api-types/google/tool-codec.d.ts +16 -0
  22. package/build/api-types/{google.js → google/tool-codec.js} +27 -26
  23. package/build/api-types/google/tool-codec.js.map +1 -0
  24. package/build/api-types/openai-chatcompletion/billing.d.ts +13 -0
  25. package/build/api-types/openai-chatcompletion/billing.js +16 -0
  26. package/build/api-types/openai-chatcompletion/billing.js.map +1 -0
  27. package/build/api-types/openai-chatcompletion/tool-codec.d.ts +18 -0
  28. package/build/api-types/openai-chatcompletion/tool-codec.js +86 -0
  29. package/build/api-types/openai-chatcompletion/tool-codec.js.map +1 -0
  30. package/build/api-types/openai-responses/billing.d.ts +12 -0
  31. package/build/api-types/openai-responses/billing.js +15 -0
  32. package/build/api-types/openai-responses/billing.js.map +1 -0
  33. package/build/api-types/openai-responses/tool-codec.d.ts +16 -0
  34. package/build/api-types/openai-responses/tool-codec.js +72 -0
  35. package/build/api-types/openai-responses/tool-codec.js.map +1 -0
  36. package/build/compatible/engine.d/aliyun.d.ts +23 -0
  37. package/build/compatible/engine.d/aliyun.js +44 -0
  38. package/build/compatible/engine.d/aliyun.js.map +1 -0
  39. package/build/compatible/engine.d/anthropic.d.ts +23 -0
  40. package/build/compatible/engine.d/anthropic.js +41 -0
  41. package/build/compatible/engine.d/anthropic.js.map +1 -0
  42. package/build/compatible/engine.d/google.d.ts +23 -0
  43. package/build/compatible/engine.d/google.js +45 -0
  44. package/build/compatible/engine.d/google.js.map +1 -0
  45. package/build/compatible/engine.d/openai-responses.d.ts +23 -0
  46. package/build/compatible/engine.d/openai-responses.js +41 -0
  47. package/build/compatible/engine.d/openai-responses.js.map +1 -0
  48. package/build/compatible/engine.d.ts +18 -0
  49. package/build/compatible/engine.js +21 -0
  50. package/build/compatible/engine.js.map +1 -0
  51. package/build/compatible/session.d.ts +78 -0
  52. package/build/compatible/session.js +138 -0
  53. package/build/compatible/session.js.map +1 -0
  54. package/build/compatible/tool-call-validator.d.ts +11 -0
  55. package/build/compatible/tool-call-validator.js +12 -0
  56. package/build/compatible/tool-call-validator.js.map +1 -0
  57. package/build/compatible.d/aliyun/transport.d.ts +11 -0
  58. package/build/compatible.d/aliyun/transport.js +9 -0
  59. package/build/compatible.d/aliyun/transport.js.map +1 -0
  60. package/build/compatible.d/anthropic/message-codec.d.ts +31 -0
  61. package/build/compatible.d/anthropic/message-codec.js +88 -0
  62. package/build/compatible.d/anthropic/message-codec.js.map +1 -0
  63. package/build/compatible.d/anthropic/transport.d.ts +31 -0
  64. package/build/compatible.d/anthropic/transport.js +137 -0
  65. package/build/compatible.d/anthropic/transport.js.map +1 -0
  66. package/build/compatible.d/google/message-codec.d.ts +31 -0
  67. package/build/compatible.d/google/message-codec.js +98 -0
  68. package/build/compatible.d/google/message-codec.js.map +1 -0
  69. package/build/compatible.d/google/transport.d.ts +28 -0
  70. package/build/compatible.d/google/transport.js +74 -0
  71. package/build/compatible.d/google/transport.js.map +1 -0
  72. package/build/compatible.d/openai-chatcompletions/message-codec.d.ts +19 -0
  73. package/build/compatible.d/openai-chatcompletions/message-codec.js +66 -0
  74. package/build/compatible.d/openai-chatcompletions/message-codec.js.map +1 -0
  75. package/build/compatible.d/openai-chatcompletions/transport.d.ts +9 -0
  76. package/build/compatible.d/openai-chatcompletions/transport.js +25 -0
  77. package/build/compatible.d/openai-chatcompletions/transport.js.map +1 -0
  78. package/build/compatible.d/openai-chatcompletions.d/monolith.d.ts +36 -0
  79. package/build/compatible.d/openai-chatcompletions.d/monolith.js +74 -0
  80. package/build/compatible.d/openai-chatcompletions.d/monolith.js.map +1 -0
  81. package/build/compatible.d/openai-chatcompletions.d/stream.d.ts +35 -0
  82. package/build/{compatible-engines.d → compatible.d}/openai-chatcompletions.d/stream.js +52 -42
  83. package/build/compatible.d/openai-chatcompletions.d/stream.js.map +1 -0
  84. package/build/compatible.d/openai-responses/message-codec.d.ts +32 -0
  85. package/build/compatible.d/openai-responses/message-codec.js +105 -0
  86. package/build/compatible.d/openai-responses/message-codec.js.map +1 -0
  87. package/build/compatible.d/openai-responses/transport.d.ts +33 -0
  88. package/build/compatible.d/openai-responses/transport.js +88 -0
  89. package/build/compatible.d/openai-responses/transport.js.map +1 -0
  90. package/build/config.js +1 -1
  91. package/build/config.js.map +1 -1
  92. package/build/engine.d.ts +48 -26
  93. package/build/engine.js +78 -29
  94. package/build/engine.js.map +1 -1
  95. package/build/exports.d.ts +14 -13
  96. package/build/exports.js +14 -13
  97. package/build/exports.js.map +1 -1
  98. package/build/function.d.ts +25 -13
  99. package/build/function.js +2 -1
  100. package/build/function.js.map +1 -1
  101. package/build/inference-context.d.ts +1 -1
  102. package/build/native-engines.d/google/agentloop.d.ts +6 -6
  103. package/build/native-engines.d/google/agentloop.js +5 -5
  104. package/build/native-engines.d/google/agentloop.js.map +1 -1
  105. package/build/native-engines.d/google/engine.d.ts +28 -103
  106. package/build/native-engines.d/google/engine.js +63 -304
  107. package/build/native-engines.d/google/engine.js.map +1 -1
  108. package/build/native-engines.d/google/exports.d.ts +5 -5
  109. package/build/native-engines.d/google/exports.js +5 -5
  110. package/build/native-engines.d/google/exports.js.map +1 -1
  111. package/build/native-engines.d/google/message-codec.d.ts +21 -0
  112. package/build/native-engines.d/google/message-codec.js +69 -0
  113. package/build/native-engines.d/google/message-codec.js.map +1 -0
  114. package/build/native-engines.d/google/session.d.ts +16 -15
  115. package/build/native-engines.d/google/session.js +2 -2
  116. package/build/native-engines.d/google/session.js.map +1 -1
  117. package/build/native-engines.d/google/transport.d.ts +31 -0
  118. package/build/native-engines.d/google/transport.js +81 -0
  119. package/build/native-engines.d/google/transport.js.map +1 -0
  120. package/build/native-engines.d/openai-responses/agentloop.d.ts +7 -7
  121. package/build/native-engines.d/openai-responses/agentloop.js +6 -6
  122. package/build/native-engines.d/openai-responses/agentloop.js.map +1 -1
  123. package/build/native-engines.d/openai-responses/engine.d.ts +26 -106
  124. package/build/native-engines.d/openai-responses/engine.js +53 -334
  125. package/build/native-engines.d/openai-responses/engine.js.map +1 -1
  126. package/build/native-engines.d/openai-responses/exports.d.ts +6 -7
  127. package/build/native-engines.d/openai-responses/exports.js +6 -7
  128. package/build/native-engines.d/openai-responses/exports.js.map +1 -1
  129. package/build/native-engines.d/openai-responses/message-codec.d.ts +21 -0
  130. package/build/native-engines.d/openai-responses/message-codec.js +69 -0
  131. package/build/native-engines.d/openai-responses/message-codec.js.map +1 -0
  132. package/build/native-engines.d/openai-responses/session.d.ts +27 -26
  133. package/build/native-engines.d/openai-responses/session.js +3 -3
  134. package/build/native-engines.d/openai-responses/session.js.map +1 -1
  135. package/build/native-engines.d/openai-responses/tool-call-validator.d.ts +12 -0
  136. package/build/native-engines.d/openai-responses/tool-call-validator.js +33 -0
  137. package/build/native-engines.d/openai-responses/tool-call-validator.js.map +1 -0
  138. package/build/native-engines.d/openai-responses/tool.d.ts +3 -3
  139. package/build/native-engines.d/openai-responses/tool.js +1 -1
  140. package/build/native-engines.d/openai-responses/tool.js.map +1 -1
  141. package/build/native-engines.d/openai-responses/transport.d.ts +36 -0
  142. package/build/native-engines.d/openai-responses/transport.js +104 -0
  143. package/build/native-engines.d/openai-responses/transport.js.map +1 -0
  144. package/build/session.d.ts +5 -75
  145. package/build/session.js +0 -136
  146. package/build/session.js.map +1 -1
  147. package/build/throttle.d.ts +1 -1
  148. package/build/tsconfig.tsbuildinfo +1 -1
  149. package/package.json +4 -4
  150. package/test/build/test-codecs.js +230 -0
  151. package/test/build/test-codecs.js.map +1 -0
  152. package/test/build/test-compatible-engine.d.ts +1 -0
  153. package/test/build/test-compatible-engine.js +27 -0
  154. package/test/build/test-compatible-engine.js.map +1 -0
  155. package/test/build/test-compatible-engines.d.ts +1 -0
  156. package/test/build/test-compatible-engines.js +112 -0
  157. package/test/build/test-compatible-engines.js.map +1 -0
  158. package/test/build/test-engine.d.ts +1 -0
  159. package/test/build/test-engine.js +97 -0
  160. package/test/build/test-engine.js.map +1 -0
  161. package/test/build/test-helpers.d.ts +46 -0
  162. package/test/build/test-helpers.js +45 -0
  163. package/test/build/test-helpers.js.map +1 -0
  164. package/test/build/test-native-engines.d.ts +1 -0
  165. package/test/build/test-native-engines.js +64 -0
  166. package/test/build/test-native-engines.js.map +1 -0
  167. package/test/build/test.d.ts +5 -0
  168. package/test/build/test.js +6 -0
  169. package/test/build/test.js.map +1 -0
  170. package/test/build/tsconfig.tsbuildinfo +1 -0
  171. package/test/src/test-codecs.ts +256 -0
  172. package/test/src/test-compatible-engine.ts +45 -0
  173. package/test/src/test-compatible-engines.ts +129 -0
  174. package/test/src/test-engine.ts +144 -0
  175. package/test/src/test-helpers.ts +53 -0
  176. package/test/src/test-native-engines.ts +75 -0
  177. package/test/src/test.ts +5 -0
  178. package/test/src/tsconfig.json +30 -0
  179. package/build/api-types/anthropic.d.ts +0 -29
  180. package/build/api-types/anthropic.js +0 -93
  181. package/build/api-types/anthropic.js.map +0 -1
  182. package/build/api-types/google.d.ts +0 -28
  183. package/build/api-types/google.js.map +0 -1
  184. package/build/api-types/openai-chat-completions.d.ts +0 -31
  185. package/build/api-types/openai-chat-completions.js +0 -113
  186. package/build/api-types/openai-chat-completions.js.map +0 -1
  187. package/build/api-types/openai-responses.d.ts +0 -23
  188. package/build/api-types/openai-responses.js +0 -71
  189. package/build/api-types/openai-responses.js.map +0 -1
  190. package/build/compatible-engine.d.ts +0 -51
  191. package/build/compatible-engine.js +0 -67
  192. package/build/compatible-engine.js.map +0 -1
  193. package/build/compatible-engines.d/aliyun.d.ts +0 -69
  194. package/build/compatible-engines.d/aliyun.js +0 -149
  195. package/build/compatible-engines.d/aliyun.js.map +0 -1
  196. package/build/compatible-engines.d/anthropic.d.ts +0 -78
  197. package/build/compatible-engines.d/anthropic.js +0 -312
  198. package/build/compatible-engines.d/anthropic.js.map +0 -1
  199. package/build/compatible-engines.d/google.d.ts +0 -83
  200. package/build/compatible-engines.d/google.js +0 -279
  201. package/build/compatible-engines.d/google.js.map +0 -1
  202. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.d.ts +0 -15
  203. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js +0 -75
  204. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js.map +0 -1
  205. package/build/compatible-engines.d/openai-chatcompletions.d/stream.d.ts +0 -21
  206. package/build/compatible-engines.d/openai-chatcompletions.d/stream.js.map +0 -1
  207. package/build/compatible-engines.d/openai-chatcompletions.d.ts +0 -27
  208. package/build/compatible-engines.d/openai-chatcompletions.js +0 -76
  209. package/build/compatible-engines.d/openai-chatcompletions.js.map +0 -1
  210. package/build/compatible-engines.d/openai-responses.d.ts +0 -93
  211. package/build/compatible-engines.d/openai-responses.js +0 -300
  212. package/build/compatible-engines.d/openai-responses.js.map +0 -1
  213. package/build/test.js +0 -198
  214. package/build/test.js.map +0 -1
  215. /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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"}