@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"}
|
|
@@ -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;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"}
|
|
@@ -146,6 +146,25 @@ function mapStatus(status) {
|
|
|
146
146
|
return "in_progress";
|
|
147
147
|
return "failed";
|
|
148
148
|
}
|
|
149
|
+
function mapReasoning(reasoning) {
|
|
150
|
+
if (!reasoning)
|
|
151
|
+
return undefined;
|
|
152
|
+
const out = {};
|
|
153
|
+
if (reasoning.effort !== undefined)
|
|
154
|
+
out.effort = reasoning.effort;
|
|
155
|
+
if (reasoning.summary !== undefined)
|
|
156
|
+
out.summary = reasoning.summary;
|
|
157
|
+
return Object.keys(out).length > 0 ? out : undefined;
|
|
158
|
+
}
|
|
159
|
+
function stripUndefined(input) {
|
|
160
|
+
const out = { ...input };
|
|
161
|
+
for (const [key, value] of Object.entries(out)) {
|
|
162
|
+
if (value === undefined) {
|
|
163
|
+
delete out[key];
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return out;
|
|
167
|
+
}
|
|
149
168
|
function mapError(error) {
|
|
150
169
|
if (!error)
|
|
151
170
|
return undefined;
|
|
@@ -226,20 +245,45 @@ function appendSyntheticTools(tools, input) {
|
|
|
226
245
|
function mapToolChoice(toolChoice) {
|
|
227
246
|
if (!toolChoice)
|
|
228
247
|
return undefined;
|
|
229
|
-
if (toolChoice === "
|
|
248
|
+
if (toolChoice === "none" || toolChoice === "auto" ||
|
|
249
|
+
toolChoice === "required") {
|
|
230
250
|
return toolChoice;
|
|
251
|
+
}
|
|
252
|
+
if (toolChoice.type === "allowed_tools") {
|
|
253
|
+
return {
|
|
254
|
+
type: "allowed_tools",
|
|
255
|
+
tools: toolChoice.tools,
|
|
256
|
+
mode: toolChoice.mode ?? "auto",
|
|
257
|
+
};
|
|
258
|
+
}
|
|
231
259
|
return { type: "function", name: toolChoice.function.name };
|
|
232
260
|
}
|
|
261
|
+
function mapResponseContentPart(part) {
|
|
262
|
+
if (!part || typeof part !== "object")
|
|
263
|
+
return null;
|
|
264
|
+
if (typeof part.text !== "string")
|
|
265
|
+
return null;
|
|
266
|
+
if (part.type === "output_text") {
|
|
267
|
+
return { type: "output_text", text: part.text };
|
|
268
|
+
}
|
|
269
|
+
if (part.type === "summary_text") {
|
|
270
|
+
return { type: "summary_text", text: part.text };
|
|
271
|
+
}
|
|
272
|
+
if (part.type === "reasoning_text") {
|
|
273
|
+
return { type: "reasoning_text", text: part.text };
|
|
274
|
+
}
|
|
275
|
+
if (part.type === "input_text") {
|
|
276
|
+
return { type: "input_text", text: part.text };
|
|
277
|
+
}
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
233
280
|
function mapOpenAIOutputItem(item) {
|
|
234
281
|
const itemType = item.type;
|
|
235
282
|
if (itemType === "message") {
|
|
236
283
|
const message = item;
|
|
237
|
-
const content = []
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
content.push({ type: "output_text", text: part.text });
|
|
241
|
-
}
|
|
242
|
-
}
|
|
284
|
+
const content = (message.content ?? [])
|
|
285
|
+
.map((part) => mapResponseContentPart(part))
|
|
286
|
+
.filter((part) => Boolean(part));
|
|
243
287
|
if (content.length === 0)
|
|
244
288
|
return null;
|
|
245
289
|
return {
|
|
@@ -259,6 +303,22 @@ function mapOpenAIOutputItem(item) {
|
|
|
259
303
|
id: call.id,
|
|
260
304
|
};
|
|
261
305
|
}
|
|
306
|
+
if (itemType === "reasoning") {
|
|
307
|
+
const reasoning = item;
|
|
308
|
+
const content = (reasoning.content ?? [])
|
|
309
|
+
.map((part) => mapResponseContentPart(part))
|
|
310
|
+
.filter((part) => Boolean(part));
|
|
311
|
+
const summary = (reasoning.summary ?? [])
|
|
312
|
+
.map((part) => mapResponseContentPart(part))
|
|
313
|
+
.filter((part) => Boolean(part));
|
|
314
|
+
return {
|
|
315
|
+
type: "reasoning",
|
|
316
|
+
id: reasoning.id,
|
|
317
|
+
content: content.length > 0 ? content : undefined,
|
|
318
|
+
summary,
|
|
319
|
+
encrypted_content: reasoning.encrypted_content,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
262
322
|
return null;
|
|
263
323
|
}
|
|
264
324
|
function normalizeOpenAIResponse(response) {
|
|
@@ -269,11 +329,23 @@ function normalizeOpenAIResponse(response) {
|
|
|
269
329
|
id: response.id,
|
|
270
330
|
object: "response",
|
|
271
331
|
model: response.model,
|
|
332
|
+
created_at: response.created_at,
|
|
272
333
|
created: response.created_at,
|
|
334
|
+
completed_at: response.completed_at ??
|
|
335
|
+
null,
|
|
336
|
+
previous_response_id: response.previous_response_id ?? null,
|
|
337
|
+
instructions: response.instructions ?? null,
|
|
338
|
+
reasoning: response
|
|
339
|
+
.reasoning ?? null,
|
|
273
340
|
status: mapStatus(response.status ?? undefined),
|
|
274
341
|
output: outputItems,
|
|
275
342
|
usage: mapUsage(response.usage),
|
|
276
|
-
error: mapError(response.error),
|
|
343
|
+
error: mapError(response.error) ?? null,
|
|
344
|
+
metadata: response.metadata,
|
|
345
|
+
max_output_tokens: response.max_output_tokens ?? null,
|
|
346
|
+
max_tool_calls: response.max_tool_calls ?? null,
|
|
347
|
+
parallel_tool_calls: response.parallel_tool_calls,
|
|
348
|
+
store: response.store,
|
|
277
349
|
};
|
|
278
350
|
}
|
|
279
351
|
function toOpenAIInputItems(items) {
|
|
@@ -295,6 +367,18 @@ function toOpenAIInputItems(items) {
|
|
|
295
367
|
text: part.text,
|
|
296
368
|
};
|
|
297
369
|
}
|
|
370
|
+
if (part.type === "summary_text") {
|
|
371
|
+
return {
|
|
372
|
+
type: "summary_text",
|
|
373
|
+
text: part.text,
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
if (part.type === "reasoning_text") {
|
|
377
|
+
return {
|
|
378
|
+
type: "reasoning_text",
|
|
379
|
+
text: part.text,
|
|
380
|
+
};
|
|
381
|
+
}
|
|
298
382
|
return null;
|
|
299
383
|
})
|
|
300
384
|
.filter((part) => Boolean(part));
|
|
@@ -325,6 +409,22 @@ function toOpenAIInputItems(items) {
|
|
|
325
409
|
output: item.output,
|
|
326
410
|
id: item.id,
|
|
327
411
|
});
|
|
412
|
+
continue;
|
|
413
|
+
}
|
|
414
|
+
if (item.type === "reasoning") {
|
|
415
|
+
mapped.push({
|
|
416
|
+
type: "reasoning",
|
|
417
|
+
id: item.id,
|
|
418
|
+
content: (item.content ?? []).map((part) => ({
|
|
419
|
+
type: part.type,
|
|
420
|
+
text: part.text,
|
|
421
|
+
})),
|
|
422
|
+
summary: item.summary.map((part) => ({
|
|
423
|
+
type: part.type,
|
|
424
|
+
text: part.text,
|
|
425
|
+
})),
|
|
426
|
+
encrypted_content: item.encrypted_content ?? null,
|
|
427
|
+
});
|
|
328
428
|
}
|
|
329
429
|
}
|
|
330
430
|
return mapped;
|
|
@@ -409,13 +509,31 @@ function responseItemsToChat(items) {
|
|
|
409
509
|
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
410
510
|
};
|
|
411
511
|
}
|
|
412
|
-
async function createResponse(client, request, onStreamEvent) {
|
|
512
|
+
async function createResponse(client, request, signal, onStreamEvent) {
|
|
413
513
|
const baseParams = {
|
|
414
514
|
model: request.model,
|
|
415
515
|
input: toOpenAIInputItems(request.input),
|
|
416
516
|
instructions: request.instructions,
|
|
417
517
|
tools: undefined,
|
|
418
518
|
tool_choice: mapToolChoice(request.tool_choice),
|
|
519
|
+
previous_response_id: request.previous_response_id,
|
|
520
|
+
reasoning: mapReasoning(request.reasoning),
|
|
521
|
+
parallel_tool_calls: request.parallel_tool_calls,
|
|
522
|
+
max_tool_calls: request.max_tool_calls,
|
|
523
|
+
store: request.store,
|
|
524
|
+
include: request.include,
|
|
525
|
+
text: request.text,
|
|
526
|
+
stream_options: request.stream_options,
|
|
527
|
+
background: request.background,
|
|
528
|
+
truncation: request.truncation,
|
|
529
|
+
service_tier: request.service_tier,
|
|
530
|
+
top_logprobs: request.top_logprobs,
|
|
531
|
+
safety_identifier: request.safety_identifier,
|
|
532
|
+
prompt_cache_key: request.prompt_cache_key,
|
|
533
|
+
temperature: request.temperature,
|
|
534
|
+
top_p: request.top_p,
|
|
535
|
+
frequency_penalty: request.frequency_penalty,
|
|
536
|
+
presence_penalty: request.presence_penalty,
|
|
419
537
|
stream: request.stream,
|
|
420
538
|
max_output_tokens: request.max_output_tokens,
|
|
421
539
|
metadata: request.metadata,
|
|
@@ -425,11 +543,11 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
425
543
|
if (mappedTools.length > 0) {
|
|
426
544
|
baseParams.tools = mappedTools;
|
|
427
545
|
}
|
|
428
|
-
const params = { ...(request.params ?? {}), ...baseParams };
|
|
546
|
+
const params = { ...(request.params ?? {}), ...stripUndefined(baseParams) };
|
|
429
547
|
const debugResponses = dntShim.Deno.env.get("GAMBIT_DEBUG_RESPONSES") === "1";
|
|
430
548
|
let responseOrStream;
|
|
431
549
|
try {
|
|
432
|
-
responseOrStream = await client.responses.create(params);
|
|
550
|
+
responseOrStream = await client.responses.create(params, signal ? { signal } : undefined);
|
|
433
551
|
}
|
|
434
552
|
catch (err) {
|
|
435
553
|
if (debugResponses) {
|
|
@@ -453,7 +571,12 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
453
571
|
switch (event.type) {
|
|
454
572
|
case "response.created": {
|
|
455
573
|
const mapped = normalizeOpenAIResponse(event.response);
|
|
456
|
-
onStreamEvent?.({
|
|
574
|
+
onStreamEvent?.({
|
|
575
|
+
type: "response.created",
|
|
576
|
+
response: mapped,
|
|
577
|
+
sequence_number: event
|
|
578
|
+
.sequence_number,
|
|
579
|
+
});
|
|
457
580
|
break;
|
|
458
581
|
}
|
|
459
582
|
case "response.output_text.delta":
|
|
@@ -462,6 +585,10 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
462
585
|
output_index: event.output_index,
|
|
463
586
|
delta: event.delta,
|
|
464
587
|
item_id: event.item_id,
|
|
588
|
+
content_index: event.content_index,
|
|
589
|
+
sequence_number: event
|
|
590
|
+
.sequence_number,
|
|
591
|
+
logprobs: event.logprobs,
|
|
465
592
|
});
|
|
466
593
|
break;
|
|
467
594
|
case "response.output_text.done":
|
|
@@ -470,6 +597,9 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
470
597
|
output_index: event.output_index,
|
|
471
598
|
text: event.text,
|
|
472
599
|
item_id: event.item_id,
|
|
600
|
+
content_index: event.content_index,
|
|
601
|
+
sequence_number: event
|
|
602
|
+
.sequence_number,
|
|
473
603
|
});
|
|
474
604
|
break;
|
|
475
605
|
case "response.output_item.added": {
|
|
@@ -479,6 +609,8 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
479
609
|
type: "response.output_item.added",
|
|
480
610
|
output_index: event.output_index,
|
|
481
611
|
item,
|
|
612
|
+
sequence_number: event
|
|
613
|
+
.sequence_number,
|
|
482
614
|
});
|
|
483
615
|
}
|
|
484
616
|
break;
|
|
@@ -490,13 +622,102 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
490
622
|
type: "response.output_item.done",
|
|
491
623
|
output_index: event.output_index,
|
|
492
624
|
item,
|
|
625
|
+
sequence_number: event
|
|
626
|
+
.sequence_number,
|
|
493
627
|
});
|
|
494
628
|
}
|
|
495
629
|
break;
|
|
496
630
|
}
|
|
631
|
+
case "response.reasoning.delta":
|
|
632
|
+
if (typeof event.delta === "string") {
|
|
633
|
+
onStreamEvent?.({
|
|
634
|
+
type: "response.reasoning.delta",
|
|
635
|
+
output_index: event.output_index,
|
|
636
|
+
item_id: event.item_id,
|
|
637
|
+
content_index: event.content_index,
|
|
638
|
+
delta: event.delta,
|
|
639
|
+
sequence_number: event
|
|
640
|
+
.sequence_number,
|
|
641
|
+
obfuscation: event.obfuscation,
|
|
642
|
+
});
|
|
643
|
+
}
|
|
644
|
+
break;
|
|
645
|
+
case "response.reasoning.done":
|
|
646
|
+
onStreamEvent?.({
|
|
647
|
+
type: "response.reasoning.done",
|
|
648
|
+
output_index: event.output_index,
|
|
649
|
+
item_id: event.item_id,
|
|
650
|
+
content_index: event.content_index,
|
|
651
|
+
text: event.text,
|
|
652
|
+
sequence_number: event
|
|
653
|
+
.sequence_number,
|
|
654
|
+
});
|
|
655
|
+
break;
|
|
656
|
+
case "response.reasoning_summary_text.delta":
|
|
657
|
+
if (typeof event.delta === "string") {
|
|
658
|
+
onStreamEvent?.({
|
|
659
|
+
type: "response.reasoning_summary_text.delta",
|
|
660
|
+
output_index: event.output_index,
|
|
661
|
+
item_id: event.item_id,
|
|
662
|
+
summary_index: event.summary_index,
|
|
663
|
+
delta: event.delta,
|
|
664
|
+
sequence_number: event
|
|
665
|
+
.sequence_number,
|
|
666
|
+
obfuscation: event.obfuscation,
|
|
667
|
+
});
|
|
668
|
+
}
|
|
669
|
+
break;
|
|
670
|
+
case "response.reasoning_summary_text.done":
|
|
671
|
+
onStreamEvent?.({
|
|
672
|
+
type: "response.reasoning_summary_text.done",
|
|
673
|
+
output_index: event.output_index,
|
|
674
|
+
item_id: event.item_id,
|
|
675
|
+
summary_index: event.summary_index,
|
|
676
|
+
text: event.text,
|
|
677
|
+
sequence_number: event
|
|
678
|
+
.sequence_number,
|
|
679
|
+
});
|
|
680
|
+
break;
|
|
681
|
+
case "response.reasoning_summary_part.added":
|
|
682
|
+
if (event.part && typeof event.part === "object" &&
|
|
683
|
+
"type" in event.part &&
|
|
684
|
+
"text" in event.part &&
|
|
685
|
+
typeof event.part.text === "string") {
|
|
686
|
+
onStreamEvent?.({
|
|
687
|
+
type: "response.reasoning_summary_part.added",
|
|
688
|
+
output_index: event.output_index,
|
|
689
|
+
item_id: event.item_id,
|
|
690
|
+
summary_index: event.summary_index,
|
|
691
|
+
part: event.part,
|
|
692
|
+
sequence_number: event
|
|
693
|
+
.sequence_number,
|
|
694
|
+
});
|
|
695
|
+
}
|
|
696
|
+
break;
|
|
697
|
+
case "response.reasoning_summary_part.done":
|
|
698
|
+
if (event.part && typeof event.part === "object" &&
|
|
699
|
+
"type" in event.part &&
|
|
700
|
+
"text" in event.part &&
|
|
701
|
+
typeof event.part.text === "string") {
|
|
702
|
+
onStreamEvent?.({
|
|
703
|
+
type: "response.reasoning_summary_part.done",
|
|
704
|
+
output_index: event.output_index,
|
|
705
|
+
item_id: event.item_id,
|
|
706
|
+
summary_index: event.summary_index,
|
|
707
|
+
part: event.part,
|
|
708
|
+
sequence_number: event
|
|
709
|
+
.sequence_number,
|
|
710
|
+
});
|
|
711
|
+
}
|
|
712
|
+
break;
|
|
497
713
|
case "response.completed": {
|
|
498
714
|
completed = normalizeOpenAIResponse(event.response);
|
|
499
|
-
onStreamEvent?.({
|
|
715
|
+
onStreamEvent?.({
|
|
716
|
+
type: "response.completed",
|
|
717
|
+
response: completed,
|
|
718
|
+
sequence_number: event
|
|
719
|
+
.sequence_number,
|
|
720
|
+
});
|
|
500
721
|
break;
|
|
501
722
|
}
|
|
502
723
|
case "response.failed": {
|
|
@@ -504,6 +725,8 @@ async function createResponse(client, request, onStreamEvent) {
|
|
|
504
725
|
onStreamEvent?.({
|
|
505
726
|
type: "response.failed",
|
|
506
727
|
error: error ?? {},
|
|
728
|
+
sequence_number: event
|
|
729
|
+
.sequence_number,
|
|
507
730
|
});
|
|
508
731
|
break;
|
|
509
732
|
}
|
|
@@ -525,7 +748,7 @@ function createOllamaProvider(opts) {
|
|
|
525
748
|
}));
|
|
526
749
|
return {
|
|
527
750
|
async responses(input) {
|
|
528
|
-
return await createResponse(client, input.request, input.onStreamEvent);
|
|
751
|
+
return await createResponse(client, input.request, input.signal, input.onStreamEvent);
|
|
529
752
|
},
|
|
530
753
|
async chat(input) {
|
|
531
754
|
const response = await createResponse(client, {
|
|
@@ -534,7 +757,7 @@ function createOllamaProvider(opts) {
|
|
|
534
757
|
tools: input.tools,
|
|
535
758
|
stream: input.stream,
|
|
536
759
|
params: input.params ?? {},
|
|
537
|
-
}, (event) => {
|
|
760
|
+
}, input.signal, (event) => {
|
|
538
761
|
if (event.type === "response.output_text.delta") {
|
|
539
762
|
input.onStreamText?.(event.delta);
|
|
540
763
|
}
|
|
@@ -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"}
|