@zimtsui/typechat 0.0.93 → 0.0.95

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 (164) hide show
  1. package/DEVELOPMENT.md +0 -6
  2. package/README.md +26 -36
  3. package/assets/verbatim/instruction.md +27 -25
  4. package/assets/verbatim/quotation.handlebars +1 -1
  5. package/assets/verbatim/system.handlebars +1 -0
  6. package/build/adaptor.d.ts +5 -23
  7. package/build/adaptor.js +14 -25
  8. package/build/adaptor.js.map +1 -1
  9. package/build/api-types/anthropic/billing.d.ts +3 -3
  10. package/build/api-types/anthropic/billing.js +6 -6
  11. package/build/api-types/anthropic/billing.js.map +1 -1
  12. package/build/api-types/anthropic/tool-codec.d.ts +3 -3
  13. package/build/api-types/anthropic/tool-codec.js +15 -11
  14. package/build/api-types/anthropic/tool-codec.js.map +1 -1
  15. package/build/api-types/google/billing.d.ts +3 -3
  16. package/build/api-types/google/billing.js +7 -7
  17. package/build/api-types/google/billing.js.map +1 -1
  18. package/build/api-types/google/tool-codec.d.ts +3 -3
  19. package/build/api-types/google/tool-codec.js +16 -34
  20. package/build/api-types/google/tool-codec.js.map +1 -1
  21. package/build/api-types/openai-chatcompletions/billing.d.ts +5 -5
  22. package/build/api-types/openai-chatcompletions/billing.js +7 -7
  23. package/build/api-types/openai-chatcompletions/billing.js.map +1 -1
  24. package/build/api-types/openai-chatcompletions/tool-codec.d.ts +5 -5
  25. package/build/api-types/openai-chatcompletions/tool-codec.js +17 -13
  26. package/build/api-types/openai-chatcompletions/tool-codec.js.map +1 -1
  27. package/build/api-types/openai-responses/billing.d.ts +3 -3
  28. package/build/api-types/openai-responses/billing.js +6 -6
  29. package/build/api-types/openai-responses/billing.js.map +1 -1
  30. package/build/api-types/openai-responses/tool-codec.d.ts +3 -3
  31. package/build/api-types/openai-responses/tool-codec.js +16 -12
  32. package/build/api-types/openai-responses/tool-codec.js.map +1 -1
  33. package/build/assets.d.ts +1 -1
  34. package/build/assets.js +6 -5
  35. package/build/assets.js.map +1 -1
  36. package/build/compatible-engine/session.d.ts +4 -16
  37. package/build/compatible-engine/session.js +8 -15
  38. package/build/compatible-engine/session.js.map +1 -1
  39. package/build/compatible-engine/validation.d.ts +7 -7
  40. package/build/compatible-engine/validation.js +33 -34
  41. package/build/compatible-engine/validation.js.map +1 -1
  42. package/build/compatible-engine.d/anthropic/message-codec.d.ts +4 -3
  43. package/build/compatible-engine.d/anthropic/message-codec.js +16 -22
  44. package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -1
  45. package/build/compatible-engine.d/anthropic/transport.d.ts +10 -3
  46. package/build/compatible-engine.d/anthropic/transport.js +105 -101
  47. package/build/compatible-engine.d/anthropic/transport.js.map +1 -1
  48. package/build/compatible-engine.d/anthropic.d.ts +2 -0
  49. package/build/compatible-engine.d/anthropic.js +9 -1
  50. package/build/compatible-engine.d/anthropic.js.map +1 -1
  51. package/build/compatible-engine.d/google/message-codec.d.ts +4 -3
  52. package/build/compatible-engine.d/google/message-codec.js +16 -22
  53. package/build/compatible-engine.d/google/message-codec.js.map +1 -1
  54. package/build/compatible-engine.d/google/transport.d.ts +10 -3
  55. package/build/compatible-engine.d/google/transport.js +32 -24
  56. package/build/compatible-engine.d/google/transport.js.map +1 -1
  57. package/build/compatible-engine.d/google.d.ts +2 -0
  58. package/build/compatible-engine.d/google.js +23 -2
  59. package/build/compatible-engine.d/google.js.map +1 -1
  60. package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +6 -5
  61. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +17 -24
  62. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -1
  63. package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +33 -3
  64. package/build/compatible-engine.d/openai-chatcompletions/transport.js +182 -6
  65. package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -1
  66. package/build/compatible-engine.d/openai-chatcompletions.d.ts +10 -2
  67. package/build/compatible-engine.d/openai-chatcompletions.js +35 -0
  68. package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -1
  69. package/build/compatible-engine.d/openai-responses/message-codec.d.ts +4 -6
  70. package/build/compatible-engine.d/openai-responses/message-codec.js +70 -74
  71. package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -1
  72. package/build/compatible-engine.d/openai-responses/transport.d.ts +14 -8
  73. package/build/compatible-engine.d/openai-responses/transport.js +64 -64
  74. package/build/compatible-engine.d/openai-responses/transport.js.map +1 -1
  75. package/build/compatible-engine.d/openai-responses.d.ts +2 -0
  76. package/build/compatible-engine.d/openai-responses.js +10 -2
  77. package/build/compatible-engine.d/openai-responses.js.map +1 -1
  78. package/build/compatible-engine.d.ts +2 -1
  79. package/build/compatible-engine.js +3 -3
  80. package/build/compatible-engine.js.map +1 -1
  81. package/build/config.d.ts +17 -19
  82. package/build/config.js +2 -4
  83. package/build/config.js.map +1 -1
  84. package/build/endpoint-spec.d.ts +15 -15
  85. package/build/endpoint-spec.js +2 -2
  86. package/build/endpoint-spec.js.map +1 -1
  87. package/build/engine/session.d.ts +31 -0
  88. package/build/engine/session.js +19 -0
  89. package/build/engine/session.js.map +1 -1
  90. package/build/engine/validation.d.ts +1 -7
  91. package/build/engine.d.ts +37 -20
  92. package/build/engine.js +154 -87
  93. package/build/engine.js.map +1 -1
  94. package/build/function.d.ts +1 -1
  95. package/build/native-engines.d/google/message-codec.d.ts +6 -3
  96. package/build/native-engines.d/google/message-codec.js +23 -27
  97. package/build/native-engines.d/google/message-codec.js.map +1 -1
  98. package/build/native-engines.d/google/transport.d.ts +13 -3
  99. package/build/native-engines.d/google/transport.js +41 -27
  100. package/build/native-engines.d/google/transport.js.map +1 -1
  101. package/build/native-engines.d/google/validation.d.ts +5 -6
  102. package/build/native-engines.d/google/validation.js +3 -6
  103. package/build/native-engines.d/google/validation.js.map +1 -1
  104. package/build/native-engines.d/google.d.ts +2 -2
  105. package/build/native-engines.d/google.js +22 -4
  106. package/build/native-engines.d/google.js.map +1 -1
  107. package/build/native-engines.d/openai-responses/choice-codec.d.ts +1 -1
  108. package/build/native-engines.d/openai-responses/choice-codec.js +12 -12
  109. package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -1
  110. package/build/native-engines.d/openai-responses/message-codec.d.ts +5 -3
  111. package/build/native-engines.d/openai-responses/message-codec.js +59 -48
  112. package/build/native-engines.d/openai-responses/message-codec.js.map +1 -1
  113. package/build/native-engines.d/openai-responses/transport.d.ts +14 -6
  114. package/build/native-engines.d/openai-responses/transport.js +56 -54
  115. package/build/native-engines.d/openai-responses/transport.js.map +1 -1
  116. package/build/native-engines.d/openai-responses/validation.d.ts +7 -7
  117. package/build/native-engines.d/openai-responses/validation.js +31 -32
  118. package/build/native-engines.d/openai-responses/validation.js.map +1 -1
  119. package/build/native-engines.d/openai-responses.d.ts +2 -2
  120. package/build/native-engines.d/openai-responses.js +9 -4
  121. package/build/native-engines.d/openai-responses.js.map +1 -1
  122. package/build/repetition.d.ts +2 -1
  123. package/build/repetition.js +7 -42
  124. package/build/repetition.js.map +1 -1
  125. package/build/telemetry.d.ts +1 -0
  126. package/build/telemetry.js +1 -0
  127. package/build/telemetry.js.map +1 -1
  128. package/build/tsconfig.tsbuildinfo +1 -1
  129. package/build/verbatim/codec/declarations.d.ts +0 -1
  130. package/build/verbatim/codec/declarations.js +1 -2
  131. package/build/verbatim/codec/declarations.js.map +1 -1
  132. package/build/verbatim/codec/helpers.d.ts +2 -0
  133. package/build/verbatim/codec/{escape.js → helpers.js} +5 -1
  134. package/build/verbatim/codec/helpers.js.map +1 -0
  135. package/build/verbatim/codec/quotation.d.ts +1 -2
  136. package/build/verbatim/codec/quotation.js +3 -4
  137. package/build/verbatim/codec/quotation.js.map +1 -1
  138. package/build/verbatim/codec/response.d.ts +0 -1
  139. package/build/verbatim/codec/response.js +1 -2
  140. package/build/verbatim/codec/response.js.map +1 -1
  141. package/build/verbatim/codec/{meta.d.ts → system.d.ts} +0 -1
  142. package/build/verbatim/codec/system.js +7 -0
  143. package/build/verbatim/codec/system.js.map +1 -0
  144. package/build/verbatim/codec.d.ts +1 -1
  145. package/build/verbatim/codec.js +1 -1
  146. package/build/verbatim/codec.js.map +1 -1
  147. package/package.json +8 -9
  148. package/assets/verbatim/meta.handlebars +0 -1
  149. package/build/compatible-engine.d/aliyun/transport.d.ts +0 -12
  150. package/build/compatible-engine.d/aliyun/transport.js +0 -7
  151. package/build/compatible-engine.d/aliyun/transport.js.map +0 -1
  152. package/build/compatible-engine.d/aliyun.d.ts +0 -21
  153. package/build/compatible-engine.d/aliyun.js +0 -38
  154. package/build/compatible-engine.d/aliyun.js.map +0 -1
  155. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +0 -31
  156. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js +0 -88
  157. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +0 -1
  158. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +0 -34
  159. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +0 -190
  160. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +0 -1
  161. package/build/verbatim/codec/escape.d.ts +0 -1
  162. package/build/verbatim/codec/escape.js.map +0 -1
  163. package/build/verbatim/codec/meta.js +0 -8
  164. package/build/verbatim/codec/meta.js.map +0 -1
