@zimtsui/typechat 0.0.97 → 0.0.99

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 (258) hide show
  1. package/DEVELOPMENT.md +3 -8
  2. package/README.md +5 -177
  3. package/assets/verbatim/instruction.md +1 -1
  4. package/assets/verbatim/response.handlebars +1 -1
  5. package/build/adaptor.d.ts +9 -9
  6. package/build/adaptor.js +15 -17
  7. package/build/adaptor.js.map +1 -1
  8. package/build/endpoint-spec.d.ts +1 -1
  9. package/build/endpoint-spec.js +1 -1
  10. package/build/engine/message.d.ts +75 -0
  11. package/build/engine/message.js +165 -0
  12. package/build/engine/message.js.map +1 -0
  13. package/build/engine/middleware.d.ts +11 -0
  14. package/build/engine/middleware.js +1 -0
  15. package/build/engine/middleware.js.map +1 -0
  16. package/build/engine/parts-validator.d.ts +9 -0
  17. package/build/engine/parts-validator.js +11 -0
  18. package/build/engine/parts-validator.js.map +1 -0
  19. package/build/engine/recoverable.d.ts +13 -0
  20. package/build/engine/recoverable.js +29 -0
  21. package/build/engine/recoverable.js.map +1 -0
  22. package/build/engine/session.d.ts +8 -32
  23. package/build/engine/session.js +0 -19
  24. package/build/engine/session.js.map +1 -1
  25. package/build/engine/structuring-validator.d.ts +15 -0
  26. package/build/engine/structuring-validator.js +64 -0
  27. package/build/engine/structuring-validator.js.map +1 -0
  28. package/build/engine/transport.d.ts +6 -3
  29. package/build/engine.d.ts +40 -39
  30. package/build/engine.js +100 -64
  31. package/build/engine.js.map +1 -1
  32. package/build/engines/anthropic/billing.js.map +1 -0
  33. package/build/engines/anthropic/message-codec.d.ts +22 -0
  34. package/build/engines/anthropic/message-codec.js +79 -0
  35. package/build/engines/anthropic/message-codec.js.map +1 -0
  36. package/build/engines/anthropic/message.d.ts +22 -0
  37. package/build/engines/anthropic/message.js +25 -0
  38. package/build/engines/anthropic/message.js.map +1 -0
  39. package/build/{compatible-engine.d/anthropic/choice-codec.d.ts → engines/anthropic/structuring-choice-codec.d.ts} +2 -2
  40. package/build/engines/anthropic/structuring-choice-codec.js +23 -0
  41. package/build/engines/anthropic/structuring-choice-codec.js.map +1 -0
  42. package/build/{api-types → engines}/anthropic/tool-codec.d.ts +5 -4
  43. package/build/{api-types → engines}/anthropic/tool-codec.js +16 -14
  44. package/build/engines/anthropic/tool-codec.js.map +1 -0
  45. package/build/engines/anthropic/transport.d.ts +37 -0
  46. package/build/{compatible-engine.d → engines}/anthropic/transport.js +8 -12
  47. package/build/engines/anthropic/transport.js.map +1 -0
  48. package/build/engines/anthropic.d.ts +22 -0
  49. package/build/engines/anthropic.js +46 -0
  50. package/build/engines/anthropic.js.map +1 -0
  51. package/build/engines/google/billing.js.map +1 -0
  52. package/build/engines/google/message-codec.d.ts +24 -0
  53. package/build/engines/google/message-codec.js +113 -0
  54. package/build/engines/google/message-codec.js.map +1 -0
  55. package/build/engines/google/message.d.ts +37 -0
  56. package/build/engines/google/message.js +58 -0
  57. package/build/engines/google/message.js.map +1 -0
  58. package/build/engines/google/restful-request.js.map +1 -0
  59. package/build/{compatible-engine.d/google/choice-codec.d.ts → engines/google/structuring-choice-codec.d.ts} +2 -2
  60. package/build/engines/google/structuring-choice-codec.js +23 -0
  61. package/build/engines/google/structuring-choice-codec.js.map +1 -0
  62. package/build/{api-types → engines}/google/tool-codec.d.ts +5 -4
  63. package/build/{api-types → engines}/google/tool-codec.js +15 -13
  64. package/build/engines/google/tool-codec.js.map +1 -0
  65. package/build/{native-engines.d → engines}/google/transport.d.ts +13 -14
  66. package/build/{native-engines.d → engines}/google/transport.js +18 -13
  67. package/build/engines/google/transport.js.map +1 -0
  68. package/build/engines/google.d.ts +41 -0
  69. package/build/engines/google.js +151 -0
  70. package/build/engines/google.js.map +1 -0
  71. package/build/engines/openai-chatcompletions/billing.js.map +1 -0
  72. package/build/engines/openai-chatcompletions/message-codec.d.ts +22 -0
  73. package/build/engines/openai-chatcompletions/message-codec.js +80 -0
  74. package/build/engines/openai-chatcompletions/message-codec.js.map +1 -0
  75. package/build/{compatible-engine.d/openai-chatcompletions/choice-codec.d.ts → engines/openai-chatcompletions/structuring-choice-codec.d.ts} +2 -2
  76. package/build/engines/openai-chatcompletions/structuring-choice-codec.js +22 -0
  77. package/build/engines/openai-chatcompletions/structuring-choice-codec.js.map +1 -0
  78. package/build/engines/openai-chatcompletions/tool-codec.d.ts +17 -0
  79. package/build/{api-types → engines}/openai-chatcompletions/tool-codec.js +19 -17
  80. package/build/engines/openai-chatcompletions/tool-codec.js.map +1 -0
  81. package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.d.ts +13 -15
  82. package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.js +8 -18
  83. package/build/engines/openai-chatcompletions/transport.js.map +1 -0
  84. package/build/engines/openai-chatcompletions.d.ts +22 -0
  85. package/build/engines/openai-chatcompletions.js +48 -0
  86. package/build/engines/openai-chatcompletions.js.map +1 -0
  87. package/build/engines/openai-responses/billing.js.map +1 -0
  88. package/build/engines/openai-responses/message-codec.d.ts +24 -0
  89. package/build/{compatible-engine.d → engines}/openai-responses/message-codec.js +55 -51
  90. package/build/engines/openai-responses/message-codec.js.map +1 -0
  91. package/build/engines/openai-responses/message.d.ts +25 -0
  92. package/build/engines/openai-responses/message.js +43 -0
  93. package/build/engines/openai-responses/message.js.map +1 -0
  94. package/build/engines/openai-responses/structuring-choice-codec.d.ts +3 -0
  95. package/build/engines/openai-responses/structuring-choice-codec.js +22 -0
  96. package/build/engines/openai-responses/structuring-choice-codec.js.map +1 -0
  97. package/build/engines/openai-responses/structuring-validator.d.ts +12 -0
  98. package/build/engines/openai-responses/structuring-validator.js +64 -0
  99. package/build/engines/openai-responses/structuring-validator.js.map +1 -0
  100. package/build/engines/openai-responses/tool-codec.d.ts +17 -0
  101. package/build/{api-types → engines}/openai-responses/tool-codec.js +19 -17
  102. package/build/engines/openai-responses/tool-codec.js.map +1 -0
  103. package/build/{native-engines.d → engines}/openai-responses/tool.d.ts +1 -3
  104. package/build/{native-engines.d → engines}/openai-responses/tool.js +3 -3
  105. package/build/engines/openai-responses/tool.js.map +1 -0
  106. package/build/{compatible-engine.d → engines}/openai-responses/transport.d.ts +16 -12
  107. package/build/{native-engines.d → engines}/openai-responses/transport.js +11 -9
  108. package/build/engines/openai-responses/transport.js.map +1 -0
  109. package/build/engines/openai-responses.d.ts +41 -0
  110. package/build/engines/openai-responses.js +134 -0
  111. package/build/engines/openai-responses.js.map +1 -0
  112. package/build/exports.d.ts +5 -5
  113. package/build/exports.js +5 -5
  114. package/build/exports.js.map +1 -1
  115. package/build/function.d.ts +7 -7
  116. package/build/function.js +19 -19
  117. package/build/function.js.map +1 -1
  118. package/build/repetition.d.ts +2 -2
  119. package/build/repetition.js +21 -20
  120. package/build/repetition.js.map +1 -1
  121. package/build/structuring-choice.d.ts +15 -0
  122. package/build/structuring-choice.js +18 -0
  123. package/build/structuring-choice.js.map +1 -0
  124. package/build/tsconfig.tsbuildinfo +1 -1
  125. package/build/verbatim/codec/declarations.js +0 -2
  126. package/build/verbatim/codec/declarations.js.map +1 -1
  127. package/build/verbatim/codec/quotation.js +0 -3
  128. package/build/verbatim/codec/quotation.js.map +1 -1
  129. package/build/verbatim/codec/request.js +4 -4
  130. package/build/verbatim/codec/request.js.map +1 -1
  131. package/build/verbatim/codec/response.js +0 -3
  132. package/build/verbatim/codec/response.js.map +1 -1
  133. package/package.json +2 -4
  134. package/build/api-types/anthropic/billing.js.map +0 -1
  135. package/build/api-types/anthropic/tool-codec.js.map +0 -1
  136. package/build/api-types/google/billing.js.map +0 -1
  137. package/build/api-types/google/restful-request.js.map +0 -1
  138. package/build/api-types/google/tool-codec.js.map +0 -1
  139. package/build/api-types/openai-chatcompletions/billing.js.map +0 -1
  140. package/build/api-types/openai-chatcompletions/tool-codec.d.ts +0 -16
  141. package/build/api-types/openai-chatcompletions/tool-codec.js.map +0 -1
  142. package/build/api-types/openai-responses/billing.js.map +0 -1
  143. package/build/api-types/openai-responses/tool-codec.d.ts +0 -16
  144. package/build/api-types/openai-responses/tool-codec.js.map +0 -1
  145. package/build/compatible-engine/session.d.ts +0 -56
  146. package/build/compatible-engine/session.js +0 -85
  147. package/build/compatible-engine/session.js.map +0 -1
  148. package/build/compatible-engine/structuring.d.ts +0 -36
  149. package/build/compatible-engine/structuring.js +0 -34
  150. package/build/compatible-engine/structuring.js.map +0 -1
  151. package/build/compatible-engine/validation.d.ts +0 -28
  152. package/build/compatible-engine/validation.js +0 -104
  153. package/build/compatible-engine/validation.js.map +0 -1
  154. package/build/compatible-engine.d/agentloop.d.ts +0 -12
  155. package/build/compatible-engine.d/agentloop.js +0 -52
  156. package/build/compatible-engine.d/agentloop.js.map +0 -1
  157. package/build/compatible-engine.d/anthropic/choice-codec.js +0 -27
  158. package/build/compatible-engine.d/anthropic/choice-codec.js.map +0 -1
  159. package/build/compatible-engine.d/anthropic/message-codec.d.ts +0 -34
  160. package/build/compatible-engine.d/anthropic/message-codec.js +0 -85
  161. package/build/compatible-engine.d/anthropic/message-codec.js.map +0 -1
  162. package/build/compatible-engine.d/anthropic/transport.d.ts +0 -38
  163. package/build/compatible-engine.d/anthropic/transport.js.map +0 -1
  164. package/build/compatible-engine.d/anthropic.d.ts +0 -25
  165. package/build/compatible-engine.d/anthropic.js +0 -47
  166. package/build/compatible-engine.d/anthropic.js.map +0 -1
  167. package/build/compatible-engine.d/google/choice-codec.js +0 -27
  168. package/build/compatible-engine.d/google/choice-codec.js.map +0 -1
  169. package/build/compatible-engine.d/google/message-codec.d.ts +0 -34
  170. package/build/compatible-engine.d/google/message-codec.js +0 -95
  171. package/build/compatible-engine.d/google/message-codec.js.map +0 -1
  172. package/build/compatible-engine.d/google/transport.d.ts +0 -35
  173. package/build/compatible-engine.d/google/transport.js +0 -97
  174. package/build/compatible-engine.d/google/transport.js.map +0 -1
  175. package/build/compatible-engine.d/google.d.ts +0 -25
  176. package/build/compatible-engine.d/google.js +0 -64
  177. package/build/compatible-engine.d/google.js.map +0 -1
  178. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +0 -31
  179. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +0 -1
  180. package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +0 -22
  181. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +0 -68
  182. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +0 -1
  183. package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +0 -1
  184. package/build/compatible-engine.d/openai-chatcompletions.d.ts +0 -25
  185. package/build/compatible-engine.d/openai-chatcompletions.js +0 -49
  186. package/build/compatible-engine.d/openai-chatcompletions.js.map +0 -1
  187. package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +0 -5
  188. package/build/compatible-engine.d/openai-responses/choice-codec.js +0 -30
  189. package/build/compatible-engine.d/openai-responses/choice-codec.js.map +0 -1
  190. package/build/compatible-engine.d/openai-responses/message-codec.d.ts +0 -36
  191. package/build/compatible-engine.d/openai-responses/message-codec.js.map +0 -1
  192. package/build/compatible-engine.d/openai-responses/transport.js +0 -91
  193. package/build/compatible-engine.d/openai-responses/transport.js.map +0 -1
  194. package/build/compatible-engine.d/openai-responses.d.ts +0 -25
  195. package/build/compatible-engine.d/openai-responses.js +0 -47
  196. package/build/compatible-engine.d/openai-responses.js.map +0 -1
  197. package/build/compatible-engine.d.ts +0 -26
  198. package/build/compatible-engine.js +0 -34
  199. package/build/compatible-engine.js.map +0 -1
  200. package/build/engine/validation.d.ts +0 -6
  201. package/build/engine/validation.js +0 -1
  202. package/build/engine/validation.js.map +0 -1
  203. package/build/native-engines.d/google/message-codec.d.ts +0 -26
  204. package/build/native-engines.d/google/message-codec.js +0 -70
  205. package/build/native-engines.d/google/message-codec.js.map +0 -1
  206. package/build/native-engines.d/google/session.d.ts +0 -58
  207. package/build/native-engines.d/google/session.js +0 -101
  208. package/build/native-engines.d/google/session.js.map +0 -1
  209. package/build/native-engines.d/google/transport.js.map +0 -1
  210. package/build/native-engines.d/google/validation.d.ts +0 -28
  211. package/build/native-engines.d/google/validation.js +0 -26
  212. package/build/native-engines.d/google/validation.js.map +0 -1
  213. package/build/native-engines.d/google.d/agentloop.d.ts +0 -12
  214. package/build/native-engines.d/google.d/agentloop.js +0 -57
  215. package/build/native-engines.d/google.d/agentloop.js.map +0 -1
  216. package/build/native-engines.d/google.d/exports.d.ts +0 -2
  217. package/build/native-engines.d/google.d/exports.js +0 -3
  218. package/build/native-engines.d/google.d/exports.js.map +0 -1
  219. package/build/native-engines.d/google.d.ts +0 -43
  220. package/build/native-engines.d/google.js +0 -100
  221. package/build/native-engines.d/google.js.map +0 -1
  222. package/build/native-engines.d/openai-responses/choice-codec.d.ts +0 -5
  223. package/build/native-engines.d/openai-responses/choice-codec.js +0 -30
  224. package/build/native-engines.d/openai-responses/choice-codec.js.map +0 -1
  225. package/build/native-engines.d/openai-responses/message-codec.d.ts +0 -25
  226. package/build/native-engines.d/openai-responses/message-codec.js +0 -99
  227. package/build/native-engines.d/openai-responses/message-codec.js.map +0 -1
  228. package/build/native-engines.d/openai-responses/session.d.ts +0 -61
  229. package/build/native-engines.d/openai-responses/session.js +0 -86
  230. package/build/native-engines.d/openai-responses/session.js.map +0 -1
  231. package/build/native-engines.d/openai-responses/structuring.d.ts +0 -19
  232. package/build/native-engines.d/openai-responses/structuring.js +0 -19
  233. package/build/native-engines.d/openai-responses/structuring.js.map +0 -1
  234. package/build/native-engines.d/openai-responses/tool.js.map +0 -1
  235. package/build/native-engines.d/openai-responses/transport.d.ts +0 -40
  236. package/build/native-engines.d/openai-responses/transport.js.map +0 -1
  237. package/build/native-engines.d/openai-responses/validation.d.ts +0 -28
  238. package/build/native-engines.d/openai-responses/validation.js +0 -101
  239. package/build/native-engines.d/openai-responses/validation.js.map +0 -1
  240. package/build/native-engines.d/openai-responses.d/agentloop.d.ts +0 -12
  241. package/build/native-engines.d/openai-responses.d/agentloop.js +0 -61
  242. package/build/native-engines.d/openai-responses.d/agentloop.js.map +0 -1
  243. package/build/native-engines.d/openai-responses.d/exports.d.ts +0 -2
  244. package/build/native-engines.d/openai-responses.d/exports.js +0 -3
  245. package/build/native-engines.d/openai-responses.d/exports.js.map +0 -1
  246. package/build/native-engines.d/openai-responses.d.ts +0 -45
  247. package/build/native-engines.d/openai-responses.js +0 -82
  248. package/build/native-engines.d/openai-responses.js.map +0 -1
  249. /package/build/{api-types → engines}/anthropic/billing.d.ts +0 -0
  250. /package/build/{api-types → engines}/anthropic/billing.js +0 -0
  251. /package/build/{api-types → engines}/google/billing.d.ts +0 -0
  252. /package/build/{api-types → engines}/google/billing.js +0 -0
  253. /package/build/{api-types → engines}/google/restful-request.d.ts +0 -0
  254. /package/build/{api-types → engines}/google/restful-request.js +0 -0
  255. /package/build/{api-types → engines}/openai-chatcompletions/billing.d.ts +0 -0
  256. /package/build/{api-types → engines}/openai-chatcompletions/billing.js +0 -0
  257. /package/build/{api-types → engines}/openai-responses/billing.d.ts +0 -0
  258. /package/build/{api-types → engines}/openai-responses/billing.js +0 -0
