@zimtsui/brainswitch 0.0.56 → 0.0.59

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 +15 -13
  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,50 @@
1
+ import { CompatibleEngine } from "../compatible-engine.js";
2
+ import * as MessageCodecModule from "./google/message-codec.js";
3
+ import { ToolCodec } from "../api-types/google/tool-codec.js";
4
+ import { Billing } from "../api-types/google/billing.js";
5
+ import { Validator } from "../compatible-engine/validation.js";
6
+ import * as TransportModule from "./google/transport.js";
7
+ import * as ChoiceCodecModule from "./google/choice-codec.js";
8
+ export var GoogleCompatibleEngine;
9
+ (function (GoogleCompatibleEngine) {
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 ?? true;
20
+ if (this.parallelToolCall) { }
21
+ else
22
+ throw new Error('Parallel tool calling is required by Google engine.');
23
+ this.toolCodec = new ToolCodec({
24
+ fdm: this.fdm,
25
+ });
26
+ this.messageCodec = new GoogleCompatibleEngine.MessageCodec({
27
+ toolCodec: this.toolCodec,
28
+ vdm: this.vdm,
29
+ });
30
+ this.billing = new Billing({ pricing: this.pricing });
31
+ this.validator = new Validator({ choice: this.choice });
32
+ this.transport = new GoogleCompatibleEngine.Transport({
33
+ inferenceParams: this.inferenceParams,
34
+ providerSpec: this.providerSpec,
35
+ fdm: this.fdm,
36
+ throttle: this.throttle,
37
+ choice: this.choice,
38
+ messageCodec: this.messageCodec,
39
+ toolCodec: this.toolCodec,
40
+ billing: this.billing,
41
+ validator: this.validator,
42
+ });
43
+ }
44
+ }
45
+ GoogleCompatibleEngine.Instance = Instance;
46
+ GoogleCompatibleEngine.Transport = TransportModule.Transport;
47
+ GoogleCompatibleEngine.MessageCodec = MessageCodecModule.MessageCodec;
48
+ GoogleCompatibleEngine.ChoiceCodec = ChoiceCodecModule;
49
+ })(GoogleCompatibleEngine || (GoogleCompatibleEngine = {}));
50
+ //# sourceMappingURL=google.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/compatible-engine.d/google.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAQ9D,MAAM,KAAW,sBAAsB,CAgDtC;AAhDD,WAAiB,sBAAsB;IACnC,MAAa,QAGX,SAAQ,gBAAgB,CAAC,QAAkB;QAC/B,SAAS,CAAiB;QAC1B,YAAY,CAAgD;QAC5D,OAAO,CAAU;QACR,SAAS,CAA2B;QACpC,SAAS,CAA6C;QACtD,gBAAgB,CAAU;QAE7C,YAAmB,OAAiD;YAChE,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;YACzD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAA,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC1G,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;gBAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,YAAY,CAAC;gBACxD,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,sBAAsB,CAAC,SAAS,CAAC;gBAClD,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,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;KAEJ;IArCY,+BAAQ,WAqCpB,CAAA;IAOa,gCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IACtC,mCAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;IAC/C,kCAAW,GAAG,iBAAiB,CAAC;AAClD,CAAC,EAhDgB,sBAAsB,KAAtB,sBAAsB,QAgDtC"}
@@ -0,0 +1,5 @@
1
+ import type { Function } from '../../function.ts';
2
+ import type { Verbatim } from '../../verbatim.ts';
3
+ import OpenAI from 'openai';
4
+ import { Structuring } from '../../compatible-engine/structuring.ts';
5
+ export declare function encode<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(choice: Structuring.Choice<fdu, vdu>): OpenAI.ChatCompletionToolChoiceOption;
@@ -0,0 +1,31 @@
1
+ import { Structuring } from "../../compatible-engine/structuring.js";
2
+ export function encode(choice) {
3
+ if (choice === Structuring.Choice.NONE)
4
+ return 'none';
5
+ else if (choice === Structuring.Choice.REQUIRED)
6
+ return 'auto';
7
+ else if (choice === Structuring.Choice.ANYONE)
8
+ return 'auto';
9
+ else if (choice === Structuring.Choice.AUTO)
10
+ return 'auto';
11
+ else if (choice === Structuring.Choice.FCall.REQUIRED)
12
+ return 'required';
13
+ else if (choice === Structuring.Choice.FCall.ANYONE)
14
+ return 'required';
15
+ else if (choice instanceof Structuring.Choice.FCall)
16
+ return {
17
+ type: 'function',
18
+ function: {
19
+ name: choice.name,
20
+ },
21
+ };
22
+ else if (choice === Structuring.Choice.VRequest.REQUIRED)
23
+ return 'none';
24
+ else if (choice === Structuring.Choice.VRequest.ANYONE)
25
+ return 'none';
26
+ else if (choice instanceof Structuring.Choice.VRequest)
27
+ return 'none';
28
+ else
29
+ throw new Error();
30
+ }
31
+ //# sourceMappingURL=choice-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"choice-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-chatcompletions/choice-codec.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AAGrE,MAAM,UAAU,MAAM,CAIlB,MAAoC;IAGpC,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;SACjD,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;SAC1D,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;SACxD,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;SAEtD,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;SACpE,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;SAClE,IAAI,MAAM,YAAY,WAAW,CAAC,MAAM,CAAC,KAAK;QAC/C,OAAO;YACH,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE;gBACN,IAAI,EAAE,MAAM,CAAC,IAAI;aACpB;SACJ,CAAC;SAED,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;SACnE,IAAI,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;SACjE,IAAI,MAAM,YAAY,WAAW,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;;QAEjE,MAAM,IAAI,KAAK,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { RoleMessage, type Session } from '../../compatible-engine/session.ts';
2
+ import { Function } from '../../function.ts';
3
+ import OpenAI from 'openai';
4
+ import type { OpenAIChatCompletionsToolCodec } from '../../api-types/openai-chatcompletions/tool-codec.ts';
5
+ import type { Verbatim } from '../../verbatim.ts';
6
+ export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
7
+ protected ctx: MessageCodec.Context<fdm, vdm>;
8
+ constructor(ctx: MessageCodec.Context<fdm, vdm>);
9
+ /**
10
+ * @throws {@link VerbatimCodec.Request.Invalid}
11
+ */
12
+ decodeAiMessage(message: OpenAI.ChatCompletionMessage): RoleMessage.Ai.From<fdm, vdm>;
13
+ encodeDeveloperMessage(developerMessage: RoleMessage.Developer): OpenAI.ChatCompletionSystemMessageParam;
14
+ encodeUserMessage(userMessage: RoleMessage.User.From<fdm>): [OpenAI.ChatCompletionUserMessageParam] | OpenAI.ChatCompletionToolMessageParam[];
15
+ encodeAiMessage(aiMessage: RoleMessage.Ai.From<fdm, vdm>): OpenAI.ChatCompletionAssistantMessageParam;
16
+ encodeRoleMessage(roleMessage: Session.ChatMessage.From<fdm, vdm> | RoleMessage.Developer): OpenAI.ChatCompletionMessageParam[];
17
+ encodeRoleMessages(chatMessages: (Session.ChatMessage.From<fdm, vdm> | RoleMessage.Developer)[]): OpenAI.ChatCompletionMessageParam[];
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: OpenAIChatCompletionsToolCodec<fdm>;
22
+ vdm: vdm;
23
+ }
24
+ }
@@ -0,0 +1,71 @@
1
+ import { ResponseInvalid } from "../../engine.js";
2
+ import { RoleMessage } from "../../compatible-engine/session.js";
3
+ import { Function } from "../../function.js";
4
+ import * as VerbatimCodec from "../../verbatim/codec.js";
5
+ export class MessageCodec {
6
+ ctx;
7
+ constructor(ctx) {
8
+ this.ctx = ctx;
9
+ }
10
+ /**
11
+ * @throws {@link VerbatimCodec.Request.Invalid}
12
+ */
13
+ decodeAiMessage(message) {
14
+ const parts = [];
15
+ if (message.content) {
16
+ const vrs = VerbatimCodec.Request.decode(message.content, this.ctx.vdm);
17
+ parts.push(new RoleMessage.Part.Text(message.content, vrs));
18
+ }
19
+ if (message.tool_calls)
20
+ parts.push(...message.tool_calls.map(apifc => {
21
+ if (apifc.type === 'function') { }
22
+ else
23
+ throw new Error();
24
+ return this.ctx.toolCodec.decodeFunctionCall(apifc);
25
+ }));
26
+ if (parts.length) { }
27
+ else
28
+ throw new ResponseInvalid('Content or tool calls not found in Response', { cause: message });
29
+ return new RoleMessage.Ai(parts);
30
+ }
31
+ encodeDeveloperMessage(developerMessage) {
32
+ return {
33
+ role: 'system',
34
+ content: developerMessage.getText(),
35
+ };
36
+ }
37
+ encodeUserMessage(userMessage) {
38
+ const textParts = userMessage.getParts().filter(part => part instanceof RoleMessage.Part.Text);
39
+ const frs = userMessage.getFunctionResponses();
40
+ if (textParts.length && !frs.length)
41
+ return [{ role: 'user', content: textParts.map(part => ({ type: 'text', text: part.text })) }];
42
+ else if (!textParts.length && frs.length)
43
+ return frs.map(fr => this.ctx.toolCodec.encodeFunctionResponse(fr));
44
+ else
45
+ throw new Error();
46
+ }
47
+ encodeAiMessage(aiMessage) {
48
+ const parts = aiMessage.getParts();
49
+ const textParts = parts.filter(part => part instanceof RoleMessage.Part.Text);
50
+ const fcParts = parts.filter(part => part instanceof Function.Call);
51
+ return {
52
+ role: 'assistant',
53
+ content: textParts.length ? textParts.map(part => part.text).join('') : undefined,
54
+ tool_calls: fcParts.length ? fcParts.map(fc => this.ctx.toolCodec.encodeFunctionCall(fc)) : undefined,
55
+ };
56
+ }
57
+ encodeRoleMessage(roleMessage) {
58
+ if (roleMessage instanceof RoleMessage.Developer)
59
+ return [this.encodeDeveloperMessage(roleMessage)];
60
+ else if (roleMessage instanceof RoleMessage.User)
61
+ return this.encodeUserMessage(roleMessage);
62
+ else if (roleMessage instanceof RoleMessage.Ai)
63
+ return [this.encodeAiMessage(roleMessage)];
64
+ else
65
+ throw new Error();
66
+ }
67
+ encodeRoleMessages(chatMessages) {
68
+ return chatMessages.map(chatMessage => this.encodeRoleMessage(chatMessage)).flat();
69
+ }
70
+ }
71
+ //# sourceMappingURL=message-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-chatcompletions/message-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { RoleMessage, type Session } from '../../../compatible-engine/session.ts';
2
+ import { Function } from '../../../function.ts';
3
+ import type OpenAI from 'openai';
4
+ import { Transport } from '../transport.ts';
5
+ import { type InferenceContext } from '../../../inference-context.ts';
6
+ import * as Undici from 'undici';
7
+ import type { OpenAIChatCompletionsBilling } from '../../../api-types/openai-chatcompletions/billing.ts';
8
+ import type { OpenAIChatCompletionsToolCodec } from '../../../api-types/openai-chatcompletions/tool-codec.ts';
9
+ import type { MessageCodec } from '../message-codec.ts';
10
+ import type { Throttle } from '../../../throttle.ts';
11
+ import type { Verbatim } from '../../../verbatim.ts';
12
+ import { Validator } from '../../../compatible-engine/validation.ts';
13
+ import type { Structuring } from '../../../compatible-engine/structuring.ts';
14
+ export declare abstract class MonolithTransport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Transport<fdm, vdm> {
15
+ protected ctx: MonolithTransport.Context<fdm, vdm>;
16
+ constructor(ctx: MonolithTransport.Context<fdm, vdm>);
17
+ protected getApiURL(baseUrl: string): URL;
18
+ protected makeParams(session: Session.From<fdm, vdm>): OpenAI.ChatCompletionCreateParamsNonStreaming;
19
+ fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
20
+ }
21
+ export declare namespace MonolithTransport {
22
+ interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
23
+ proxyAgent?: Undici.ProxyAgent;
24
+ apiURL: URL;
25
+ apiKey: string;
26
+ model: string;
27
+ fdm: fdm;
28
+ maxTokens?: number;
29
+ throttle: Throttle;
30
+ additionalOptions?: Record<string, unknown>;
31
+ choice: Structuring.Choice.From<fdm, vdm>;
32
+ parallelToolCall: boolean;
33
+ messageCodec: MessageCodec<fdm, vdm>;
34
+ toolCodec: OpenAIChatCompletionsToolCodec<fdm>;
35
+ billing: OpenAIChatCompletionsBilling;
36
+ validator: Validator.From<fdm, vdm>;
37
+ }
38
+ }
@@ -1,11 +1,9 @@
1
- import { RoleMessage } from '#@/compatible/session.ts';
2
- import { Function } from '#@/function.ts';
3
- import { OpenAIChatCompletionsCompatibleTransport } from '#@/compatible.d/openai-chatcompletions/transport.ts';
4
- import {} from '#@/inference-context.ts';
1
+ import { Transport } from "../transport.js";
5
2
  import * as Undici from 'undici';