package/build/engine.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Agent, ProxyAgent } from 'undici';
2
2
  import { env } from 'node:process';
3
3
  import { loggers } from "./telemetry.js";
4
+ import * as SessionModule from "./engine/session.js";
4
5
  export var Engine;
5
6
  (function (Engine) {
6
7
  class Instance {
@@ -12,138 +13,204 @@ export var Engine;
12
13
  vdm;
13
14
  throttle;
14
15
  constructor(options) {
15
- const proxyUrl = options.proxy || env.https_proxy || env.HTTPS_PROXY;
16
+ const proxyUrl = options.endpointSpec.proxy || env.https_proxy || env.HTTPS_PROXY;
16
17
  const dispatcher = proxyUrl
17
18
  ? new ProxyAgent({
18
19
  uri: proxyUrl,
19
- headersTimeout: 0,
20
+ headersTimeout: 10000,
20
21
  bodyTimeout: 0,
21
22
  })
22
23
  : new Agent({
23
- headersTimeout: 0,
24
+ headersTimeout: 10000,
24
25
  bodyTimeout: 0,
25
26
  });
26
27
  this.providerSpec = {
27
- baseUrl: options.baseUrl,
28
- apiKey: options.apiKey,
28
+ baseUrl: options.endpointSpec.baseUrl,
29
+ apiKey: options.endpointSpec.apiKey,
29
30
  dispatcher,
31
+ retry: options.providerRetry ?? 2,
30
32
  };
31
- this.name = options.name;
33
+ this.name = options.endpointSpec.name;
32
34
  this.inferenceParams = {
33
- model: options.model,
34
- additionalOptions: options.additionalOptions,
35
- timeout: options.timeout,
36
- parallelToolCall: options.parallelToolCall,
37
- retry: options.retry ?? 3,
35
+ model: options.endpointSpec.model,
36
+ additionalOptions: options.endpointSpec.additionalOptions,
37
+ timeout: options.endpointSpec.timeout,
38
+ parallelToolCall: options.endpointSpec.parallelToolCall,
39
+ retry: options.inferenceRetry ?? 2,
38
40
  };
39
41
  this.pricing = {
40
- inputPrice: options.inputPrice ?? 0,
41
- outputPrice: options.outputPrice ?? 0,
42
- cachePrice: options.cachePrice ?? options.inputPrice ?? 0,
42
+ inputPrice: options.endpointSpec.inputPrice ?? 0,
43
+ outputPrice: options.endpointSpec.outputPrice ?? 0,
44
+ cachePrice: options.endpointSpec.cachePrice ?? options.endpointSpec.inputPrice ?? 0,
43
45
  };
44
46
  this.fdm = options.functionDeclarationMap;
45
47
  this.vdm = options.verbatimDeclarationMap;
46
48
  this.throttle = options.throttle;
47
49
  }
48
- async infer(wfctx, session, signal) {
49
- const aiMessage = await this.transport.fetch(wfctx, session, signal);
50
- this.partsValidator.validate(aiMessage);
51
- return aiMessage;
50
+ /**
51
+ * @throws {@link SyntaxError} 模型抽风
52
+ * @throws {@link Recoverable} 模型抽风但可恢复
53
+ * @throws {@link TypeError} 网络故障
54
+ */
55
+ async infer(wfctx, session) {
56
+ const signalTimeout = this.inferenceParams.timeout ? AbortSignal.timeout(this.inferenceParams.timeout) : null;
57
+ const signals = [];
58
+ if (signalTimeout)
59
+ signals.push(signalTimeout);
60
+ if (wfctx.signal)
61
+ signals.push(wfctx.signal);
62
+ const signal = AbortSignal.any(signals);
63
+ try {
64
+ const aiMessage = await this.transport.fetch(wfctx, session, signal);
65
+ this.partsValidator.validate(aiMessage);
66
+ const rejection = this.structuringValidator.validate(aiMessage);
67
+ if (rejection)
68
+ throw new Recoverable(aiMessage, rejection);
69
+ return aiMessage;
70
+ }
71
+ catch (e) {
72
+ if (signalTimeout?.aborted)
73
+ throw new InferenceTimeout(undefined, { cause: e });
74
+ else
75
+ throw e;
76
+ }
52
77
  }
53
78
  /**
54
79
  * @throws {@link InferenceTimeout} 推理超时
55
- * @throws {@link ResponseInvalid} 模型抽风
56
- * @throws {@link NetworkError} 网络故障
57
- * @throws {@link CustomRetry} 自定义重试
80
+ * @throws {@link SyntaxError} 模型抽风
81
+ * @throws {@link TypeError} 网络故障
58
82
  */
59
- async stateless(wfctx, session, validate = () => Promise.resolve(true)) {
60
- for (let retry = 0;; retry++) {
61
- const signalTimeout = this.inferenceParams.timeout ? AbortSignal.timeout(this.inferenceParams.timeout) : undefined;
62
- const signals = [];
63
- if (signalTimeout)
64
- signals.push(signalTimeout);
65
- if (wfctx.signal)
66
- signals.push(wfctx.signal);
67
- const signal = AbortSignal.any(signals);
83
+ async stateless(wfctx, session) {
84
+ const middleware = this.compose(this.middlewares);
85
+ for (let retryProvider = 0, retryInference = 0;;)
68
86
  try {
69
- const response = await this.infer(wfctx, session, signal);
70
- const rejection = this.structuringValidator.validate(response);
71
- if (rejection)
72
- throw new ResponseInvalid.Recoverable();
73
- if (await validate(response)) { }
74
- else
75
- throw new CustomRetry(undefined, { cause: response });
76
- return response;
87
+ const next = () => this.infer(wfctx, session);
88
+ return await middleware(wfctx, session, next);
77
89
  }
78
90
  catch (e) {
79
- if (signalTimeout?.aborted)
80
- e = new InferenceTimeout(undefined, { cause: e }); // 推理超时
81
- else if (e instanceof ResponseInvalid) { } // 模型抽风
82
- else if (e instanceof NetworkError) { } // 网络故障
83
- else if (e instanceof CustomRetry) { } // 自定义重试
84
- else
85
- throw e;
86
- if (retry < this.inferenceParams.retry)
91
+ if (e instanceof InferenceTimeout) { // 推理超时
92
+ if (retryInference < this.inferenceParams.retry) { }
93
+ else
94
+ throw e;
87
95
  loggers.message.warn(e);
96
+ retryInference++;
97
+ }
98
+ else if (e instanceof SyntaxError) { // 模型抽风
99
+ if (retryInference < this.inferenceParams.retry) { }
100
+ else
101
+ throw e;
102
+ loggers.message.warn(e);
103
+ retryInference++;
104
+ }
105
+ else if (e instanceof TypeError) { // 网络故障
106
+ if (retryProvider < this.providerSpec.retry) { }
107
+ else
108
+ throw e;
109
+ loggers.message.warn(e);
110
+ retryProvider++;
111
+ }
88
112
  else
89
113
  throw e;
90
114
  }
91
- }
92
115
  }
93
116
  /**
117
+ * @throws {@link InferenceTimeout} 推理超时
118
+ * @throws {@link SyntaxError} 模型抽风
119
+ * @throws {@link TypeError} 网络故障
94
120
  * @param session mutable
95
121
  */
96
- async stateful(wfctx, session, validate = () => Promise.resolve(true)) {
97
- for (let retry = 0;; retry++) {
98
- const signalTimeout = this.inferenceParams.timeout ? AbortSignal.timeout(this.inferenceParams.timeout) : undefined;
99
- const signals = [];
100
- if (signalTimeout)
101
- signals.push(signalTimeout);
102
- if (wfctx.signal)
103
- signals.push(wfctx.signal);
104
- const signal = AbortSignal.any(signals);
122
+ async stateful(wfctx, session) {
123
+ const middleware = this.compose(this.middlewares);
124
+ const statefulMiddleware = this.compose(this.statefulMiddlewares);
125
+ for (let retryProvider = 0, retryInference = 0;;)
105
126
  try {
106
- const response = await this.infer(wfctx, session, signal);
107
- const rejection = this.structuringValidator.validate(response);
108
- if (rejection) {
109
- session.chatMessages.push(response, rejection);
110
- throw new ResponseInvalid.Recoverable();
111
- }
112
- if (await validate(response)) { }
113
- else
114
- throw new CustomRetry(undefined, { cause: response });
115
- session.chatMessages.push(response);
116
- return response;
127
+ const next = () => this.infer(wfctx, session);
128
+ const statefulNext = async () => {
129
+ const aiMessage = await middleware(wfctx, session, next);
130
+ session.chatMessages.push(aiMessage);
131
+ return aiMessage;
132
+ };
133
+ return await statefulMiddleware(wfctx, session, statefulNext);
117
134
  }
118
135
  catch (e) {
119
- if (signalTimeout?.aborted)
120
- e = new InferenceTimeout(undefined, { cause: e }); // 推理超时
121
- else if (e instanceof ResponseInvalid) { } // 模型抽风
122
- else if (e instanceof NetworkError) { } // 网络故障
123
- else if (e instanceof CustomRetry) { } // 自定义重试
124
- else
125
- throw e;
126
- if (retry < this.inferenceParams.retry) { }
136
+ if (e instanceof InferenceTimeout) { // 推理超时
137
+ if (retryInference < this.inferenceParams.retry) { }
138
+ else
139
+ throw e;
140
+ loggers.message.warn(e);
141
+ retryInference++;
142
+ }
143
+ else if (e instanceof SyntaxError) { // 模型抽风
144
+ if (retryInference < this.inferenceParams.retry) { }
145
+ else
146
+ throw e;
147
+ loggers.message.warn(e);
148
+ retryInference++;
149
+ }
150
+ else if (e instanceof TypeError) { // 网络故障
151
+ if (retryProvider < this.providerSpec.retry) { }
152
+ else
153
+ throw e;
154
+ loggers.message.warn(e);
155
+ retryProvider++;
156
+ }
127
157
  else
128
158
  throw e;
129
- loggers.message.warn(e);
130
159
  }
131
- }
160
+ }
161
+ middlewares = [];
162
+ use(middleware) {
163
+ const engine = this.clone();
164
+ engine.middlewares.push(middleware);
165
+ return engine;
166
+ }
167
+ statefulMiddlewares = [];
168
+ statefulUse(middleware) {
169
+ const engine = this.clone();
170
+ engine.statefulMiddlewares.push(middleware);
171
+ return engine;
172
+ }
173
+ compose(middlewares, i = 0) {
174
+ if (i < middlewares.length)
175
+ return async (wfctx, session, next) => {
176
+ const middleware = middlewares[i];
177
+ const nextMiddlewares = this.compose(middlewares, i + 1);
178
+ return middleware(wfctx, session, () => nextMiddlewares(wfctx, session, next));
179
+ };
180
+ else
181
+ return (wfctx, session, next) => next();
132
182
  }
133
183
  }
134
184
  Engine.Instance = Instance;
185
+ Engine.RoleMessage = SessionModule.RoleMessage;
135
186
  })(Engine || (Engine = {}));
136
187
  export class InferenceTimeout extends Error {
137
188
  }
138
- export class NetworkError extends Error {
139
- }
140
- export class CustomRetry extends Error {
141
- }
142
- export class ResponseInvalid extends Error {
143
- }
144
- (function (ResponseInvalid) {
145
- class Recoverable extends ResponseInvalid {
189
+ export class Recoverable extends SyntaxError {
190
+ response;
191
+ rejection;
192
+ constructor(response, rejection, ...rest) {
193
+ super(...rest);
194
+ this.response = response;
195
+ this.rejection = rejection;
196
+ }
197
+ resume() {
198
+ return this.response;
199
+ }
200
+ recover() {
201
+ return this.rejection;
146
202
  }
147
- ResponseInvalid.Recoverable = Recoverable;
148
- })(ResponseInvalid || (ResponseInvalid = {}));
203
+ static async recover(wfctx, session, next) {
204
+ try {
205
+ return await next();
206
+ }
207
+ catch (e) {
208
+ if (e instanceof Recoverable) { }
209
+ else
210
+ throw e;
211
+ session.chatMessages.push(e.resume(), e.recover());
212
+ throw e;
213
+ }
214
+ }
215
+ }
149
216
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type Static, type TObject, type TSchema } from '@sinclair/typebox';
1
+ import { type Static, type TObject, type TSchema } from 'typebox';
2
2
  declare const NOMINAL: unique symbol;
3
3
  export interface Function<in out fd extends Function.Decl.Proto> {
4
4
  (params: Static<fd['parameters']>): Promise<string>;
@@ -5,8 +5,11 @@ import { MessageCodec as CompatibleMessageCodec } from '../../compatible-engine.
5
5
  import type { ToolCodec } from '../../api-types/google/tool-codec.ts';
6
6
  import { Verbatim } from '../../verbatim.ts';
7
7
  export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
8
- protected ctx: MessageCodec.Context<fdm, vdm>;
9
- constructor(ctx: MessageCodec.Context<fdm, vdm>);
8
+ protected toolCodec: ToolCodec<fdm>;
9
+ protected compatibleMessageCodec: CompatibleMessageCodec<fdm, vdm>;
10
+ protected codeExecution: boolean;
11
+ protected vdm: vdm;
12
+ constructor(options: MessageCodec.Options<fdm, vdm>);
10
13
  encodeAiMessage(aiMessage: RoleMessage.Ai.From<fdm, vdm>): Google.Content;
11
14
  encodeUserMessage(userMessage: RoleMessage.User.From<fdm>): Google.Content;
12
15
  encodeDeveloperMessage(developerMessage: RoleMessage.Developer): Google.Content;
@@ -14,7 +17,7 @@ export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in
14
17
  decodeAiMessage(content: Google.Content): RoleMessage.Ai.From<fdm, vdm>;
15
18
  }
16
19
  export declare namespace MessageCodec {
17
- interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
20
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
18
21
  toolCodec: ToolCodec<fdm>;
19
22
  compatibleMessageCodec: CompatibleMessageCodec<fdm, vdm>;
20
23
  codeExecution: boolean;
@@ -1,19 +1,24 @@
1
- import { ResponseInvalid } from "../../engine.js";
2
1
  import { RoleMessage } from "./session.js";
3
2
  import * as VerbatimCodec from "../../verbatim/codec.js";
4
3
  export class MessageCodec {
5
- ctx;
6
- constructor(ctx) {
7
- this.ctx = ctx;
4
+ toolCodec;
5
+ compatibleMessageCodec;
6
+ codeExecution;
7
+ vdm;
8
+ constructor(options) {
9
+ this.toolCodec = options.toolCodec;
10
+ this.compatibleMessageCodec = options.compatibleMessageCodec;
11
+ this.codeExecution = options.codeExecution;
12
+ this.vdm = options.vdm;
8
13
  }
9
14
  encodeAiMessage(aiMessage) {
10
15
  return aiMessage.getRaw();
11
16
  }
12
17
  encodeUserMessage(userMessage) {
13
- return this.ctx.compatibleMessageCodec.encodeUserMessage(userMessage);
18
+ return this.compatibleMessageCodec.encodeUserMessage(userMessage);
14
19
  }
15
20
  encodeDeveloperMessage(developerMessage) {
16
- return this.ctx.compatibleMessageCodec.encodeDeveloperMessage(developerMessage);
21
+ return this.compatibleMessageCodec.encodeDeveloperMessage(developerMessage);
17
22
  }
18
23
  encodeChatMessages(chatMessages) {
19
24
  return chatMessages.map(chatMessage => {
@@ -29,26 +34,18 @@ export class MessageCodec {
29
34
  if (content.parts) { }
30
35
  else
31
36
  throw new Error();
32
- const parts = content.parts.flatMap(part => {
33
- const parts = [];
34
- if (part.text)
35
- try {
36
- const vrs = VerbatimCodec.Request.decode(part.text, this.ctx.vdm);
37
- parts.push(new RoleMessage.Part.Text(part.text, vrs));
38
- }
39
- catch (e) {
40
- if (e instanceof SyntaxError)
41
- throw new ResponseInvalid('Invalid verbatim message', { cause: content });
42
- else
43
- throw e;
44
- }
45
- if (part.functionCall) {
46
- parts.push(this.ctx.toolCodec.decodeFunctionCall(part.functionCall));
37
+ const parts = [];
38
+ for (const part of content.parts) {
39
+ if (part.text) {
40
+ const vrs = VerbatimCodec.Request.decode(part.text, this.vdm);
41
+ parts.push(new RoleMessage.Part.Text(part.text, vrs));
47
42
  }
43
+ if (part.functionCall)
44
+ parts.push(this.toolCodec.decodeFunctionCall(part.functionCall));
48
45
  if (part.executableCode) {
49
- if (this.ctx.codeExecution) { }
46
+ if (this.codeExecution) { }
50
47
  else
51
- throw new ResponseInvalid('Unexpected code execution', { cause: content });
48
+ throw new SyntaxError('Unexpected code execution', { cause: content });
52
49
  if (part.executableCode.code) { }
53
50
  else
54
51
  throw new Error();
@@ -58,16 +55,15 @@ export class MessageCodec {
58
55
  parts.push(new RoleMessage.Ai.Part.ExecutableCode(part.executableCode.code, part.executableCode.language));
59
56
  }
60
57
  if (part.codeExecutionResult) {
61
- if (this.ctx.codeExecution) { }
58
+ if (this.codeExecution) { }
62
59
  else
63
- throw new ResponseInvalid('Unexpected code execution result', { cause: content });
60
+ throw new SyntaxError('Unexpected code execution result', { cause: content });
64
61
  if (part.codeExecutionResult.outcome) { }
65
62
  else
66
63
  throw new Error();
67
64
  parts.push(new RoleMessage.Ai.Part.CodeExecutionResult(part.codeExecutionResult.outcome, part.codeExecutionResult.output));
68
65
  }
69
- return parts;
70
- });
66
+ }
71
67
  return new RoleMessage.Ai(parts, content);
72
68
  }
73
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/native-engines.d/google/message-codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/native-engines.d/google/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AAMzD,OAAO,KAAK,aAAa,MAAM,yBAAyB,CAAC;AAIzD,MAAM,OAAO,YAAY;IAIX,SAAS,CAAiB;IAC1B,sBAAsB,CAAmC;IACzD,aAAa,CAAU;IACvB,GAAG,CAAM;IACnB,YAAmB,OAAuC;QACtD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAC3B,CAAC;IAGM,eAAe,CAClB,SAAwC;QAExC,OAAO,SAAS,CAAC,MAAM,EAAE,CAAC;IAC9B,CAAC;IAEM,iBAAiB,CACpB,WAAuC;QAEvC,OAAO,IAAI,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IACtE,CAAC;IAEM,sBAAsB,CACzB,gBAAuC;QAEvC,OAAO,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;IAChF,CAAC;IAEM,kBAAkB,CACrB,YAAkD;QAElD,OAAO,YAAY,CAAC,GAAG,CACnB,WAAW,CAAC,EAAE;YACV,IAAI,WAAW,YAAY,WAAW,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;iBACnF,IAAI,WAAW,YAAY,WAAW,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;;gBACpF,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,CAAC,CACJ,CAAC;IACN,CAAC;IAEM,eAAe,CAClB,OAAuB;QAEvB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAyC,EAAE,CAAC;QACvD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACZ,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,IAAI,CAAC,YAAY;gBACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACrE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,WAAW,CAAC,2BAA2B,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvG,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBACxD,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/G,CAAC;YACD,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,WAAW,CAAC,kCAAkC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC9G,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/H,CAAC;QACL,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACJ"}
@@ -10,13 +10,23 @@ import type { Verbatim } from '../../verbatim.ts';
10
10
  import type { Structuring } from '../../compatible-engine/structuring.ts';
11
11
  import type { Engine } from '../../engine.ts';
12
12
  export declare class GoogleNativeTransport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<RoleMessage.User.From<fdm>, RoleMessage.Ai.From<fdm, vdm>, RoleMessage.Developer, Session.From<fdm, vdm>> {
13
- protected ctx: GoogleNativeTransport.Context<fdm, vdm>;
14
13
  protected apiURL: URL;
15
- constructor(ctx: GoogleNativeTransport.Context<fdm, vdm>);
14
+ protected inferenceParams: InferenceParams;
15
+ protected providerSpec: ProviderSpec;
16
+ protected fdm: fdm;
17
+ protected throttle: Throttle;
18
+ protected choice: Structuring.Choice.From<fdm, vdm>;
19
+ protected codeExecution: boolean;
20
+ protected urlContext: boolean;
21
+ protected googleSearch: boolean;
22
+ protected messageCodec: MessageCodec<fdm, vdm>;
23
+ protected toolCodec: ToolCodec<fdm>;
24
+ protected billing: Billing;
25
+ constructor(options: GoogleNativeTransport.Options<fdm, vdm>);
16
26
  fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
17
27
  }
18
28
  export declare namespace GoogleNativeTransport {
19
- interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
29
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
20
30
  inferenceParams: InferenceParams;
21
31
  providerSpec: ProviderSpec;
22
32
  fdm: fdm;
@@ -1,55 +1,69 @@
1
- import { NetworkError, ResponseInvalid } from "../../engine.js";
2
1
  import * as Google from '@google/genai';
3
2
  import * as Undici from 'undici';
4
3
  import { loggers } from "../../telemetry.js";
5
4
  import * as ChoiceCodec from "../../compatible-engine.d/google/choice-codec.js";
6
5
  import { MIMEType } from 'whatwg-mimetype';
7
6
  export class GoogleNativeTransport {
8
- ctx;
9
7
  apiURL;
10
- constructor(ctx) {
11
- this.ctx = ctx;
12
- this.apiURL = new URL(`${this.ctx.providerSpec.baseUrl}/v1beta/models/${this.ctx.inferenceParams.model}:generateContent`);
8
+ inferenceParams;
9
+ providerSpec;
10
+ fdm;
11
+ throttle;
12
+ choice;
13
+ codeExecution;
14
+ urlContext;
15
+ googleSearch;
16
+ messageCodec;
17
+ toolCodec;
18
+ billing;
19
+ constructor(options) {
20
+ this.apiURL = new URL(`${options.providerSpec.baseUrl}/v1beta/models/${options.inferenceParams.model}:generateContent`);
21
+ this.inferenceParams = options.inferenceParams;
22
+ this.providerSpec = options.providerSpec;
23
+ this.fdm = options.fdm;
24
+ this.throttle = options.throttle;
25
+ this.choice = options.choice;
26
+ this.codeExecution = options.codeExecution;
27
+ this.urlContext = options.urlContext;
28
+ this.googleSearch = options.googleSearch;
29
+ this.messageCodec = options.messageCodec;
30
+ this.toolCodec = options.toolCodec;
31
+ this.billing = options.billing;
13
32
  }
14
33
  async fetch(wfctx, session, signal) {
15
- const systemInstruction = session.developerMessage && this.ctx.messageCodec.encodeDeveloperMessage(session.developerMessage);
16
- const contents = this.ctx.messageCodec.encodeChatMessages(session.chatMessages);
17
- await this.ctx.throttle.requests(wfctx);
18
- const apifds = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
34
+ const systemInstruction = session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage);
35
+ const contents = this.messageCodec.encodeChatMessages(session.chatMessages);
36
+ await this.throttle.requests(wfctx);
37
+ const apifds = this.toolCodec.encodeFunctionDeclarationMap(this.fdm);
19
38
  const apiTools = [];
20
39
  if (apifds.length)
21
40
  apiTools.push({ functionDeclarations: apifds });
22
- if (this.ctx.urlContext)
41
+ if (this.urlContext)
23
42
  apiTools.push({ urlContext: {} });
24
- if (this.ctx.googleSearch)
43
+ if (this.googleSearch)
25
44
  apiTools.push({ googleSearch: {} });
26
- if (this.ctx.codeExecution)
45
+ if (this.codeExecution)
27
46
  apiTools.push({ codeExecution: {} });
28
47
  const apiToolConfig = {};
29
48
  if (apifds.length)
30
- apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.ctx.choice);
49
+ apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.choice);
31
50
  const reqbody = {
32
51
  contents,
33
52
  tools: apiTools.length ? apiTools : undefined,
34
53
  toolConfig: apiToolConfig,
35
54
  systemInstruction,
36
- generationConfig: this.ctx.inferenceParams.additionalOptions,
55
+ generationConfig: this.inferenceParams.additionalOptions,
37
56
  };
38
57
  loggers.message.debug(reqbody);
39
58
  const res = await Undici.fetch(this.apiURL, {
40
59
  method: 'POST',
41
60
  headers: {
42
61
  'Content-Type': 'application/json',
43
- 'x-goog-api-key': this.ctx.providerSpec.apiKey,
62
+ 'x-goog-api-key': this.providerSpec.apiKey,
44
63
  },
45
64
  body: JSON.stringify(reqbody),
46
- dispatcher: this.ctx.providerSpec.dispatcher,
65
+ dispatcher: this.providerSpec.dispatcher,
47
66
  signal,
48
- }).catch(e => {
49
- if (e instanceof TypeError)
50
- throw new NetworkError(undefined, { cause: e });
51
- else
52
- throw e;
53
67
  });
54
68
  loggers.message.debug(res);
55
69
  if (res.ok) { }
@@ -69,12 +83,12 @@ export class GoogleNativeTransport {
69
83
  const response = await res.json();
70
84
  if (response.candidates?.[0]?.content?.parts?.length) { }
71
85
  else
72
- throw new ResponseInvalid('Content missing', { cause: response });
86
+ throw new SyntaxError('Content missing', { cause: response });
73
87
  if (response.candidates[0].finishReason === Google.FinishReason.MAX_TOKENS)
74
- throw new ResponseInvalid('Token limit exceeded.', { cause: response });
88
+ throw new SyntaxError('Token limit exceeded.', { cause: response });
75
89
  if (response.candidates[0].finishReason === Google.FinishReason.STOP) { }
76
90
  else
77
- throw new ResponseInvalid('Abnormal finish reason', { cause: response });
91
+ throw new SyntaxError('Abnormal finish reason', { cause: response });
78
92
  for (const part of response.candidates[0].content.parts) {
79
93
  if (part.text)
80
94
  loggers.inference.info(part.text);
@@ -83,9 +97,9 @@ export class GoogleNativeTransport {
83
97
  }
84
98
  if (response.usageMetadata) { }
85
99
  else
86
- throw new ResponseInvalid('Usage metadata missing', { cause: response });
87
- wfctx.cost?.(this.ctx.billing.charge(response.usageMetadata));
88
- return this.ctx.messageCodec.decodeAiMessage(response.candidates[0].content);
100
+ throw new SyntaxError('Usage metadata missing', { cause: response });
101
+ wfctx.cost?.(this.billing.charge(response.usageMetadata));
102
+ return this.messageCodec.decodeAiMessage(response.candidates[0].content);
89
103
  }
90
104
  }
91
105
  //# sourceMappingURL=transport.js.map