@@ -0,0 +1,113 @@
1
+ import { RoleMessage } from "./message.js";
2
+ import { Engine } from "../../engine.js";
3
+ import { Function } from "../../function.js";
4
+ import * as Google from '@google/genai';
5
+ import * as VerbatimCodec from "../../verbatim/codec.js";
6
+ import { Media } from "../../media.js";
7
+ export class MessageCodec {
8
+ toolCodec;
9
+ vdm;
10
+ codeExecution;
11
+ constructor(options) {
12
+ this.toolCodec = options.toolCodec;
13
+ this.vdm = options.vdm;
14
+ this.codeExecution = options.codeExecution;
15
+ }
16
+ encodeAiMessage(aiMessage) {
17
+ if (aiMessage instanceof RoleMessage.Ai) {
18
+ const nativeAiMessage = aiMessage;
19
+ return nativeAiMessage.getRaw();
20
+ }
21
+ else {
22
+ const apiParts = [];
23
+ for (const part of aiMessage.getParts()) {
24
+ if (part instanceof RoleMessage.Ai.Part.Text) {
25
+ const textPart = part;
26
+ apiParts.push(Google.createPartFromText(textPart.text));
27
+ }
28
+ else if (part instanceof Function.Call) {
29
+ const fcall = part;
30
+ if (fcall.args instanceof Object) { }
31
+ else
32
+ throw new Error();
33
+ apiParts.push(Google.createPartFromFunctionCall(fcall.name, fcall.args));
34
+ }
35
+ else
36
+ throw new Error('Unknown AI message part type', { cause: part });
37
+ }
38
+ return Google.createModelContent(apiParts);
39
+ }
40
+ }
41
+ encodeChatMessages(chatMessages) {
42
+ return chatMessages.map(chatMessage => {
43
+ if (chatMessage instanceof Engine.RoleMessage.User) {
44
+ const userMessage = chatMessage;
45
+ return this.encodeUserMessage(userMessage);
46
+ }
47
+ else if (chatMessage instanceof Engine.RoleMessage.Ai) {
48
+ const aiMessage = chatMessage;
49
+ return this.encodeAiMessage(aiMessage);
50
+ }
51
+ else
52
+ throw new Error();
53
+ });
54
+ }
55
+ encodeUserMessage(userMessage) {
56
+ const apiParts = [];
57
+ for (const part of userMessage.getParts()) {
58
+ if (part instanceof Engine.RoleMessage.User.Part.Text)
59
+ apiParts.push(Google.createPartFromText(part.text));
60
+ else if (part instanceof Function.Response) {
61
+ const fres = part;
62
+ apiParts.push(this.toolCodec.encodeFunctionResponse(fres));
63
+ }
64
+ else if (part instanceof Media.Pdf)
65
+ apiParts.push(Google.createPartFromBase64(part.base64, `${part.mimeType}`, Google.PartMediaResolutionLevel.MEDIA_RESOLUTION_MEDIUM));
66
+ else
67
+ throw new Error('Unknown user message part type', { cause: part });
68
+ }
69
+ ;
70
+ return Google.createUserContent(apiParts);
71
+ }
72
+ encodeDeveloperMessage(developerMessage) {
73
+ const parts = developerMessage.getOnlyTextParts().map(part => Google.createPartFromText(part.text));
74
+ return { parts };
75
+ }
76
+ decodeAiMessage(content) {
77
+ if (content.parts) { }
78
+ else
79
+ throw new Error();
80
+ const parts = [];
81
+ for (const part of content.parts) {
82
+ if (part.text) {
83
+ const vreqs = VerbatimCodec.Request.decode(part.text, this.vdm);
84
+ parts.push(new RoleMessage.Ai.Part.Text(part.text, vreqs));
85
+ }
86
+ if (part.functionCall)
87
+ parts.push(this.toolCodec.decodeFunctionCall(part.functionCall));
88
+ if (part.executableCode) {
89
+ if (this.codeExecution) { }
90
+ else
91
+ throw new SyntaxError('Unexpected code execution', { cause: content });
92
+ if (part.executableCode.code) { }
93
+ else
94
+ throw new Error();
95
+ if (part.executableCode.language) { }
96
+ else
97
+ throw new Error();
98
+ parts.push(new RoleMessage.Ai.Part.ExecutableCode(part.executableCode.code, part.executableCode.language === Google.Language.LANGUAGE_UNSPECIFIED ? undefined : part.executableCode.language));
99
+ }
100
+ if (part.codeExecutionResult) {
101
+ if (this.codeExecution) { }
102
+ else
103
+ throw new SyntaxError('Unexpected code execution result', { cause: content });
104
+ if (part.codeExecutionResult.outcome) { }
105
+ else
106
+ throw new Error();
107
+ parts.push(new RoleMessage.Ai.Part.CodeExecutionResult(part.codeExecutionResult.outcome, part.codeExecutionResult.output));
108
+ }
109
+ }
110
+ return new RoleMessage.Ai(parts, content);
111
+ }
112
+ }
113
+ //# sourceMappingURL=message-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/google/message-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { Function } from '../../function.ts';
2
+ import * as Google from '@google/genai';
3
+ import { Verbatim } from '../../verbatim.ts';
4
+ import { Engine } from '../../engine.ts';
5
+ declare const NOMINAL: unique symbol;
6
+ export declare namespace RoleMessage {
7
+ class Ai<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> extends Engine.RoleMessage.Ai<fdu, vdu> {
8
+ protected raw: Google.Content;
9
+ protected [NOMINAL]: never;
10
+ constructor(parts: unknown[], raw: Google.Content);
11
+ getRaw(): Google.Content;
12
+ allChat(): boolean;
13
+ static encodeExecutableCodePart(part: RoleMessage.Ai.Part.ExecutableCode): string;
14
+ static encodeCodeExecutionResultPart(part: RoleMessage.Ai.Part.CodeExecutionResult): string;
15
+ }
16
+ namespace Ai {
17
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Ai<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
18
+ namespace Part {
19
+ export import Text = Engine.RoleMessage.Ai.Part.Text;
20
+ class ExecutableCode {
21
+ code: string;
22
+ language?: string | undefined;
23
+ protected [NOMINAL]: never;
24
+ constructor(code: string, language?: string | undefined);
25
+ }
26
+ class CodeExecutionResult {
27
+ outcome: string;
28
+ output?: string | undefined;
29
+ protected [NOMINAL]: never;
30
+ constructor(outcome: string, output?: string | undefined);
31
+ }
32
+ }
33
+ }
34
+ export import User = Engine.RoleMessage.User;
35
+ export import Developer = Engine.RoleMessage.Developer;
36
+ }
37
+ export {};
@@ -0,0 +1,58 @@
1
+ import { Engine } from "../../engine.js";
2
+ const NOMINAL = Symbol();
3
+ export var RoleMessage;
4
+ (function (RoleMessage) {
5
+ class Ai extends Engine.RoleMessage.Ai {
6
+ raw;
7
+ constructor(parts, raw) {
8
+ super(parts);
9
+ this.raw = raw;
10
+ }
11
+ getRaw() {
12
+ return this.raw;
13
+ }
14
+ allChat() {
15
+ return this.parts.every(part => part instanceof RoleMessage.Ai.Part.Text && !part.vreqs.length ||
16
+ part instanceof RoleMessage.Ai.Part.ExecutableCode ||
17
+ part instanceof RoleMessage.Ai.Part.CodeExecutionResult);
18
+ }
19
+ static encodeExecutableCodePart(part) {
20
+ return RoleMessage.Ai.Part.Text.paragraph('```' + (part.language ?? '') + '\n' + part.code + '\n```').text;
21
+ }
22
+ static encodeCodeExecutionResultPart(part) {
23
+ const textParts = [];
24
+ if (part.output)
25
+ textParts.push(RoleMessage.Ai.Part.Text.paragraph('```\n' + part.output + '\n```'));
26
+ textParts.push(RoleMessage.Ai.Part.Text.paragraph(part.outcome));
27
+ return textParts.map(part => part.text).join('');
28
+ }
29
+ }
30
+ RoleMessage.Ai = Ai;
31
+ (function (Ai) {
32
+ let Part;
33
+ (function (Part) {
34
+ Part.Text = Engine.RoleMessage.Ai.Part.Text;
35
+ class ExecutableCode {
36
+ code;
37
+ language;
38
+ constructor(code, language) {
39
+ this.code = code;
40
+ this.language = language;
41
+ }
42
+ }
43
+ Part.ExecutableCode = ExecutableCode;
44
+ class CodeExecutionResult {
45
+ outcome;
46
+ output;
47
+ constructor(outcome, output) {
48
+ this.outcome = outcome;
49
+ this.output = output;
50
+ }
51
+ }
52
+ Part.CodeExecutionResult = CodeExecutionResult;
53
+ })(Part = Ai.Part || (Ai.Part = {}));
54
+ })(Ai = RoleMessage.Ai || (RoleMessage.Ai = {}));
55
+ RoleMessage.User = Engine.RoleMessage.User;
56
+ RoleMessage.Developer = Engine.RoleMessage.Developer;
57
+ })(RoleMessage || (RoleMessage = {}));
58
+ //# sourceMappingURL=message.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/engines/google/message.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAGzB,MAAM,KAAW,WAAW,CAkE3B;AAlED,WAAiB,WAAW;IAExB,MAAa,EAGX,SAAQ,MAAM,CAAC,WAAW,CAAC,EAAY;QAIvB;QAFd,YACI,KAAgB,EACN,GAAmB;YAE7B,KAAK,CAAC,KAAK,CAAC,CAAC;YAFH,QAAG,GAAH,GAAG,CAAgB;QAGjC,CAAC;QAEM,MAAM;YACT,OAAO,IAAI,CAAC,GAAG,CAAC;QACpB,CAAC;QACe,OAAO;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CACnB,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;gBAClE,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc;gBAClD,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAC9D,CAAC;QACN,CAAC;QACM,MAAM,CAAC,wBAAwB,CAAC,IAAwC;YAC3E,OAAO,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CACrC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,CAC7D,CAAC,IAAI,CAAC;QACX,CAAC;QACM,MAAM,CAAC,6BAA6B,CAAC,IAA6C;YACrF,MAAM,SAAS,GAAsC,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,MAAM;gBAAE,SAAS,CAAC,IAAI,CAC3B,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAC9B,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAClC,CACJ,CAAC;YACF,SAAS,CAAC,IAAI,CACV,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CACnD,CAAC;YACF,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;KACJ;IAvCY,cAAE,KAuCd,CAAA;IACD,WAAiB,EAAE;QAMf,IAAiB,IAAI,CAapB;QAbD,WAAiB,IAAI;YAEH,SAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAErD,MAAa,cAAc;gBAEG;gBAAqB;gBAA/C,YAA0B,IAAY,EAAS,QAAiB;oBAAtC,SAAI,GAAJ,IAAI,CAAQ;oBAAS,aAAQ,GAAR,QAAQ,CAAS;gBAAG,CAAC;aACvE;YAHY,mBAAc,iBAG1B,CAAA;YAED,MAAa,mBAAmB;gBAEF;gBAAwB;gBAAlD,YAA0B,OAAe,EAAS,MAAe;oBAAvC,YAAO,GAAP,OAAO,CAAQ;oBAAS,WAAM,GAAN,MAAM,CAAS;gBAAG,CAAC;aACxE;YAHY,wBAAmB,sBAG/B,CAAA;QACL,CAAC,EAbgB,IAAI,GAAJ,OAAI,KAAJ,OAAI,QAapB;IACL,CAAC,EApBgB,EAAE,GAAF,cAAE,KAAF,cAAE,QAoBlB;IAEa,gBAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,qBAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;AAC3D,CAAC,EAlEgB,WAAW,KAAX,WAAW,QAkE3B"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restful-request.js","sourceRoot":"","sources":["../../../src/engines/google/restful-request.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
- import { Structuring } from '../../compatible-engine/structuring.ts';
2
1
  import type { Function } from '../../function.ts';
