AbstractAgent 0.3.7__tar.gz → 0.3.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. {abstractagent-0.3.7/src/abstractagent.egg-info → abstractagent-0.3.8}/PKG-INFO +11 -11
  2. {abstractagent-0.3.7 → abstractagent-0.3.8}/pyproject.toml +12 -11
  3. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/adapters/generation_params.py +7 -0
  4. {abstractagent-0.3.7 → abstractagent-0.3.8/src/abstractagent.egg-info}/PKG-INFO +11 -11
  5. abstractagent-0.3.8/src/abstractagent.egg-info/requires.txt +24 -0
  6. abstractagent-0.3.8/tests/test_generation_params_media_policies.py +51 -0
  7. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_packaging_profiles.py +10 -10
  8. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_loop_context_transcript_levels.py +10 -3
  9. abstractagent-0.3.7/src/abstractagent.egg-info/requires.txt +0 -24
  10. abstractagent-0.3.7/tests/test_generation_params_media_policies.py +0 -28
  11. {abstractagent-0.3.7 → abstractagent-0.3.8}/LICENSE +0 -0
  12. {abstractagent-0.3.7 → abstractagent-0.3.8}/README.md +0 -0
  13. {abstractagent-0.3.7 → abstractagent-0.3.8}/setup.cfg +0 -0
  14. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/__init__.py +0 -0
  15. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/adapters/__init__.py +0 -0
  16. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/adapters/codeact_runtime.py +0 -0
  17. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/adapters/media.py +0 -0
  18. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/adapters/memact_runtime.py +0 -0
  19. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/adapters/react_runtime.py +0 -0
  20. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/agents/__init__.py +0 -0
  21. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/agents/base.py +0 -0
  22. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/agents/codeact.py +0 -0
  23. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/agents/memact.py +0 -0
  24. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/agents/react.py +0 -0
  25. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/logic/__init__.py +0 -0
  26. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/logic/builtins.py +0 -0
  27. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/logic/codeact.py +0 -0
  28. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/logic/memact.py +0 -0
  29. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/logic/react.py +0 -0
  30. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/logic/types.py +0 -0
  31. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/repl.py +0 -0
  32. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/sandbox/__init__.py +0 -0
  33. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/sandbox/interface.py +0 -0
  34. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/sandbox/local.py +0 -0
  35. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/scripts/__init__.py +0 -0
  36. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/scripts/lmstudio_tool_eval.py +0 -0
  37. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/tools/__init__.py +0 -0
  38. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/tools/code_execution.py +0 -0
  39. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent/tools/self_improve.py +0 -0
  40. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent.egg-info/SOURCES.txt +0 -0
  41. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent.egg-info/dependency_links.txt +0 -0
  42. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent.egg-info/entry_points.txt +0 -0
  43. {abstractagent-0.3.7 → abstractagent-0.3.8}/src/abstractagent.egg-info/top_level.txt +0 -0
  44. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_active_context_policy_adoption.py +0 -0
  45. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_agent_plan_review_modes.py +0 -0
  46. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_agents_integration_llm.py +0 -0
  47. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_base_agent_trace_accessors.py +0 -0
  48. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_builtin_tool_specs_optional_defaults.py +0 -0
  49. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_codeact_logic.py +0 -0
  50. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_codeact_runtime_verifier_policy.py +0 -0
  51. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_llm_call_payload_requires_prompt_or_messages.py +0 -0
  52. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_memact_session_memory.py +0 -0
  53. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_memact_workflow.py +0 -0
  54. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_memory_recall_tool.py +0 -0
  55. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_open_attachment_tool_available.py +0 -0
  56. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_active_attachments_disable_tools_first_iteration.py +0 -0
  57. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_adapter_forwards_context_attachments_media.py +0 -0
  58. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_delegate_agent_tool.py +0 -0
  59. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_logic.py +0 -0
  60. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_loop_followthrough_retry.py +0 -0
  61. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_loop_side_effect_dedupe_comms.py +0 -0
  62. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_loop_truncated_output_retry.py +0 -0
  63. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_max_iterations_concludes.py +0 -0
  64. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_planish_heuristic.py +0 -0
  65. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_workflow_system_prompt_and_tools_override.py +0 -0
  66. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_react_workflow_toolset_refresh.py +0 -0
  67. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_run_start_seeds_runtime_provider_model.py +0 -0
  68. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_session_memory.py +0 -0
  69. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_tool_observe_emits_result_for_tui.py +0 -0
  70. {abstractagent-0.3.7 → abstractagent-0.3.8}/tests/test_tools_editing.py +0 -0
