@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.
- package/CHANGELOG.md +38 -2
- package/README.md +79 -16
- package/esm/_dnt.polyfills.d.ts +17 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -1
- package/esm/_dnt.polyfills.js +122 -0
- package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts +322 -0
- package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.1.5/deep_merge.js +105 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts +14 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.js +34 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts +13 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.js +18 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts +10 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_is_same_path.js +17 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts +12 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_is_subdir.js +25 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts +9 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/_to_path_string.js +13 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/copy.d.ts +117 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/copy.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/copy.js +313 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts +48 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/empty_dir.js +87 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts +49 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_dir.js +102 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts +47 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_file.js +90 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts +49 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_link.js +61 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts +70 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.js +156 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/eol.d.ts +52 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/eol.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/eol.js +67 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/exists.d.ts +218 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/exists.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/exists.js +271 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts +267 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/expand_glob.js +442 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/mod.d.ts +29 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/mod.js +29 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/move.d.ts +86 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/move.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/move.js +142 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/walk.d.ts +777 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/walk.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.22/walk.js +846 -0
- package/esm/deps/jsr.io/@std/json/1.0.2/types.d.ts +5 -0
- package/esm/deps/jsr.io/@std/json/1.0.2/types.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/json/1.0.2/types.js +3 -0
- package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts +20 -0
- package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/jsonc/1.0.2/mod.js +21 -0
- package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts +21 -0
- package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/jsonc/1.0.2/parse.js +320 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts +93 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/_parser.js +753 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/mod.d.ts +109 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/mod.js +110 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/parse.d.ts +21 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/parse.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/parse.js +25 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts +35 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/toml/1.0.11/stringify.js +283 -0
- package/esm/gambit/simulator-ui/dist/bundle.js +10639 -4629
- package/esm/gambit/simulator-ui/dist/bundle.js.map +4 -4
- package/esm/mod.d.ts +13 -3
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +8 -2
- package/esm/src/cli_utils.d.ts +1 -0
- package/esm/src/cli_utils.d.ts.map +1 -1
- package/esm/src/cli_utils.js +13 -1
- package/esm/src/default_runtime.d.ts +46 -0
- package/esm/src/default_runtime.d.ts.map +1 -0
- package/esm/src/default_runtime.js +415 -0
- package/esm/src/durable_streams.js +26 -1
- package/esm/src/model_matchers.d.ts +10 -0
- package/esm/src/model_matchers.d.ts.map +1 -0
- package/esm/src/model_matchers.js +26 -0
- package/esm/src/openai_compat.d.ts +12 -1
- package/esm/src/openai_compat.d.ts.map +1 -1
- package/esm/src/openai_compat.js +53 -1
- package/esm/src/project_config.d.ts +47 -0
- package/esm/src/project_config.d.ts.map +1 -0
- package/esm/src/project_config.js +134 -0
- package/esm/src/providers/codex.d.ts +37 -0
- package/esm/src/providers/codex.d.ts.map +1 -0
- package/esm/src/providers/codex.js +810 -0
- package/esm/src/providers/google.d.ts +3 -1
- package/esm/src/providers/google.d.ts.map +1 -1
- package/esm/src/providers/google.js +82 -6
- package/esm/src/providers/ollama.d.ts +3 -1
- package/esm/src/providers/ollama.d.ts.map +1 -1
- package/esm/src/providers/ollama.js +238 -15
- package/esm/src/providers/openrouter.d.ts +6 -2
- package/esm/src/providers/openrouter.d.ts.map +1 -1
- package/esm/src/providers/openrouter.js +260 -23
- package/esm/src/providers/router.d.ts +19 -0
- package/esm/src/providers/router.d.ts.map +1 -0
- package/esm/src/providers/router.js +93 -0
- package/esm/src/server.d.ts +9 -0
- package/esm/src/server.d.ts.map +1 -1
- package/esm/src/server.js +3186 -652
- package/esm/src/server_feedback_grading_routes.d.ts +32 -0
- package/esm/src/server_feedback_grading_routes.d.ts.map +1 -0
- package/esm/src/server_feedback_grading_routes.js +305 -0
- package/esm/src/server_helpers.d.ts +4 -0
- package/esm/src/server_helpers.d.ts.map +1 -0
- package/esm/src/server_helpers.js +46 -0
- package/esm/src/server_session_store.d.ts +87 -0
- package/esm/src/server_session_store.d.ts.map +1 -0
- package/esm/src/server_session_store.js +873 -0
- package/esm/src/server_types.d.ts +110 -0
- package/esm/src/server_types.d.ts.map +1 -0
- package/esm/src/server_types.js +1 -0
- package/esm/src/server_ui_routes.d.ts +33 -0
- package/esm/src/server_ui_routes.d.ts.map +1 -0
- package/esm/src/server_ui_routes.js +135 -0
- package/esm/src/session_artifacts.d.ts +22 -0
- package/esm/src/session_artifacts.d.ts.map +1 -0
- package/esm/src/session_artifacts.js +243 -0
- package/esm/src/trace.d.ts.map +1 -1
- package/esm/src/trace.js +6 -3
- package/esm/src/workspace.d.ts +19 -0
- package/esm/src/workspace.d.ts.map +1 -0
- package/esm/src/workspace.js +164 -0
- package/esm/src/workspace_contract.d.ts +76 -0
- package/esm/src/workspace_contract.d.ts.map +1 -0
- package/esm/src/workspace_contract.js +74 -0
- package/package.json +2 -2
- package/script/_dnt.polyfills.d.ts +17 -0
- package/script/_dnt.polyfills.d.ts.map +1 -1
- package/script/_dnt.polyfills.js +122 -0
- package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts +322 -0
- package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/collections/1.1.5/deep_merge.js +108 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts +14 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_create_walk_entry.js +71 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts +13 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_get_file_info_type.js +21 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts +10 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_is_same_path.js +20 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts +12 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_is_subdir.js +28 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts +9 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/_to_path_string.js +16 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/copy.d.ts +117 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/copy.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/copy.js +350 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts +48 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/empty_dir.js +124 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts +49 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_dir.js +139 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts +47 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_file.js +127 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts +49 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_link.js +98 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts +70 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/ensure_symlink.js +193 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/eol.d.ts +52 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/eol.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/eol.js +105 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/exists.d.ts +218 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/exists.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/exists.js +308 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts +267 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/expand_glob.js +479 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/mod.d.ts +29 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/mod.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/mod.js +45 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/move.d.ts +86 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/move.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/move.js +179 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/walk.d.ts +777 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/walk.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.22/walk.js +883 -0
- package/script/deps/jsr.io/@std/json/1.0.2/types.d.ts +5 -0
- package/script/deps/jsr.io/@std/json/1.0.2/types.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/json/1.0.2/types.js +4 -0
- package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts +20 -0
- package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/jsonc/1.0.2/mod.js +37 -0
- package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts +21 -0
- package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/jsonc/1.0.2/parse.js +323 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts +93 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/_parser.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/_parser.js +781 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/mod.d.ts +109 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/mod.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/mod.js +126 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/parse.d.ts +21 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/parse.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/parse.js +28 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts +35 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/stringify.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/toml/1.0.11/stringify.js +286 -0
- package/script/gambit/simulator-ui/dist/bundle.js +10639 -4629
- package/script/gambit/simulator-ui/dist/bundle.js.map +4 -4
- package/script/mod.d.ts +13 -3
- package/script/mod.d.ts.map +1 -1
- package/script/mod.js +14 -5
- package/script/src/cli_utils.d.ts +1 -0
- package/script/src/cli_utils.d.ts.map +1 -1
- package/script/src/cli_utils.js +14 -1
- package/script/src/default_runtime.d.ts +46 -0
- package/script/src/default_runtime.d.ts.map +1 -0
- package/script/src/default_runtime.js +452 -0
- package/script/src/durable_streams.js +26 -1
- package/script/src/model_matchers.d.ts +10 -0
- package/script/src/model_matchers.d.ts.map +1 -0
- package/script/src/model_matchers.js +29 -0
- package/script/src/openai_compat.d.ts +12 -1
- package/script/src/openai_compat.d.ts.map +1 -1
- package/script/src/openai_compat.js +85 -0
- package/script/src/project_config.d.ts +47 -0
- package/script/src/project_config.d.ts.map +1 -0
- package/script/src/project_config.js +173 -0
- package/script/src/providers/codex.d.ts +37 -0
- package/script/src/providers/codex.d.ts.map +1 -0
- package/script/src/providers/codex.js +850 -0
- package/script/src/providers/google.d.ts +3 -1
- package/script/src/providers/google.d.ts.map +1 -1
- package/script/src/providers/google.js +82 -6
- package/script/src/providers/ollama.d.ts +3 -1
- package/script/src/providers/ollama.d.ts.map +1 -1
- package/script/src/providers/ollama.js +238 -15
- package/script/src/providers/openrouter.d.ts +6 -2
- package/script/src/providers/openrouter.d.ts.map +1 -1
- package/script/src/providers/openrouter.js +260 -23
- package/script/src/providers/router.d.ts +19 -0
- package/script/src/providers/router.d.ts.map +1 -0
- package/script/src/providers/router.js +96 -0
- package/script/src/server.d.ts +9 -0
- package/script/src/server.d.ts.map +1 -1
- package/script/src/server.js +3193 -659
- package/script/src/server_feedback_grading_routes.d.ts +32 -0
- package/script/src/server_feedback_grading_routes.d.ts.map +1 -0
- package/script/src/server_feedback_grading_routes.js +343 -0
- package/script/src/server_helpers.d.ts +4 -0
- package/script/src/server_helpers.d.ts.map +1 -0
- package/script/src/server_helpers.js +84 -0
- package/script/src/server_session_store.d.ts +87 -0
- package/script/src/server_session_store.d.ts.map +1 -0
- package/script/src/server_session_store.js +910 -0
- package/script/src/server_types.d.ts +110 -0
- package/script/src/server_types.d.ts.map +1 -0
- package/script/src/server_types.js +2 -0
- package/script/src/server_ui_routes.d.ts +33 -0
- package/script/src/server_ui_routes.d.ts.map +1 -0
- package/script/src/server_ui_routes.js +172 -0
- package/script/src/session_artifacts.d.ts +22 -0
- package/script/src/session_artifacts.d.ts.map +1 -0
- package/script/src/session_artifacts.js +279 -0
- package/script/src/trace.d.ts.map +1 -1
- package/script/src/trace.js +6 -3
- package/script/src/workspace.d.ts +19 -0
- package/script/src/workspace.d.ts.map +1 -0
- package/script/src/workspace.js +201 -0
- package/script/src/workspace_contract.d.ts +76 -0
- package/script/src/workspace_contract.d.ts.map +1 -0
- package/script/src/workspace_contract.js +82 -0
|
@@ -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,
|
|
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?.({
|
|
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
|
|
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,
|
|
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 === "
|
|
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
|
-
|
|
197
|
-
|
|
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?.({
|
|
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?.({
|
|
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
|
|
6
|
+
create: (params: unknown, options?: {
|
|
7
|
+
signal?: AbortSignal;
|
|
8
|
+
}) => Promise<unknown>;
|
|
7
9
|
};
|
|
8
10
|
};
|
|
9
11
|
responses: {
|
|
10
|
-
create: (params: 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,
|
|
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"}
|