3
2
  import type { Verbatim } from '../../verbatim.ts';
4
3
  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;
4
+ import { StructuringChoice } from '../../structuring-choice.ts';
5
+ export declare function encode<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(structuringChoice: StructuringChoice): Google.FunctionCallingConfig;
@@ -0,0 +1,23 @@
1
+ import * as Google from '@google/genai';
2
+ import { StructuringChoice } from "../../structuring-choice.js";
3
+ export function encode(structuringChoice) {
4
+ if (structuringChoice === StructuringChoice.NONE)
5
+ return { mode: Google.FunctionCallingConfigMode.NONE };
6
+ else if (structuringChoice === StructuringChoice.REQUIRED)
7
+ return { mode: Google.FunctionCallingConfigMode.AUTO };
8
+ else if (structuringChoice === StructuringChoice.ANYONE)
9
+ return { mode: Google.FunctionCallingConfigMode.AUTO };
10
+ else if (structuringChoice === StructuringChoice.AUTO)
11
+ return { mode: Google.FunctionCallingConfigMode.AUTO };
12
+ else if (structuringChoice === StructuringChoice.TCall.REQUIRED)
13
+ return { mode: Google.FunctionCallingConfigMode.ANY };
14
+ else if (structuringChoice === StructuringChoice.TCall.ANYONE)
15
+ return { mode: Google.FunctionCallingConfigMode.ANY };
16
+ else if (structuringChoice === StructuringChoice.VRequest.REQUIRED)
17
+ return { mode: Google.FunctionCallingConfigMode.NONE };
18
+ else if (structuringChoice === StructuringChoice.VRequest.ANYONE)
19
+ return { mode: Google.FunctionCallingConfigMode.NONE };
20
+ else
21
+ throw new Error('Invalid structuring choice');
22
+ }
23
+ //# sourceMappingURL=structuring-choice-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuring-choice-codec.js","sourceRoot":"","sources":["../../../src/engines/google/structuring-choice-codec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,MAAM,UAAU,MAAM,CAIlB,iBAAoC;IAGpC,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SACpG,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAC7G,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAC3G,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAEzG,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;SAClH,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;SAEhH,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SACtH,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;;QAEpH,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACvD,CAAC"}
@@ -2,12 +2,13 @@ import { Function } from '../../function.ts';
2
2
  import * as Google from '@google/genai';