@@ -1,24 +1,24 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractagent
3
- Version: 0.3.7
3
+ Version: 0.3.8
4
4
  Summary: Agent implementations using AbstractRuntime and AbstractCore
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
7
7
  License-File: LICENSE
8
- Requires-Dist: abstractcore[tools]>=2.13.12
9
- Requires-Dist: abstractruntime>=0.4.9
8
+ Requires-Dist: abstractcore[tools]>=2.13.28
9
+ Requires-Dist: abstractruntime>=0.4.23
10
10
  Provides-Extra: apple
11
- Requires-Dist: abstractcore[apple]>=2.13.12; extra == "apple"
12
- Requires-Dist: abstractruntime[apple]>=0.4.9; extra == "apple"
11
+ Requires-Dist: abstractcore[apple]>=2.13.28; extra == "apple"
12
+ Requires-Dist: abstractruntime[apple]>=0.4.23; extra == "apple"
13
13
  Provides-Extra: gpu
14
- Requires-Dist: abstractcore[gpu]>=2.13.12; extra == "gpu"
15
- Requires-Dist: abstractruntime[gpu]>=0.4.9; extra == "gpu"
14
+ Requires-Dist: abstractcore[gpu]>=2.13.28; extra == "gpu"
15
+ Requires-Dist: abstractruntime[gpu]>=0.4.23; extra == "gpu"
16
16
  Provides-Extra: all-apple
17
- Requires-Dist: abstractcore[all-apple]>=2.13.12; extra == "all-apple"
18
- Requires-Dist: abstractruntime[all-apple]>=0.4.9; extra == "all-apple"
17
+ Requires-Dist: abstractcore[all-apple]>=2.13.28; extra == "all-apple"
18
+ Requires-Dist: abstractruntime[all-apple]>=0.4.23; extra == "all-apple"
19
19
  Provides-Extra: all-gpu
20
- Requires-Dist: abstractcore[all-gpu]>=2.13.12; extra == "all-gpu"
21
- Requires-Dist: abstractruntime[all-gpu]>=0.4.9; extra == "all-gpu"
20
+ Requires-Dist: abstractcore[all-gpu]>=2.13.28; extra == "all-gpu"
21
+ Requires-Dist: abstractruntime[all-gpu]>=0.4.23; extra == "all-gpu"
22
22
  Provides-Extra: dev
23
23
  Requires-Dist: pytest>=7.0; extra == "dev"
24
24
  Provides-Extra: test
@@ -4,31 +4,31 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "abstractagent"
7
- version = "0.3.7"
7
+ version = "0.3.8"
8
8
  description = "Agent implementations using AbstractRuntime and AbstractCore"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  dependencies = [
12
- "abstractcore[tools]>=2.13.12",
13
- "abstractruntime>=0.4.9",
12
+ "abstractcore[tools]>=2.13.28",
13
+ "abstractruntime>=0.4.23",
14
14
  ]
15
15
 
16
16
  [project.optional-dependencies]
17
17
  apple = [
18
- "abstractcore[apple]>=2.13.12",
19
- "abstractruntime[apple]>=0.4.9",
18
+ "abstractcore[apple]>=2.13.28",
19
+ "abstractruntime[apple]>=0.4.23",
20
20
  ]
21
21
  gpu = [
22
- "abstractcore[gpu]>=2.13.12",
23
- "abstractruntime[gpu]>=0.4.9",
22
+ "abstractcore[gpu]>=2.13.28",
23
+ "abstractruntime[gpu]>=0.4.23",
24
24
  ]
25
25
  all-apple = [
26
- "abstractcore[all-apple]>=2.13.12",
27
- "abstractruntime[all-apple]>=0.4.9",
26
+ "abstractcore[all-apple]>=2.13.28",
27
+ "abstractruntime[all-apple]>=0.4.23",
28
28
  ]
