@zimtsui/typechat 0.0.61

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 (216) hide show
  1. package/DEVELOPMENT.md +22 -0
  2. package/LICENSE +165 -0
  3. package/README.md +202 -0
  4. package/assets/verbatim/declarations.handlebars +11 -0
  5. package/assets/verbatim/instruction.md +49 -0
  6. package/build/adaptor.d.ts +45 -0
  7. package/build/adaptor.js +90 -0
  8. package/build/adaptor.js.map +1 -0
  9. package/build/api-types/anthropic/billing.d.ts +12 -0
  10. package/build/api-types/anthropic/billing.js +14 -0
  11. package/build/api-types/anthropic/billing.js.map +1 -0
  12. package/build/api-types/anthropic/tool-codec.d.ts +16 -0
  13. package/build/api-types/anthropic/tool-codec.js +58 -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 +23 -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 +1 -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/tool-codec.js +80 -0
  23. package/build/api-types/google/tool-codec.js.map +1 -0
  24. package/build/api-types/openai-chatcompletions/billing.d.ts +12 -0
  25. package/build/api-types/openai-chatcompletions/billing.js +14 -0
  26. package/build/api-types/openai-chatcompletions/billing.js.map +1 -0
  27. package/build/api-types/openai-chatcompletions/tool-codec.d.ts +17 -0
  28. package/build/api-types/openai-chatcompletions/tool-codec.js +80 -0
  29. package/build/api-types/openai-chatcompletions/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 +14 -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 +76 -0
  35. package/build/api-types/openai-responses/tool-codec.js.map +1 -0
  36. package/build/assets.d.ts +7 -0
  37. package/build/assets.js +8 -0
  38. package/build/assets.js.map +1 -0
  39. package/build/compatible-engine/session.d.ts +67 -0
  40. package/build/compatible-engine/session.js +92 -0
  41. package/build/compatible-engine/session.js.map +1 -0
  42. package/build/compatible-engine/structuring.d.ts +36 -0
  43. package/build/compatible-engine/structuring.js +34 -0
  44. package/build/compatible-engine/structuring.js.map +1 -0
  45. package/build/compatible-engine/validation.d.ts +21 -0
  46. package/build/compatible-engine/validation.js +82 -0
  47. package/build/compatible-engine/validation.js.map +1 -0
  48. package/build/compatible-engine.d/agentloop.d.ts +12 -0
  49. package/build/compatible-engine.d/agentloop.js +52 -0
  50. package/build/compatible-engine.d/agentloop.js.map +1 -0
  51. package/build/compatible-engine.d/aliyun/transport.d.ts +12 -0
  52. package/build/compatible-engine.d/aliyun/transport.js +7 -0
  53. package/build/compatible-engine.d/aliyun/transport.js.map +1 -0
  54. package/build/compatible-engine.d/aliyun.d.ts +24 -0
  55. package/build/compatible-engine.d/aliyun.js +46 -0
  56. package/build/compatible-engine.d/aliyun.js.map +1 -0
  57. package/build/compatible-engine.d/anthropic/choice-codec.d.ts +5 -0
  58. package/build/compatible-engine.d/anthropic/choice-codec.js +26 -0
  59. package/build/compatible-engine.d/anthropic/choice-codec.js.map +1 -0
  60. package/build/compatible-engine.d/anthropic/message-codec.d.ts +36 -0
  61. package/build/compatible-engine.d/anthropic/message-codec.js +86 -0
  62. package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -0
  63. package/build/compatible-engine.d/anthropic/transport.d.ts +34 -0
  64. package/build/compatible-engine.d/anthropic/transport.js +150 -0
  65. package/build/compatible-engine.d/anthropic/transport.js.map +1 -0
  66. package/build/compatible-engine.d/anthropic.d.ts +26 -0
  67. package/build/compatible-engine.d/anthropic.js +46 -0
  68. package/build/compatible-engine.d/anthropic.js.map +1 -0
  69. package/build/compatible-engine.d/google/choice-codec.d.ts +5 -0
  70. package/build/compatible-engine.d/google/choice-codec.js +27 -0
  71. package/build/compatible-engine.d/google/choice-codec.js.map +1 -0
  72. package/build/compatible-engine.d/google/message-codec.d.ts +36 -0
  73. package/build/compatible-engine.d/google/message-codec.js +94 -0
  74. package/build/compatible-engine.d/google/message-codec.js.map +1 -0
  75. package/build/compatible-engine.d/google/transport.d.ts +30 -0
  76. package/build/compatible-engine.d/google/transport.js +78 -0
  77. package/build/compatible-engine.d/google/transport.js.map +1 -0
  78. package/build/compatible-engine.d/google.d.ts +26 -0
  79. package/build/compatible-engine.d/google.js +50 -0
  80. package/build/compatible-engine.d/google.js.map +1 -0
  81. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.d.ts +5 -0
  82. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +31 -0
  83. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +1 -0
  84. package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +24 -0
  85. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +71 -0
  86. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -0
  87. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +38 -0
  88. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js +77 -0
  89. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +1 -0
  90. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +37 -0
  91. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +190 -0
  92. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +1 -0
  93. package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +10 -0
  94. package/build/compatible-engine.d/openai-chatcompletions/transport.js +11 -0
  95. package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -0
  96. package/build/compatible-engine.d/openai-chatcompletions.d.ts +17 -0
  97. package/build/compatible-engine.d/openai-chatcompletions.js +14 -0
  98. package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -0
  99. package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +5 -0
  100. package/build/compatible-engine.d/openai-responses/choice-codec.js +30 -0
  101. package/build/compatible-engine.d/openai-responses/choice-codec.js.map +1 -0
  102. package/build/compatible-engine.d/openai-responses/message-codec.d.ts +36 -0
  103. package/build/compatible-engine.d/openai-responses/message-codec.js +96 -0
  104. package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -0
  105. package/build/compatible-engine.d/openai-responses/transport.d.ts +35 -0
  106. package/build/compatible-engine.d/openai-responses/transport.js +80 -0
  107. package/build/compatible-engine.d/openai-responses/transport.js.map +1 -0
  108. package/build/compatible-engine.d/openai-responses.d.ts +26 -0
  109. package/build/compatible-engine.d/openai-responses.js +46 -0
  110. package/build/compatible-engine.d/openai-responses.js.map +1 -0
  111. package/build/compatible-engine.d.ts +22 -0
  112. package/build/compatible-engine.js +29 -0
  113. package/build/compatible-engine.js.map +1 -0
  114. package/build/config.d.ts +24 -0
  115. package/build/config.js +11 -0
  116. package/build/config.js.map +1 -0
  117. package/build/endpoint-spec.d.ts +20 -0
  118. package/build/endpoint-spec.js +26 -0
  119. package/build/endpoint-spec.js.map +1 -0
  120. package/build/engine/session.d.ts +7 -0
  121. package/build/engine/session.js +1 -0
  122. package/build/engine/session.js.map +1 -0
  123. package/build/engine/transport.d.ts +5 -0
  124. package/build/engine/transport.js +1 -0
  125. package/build/engine/transport.js.map +1 -0
  126. package/build/engine/validation.d.ts +9 -0
  127. package/build/engine/validation.js +1 -0
  128. package/build/engine/validation.js.map +1 -0
  129. package/build/engine.d.ts +82 -0
  130. package/build/engine.js +104 -0
  131. package/build/engine.js.map +1 -0
  132. package/build/exports.d.ts +14 -0
  133. package/build/exports.js +15 -0
  134. package/build/exports.js.map +1 -0
  135. package/build/function.d.ts +106 -0
  136. package/build/function.js +55 -0
  137. package/build/function.js.map +1 -0
  138. package/build/inference-context.d.ts +6 -0
  139. package/build/inference-context.js +1 -0
  140. package/build/inference-context.js.map +1 -0
  141. package/build/native-engines.d/google/message-codec.d.ts +23 -0
  142. package/build/native-engines.d/google/message-codec.js +67 -0
  143. package/build/native-engines.d/google/message-codec.js.map +1 -0
  144. package/build/native-engines.d/google/session.d.ts +58 -0
  145. package/build/native-engines.d/google/session.js +101 -0
  146. package/build/native-engines.d/google/session.js.map +1 -0
  147. package/build/native-engines.d/google/transport.d.ts +34 -0
  148. package/build/native-engines.d/google/transport.js +81 -0
  149. package/build/native-engines.d/google/transport.js.map +1 -0
  150. package/build/native-engines.d/google/validation.d.ts +22 -0
  151. package/build/native-engines.d/google/validation.js +20 -0
  152. package/build/native-engines.d/google/validation.js.map +1 -0
  153. package/build/native-engines.d/google.d/agentloop.d.ts +12 -0
  154. package/build/native-engines.d/google.d/agentloop.js +57 -0
  155. package/build/native-engines.d/google.d/agentloop.js.map +1 -0
  156. package/build/native-engines.d/google.d/exports.d.ts +2 -0
  157. package/build/native-engines.d/google.d/exports.js +3 -0
  158. package/build/native-engines.d/google.d/exports.js.map +1 -0
  159. package/build/native-engines.d/google.d.ts +42 -0
  160. package/build/native-engines.d/google.js +83 -0
  161. package/build/native-engines.d/google.js.map +1 -0
  162. package/build/native-engines.d/openai-responses/choice-codec.d.ts +5 -0
  163. package/build/native-engines.d/openai-responses/choice-codec.js +30 -0
  164. package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -0
  165. package/build/native-engines.d/openai-responses/message-codec.d.ts +23 -0
  166. package/build/native-engines.d/openai-responses/message-codec.js +75 -0
  167. package/build/native-engines.d/openai-responses/message-codec.js.map +1 -0
  168. package/build/native-engines.d/openai-responses/session.d.ts +61 -0
  169. package/build/native-engines.d/openai-responses/session.js +86 -0
  170. package/build/native-engines.d/openai-responses/session.js.map +1 -0
  171. package/build/native-engines.d/openai-responses/structuring.d.ts +19 -0
  172. package/build/native-engines.d/openai-responses/structuring.js +19 -0
  173. package/build/native-engines.d/openai-responses/structuring.js.map +1 -0
  174. package/build/native-engines.d/openai-responses/tool.d.ts +55 -0
  175. package/build/native-engines.d/openai-responses/tool.js +24 -0
  176. package/build/native-engines.d/openai-responses/tool.js.map +1 -0
  177. package/build/native-engines.d/openai-responses/transport.d.ts +35 -0
  178. package/build/native-engines.d/openai-responses/transport.js +84 -0
  179. package/build/native-engines.d/openai-responses/transport.js.map +1 -0
  180. package/build/native-engines.d/openai-responses/validation.d.ts +20 -0
  181. package/build/native-engines.d/openai-responses/validation.js +80 -0
  182. package/build/native-engines.d/openai-responses/validation.js.map +1 -0
  183. package/build/native-engines.d/openai-responses.d/agentloop.d.ts +12 -0
  184. package/build/native-engines.d/openai-responses.d/agentloop.js +61 -0
  185. package/build/native-engines.d/openai-responses.d/agentloop.js.map +1 -0
  186. package/build/native-engines.d/openai-responses.d/exports.d.ts +2 -0
  187. package/build/native-engines.d/openai-responses.d/exports.js +3 -0
  188. package/build/native-engines.d/openai-responses.d/exports.js.map +1 -0
  189. package/build/native-engines.d/openai-responses.d.ts +44 -0
  190. package/build/native-engines.d/openai-responses.js +78 -0
  191. package/build/native-engines.d/openai-responses.js.map +1 -0
  192. package/build/telemetry.d.ts +6 -0
  193. package/build/telemetry.js +19 -0
  194. package/build/telemetry.js.map +1 -0
  195. package/build/throttle.d.ts +11 -0
  196. package/build/throttle.js +39 -0
  197. package/build/throttle.js.map +1 -0
  198. package/build/tsconfig.tsbuildinfo +1 -0
  199. package/build/verbatim/codec/declarations.d.ts +2 -0
  200. package/build/verbatim/codec/declarations.js +22 -0
  201. package/build/verbatim/codec/declarations.js.map +1 -0
  202. package/build/verbatim/codec/request.d.ts +7 -0
  203. package/build/verbatim/codec/request.js +53 -0
  204. package/build/verbatim/codec/request.js.map +1 -0
  205. package/build/verbatim/codec.d.ts +2 -0
  206. package/build/verbatim/codec.js +3 -0
  207. package/build/verbatim/codec.js.map +1 -0
  208. package/build/verbatim.d.ts +74 -0
  209. package/build/verbatim.js +17 -0
  210. package/build/verbatim.js.map +1 -0
  211. package/examples/agent.ts +65 -0
  212. package/examples/chat.ts +24 -0
  213. package/examples/config.ts +24 -0
  214. package/examples/tsconfig.json +28 -0
  215. package/examples/verbatim.ts +44 -0
  216. package/package.json +50 -0
