@bolt-foundry/gambit 0.8.3 → 0.8.5-rc.5

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 (289) hide show
  1. package/CHANGELOG.md +38 -2
  2. package/README.md +79 -16
  3. package/esm/_dnt.polyfills.d.ts +17 -0
  4. package/esm/_dnt.polyfills.d.ts.map +1 -1
  5. package/esm/_dnt.polyfills.js +122 -0
  6. package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts +322 -0
  7. package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts.map +1 -0
  8. package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.js +105 -0
  9. package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts +14 -0
  10. package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts.map +1 -0
  11. package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.js +34 -0
  12. package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts +13 -0
  13. package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts.map +1 -0
  14. package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.js +18 -0
  15. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts +10 -0
  16. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts.map +1 -0
  17. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.js +17 -0
  18. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts +12 -0
  19. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts.map +1 -0
  20. package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.js +25 -0
  21. package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts +9 -0
  22. package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts.map +1 -0
  23. package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.js +13 -0
  24. package/esm/deps/jsr.io/@std/fs/1.0.22/copy.d.ts +117 -0
  25. package/esm/deps/jsr.io/@std/fs/1.0.22/copy.d.ts.map +1 -0
  26. package/esm/deps/jsr.io/@std/fs/1.0.22/copy.js +313 -0
  27. package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts +48 -0
  28. package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts.map +1 -0
  29. package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.js +87 -0
  30. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts +49 -0
  31. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts.map +1 -0
  32. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.js +102 -0
  33. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts +47 -0
  34. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts.map +1 -0
  35. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.js +90 -0
  36. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts +49 -0
  37. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts.map +1 -0
  38. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.js +61 -0
  39. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts +70 -0
  40. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts.map +1 -0
  41. package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.js +156 -0
  42. package/esm/deps/jsr.io/@std/fs/1.0.22/eol.d.ts +52 -0
  43. package/esm/deps/jsr.io/@std/fs/1.0.22/eol.d.ts.map +1 -0
  44. package/esm/deps/jsr.io/@std/fs/1.0.22/eol.js +67 -0
  45. package/esm/deps/jsr.io/@std/fs/1.0.22/exists.d.ts +218 -0
  46. package/esm/deps/jsr.io/@std/fs/1.0.22/exists.d.ts.map +1 -0
  47. package/esm/deps/jsr.io/@std/fs/1.0.22/exists.js +271 -0
  48. package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts +267 -0
  49. package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts.map +1 -0
  50. package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.js +442 -0
  51. package/esm/deps/jsr.io/@std/fs/1.0.22/mod.d.ts +29 -0
  52. package/esm/deps/jsr.io/@std/fs/1.0.22/mod.d.ts.map +1 -0
  53. package/esm/deps/jsr.io/@std/fs/1.0.22/mod.js +29 -0
  54. package/esm/deps/jsr.io/@std/fs/1.0.22/move.d.ts +86 -0
  55. package/esm/deps/jsr.io/@std/fs/1.0.22/move.d.ts.map +1 -0
  56. package/esm/deps/jsr.io/@std/fs/1.0.22/move.js +142 -0
  57. package/esm/deps/jsr.io/@std/fs/1.0.22/walk.d.ts +777 -0
  58. package/esm/deps/jsr.io/@std/fs/1.0.22/walk.d.ts.map +1 -0
  59. package/esm/deps/jsr.io/@std/fs/1.0.22/walk.js +846 -0
  60. package/esm/deps/jsr.io/@std/json/1.0.2/types.d.ts +5 -0
  61. package/esm/deps/jsr.io/@std/json/1.0.2/types.d.ts.map +1 -0
  62. package/esm/deps/jsr.io/@std/json/1.0.2/types.js +3 -0
  63. package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts +20 -0
  64. package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts.map +1 -0
  65. package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.js +21 -0
  66. package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts +21 -0
  67. package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts.map +1 -0
  68. package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.js +320 -0
  69. package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts +93 -0
  70. package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts.map +1 -0
  71. package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.js +753 -0
  72. package/esm/deps/jsr.io/@std/toml/1.0.11/mod.d.ts +109 -0
  73. package/esm/deps/jsr.io/@std/toml/1.0.11/mod.d.ts.map +1 -0
  74. package/esm/deps/jsr.io/@std/toml/1.0.11/mod.js +110 -0
  75. package/esm/deps/jsr.io/@std/toml/1.0.11/parse.d.ts +21 -0
  76. package/esm/deps/jsr.io/@std/toml/1.0.11/parse.d.ts.map +1 -0
  77. package/esm/deps/jsr.io/@std/toml/1.0.11/parse.js +25 -0
  78. package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts +35 -0
  79. package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts.map +1 -0
  80. package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.js +283 -0
  81. package/esm/gambit/simulator-ui/dist/bundle.js +10639 -4629
  82. package/esm/gambit/simulator-ui/dist/bundle.js.map +4 -4
  83. package/esm/mod.d.ts +13 -3
  84. package/esm/mod.d.ts.map +1 -1
  85. package/esm/mod.js +8 -2
  86. package/esm/src/cli_utils.d.ts +1 -0
  87. package/esm/src/cli_utils.d.ts.map +1 -1
  88. package/esm/src/cli_utils.js +13 -1
  89. package/esm/src/default_runtime.d.ts +46 -0
  90. package/esm/src/default_runtime.d.ts.map +1 -0
  91. package/esm/src/default_runtime.js +415 -0
  92. package/esm/src/durable_streams.js +26 -1
  93. package/esm/src/model_matchers.d.ts +10 -0
  94. package/esm/src/model_matchers.d.ts.map +1 -0
  95. package/esm/src/model_matchers.js +26 -0
  96. package/esm/src/openai_compat.d.ts +12 -1
  97. package/esm/src/openai_compat.d.ts.map +1 -1
  98. package/esm/src/openai_compat.js +53 -1
  99. package/esm/src/project_config.d.ts +47 -0
  100. package/esm/src/project_config.d.ts.map +1 -0
  101. package/esm/src/project_config.js +134 -0
  102. package/esm/src/providers/codex.d.ts +37 -0
  103. package/esm/src/providers/codex.d.ts.map +1 -0
  104. package/esm/src/providers/codex.js +810 -0
  105. package/esm/src/providers/google.d.ts +3 -1
  106. package/esm/src/providers/google.d.ts.map +1 -1
  107. package/esm/src/providers/google.js +82 -6
  108. package/esm/src/providers/ollama.d.ts +3 -1
  109. package/esm/src/providers/ollama.d.ts.map +1 -1
  110. package/esm/src/providers/ollama.js +238 -15
  111. package/esm/src/providers/openrouter.d.ts +6 -2
  112. package/esm/src/providers/openrouter.d.ts.map +1 -1
  113. package/esm/src/providers/openrouter.js +260 -23
  114. package/esm/src/providers/router.d.ts +19 -0
  115. package/esm/src/providers/router.d.ts.map +1 -0
  116. package/esm/src/providers/router.js +93 -0
  117. package/esm/src/server.d.ts +9 -0
  118. package/esm/src/server.d.ts.map +1 -1
  119. package/esm/src/server.js +3186 -652
  120. package/esm/src/server_feedback_grading_routes.d.ts +32 -0
  121. package/esm/src/server_feedback_grading_routes.d.ts.map +1 -0
  122. package/esm/src/server_feedback_grading_routes.js +305 -0
  123. package/esm/src/server_helpers.d.ts +4 -0
  124. package/esm/src/server_helpers.d.ts.map +1 -0
  125. package/esm/src/server_helpers.js +46 -0
  126. package/esm/src/server_session_store.d.ts +87 -0
  127. package/esm/src/server_session_store.d.ts.map +1 -0
  128. package/esm/src/server_session_store.js +873 -0
  129. package/esm/src/server_types.d.ts +110 -0
  130. package/esm/src/server_types.d.ts.map +1 -0
  131. package/esm/src/server_types.js +1 -0
  132. package/esm/src/server_ui_routes.d.ts +33 -0
  133. package/esm/src/server_ui_routes.d.ts.map +1 -0
  134. package/esm/src/server_ui_routes.js +135 -0
  135. package/esm/src/session_artifacts.d.ts +22 -0
  136. package/esm/src/session_artifacts.d.ts.map +1 -0
  137. package/esm/src/session_artifacts.js +243 -0
  138. package/esm/src/trace.d.ts.map +1 -1
  139. package/esm/src/trace.js +6 -3
  140. package/esm/src/workspace.d.ts +19 -0
  141. package/esm/src/workspace.d.ts.map +1 -0
  142. package/esm/src/workspace.js +164 -0
  143. package/esm/src/workspace_contract.d.ts +76 -0
  144. package/esm/src/workspace_contract.d.ts.map +1 -0
  145. package/esm/src/workspace_contract.js +74 -0
  146. package/package.json +2 -2
  147. package/script/_dnt.polyfills.d.ts +17 -0
  148. package/script/_dnt.polyfills.d.ts.map +1 -1
  149. package/script/_dnt.polyfills.js +122 -0
  150. package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts +322 -0
  151. package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts.map +1 -0
  152. package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.js +108 -0
  153. package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts +14 -0
  154. package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts.map +1 -0
  155. package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.js +71 -0
  156. package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts +13 -0
  157. package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts.map +1 -0
  158. package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.js +21 -0
  159. package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts +10 -0
  160. package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts.map +1 -0
  161. package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.js +20 -0
  162. package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts +12 -0
  163. package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts.map +1 -0
  164. package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.js +28 -0
  165. package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts +9 -0
  166. package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts.map +1 -0
  167. package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.js +16 -0
  168. package/script/deps/jsr.io/@std/fs/1.0.22/copy.d.ts +117 -0
  169. package/script/deps/jsr.io/@std/fs/1.0.22/copy.d.ts.map +1 -0
  170. package/script/deps/jsr.io/@std/fs/1.0.22/copy.js +350 -0
  171. package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts +48 -0
  172. package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts.map +1 -0
  173. package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.js +124 -0
  174. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts +49 -0
  175. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts.map +1 -0
  176. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.js +139 -0
  177. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts +47 -0
  178. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts.map +1 -0
  179. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.js +127 -0
  180. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts +49 -0
  181. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts.map +1 -0
  182. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.js +98 -0
  183. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts +70 -0
  184. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts.map +1 -0
  185. package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.js +193 -0
  186. package/script/deps/jsr.io/@std/fs/1.0.22/eol.d.ts +52 -0
  187. package/script/deps/jsr.io/@std/fs/1.0.22/eol.d.ts.map +1 -0
  188. package/script/deps/jsr.io/@std/fs/1.0.22/eol.js +105 -0
  189. package/script/deps/jsr.io/@std/fs/1.0.22/exists.d.ts +218 -0
  190. package/script/deps/jsr.io/@std/fs/1.0.22/exists.d.ts.map +1 -0
  191. package/script/deps/jsr.io/@std/fs/1.0.22/exists.js +308 -0
  192. package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts +267 -0
  193. package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts.map +1 -0
  194. package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.js +479 -0
  195. package/script/deps/jsr.io/@std/fs/1.0.22/mod.d.ts +29 -0
  196. package/script/deps/jsr.io/@std/fs/1.0.22/mod.d.ts.map +1 -0
  197. package/script/deps/jsr.io/@std/fs/1.0.22/mod.js +45 -0
  198. package/script/deps/jsr.io/@std/fs/1.0.22/move.d.ts +86 -0
  199. package/script/deps/jsr.io/@std/fs/1.0.22/move.d.ts.map +1 -0
  200. package/script/deps/jsr.io/@std/fs/1.0.22/move.js +179 -0
  201. package/script/deps/jsr.io/@std/fs/1.0.22/walk.d.ts +777 -0
  202. package/script/deps/jsr.io/@std/fs/1.0.22/walk.d.ts.map +1 -0
  203. package/script/deps/jsr.io/@std/fs/1.0.22/walk.js +883 -0
  204. package/script/deps/jsr.io/@std/json/1.0.2/types.d.ts +5 -0
  205. package/script/deps/jsr.io/@std/json/1.0.2/types.d.ts.map +1 -0
  206. package/script/deps/jsr.io/@std/json/1.0.2/types.js +4 -0
  207. package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts +20 -0
  208. package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts.map +1 -0
  209. package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.js +37 -0
  210. package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts +21 -0
  211. package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts.map +1 -0
  212. package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.js +323 -0
  213. package/script/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts +93 -0
  214. package/script/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts.map +1 -0
  215. package/script/deps/jsr.io/@std/toml/1.0.11/_parser.js +781 -0
  216. package/script/deps/jsr.io/@std/toml/1.0.11/mod.d.ts +109 -0
  217. package/script/deps/jsr.io/@std/toml/1.0.11/mod.d.ts.map +1 -0
  218. package/script/deps/jsr.io/@std/toml/1.0.11/mod.js +126 -0
  219. package/script/deps/jsr.io/@std/toml/1.0.11/parse.d.ts +21 -0
  220. package/script/deps/jsr.io/@std/toml/1.0.11/parse.d.ts.map +1 -0
  221. package/script/deps/jsr.io/@std/toml/1.0.11/parse.js +28 -0
  222. package/script/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts +35 -0
  223. package/script/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts.map +1 -0
  224. package/script/deps/jsr.io/@std/toml/1.0.11/stringify.js +286 -0
  225. package/script/gambit/simulator-ui/dist/bundle.js +10639 -4629
  226. package/script/gambit/simulator-ui/dist/bundle.js.map +4 -4
  227. package/script/mod.d.ts +13 -3
  228. package/script/mod.d.ts.map +1 -1
  229. package/script/mod.js +14 -5
  230. package/script/src/cli_utils.d.ts +1 -0
  231. package/script/src/cli_utils.d.ts.map +1 -1
  232. package/script/src/cli_utils.js +14 -1
  233. package/script/src/default_runtime.d.ts +46 -0
  234. package/script/src/default_runtime.d.ts.map +1 -0
  235. package/script/src/default_runtime.js +452 -0
  236. package/script/src/durable_streams.js +26 -1
  237. package/script/src/model_matchers.d.ts +10 -0
  238. package/script/src/model_matchers.d.ts.map +1 -0
  239. package/script/src/model_matchers.js +29 -0
  240. package/script/src/openai_compat.d.ts +12 -1
  241. package/script/src/openai_compat.d.ts.map +1 -1
  242. package/script/src/openai_compat.js +85 -0
  243. package/script/src/project_config.d.ts +47 -0
  244. package/script/src/project_config.d.ts.map +1 -0
  245. package/script/src/project_config.js +173 -0
  246. package/script/src/providers/codex.d.ts +37 -0
  247. package/script/src/providers/codex.d.ts.map +1 -0
  248. package/script/src/providers/codex.js +850 -0
  249. package/script/src/providers/google.d.ts +3 -1
  250. package/script/src/providers/google.d.ts.map +1 -1
  251. package/script/src/providers/google.js +82 -6
  252. package/script/src/providers/ollama.d.ts +3 -1
  253. package/script/src/providers/ollama.d.ts.map +1 -1
  254. package/script/src/providers/ollama.js +238 -15
  255. package/script/src/providers/openrouter.d.ts +6 -2
  256. package/script/src/providers/openrouter.d.ts.map +1 -1
  257. package/script/src/providers/openrouter.js +260 -23
  258. package/script/src/providers/router.d.ts +19 -0
  259. package/script/src/providers/router.d.ts.map +1 -0
  260. package/script/src/providers/router.js +96 -0
  261. package/script/src/server.d.ts +9 -0
  262. package/script/src/server.d.ts.map +1 -1
  263. package/script/src/server.js +3193 -659
  264. package/script/src/server_feedback_grading_routes.d.ts +32 -0
  265. package/script/src/server_feedback_grading_routes.d.ts.map +1 -0
  266. package/script/src/server_feedback_grading_routes.js +343 -0
  267. package/script/src/server_helpers.d.ts +4 -0
  268. package/script/src/server_helpers.d.ts.map +1 -0
  269. package/script/src/server_helpers.js +84 -0
  270. package/script/src/server_session_store.d.ts +87 -0
  271. package/script/src/server_session_store.d.ts.map +1 -0
  272. package/script/src/server_session_store.js +910 -0
  273. package/script/src/server_types.d.ts +110 -0
  274. package/script/src/server_types.d.ts.map +1 -0
  275. package/script/src/server_types.js +2 -0
  276. package/script/src/server_ui_routes.d.ts +33 -0
  277. package/script/src/server_ui_routes.d.ts.map +1 -0
  278. package/script/src/server_ui_routes.js +172 -0
  279. package/script/src/session_artifacts.d.ts +22 -0
  280. package/script/src/session_artifacts.d.ts.map +1 -0
  281. package/script/src/session_artifacts.js +279 -0
  282. package/script/src/trace.d.ts.map +1 -1
  283. package/script/src/trace.js +6 -3
  284. package/script/src/workspace.d.ts +19 -0
  285. package/script/src/workspace.d.ts.map +1 -0
  286. package/script/src/workspace.js +201 -0
  287. package/script/src/workspace_contract.d.ts +76 -0
  288. package/script/src/workspace_contract.d.ts.map +1 -0
  289. package/script/src/workspace_contract.js +82 -0