3
3
  export declare class ToolCodec<in out fdm extends Function.Decl.Map.Proto> {
4
4
  protected fdm: fdm;
5
+ protected apiFds: Google.FunctionDeclaration[];
5
6
  constructor(options: ToolCodec.Options<fdm>);
6
- encodeFunctionCall(fc: Function.Call.From<fdm>): Google.FunctionCall;
7
- encodeFunctionDeclarationMap(fdm: fdm): Google.FunctionDeclaration[];
8
- protected encodeFunctionDeclarationEntry(fdentry: Function.Decl.Entry.From<fdm>): Google.FunctionDeclaration;
7
+ encodeFunctionCall(fcall: Function.Call.From<fdm>): Google.FunctionCall;
8
+ encodeFunctionDeclarationMap(): Google.FunctionDeclaration[];
9
+ protected static encodeFunctionDeclarationEntry<fdu extends Function.Decl.Proto>(fdentry: Function.Decl.Entry.Of<fdu>): Google.FunctionDeclaration;
9
10
  decodeFunctionCall(googlefc: Google.FunctionCall): Function.Call.From<fdm>;
10
- encodeFunctionResponse(fr: Function.Response.From<fdm>): Google.Part;
11
+ encodeFunctionResponse(fres: Function.Response.From<fdm>): Google.Part;
11
12
  }