6
- import { ResponseInvalid } from '#@/engine.ts';
7
- import { logger } from '#@/telemetry.ts';
8
- export class OpenAIChatCompletionsCompatibleMonolith extends OpenAIChatCompletionsCompatibleTransport {
3
+ import { ResponseInvalid, NetworkError } from "../../../engine.js";
4
+ import { logger } from "../../../telemetry.js";
5
+ import * as ChoiceCodec from "../choice-codec.js";
6
+ export class MonolithTransport extends Transport {
9
7
  ctx;
10
8
  constructor(ctx) {
11
9
  super();
@@ -15,25 +13,27 @@ export class OpenAIChatCompletionsCompatibleMonolith extends OpenAIChatCompletio
15
13
  return new URL(`${baseUrl}/chat/completions`);
16
14
  }
17
15
  makeParams(session) {
18
- const tools = this.ctx.toolCodec.convertFromFunctionDeclarationMap(this.ctx.fdm);
16
+ const tools = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
19
17
  return {
20
18
  model: this.ctx.model,
21
19
  stream: false,
22
20
  messages: [
23
- ...(session.developerMessage ? this.ctx.messageCodec.convertFromRoleMessage(session.developerMessage) : []),
24
- ...this.ctx.messageCodec.convertFromChatMessages(session.chatMessages),
21
+ ...(session.developerMessage ? this.ctx.messageCodec.encodeRoleMessage(session.developerMessage) : []),
22
+ ...this.ctx.messageCodec.encodeRoleMessages(session.chatMessages),
25
23
  ],
26
24
  tools: tools.length ? tools : undefined,
27
- tool_choice: tools.length ? this.ctx.toolCodec.convertFromToolChoice(this.ctx.toolChoice) : undefined,
25
+ tool_choice: tools.length ? ChoiceCodec.encode(this.ctx.choice) : undefined,
28
26
  parallel_tool_calls: tools.length ? this.ctx.parallelToolCall : undefined,
29
27
  max_completion_tokens: this.ctx.maxTokens ?? undefined,
30
28
  ...this.ctx.additionalOptions,
31
29
  };
32
30
  }
33
- async fetchRaw(wfctx, session, signal) {
31
+ async fetch(wfctx, session, signal) {
32
+ await this.ctx.throttle.requests(wfctx);
33
+ // Prepare request
34
34
  const params = this.makeParams(session);
35
35
  logger.message.trace(params);
36
- await this.ctx.throttle.requests(wfctx);
36
+ // Send request
37
37
  const res = await Undici.fetch(this.ctx.apiURL, {
38
38
  method: 'POST',
39
39
  headers: new Headers({
@@ -43,12 +43,19 @@ export class OpenAIChatCompletionsCompatibleMonolith extends OpenAIChatCompletio
43
43
  body: JSON.stringify(params),
44
44
  dispatcher: this.ctx.proxyAgent,
45
45
  signal,
46
+ }).catch(e => {
47
+ if (e instanceof TypeError)
48
+ throw new NetworkError(undefined, { cause: e });
49
+ else
50
+ throw e;
46
51
  });
52
+ // Get response
47
53
  if (res.ok) { }
48
54
  else
49
55
  throw new Error(undefined, { cause: res });
50
56
  const completion = await res.json();
51
57
  logger.message.trace(completion);
58
+ // Validate response
52
59
  const choice = completion.choices[0];
53
60
  if (choice) { }
54
61
  else
@@ -58,17 +65,13 @@ export class OpenAIChatCompletionsCompatibleMonolith extends OpenAIChatCompletio
58
65
  else
59
66
  throw new Error();
60
67
  const cost = this.ctx.billing.charge(completion.usage);
61
- const aiMessage = this.ctx.messageCodec.convertToAiMessage(choice.message);
62
- const text = aiMessage.getText();
63
- if (text)
64
- logger.inference.debug(text);
65
- const apifcs = choice.message.tool_calls;
66
- if (apifcs?.length)
67
- logger.message.debug(apifcs);
68
+ if (choice.message.content)
69
+ logger.inference.debug(choice.message.content);
70
+ if (choice.message.tool_calls)
71
+ logger.message.debug(choice.message.tool_calls);
68
72
  logger.message.debug(completion.usage);
69
73
  wfctx.cost?.(cost);
70
- this.ctx.toolCallValidator.validate(aiMessage.getFunctionCalls());
71
- return aiMessage;
74
+ return this.ctx.messageCodec.decodeAiMessage(choice.message);
72
75
  }
73
76
  }
74
77
  //# sourceMappingURL=monolith.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monolith.js","sourceRoot":"","sources":["../../../../src/compatible-engine.d/openai-chatcompletions/transport.d/monolith.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { RoleMessage, type Session } from '../../../compatible-engine/session.ts';
2
+ import { Function } from '../../../function.ts';
3
+ import OpenAI from 'openai';
4
+ import { Transport } from '../transport.ts';
5
+ import { type InferenceContext } from '../../../inference-context.ts';
6
+ import { type InferenceParams, type ProviderSpec } from '../../../engine.ts';
7
+ import type { OpenAIChatCompletionsBilling } from '../../../api-types/openai-chatcompletions/billing.ts';
8
+ import type { OpenAIChatCompletionsToolCodec } from '../../../api-types/openai-chatcompletions/tool-codec.ts';
9
+ import { Throttle } from '../../../throttle.ts';
10
+ import { type MessageCodec } from '../message-codec.ts';
11
+ import type { Verbatim } from '../../../verbatim.ts';
12
+ import { Validator } from '../../../compatible-engine/validation.ts';
13
+ import type { Structuring } from '../../../compatible-engine/structuring.ts';
14
+ export declare abstract class StreamTransport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Transport<fdm, vdm> {
15
+ protected ctx: StreamTransport.Context<fdm, vdm>;
16
+ protected client: OpenAI;
17
+ constructor(ctx: StreamTransport.Context<fdm, vdm>);
18
+ protected makeParams(session: Session.From<fdm, vdm>): OpenAI.ChatCompletionCreateParamsStreaming;
19
+ convertFromDeltaToolCall(apifc: OpenAI.ChatCompletionChunk.Choice.Delta.ToolCall): OpenAI.ChatCompletionMessageFunctionToolCall;
20
+ convertCompletionStockToCompletion(stock: OpenAI.ChatCompletionChunk): OpenAI.ChatCompletion;
21
+ fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
22
+ protected abstract getDeltaThoughts(delta: OpenAI.ChatCompletionChunk.Choice.Delta): string;
23
+ }
24
+ export declare namespace StreamTransport {
25
+ interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
26
+ inferenceParams: InferenceParams;
27
+ providerSpec: ProviderSpec;
28
+ fdm: fdm;
29
+ throttle: Throttle;
30
+ choice: Structuring.Choice.From<fdm, vdm>;
31
+ parallelToolCall: boolean;
32
+ messageCodec: MessageCodec<fdm, vdm>;
33
+ toolCodec: OpenAIChatCompletionsToolCodec<fdm>;
34
+ billing: OpenAIChatCompletionsBilling;
35
+ validator: Validator.From<fdm, vdm>;
36
+ }
37
+ }
@@ -0,0 +1,190 @@
1
+ import OpenAI from 'openai';
2
+ import { Transport } from "../transport.js";
3
+ import { ResponseInvalid, NetworkError } from "../../../engine.js";
4
+ import { logger } from "../../../telemetry.js";
5
+ import * as ChoiceCodec from "../choice-codec.js";
6
+ export class StreamTransport extends Transport {
7
+ ctx;
8
+ client;
9
+ constructor(ctx) {
10
+ super();
11
+ this.ctx = ctx;
12
+ this.client = new OpenAI({
13
+ baseURL: this.ctx.providerSpec.baseUrl,
14
+ apiKey: this.ctx.providerSpec.apiKey,
15
+ fetchOptions: {
16
+ dispatcher: this.ctx.providerSpec.proxyAgent,
17
+ },
18
+ });
19
+ }
20
+ makeParams(session) {
21
+ const tools = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
22
+ return {
23
+ model: this.ctx.inferenceParams.model,
24
+ messages: [
25
+ ...(session.developerMessage ? this.ctx.messageCodec.encodeRoleMessage(session.developerMessage) : []),
26
+ ...this.ctx.messageCodec.encodeRoleMessages(session.chatMessages),
27
+ ],
28
+ tools: tools.length ? tools : undefined,
29
+ tool_choice: tools.length ? ChoiceCodec.encode(this.ctx.choice) : undefined,
30
+ parallel_tool_calls: tools.length ? this.ctx.parallelToolCall : undefined,
31
+ stream: true,
32
+ stream_options: {
33
+ include_usage: true
34
+ },
35
+ max_completion_tokens: this.ctx.inferenceParams.maxTokens ?? undefined,
36
+ ...this.ctx.inferenceParams.additionalOptions,
37
+ };
38
+ }
39
+ convertFromDeltaToolCall(apifc) {
40
+ if (apifc.id) { }
41
+ else
42
+ throw new Error();
43
+ if (apifc.function?.name) { }
44
+ else
45
+ throw new Error();
46
+ if (apifc.function?.arguments) { }
47
+ else
48
+ throw new Error();
49
+ return apifc;
50
+ }
51
+ convertCompletionStockToCompletion(stock) {
52
+ const stockChoice = stock?.choices[0];
53
+ if (stockChoice?.finish_reason) { }
54
+ else
55
+ throw new ResponseInvalid('Finish reason missing', { cause: stock });
56
+ const completion = {
57
+ id: stock.id,
58
+ object: 'chat.completion',
59
+ created: stock.created,
60
+ model: stock.model,
61
+ choices: [{
62
+ index: 0,
63
+ finish_reason: stockChoice.finish_reason,
64
+ message: {
65
+ role: 'assistant',
66
+ content: stockChoice.delta.content ?? null,
67
+ tool_calls: stockChoice.delta.tool_calls?.map(apifc => this.convertFromDeltaToolCall(apifc)),
68
+ refusal: stockChoice.delta.refusal ?? null,
69
+ },
70
+ logprobs: stockChoice.logprobs ?? null,
71
+ }],
72
+ usage: stock.usage ?? undefined,
73
+ };
74
+ return completion;
75
+ }
76
+ async fetch(wfctx, session, signal) {
77
+ try {
78
+ await this.ctx.throttle.requests(wfctx);
79
+ // Prepare request
80
+ const params = this.makeParams(session);
81
+ logger.message.trace(params);
82
+ // Send request
83
+ const stream = await this.client.chat.completions.create(params, { signal });
84
+ // Get response
85
+ let stock = null;
86
+ try {
87
+ let thoughts = null, thinking = false;
88
+ for await (const chunk of stream) {
89
+ stock ??= {
90
+ id: chunk.id,
91
+ created: chunk.created,
92
+ model: chunk.model,
93
+ choices: [],
94
+ object: 'chat.completion.chunk',
95
+ };
96
+ // choice
97
+ const deltaChoice = chunk.choices[0];
98
+ if (deltaChoice) {
99
+ if (!stock.choices.length)
100
+ stock.choices.push({
101
+ index: 0,
102
+ finish_reason: null,
103
+ delta: {},
104
+ });
105
+ // thoughts
106
+ const deltaThoughts = this.getDeltaThoughts(deltaChoice.delta);
107
+ if (deltaThoughts) {
108
+ if (!thinking) {
109
+ thinking = true;
110
+ logger.inference.trace('<think>\n');
111
+ }
112
+ logger.inference.trace(deltaThoughts);
113
+ thoughts ??= '';
114
+ thoughts += deltaThoughts;
115
+ }
116
+ // content
117
+ if (deltaChoice.delta.content) {
118
+ if (thinking) {
119
+ thinking = false;
120
+ logger.inference.trace('\n</think>\n');
121
+ }
122
+ logger.inference.debug(deltaChoice.delta.content);
123
+ stock.choices[0].delta.content ??= '';
124
+ stock.choices[0].delta.content += deltaChoice.delta.content;
125
+ }
126
+ // function calls
127
+ if (deltaChoice.delta.tool_calls) {
128
+ if (thinking) {
129
+ thinking = false;
130
+ logger.inference.trace('\n</think>\n');
131
+ }
132
+ stock.choices[0].delta.tool_calls ??= [];
133
+ for (const deltaToolCall of deltaChoice.delta.tool_calls) {
134
+ const toolCalls = stock.choices[0].delta.tool_calls;
135
+ toolCalls[deltaToolCall.index] ??= { index: deltaToolCall.index };
136
+ toolCalls[deltaToolCall.index].id ??= deltaToolCall.id;
137
+ if (deltaToolCall.function) {
138
+ toolCalls[deltaToolCall.index].function ??= {};
139
+ toolCalls[deltaToolCall.index].function.name ??= deltaToolCall.function.name;
140
+ if (deltaToolCall.function.arguments) {
141
+ toolCalls[deltaToolCall.index].function.arguments ??= '';
142
+ toolCalls[deltaToolCall.index].function.arguments += deltaToolCall.function?.arguments || '';
143
+ }
144
+ }
145
+ }
146
+ }
147
+ // finish reason
148
+ stock.choices[0].finish_reason ??= deltaChoice.finish_reason;
149
+ }
150
+ // usage
151
+ stock.usage ??= chunk.usage;
152
+ }
153
+ }
154
+ catch (e) {
155
+ if (e instanceof TypeError)
156
+ throw new NetworkError(undefined, { cause: e });
157
+ else
158
+ throw e;
159
+ }
160
+ // Validate response
161
+ if (stock) { }
162
+ else
163
+ throw new Error();
164
+ const completion = this.convertCompletionStockToCompletion(stock);
165
+ const choice = completion.choices[0];
166
+ if (choice) { }
167
+ else
168
+ throw new ResponseInvalid('Content missing', { cause: completion });
169
+ if (choice.message.content)
170
+ logger.inference.debug('\n');
171
+ this.handleFinishReason(completion, choice.finish_reason);
172
+ if (completion.usage) { }
173
+ else
174
+ throw new Error();
175
+ const cost = this.ctx.billing.charge(completion.usage);
176
+ if (choice.message.tool_calls)
177
+ logger.message.debug(choice.message.tool_calls);
178
+ logger.message.debug(completion.usage);
179
+ wfctx.cost?.(cost);
180
+ return this.ctx.messageCodec.decodeAiMessage(choice.message);
181
+ }
182
+ catch (e) {
183
+ if (e instanceof OpenAI.APIError)
184
+ throw new ResponseInvalid(undefined, { cause: e });
185
+ else
186
+ throw e;
187
+ }
188
+ }
189
+ }
190
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../../src/compatible-engine.d/openai-chatcompletions/transport.d/stream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { RoleMessage, type Session } from '../../compatible-engine/session.ts';
2
+ import { Function } from '../../function.ts';
3
+ import OpenAI from 'openai';
4
+ import type { InferenceContext } from '../../inference-context.ts';
5
+ import type { Verbatim } from '../../verbatim.ts';
6
+ import type { Engine } from '../../engine.ts';
7
+ export declare abstract 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>> {
8
+ abstract fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
9
+ handleFinishReason(completion: OpenAI.ChatCompletion, finishReason: OpenAI.ChatCompletion.Choice['finish_reason']): void;
10
+ }
@@ -0,0 +1,11 @@
1
+ import { ResponseInvalid } from "../../engine.js";
2
+ export class Transport {
3
+ handleFinishReason(completion, finishReason) {
4
+ if (finishReason === 'length')
5
+ throw new ResponseInvalid('Token limit exceeded.', { cause: completion });
6
+ if (['stop', 'tool_calls'].includes(finishReason)) { }
7
+ else
8
+ throw new ResponseInvalid('Abnormal finish reason', { cause: finishReason });
9
+ }
10
+ }
11
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-chatcompletions/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAUlD,MAAM,OAAgB,SAAS;IAepB,kBAAkB,CAAC,UAAiC,EAAE,YAA2D;QACpH,IAAI,YAAY,KAAK,QAAQ;YACzB,MAAM,IAAI,eAAe,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA,CAAC;;YAChD,MAAM,IAAI,eAAe,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;IACtF,CAAC;CAEJ"}
@@ -0,0 +1,17 @@
1
+ import { Function } from '../function.ts';
2
+ import { CompatibleEngine } from '../compatible-engine.ts';
3
+ import * as MessageCodecModule from './openai-chatcompletions/message-codec.ts';
4
+ import * as TransportModule from './openai-chatcompletions/transport.ts';
5
+ import type { Verbatim } from '../verbatim.ts';
6
+ import * as ChoiceCodecModule from './openai-chatcompletions/choice-codec.ts';
7
+ export type OpenAIChatCompletionsCompatibleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = OpenAIChatCompletionsCompatibleEngine.Instance<fdm, vdm>;
8
+ export declare namespace OpenAIChatCompletionsCompatibleEngine {
9
+ abstract class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Instance<fdm, vdm> {
10
+ protected abstract transport: OpenAIChatCompletionsCompatibleEngine.Transport<fdm, vdm>;
11
+ }
12
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Options<fdm, vdm> {
13
+ }
14
+ export import Transport = TransportModule.Transport;
15
+ export import MessageCodec = MessageCodecModule.MessageCodec;
16
+ export import ChoiceCodec = ChoiceCodecModule;
17
+ }