@@ -3,7 +3,9 @@ export declare const GOOGLE_PREFIX = "google/";
3
3
  type OpenAIClient = {
4
4
  chat: {
5
5
  completions: {
6
- create: (params: unknown) => Promise<unknown>;
6
+ create: (params: unknown, options?: {
7
+ signal?: AbortSignal;
8
+ }) => Promise<unknown>;
7
9
  };
8
10
  };
9
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/src/providers/google.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,aAAa,EAId,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,aAAa,YAAY,CAAC;AAIvC,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/C,CAAC;KACH,CAAC;CACH,CAAC;AAwIF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,aAAa,CA6RhB"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/src/providers/google.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,aAAa,EAId,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,aAAa,YAAY,CAAC;AAIvC,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,EAAE,WAAW,CAAA;aAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;SACvB,CAAC;KACH,CAAC;CACH,CAAC;AA8IF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,aAAa,CA0XhB"}
@@ -37,8 +37,13 @@ function normalizeMessage(content) {
37
37
  function toToolChoice(choice) {
38
38
  if (!choice)
39
39
  return undefined;
40
- if (choice === "auto" || choice === "required")
40
+ if (choice === "none" || choice === "auto" || choice === "required") {
41
41
  return choice;
42
+ }
43
+ if (choice.type === "allowed_tools") {
44
+ return (choice.mode ??
45
+ "auto");
46
+ }
42
47
  return { type: "function", function: { name: choice.function.name } };
43
48
  }
44
49
  function responseItemsToChatMessages(items, instructions) {
@@ -126,6 +131,20 @@ export function createGoogleProvider(opts) {
126
131
  async responses(input) {
127
132
  const request = input.request;
128
133
  const params = { ...(request.params ?? {}) };
134
+ if (request.temperature !== undefined && params.temperature === undefined) {
135
+ params.temperature = request.temperature;
136
+ }
137
+ if (request.top_p !== undefined && params.top_p === undefined) {
138
+ params.top_p = request.top_p;
139
+ }
140
+ if (request.frequency_penalty !== undefined &&
141
+ params.frequency_penalty === undefined) {
142
+ params.frequency_penalty = request.frequency_penalty;
143
+ }
144
+ if (request.presence_penalty !== undefined &&
145
+ params.presence_penalty === undefined) {
146
+ params.presence_penalty = request.presence_penalty;
147
+ }
129
148
  if (request.max_output_tokens !== undefined &&
130
149
  params.max_tokens === undefined) {
131
150
  params.max_tokens = request.max_output_tokens;
@@ -133,6 +152,7 @@ export function createGoogleProvider(opts) {
133
152
  const messages = responseItemsToChatMessages(request.input, request.instructions);
134
153
  const toolChoice = toToolChoice(request.tool_choice);
135
154
  if (request.stream) {
155
+ let sequence = 0;
136
156
  const stream = await client.chat.completions.create({
137
157
  model: request.model,
138
158
  messages: messages,
@@ -140,14 +160,32 @@ export function createGoogleProvider(opts) {
140
160
  tool_choice: toolChoice ?? "auto",
141
161
  stream: true,
142
162
  ...params,
143
- });
163
+ }, input.signal ? { signal: input.signal } : undefined);
144
164
  const contentParts = [];
145
165
  const toolCallMap = new Map();
146
166
  let responseId;
147
167
  let created;
168
+ let emittedCreated = false;
148
169
  for await (const chunk of stream) {
149
170
  responseId = responseId ?? chunk.id;
150
171
  created = created ?? chunk.created;
172
+ if (!emittedCreated) {
173
+ input.onStreamEvent?.({
174
+ type: "response.created",
175
+ sequence_number: sequence++,
176
+ response: {
177
+ id: responseId ?? crypto.randomUUID(),
178
+ object: "response",
179
+ model: request.model,
180
+ created_at: created,
181
+ created,
182
+ status: "in_progress",
183
+ output: [],
184
+ error: null,
185
+ },
186
+ });
187
+ emittedCreated = true;
188
+ }
151
189
  const choice = chunk.choices[0];
152
190
  const delta = choice.delta;
153
191
  if (typeof delta.content === "string") {
@@ -156,6 +194,7 @@ export function createGoogleProvider(opts) {
156
194
  type: "response.output_text.delta",
157
195
  output_index: 0,
158
196
  delta: delta.content,
197
+ sequence_number: sequence++,
159
198
  });
160
199
  }
161
200
  else if (Array.isArray(delta.content)) {
@@ -168,6 +207,7 @@ export function createGoogleProvider(opts) {
168
207
  type: "response.output_text.delta",
169
208
  output_index: 0,
170
209
  delta: text,
210
+ sequence_number: sequence++,
171
211
  });
172
212
  }
173
213
  }
@@ -213,11 +253,31 @@ export function createGoogleProvider(opts) {
213
253
  id: responseId ?? crypto.randomUUID(),
214
254
  object: "response",
215
255
  model: request.model,
256
+ created_at: created,
216
257
  created,
217
258
  status: "completed",
218
259
  output,
260
+ previous_response_id: request.previous_response_id ?? null,
261
+ instructions: request.instructions ?? null,
262
+ tool_choice: request.tool_choice,
263
+ max_output_tokens: request.max_output_tokens ?? null,
264
+ max_tool_calls: request.max_tool_calls ?? null,
265
+ parallel_tool_calls: request.parallel_tool_calls,
266
+ store: request.store,
267
+ metadata: request.metadata,
268
+ reasoning: request.reasoning
269
+ ? {
270
+ effort: request.reasoning.effort ?? null,
271
+ summary: request.reasoning.summary ?? null,
272
+ }
273
+ : null,
274
+ error: null,
219
275
  };
220
- input.onStreamEvent?.({ type: "response.completed", response });
276
+ input.onStreamEvent?.({
277
+ type: "response.completed",
278
+ sequence_number: sequence++,
279
+ response,
280
+ });
221
281
  return response;
222
282
  }
223
283
  const response = await client.chat.completions.create({
@@ -227,7 +287,7 @@ export function createGoogleProvider(opts) {
227
287
  tool_choice: toolChoice ?? "auto",
228
288
  stream: false,
229
289
  ...params,
230
- });
290
+ }, input.signal ? { signal: input.signal } : undefined);
231
291
  const choice = response.choices[0];
232
292
  const normalizedMessage = normalizeMessage(choice.message);
233
293
  const toolCalls = choice.message.tool_calls?.map((tc) => ({
@@ -239,9 +299,25 @@ export function createGoogleProvider(opts) {
239
299
  id: response.id,
240
300
  object: "response",
241
301
  model: response.model,
302
+ created_at: response.created,
242
303
  created: response.created,
243
304
  status: "completed",
244
305
  output: responseItemsFromChatMessage(normalizedMessage, toolCalls),
306
+ previous_response_id: request.previous_response_id ?? null,
307
+ instructions: request.instructions ?? null,
308
+ tool_choice: request.tool_choice,
309
+ max_output_tokens: request.max_output_tokens ?? null,
310
+ max_tool_calls: request.max_tool_calls ?? null,
311
+ parallel_tool_calls: request.parallel_tool_calls,
312
+ store: request.store,
313
+ metadata: request.metadata,
314
+ reasoning: request.reasoning
315
+ ? {
316
+ effort: request.reasoning.effort ?? null,
317
+ summary: request.reasoning.summary ?? null,
318
+ }
319
+ : null,
320
+ error: null,
245
321
  usage: mapChatUsage(response.usage),
246
322
  };
247
323
  },
@@ -256,7 +332,7 @@ export function createGoogleProvider(opts) {
256
332
  tool_choice: "auto",
257
333
  stream: true,
258
334
  ...params,
259
- });
335
+ }, input.signal ? { signal: input.signal } : undefined);
260
336
  let finishReason = null;
261
337
  const contentParts = [];
262
338
  const toolCallMap = new Map();
@@ -333,7 +409,7 @@ export function createGoogleProvider(opts) {
333
409
  tool_choice: "auto",
334
410
  stream: false,
335
411
  ...params,
336
- });
412
+ }, input.signal ? { signal: input.signal } : undefined);
337
413
  const choice = response.choices[0];
