@zimtsui/brainswitch 0.0.55 → 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 (214) 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/native-engines.d/google/agentloop.d.ts +6 -6
  102. package/build/native-engines.d/google/agentloop.js +5 -5
  103. package/build/native-engines.d/google/agentloop.js.map +1 -1
  104. package/build/native-engines.d/google/engine.d.ts +28 -103
  105. package/build/native-engines.d/google/engine.js +63 -304
  106. package/build/native-engines.d/google/engine.js.map +1 -1
  107. package/build/native-engines.d/google/exports.d.ts +5 -5
  108. package/build/native-engines.d/google/exports.js +5 -5
  109. package/build/native-engines.d/google/exports.js.map +1 -1
  110. package/build/native-engines.d/google/message-codec.d.ts +21 -0
  111. package/build/native-engines.d/google/message-codec.js +69 -0
  112. package/build/native-engines.d/google/message-codec.js.map +1 -0
  113. package/build/native-engines.d/google/session.d.ts +16 -15
  114. package/build/native-engines.d/google/session.js +2 -2
  115. package/build/native-engines.d/google/session.js.map +1 -1
  116. package/build/native-engines.d/google/transport.d.ts +31 -0
  117. package/build/native-engines.d/google/transport.js +81 -0
  118. package/build/native-engines.d/google/transport.js.map +1 -0
  119. package/build/native-engines.d/openai-responses/agentloop.d.ts +7 -7
  120. package/build/native-engines.d/openai-responses/agentloop.js +6 -6
  121. package/build/native-engines.d/openai-responses/agentloop.js.map +1 -1
  122. package/build/native-engines.d/openai-responses/engine.d.ts +26 -106
  123. package/build/native-engines.d/openai-responses/engine.js +53 -334
  124. package/build/native-engines.d/openai-responses/engine.js.map +1 -1
  125. package/build/native-engines.d/openai-responses/exports.d.ts +6 -7
  126. package/build/native-engines.d/openai-responses/exports.js +6 -7
  127. package/build/native-engines.d/openai-responses/exports.js.map +1 -1
  128. package/build/native-engines.d/openai-responses/message-codec.d.ts +21 -0
  129. package/build/native-engines.d/openai-responses/message-codec.js +69 -0
  130. package/build/native-engines.d/openai-responses/message-codec.js.map +1 -0
  131. package/build/native-engines.d/openai-responses/session.d.ts +27 -26
  132. package/build/native-engines.d/openai-responses/session.js +3 -3
  133. package/build/native-engines.d/openai-responses/session.js.map +1 -1
  134. package/build/native-engines.d/openai-responses/tool-call-validator.d.ts +12 -0
  135. package/build/native-engines.d/openai-responses/tool-call-validator.js +33 -0
  136. package/build/native-engines.d/openai-responses/tool-call-validator.js.map +1 -0
  137. package/build/native-engines.d/openai-responses/tool.d.ts +3 -3
  138. package/build/native-engines.d/openai-responses/tool.js +1 -1
  139. package/build/native-engines.d/openai-responses/tool.js.map +1 -1
  140. package/build/native-engines.d/openai-responses/transport.d.ts +36 -0
  141. package/build/native-engines.d/openai-responses/transport.js +104 -0
  142. package/build/native-engines.d/openai-responses/transport.js.map +1 -0
  143. package/build/session.d.ts +5 -75
  144. package/build/session.js +0 -136
  145. package/build/session.js.map +1 -1
  146. package/build/throttle.d.ts +1 -1
  147. package/build/tsconfig.tsbuildinfo +1 -1
  148. package/package.json +3 -3
  149. package/test/build/test-codecs.js +230 -0
  150. package/test/build/test-codecs.js.map +1 -0
  151. package/test/build/test-compatible-engine.d.ts +1 -0
  152. package/test/build/test-compatible-engine.js +27 -0
  153. package/test/build/test-compatible-engine.js.map +1 -0
  154. package/test/build/test-compatible-engines.d.ts +1 -0
  155. package/test/build/test-compatible-engines.js +112 -0
  156. package/test/build/test-compatible-engines.js.map +1 -0
  157. package/test/build/test-engine.d.ts +1 -0
  158. package/test/build/test-engine.js +97 -0
  159. package/test/build/test-engine.js.map +1 -0
  160. package/test/build/test-helpers.d.ts +46 -0
  161. package/test/build/test-helpers.js +45 -0
  162. package/test/build/test-helpers.js.map +1 -0
  163. package/test/build/test-native-engines.d.ts +1 -0
  164. package/test/build/test-native-engines.js +64 -0
  165. package/test/build/test-native-engines.js.map +1 -0
  166. package/test/build/test.d.ts +5 -0
  167. package/test/build/test.js +6 -0
  168. package/test/build/test.js.map +1 -0
  169. package/test/build/tsconfig.tsbuildinfo +1 -0
  170. package/test/src/test-codecs.ts +256 -0
  171. package/test/src/test-compatible-engine.ts +45 -0
  172. package/test/src/test-compatible-engines.ts +129 -0
  173. package/test/src/test-engine.ts +144 -0
  174. package/test/src/test-helpers.ts +53 -0
  175. package/test/src/test-native-engines.ts +75 -0
  176. package/test/src/test.ts +5 -0
  177. package/test/src/tsconfig.json +30 -0
  178. package/build/api-types/anthropic.d.ts +0 -29
  179. package/build/api-types/anthropic.js +0 -93
  180. package/build/api-types/anthropic.js.map +0 -1
  181. package/build/api-types/google.d.ts +0 -28
  182. package/build/api-types/google.js.map +0 -1
  183. package/build/api-types/openai-chat-completions.d.ts +0 -31
  184. package/build/api-types/openai-chat-completions.js +0 -113
  185. package/build/api-types/openai-chat-completions.js.map +0 -1
  186. package/build/api-types/openai-responses.d.ts +0 -23
  187. package/build/api-types/openai-responses.js +0 -71
  188. package/build/api-types/openai-responses.js.map +0 -1
  189. package/build/compatible-engine.d.ts +0 -51
  190. package/build/compatible-engine.js +0 -67
  191. package/build/compatible-engine.js.map +0 -1
  192. package/build/compatible-engines.d/aliyun.d.ts +0 -69
  193. package/build/compatible-engines.d/aliyun.js +0 -149
  194. package/build/compatible-engines.d/aliyun.js.map +0 -1
  195. package/build/compatible-engines.d/anthropic.d.ts +0 -78
  196. package/build/compatible-engines.d/anthropic.js +0 -312
  197. package/build/compatible-engines.d/anthropic.js.map +0 -1
  198. package/build/compatible-engines.d/google.d.ts +0 -83
  199. package/build/compatible-engines.d/google.js +0 -279
  200. package/build/compatible-engines.d/google.js.map +0 -1
  201. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.d.ts +0 -15
  202. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js +0 -75
  203. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js.map +0 -1
  204. package/build/compatible-engines.d/openai-chatcompletions.d/stream.d.ts +0 -21
  205. package/build/compatible-engines.d/openai-chatcompletions.d/stream.js.map +0 -1
  206. package/build/compatible-engines.d/openai-chatcompletions.d.ts +0 -27
  207. package/build/compatible-engines.d/openai-chatcompletions.js +0 -76
  208. package/build/compatible-engines.d/openai-chatcompletions.js.map +0 -1
  209. package/build/compatible-engines.d/openai-responses.d.ts +0 -93
  210. package/build/compatible-engines.d/openai-responses.js +0 -300
  211. package/build/compatible-engines.d/openai-responses.js.map +0 -1
  212. package/build/test.js +0 -198
  213. package/build/test.js.map +0 -1
  214. /package/{build/test.d.ts → test/build/test-codecs.d.ts} +0 -0
