@zimtsui/brainswitch 0.0.56 → 0.0.57

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 (322) hide show
  1. package/README.md +109 -54
  2. package/assets/verbatim/declarations.handlebars +11 -0
  3. package/assets/verbatim/instruction.md +49 -0
  4. package/build/adaptor.d.ts +40 -9
  5. package/build/adaptor.js +36 -38
  6. package/build/adaptor.js.map +1 -1
  7. package/build/api-types/anthropic/billing.d.ts +5 -5
  8. package/build/api-types/anthropic/billing.js +1 -2
  9. package/build/api-types/anthropic/billing.js.map +1 -1
  10. package/build/api-types/anthropic/tool-codec.d.ts +11 -12
  11. package/build/api-types/anthropic/tool-codec.js +27 -42
  12. package/build/api-types/anthropic/tool-codec.js.map +1 -1
  13. package/build/api-types/google/billing.d.ts +5 -5
  14. package/build/api-types/google/billing.js +2 -3
  15. package/build/api-types/google/billing.js.map +1 -1
  16. package/build/api-types/google/restful-request.d.ts +1 -1
  17. package/build/api-types/google/restful-request.js +0 -1
  18. package/build/api-types/google/restful-request.js.map +1 -1
  19. package/build/api-types/google/tool-codec.d.ts +11 -11
  20. package/build/api-types/google/tool-codec.js +21 -19
  21. package/build/api-types/google/tool-codec.js.map +1 -1
  22. package/build/api-types/{openai-chatcompletion → openai-chatcompletions}/billing.d.ts +2 -3
  23. package/build/api-types/{openai-chatcompletion → openai-chatcompletions}/billing.js +0 -2
  24. package/build/api-types/openai-chatcompletions/billing.js.map +1 -0
  25. package/build/api-types/openai-chatcompletions/tool-codec.d.ts +17 -0
  26. package/build/api-types/{openai-chatcompletion → openai-chatcompletions}/tool-codec.js +26 -32
  27. package/build/api-types/openai-chatcompletions/tool-codec.js.map +1 -0
  28. package/build/api-types/openai-responses/billing.d.ts +5 -5
  29. package/build/api-types/openai-responses/billing.js +1 -2
  30. package/build/api-types/openai-responses/billing.js.map +1 -1
  31. package/build/api-types/openai-responses/tool-codec.d.ts +11 -11
  32. package/build/api-types/openai-responses/tool-codec.js +36 -32
  33. package/build/api-types/openai-responses/tool-codec.js.map +1 -1
  34. package/build/assets.d.ts +7 -0
  35. package/build/assets.js +8 -0
  36. package/build/assets.js.map +1 -0
  37. package/build/compatible-engine/session.d.ts +67 -0
  38. package/build/compatible-engine/session.js +92 -0
  39. package/build/compatible-engine/session.js.map +1 -0
  40. package/build/compatible-engine/structuring.d.ts +36 -0
  41. package/build/compatible-engine/structuring.js +34 -0
  42. package/build/compatible-engine/structuring.js.map +1 -0
  43. package/build/compatible-engine/validation.d.ts +21 -0
  44. package/build/compatible-engine/validation.js +82 -0
  45. package/build/compatible-engine/validation.js.map +1 -0
  46. package/build/compatible-engine.d/agentloop.d.ts +12 -0
  47. package/build/compatible-engine.d/agentloop.js +52 -0
  48. package/build/compatible-engine.d/agentloop.js.map +1 -0
  49. package/build/compatible-engine.d/aliyun/transport.d.ts +12 -0
  50. package/build/compatible-engine.d/aliyun/transport.js +7 -0
  51. package/build/compatible-engine.d/aliyun/transport.js.map +1 -0
  52. package/build/compatible-engine.d/aliyun.d.ts +24 -0
  53. package/build/compatible-engine.d/aliyun.js +46 -0
  54. package/build/compatible-engine.d/aliyun.js.map +1 -0
  55. package/build/compatible-engine.d/anthropic/choice-codec.d.ts +5 -0
  56. package/build/compatible-engine.d/anthropic/choice-codec.js +26 -0
  57. package/build/compatible-engine.d/anthropic/choice-codec.js.map +1 -0
  58. package/build/compatible-engine.d/anthropic/message-codec.d.ts +36 -0
  59. package/build/compatible-engine.d/anthropic/message-codec.js +86 -0
  60. package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -0
  61. package/build/compatible-engine.d/anthropic/transport.d.ts +34 -0
  62. package/build/compatible-engine.d/anthropic/transport.js +150 -0
  63. package/build/compatible-engine.d/anthropic/transport.js.map +1 -0
  64. package/build/compatible-engine.d/anthropic.d.ts +26 -0
  65. package/build/compatible-engine.d/anthropic.js +46 -0
  66. package/build/compatible-engine.d/anthropic.js.map +1 -0
  67. package/build/compatible-engine.d/google/choice-codec.d.ts +5 -0
  68. package/build/compatible-engine.d/google/choice-codec.js +27 -0
  69. package/build/compatible-engine.d/google/choice-codec.js.map +1 -0
  70. package/build/compatible-engine.d/google/message-codec.d.ts +36 -0
  71. package/build/compatible-engine.d/google/message-codec.js +94 -0
  72. package/build/compatible-engine.d/google/message-codec.js.map +1 -0
  73. package/build/compatible-engine.d/google/transport.d.ts +30 -0
  74. package/build/{compatible.d → compatible-engine.d}/google/transport.js +22 -18
  75. package/build/compatible-engine.d/google/transport.js.map +1 -0
  76. package/build/compatible-engine.d/google.d.ts +26 -0
  77. package/build/compatible-engine.d/google.js +50 -0
  78. package/build/compatible-engine.d/google.js.map +1 -0
  79. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.d.ts +5 -0
  80. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +31 -0
  81. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +1 -0
  82. package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +24 -0
  83. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +71 -0
  84. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -0
  85. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +38 -0
  86. package/build/{compatible.d/openai-chatcompletions.d → compatible-engine.d/openai-chatcompletions/transport.d}/monolith.js +25 -22
  87. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +1 -0
  88. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +37 -0
  89. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +190 -0
  90. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +1 -0
  91. package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +10 -0
  92. package/build/compatible-engine.d/openai-chatcompletions/transport.js +11 -0
  93. package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -0
  94. package/build/compatible-engine.d/openai-chatcompletions.d.ts +17 -0
  95. package/build/compatible-engine.d/openai-chatcompletions.js +14 -0
  96. package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -0
  97. package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +5 -0
  98. package/build/compatible-engine.d/openai-responses/choice-codec.js +30 -0
  99. package/build/compatible-engine.d/openai-responses/choice-codec.js.map +1 -0
  100. package/build/compatible-engine.d/openai-responses/message-codec.d.ts +36 -0
  101. package/build/compatible-engine.d/openai-responses/message-codec.js +96 -0
  102. package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -0
  103. package/build/compatible-engine.d/openai-responses/transport.d.ts +35 -0
  104. package/build/{compatible.d → compatible-engine.d}/openai-responses/transport.js +21 -29
  105. package/build/compatible-engine.d/openai-responses/transport.js.map +1 -0
  106. package/build/compatible-engine.d/openai-responses.d.ts +26 -0
  107. package/build/compatible-engine.d/openai-responses.js +46 -0
  108. package/build/compatible-engine.d/openai-responses.js.map +1 -0
  109. package/build/compatible-engine.d.ts +22 -0
  110. package/build/compatible-engine.js +29 -0
  111. package/build/compatible-engine.js.map +1 -0
  112. package/build/config.d.ts +1 -0
  113. package/build/config.js +1 -2
  114. package/build/config.js.map +1 -1
  115. package/build/endpoint-spec.d.ts +1 -0
  116. package/build/endpoint-spec.js +2 -1
  117. package/build/endpoint-spec.js.map +1 -1
  118. package/build/engine/session.d.ts +7 -0
  119. package/build/{session.js.map → engine/session.js.map} +1 -1
  120. package/build/engine/transport.d.ts +5 -0
  121. package/build/engine/transport.js +1 -0
  122. package/build/engine/transport.js.map +1 -0
  123. package/build/engine/validation.d.ts +9 -0
  124. package/build/engine/validation.js +1 -0
  125. package/build/engine/validation.js.map +1 -0
  126. package/build/engine.d.ts +49 -40
  127. package/build/engine.js +88 -70
  128. package/build/engine.js.map +1 -1
  129. package/build/exports.d.ts +14 -14
  130. package/build/exports.js +14 -14
  131. package/build/exports.js.map +1 -1
  132. package/build/function.d.ts +79 -66
  133. package/build/function.js +30 -47
  134. package/build/function.js.map +1 -1
  135. package/build/inference-context.d.ts +2 -2
  136. package/build/inference-context.js +0 -1
  137. package/build/inference-context.js.map +1 -1
  138. package/build/native-engines.d/google/message-codec.d.ts +18 -16
  139. package/build/native-engines.d/google/message-codec.js +31 -33
  140. package/build/native-engines.d/google/message-codec.js.map +1 -1
  141. package/build/native-engines.d/google/session.d.ts +44 -51
  142. package/build/native-engines.d/google/session.js +85 -81
  143. package/build/native-engines.d/google/session.js.map +1 -1
  144. package/build/native-engines.d/google/transport.d.ts +22 -19
  145. package/build/native-engines.d/google/transport.js +13 -13
  146. package/build/native-engines.d/google/transport.js.map +1 -1
  147. package/build/native-engines.d/google/validation.d.ts +22 -0
  148. package/build/native-engines.d/google/validation.js +20 -0
  149. package/build/native-engines.d/google/validation.js.map +1 -0
  150. package/build/native-engines.d/google.d/agentloop.d.ts +12 -0
  151. package/build/native-engines.d/google.d/agentloop.js +57 -0
  152. package/build/native-engines.d/google.d/agentloop.js.map +1 -0
  153. package/build/native-engines.d/google.d/exports.d.ts +3 -0
  154. package/build/native-engines.d/google.d/exports.js +4 -0
  155. package/build/native-engines.d/google.d/exports.js.map +1 -0
  156. package/build/native-engines.d/google.d.ts +42 -0
  157. package/build/native-engines.d/google.js +83 -0
  158. package/build/native-engines.d/google.js.map +1 -0
  159. package/build/native-engines.d/openai-responses/choice-codec.d.ts +5 -0
  160. package/build/native-engines.d/openai-responses/choice-codec.js +30 -0
  161. package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -0
  162. package/build/native-engines.d/openai-responses/message-codec.d.ts +19 -17
  163. package/build/native-engines.d/openai-responses/message-codec.js +31 -25
  164. package/build/native-engines.d/openai-responses/message-codec.js.map +1 -1
  165. package/build/native-engines.d/openai-responses/session.d.ts +47 -45
  166. package/build/native-engines.d/openai-responses/session.js +75 -105
  167. package/build/native-engines.d/openai-responses/session.js.map +1 -1
  168. package/build/native-engines.d/openai-responses/structuring.d.ts +19 -0
  169. package/build/native-engines.d/openai-responses/structuring.js +19 -0
  170. package/build/native-engines.d/openai-responses/structuring.js.map +1 -0
  171. package/build/native-engines.d/openai-responses/tool.d.ts +15 -12
  172. package/build/native-engines.d/openai-responses/tool.js +1 -12
  173. package/build/native-engines.d/openai-responses/tool.js.map +1 -1
  174. package/build/native-engines.d/openai-responses/transport.d.ts +24 -25
  175. package/build/native-engines.d/openai-responses/transport.js +21 -41
  176. package/build/native-engines.d/openai-responses/transport.js.map +1 -1
  177. package/build/native-engines.d/openai-responses/validation.d.ts +20 -0
  178. package/build/native-engines.d/openai-responses/validation.js +80 -0
  179. package/build/native-engines.d/openai-responses/validation.js.map +1 -0
  180. package/build/native-engines.d/openai-responses.d/agentloop.d.ts +12 -0
  181. package/build/native-engines.d/openai-responses.d/agentloop.js +61 -0
  182. package/build/native-engines.d/openai-responses.d/agentloop.js.map +1 -0
  183. package/build/native-engines.d/openai-responses.d/exports.d.ts +4 -0
  184. package/build/native-engines.d/openai-responses.d/exports.js +5 -0
  185. package/build/native-engines.d/openai-responses.d/exports.js.map +1 -0
  186. package/build/native-engines.d/openai-responses.d.ts +44 -0
  187. package/build/native-engines.d/openai-responses.js +78 -0
  188. package/build/native-engines.d/openai-responses.js.map +1 -0
  189. package/build/throttle.d.ts +6 -5
  190. package/build/throttle.js +17 -14
  191. package/build/throttle.js.map +1 -1
  192. package/build/tsconfig.tsbuildinfo +1 -1
  193. package/build/verbatim/codec/declarations.d.ts +2 -0
  194. package/build/verbatim/codec/declarations.js +22 -0
  195. package/build/verbatim/codec/declarations.js.map +1 -0
  196. package/build/verbatim/codec/request.d.ts +7 -0
  197. package/build/verbatim/codec/request.js +53 -0
  198. package/build/verbatim/codec/request.js.map +1 -0
  199. package/build/verbatim/codec.d.ts +2 -0
  200. package/build/verbatim/codec.js +3 -0
  201. package/build/verbatim/codec.js.map +1 -0
  202. package/build/verbatim.d.ts +74 -0
  203. package/build/verbatim.js +17 -0
  204. package/build/verbatim.js.map +1 -0
  205. package/examples/agent.ts +65 -0
  206. package/examples/chat.ts +24 -0
  207. package/examples/config.ts +24 -0
  208. package/{test/src → examples}/tsconfig.json +6 -2
  209. package/examples/verbatim.ts +44 -0
  210. package/package.json +10 -9
  211. package/build/agentloop.d.ts +0 -12
  212. package/build/agentloop.js +0 -43
  213. package/build/agentloop.js.map +0 -1
  214. package/build/api-types/openai-chatcompletion/billing.js.map +0 -1
  215. package/build/api-types/openai-chatcompletion/tool-codec.d.ts +0 -18
  216. package/build/api-types/openai-chatcompletion/tool-codec.js.map +0 -1
  217. package/build/compatible/engine.d/aliyun.d.ts +0 -23
  218. package/build/compatible/engine.d/aliyun.js +0 -44
  219. package/build/compatible/engine.d/aliyun.js.map +0 -1
  220. package/build/compatible/engine.d/anthropic.d.ts +0 -23
  221. package/build/compatible/engine.d/anthropic.js +0 -41
  222. package/build/compatible/engine.d/anthropic.js.map +0 -1
  223. package/build/compatible/engine.d/google.d.ts +0 -23
  224. package/build/compatible/engine.d/google.js +0 -45
  225. package/build/compatible/engine.d/google.js.map +0 -1
  226. package/build/compatible/engine.d/openai-responses.d.ts +0 -23
  227. package/build/compatible/engine.d/openai-responses.js +0 -41
  228. package/build/compatible/engine.d/openai-responses.js.map +0 -1
  229. package/build/compatible/engine.d.ts +0 -18
  230. package/build/compatible/engine.js +0 -21
  231. package/build/compatible/engine.js.map +0 -1
  232. package/build/compatible/session.d.ts +0 -78
  233. package/build/compatible/session.js +0 -138
  234. package/build/compatible/session.js.map +0 -1
  235. package/build/compatible/tool-call-validator.d.ts +0 -11
  236. package/build/compatible/tool-call-validator.js +0 -12
  237. package/build/compatible/tool-call-validator.js.map +0 -1
  238. package/build/compatible.d/aliyun/transport.d.ts +0 -11
  239. package/build/compatible.d/aliyun/transport.js +0 -9
  240. package/build/compatible.d/aliyun/transport.js.map +0 -1
  241. package/build/compatible.d/anthropic/message-codec.d.ts +0 -31
  242. package/build/compatible.d/anthropic/message-codec.js +0 -88
  243. package/build/compatible.d/anthropic/message-codec.js.map +0 -1
  244. package/build/compatible.d/anthropic/transport.d.ts +0 -31
  245. package/build/compatible.d/anthropic/transport.js +0 -137
  246. package/build/compatible.d/anthropic/transport.js.map +0 -1
  247. package/build/compatible.d/google/message-codec.d.ts +0 -31
  248. package/build/compatible.d/google/message-codec.js +0 -98
  249. package/build/compatible.d/google/message-codec.js.map +0 -1
  250. package/build/compatible.d/google/transport.d.ts +0 -28
  251. package/build/compatible.d/google/transport.js.map +0 -1
  252. package/build/compatible.d/openai-chatcompletions/message-codec.d.ts +0 -19
  253. package/build/compatible.d/openai-chatcompletions/message-codec.js +0 -66
  254. package/build/compatible.d/openai-chatcompletions/message-codec.js.map +0 -1
  255. package/build/compatible.d/openai-chatcompletions/transport.d.ts +0 -9
  256. package/build/compatible.d/openai-chatcompletions/transport.js +0 -25
  257. package/build/compatible.d/openai-chatcompletions/transport.js.map +0 -1
  258. package/build/compatible.d/openai-chatcompletions.d/monolith.d.ts +0 -36
  259. package/build/compatible.d/openai-chatcompletions.d/monolith.js.map +0 -1
  260. package/build/compatible.d/openai-chatcompletions.d/stream.d.ts +0 -35
  261. package/build/compatible.d/openai-chatcompletions.d/stream.js +0 -196
  262. package/build/compatible.d/openai-chatcompletions.d/stream.js.map +0 -1
  263. package/build/compatible.d/openai-responses/message-codec.d.ts +0 -32
  264. package/build/compatible.d/openai-responses/message-codec.js +0 -105
  265. package/build/compatible.d/openai-responses/message-codec.js.map +0 -1
  266. package/build/compatible.d/openai-responses/transport.d.ts +0 -33
  267. package/build/compatible.d/openai-responses/transport.js.map +0 -1
  268. package/build/frontmatter.d.ts +0 -5
  269. package/build/frontmatter.js +0 -13
  270. package/build/frontmatter.js.map +0 -1
  271. package/build/native-engines.d/google/agentloop.d.ts +0 -12
  272. package/build/native-engines.d/google/agentloop.js +0 -42
  273. package/build/native-engines.d/google/agentloop.js.map +0 -1
  274. package/build/native-engines.d/google/engine.d.ts +0 -35
  275. package/build/native-engines.d/google/engine.js +0 -73
  276. package/build/native-engines.d/google/engine.js.map +0 -1
  277. package/build/native-engines.d/google/exports.d.ts +0 -5
  278. package/build/native-engines.d/google/exports.js +0 -6
  279. package/build/native-engines.d/google/exports.js.map +0 -1
  280. package/build/native-engines.d/openai-responses/agentloop.d.ts +0 -13
  281. package/build/native-engines.d/openai-responses/agentloop.js +0 -53
  282. package/build/native-engines.d/openai-responses/agentloop.js.map +0 -1
  283. package/build/native-engines.d/openai-responses/engine.d.ts +0 -32
  284. package/build/native-engines.d/openai-responses/engine.js +0 -63
  285. package/build/native-engines.d/openai-responses/engine.js.map +0 -1
  286. package/build/native-engines.d/openai-responses/exports.d.ts +0 -6
  287. package/build/native-engines.d/openai-responses/exports.js +0 -7
  288. package/build/native-engines.d/openai-responses/exports.js.map +0 -1
  289. package/build/native-engines.d/openai-responses/tool-call-validator.d.ts +0 -12
  290. package/build/native-engines.d/openai-responses/tool-call-validator.js +0 -33
  291. package/build/native-engines.d/openai-responses/tool-call-validator.js.map +0 -1
  292. package/build/session.d.ts +0 -7
  293. package/test/build/test-codecs.d.ts +0 -1
  294. package/test/build/test-codecs.js +0 -230
  295. package/test/build/test-codecs.js.map +0 -1
  296. package/test/build/test-compatible-engine.d.ts +0 -1
  297. package/test/build/test-compatible-engine.js +0 -27
  298. package/test/build/test-compatible-engine.js.map +0 -1
  299. package/test/build/test-compatible-engines.d.ts +0 -1
  300. package/test/build/test-compatible-engines.js +0 -112
  301. package/test/build/test-compatible-engines.js.map +0 -1
  302. package/test/build/test-engine.d.ts +0 -1
  303. package/test/build/test-engine.js +0 -97
  304. package/test/build/test-engine.js.map +0 -1
  305. package/test/build/test-helpers.d.ts +0 -46
  306. package/test/build/test-helpers.js +0 -45
  307. package/test/build/test-helpers.js.map +0 -1
  308. package/test/build/test-native-engines.d.ts +0 -1
  309. package/test/build/test-native-engines.js +0 -64
  310. package/test/build/test-native-engines.js.map +0 -1
  311. package/test/build/test.d.ts +0 -5
  312. package/test/build/test.js +0 -6
  313. package/test/build/test.js.map +0 -1
  314. package/test/build/tsconfig.tsbuildinfo +0 -1
  315. package/test/src/test-codecs.ts +0 -256
  316. package/test/src/test-compatible-engine.ts +0 -45
  317. package/test/src/test-compatible-engines.ts +0 -129
  318. package/test/src/test-engine.ts +0 -144
  319. package/test/src/test-helpers.ts +0 -53
  320. package/test/src/test-native-engines.ts +0 -75
  321. package/test/src/test.ts +0 -5
  322. /package/build/{session.js → engine/session.js} +0 -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
