@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"}
|
|
@@ -44,8 +44,13 @@ function normalizeMessage(content) {
|
|
|
44
44
|
function toToolChoice(choice) {
|
|
45
45
|
if (!choice)
|
|
46
46
|
return undefined;
|
|
47
|
-
if (choice === "auto" || choice === "required")
|
|
47
|
+
if (choice === "none" || choice === "auto" || choice === "required") {
|
|
48
48
|
return choice;
|
|
49
|
+
}
|
|
50
|
+
if (choice.type === "allowed_tools") {
|
|
51
|
+
return (choice.mode ??
|
|
52
|
+
"auto");
|
|
53
|
+
}
|
|
49
54
|
return { type: "function", function: { name: choice.function.name } };
|
|
50
55
|
}
|
|
51
56
|
function responseItemsToChatMessages(items, instructions) {
|
|
@@ -133,6 +138,20 @@ function createGoogleProvider(opts) {
|
|
|
133
138
|
async responses(input) {
|
|
134
139
|
const request = input.request;
|
|
135
140
|
const params = { ...(request.params ?? {}) };
|
|
141
|
+
if (request.temperature !== undefined && params.temperature === undefined) {
|
|
142
|
+
params.temperature = request.temperature;
|
|
143
|
+
}
|
|
144
|
+
if (request.top_p !== undefined && params.top_p === undefined) {
|
|
145
|
+
params.top_p = request.top_p;
|
|
146
|
+
}
|
|
147
|
+
if (request.frequency_penalty !== undefined &&
|
|
148
|
+
params.frequency_penalty === undefined) {
|
|
149
|
+
params.frequency_penalty = request.frequency_penalty;
|
|
150
|
+
}
|
|
151
|
+
if (request.presence_penalty !== undefined &&
|
|
152
|
+
params.presence_penalty === undefined) {
|
|
153
|
+
params.presence_penalty = request.presence_penalty;
|
|
154
|
+
}
|
|
136
155
|
if (request.max_output_tokens !== undefined &&
|
|
137
156
|
params.max_tokens === undefined) {
|
|
138
157
|
params.max_tokens = request.max_output_tokens;
|
|
@@ -140,6 +159,7 @@ function createGoogleProvider(opts) {
|
|
|
140
159
|
const messages = responseItemsToChatMessages(request.input, request.instructions);
|
|
141
160
|
const toolChoice = toToolChoice(request.tool_choice);
|
|
142
161
|
if (request.stream) {
|
|
162
|
+
let sequence = 0;
|
|
143
163
|
const stream = await client.chat.completions.create({
|
|
144
164
|
model: request.model,
|
|
145
165
|
messages: messages,
|
|
@@ -147,14 +167,32 @@ function createGoogleProvider(opts) {
|
|
|
147
167
|
tool_choice: toolChoice ?? "auto",
|
|
148
168
|
stream: true,
|
|
149
169
|
...params,
|
|
150
|
-
});
|
|
170
|
+
}, input.signal ? { signal: input.signal } : undefined);
|
|
151
171
|
const contentParts = [];
|
|
152
172
|
const toolCallMap = new Map();
|
|
153
173
|
let responseId;
|
|
154
174
|
let created;
|
|
175
|
+
let emittedCreated = false;
|
|
155
176
|
for await (const chunk of stream) {
|
|
156
177
|
responseId = responseId ?? chunk.id;
|
|
157
178
|
created = created ?? chunk.created;
|
|
179
|
+
if (!emittedCreated) {
|
|
180
|
+
input.onStreamEvent?.({
|
|
181
|
+
type: "response.created",
|
|
182
|
+
sequence_number: sequence++,
|
|
183
|
+
response: {
|
|
184
|
+
id: responseId ?? crypto.randomUUID(),
|
|
185
|
+
object: "response",
|
|
186
|
+
model: request.model,
|
|
187
|
+
created_at: created,
|
|
188
|
+
created,
|
|
189
|
+
status: "in_progress",
|
|
190
|
+
output: [],
|
|
191
|
+
error: null,
|
|
192
|
+
},
|
|
193
|
+
});
|
|
194
|
+
emittedCreated = true;
|
|
195
|
+
}
|
|
158
196
|
const choice = chunk.choices[0];
|
|
159
197
|
const delta = choice.delta;
|
|
160
198
|
if (typeof delta.content === "string") {
|
|
@@ -163,6 +201,7 @@ function createGoogleProvider(opts) {
|
|
|
163
201
|
type: "response.output_text.delta",
|
|
164
202
|
output_index: 0,
|
|
165
203
|
delta: delta.content,
|
|
204
|
+
sequence_number: sequence++,
|
|
166
205
|
});
|
|
167
206
|
}
|
|
168
207
|
else if (Array.isArray(delta.content)) {
|
|
@@ -175,6 +214,7 @@ function createGoogleProvider(opts) {
|
|
|
175
214
|
type: "response.output_text.delta",
|
|
176
215
|
output_index: 0,
|
|
177
216
|
delta: text,
|
|
217
|
+
sequence_number: sequence++,
|
|
178
218
|
});
|
|
179
219
|
}
|
|
180
220
|
}
|
|
@@ -220,11 +260,31 @@ function createGoogleProvider(opts) {
|
|
|
220
260
|
id: responseId ?? crypto.randomUUID(),
|
|
221
261
|
object: "response",
|
|
222
262
|
model: request.model,
|
|
263
|
+
created_at: created,
|
|
223
264
|
created,
|
|
224
265
|
status: "completed",
|
|
225
266
|
output,
|
|
267
|
+
previous_response_id: request.previous_response_id ?? null,
|
|
268
|
+
instructions: request.instructions ?? null,
|
|
269
|
+
tool_choice: request.tool_choice,
|
|
270
|
+
max_output_tokens: request.max_output_tokens ?? null,
|
|
271
|
+
max_tool_calls: request.max_tool_calls ?? null,
|
|
272
|
+
parallel_tool_calls: request.parallel_tool_calls,
|
|
273
|
+
store: request.store,
|
|
274
|
+
metadata: request.metadata,
|
|
275
|
+
reasoning: request.reasoning
|
|
276
|
+
? {
|
|
277
|
+
effort: request.reasoning.effort ?? null,
|
|
278
|
+
summary: request.reasoning.summary ?? null,
|
|
279
|
+
}
|
|
280
|
+
: null,
|
|
281
|
+
error: null,
|
|
226
282
|
};
|
|
227
|
-
input.onStreamEvent?.({
|
|
283
|
+
input.onStreamEvent?.({
|
|
284
|
+
type: "response.completed",
|
|
285
|
+
sequence_number: sequence++,
|
|
286
|
+
response,
|
|
287
|
+
});
|
|
228
288
|
return response;
|
|
229
289
|
}
|
|
230
290
|
const response = await client.chat.completions.create({
|
|
@@ -234,7 +294,7 @@ function createGoogleProvider(opts) {
|
|
|
234
294
|
tool_choice: toolChoice ?? "auto",
|
|
235
295
|
stream: false,
|
|
236
296
|
...params,
|
|
237
|
-
});
|
|
297
|
+
}, input.signal ? { signal: input.signal } : undefined);
|
|
238
298
|
const choice = response.choices[0];
|
|
239
299
|
const normalizedMessage = normalizeMessage(choice.message);
|
|
240
300
|
const toolCalls = choice.message.tool_calls?.map((tc) => ({
|
|
@@ -246,9 +306,25 @@ function createGoogleProvider(opts) {
|
|
|
246
306
|
id: response.id,
|
|
247
307
|
object: "response",
|
|
248
308
|
model: response.model,
|
|
309
|
+
created_at: response.created,
|
|
249
310
|
created: response.created,
|
|
250
311
|
status: "completed",
|
|
251
312
|
output: responseItemsFromChatMessage(normalizedMessage, toolCalls),
|
|
313
|
+
previous_response_id: request.previous_response_id ?? null,
|
|
314
|
+
instructions: request.instructions ?? null,
|
|
315
|
+
tool_choice: request.tool_choice,
|
|
316
|
+
max_output_tokens: request.max_output_tokens ?? null,
|
|
317
|
+
max_tool_calls: request.max_tool_calls ?? null,
|
|
318
|
+
parallel_tool_calls: request.parallel_tool_calls,
|
|
319
|
+
store: request.store,
|
|
320
|
+
metadata: request.metadata,
|
|
321
|
+
reasoning: request.reasoning
|
|
322
|
+
? {
|
|
323
|
+
effort: request.reasoning.effort ?? null,
|
|
324
|
+
summary: request.reasoning.summary ?? null,
|
|
325
|
+
}
|
|
326
|
+
: null,
|
|
327
|
+
error: null,
|
|
252
328
|
usage: mapChatUsage(response.usage),
|
|
253
329
|
};
|
|
254
330
|
},
|
|
@@ -263,7 +339,7 @@ function createGoogleProvider(opts) {
|
|
|
263
339
|
tool_choice: "auto",
|
|
264
340
|
stream: true,
|
|
265
341
|
...params,
|
|
266
|
-
});
|
|
342
|
+
}, input.signal ? { signal: input.signal } : undefined);
|
|
267
343
|
let finishReason = null;
|
|
268
344
|
const contentParts = [];
|
|
269
345
|
const toolCallMap = new Map();
|
|
@@ -340,7 +416,7 @@ function createGoogleProvider(opts) {
|
|
|
340
416
|
tool_choice: "auto",
|
|
341
417
|
stream: false,
|
|
342
418
|
...params,
|
|
343
|
-
});
|
|
419
|
+
}, input.signal ? { signal: input.signal } : undefined);
|
|
344
420
|
const choice = response.choices[0];
|
|
345
421
|
const message = normalizeMessage(choice.message);
|
|
346
422
|
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"}
|
|
@@ -123,6 +123,30 @@ function safeJson(input) {
|
|
|
123
123
|
}
|
|
124
124
|
return {};
|
|
125
125
|
}
|
|
126
|
+
function toJsonValue(value) {
|
|
127
|
+
if (value === null || typeof value === "string" || typeof value === "boolean") {
|
|
128
|
+
return value;
|
|
129
|
+
}
|
|
130
|
+
if (typeof value === "number") {
|
|
131
|
+
return Number.isFinite(value) ? value : String(value);
|
|
132
|
+
}
|
|
133
|
+
if (Array.isArray(value)) {
|
|
134
|
+
return value.map((entry) => toJsonValue(entry));
|
|
135
|
+
}
|
|
136
|
+
if (value && typeof value === "object") {
|
|
137
|
+
const out = {};
|
|
138
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
139
|
+
if (entry === undefined)
|
|
140
|
+
continue;
|
|
141
|
+
out[key] = toJsonValue(entry);
|
|
142
|
+
}
|
|
143
|
+
return out;
|
|
144
|
+
}
|
|
145
|
+
return String(value);
|
|
146
|
+
}
|
|
147
|
+
function isExtensionResponseItem(item) {
|
|
148
|
+
return item.type.includes(":");
|
|
149
|
+
}
|
|
126
150
|
function isAsyncIterable(value) {
|
|
127
151
|
return Boolean(value &&
|
|
128
152
|
typeof value === "object" &&
|
|
@@ -146,6 +170,25 @@ function mapStatus(status) {
|
|
|
146
170
|
return "in_progress";
|
|
147
171
|
return "failed";
|
|
148
172
|
}
|
|
173
|
+
function mapReasoning(reasoning) {
|
|
174
|
+
if (!reasoning)
|
|
175
|
+
return undefined;
|
|
176
|
+
const out = {};
|
|
177
|
+
if (reasoning.effort !== undefined)
|
|
178
|
+
out.effort = reasoning.effort;
|
|
179
|
+
if (reasoning.summary !== undefined)
|
|
180
|
+
out.summary = reasoning.summary;
|
|
181
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
182
|
+
}
|
|
183
|
+
function stripUndefined(input) {
|
|
184
|
+
const out = { ...input };
|
|
185
|
+
for (const [key, value] of Object.entries(out)) {
|
|
186
|
+
if (value === undefined) {
|
|
187
|
+
delete out[key];
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return out;
|
|
191
|
+
}
|
|
149
192
|
function mapError(error) {
|
|
150
193
|
if (!error)
|
|
151
194
|
return undefined;
|
|
@@ -226,20 +269,45 @@ function appendSyntheticTools(tools, input) {
|
|
|
226
269
|
function mapToolChoice(toolChoice) {
|
|
227
270
|
if (!toolChoice)
|
|
228
271
|
return undefined;
|
|
229
|
-
if (toolChoice === "
|
|
272
|
+
if (toolChoice === "none" || toolChoice === "auto" ||
|
|
273
|
+
toolChoice === "required") {
|
|
230
274
|
return toolChoice;
|
|
275
|
+
}
|
|
276
|
+
if (toolChoice.type === "allowed_tools") {
|
|
277
|
+
return {
|
|
278
|
+
type: "allowed_tools",
|
|
279
|
+
tools: toolChoice.tools,
|
|
280
|
+
mode: toolChoice.mode ?? "auto",
|
|
281
|
+
};
|
|
282
|
+
}
|
|
231
283
|
return { type: "function", name: toolChoice.function.name };
|
|
232
284
|
}
|
|
285
|
+
function mapResponseContentPart(part) {
|
|
286
|
+
if (!part || typeof part !== "object")
|
|
287
|
+
return null;
|
|
288
|
+
if (typeof part.text !== "string")
|
|
289
|
+
return null;
|
|
290
|
+
if (part.type === "output_text") {
|
|
291
|
+
return { type: "output_text", text: part.text };
|
|
292
|
+
}
|
|
293
|
+
if (part.type === "summary_text") {
|
|
294
|
+
return { type: "summary_text", text: part.text };
|
|
295
|
+
}
|
|
296
|
+
if (part.type === "reasoning_text") {
|
|
297
|
+
return { type: "reasoning_text", text: part.text };
|
|
298
|
+
}
|
|
299
|
+
if (part.type === "input_text") {
|
|
300
|
+
return { type: "input_text", text: part.text };
|
|
301
|
+
}
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
233
304
|
function mapOpenAIOutputItem(item) {
|
|
234
305
|
const itemType = item.type;
|
|
235
306
|
if (itemType === "message") {
|
|
236
307
|
const message = item;
|
|
237
|
-
const content = []
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
content.push({ type: "output_text", text: part.text });
|
|
241
|
-
}
|
|
242
|
-
}
|
|
308
|
+
const content = (message.content ?? [])
|
|
309
|
+
.map((part) => mapResponseContentPart(part))
|
|
310
|
+
.filter((part) => Boolean(part));
|
|
243
311
|
if (content.length === 0)
|
|
244
312
|
return null;
|
|
245
313
|
return {
|
|
@@ -259,6 +327,48 @@ function mapOpenAIOutputItem(item) {
|
|
|
259
327
|
id: call.id,
|
|
260
328
|
};
|
|
261
329
|
}
|
|
330
|
+
if (itemType === "reasoning") {
|
|
331
|
+
const reasoning = item;
|
|
332
|
+
const content = (reasoning.content ?? [])
|
|
333
|
+
.map((part) => mapResponseContentPart(part))
|
|
334
|
+
.filter((part) => Boolean(part));
|
|
335
|
+
const summary = (reasoning.summary ?? [])
|
|
336
|
+
.map((part) => mapResponseContentPart(part))
|
|
337
|
+
.filter((part) => Boolean(part));
|
|
338
|
+
return {
|
|
339
|
+
type: "reasoning",
|
|
340
|
+
id: reasoning.id,
|
|
341
|
+
content: content.length > 0 ? content : undefined,
|
|
342
|
+
summary,
|
|
343
|
+
encrypted_content: reasoning.encrypted_content,
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
if (typeof itemType === "string" && itemType.includes(":")) {
|
|
347
|
+
const raw = item;
|
|
348
|
+
const payloadEntries = Object.entries(raw).filter(([key, value]) => {
|
|
349
|
+
if (key === "type" || key === "id")
|
|
350
|
+
return false;
|
|
351
|
+
if (value === undefined)
|
|
352
|
+
return false;
|
|
353
|
+
return true;
|
|
354
|
+
});
|
|
355
|
+
let data;
|
|
356
|
+
if (payloadEntries.length === 1 && payloadEntries[0][0] === "data") {
|
|
357
|
+
data = toJsonValue(payloadEntries[0][1]);
|
|
358
|
+
}
|
|
359
|
+
else {
|
|
360
|
+
const payloadObject = {};
|
|
361
|
+
for (const [key, value] of payloadEntries) {
|
|
362
|
+
payloadObject[key] = toJsonValue(value);
|
|
363
|
+
}
|
|
364
|
+
data = payloadObject;
|
|
365
|
+
}
|
|
366
|
+
return {
|
|
367
|
+
type: itemType,
|
|
368
|
+
id: typeof raw.id === "string" ? raw.id : undefined,
|
|
369
|
+
data,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
262
372
|
return null;
|
|
263
373
|
}
|
|
264
374
|
function normalizeOpenAIResponse(response) {
|
|
@@ -269,11 +379,23 @@ function normalizeOpenAIResponse(response) {
|
|
|
269
379
|
id: response.id,
|
|
270
380
|
object: "response",
|
|
271
381
|
model: response.model,
|
|
382
|
+
created_at: response.created_at,
|
|
272
383
|
created: response.created_at,
|
|
384
|
+
completed_at: response.completed_at ??
|
|
385
|
+
null,
|
|
386
|
+
previous_response_id: response.previous_response_id ?? null,
|
|
387
|
+
instructions: response.instructions ?? null,
|
|
388
|
+
reasoning: response
|
|
389
|
+
.reasoning ?? null,
|
|
273
390
|
status: mapStatus(response.status ?? undefined),
|
|
274
391
|
output: outputItems,
|
|
275
392
|
usage: mapUsage(response.usage),
|
|
276
|
-
error: mapError(response.error),
|
|
393
|
+
error: mapError(response.error) ?? null,
|
|
394
|
+
metadata: response.metadata,
|
|
395
|
+
max_output_tokens: response.max_output_tokens ?? null,
|
|
396
|
+
max_tool_calls: response.max_tool_calls ?? null,
|
|
397
|
+
parallel_tool_calls: response.parallel_tool_calls,
|
|
398
|
+
store: response.store,
|
|
277
399
|
};
|
|
278
400
|
}
|
|
279
401
|
function toOpenAIInputItems(items) {
|
|
@@ -295,6 +417,18 @@ function toOpenAIInputItems(items) {
|
|
|
295
417
|
text: part.text,
|
|
296
418
|
};
|
|
297
419
|
}
|
|
420
|
+
if (part.type === "summary_text") {
|
|
421
|
+
return {
|
|
422
|
+
type: "summary_text",
|
|
423
|
+
text: part.text,
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
if (part.type === "reasoning_text") {
|
|
427
|
+
return {
|
|
428
|
+
type: "reasoning_text",
|
|
429
|
+
text: part.text,
|
|
430
|
+
};
|
|
431
|
+
}
|
|
298
432
|
return null;
|
|
299
433
|
})
|
|
300
434
|
.filter((part) => Boolean(part));
|
|
@@ -325,6 +459,29 @@ function toOpenAIInputItems(items) {
|
|
|
325
459
|
output: item.output,
|
|
326
460
|
id: item.id,
|
|
327
461
|
});
|
|
462
|
+
continue;
|
|
463
|
+
}
|
|
464
|
+
if (item.type === "reasoning") {
|
|
465
|
+
mapped.push({
|
|
466
|
+
type: "reasoning",
|
|
467
|
+
id: item.id,
|
|
468
|
+
content: (item.content ?? []).map((part) => ({
|
|
469
|
+
type: part.type,
|
|
470
|
+
text: part.text,
|
|
471
|
+
})),
|
|
472
|
+
summary: item.summary.map((part) => ({
|
|
473
|
+
type: part.type,
|
|
474
|
+
text: part.text,
|
|
475
|
+
})),
|
|
476
|
+
encrypted_content: item.encrypted_content ?? null,
|
|
477
|
+
});
|
|
478
|
+
}
|
|
479
|
+
if (isExtensionResponseItem(item)) {
|
|
480
|
+
mapped.push({
|
|
481
|
+
type: item.type,
|
|
482
|
+
id: item.id,
|
|
483
|
+
data: item.data,
|
|
484
|
+
});
|
|
328
485
|
}
|
|
329
486
|
}
|
|
330
487
|
return mapped;
|
|
@@ -409,13 +566,31 @@ function responseItemsToChat(items) {
|
|
|
409
566
|
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
410
567
|
};
|
|
411
568
|
}
|
|
412
|
-
async function createResponse(client, request, onStreamEvent) {
|
|
569
|
+
async function createResponse(client, request, signal, onStreamEvent) {
|
|
413
570
|
const baseParams = {
|
|
414
571
|
model: request.model,
|
|
415
572
|
input: toOpenAIInputItems(request.input),
|
|
416
573
|
instructions: request.instructions,
|
|
417
574
|
tools: undefined,
|
|
418
575
|
tool_choice: mapToolChoice(request.tool_choice),
|
|
576
|
+
previous_response_id: request.previous_response_id,
|
|
577
|
+
reasoning: mapReasoning(request.reasoning),
|
|
578
|
+
parallel_tool_calls: request.parallel_tool_calls,
|
|
579
|
+
max_tool_calls: request.max_tool_calls,
|
|
580
|
+
store: request.store,
|
|
581
|
+
include: request.include,
|
|
582
|
+
text: request.text,
|
|
583
|
+
stream_options: request.stream_options,
|
|
584
|
+
background: request.background,
|
|
585
|
+
truncation: request.truncation,
|
|
586
|
+
service_tier: request.service_tier,
|
|
587
|
+
top_logprobs: request.top_logprobs,
|
|
588
|
+
safety_identifier: request.safety_identifier,
|
|
589
|
+
prompt_cache_key: request.prompt_cache_key,
|
|
590
|
+
temperature: request.temperature,
|
|
591
|
+
top_p: request.top_p,
|
|
592
|
+
frequency_penalty: request.frequency_penalty,
|
|
593
|
+
presence_penalty: request.presence_penalty,
|
|
419
594
|
stream: request.stream,
|
|
420
595
|
max_output_tokens: request.max_output_tokens,
|
|
421
596
|
metadata: request.metadata,
|
|
@@ -425,11 +600,11 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
425
600
|
if (mappedTools.length > 0) {
|
|
426
601
|
baseParams.tools = mappedTools;
|
|
427
602
|
}
|
|
428
|
-
const params = { ...(request.params ?? {}), ...baseParams };
|
|
603
|
+
const params = { ...(request.params ?? {}), ...stripUndefined(baseParams) };
|
|
429
604
|
const debugResponses = dntShim.Deno.env.get("GAMBIT_DEBUG_RESPONSES") === "1";
|
|
430
605
|
let responseOrStream;
|
|
431
606
|
try {
|
|
432
|
-
responseOrStream = await client.responses.create(params);
|
|
607
|
+
responseOrStream = await client.responses.create(params, signal ? { signal } : undefined);
|
|
433
608
|
}
|
|
434
609
|
catch (err) {
|
|
435
610
|
if (debugResponses) {
|
|
@@ -453,7 +628,12 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
453
628
|
switch (event.type) {
|
|
454
629
|
case "response.created": {
|
|
455
630
|
const mapped = normalizeOpenAIResponse(event.response);
|
|
456
|
-
onStreamEvent?.({
|
|
631
|
+
onStreamEvent?.({
|
|
632
|
+
type: "response.created",
|
|
633
|
+
response: mapped,
|
|
634
|
+
sequence_number: event
|
|
635
|
+
.sequence_number,
|
|
636
|
+
});
|
|
457
637
|
break;
|
|
458
638
|
}
|
|
459
639
|
case "response.output_text.delta":
|
|
@@ -462,6 +642,10 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
462
642
|
output_index: event.output_index,
|
|
463
643
|
delta: event.delta,
|
|
464
644
|
item_id: event.item_id,
|
|
645
|
+
content_index: event.content_index,
|
|
646
|
+
sequence_number: event
|
|
647
|
+
.sequence_number,
|
|
648
|
+
logprobs: event.logprobs,
|
|
465
649
|
});
|
|
466
650
|
break;
|
|
467
651
|
case "response.output_text.done":
|
|
@@ -470,6 +654,9 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
470
654
|
output_index: event.output_index,
|
|
471
655
|
text: event.text,
|
|
472
656
|
item_id: event.item_id,
|
|
657
|
+
content_index: event.content_index,
|
|
658
|
+
sequence_number: event
|
|
659
|
+
.sequence_number,
|
|
473
660
|
});
|
|
474
661
|
break;
|
|
475
662
|
case "response.output_item.added": {
|
|
@@ -479,6 +666,8 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
479
666
|
type: "response.output_item.added",
|
|
480
667
|
output_index: event.output_index,
|
|
481
668
|
item,
|
|
669
|
+
sequence_number: event
|
|
670
|
+
.sequence_number,
|
|
482
671
|
});
|
|
483
672
|
}
|
|
484
673
|
break;
|
|
@@ -490,13 +679,102 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
490
679
|
type: "response.output_item.done",
|
|
491
680
|
output_index: event.output_index,
|
|
492
681
|
item,
|
|
682
|
+
sequence_number: event
|
|
683
|
+
.sequence_number,
|
|
493
684
|
});
|
|
494
685
|
}
|
|
495
686
|
break;
|
|
496
687
|
}
|
|
688
|
+
case "response.reasoning.delta":
|
|
689
|
+
if (typeof event.delta === "string") {
|
|
690
|
+
onStreamEvent?.({
|
|
691
|
+
type: "response.reasoning.delta",
|
|
692
|
+
output_index: event.output_index,
|
|
693
|
+
item_id: event.item_id,
|
|
694
|
+
content_index: event.content_index,
|
|
695
|
+
delta: event.delta,
|
|
696
|
+
sequence_number: event
|
|
697
|
+
.sequence_number,
|
|
698
|
+
obfuscation: event.obfuscation,
|
|
699
|
+
});
|
|
700
|
+
}
|
|
701
|
+
break;
|
|
702
|
+
case "response.reasoning.done":
|
|
703
|
+
onStreamEvent?.({
|
|
704
|
+
type: "response.reasoning.done",
|
|
705
|
+
output_index: event.output_index,
|
|
706
|
+
item_id: event.item_id,
|
|
707
|
+
content_index: event.content_index,
|
|
708
|
+
text: event.text,
|
|
709
|
+
sequence_number: event
|
|
710
|
+
.sequence_number,
|
|
711
|
+
});
|
|
712
|
+
break;
|
|
713
|
+
case "response.reasoning_summary_text.delta":
|
|
714
|
+
if (typeof event.delta === "string") {
|
|
715
|
+
onStreamEvent?.({
|
|
716
|
+
type: "response.reasoning_summary_text.delta",
|
|
717
|
+
output_index: event.output_index,
|
|
718
|
+
item_id: event.item_id,
|
|
719
|
+
summary_index: event.summary_index,
|
|
720
|
+
delta: event.delta,
|
|
721
|
+
sequence_number: event
|
|
722
|
+
.sequence_number,
|
|
723
|
+
obfuscation: event.obfuscation,
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
break;
|
|
727
|
+
case "response.reasoning_summary_text.done":
|
|
728
|
+
onStreamEvent?.({
|
|
729
|
+
type: "response.reasoning_summary_text.done",
|
|
730
|
+
output_index: event.output_index,
|
|
731
|
+
item_id: event.item_id,
|
|
732
|
+
summary_index: event.summary_index,
|
|
733
|
+
text: event.text,
|
|
734
|
+
sequence_number: event
|
|
735
|
+
.sequence_number,
|
|
736
|
+
});
|
|
737
|
+
break;
|
|
738
|
+
case "response.reasoning_summary_part.added":
|
|
739
|
+
if (event.part && typeof event.part === "object" &&
|
|
740
|
+
"type" in event.part &&
|
|
741
|
+
"text" in event.part &&
|
|
742
|
+
typeof event.part.text === "string") {
|
|
743
|
+
onStreamEvent?.({
|
|
744
|
+
type: "response.reasoning_summary_part.added",
|
|
745
|
+
output_index: event.output_index,
|
|
746
|
+
item_id: event.item_id,
|
|
747
|
+
summary_index: event.summary_index,
|
|
748
|
+
part: event.part,
|
|
749
|
+
sequence_number: event
|
|
750
|
+
.sequence_number,
|
|
751
|
+
});
|
|
752
|
+
}
|
|
753
|
+
break;
|
|
754
|
+
case "response.reasoning_summary_part.done":
|
|
755
|
+
if (event.part && typeof event.part === "object" &&
|
|
756
|
+
"type" in event.part &&
|
|
757
|
+
"text" in event.part &&
|
|
758
|
+
typeof event.part.text === "string") {
|
|
759
|
+
onStreamEvent?.({
|
|
760
|
+
type: "response.reasoning_summary_part.done",
|
|
761
|
+
output_index: event.output_index,
|
|
762
|
+
item_id: event.item_id,
|
|
763
|
+
summary_index: event.summary_index,
|
|
764
|
+
part: event.part,
|
|
765
|
+
sequence_number: event
|
|
766
|
+
.sequence_number,
|
|
767
|
+
});
|
|
768
|
+
}
|
|
769
|
+
break;
|
|
497
770
|
case "response.completed": {
|
|
498
771
|
completed = normalizeOpenAIResponse(event.response);
|
|
499
|
-
onStreamEvent?.({
|
|
772
|
+
onStreamEvent?.({
|
|
773
|
+
type: "response.completed",
|
|
774
|
+
response: completed,
|
|
775
|
+
sequence_number: event
|
|
776
|
+
.sequence_number,
|
|
777
|
+
});
|
|
500
778
|
break;
|
|
501
779
|
}
|
|
502
780
|
case "response.failed": {
|
|
@@ -504,6 +782,8 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
504
782
|
onStreamEvent?.({
|
|
505
783
|
type: "response.failed",
|
|
506
784
|
error: error ?? {},
|
|
785
|
+
sequence_number: event
|
|
786
|
+
.sequence_number,
|
|
507
787
|
});
|
|
508
788
|
break;
|
|
509
789
|
}
|
|
@@ -525,7 +805,7 @@ function createOllamaProvider(opts) {
|
|
|
525
805
|
}));
|
|
526
806
|
return {
|
|
527
807
|
async responses(input) {
|
|
528
|
-
return await createResponse(client, input.request, input.onStreamEvent);
|
|
808
|
+
return await createResponse(client, input.request, input.signal, input.onStreamEvent);
|
|
529
809
|
},
|
|
530
810
|
async chat(input) {
|
|
531
811
|
const response = await createResponse(client, {
|
|
@@ -534,7 +814,7 @@ function createOllamaProvider(opts) {
|
|
|
534
814
|
tools: input.tools,
|
|
535
815
|
stream: input.stream,
|
|
536
816
|
params: input.params ?? {},
|
|
537
|
-
}, (event) => {
|
|
817
|
+
}, input.signal, (event) => {
|
|
538
818
|
if (event.type === "response.output_text.delta") {
|
|
539
819
|
input.onStreamText?.(event.delta);
|
|
540
820
|
}
|
|
@@ -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: {
|