@@ -0,0 +1,78 @@
1
+ import { Function } from '#@/function.ts';
2
+ import { type GenericSession } from '#@/session.ts';
3
+ export interface Session<in out fdm extends Function.Declaration.Map> extends GenericSession<RoleMessage.User<fdm>, RoleMessage.Ai<fdm>, RoleMessage.Developer> {
4
+ }
5
+ export declare namespace Session {
6
+ type ChatMessage<fdm extends Function.Declaration.Map> = GenericSession.ChatMessage<RoleMessage.User<fdm>, RoleMessage.Ai<fdm>>;
7
+ }
8
+ export type RoleMessage = RoleMessage.Instance;
9
+ export declare namespace RoleMessage {
10
+ class SpecificMessageError extends Error {
11
+ constructor();
12
+ }
13
+ const NOMINAL: unique symbol;
14
+ abstract class Instance {
15
+ private readonly [NOMINAL];
16
+ abstract getText(): string;
17
+ abstract getOnlyText(): string;
18
+ }
19
+ namespace Part {
20
+ type Text = Text.Instance;
21
+ namespace Text {
22
+ function create(text: string): Text;
23
+ function paragraph(text: string): Text;
24
+ const NOMINAL: unique symbol;
25
+ class Instance {
26
+ text: string;
27
+ private readonly [NOMINAL];
28
+ constructor(text: string);
29
+ }
30
+ }
31
+ }
32
+ type Ai<fdm extends Function.Declaration.Map> = Ai.Instance<fdm>;
33
+ namespace Ai {
34
+ function create<fdm extends Function.Declaration.Map>(parts: RoleMessage.Ai.Part<fdm>[]): RoleMessage.Ai<fdm>;
35
+ const NOMINAL: unique symbol;
36
+ class Instance<in out fdm extends Function.Declaration.Map> extends RoleMessage.Instance {
37
+ protected parts: RoleMessage.Ai.Part<fdm>[];
38
+ readonly [NOMINAL]: void;
39
+ constructor(parts: RoleMessage.Ai.Part<fdm>[]);
40
+ getParts(): RoleMessage.Ai.Part<fdm>[];
41
+ getText(): string;
42
+ getOnlyText(): string;
43
+ getOnlyFunctionCall(): Function.Call.From<fdm>;
44
+ getFunctionCalls(): Function.Call.From<fdm>[];
45
+ }
46
+ type Part<fdm extends Function.Declaration.Map> = RoleMessage.Part.Text | Function.Call.From<fdm>;
47
+ }
48
+ type User<fdm extends Function.Declaration.Map> = User.Instance<fdm>;
49
+ namespace User {
50
+ function create<fdm extends Function.Declaration.Map>(parts: RoleMessage.User.Part<fdm>[]): RoleMessage.User<fdm>;
51
+ const NOMINAL: unique symbol;
52
+ class Instance<in out fdm extends Function.Declaration.Map> extends RoleMessage.Instance {
53
+ protected parts: RoleMessage.User.Part<fdm>[];
54
+ private readonly [NOMINAL];
55
+ constructor(parts: RoleMessage.User.Part<fdm>[]);
56
+ getParts(): RoleMessage.User.Part<fdm>[];
57
+ getText(): string;
58
+ getOnlyText(): string;
59
+ getFunctionResponses(): Function.Response.Distributive<fdm>[];
60
+ getOnlyFunctionResponse(): Function.Response.Distributive<fdm>;
61
+ }
62
+ type Part<fdm extends Function.Declaration.Map> = RoleMessage.Part.Text | Function.Response.Distributive<fdm>;
63
+ }
64
+ type Developer = Developer.Instance;
65
+ namespace Developer {
66
+ function create(parts: Developer.Part[]): Developer;
67
+ const NOMINAL: unique symbol;
68
+ class Instance extends RoleMessage.Instance {
69
+ protected parts: Developer.Part[];
70
+ private readonly [NOMINAL];
71
+ constructor(parts: Developer.Part[]);
72
+ getParts(): Developer.Part[];
73
+ getText(): string;
74
+ getOnlyText(): string;
75
+ }
76
+ type Part = Part.Text;
77
+ }
78
+ }
@@ -0,0 +1,138 @@
1
+ import { Function } from '#@/function.ts';
2
+ import {} from '#@/session.ts';
3
+ export var RoleMessage;
4
+ (function (RoleMessage) {
5
+ class SpecificMessageError extends Error {
6
+ constructor() {
7
+ super('This message is specific to a certain type of engines.');
8
+ }
9
+ }
10
+ RoleMessage.SpecificMessageError = SpecificMessageError;
11
+ RoleMessage.NOMINAL = Symbol();
12
+ class Instance {
13
+ }
14
+ RoleMessage.Instance = Instance;
15
+ let Part;
16
+ (function (Part) {
17
+ let Text;
18
+ (function (Text) {
19
+ function create(text) {
20
+ return new Instance(text);
21
+ }
22
+ Text.create = create;
23
+ function paragraph(text) {
24
+ return new Instance(text.trimEnd() + '\n\n');
25
+ }
26
+ Text.paragraph = paragraph;
27
+ Text.NOMINAL = Symbol();
28
+ class Instance {
29
+ text;
30
+ constructor(text) {
31
+ this.text = text;
32
+ }
33
+ }
34
+ Text.Instance = Instance;
35
+ })(Text = Part.Text || (Part.Text = {}));
36
+ })(Part = RoleMessage.Part || (RoleMessage.Part = {}));
37
+ let Ai;
38
+ (function (Ai) {
39
+ function create(parts) {
40
+ return new Instance(parts);
41
+ }
42
+ Ai.create = create;
43
+ Ai.NOMINAL = Symbol();
44
+ class Instance extends RoleMessage.Instance {
45
+ parts;
46
+ constructor(parts) {
47
+ super();
48
+ this.parts = parts;
49
+ }
50
+ getParts() {
51
+ return this.parts;
52
+ }
53
+ getText() {
54
+ return this.parts.filter(part => part instanceof RoleMessage.Part.Text.Instance).map(part => part.text).join('');
55
+ }
56
+ getOnlyText() {
57
+ if (this.parts.every(part => part instanceof RoleMessage.Part.Text.Instance)) { }
58
+ else
59
+ throw new Error();
60
+ return this.getText();
61
+ }
62
+ getOnlyFunctionCall() {
63
+ const fcs = this.getFunctionCalls();
64
+ if (fcs.length === 1) { }
65
+ else
66
+ throw new Error();
67
+ return fcs[0];
68
+ }
69
+ getFunctionCalls() {
70
+ return this.parts.filter(part => part instanceof Function.Call);
71
+ }
72
+ }
73
+ Ai.Instance = Instance;
74
+ })(Ai = RoleMessage.Ai || (RoleMessage.Ai = {}));
75
+ let User;
76
+ (function (User) {
77
+ function create(parts) {
78
+ return new Instance(parts);
79
+ }
80
+ User.create = create;
81
+ User.NOMINAL = Symbol();
82
+ class Instance extends RoleMessage.Instance {
83
+ parts;
84
+ constructor(parts) {
85
+ super();
86
+ this.parts = parts;
87
+ }
88
+ getParts() {
89
+ return this.parts;
90
+ }
91
+ getText() {
92
+ return this.parts.filter(part => part instanceof RoleMessage.Part.Text.Instance).map(part => part.text).join('');
93
+ }
94
+ getOnlyText() {
95
+ if (this.parts.every(part => part instanceof RoleMessage.Part.Text.Instance)) { }
96
+ else
97
+ throw new Error();
98
+ return this.getText();
99
+ }
100
+ getFunctionResponses() {
101
+ return this.parts.filter(part => part instanceof Function.Response);
102
+ }
103
+ getOnlyFunctionResponse() {
104
+ if (this.parts.length === 1 && this.parts[0] instanceof Function.Response) { }
105
+ else
106
+ throw new Error();
107
+ return this.parts[0];
108
+ }
109
+ }
110
+ User.Instance = Instance;
111
+ })(User = RoleMessage.User || (RoleMessage.User = {}));
112
+ let Developer;
113
+ (function (Developer) {
114
+ function create(parts) {
115
+ return new Instance(parts);
116
+ }
117
+ Developer.create = create;
118
+ Developer.NOMINAL = Symbol();
119
+ class Instance extends RoleMessage.Instance {
120
+ parts;
121
+ constructor(parts) {
122
+ super();
123
+ this.parts = parts;
124
+ }
125
+ getParts() {
126
+ return this.parts;
127
+ }
128
+ getText() {
129
+ return this.parts.map(part => part.text).join('');
130
+ }
131
+ getOnlyText() {
132
+ return this.getText();
133
+ }
134
+ }
135
+ Developer.Instance = Instance;
136
+ })(Developer = RoleMessage.Developer || (RoleMessage.Developer = {}));
137
+ })(RoleMessage || (RoleMessage = {}));
138
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/compatible/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Function } from '#@/function.ts';
2
+ export declare class ToolCallValidator<in out fdm extends Function.Declaration.Map> {
3
+ protected ctx: ToolCallValidator.Context<fdm>;
4
+ constructor(ctx: ToolCallValidator.Context<fdm>);
5
+ validate(toolCalls: Function.Call.From<fdm>[]): void;
6
+ }
7
+ export declare namespace ToolCallValidator {
8
+ interface Context<in out fdm extends Function.Declaration.Map> {
9
+ toolChoice: Function.ToolChoice<fdm>;
10
+ }
11
+ }
@@ -0,0 +1,12 @@
1
+ import { Function } from '#@/function.ts';
2
+ import { ResponseInvalid } from '#@/engine.ts';
3
+ export class ToolCallValidator {
4
+ ctx;
5
+ constructor(ctx) {
6
+ this.ctx = ctx;
7
+ }
8
+ validate(toolCalls) {
9
+ Function.Call.validate(toolCalls, this.ctx.toolChoice, new ResponseInvalid('Invalid function call', { cause: toolCalls }));
10
+ }
11
+ }
12
+ //# sourceMappingURL=tool-call-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-call-validator.js","sourceRoot":"","sources":["../../src/compatible/tool-call-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,OAAO,iBAAiB;IACG;IAA7B,YAA6B,GAAmC;QAAnC,QAAG,GAAH,GAAG,CAAgC;IAAG,CAAC;IAG7D,QAAQ,CACX,SAAoC;QAEpC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAClB,SAAS,EACT,IAAI,CAAC,GAAG,CAAC,UAAU,EACnB,IAAI,eAAe,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CACrE,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,11 @@
1
+ import { Function } from '#@/function.ts';
2
+ import { OpenAIChatCompletionsCompatibleStream } from '#@/compatible.d/openai-chatcompletions.d/stream.ts';
3
+ import OpenAI from 'openai';
4
+ export declare class AliyunTransport<in out fdm extends Function.Declaration.Map> extends OpenAIChatCompletionsCompatibleStream<fdm> {
5
+ protected getDeltaThoughts(delta: OpenAI.ChatCompletionChunk.Choice.Delta): string;
6
+ }
7
+ export declare namespace AliyunTransport {
8
+ interface ChatCompletionChunkChoiceDelta extends OpenAI.ChatCompletionChunk.Choice.Delta {
9
+ reasoning_content?: string;
10
+ }
11
+ }
@@ -0,0 +1,9 @@
1
+ import { Function } from '#@/function.ts';
2
+ import { OpenAIChatCompletionsCompatibleStream } from '#@/compatible.d/openai-chatcompletions.d/stream.ts';
3
+ import OpenAI from 'openai';
4
+ export class AliyunTransport extends OpenAIChatCompletionsCompatibleStream {
5
+ getDeltaThoughts(delta) {
6
+ return delta.reasoning_content ?? '';
7
+ }
8
+ }
9
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible.d/aliyun/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qCAAqC,EAAE,MAAM,oDAAoD,CAAC;AAC3G,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,OAAO,eAA6D,SACtE,qCAA0C;IAEvB,gBAAgB,CAAC,KAA8C;QAC9E,OAAQ,KAAwD,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC7F,CAAC;CAEJ"}
@@ -0,0 +1,31 @@
1
+ import { RoleMessage, type Session } from '#@/compatible/session.ts';
2
+ import { Function } from '#@/function.ts';
3
+ import Anthropic from '@anthropic-ai/sdk';
4
+ import type { AnthropicToolCodec } from '#@/api-types/anthropic/tool-codec.ts';
5
+ export declare class AnthropicCompatibleMessageCodec<in out fdm extends Function.Declaration.Map> {
6
+ protected ctx: AnthropicCompatibleMessageCodec.Context<fdm>;
7
+ constructor(ctx: AnthropicCompatibleMessageCodec.Context<fdm>);
8
+ convertFromUserMessage(userMessage: RoleMessage.User<fdm>): Anthropic.ContentBlockParam[];
9
+ convertFromAiMessage(aiMessage: RoleMessage.Ai<fdm>): Anthropic.ContentBlockParam[];
10
+ convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): Anthropic.TextBlockParam[];
11
+ convertFromChatMessage(chatMessage: Session.ChatMessage<fdm>): Anthropic.MessageParam;
12
+ convertToAiMessage(raw: Anthropic.ContentBlock[]): AnthropicCompatibleMessageCodec.Message.Ai<fdm>;
13
+ }
14
+ export declare namespace AnthropicCompatibleMessageCodec {
15
+ interface Context<in out fdm extends Function.Declaration.Map> {
16
+ toolCodec: AnthropicToolCodec<fdm>;
17
+ }
18
+ namespace Message {
19
+ type Ai<fdm extends Function.Declaration.Map> = Ai.Instance<fdm>;
20
+ namespace Ai {
21
+ function create<fdm extends Function.Declaration.Map>(parts: RoleMessage.Ai.Part<fdm>[], raw: Anthropic.ContentBlock[]): Ai<fdm>;
22
+ const NOMINAL: unique symbol;
23
+ class Instance<in out fdm extends Function.Declaration.Map> extends RoleMessage.Ai.Instance<fdm> {
24
+ protected raw: Anthropic.ContentBlock[];
25
+ readonly [NOMINAL]: void;
26
+ constructor(parts: RoleMessage.Ai.Part<fdm>[], raw: Anthropic.ContentBlock[]);
27
+ getRaw(): Anthropic.ContentBlock[];
28
+ }
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,88 @@
1
+ import { RoleMessage } from '#@/compatible/session.ts';
2
+ import { Function } from '#@/function.ts';
3
+ import Anthropic from '@anthropic-ai/sdk';
4
+ export class AnthropicCompatibleMessageCodec {
5
+ ctx;
6
+ constructor(ctx) {
7
+ this.ctx = ctx;
8
+ }
9
+ convertFromUserMessage(userMessage) {
10
+ return userMessage.getParts().map(part => {
11
+ if (part instanceof RoleMessage.Part.Text.Instance)
12
+ return {
13
+ type: 'text',
14
+ text: part.text,
15
+ };
16
+ else if (part instanceof Function.Response)
17
+ return this.ctx.toolCodec.convertFromFunctionResponse(part);
18
+ else
19
+ throw new Error();
20
+ });
21
+ }
22
+ convertFromAiMessage(aiMessage) {
23
+ if (aiMessage instanceof AnthropicCompatibleMessageCodec.Message.Ai.Instance)
24
+ return aiMessage.getRaw();
25
+ else {
26
+ return aiMessage.getParts().map(part => {
27
+ if (part instanceof RoleMessage.Part.Text.Instance)
28
+ return {
29
+ type: 'text',
30
+ text: part.text,
31
+ };
32
+ else if (part instanceof Function.Call)
33
+ return this.ctx.toolCodec.convertFromFunctionCall(part);
34
+ else
35
+ throw new Error();
36
+ });
37
+ }
38
+ }
39
+ convertFromDeveloperMessage(developerMessage) {
40
+ return developerMessage.getParts().map(part => ({ type: 'text', text: part.text }));
41
+ }
42
+ convertFromChatMessage(chatMessage) {
43
+ if (chatMessage instanceof RoleMessage.User.Instance)
44
+ return { role: 'user', content: this.convertFromUserMessage(chatMessage) };
45
+ else if (chatMessage instanceof RoleMessage.Ai.Instance)
46
+ return { role: 'assistant', content: this.convertFromAiMessage(chatMessage) };
47
+ else
48
+ throw new Error();
49
+ }
50
+ convertToAiMessage(raw) {
51
+ const parts = raw.flatMap((item) => {
52
+ if (item.type === 'text')
53
+ return [RoleMessage.Part.Text.create(item.text)];
54
+ else if (item.type === 'tool_use')
55
+ return [this.ctx.toolCodec.convertToFunctionCall(item)];
56
+ else if (item.type === 'thinking')
57
+ return [];
58
+ else
59
+ throw new Error();
60
+ });
61
+ return AnthropicCompatibleMessageCodec.Message.Ai.create(parts, raw);
62
+ }
63
+ }
64
+ (function (AnthropicCompatibleMessageCodec) {
65
+ let Message;
66
+ (function (Message) {
67
+ let Ai;
68
+ (function (Ai) {
69
+ function create(parts, raw) {
70
+ return new Instance(parts, raw);
71
+ }
72
+ Ai.create = create;
73
+ Ai.NOMINAL = Symbol();
74
+ class Instance extends RoleMessage.Ai.Instance {
75
+ raw;
76
+ constructor(parts, raw) {
77
+ super(parts);
78
+ this.raw = raw;
79
+ }
80
+ getRaw() {
81
+ return this.raw;
82
+ }
83
+ }
84
+ Ai.Instance = Instance;
85
+ })(Ai = Message.Ai || (Message.Ai = {}));
86
+ })(Message = AnthropicCompatibleMessageCodec.Message || (AnthropicCompatibleMessageCodec.Message = {}));
87
+ })(AnthropicCompatibleMessageCodec || (AnthropicCompatibleMessageCodec = {}));
88
+ //# sourceMappingURL=message-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible.d/anthropic/message-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { type InferenceParams, type ProviderSpec } from '#@/engine.ts';
2
+ import { RoleMessage, type Session } from '#@/compatible/session.ts';
3
+ import { Function } from '#@/function.ts';
4
+ import Anthropic from '@anthropic-ai/sdk';
5
+ import { type InferenceContext } from '#@/inference-context.ts';
6
+ import { Throttle } from '#@/throttle.ts';
7
+ import type { AnthropicCompatibleMessageCodec } from '#@/compatible.d/anthropic/message-codec.ts';
8
+ import type { AnthropicBilling } from '#@/api-types/anthropic/billing.ts';
9
+ import type { AnthropicToolCodec } from '#@/api-types/anthropic/tool-codec.ts';
10
+ import type { ToolCallValidator } from '#@/compatible/tool-call-validator.ts';
11
+ export declare class AnthropicCompatibleTransport<in out fdm extends Function.Declaration.Map> {
12
+ protected ctx: AnthropicCompatibleTransport.Context<fdm>;
13
+ protected client: Anthropic;
14
+ constructor(ctx: AnthropicCompatibleTransport.Context<fdm>);
15
+ protected makeParams(session: Session<fdm>): Anthropic.MessageCreateParamsStreaming;
16
+ fetch(wfctx: InferenceContext, session: Session<fdm>, signal?: AbortSignal): Promise<RoleMessage.Ai<fdm>>;
17
+ }
18
+ export declare namespace AnthropicCompatibleTransport {
19
+ interface Context<in out fdm extends Function.Declaration.Map> {
20
+ providerSpec: ProviderSpec;
21
+ inferenceSpec: InferenceParams;
22
+ fdm: fdm;
23
+ throttle: Throttle;
24
+ toolChoice: Function.ToolChoice<fdm>;
25
+ parallelToolCall: boolean;
26
+ messageCodec: AnthropicCompatibleMessageCodec<fdm>;
27
+ toolCodec: AnthropicToolCodec<fdm>;
28
+ billing: AnthropicBilling;
29
+ toolCallValidator: ToolCallValidator<fdm>;
30
+ }
31
+ }
@@ -0,0 +1,137 @@
1
+ import { ResponseInvalid } from '#@/engine.ts';
2
+ import { RoleMessage } from '#@/compatible/session.ts';
3
+ import { Function } from '#@/function.ts';
4
+ import Anthropic from '@anthropic-ai/sdk';
5
+ import {} from '#@/inference-context.ts';
6
+ import { Throttle } from '#@/throttle.ts';
7
+ import { logger } from '#@/telemetry.ts';
8
+ export class AnthropicCompatibleTransport {
9
+ ctx;
10
+ client;
11
+ constructor(ctx) {
12
+ this.ctx = ctx;
13
+ this.client = new Anthropic({
14
+ baseURL: this.ctx.providerSpec.baseUrl,
15
+ apiKey: this.ctx.providerSpec.apiKey,
16
+ fetchOptions: { dispatcher: this.ctx.providerSpec.proxyAgent },
17
+ });
18
+ }
19
+ makeParams(session) {
20
+ const tools = this.ctx.toolCodec.convertFromFunctionDeclarationMap(this.ctx.fdm);
21
+ return {
22
+ model: this.ctx.inferenceSpec.model,
23
+ stream: true,
24
+ messages: session.chatMessages.map(chatMessage => this.ctx.messageCodec.convertFromChatMessage(chatMessage)),
25
+ system: session.developerMessage && this.ctx.messageCodec.convertFromDeveloperMessage(session.developerMessage),
26
+ tools: tools.length ? tools : undefined,
27
+ tool_choice: tools.length ? this.ctx.toolCodec.convertFromToolChoice(this.ctx.toolChoice, this.ctx.parallelToolCall) : undefined,
28
+ max_tokens: this.ctx.inferenceSpec.maxTokens ?? 64 * 1024,
29
+ ...this.ctx.inferenceSpec.additionalOptions,
30
+ };
31
+ }
32
+ async fetch(wfctx, session, signal) {
33
+ const params = this.makeParams(session);
34
+ logger.message.trace(params);
35
+ await this.ctx.throttle.requests(wfctx);
36
+ const stream = this.client.messages.stream(params, { signal });
37
+ let response = null;
38
+ for await (const event of stream) {
39
+ if (event.type === 'message_start') {
40
+ logger.message.trace(event);
41
+ response = structuredClone(event.message);
42
+ }
43
+ else {
44
+ if (response) { }
45
+ else
46
+ throw new Error();
47
+ if (event.type === 'message_delta') {
48
+ logger.message.trace(event);
49
+ response.stop_sequence = event.delta.stop_sequence ?? response.stop_sequence;
50
+ response.stop_reason = event.delta.stop_reason ?? response.stop_reason;
51
+ response.usage.input_tokens = event.usage.input_tokens ?? response.usage.input_tokens;
52
+ response.usage.output_tokens = event.usage.output_tokens;
53
+ response.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens ?? response.usage.cache_read_input_tokens;
54
+ response.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens ?? response.usage.cache_creation_input_tokens;
55
+ response.usage.server_tool_use = event.usage.server_tool_use ?? response.usage.server_tool_use;
56
+ }
57
+ else if (event.type === 'message_stop') {
58
+ logger.message.trace(event);
59
+ }
60
+ else if (event.type === 'content_block_start') {
61
+ logger.message.trace(event);
62
+ const contentBlock = structuredClone(event.content_block);
63
+ response.content.push(contentBlock);
64
+ if (contentBlock.type === 'tool_use')
65
+ contentBlock.input = '';
66
+ }
67
+ else if (event.type === 'content_block_delta') {
68
+ const contentBlock = response.content[event.index];
69
+ if (event.delta.type === 'text_delta') {
70
+ logger.inference.debug(event.delta.text);
71
+ if (contentBlock?.type === 'text') { }
72
+ else
73
+ throw new Error();
74
+ contentBlock.text += event.delta.text;
75
+ }
76
+ else if (event.delta.type === 'thinking_delta') {
77
+ logger.inference.trace(event.delta.thinking);
78
+ if (contentBlock?.type === 'thinking') { }
79
+ else
80
+ throw new Error();
81
+ contentBlock.thinking += event.delta.thinking;
82
+ }
83
+ else if (event.delta.type === 'signature_delta') {
84
+ if (contentBlock?.type === 'thinking') { }
85
+ else
86
+ throw new Error();
87
+ contentBlock.signature += event.delta.signature;
88
+ }
89
+ else if (event.delta.type === 'input_json_delta') {
90
+ logger.inference.trace(event.delta.partial_json);
91
+ if (contentBlock?.type === 'tool_use') { }
92
+ else
93
+ throw new Error();
94
+ if (typeof contentBlock.input === 'string') { }
95
+ else
96
+ throw new Error();
97
+ contentBlock.input += event.delta.partial_json;
98
+ }
99
+ else
100
+ throw new Error('Unknown type of content block delta', { cause: event.delta });
101
+ }
102
+ else if (event.type === 'content_block_stop') {
103
+ const contentBlock = response.content[event.index];
104
+ if (contentBlock?.type === 'text')
105
+ logger.inference.debug('\n');
106
+ else if (contentBlock?.type === 'thinking')
107
+ logger.inference.trace('\n');
108
+ else if (contentBlock?.type === 'tool_use')
109
+ logger.inference.debug('\n');
110
+ logger.message.trace(event);
111
+ if (contentBlock?.type === 'tool_use') {
112
+ if (typeof contentBlock.input === 'string') { }
113
+ else
114
+ throw new Error();
115
+ logger.message.debug(contentBlock);
116
+ }
117
+ }
118
+ else
119
+ throw new Error('Unknown stream event', { cause: event });
120
+ }
121
+ }
122
+ if (response) { }
123
+ else
124
+ throw new Error();
125
+ if (response.stop_reason === 'max_tokens')
126
+ throw new ResponseInvalid('Token limit exceeded.', { cause: response });
127
+ if (response.stop_reason === 'end_turn' || response.stop_reason === 'tool_use') { }
128
+ else
129
+ throw new ResponseInvalid('Abnormal stop reason', { cause: response });
130
+ logger.message.debug(response.usage);
131
+ wfctx.cost?.(this.ctx.billing.charge(response.usage));
132
+ const aiMessage = this.ctx.messageCodec.convertToAiMessage(response.content);
133
+ this.ctx.toolCallValidator.validate(aiMessage.getFunctionCalls());
134
+ return aiMessage;
135
+ }
136
+ }
137
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible.d/anthropic/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { RoleMessage, type Session } from '#@/compatible/session.ts';
2
+ import { Function } from '#@/function.ts';
3
+ import * as Google from '@google/genai';
4
+ import { type GoogleToolCodec } from '#@/api-types/google/tool-codec.ts';
5
+ export declare class GoogleCompatibleMessageCodec<fdm extends Function.Declaration.Map> {
6
+ protected ctx: GoogleCompatibleMessageCodec.Context<fdm>;
7
+ constructor(ctx: GoogleCompatibleMessageCodec.Context<fdm>);
8
+ convertFromAiMessage(aiMessage: RoleMessage.Ai<fdm>): Google.Content;
9
+ convertFromChatMessages(chatMessages: Session.ChatMessage<fdm>[]): Google.Content[];
10
+ convertFromUserMessage(userMessage: RoleMessage.User<fdm>): Google.Content;
11
+ convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): Google.Content;
12
+ convertToAiMessage(content: Google.Content): GoogleCompatibleMessageCodec.Message.Ai<fdm>;
13
+ }
14
+ export declare namespace GoogleCompatibleMessageCodec {
15
+ interface Context<fdm extends Function.Declaration.Map> {
16
+ toolCodec: GoogleToolCodec<fdm>;
17
+ }
18
+ namespace Message {
19
+ type Ai<fdm extends Function.Declaration.Map> = Ai.Instance<fdm>;
20
+ namespace Ai {
21
+ function create<fdm extends Function.Declaration.Map>(parts: RoleMessage.Ai.Part<fdm>[], raw: Google.Content): Ai<fdm>;
22
+ const NOMINAL: unique symbol;
23
+ class Instance<in out fdm extends Function.Declaration.Map> extends RoleMessage.Ai.Instance<fdm> {
24
+ protected raw: Google.Content;
25
+ readonly [NOMINAL]: void;
26
+ constructor(parts: RoleMessage.Ai.Part<fdm>[], raw: Google.Content);
27
+ getRaw(): Google.Content;
28
+ }
29
+ }
30
+ }
31
+ }