@@ -0,0 +1,34 @@
1
+ import { type InferenceParams, type ProviderSpec } from '../../engine.ts';
2
+ import { RoleMessage, type Session } from '../../compatible-engine/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 { MessageCodec } from './message-codec.ts';
8
+ import type { Billing } from '../../api-types/anthropic/billing.ts';
9
+ import type { ToolCodec } from '../../api-types/anthropic/tool-codec.ts';
10
+ import type { Verbatim } from '../../verbatim.ts';
11
+ import { Validator } from '../../compatible-engine/validation.ts';
12
+ import type { Structuring } from '../../compatible-engine/structuring.ts';
13
+ import type { Engine } from '../../engine.ts';
14
+ export declare class Transport<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>> {
15
+ protected ctx: Transport.Context<fdm, vdm>;
16
+ protected client: Anthropic;
17
+ constructor(ctx: Transport.Context<fdm, vdm>);
18
+ protected makeParams(session: Session.From<fdm, vdm>): Anthropic.MessageCreateParamsStreaming;
19
+ fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
20
+ }
21
+ export declare namespace Transport {
22
+ interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
23
+ providerSpec: ProviderSpec;
24
+ inferenceSpec: InferenceParams;
25
+ fdm: fdm;
26
+ throttle: Throttle;
27
+ choice: Structuring.Choice.From<fdm, vdm>;
28
+ parallelToolCall: boolean;
29
+ messageCodec: MessageCodec<fdm, vdm>;
30
+ toolCodec: ToolCodec<fdm>;
31
+ billing: Billing;
32
+ validator: Validator.From<fdm, vdm>;
33
+ }
34
+ }
@@ -0,0 +1,150 @@
1
+ import { NetworkError, ResponseInvalid } from "../../engine.js";
2
+ import Anthropic from '@anthropic-ai/sdk';
3
+ import { logger } from "../../telemetry.js";
4
+ import * as ChoiceCodec from "./choice-codec.js";
5
+ export class Transport {
6
+ ctx;
7
+ client;
8
+ constructor(ctx) {
9
+ this.ctx = ctx;
10
+ this.client = new Anthropic({
11
+ baseURL: this.ctx.providerSpec.baseUrl,
12
+ apiKey: this.ctx.providerSpec.apiKey,
13
+ fetchOptions: { dispatcher: this.ctx.providerSpec.proxyAgent },
14
+ });
15
+ }
16
+ makeParams(session) {
17
+ const tools = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
18
+ return {
19
+ model: this.ctx.inferenceSpec.model,
20
+ stream: true,
21
+ messages: session.chatMessages.map(chatMessage => this.ctx.messageCodec.encodeChatMessage(chatMessage)),
22
+ system: session.developerMessage && this.ctx.messageCodec.encodeDeveloperMessage(session.developerMessage),
23
+ tools: tools.length ? tools : undefined,
24
+ tool_choice: tools.length ? ChoiceCodec.encode(this.ctx.choice, this.ctx.parallelToolCall) : undefined,
25
+ max_tokens: this.ctx.inferenceSpec.maxTokens ?? 64 * 1024,
26
+ ...this.ctx.inferenceSpec.additionalOptions,
27
+ };
28
+ }
29
+ async fetch(wfctx, session, signal) {
30
+ await this.ctx.throttle.requests(wfctx);
31
+ // Prepare request
32
+ const params = this.makeParams(session);
33
+ logger.message.trace(params);
34
+ // Send request
35
+ const stream = this.client.messages.stream(params, { signal });
36
+ // Get response
37
+ let response = null;
38
+ try {
39
+ for await (const event of stream) {
40
+ if (event.type === 'message_start') {
41
+ logger.message.trace(event);
42
+ response = structuredClone(event.message);
43
+ }
44
+ else {
45
+ if (response) { }
46
+ else
47
+ throw new Error();
48
+ if (event.type === 'message_delta') {
49
+ logger.message.trace(event);
50
+ response.stop_sequence = event.delta.stop_sequence ?? response.stop_sequence;
51
+ response.stop_reason = event.delta.stop_reason ?? response.stop_reason;
52
+ response.usage.input_tokens = event.usage.input_tokens ?? response.usage.input_tokens;
53
+ response.usage.output_tokens = event.usage.output_tokens;
54
+ response.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens ?? response.usage.cache_read_input_tokens;
55
+ response.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens ?? response.usage.cache_creation_input_tokens;
56
+ response.usage.server_tool_use = event.usage.server_tool_use ?? response.usage.server_tool_use;
57
+ }
58
+ else if (event.type === 'message_stop') {
59
+ logger.message.trace(event);
60
+ }
61
+ else if (event.type === 'content_block_start') {
62
+ logger.message.trace(event);
63
+ const contentBlock = structuredClone(event.content_block);
64
+ response.content.push(contentBlock);
65
+ if (contentBlock.type === 'tool_use')
66
+ contentBlock.input = '';
67
+ }
68
+ else if (event.type === 'content_block_delta') {
69
+ const contentBlock = response.content[event.index];
70
+ if (event.delta.type === 'text_delta') {
71
+ logger.inference.debug(event.delta.text);
72
+ if (contentBlock?.type === 'text') { }
73
+ else
74
+ throw new Error();
75
+ contentBlock.text += event.delta.text;
76
+ }
77
+ else if (event.delta.type === 'thinking_delta') {
78
+ logger.inference.trace(event.delta.thinking);
79
+ if (contentBlock?.type === 'thinking') { }
80
+ else
81
+ throw new Error();
82
+ contentBlock.thinking += event.delta.thinking;
83
+ }
84
+ else if (event.delta.type === 'signature_delta') {
85
+ if (contentBlock?.type === 'thinking') { }
86
+ else
87
+ throw new Error();
88
+ contentBlock.signature += event.delta.signature;
89
+ }
90
+ else if (event.delta.type === 'input_json_delta') {
91
+ logger.inference.trace(event.delta.partial_json);
92
+ if (contentBlock?.type === 'tool_use') { }
93
+ else
94
+ throw new Error();
95
+ if (typeof contentBlock.input === 'string') { }
96
+ else
97
+ throw new Error();
98
+ contentBlock.input += event.delta.partial_json;
99
+ }
100
+ else
101
+ throw new Error('Unknown type of content block delta', { cause: event.delta });
102
+ }
103
+ else if (event.type === 'content_block_stop') {
104
+ const contentBlock = response.content[event.index];
105
+ if (contentBlock?.type === 'text')
106
+ logger.inference.debug('\n');
107
+ else if (contentBlock?.type === 'thinking')
108
+ logger.inference.trace('\n');
109
+ else if (contentBlock?.type === 'tool_use')
110
+ logger.inference.debug('\n');
111
+ logger.message.trace(event);
112
+ if (contentBlock?.type === 'tool_use') {
113
+ if (typeof contentBlock.input === 'string') { }
114
+ else
115
+ throw new Error();
116
+ try {
117
+ contentBlock.input = JSON.parse(contentBlock.input);
118
+ }
119
+ catch (e) {
120
+ throw new ResponseInvalid('Invalid JSON of tool use input', { cause: contentBlock.input });
121
+ }
122
+ logger.message.debug(contentBlock);
123
+ }
124
+ }
125
+ else
126
+ throw new Error('Unknown stream event', { cause: event });
127
+ }
128
+ }
129
+ }
130
+ catch (e) {
131
+ if (e instanceof TypeError)
132
+ throw new NetworkError(undefined, { cause: e });
133
+ else
134
+ throw e;
135
+ }
136
+ // Validate response
137
+ if (response) { }
138
+ else
139
+ throw new Error();
140
+ if (response.stop_reason === 'max_tokens')
141
+ throw new ResponseInvalid('Token limit exceeded.', { cause: response });
142
+ if (response.stop_reason === 'end_turn' || response.stop_reason === 'tool_use') { }
143
+ else
144
+ throw new ResponseInvalid('Abnormal stop reason', { cause: response });
145
+ logger.message.debug(response.usage);
146
+ wfctx.cost?.(this.ctx.billing.charge(response.usage));
147
+ return this.ctx.messageCodec.decodeAiMessage(response.content);
148
+ }
149
+ }
150
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/anthropic/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { CompatibleEngine } from '../compatible-engine.ts';
2
+ import { Function } from '../function.ts';
3
+ import { ToolCodec } from '../api-types/anthropic/tool-codec.ts';
4
+ import { Billing } from '../api-types/anthropic/billing.ts';
5
+ import { Validator } from '../compatible-engine/validation.ts';
6
+ import * as MessageCodecModule from './anthropic/message-codec.ts';
7
+ import * as TransportModule from './anthropic/transport.ts';
8
+ import * as ChoiceCodecModule from './anthropic/choice-codec.ts';
9
+ import type { Verbatim } from '../verbatim.ts';
10
+ export type AnthropicCompatibleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = AnthropicCompatibleEngine.Instance<fdm, vdm>;
11
+ export declare namespace AnthropicCompatibleEngine {
12
+ class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Instance<fdm, vdm> {
13
+ protected toolCodec: ToolCodec<fdm>;
14
+ protected messageCodec: AnthropicCompatibleEngine.MessageCodec<fdm, vdm>;
15
+ protected billing: Billing;
16
+ protected validator: Validator.From<fdm, vdm>;
17
+ protected transport: AnthropicCompatibleEngine.Transport<fdm, vdm>;
18
+ protected parallelToolCall: boolean;
19
+ constructor(options: AnthropicCompatibleEngine.Options<fdm, vdm>);
20
+ }
21
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Options<fdm, vdm> {
22
+ }
23
+ export import MessageCodec = MessageCodecModule.MessageCodec;
24
+ export import Transport = TransportModule.Transport;
25
+ export import ChoiceCodec = ChoiceCodecModule;
26
+ }
@@ -0,0 +1,46 @@
1
+ import { CompatibleEngine } from "../compatible-engine.js";
2
+ import { ToolCodec } from "../api-types/anthropic/tool-codec.js";
3
+ import { Billing } from "../api-types/anthropic/billing.js";
4
+ import { Validator } from "../compatible-engine/validation.js";
5
+ import * as MessageCodecModule from "./anthropic/message-codec.js";
6
+ import * as TransportModule from "./anthropic/transport.js";
7
+ import * as ChoiceCodecModule from "./anthropic/choice-codec.js";
8
+ export var AnthropicCompatibleEngine;
9
+ (function (AnthropicCompatibleEngine) {
10
+ class Instance extends CompatibleEngine.Instance {
11
+ toolCodec;
12
+ messageCodec;
13
+ billing;
14
+ validator;
15
+ transport;
16
+ parallelToolCall;
17
+ constructor(options) {
18
+ super(options);
19
+ this.parallelToolCall = options.parallelToolCall ?? false;
20
+ this.toolCodec = new ToolCodec({ fdm: this.fdm });
21
+ this.messageCodec = new AnthropicCompatibleEngine.MessageCodec({
22
+ toolCodec: this.toolCodec,
23
+ vdm: this.vdm,
24
+ });
25
+ this.billing = new Billing({ pricing: this.pricing });
26
+ this.validator = new Validator({ choice: this.choice });
27
+ this.transport = new AnthropicCompatibleEngine.Transport({
28
+ providerSpec: this.providerSpec,
29
+ inferenceSpec: this.inferenceParams,
30
+ fdm: this.fdm,
31
+ throttle: this.throttle,
32
+ choice: this.choice,
33
+ parallelToolCall: this.parallelToolCall,
34
+ messageCodec: this.messageCodec,
35
+ toolCodec: this.toolCodec,
36
+ billing: this.billing,
37
+ validator: this.validator,
38
+ });
39
+ }
40
+ }
41
+ AnthropicCompatibleEngine.Instance = Instance;
42
+ AnthropicCompatibleEngine.MessageCodec = MessageCodecModule.MessageCodec;
43
+ AnthropicCompatibleEngine.Transport = TransportModule.Transport;
44
+ AnthropicCompatibleEngine.ChoiceCodec = ChoiceCodecModule;
45
+ })(AnthropicCompatibleEngine || (AnthropicCompatibleEngine = {}));
46
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/compatible-engine.d/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAC;AASjE,MAAM,KAAW,yBAAyB,CA6CzC;AA7CD,WAAiB,yBAAyB;IACtC,MAAa,QAGX,SAAQ,gBAAgB,CAAC,QAAkB;QAC/B,SAAS,CAAiB;QAC1B,YAAY,CAAmD;QAC/D,OAAO,CAAU;QACjB,SAAS,CAA2B;QACpC,SAAS,CAAgD;QAChD,gBAAgB,CAAU;QAE7C,YAAmB,OAAoD;YACnE,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,KAAK,CAAC;YAC1D,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,yBAAyB,CAAC,YAAY,CAAC;gBAC3D,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,EAAE,IAAI,CAAC,GAAG;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,GAAG,IAAI,yBAAyB,CAAC,SAAS,CAAC;gBACrD,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,eAAe;gBACnC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B,CAAC,CAAC;QACP,CAAC;KACJ;IAlCY,kCAAQ,WAkCpB,CAAA;IAOa,sCAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;IAC/C,mCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IACtC,qCAAW,GAAG,iBAAiB,CAAC;AAClD,CAAC,EA7CgB,yBAAyB,KAAzB,yBAAyB,QA6CzC"}
@@ -0,0 +1,5 @@
1
+ import { Structuring } from '../../compatible-engine/structuring.ts';
2
+ import type { Function } from '../../function.ts';
3
+ import type { Verbatim } from '../../verbatim.ts';
4
+ import * as Google from '@google/genai';
5
+ export declare function encode<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(choice: Structuring.Choice<fdu, vdu>): Google.FunctionCallingConfig;
@@ -0,0 +1,27 @@
1
+ import { Structuring } from "../../compatible-engine/structuring.js";
2
+ import * as Google from '@google/genai';
3
+ export function encode(choice) {
4
+ if (choice === Structuring.Choice.NONE)
5
+ return { mode: Google.FunctionCallingConfigMode.NONE };
6
+ else if (choice === Structuring.Choice.REQUIRED)
7
+ return { mode: Google.FunctionCallingConfigMode.AUTO };
8
+ else if (choice === Structuring.Choice.ANYONE)
9
+ return { mode: Google.FunctionCallingConfigMode.AUTO };
10
+ else if (choice === Structuring.Choice.AUTO)
11
+ return { mode: Google.FunctionCallingConfigMode.AUTO };
12
+ else if (choice === Structuring.Choice.FCall.REQUIRED)
13
+ return { mode: Google.FunctionCallingConfigMode.ANY };
14
+ else if (choice === Structuring.Choice.FCall.ANYONE)
15
+ return { mode: Google.FunctionCallingConfigMode.ANY };
16
+ else if (choice instanceof Structuring.Choice.FCall)
17
+ return { mode: Google.FunctionCallingConfigMode.ANY, allowedFunctionNames: [choice.name] };
18
+ else if (choice === Structuring.Choice.VRequest.REQUIRED)
19
+ return { mode: Google.FunctionCallingConfigMode.NONE };
20
+ else if (choice === Structuring.Choice.VRequest.ANYONE)
21
+ return { mode: Google.FunctionCallingConfigMode.NONE };
22
+ else if (choice instanceof Structuring.Choice.VRequest)
23
+ return { mode: Google.FunctionCallingConfigMode.NONE };
24
+ else
25
+ throw new Error('Invalid structuring choice');
26
+ }
27
+ //# sourceMappingURL=choice-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choice-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/choice-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAGrE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,MAAM,UAAU,MAAM,CAIlB,MAAoC;IAGpC,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAC1F,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SACnG,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SACjG,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAE/F,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;SACxG,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;SACtG,IAAI,MAAM,YAAY,WAAW,CAAC,MAAM,CAAC,KAAK;QAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,oBAAoB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;SAE1F,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAC5G,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAC1G,IAAI,MAAM,YAAY,WAAW,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;;QAE1G,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { RoleMessage, type Session } from '../../compatible-engine/session.ts';
2
+ import { Function } from '../../function.ts';
3
+ import * as Google from '@google/genai';
4
+ import { type ToolCodec } from '../../api-types/google/tool-codec.ts';
5
+ import type { Verbatim } from '../../verbatim.ts';
6
+ declare const NOMINAL: unique symbol;
7
+ export declare class MessageCodec<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> {
8
+ protected ctx: MessageCodec.Context<fdm, vdm>;
9
+ constructor(ctx: MessageCodec.Context<fdm, vdm>);
10
+ encodeAiMessage(aiMessage: RoleMessage.Ai.From<fdm, vdm>): Google.Content;
11
+ encodeChatMessages(chatMessages: Session.ChatMessage.From<fdm, vdm>[]): Google.Content[];
12
+ encodeUserMessage(userMessage: RoleMessage.User.From<fdm>): Google.Content;
13
+ encodeDeveloperMessage(developerMessage: RoleMessage.Developer): Google.Content;
14
+ /**
15
+ * @throws {@link VerbatimCodec.Request.Invalid}
16
+ */
17
+ decodeAiMessage(content: Google.Content): MessageCodec.Message.Ai.From<fdm, vdm>;
18
+ }
19
+ export declare namespace MessageCodec {
20
+ interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
21
+ toolCodec: ToolCodec<fdm>;
22
+ vdm: vdm;
23
+ }
24
+ namespace Message {
25
+ class Ai<out fdu extends Function.Decl.Proto, out vdu extends Verbatim.Decl.Proto> extends RoleMessage.Ai<fdu, vdu> {
26
+ protected raw: Google.Content;
27
+ protected [NOMINAL]: never;
28
+ constructor(parts: RoleMessage.Ai.Part<fdu, vdu>[], raw: Google.Content);
29
+ getRaw(): Google.Content;
30
+ }
31
+ namespace Ai {
32
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Ai<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
33
+ }
34
+ }
35
+ }
36
+ export {};
@@ -0,0 +1,94 @@
1
+ import { ResponseInvalid } from "../../engine.js";
2
+ import { RoleMessage } from "../../compatible-engine/session.js";
3
+ import { Function } from "../../function.js";
4
+ import * as Google from '@google/genai';
5
+ import * as VerbatimCodec from "../../verbatim/codec.js";
6
+ const NOMINAL = Symbol();
7
+ export class MessageCodec {
8
+ ctx;
9
+ constructor(ctx) {
10
+ this.ctx = ctx;
11
+ }
12
+ encodeAiMessage(aiMessage) {
13
+ if (aiMessage instanceof MessageCodec.Message.Ai)
14
+ return aiMessage.getRaw();
15
+ else {
16
+ const parts = aiMessage.getParts().map(part => {
17
+ if (part instanceof RoleMessage.Part.Text)
18
+ return Google.createPartFromText(part.text);
19
+ else if (part instanceof Function.Call) {
20
+ if (part.args instanceof Object) { }
21
+ else
22
+ throw new Error();
23
+ return Google.createPartFromFunctionCall(part.name, part.args);
24
+ }
25
+ else
26
+ throw new Error();
27
+ });
28
+ return Google.createModelContent(parts);
29
+ }
30
+ }
31
+ encodeChatMessages(chatMessages) {
32
+ return chatMessages.map(chatMessage => {
33
+ if (chatMessage instanceof RoleMessage.User)
34
+ return this.encodeUserMessage(chatMessage);
35
+ else if (chatMessage instanceof RoleMessage.Ai)
36
+ return this.encodeAiMessage(chatMessage);
37
+ else
38
+ throw new Error();
39
+ });
40
+ }
41
+ encodeUserMessage(userMessage) {
42
+ const parts = userMessage.getParts().map(part => {
43
+ if (part instanceof RoleMessage.Part.Text)
44
+ return Google.createPartFromText(part.text);
45
+ else if (part instanceof Function.Response)
46
+ return this.ctx.toolCodec.encodeFunctionResponse(part);
47
+ else
48
+ throw new Error();
49
+ });
50
+ return Google.createUserContent(parts);
51
+ }
52
+ encodeDeveloperMessage(developerMessage) {
53
+ const parts = developerMessage.getParts().map(part => Google.createPartFromText(part.text));
54
+ return { parts };
55
+ }
56
+ /**
57
+ * @throws {@link VerbatimCodec.Request.Invalid}
58
+ */
59
+ decodeAiMessage(content) {
60
+ if (content.parts) { }
61
+ else
62
+ throw new Error();
63
+ return new MessageCodec.Message.Ai(content.parts.flatMap(part => {
64
+ const parts = [];
65
+ if (part.functionCall || part.text) { }
66
+ else
67
+ throw new ResponseInvalid('Unknown content part', { cause: content });
68
+ if (part.text) {
69
+ const vrs = VerbatimCodec.Request.decode(part.text, this.ctx.vdm);
70
+ parts.push(new RoleMessage.Part.Text(part.text, vrs));
71
+ }
72
+ if (part.functionCall)
73
+ parts.push(this.ctx.toolCodec.decodeFunctionCall(part.functionCall));
74
+ return parts;
75
+ }), content);
76
+ }
77
+ }
78
+ (function (MessageCodec) {
79
+ let Message;
80
+ (function (Message) {
81
+ class Ai extends RoleMessage.Ai {
82
+ raw;
83
+ constructor(parts, raw) {
84
+ super(parts);
85
+ this.raw = raw;
86
+ }
87
+ getRaw() {
88
+ return this.raw;
89
+ }
90
+ }
91
+ Message.Ai = Ai;
92
+ })(Message = MessageCodec.Message || (MessageCodec.Message = {}));
93
+ })(MessageCodec || (MessageCodec = {}));
94
+ //# sourceMappingURL=message-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/message-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Engine, type InferenceParams as InferenceParams, type ProviderSpec } from '../../engine.ts';
2
+ import { RoleMessage, type Session } from '../../compatible-engine/session.ts';
3
+ import { Function } from '../../function.ts';
4
+ import { type InferenceContext } from '../../inference-context.ts';
5
+ import { Throttle } from '../../throttle.ts';
6
+ import type { MessageCodec } from './message-codec.ts';
7
+ import type { ToolCodec } from '../../api-types/google/tool-codec.ts';
8
+ import type { Billing } from '../../api-types/google/billing.ts';
9
+ import type { Verbatim } from '../../verbatim.ts';
10
+ import type { Validator } from '../../compatible-engine/validation.ts';
11
+ import type { Structuring } from '../../compatible-engine/structuring.ts';
12
+ export declare class Transport<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: Transport.Context<fdm, vdm>;
14
+ protected apiURL: URL;
15
+ constructor(ctx: Transport.Context<fdm, vdm>);
16
+ fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
17
+ }
18
+ export declare namespace Transport {
19
+ interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
20
+ inferenceParams: InferenceParams;
21
+ providerSpec: ProviderSpec;
22
+ fdm: fdm;
23
+ throttle: Throttle;
24
+ choice: Structuring.Choice.From<fdm, vdm>;
25
+ messageCodec: MessageCodec<fdm, vdm>;
26
+ toolCodec: ToolCodec<fdm>;
27
+ billing: Billing;
28
+ validator: Validator.From<fdm, vdm>;
29
+ }
30
+ }
@@ -0,0 +1,78 @@
1
+ import { NetworkError, ResponseInvalid } from "../../engine.js";
2
+ import * as Google from '@google/genai';
3
+ import * as Undici from 'undici';
4
+ import { logger } from "../../telemetry.js";
5
+ import * as ChoiceCodec from "./choice-codec.js";
6
+ export class Transport {
7
+ ctx;
8
+ apiURL;
9
+ constructor(ctx) {
10
+ this.ctx = ctx;
11
+ this.apiURL = new URL(`${this.ctx.providerSpec.baseUrl}/v1beta/models/${this.ctx.inferenceParams.model}:generateContent`);
12
+ }
13
+ async fetch(wfctx, session, signal) {
14
+ await this.ctx.throttle.requests(wfctx);
15
+ // Prepare request body
16
+ const systemInstruction = session.developerMessage && this.ctx.messageCodec.encodeDeveloperMessage(session.developerMessage);
17
+ const contents = this.ctx.messageCodec.encodeChatMessages(session.chatMessages);
18
+ const tools = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
19
+ const reqbody = {
20
+ contents,
21
+ tools: tools.length ? [{
22
+ functionDeclarations: tools,
23
+ }] : undefined,
24
+ toolConfig: tools.length ? {
25
+ functionCallingConfig: ChoiceCodec.encode(this.ctx.choice),
26
+ } : undefined,
27
+ systemInstruction,
28
+ generationConfig: this.ctx.inferenceParams.maxTokens || this.ctx.inferenceParams.additionalOptions ? {
29
+ maxOutputTokens: this.ctx.inferenceParams.maxTokens ?? undefined,
30
+ ...this.ctx.inferenceParams.additionalOptions,
31
+ } : undefined,
32
+ };
33
+ logger.message.trace(reqbody);
34
+ // Send request
35
+ const res = await Undici.fetch(this.apiURL, {
36
+ method: 'POST',
37
+ headers: new Headers({
38
+ 'Content-Type': 'application/json',
39
+ 'x-goog-api-key': this.ctx.providerSpec.apiKey,
40
+ }),
41
+ body: JSON.stringify(reqbody),
42
+ dispatcher: this.ctx.providerSpec.proxyAgent,
43
+ signal,
44
+ }).catch(e => {
45
+ if (e instanceof TypeError)
46
+ throw new NetworkError(undefined, { cause: e });
47
+ else
48
+ throw e;
49
+ });
50
+ // Get response
51
+ if (res.ok) { }
52
+ else
53
+ throw new Error(undefined, { cause: res });
54
+ const response = await res.json();
55
+ logger.message.trace(response);
56
+ // Validate response
57
+ if (response.candidates?.[0]?.content?.parts?.length) { }
58
+ else
59
+ throw new ResponseInvalid('Content missing', { cause: response });
60
+ if (response.candidates[0].finishReason === Google.FinishReason.MAX_TOKENS)
61
+ throw new ResponseInvalid('Token limit exceeded.', { cause: response });
62
+ if (response.candidates[0].finishReason === Google.FinishReason.STOP) { }
63
+ else
64
+ throw new ResponseInvalid('Abnormal finish reason', { cause: response });
65
+ if (response.usageMetadata) { }
66
+ else
67
+ throw new ResponseInvalid('Usage metadata missing', { cause: response });
68
+ for (const part of response.candidates[0].content.parts) {
69
+ if (part.text)
70
+ logger.inference.debug(part.text);
71
+ if (part.functionCall)
72
+ logger.message.debug(part.functionCall);
73
+ }
74
+ wfctx.cost?.(this.ctx.billing.charge(response.usageMetadata));
75
+ return this.ctx.messageCodec.decodeAiMessage(response.candidates[0].content);
76
+ }
77
+ }
78
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { CompatibleEngine } from '../compatible-engine.ts';
2
+ import { Function } from '../function.ts';
3
+ import * as MessageCodecModule from './google/message-codec.ts';
4
+ import { ToolCodec } from '../api-types/google/tool-codec.ts';
5
+ import { Billing } from '../api-types/google/billing.ts';
6
+ import { Validator } from '../compatible-engine/validation.ts';
7
+ import * as TransportModule from './google/transport.ts';
8
+ import type { Verbatim } from '../verbatim.ts';
9
+ import * as ChoiceCodecModule from './google/choice-codec.ts';
10
+ export type GoogleCompatibleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = GoogleCompatibleEngine.Instance<fdm, vdm>;
11
+ export declare namespace GoogleCompatibleEngine {
12
+ class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Instance<fdm, vdm> {
13
+ protected toolCodec: ToolCodec<fdm>;
14
+ protected messageCodec: GoogleCompatibleEngine.MessageCodec<fdm, vdm>;
15
+ protected billing: Billing;
16
+ protected validator: Validator.From<fdm, vdm>;
17
+ protected transport: GoogleCompatibleEngine.Transport<fdm, vdm>;
18
+ protected parallelToolCall: boolean;
19
+ constructor(options: GoogleCompatibleEngine.Options<fdm, vdm>);
20
+ }
21
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Options<fdm, vdm> {
22
+ }
23
+ export import Transport = TransportModule.Transport;
24
+ export import MessageCodec = MessageCodecModule.MessageCodec;
25
+ export import ChoiceCodec = ChoiceCodecModule;
26
+ }