+ }
@@ -1,12 +1,9 @@
1
- import { ResponseInvalid } from '#@/engine.ts';
2
- import { RoleMessage } from '#@/compatible/session.ts';
3
- import { Function } from '#@/function.ts';
1
+ import { NetworkError, ResponseInvalid } from "../../engine.js";
4
2
  import * as Google from '@google/genai';
5
3
  import * as Undici from 'undici';
6
- import {} from '#@/inference-context.ts';
7
- import { Throttle } from '#@/throttle.ts';
8
- import { logger } from '#@/telemetry.ts';
9
- export class GoogleCompatibleTransport {
4
+ import { logger } from "../../telemetry.js";
5
+ import * as ChoiceCodec from "./choice-codec.js";
6
+ export class Transport {
10
7
  ctx;
11
8
  apiURL;
12
9
  constructor(ctx) {
@@ -14,17 +11,18 @@ export class GoogleCompatibleTransport {
14
11
  this.apiURL = new URL(`${this.ctx.providerSpec.baseUrl}/v1beta/models/${this.ctx.inferenceParams.model}:generateContent`);
15
12
  }
16
13
  async fetch(wfctx, session, signal) {
17
- const systemInstruction = session.developerMessage && this.ctx.messageCodec.convertFromDeveloperMessage(session.developerMessage);
18
- const contents = this.ctx.messageCodec.convertFromChatMessages(session.chatMessages);
19
14
  await this.ctx.throttle.requests(wfctx);
20
- const tools = this.ctx.toolCodec.convertFromFunctionDeclarationMap(this.ctx.fdm);
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);
21
19
  const reqbody = {
22
20
  contents,
23
21
  tools: tools.length ? [{
24
22
  functionDeclarations: tools,
25
23
  }] : undefined,
26
24
  toolConfig: tools.length ? {
27
- functionCallingConfig: this.ctx.toolCodec.convertFromToolChoice(this.ctx.toolChoice),
25
+ functionCallingConfig: ChoiceCodec.encode(this.ctx.choice),
28
26
  } : undefined,
29
27
  systemInstruction,
30
28
  generationConfig: this.ctx.inferenceParams.maxTokens || this.ctx.inferenceParams.additionalOptions ? {
@@ -33,6 +31,7 @@ export class GoogleCompatibleTransport {
33
31
  } : undefined,
34
32
  };
35
33
  logger.message.trace(reqbody);
34
+ // Send request
36
35
  const res = await Undici.fetch(this.apiURL, {
37
36
  method: 'POST',
38
37
  headers: new Headers({
@@ -42,12 +41,19 @@ export class GoogleCompatibleTransport {
42
41
  body: JSON.stringify(reqbody),
43
42
  dispatcher: this.ctx.providerSpec.proxyAgent,
44
43
  signal,
44
+ }).catch(e => {
45
+ if (e instanceof TypeError)
46
+ throw new NetworkError(undefined, { cause: e });
47
+ else
48
+ throw e;
45
49
  });
46
- logger.message.trace(res);
50
+ // Get response
47
51
  if (res.ok) { }
48
52
  else
49
53
  throw new Error(undefined, { cause: res });
50
54
  const response = await res.json();
55
+ logger.message.trace(response);
56
+ // Validate response
51
57
  if (response.candidates?.[0]?.content?.parts?.length) { }
52
58
  else
53
59
  throw new ResponseInvalid('Content missing', { cause: response });
@@ -56,19 +62,17 @@ export class GoogleCompatibleTransport {
56
62
  if (response.candidates[0].finishReason === Google.FinishReason.STOP) { }
57
63
  else
58
64
  throw new ResponseInvalid('Abnormal finish reason', { cause: response });
65
+ if (response.usageMetadata) { }
66
+ else
67
+ throw new ResponseInvalid('Usage metadata missing', { cause: response });
59
68
  for (const part of response.candidates[0].content.parts) {
60
69
  if (part.text)
61
70
  logger.inference.debug(part.text);
62
71
  if (part.functionCall)
63
72
  logger.message.debug(part.functionCall);
64
73
  }
65
- if (response.usageMetadata) { }
66
- else
67
- throw new ResponseInvalid('Usage metadata missing', { cause: response });
68
74
  wfctx.cost?.(this.ctx.billing.charge(response.usageMetadata));
69
- const aiMessage = this.ctx.messageCodec.convertToAiMessage(response.candidates[0].content);
70
- this.ctx.toolCallValidator.validate(aiMessage.getFunctionCalls());
71
- return aiMessage;
75
+ return this.ctx.messageCodec.decodeAiMessage(response.candidates[0].content);
72
76
  }
73
77
  }
74
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
+ }