338
414
  const message = normalizeMessage(choice.message);
339
415
  const toolCalls = choice.message.tool_calls?.map((tc) => ({
@@ -3,7 +3,9 @@ export declare const OLLAMA_PREFIX = "ollama/";
3
3
  export declare const DEFAULT_OLLAMA_BASE_URL = "http://localhost:11434/v1";
4
4
  type OpenAIClient = {
5
5
  responses: {
6
- create: (params: unknown) => Promise<unknown>;
6
+ create: (params: unknown, options?: {
7
+ signal?: AbortSignal;
8
+ }) => Promise<unknown>;
7
9
  };
8
10
  };
9
11
  export declare function fetchOllamaTags(baseURL: string | undefined): Promise<Set<string>>;
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/src/providers/ollama.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAEnE,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/C,CAAC;CACH,CAAC;AAeF,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAgBtB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAodD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,aAAa,CAoChB"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/src/providers/ollama.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,aAAa,YAAY,CAAC;AACvC,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAEnE,KAAK,YAAY,GAAG;IAClB,SAAS,EAAE;QACT,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,CAAC;CACH,CAAC;AAeF,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAgBtB;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,OAAO,CAAC,IAAI,CAAC,CA8Cf;AA6sBD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,aAAa,CA0ChB"}
@@ -104,6 +104,25 @@ function mapStatus(status) {
104
104
  return "in_progress";
105
105
  return "failed";
106
106
  }
107
+ function mapReasoning(reasoning) {
108
+ if (!reasoning)
109
+ return undefined;
110
+ const out = {};
111
+ if (reasoning.effort !== undefined)
112
+ out.effort = reasoning.effort;
113
+ if (reasoning.summary !== undefined)
114
+ out.summary = reasoning.summary;
115
+ return Object.keys(out).length > 0 ? out : undefined;
116
+ }
117
+ function stripUndefined(input) {
118
+ const out = { ...input };
119
+ for (const [key, value] of Object.entries(out)) {
120
+ if (value === undefined) {
121
+ delete out[key];
122
+ }
123
+ }
124
+ return out;
125
+ }
107
126
  function mapError(error) {
108
127
  if (!error)
109
128
  return undefined;
@@ -184,20 +203,45 @@ function appendSyntheticTools(tools, input) {
184
203
  function mapToolChoice(toolChoice) {
185
204
  if (!toolChoice)
186
205
  return undefined;
187
- if (toolChoice === "auto" || toolChoice === "required")
206
+ if (toolChoice === "none" || toolChoice === "auto" ||
207
+ toolChoice === "required") {
188
208
  return toolChoice;
209
+ }
210
+ if (toolChoice.type === "allowed_tools") {
211
+ return {
212
+ type: "allowed_tools",
213
+ tools: toolChoice.tools,
214
+ mode: toolChoice.mode ?? "auto",
215
+ };
216
+ }
189
217
  return { type: "function", name: toolChoice.function.name };
190
218
  }
219
+ function mapResponseContentPart(part) {
220
+ if (!part || typeof part !== "object")
221
+ return null;
222
+ if (typeof part.text !== "string")
223
+ return null;
224
+ if (part.type === "output_text") {
225
+ return { type: "output_text", text: part.text };
226
+ }
227
+ if (part.type === "summary_text") {
228
+ return { type: "summary_text", text: part.text };
229
+ }
230
+ if (part.type === "reasoning_text") {
231
+ return { type: "reasoning_text", text: part.text };
232
+ }
233
+ if (part.type === "input_text") {
234
+ return { type: "input_text", text: part.text };
235
+ }
236
+ return null;
237
+ }
191
238
  function mapOpenAIOutputItem(item) {
192
239
  const itemType = item.type;
193
240
  if (itemType === "message") {
194
241
  const message = item;
195
- const content = [];
196
- for (const part of message.content ?? []) {
197
- if (part.type === "output_text") {
198
- content.push({ type: "output_text", text: part.text });
199
- }
200
- }
242
+ const content = (message.content ?? [])
243
+ .map((part) => mapResponseContentPart(part))
244
+ .filter((part) => Boolean(part));
201
245
  if (content.length === 0)
202
246
  return null;
203
247
  return {
@@ -217,6 +261,22 @@ function mapOpenAIOutputItem(item) {
217
261
  id: call.id,
218
262
  };
219
263
  }
264
+ if (itemType === "reasoning") {
265
+ const reasoning = item;
266
+ const content = (reasoning.content ?? [])
267
+ .map((part) => mapResponseContentPart(part))
268
+ .filter((part) => Boolean(part));
269
+ const summary = (reasoning.summary ?? [])
270
+ .map((part) => mapResponseContentPart(part))
271
+ .filter((part) => Boolean(part));
272
+ return {
273
+ type: "reasoning",
274
+ id: reasoning.id,
275
+ content: content.length > 0 ? content : undefined,
276
+ summary,
277
+ encrypted_content: reasoning.encrypted_content,
278
+ };
279
+ }
220
280
  return null;
221
281
  }
222
282
  function normalizeOpenAIResponse(response) {
@@ -227,11 +287,23 @@ function normalizeOpenAIResponse(response) {
227
287
  id: response.id,
228
288
  object: "response",
229
289
  model: response.model,
290
+ created_at: response.created_at,
230
291
  created: response.created_at,
292
+ completed_at: response.completed_at ??
293
+ null,
294
+ previous_response_id: response.previous_response_id ?? null,
295
+ instructions: response.instructions ?? null,
296
+ reasoning: response
297
+ .reasoning ?? null,
231
298
  status: mapStatus(response.status ?? undefined),
232
299
  output: outputItems,
233
300
  usage: mapUsage(response.usage),
234
- error: mapError(response.error),
301
+ error: mapError(response.error) ?? null,
302
+ metadata: response.metadata,
303
+ max_output_tokens: response.max_output_tokens ?? null,
304
+ max_tool_calls: response.max_tool_calls ?? null,
305
+ parallel_tool_calls: response.parallel_tool_calls,
306
+ store: response.store,
235
307
  };
236
308
  }
237
309
  function toOpenAIInputItems(items) {
@@ -253,6 +325,18 @@ function toOpenAIInputItems(items) {
253
325
  text: part.text,
254
326
  };
255
327
  }
328
+ if (part.type === "summary_text") {
329
+ return {
330
+ type: "summary_text",
331
+ text: part.text,
332
+ };
333
+ }
334
+ if (part.type === "reasoning_text") {
335
+ return {
336
+ type: "reasoning_text",
337
+ text: part.text,
338
+ };
339
+ }
256
340
  return null;
257
341
  })
258
342
  .filter((part) => Boolean(part));
@@ -283,6 +367,22 @@ function toOpenAIInputItems(items) {
283
367
  output: item.output,
284
368
  id: item.id,
285
369
  });
370
+ continue;
371
+ }
372
+ if (item.type === "reasoning") {
373
+ mapped.push({
374
+ type: "reasoning",
375
+ id: item.id,
376
+ content: (item.content ?? []).map((part) => ({
377
+ type: part.type,
378
+ text: part.text,
379
+ })),
380
+ summary: item.summary.map((part) => ({
381
+ type: part.type,
382
+ text: part.text,
383
+ })),
384
+ encrypted_content: item.encrypted_content ?? null,
385
+ });
286
386
  }
287
387
  }