12
13
  export declare namespace ToolCodec {
13
14
  interface Options<in out fdm extends Function.Decl.Map.Proto> {
@@ -2,21 +2,23 @@ import { Function } from "../../function.js";
2
2
  import { Parse, ParseError } from 'typebox/schema';
3
3
  export class ToolCodec {
4
4
  fdm;
5
+ apiFds;
5
6
  constructor(options) {
6
7
  this.fdm = options.fdm;
8
+ const fdentries = Object.entries(this.fdm);
9
+ this.apiFds = fdentries.map(fdentry => ToolCodec.encodeFunctionDeclarationEntry(fdentry));
7
10
  }
8
- encodeFunctionCall(fc) {
11
+ encodeFunctionCall(fcall) {
9
12
  return {
10
- id: fc.id,
11
- name: fc.name,
12
- args: fc.args,
13
+ id: fcall.id,
14
+ name: fcall.name,
15
+ args: fcall.args,
13
16
  };
14
17
  }
15
- encodeFunctionDeclarationMap(fdm) {
16
- const fdentries = Object.entries(fdm);
17
- return fdentries.map(fdentry => this.encodeFunctionDeclarationEntry(fdentry));
18
+ encodeFunctionDeclarationMap() {
19
+ return this.apiFds.slice();
18
20
  }
19
- encodeFunctionDeclarationEntry(fdentry) {
21
+ static encodeFunctionDeclarationEntry(fdentry) {
20
22
  return {
21
23
  name: fdentry[0],
22
24
  description: fdentry[1].description,
@@ -46,14 +48,14 @@ export class ToolCodec {
46
48
  args: googlefc.args,
47
49
  });
48
50
  }
49
- encodeFunctionResponse(fr) {
50
- if (fr instanceof Function.Response.Successful)
51
+ encodeFunctionResponse(fres) {
52
+ if (fres instanceof Function.Response.Successful)
51
53
  return {
52
- functionResponse: { id: fr.id, name: fr.name, response: { output: fr.text } },
54
+ functionResponse: { id: fres.id, name: fres.name, response: { output: fres.text } },
53
55
  };
54
- else if (fr instanceof Function.Response.Failed)
56
+ else if (fres instanceof Function.Response.Failed)
55
57
  return {
56
- functionResponse: { id: fr.id, name: fr.name, response: { error: fr.error } },
58
+ functionResponse: { id: fres.id, name: fres.name, response: { error: fres.error } },
57
59
  };
58
60
  else
59
61
  throw new Error();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-codec.js","sourceRoot":"","sources":["../../../src/engines/google/tool-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAInD,MAAM,OAAO,SAAS;IACR,GAAG,CAAM;IACT,MAAM,CAA+B;IAC/C,YAAmB,OAA+B;QAC9C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IAEM,kBAAkB,CACrB,KAA8B;QAE9B,OAAO;YACH,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAsC;SACrD,CAAC;IACN,CAAC;IAEM,4BAA4B;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAES,MAAM,CAAC,8BAA8B,CAC3C,OAAoC;QAEpC,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;YACnC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAsC;SAChE,CAAC;IACN,CAAC;IAEM,kBAAkB,CACrB,QAA6B;QAE7B,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,UAAU;gBACvB,MAAM,IAAI,WAAW,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;;gBAC1E,MAAM,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACa,CAAC,CAAC;IAC1C,CAAC;IAEM,sBAAsB,CACzB,IAAiC;QAEjC,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,CAAC,UAAU;YAAE,OAAO;gBACrD,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;aACtF,CAAC;aAAM,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO;gBACzD,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE;aACtF,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;IAC9B,CAAC;CAEJ"}
@@ -1,21 +1,20 @@
1
- import { type InferenceParams, type ProviderSpec } from '../../engine.ts';
2
- import { RoleMessage, type Session } from './session.ts';
1
+ import { type InferenceOptions, type ProviderSpecs, Engine } from '../../engine.ts';
2
+ import { RoleMessage } from './message.ts';
3
3
  import { Function } from '../../function.ts';
4
4
  import { type InferenceContext } from '../../inference-context.ts';
5
5
  import { Throttle } from '../../throttle.ts';
6
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';
7
+ import type { ToolCodec } from './tool-codec.ts';
8
+ import type { Billing } from './billing.ts';
9
9
  import type { Verbatim } from '../../verbatim.ts';
10
- import type { Structuring } from '../../compatible-engine/structuring.ts';
11
- import type { Engine } from '../../engine.ts';
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>> {
10
+ import type { StructuringChoice } from '../../structuring-choice.ts';
11
+ export declare class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<fdm, vdm> {
13
12
  protected apiURL: URL;
14
- protected inferenceParams: InferenceParams;
15
- protected providerSpec: ProviderSpec;
13
+ protected inferenceParams: InferenceOptions;
14
+ protected providerSpec: ProviderSpecs;
16
15
  protected fdm: fdm;
17
16
  protected throttle: Throttle;
18
- protected choice: Structuring.Choice.From<fdm, vdm>;
17
+ protected structuringChoice: StructuringChoice;
19
18
  protected codeExecution: boolean;
20
19
  protected urlContext: boolean;
21
20
  protected googleSearch: boolean;
@@ -23,15 +22,15 @@ export declare class GoogleNativeTransport<in out fdm extends Function.Decl.Map.
23
22
  protected toolCodec: ToolCodec<fdm>;
24
23
  protected billing: Billing;
25
24
  constructor(options: GoogleNativeTransport.Options<fdm, vdm>);
26
- fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
25
+ fetch(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
27
26
  }
28
27
  export declare namespace GoogleNativeTransport {
29
28
  interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
30
- inferenceParams: InferenceParams;
31
- providerSpec: ProviderSpec;
29
+ inferenceParams: InferenceOptions;
30
+ providerSpec: ProviderSpecs;
32
31
  fdm: fdm;
33
32
  throttle: Throttle;
34
- choice: Structuring.Choice.From<fdm, vdm>;
33
+ structuringChoice: StructuringChoice;
35
34
  codeExecution: boolean;
36
35
  urlContext: boolean;
37
36
  googleSearch: boolean;
@@ -1,15 +1,15 @@
1
1
  import * as Google from '@google/genai';
2
2
  import * as Undici from 'undici';
3
3
  import { loggers } from "../../telemetry.js";
4
- import * as ChoiceCodec from "../../compatible-engine.d/google/choice-codec.js";
4
+ import * as ChoiceCodec from "./structuring-choice-codec.js";
5
5
  import { MIMEType } from 'whatwg-mimetype';
6
- export class GoogleNativeTransport {
6
+ export class Transport {
7
7
  apiURL;
8
8
  inferenceParams;
9
9
  providerSpec;
10
10
  fdm;
11
11
  throttle;
12
- choice;
12
+ structuringChoice;
13
13
  codeExecution;
14
14
  urlContext;
15
15
  googleSearch;
@@ -22,7 +22,7 @@ export class GoogleNativeTransport {
22
22
  this.providerSpec = options.providerSpec;
23
23
  this.fdm = options.fdm;
24
24
  this.throttle = options.throttle;
25
- this.choice = options.choice;
25
+ this.structuringChoice = options.structuringChoice;
26
26
  this.codeExecution = options.codeExecution;
27
27
  this.urlContext = options.urlContext;
28
28
  this.googleSearch = options.googleSearch;
@@ -31,13 +31,14 @@ export class GoogleNativeTransport {
31
31
  this.billing = options.billing;
32
32
  }
33
33
  async fetch(wfctx, session, signal) {
34
+ await this.throttle.requests(wfctx);
35
+ // Prepare request body
34
36
  const systemInstruction = session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage);
35
37
  const contents = this.messageCodec.encodeChatMessages(session.chatMessages);
36
- await this.throttle.requests(wfctx);
37
- const apifds = this.toolCodec.encodeFunctionDeclarationMap(this.fdm);
38
+ const apiFds = this.toolCodec.encodeFunctionDeclarationMap();
38
39
  const apiTools = [];
39
- if (apifds.length)
40
- apiTools.push({ functionDeclarations: apifds });
40
+ if (apiFds.length)
41
+ apiTools.push({ functionDeclarations: apiFds });
41
42
  if (this.urlContext)
42
43
  apiTools.push({ urlContext: {} });
43
44
  if (this.googleSearch)
@@ -45,8 +46,8 @@ export class GoogleNativeTransport {
45
46
  if (this.codeExecution)
46
47
  apiTools.push({ codeExecution: {} });
47
48
  const apiToolConfig = {};
48
- if (apifds.length)
49
- apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.choice);
49
+ if (apiFds.length)
50
+ apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.structuringChoice);
50
51
  const reqbody = {
51
52
  contents,
52
53
  tools: apiTools.length ? apiTools : undefined,
@@ -55,6 +56,7 @@ export class GoogleNativeTransport {
55
56
  generationConfig: this.inferenceParams.additionalOptions,
56
57
  };
57
58
  loggers.message.debug(reqbody);
59
+ // Send request
58
60
  const res = await Undici.fetch(this.apiURL, {
59
61
  method: 'POST',
60
62
  headers: {
@@ -66,6 +68,7 @@ export class GoogleNativeTransport {
66
68
  signal,
67
69
  });
68
70
  loggers.message.debug(res);
71
+ // Get response
69
72
  if (res.ok) { }
70
73
  else {
71
74
  const contentType = res.headers.get('Content-Type');
@@ -81,6 +84,8 @@ export class GoogleNativeTransport {
81
84
  throw new Error(res.statusText, { cause: res });
82
85
  }
83
86
  const response = await res.json();
87
+ loggers.message.debug(response);
88
+ // Validate response
84
89
  if (response.candidates?.[0]?.content?.parts?.length) { }
85
90
  else
86
91
  throw new SyntaxError('Content missing', { cause: response });
@@ -89,15 +94,15 @@ export class GoogleNativeTransport {
89
94
  if (response.candidates[0].finishReason === Google.FinishReason.STOP) { }
90
95
  else
91
96
  throw new SyntaxError('Abnormal finish reason', { cause: response });
97
+ if (response.usageMetadata) { }
98
+ else
99
+ throw new SyntaxError('Usage metadata missing', { cause: response });
92
100
  for (const part of response.candidates[0].content.parts) {
93
101
  if (part.text)
94
102
  loggers.inference.info(part.text);
95
103
  if (part.functionCall)
96
104
  loggers.message.info(part.functionCall);
97
105
  }
98
- if (response.usageMetadata) { }
99
- else
100
- throw new SyntaxError('Usage metadata missing', { cause: response });
101
106
  wfctx.cost?.(this.billing.charge(response.usageMetadata));
102
107
  return this.messageCodec.decodeAiMessage(response.candidates[0].content);
103
108
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/google/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { Engine, Middleware } from '../engine.ts';
2
+ import { Function } from '../function.ts';
3
+ import { Verbatim } from '../verbatim.ts';
4
+ import { MessageCodec } from './google/message-codec.ts';
5
+ import { ToolCodec } from './google/tool-codec.ts';
6
+ import { Billing } from './google/billing.ts';
7
+ import { Transport } from './google/transport.ts';
8
+ import { InferenceContext } from '../inference-context.ts';
9
+ import * as MessageModule from './google/message.ts';
10
+ export type GoogleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = GoogleEngine.Instance<fdm, vdm>;
11
+ export declare namespace GoogleEngine {
12
+ class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Instance<fdm, vdm> {
13
+ protected options: GoogleEngine.Options<fdm, vdm>;
14
+ protected toolCodec: ToolCodec<fdm>;
15
+ protected messageCodec: MessageCodec<fdm, vdm>;
16
+ protected billing: Billing;
17
+ protected transport: Transport<fdm, vdm>;
18
+ protected structuringValidator: Engine.StructuringValidator.From<fdm, vdm>;
19
+ protected codeExecution: boolean;
20
+ protected urlContext: boolean;
21
+ protected googleSearch: boolean;
22
+ constructor(options: GoogleEngine.Options<fdm, vdm>);
23
+ clone(): GoogleEngine<fdm, vdm>;
24
+ protected infer(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
25
+ stateless(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
26
+ stateful(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
27
+ useStateless(middleware: Middleware.From<fdm, vdm>): GoogleEngine<fdm, vdm>;
28
+ useStateful(middleware: Middleware.From<fdm, vdm>): GoogleEngine<fdm, vdm>;
29
+ /**
30
+ * @param session mutable
31
+ */
32
+ agentloop(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>, fnm: Function.Map<fdm>, vhm: Verbatim.Handler.Map<vdm>, limit?: number): AsyncGenerator<string, string, void>;
33
+ }
34
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Options<fdm, vdm> {
35
+ codeExecution?: boolean;
36
+ urlContext?: boolean;
37
+ googleSearch?: boolean;
38
+ }
39
+ const create: Engine.Create;
40
+ export import RoleMessage = MessageModule.RoleMessage;
41
+ }