@bolt-foundry/gambit 0.8.3 → 0.8.5-rc.11
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 +95 -2
- package/README.md +95 -23
- package/esm/_dnt.polyfills.d.ts +17 -0
- package/esm/_dnt.polyfills.d.ts.map +1 -1
- package/esm/_dnt.polyfills.js +123 -0
- package/esm/deps/jsr.io/@std/collections/1.1.6/deep_merge.d.ts +322 -0
- package/esm/deps/jsr.io/@std/collections/1.1.6/deep_merge.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/collections/1.1.6/deep_merge.js +105 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_create_walk_entry.d.ts +14 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_create_walk_entry.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_create_walk_entry.js +34 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_get_file_info_type.d.ts +13 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_get_file_info_type.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_get_file_info_type.js +18 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_is_same_path.d.ts +10 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_is_same_path.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_is_same_path.js +17 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_is_subdir.d.ts +12 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_is_subdir.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_is_subdir.js +25 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_to_path_string.d.ts +9 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_to_path_string.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/_to_path_string.js +13 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/copy.d.ts +117 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/copy.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/copy.js +313 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/empty_dir.d.ts +48 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/empty_dir.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/empty_dir.js +87 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_dir.d.ts +49 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_dir.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_dir.js +102 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_file.d.ts +47 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_file.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_file.js +90 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_link.d.ts +49 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_link.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_link.js +61 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_symlink.d.ts +70 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_symlink.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/ensure_symlink.js +156 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/eol.d.ts +52 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/eol.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/eol.js +67 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/exists.d.ts +218 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/exists.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/exists.js +271 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/expand_glob.d.ts +267 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/expand_glob.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/expand_glob.js +442 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/mod.d.ts +29 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/mod.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/mod.js +29 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/move.d.ts +86 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/move.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/move.js +142 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/walk.d.ts +777 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/walk.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/fs/1.0.23/walk.js +846 -0
- package/esm/deps/jsr.io/@std/json/1.0.3/types.d.ts +7 -0
- package/esm/deps/jsr.io/@std/json/1.0.3/types.d.ts.map +1 -0
- package/esm/deps/jsr.io/@std/json/1.0.3/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/path/1.1.4/constants.d.ts +1 -1
- 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 +13788 -5157
- 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 +809 -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 +295 -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 +334 -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 +3361 -670
- 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 +876 -0
- package/esm/src/server_types.d.ts +111 -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 +139 -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 +162 -0
- package/esm/src/workspace_contract.d.ts +78 -0
- package/esm/src/workspace_contract.d.ts.map +1 -0
- package/esm/src/workspace_contract.js +77 -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 +123 -0
- package/script/deps/jsr.io/@std/collections/1.1.6/deep_merge.d.ts +322 -0
- package/script/deps/jsr.io/@std/collections/1.1.6/deep_merge.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/collections/1.1.6/deep_merge.js +108 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_create_walk_entry.d.ts +14 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_create_walk_entry.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_create_walk_entry.js +71 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_get_file_info_type.d.ts +13 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_get_file_info_type.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_get_file_info_type.js +21 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_is_same_path.d.ts +10 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_is_same_path.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_is_same_path.js +20 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_is_subdir.d.ts +12 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_is_subdir.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_is_subdir.js +28 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_to_path_string.d.ts +9 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_to_path_string.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/_to_path_string.js +16 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/copy.d.ts +117 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/copy.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/copy.js +350 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/empty_dir.d.ts +48 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/empty_dir.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/empty_dir.js +124 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_dir.d.ts +49 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_dir.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_dir.js +139 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_file.d.ts +47 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_file.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_file.js +127 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_link.d.ts +49 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_link.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_link.js +98 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_symlink.d.ts +70 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_symlink.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/ensure_symlink.js +193 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/eol.d.ts +52 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/eol.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/eol.js +105 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/exists.d.ts +218 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/exists.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/exists.js +308 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/expand_glob.d.ts +267 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/expand_glob.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/expand_glob.js +479 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/mod.d.ts +29 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/mod.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/mod.js +45 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/move.d.ts +86 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/move.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/move.js +179 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/walk.d.ts +777 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/walk.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/fs/1.0.23/walk.js +883 -0
- package/script/deps/jsr.io/@std/json/1.0.3/types.d.ts +7 -0
- package/script/deps/jsr.io/@std/json/1.0.3/types.d.ts.map +1 -0
- package/script/deps/jsr.io/@std/json/1.0.3/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/path/1.1.4/constants.d.ts +1 -1
- 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 +13788 -5157
- 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 +849 -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 +295 -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 +334 -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 +3368 -677
- 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 +913 -0
- package/script/src/server_types.d.ts +111 -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 +176 -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 +199 -0
- package/script/src/workspace_contract.d.ts +78 -0
- package/script/src/workspace_contract.d.ts.map +1 -0
- package/script/src/workspace_contract.js +85 -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;AA0wBD,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"}
|
|
@@ -81,6 +81,30 @@ function safeJson(input) {
|
|
|
81
81
|
}
|
|
82
82
|
return {};
|
|
83
83
|
}
|
|
84
|
+
function toJsonValue(value) {
|
|
85
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
86
|
+
return value;
|
|
87
|
+
}
|
|
88
|
+
if (typeof value === "number") {
|
|
89
|
+
return Number.isFinite(value) ? value : String(value);
|
|
90
|
+
}
|
|
91
|
+
if (Array.isArray(value)) {
|
|
92
|
+
return value.map((entry) => toJsonValue(entry));
|
|
93
|
+
}
|
|
94
|
+
if (value && typeof value === "object") {
|
|
95
|
+
const out = {};
|
|
96
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
97
|
+
if (entry === undefined)
|
|
98
|
+
continue;
|
|
99
|
+
out[key] = toJsonValue(entry);
|
|
100
|
+
}
|
|
101
|
+
return out;
|
|
102
|
+
}
|
|
103
|
+
return String(value);
|
|
104
|
+
}
|
|
105
|
+
function isExtensionResponseItem(item) {
|
|
106
|
+
return item.type.includes(":");
|
|
107
|
+
}
|
|
84
108
|
function isAsyncIterable(value) {
|
|
85
109
|
return Boolean(value &&
|
|
86
110
|
typeof value === "object" &&
|
|
@@ -104,6 +128,25 @@ function mapStatus(status) {
|
|
|
104
128
|
return "in_progress";
|
|
105
129
|
return "failed";
|
|
106
130
|
}
|
|
131
|
+
function mapReasoning(reasoning) {
|
|
132
|
+
if (!reasoning)
|
|
133
|
+
return undefined;
|
|
134
|
+
const out = {};
|
|
135
|
+
if (reasoning.effort !== undefined)
|
|
136
|
+
out.effort = reasoning.effort;
|
|
137
|
+
if (reasoning.summary !== undefined)
|
|
138
|
+
out.summary = reasoning.summary;
|
|
139
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
140
|
+
}
|
|
141
|
+
function stripUndefined(input) {
|
|
142
|
+
const out = { ...input };
|
|
143
|
+
for (const [key, value] of Object.entries(out)) {
|
|
144
|
+
if (value === undefined) {
|
|
145
|
+
delete out[key];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return out;
|
|
149
|
+
}
|
|
107
150
|
function mapError(error) {
|
|
108
151
|
if (!error)
|
|
109
152
|
return undefined;
|
|
@@ -184,20 +227,45 @@ function appendSyntheticTools(tools, input) {
|
|
|
184
227
|
function mapToolChoice(toolChoice) {
|
|
185
228
|
if (!toolChoice)
|
|
186
229
|
return undefined;
|
|
187
|
-
if (toolChoice === "
|
|
230
|
+
if (toolChoice === "none" || toolChoice === "auto" ||
|
|
231
|
+
toolChoice === "required") {
|
|
188
232
|
return toolChoice;
|
|
233
|
+
}
|
|
234
|
+
if (toolChoice.type === "allowed_tools") {
|
|
235
|
+
return {
|
|
236
|
+
type: "allowed_tools",
|
|
237
|
+
tools: toolChoice.tools,
|
|
238
|
+
mode: toolChoice.mode ?? "auto",
|
|
239
|
+
};
|
|
240
|
+
}
|
|
189
241
|
return { type: "function", name: toolChoice.function.name };
|
|
190
242
|
}
|
|
243
|
+
function mapResponseContentPart(part) {
|
|
244
|
+
if (!part || typeof part !== "object")
|
|
245
|
+
return null;
|
|
246
|
+
if (typeof part.text !== "string")
|
|
247
|
+
return null;
|
|
248
|
+
if (part.type === "output_text") {
|
|
249
|
+
return { type: "output_text", text: part.text };
|
|
250
|
+
}
|
|
251
|
+
if (part.type === "summary_text") {
|
|
252
|
+
return { type: "summary_text", text: part.text };
|
|
253
|
+
}
|
|
254
|
+
if (part.type === "reasoning_text") {
|
|
255
|
+
return { type: "reasoning_text", text: part.text };
|
|
256
|
+
}
|
|
257
|
+
if (part.type === "input_text") {
|
|
258
|
+
return { type: "input_text", text: part.text };
|
|
259
|
+
}
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
191
262
|
function mapOpenAIOutputItem(item) {
|
|
192
263
|
const itemType = item.type;
|
|
193
264
|
if (itemType === "message") {
|
|
194
265
|
const message = item;
|
|
195
|
-
const content = []
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
content.push({ type: "output_text", text: part.text });
|
|
199
|
-
}
|
|
200
|
-
}
|
|
266
|
+
const content = (message.content ?? [])
|
|
267
|
+
.map((part) => mapResponseContentPart(part))
|
|
268
|
+
.filter((part) => Boolean(part));
|
|
201
269
|
if (content.length === 0)
|
|
202
270
|
return null;
|
|
203
271
|
return {
|
|
@@ -217,6 +285,48 @@ function mapOpenAIOutputItem(item) {
|
|
|
217
285
|
id: call.id,
|
|
218
286
|
};
|
|
219
287
|
}
|
|
288
|
+
if (itemType === "reasoning") {
|
|
289
|
+
const reasoning = item;
|
|
290
|
+
const content = (reasoning.content ?? [])
|
|
291
|
+
.map((part) => mapResponseContentPart(part))
|
|
292
|
+
.filter((part) => Boolean(part));
|
|
293
|
+
const summary = (reasoning.summary ?? [])
|
|
294
|
+
.map((part) => mapResponseContentPart(part))
|
|
295
|
+
.filter((part) => Boolean(part));
|
|
296
|
+
return {
|
|
297
|
+
type: "reasoning",
|
|
298
|
+
id: reasoning.id,
|
|
299
|
+
content: content.length > 0 ? content : undefined,
|
|
300
|
+
summary,
|
|
301
|
+
encrypted_content: reasoning.encrypted_content,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
if (typeof itemType === "string" && itemType.includes(":")) {
|
|
305
|
+
const raw = item;
|
|
306
|
+
const payloadEntries = Object.entries(raw).filter(([key, value]) => {
|
|
307
|
+
if (key === "type" || key === "id")
|
|
308
|
+
return false;
|
|
309
|
+
if (value === undefined)
|
|
310
|
+
return false;
|
|
311
|
+
return true;
|
|
312
|
+
});
|
|
313
|
+
let data;
|
|
314
|
+
if (payloadEntries.length === 1 && payloadEntries[0][0] === "data") {
|
|
315
|
+
data = toJsonValue(payloadEntries[0][1]);
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
const payloadObject = {};
|
|
319
|
+
for (const [key, value] of payloadEntries) {
|
|
320
|
+
payloadObject[key] = toJsonValue(value);
|
|
321
|
+
}
|
|
322
|
+
data = payloadObject;
|
|
323
|
+
}
|
|
324
|
+
return {
|
|
325
|
+
type: itemType,
|
|
326
|
+
id: typeof raw.id === "string" ? raw.id : undefined,
|
|
327
|
+
data,
|
|
328
|
+
};
|
|
329
|
+
}
|
|
220
330
|
return null;
|
|
221
331
|
}
|
|
222
332
|
function normalizeOpenAIResponse(response) {
|
|
@@ -227,11 +337,23 @@ function normalizeOpenAIResponse(response) {
|
|
|
227
337
|
id: response.id,
|
|
228
338
|
object: "response",
|
|
229
339
|
model: response.model,
|
|
340
|
+
created_at: response.created_at,
|
|
230
341
|
created: response.created_at,
|
|
342
|
+
completed_at: response.completed_at ??
|
|
343
|
+
null,
|
|
344
|
+
previous_response_id: response.previous_response_id ?? null,
|
|
345
|
+
instructions: response.instructions ?? null,
|
|
346
|
+
reasoning: response
|
|
347
|
+
.reasoning ?? null,
|
|
231
348
|
status: mapStatus(response.status ?? undefined),
|
|
232
349
|
output: outputItems,
|
|
233
350
|
usage: mapUsage(response.usage),
|
|
234
|
-
error: mapError(response.error),
|
|
351
|
+
error: mapError(response.error) ?? null,
|
|
352
|
+
metadata: response.metadata,
|
|
353
|
+
max_output_tokens: response.max_output_tokens ?? null,
|
|
354
|
+
max_tool_calls: response.max_tool_calls ?? null,
|
|
355
|
+
parallel_tool_calls: response.parallel_tool_calls,
|
|
356
|
+
store: response.store,
|
|
235
357
|
};
|
|
236
358
|
}
|
|
237
359
|
function toOpenAIInputItems(items) {
|
|
@@ -253,6 +375,18 @@ function toOpenAIInputItems(items) {
|
|
|
253
375
|
text: part.text,
|
|
254
376
|
};
|
|
255
377
|
}
|
|
378
|
+
if (part.type === "summary_text") {
|
|
379
|
+
return {
|
|
380
|
+
type: "summary_text",
|
|
381
|
+
text: part.text,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
if (part.type === "reasoning_text") {
|
|
385
|
+
return {
|
|
386
|
+
type: "reasoning_text",
|
|
387
|
+
text: part.text,
|
|
388
|
+
};
|
|
389
|
+
}
|
|
256
390
|
return null;
|
|
257
391
|
})
|
|
258
392
|
.filter((part) => Boolean(part));
|
|
@@ -283,6 +417,29 @@ function toOpenAIInputItems(items) {
|
|
|
283
417
|
output: item.output,
|
|
284
418
|
id: item.id,
|
|
285
419
|
});
|
|
420
|
+
continue;
|
|
421
|
+
}
|
|
422
|
+
if (item.type === "reasoning") {
|
|
423
|
+
mapped.push({
|
|
424
|
+
type: "reasoning",
|
|
425
|
+
id: item.id,
|
|
426
|
+
content: (item.content ?? []).map((part) => ({
|
|
427
|
+
type: part.type,
|
|
428
|
+
text: part.text,
|
|
429
|
+
})),
|
|
430
|
+
summary: item.summary.map((part) => ({
|
|
431
|
+
type: part.type,
|
|
432
|
+
text: part.text,
|
|
433
|
+
})),
|
|
434
|
+
encrypted_content: item.encrypted_content ?? null,
|
|
435
|
+
});
|
|
436
|
+
}
|
|
437
|
+
if (isExtensionResponseItem(item)) {
|
|
438
|
+
mapped.push({
|
|
439
|
+
type: item.type,
|
|
440
|
+
id: item.id,
|
|
441
|
+
data: item.data,
|
|
442
|
+
});
|
|
286
443
|
}
|
|
287
444
|
}
|
|
288
445
|
return mapped;
|
|
@@ -367,13 +524,31 @@ function responseItemsToChat(items) {
|
|
|
367
524
|
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
368
525
|
};
|
|
369
526
|
}
|
|
370
|
-
async function createResponse(client, request, onStreamEvent) {
|
|
527
|
+
async function createResponse(client, request, signal, onStreamEvent) {
|
|
371
528
|
const baseParams = {
|
|
372
529
|
model: request.model,
|
|
373
530
|
input: toOpenAIInputItems(request.input),
|
|
374
531
|
instructions: request.instructions,
|
|
375
532
|
tools: undefined,
|
|
376
533
|
tool_choice: mapToolChoice(request.tool_choice),
|
|
534
|
+
previous_response_id: request.previous_response_id,
|
|
535
|
+
reasoning: mapReasoning(request.reasoning),
|
|
536
|
+
parallel_tool_calls: request.parallel_tool_calls,
|
|
537
|
+
max_tool_calls: request.max_tool_calls,
|
|
538
|
+
store: request.store,
|
|
539
|
+
include: request.include,
|
|
540
|
+
text: request.text,
|
|
541
|
+
stream_options: request.stream_options,
|
|
542
|
+
background: request.background,
|
|
543
|
+
truncation: request.truncation,
|
|
544
|
+
service_tier: request.service_tier,
|
|
545
|
+
top_logprobs: request.top_logprobs,
|
|
546
|
+
safety_identifier: request.safety_identifier,
|
|
547
|
+
prompt_cache_key: request.prompt_cache_key,
|
|
548
|
+
temperature: request.temperature,
|
|
549
|
+
top_p: request.top_p,
|
|
550
|
+
frequency_penalty: request.frequency_penalty,
|
|
551
|
+
presence_penalty: request.presence_penalty,
|
|
377
552
|
stream: request.stream,
|
|
378
553
|
max_output_tokens: request.max_output_tokens,
|
|
379
554
|
metadata: request.metadata,
|
|
@@ -383,11 +558,11 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
383
558
|
if (mappedTools.length > 0) {
|
|
384
559
|
baseParams.tools = mappedTools;
|
|
385
560
|
}
|
|
386
|
-
const params = { ...(request.params ?? {}), ...baseParams };
|
|
561
|
+
const params = { ...(request.params ?? {}), ...stripUndefined(baseParams) };
|
|
387
562
|
const debugResponses = dntShim.Deno.env.get("GAMBIT_DEBUG_RESPONSES") === "1";
|
|
388
563
|
let responseOrStream;
|
|
389
564
|
try {
|
|
390
|
-
responseOrStream = await client.responses.create(params);
|
|
565
|
+
responseOrStream = await client.responses.create(params, signal ? { signal } : undefined);
|
|
391
566
|
}
|
|
392
567
|
catch (err) {
|
|
393
568
|
if (debugResponses) {
|
|
@@ -411,7 +586,12 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
411
586
|
switch (event.type) {
|
|
412
587
|
case "response.created": {
|
|
413
588
|
const mapped = normalizeOpenAIResponse(event.response);
|
|
414
|
-
onStreamEvent?.({
|
|
589
|
+
onStreamEvent?.({
|
|
590
|
+
type: "response.created",
|
|
591
|
+
response: mapped,
|
|
592
|
+
sequence_number: event
|
|
593
|
+
.sequence_number,
|
|
594
|
+
});
|
|
415
595
|
break;
|
|
416
596
|
}
|
|
417
597
|
case "response.output_text.delta":
|
|
@@ -420,6 +600,10 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
420
600
|
output_index: event.output_index,
|
|
421
601
|
delta: event.delta,
|
|
422
602
|
item_id: event.item_id,
|
|
603
|
+
content_index: event.content_index,
|
|
604
|
+
sequence_number: event
|
|
605
|
+
.sequence_number,
|
|
606
|
+
logprobs: event.logprobs,
|
|
423
607
|
});
|
|
424
608
|
break;
|
|
425
609
|
case "response.output_text.done":
|
|
@@ -428,6 +612,9 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
428
612
|
output_index: event.output_index,
|
|
429
613
|
text: event.text,
|
|
430
614
|
item_id: event.item_id,
|
|
615
|
+
content_index: event.content_index,
|
|
616
|
+
sequence_number: event
|
|
617
|
+
.sequence_number,
|
|
431
618
|
});
|
|
432
619
|
break;
|
|
433
620
|
case "response.output_item.added": {
|
|
@@ -437,6 +624,8 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
437
624
|
type: "response.output_item.added",
|
|
438
625
|
output_index: event.output_index,
|
|
439
626
|
item,
|
|
627
|
+
sequence_number: event
|
|
628
|
+
.sequence_number,
|
|
440
629
|
});
|
|
441
630
|
}
|
|
442
631
|
break;
|
|
@@ -448,13 +637,102 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
448
637
|
type: "response.output_item.done",
|
|
449
638
|
output_index: event.output_index,
|
|
450
639
|
item,
|
|
640
|
+
sequence_number: event
|
|
641
|
+
.sequence_number,
|
|
451
642
|
});
|
|
452
643
|
}
|
|
453
644
|
break;
|
|
454
645
|
}
|
|
646
|
+
case "response.reasoning.delta":
|
|
647
|
+
if (typeof event.delta === "string") {
|
|
648
|
+
onStreamEvent?.({
|
|
649
|
+
type: "response.reasoning.delta",
|
|
650
|
+
output_index: event.output_index,
|
|
651
|
+
item_id: event.item_id,
|
|
652
|
+
content_index: event.content_index,
|
|
653
|
+
delta: event.delta,
|
|
654
|
+
sequence_number: event
|
|
655
|
+
.sequence_number,
|
|
656
|
+
obfuscation: event.obfuscation,
|
|
657
|
+
});
|
|
658
|
+
}
|
|
659
|
+
break;
|
|
660
|
+
case "response.reasoning.done":
|
|
661
|
+
onStreamEvent?.({
|
|
662
|
+
type: "response.reasoning.done",
|
|
663
|
+
output_index: event.output_index,
|
|
664
|
+
item_id: event.item_id,
|
|
665
|
+
content_index: event.content_index,
|
|
666
|
+
text: event.text,
|
|
667
|
+
sequence_number: event
|
|
668
|
+
.sequence_number,
|
|
669
|
+
});
|
|
670
|
+
break;
|
|
671
|
+
case "response.reasoning_summary_text.delta":
|
|
672
|
+
if (typeof event.delta === "string") {
|
|
673
|
+
onStreamEvent?.({
|
|
674
|
+
type: "response.reasoning_summary_text.delta",
|
|
675
|
+
output_index: event.output_index,
|
|
676
|
+
item_id: event.item_id,
|
|
677
|
+
summary_index: event.summary_index,
|
|
678
|
+
delta: event.delta,
|
|
679
|
+
sequence_number: event
|
|
680
|
+
.sequence_number,
|
|
681
|
+
obfuscation: event.obfuscation,
|
|
682
|
+
});
|
|
683
|
+
}
|
|
684
|
+
break;
|
|
685
|
+
case "response.reasoning_summary_text.done":
|
|
686
|
+
onStreamEvent?.({
|
|
687
|
+
type: "response.reasoning_summary_text.done",
|
|
688
|
+
output_index: event.output_index,
|
|
689
|
+
item_id: event.item_id,
|
|
690
|
+
summary_index: event.summary_index,
|
|
691
|
+
text: event.text,
|
|
692
|
+
sequence_number: event
|
|
693
|
+
.sequence_number,
|
|
694
|
+
});
|
|
695
|
+
break;
|
|
696
|
+
case "response.reasoning_summary_part.added":
|
|
697
|
+
if (event.part && typeof event.part === "object" &&
|
|
698
|
+
"type" in event.part &&
|
|
699
|
+
"text" in event.part &&
|
|
700
|
+
typeof event.part.text === "string") {
|
|
701
|
+
onStreamEvent?.({
|
|
702
|
+
type: "response.reasoning_summary_part.added",
|
|
703
|
+
output_index: event.output_index,
|
|
704
|
+
item_id: event.item_id,
|
|
705
|
+
summary_index: event.summary_index,
|
|
706
|
+
part: event.part,
|
|
707
|
+
sequence_number: event
|
|
708
|
+
.sequence_number,
|
|
709
|
+
});
|
|
710
|
+
}
|
|
711
|
+
break;
|
|
712
|
+
case "response.reasoning_summary_part.done":
|
|
713
|
+
if (event.part && typeof event.part === "object" &&
|
|
714
|
+
"type" in event.part &&
|
|
715
|
+
"text" in event.part &&
|
|
716
|
+
typeof event.part.text === "string") {
|
|
717
|
+
onStreamEvent?.({
|
|
718
|
+
type: "response.reasoning_summary_part.done",
|
|
719
|
+
output_index: event.output_index,
|
|
720
|
+
item_id: event.item_id,
|
|
721
|
+
summary_index: event.summary_index,
|
|
722
|
+
part: event.part,
|
|
723
|
+
sequence_number: event
|
|
724
|
+
.sequence_number,
|
|
725
|
+
});
|
|
726
|
+
}
|
|
727
|
+
break;
|
|
455
728
|
case "response.completed": {
|
|
456
729
|
completed = normalizeOpenAIResponse(event.response);
|
|
457
|
-
onStreamEvent?.({
|
|
730
|
+
onStreamEvent?.({
|
|
731
|
+
type: "response.completed",
|
|
732
|
+
response: completed,
|
|
733
|
+
sequence_number: event
|
|
734
|
+
.sequence_number,
|
|
735
|
+
});
|
|
458
736
|
break;
|
|
459
737
|
}
|
|
460
738
|
case "response.failed": {
|
|
@@ -462,6 +740,8 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
462
740
|
onStreamEvent?.({
|
|
463
741
|
type: "response.failed",
|
|
464
742
|
error: error ?? {},
|
|
743
|
+
sequence_number: event
|
|
744
|
+
.sequence_number,
|
|
465
745
|
});
|
|
466
746
|
break;
|
|
467
747
|
}
|
|
@@ -483,7 +763,7 @@ export function createOllamaProvider(opts) {
|
|
|
483
763
|
}));
|
|
484
764
|
return {
|
|
485
765
|
async responses(input) {
|
|
486
|
-
return await createResponse(client, input.request, input.onStreamEvent);
|
|
766
|
+
return await createResponse(client, input.request, input.signal, input.onStreamEvent);
|
|
487
767
|
},
|
|
488
768
|
async chat(input) {
|
|
489
769
|
const response = await createResponse(client, {
|
|
@@ -492,7 +772,7 @@ export function createOllamaProvider(opts) {
|
|
|
492
772
|
tools: input.tools,
|
|
493
773
|
stream: input.stream,
|
|
494
774
|
params: input.params ?? {},
|
|
495
|
-
}, (event) => {
|
|
775
|
+
}, input.signal, (event) => {
|
|
496
776
|
if (event.type === "response.output_text.delta") {
|
|
497
777
|
input.onStreamText?.(event.delta);
|
|
498
778
|
}
|
|
@@ -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: {
|