288
388
  return mapped;
@@ -367,13 +467,31 @@ function responseItemsToChat(items) {
367
467
  toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
368
468
  };
369
469
  }
370
- async function createResponse(client, request, onStreamEvent) {
470
+ async function createResponse(client, request, signal, onStreamEvent) {
371
471
  const baseParams = {
372
472
  model: request.model,
373
473
  input: toOpenAIInputItems(request.input),
374
474
  instructions: request.instructions,
375
475
  tools: undefined,
376
476
  tool_choice: mapToolChoice(request.tool_choice),
477
+ previous_response_id: request.previous_response_id,
478
+ reasoning: mapReasoning(request.reasoning),
479
+ parallel_tool_calls: request.parallel_tool_calls,
480
+ max_tool_calls: request.max_tool_calls,
481
+ store: request.store,
482
+ include: request.include,
483
+ text: request.text,
484
+ stream_options: request.stream_options,
485
+ background: request.background,
486
+ truncation: request.truncation,
487
+ service_tier: request.service_tier,
488
+ top_logprobs: request.top_logprobs,
489
+ safety_identifier: request.safety_identifier,
490
+ prompt_cache_key: request.prompt_cache_key,
491
+ temperature: request.temperature,
492
+ top_p: request.top_p,
493
+ frequency_penalty: request.frequency_penalty,
494
+ presence_penalty: request.presence_penalty,
377
495
  stream: request.stream,
378
496
  max_output_tokens: request.max_output_tokens,
379
497
  metadata: request.metadata,
@@ -383,11 +501,11 @@ async function createResponse(client, request, onStreamEvent) {
383
501
  if (mappedTools.length > 0) {
384
502
  baseParams.tools = mappedTools;
385
503
  }
386
- const params = { ...(request.params ?? {}), ...baseParams };
504
+ const params = { ...(request.params ?? {}), ...stripUndefined(baseParams) };
387
505
  const debugResponses = dntShim.Deno.env.get("GAMBIT_DEBUG_RESPONSES") === "1";
388
506
  let responseOrStream;
389
507
  try {
390
- responseOrStream = await client.responses.create(params);
508
+ responseOrStream = await client.responses.create(params, signal ? { signal } : undefined);
391
509
  }
392
510
  catch (err) {
393
511
  if (debugResponses) {
@@ -411,7 +529,12 @@ async function createResponse(client, request, onStreamEvent) {
411
529
  switch (event.type) {
412
530
  case "response.created": {
413
531
  const mapped = normalizeOpenAIResponse(event.response);
414
- onStreamEvent?.({ type: "response.created", response: mapped });
532
+ onStreamEvent?.({
533
+ type: "response.created",
534
+ response: mapped,
535
+ sequence_number: event
536
+ .sequence_number,
537
+ });
415
538
  break;
416
539
  }
417
540
  case "response.output_text.delta":
@@ -420,6 +543,10 @@ async function createResponse(client, request, onStreamEvent) {
420
543
  output_index: event.output_index,
421
544
  delta: event.delta,
422
545
  item_id: event.item_id,
546
+ content_index: event.content_index,
547
+ sequence_number: event
548
+ .sequence_number,
549
+ logprobs: event.logprobs,
423
550
  });
424
551
  break;
425
552
  case "response.output_text.done":
@@ -428,6 +555,9 @@ async function createResponse(client, request, onStreamEvent) {
428
555
  output_index: event.output_index,
429
556
  text: event.text,
430
557
  item_id: event.item_id,
558
+ content_index: event.content_index,
559
+ sequence_number: event
560
+ .sequence_number,
431
561
  });
432
562
  break;
433
563
  case "response.output_item.added": {
@@ -437,6 +567,8 @@ async function createResponse(client, request, onStreamEvent) {
437
567
  type: "response.output_item.added",
438
568
  output_index: event.output_index,
439
569
  item,
570
+ sequence_number: event
571
+ .sequence_number,
440
572
  });
441
573
  }
442
574
  break;
@@ -448,13 +580,102 @@ async function createResponse(client, request, onStreamEvent) {
448
580
  type: "response.output_item.done",
449
581
  output_index: event.output_index,
450
582
  item,
583
+ sequence_number: event
584
+ .sequence_number,
451
585
  });
452
586
  }
453
587
  break;
454
588
  }
589
+ case "response.reasoning.delta":
590
+ if (typeof event.delta === "string") {
591
+ onStreamEvent?.({
592
+ type: "response.reasoning.delta",
593
+ output_index: event.output_index,
594
+ item_id: event.item_id,
595
+ content_index: event.content_index,
596
+ delta: event.delta,
597
+ sequence_number: event
598
+ .sequence_number,
599
+ obfuscation: event.obfuscation,
600
+ });
601
+ }
602
+ break;
603
+ case "response.reasoning.done":
604
+ onStreamEvent?.({
605
+ type: "response.reasoning.done",
606
+ output_index: event.output_index,
607
+ item_id: event.item_id,
608
+ content_index: event.content_index,
609
+ text: event.text,
610
+ sequence_number: event
611
+ .sequence_number,
612
+ });
613
+ break;
614
+ case "response.reasoning_summary_text.delta":
615
+ if (typeof event.delta === "string") {
616
+ onStreamEvent?.({
617
+ type: "response.reasoning_summary_text.delta",
618
+ output_index: event.output_index,
619
+ item_id: event.item_id,
620
+ summary_index: event.summary_index,
621
+ delta: event.delta,
622
+ sequence_number: event
623
+ .sequence_number,
624
+ obfuscation: event.obfuscation,
625
+ });
626
+ }
627
+ break;
628
+ case "response.reasoning_summary_text.done":
629
+ onStreamEvent?.({
630
+ type: "response.reasoning_summary_text.done",
631
+ output_index: event.output_index,
632
+ item_id: event.item_id,
633
+ summary_index: event.summary_index,
634
+ text: event.text,
635
+ sequence_number: event
636
+ .sequence_number,
637
+ });
638
+ break;
639
+ case "response.reasoning_summary_part.added":
640
+ if (event.part && typeof event.part === "object" &&
641
+ "type" in event.part &&
642
+ "text" in event.part &&
643
+ typeof event.part.text === "string") {
644
+ onStreamEvent?.({
645
+ type: "response.reasoning_summary_part.added",
646
+ output_index: event.output_index,
647
+ item_id: event.item_id,
648
+ summary_index: event.summary_index,
649
+ part: event.part,
650
+ sequence_number: event
651
+ .sequence_number,
652
+ });
653
+ }
654
+ break;
655
+ case "response.reasoning_summary_part.done":
656
+ if (event.part && typeof event.part === "object" &&
657
+ "type" in event.part &&
658
+ "text" in event.part &&
659
+ typeof event.part.text === "string") {
660
+ onStreamEvent?.({
661
+ type: "response.reasoning_summary_part.done",
662
+ output_index: event.output_index,
663
+ item_id: event.item_id,
664
+ summary_index: event.summary_index,
665
+ part: event.part,
666
+ sequence_number: event
667
+ .sequence_number,
668
+ });
669
+ }
670
+ break;
455
671
  case "response.completed": {
456
672
  completed = normalizeOpenAIResponse(event.response);
457
- onStreamEvent?.({ type: "response.completed", response: completed });
673
+ onStreamEvent?.({
674
+ type: "response.completed",
675
+ response: completed,
676
+ sequence_number: event
677
+ .sequence_number,
678
+ });
458
679
  break;
459
680
  }
460
681
  case "response.failed": {
@@ -462,6 +683,8 @@ async function createResponse(client, request, onStreamEvent) {
462
683
  onStreamEvent?.({
463
684
  type: "response.failed",
464
685
  error: error ?? {},
686
+ sequence_number: event
687
+ .sequence_number,
465
688
  });
466
689
  break;
467
690
  }
@@ -483,7 +706,7 @@ export function createOllamaProvider(opts) {
483
706
  }));
484
707
  return {
485
708
  async responses(input) {
486
- return await createResponse(client, input.request, input.onStreamEvent);
709
+ return await createResponse(client, input.request, input.signal, input.onStreamEvent);
487
710
  },
488
711
  async chat(input) {
489
712
  const response = await createResponse(client, {
@@ -492,7 +715,7 @@ export function createOllamaProvider(opts) {
492
715
  tools: input.tools,
493
716
  stream: input.stream,
494
717
  params: input.params ?? {},
495
- }, (event) => {
718
+ }, input.signal, (event) => {
496
719
  if (event.type === "response.output_text.delta") {
497
720
  input.onStreamText?.(event.delta);
498
721
  }
@@ -3,11 +3,15 @@ export declare const OPENROUTER_PREFIX = "openrouter/";
3
3
  type OpenAIClient = {
4
4
  chat: {
5
5
  completions: {
6
- create: (params: unknown) => Promise<unknown>;
6
+ create: (params: unknown, options?: {
7
+ signal?: AbortSignal;
8
+ }) => Promise<unknown>;
7
9
  };
8
10
  };
9
11
  responses: {
10
- create: (params: unknown) => Promise<unknown>;
12
+ create: (params: unknown, options?: {
13
+ signal?: AbortSignal;
14
+ }) => Promise<unknown>;
11
15
  };
12
16
  };
13
17
  export declare function createOpenRouterProvider(opts: {
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/src/providers/openrouter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC/C,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC/C,CAAC;CACH,CAAC;AA8eF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,aAAa,CA8MhB"}
1
+ {"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/src/providers/openrouter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAKV,aAAa,EAOd,MAAM,2BAA2B,CAAC;AAOnC,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE;QACJ,WAAW,EAAE;YACX,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,EAAE,WAAW,CAAA;aAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;SACvB,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,MAAM,EAAE,CACN,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAA;SAAE,KAC/B,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,CAAC;CACH,CAAC;AA8uBF,wBAAgB,wBAAwB,CAAC,IAAI,EAAE;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,aAAa,CAwOhB"}