29
29
  all-gpu = [
30
- "abstractcore[all-gpu]>=2.13.12",
31
- "abstractruntime[all-gpu]>=0.4.9",
30
+ "abstractcore[all-gpu]>=2.13.28",
31
+ "abstractruntime[all-gpu]>=0.4.23",
32
32
  ]
33
33
  dev = [
34
34
  "pytest>=7.0",
@@ -44,6 +44,7 @@ where = ["src"]
44
44
  react-agent = "abstractagent.repl:main"
45
45
 
46
46
  [tool.pytest.ini_options]
47
+ pythonpath = ["src"]
47
48
  markers = [
48
49
  "basic: Level A (contract/unit) tests",
49
50
  "integration: Level B (integration/local) tests",
@@ -79,4 +79,11 @@ def runtime_llm_params(
79
79
  if "stt_language" not in out and isinstance(stt_language, str) and stt_language.strip():
80
80
  out["stt_language"] = stt_language.strip()
81
81
 
82
+ binding = runtime_ns.get("prompt_cache_binding")
83
+ if "prompt_cache_binding" not in out:
84
+ if isinstance(binding, dict) and binding:
85
+ out["prompt_cache_binding"] = dict(binding)
86
+ elif isinstance(binding, str) and binding.strip():
87
+ out["prompt_cache_binding"] = binding.strip()
88
+
82
89
  return out
@@ -1,24 +1,24 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractagent
3
- Version: 0.3.7
3
+ Version: 0.3.8
4
4
  Summary: Agent implementations using AbstractRuntime and AbstractCore
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
7
7
  License-File: LICENSE
8
- Requires-Dist: abstractcore[tools]>=2.13.12
9
- Requires-Dist: abstractruntime>=0.4.9
8
+ Requires-Dist: abstractcore[tools]>=2.13.28
9
+ Requires-Dist: abstractruntime>=0.4.23
10
10
  Provides-Extra: apple
11
- Requires-Dist: abstractcore[apple]>=2.13.12; extra == "apple"
12
- Requires-Dist: abstractruntime[apple]>=0.4.9; extra == "apple"
11
+ Requires-Dist: abstractcore[apple]>=2.13.28; extra == "apple"
12
+ Requires-Dist: abstractruntime[apple]>=0.4.23; extra == "apple"
13
13
  Provides-Extra: gpu
14
- Requires-Dist: abstractcore[gpu]>=2.13.12; extra == "gpu"
15
- Requires-Dist: abstractruntime[gpu]>=0.4.9; extra == "gpu"
14
+ Requires-Dist: abstractcore[gpu]>=2.13.28; extra == "gpu"
15
+ Requires-Dist: abstractruntime[gpu]>=0.4.23; extra == "gpu"
16
16
  Provides-Extra: all-apple
17
- Requires-Dist: abstractcore[all-apple]>=2.13.12; extra == "all-apple"
18
- Requires-Dist: abstractruntime[all-apple]>=0.4.9; extra == "all-apple"
17
+ Requires-Dist: abstractcore[all-apple]>=2.13.28; extra == "all-apple"
18
+ Requires-Dist: abstractruntime[all-apple]>=0.4.23; extra == "all-apple"
19
19
  Provides-Extra: all-gpu
20
- Requires-Dist: abstractcore[all-gpu]>=2.13.12; extra == "all-gpu"
21
- Requires-Dist: abstractruntime[all-gpu]>=0.4.9; extra == "all-gpu"
20
+ Requires-Dist: abstractcore[all-gpu]>=2.13.28; extra == "all-gpu"
21
+ Requires-Dist: abstractruntime[all-gpu]>=0.4.23; extra == "all-gpu"
22
22
  Provides-Extra: dev
23
23
  Requires-Dist: pytest>=7.0; extra == "dev"
24
24
  Provides-Extra: test
@@ -0,0 +1,24 @@
1
+ abstractcore[tools]>=2.13.28
2
+ abstractruntime>=0.4.23
3
+
4
+ [all-apple]
5
+ abstractcore[all-apple]>=2.13.28
6
+ abstractruntime[all-apple]>=0.4.23
7
+
8
+ [all-gpu]
9
+ abstractcore[all-gpu]>=2.13.28
10
+ abstractruntime[all-gpu]>=0.4.23
11
+
12
+ [apple]
13
+ abstractcore[apple]>=2.13.28
14
+ abstractruntime[apple]>=0.4.23
15
+
16
+ [dev]
17
+ pytest>=7.0
18
+
19
+ [gpu]
20
+ abstractcore[gpu]>=2.13.28
21
+ abstractruntime[gpu]>=0.4.23
22
+
23
+ [test]
24
+ pytest>=7.0
@@ -0,0 +1,51 @@
1
+ import pytest
2
+
3
+
4
+ @pytest.mark.basic
5
+ def test_runtime_llm_params_includes_audio_policy_and_stt_language_from_runtime_ns() -> None:
6
+ from abstractagent.adapters.generation_params import runtime_llm_params
7
+
8
+ out = runtime_llm_params(
9
+ {"audio_policy": "auto", "stt_language": "fr"},
10
+ extra={"temperature": 0.2},
11
+ )
12
+
13
+ assert out["audio_policy"] == "auto"
14
+ assert out["stt_language"] == "fr"
15
+
16
+
17
+ @pytest.mark.basic
18
+ def test_runtime_llm_params_does_not_override_explicit_policy_in_extra() -> None:
19
+ from abstractagent.adapters.generation_params import runtime_llm_params
20
+
21
+ out = runtime_llm_params(
22
+ {"audio_policy": "auto", "stt_language": "fr"},
23
+ extra={"audio_policy": "native_only", "stt_language": "en"},
24
+ )
25
+
26
+ assert out["audio_policy"] == "native_only"
27
+ assert out["stt_language"] == "en"
28
+
29
+
30
+ @pytest.mark.basic
31
+ def test_runtime_llm_params_forwards_prompt_cache_binding_from_runtime_ns() -> None:
32
+ from abstractagent.adapters.generation_params import runtime_llm_params
33
+
34
+ binding = {"binding_id": "bind-1", "key": "work:orbit"}
35
+
36
+ out = runtime_llm_params({"prompt_cache_binding": binding}, extra={"temperature": 0.2})
37
+
38
+ assert out["prompt_cache_binding"] == binding
39
+ assert out["prompt_cache_binding"] is not binding
40
+
41
+
42
+ @pytest.mark.basic
43
+ def test_runtime_llm_params_keeps_explicit_prompt_cache_binding_override() -> None:
44
+ from abstractagent.adapters.generation_params import runtime_llm_params
45
+
46
+ out = runtime_llm_params(
47
+ {"prompt_cache_binding": {"binding_id": "runtime"}},
48
+ extra={"prompt_cache_binding": "explicit-binding-id"},
49
+ )
50
+
51
+ assert out["prompt_cache_binding"] == "explicit-binding-id"
@@ -18,26 +18,26 @@ def _project() -> dict:
18
18
  def test_base_dependency_floors_match_gateway_alignment() -> None:
19
19
  deps = set(_project()["dependencies"])
20
20
 
21
- assert "abstractcore[tools]>=2.13.12" in deps
22
- assert "abstractruntime>=0.4.9" in deps
21
+ assert "abstractcore[tools]>=2.13.28" in deps
22
+ assert "abstractruntime>=0.4.23" in deps
23
23
 
24
24
 
25
25
  def test_hardware_profile_extras_are_core_runtime_cascades() -> None:
26
26
  extras = _project()["optional-dependencies"]
27
27
 
28
28
  assert set(extras["apple"]) == {
29
- "abstractcore[apple]>=2.13.12",
30
- "abstractruntime[apple]>=0.4.9",
29
+ "abstractcore[apple]>=2.13.28",
30
+ "abstractruntime[apple]>=0.4.23",
31
31
  }
32
32
  assert set(extras["gpu"]) == {
33
- "abstractcore[gpu]>=2.13.12",
34
- "abstractruntime[gpu]>=0.4.9",
33
+ "abstractcore[gpu]>=2.13.28",
34
+ "abstractruntime[gpu]>=0.4.23",
35
35
  }
36
36
  assert set(extras["all-apple"]) == {
37
- "abstractcore[all-apple]>=2.13.12",
38
- "abstractruntime[all-apple]>=0.4.9",
37
+ "abstractcore[all-apple]>=2.13.28",
38
+ "abstractruntime[all-apple]>=0.4.23",
39
39
  }
40
40
  assert set(extras["all-gpu"]) == {
41
- "abstractcore[all-gpu]>=2.13.12",
42
- "abstractruntime[all-gpu]>=0.4.9",
41
+ "abstractcore[all-gpu]>=2.13.28",
42
+ "abstractruntime[all-gpu]>=0.4.23",
43
43
  }
@@ -24,6 +24,15 @@ def _base_vars(*, task: str) -> Dict[str, Any]:
24
24
  return {"context": {"task": task, "messages": []}, "_runtime": {"inbox": []}}
25
25
 
26
26
 
27
+ def _strip_runtime_prefixes(content: str) -> str:
28
+ text = str(content or "")
29
+ if text.startswith("<runtime_metadata>") and "</runtime_metadata>" in text:
30
+ text = text.split("</runtime_metadata>", 1)[1].lstrip()
31
+ if text.startswith("[") and "]" in text:
32
+ text = text.split("]", 1)[1].lstrip()
33
+ return text
34
+
35
+
27
36
  @pytest.mark.basic
28
37
  def test_react_loop_context_transcript_level_a_basic() -> None:
29
38
  captured_llm_payloads: list[dict[str, Any]] = []
@@ -114,9 +123,7 @@ def test_react_loop_context_transcript_level_a_basic() -> None:
114
123
  first_msgs = first.get("messages")
115
124
  assert isinstance(first_msgs, list) and first_msgs
116
125
  assert first_msgs[0].get("role") == "user"
117
- first_content = str(first_msgs[0].get("content") or "")
118
- if first_content.startswith("[") and "]" in first_content:
119
- first_content = first_content.split("]", 1)[1].lstrip()
126
+ first_content = _strip_runtime_prefixes(str(first_msgs[0].get("content") or ""))
120
127
  assert first_content == "Create a project folder"
121
128
  params1 = first.get("params") if isinstance(first.get("params"), dict) else {}
122
129
  assert "max_tokens" not in params1, "ReAct should not enforce tiny per-step output caps by default"
@@ -1,24 +0,0 @@
1
- abstractcore[tools]>=2.13.12
2
- abstractruntime>=0.4.9
3
-
4
- [all-apple]
5
- abstractcore[all-apple]>=2.13.12
6
- abstractruntime[all-apple]>=0.4.9
7
-
8
- [all-gpu]
9
- abstractcore[all-gpu]>=2.13.12
10
- abstractruntime[all-gpu]>=0.4.9
11
-
12
- [apple]
13
- abstractcore[apple]>=2.13.12
14
- abstractruntime[apple]>=0.4.9
15
-
16
- [dev]
17
- pytest>=7.0
18
-
19
- [gpu]
20
- abstractcore[gpu]>=2.13.12
21
- abstractruntime[gpu]>=0.4.9
22
-
23
- [test]
24
- pytest>=7.0
@@ -1,28 +0,0 @@
1
- import pytest
2
-
3
-
4
- @pytest.mark.basic
5
- def test_runtime_llm_params_includes_audio_policy_and_stt_language_from_runtime_ns() -> None:
6
- from abstractagent.adapters.generation_params import runtime_llm_params
7
-
8
- out = runtime_llm_params(
9
- {"audio_policy": "auto", "stt_language": "fr"},
10
- extra={"temperature": 0.2},
11
- )
12
-
13
- assert out["audio_policy"] == "auto"
14
- assert out["stt_language"] == "fr"
15
-
16
-
17
- @pytest.mark.basic
18
- def test_runtime_llm_params_does_not_override_explicit_policy_in_extra() -> None:
19
- from abstractagent.adapters.generation_params import runtime_llm_params
20
-
21
- out = runtime_llm_params(
22
- {"audio_policy": "auto", "stt_language": "fr"},
23
- extra={"audio_policy": "native_only", "stt_language": "en"},
24
- )
25
-
26
- assert out["audio_policy"] == "native_only"
27
- assert out["stt_language"] == "en"
28
-
File without changes
File without changes
File without changes