unique_orchestrator 2026.34.0.dev4__tar.gz → 2026.34.0.dev6__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 (35) hide show
  1. unique_orchestrator-2026.34.0.dev6/PKG-INFO +27 -0
  2. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/pyproject.toml +10 -10
  3. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/config.py +23 -1
  4. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/unique_ai_builder.py +9 -0
  5. unique_orchestrator-2026.34.0.dev4/PKG-INFO +0 -27
  6. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/README.md +0 -0
  7. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/__init__.py +0 -0
  8. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/_builders/__init__.py +0 -0
  9. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/_builders/history_manager.py +0 -0
  10. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/_builders/inject_tool_reminders.py +0 -0
  11. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/_builders/loop_iteration_runner.py +0 -0
  12. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/_builders/open_file_setup.py +0 -0
  13. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/_builders/skill_setup.py +0 -0
  14. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/prompts/generic_reference_prompt.jinja2 +0 -0
  15. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/prompts/system_prompt.jinja2 +0 -0
  16. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/prompts/user_message_prompt.jinja2 +0 -0
  17. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/settings.py +0 -0
  18. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_agent_config_rjsf_ui_schema.py +0 -0
  19. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_build_loop_iteration_runner.py +0 -0
  20. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_config_services_validators.py +0 -0
  21. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_qwen_max_loop_iterations.py +0 -0
  22. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_register_code_interpreter_postprocessors.py +0 -0
  23. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_async_modify.py +0 -0
  24. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_execution_timing.py +0 -0
  25. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_get_filtered_user_metadata.py +0 -0
  26. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_log_tool_calls.py +0 -0
  27. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_loop_debug_params.py +0 -0
  28. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_persist_tool_calls.py +0 -0
  29. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_plan_or_execute_include.py +0 -0
  30. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_reference_order.py +0 -0
  31. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_render_system_prompt_user_instructions.py +0 -0
  32. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_unique_ai_token_usage.py +0 -0
  33. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/tests/test_utils_resolve_other_options.py +0 -0
  34. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/unique_ai.py +0 -0
  35. {unique_orchestrator-2026.34.0.dev4 → unique_orchestrator-2026.34.0.dev6}/unique_orchestrator/utils.py +0 -0
@@ -0,0 +1,27 @@
1
+ Metadata-Version: 2.3
2
+ Name: unique-orchestrator
3
+ Version: 2026.34.0.dev6
4
+ Summary:
5
+ Author: Andreas Hauri
6
+ Author-email: Andreas Hauri <andreas.hauri@unique.ai>
7
+ License: Proprietary
8
+ Requires-Dist: pydantic>=2.8.2,<3
9
+ Requires-Dist: pydantic-settings>=2.10.1,<3
10
+ Requires-Dist: typing-extensions>=4.9.0,<5
11
+ Requires-Dist: jinja2>=3.1.0,<4
12
+ Requires-Dist: unique-toolkit>=2026.34.0.dev19,<2026.34.0rc0
13
+ Requires-Dist: unique-stock-ticker>=2026.34.0.dev4,<2026.34.0rc0
14
+ Requires-Dist: unique-follow-up-questions>=2026.34.0.dev4,<2026.34.0rc0
15
+ Requires-Dist: unique-internal-search>=2026.34.0.dev4,<2026.34.0rc0
16
+ Requires-Dist: unique-deep-research>=2026.34.0.dev4,<2026.34.0rc0
17
+ Requires-Dist: unique-web-search>=2026.34.0.dev8,<2026.34.0rc0
18
+ Requires-Dist: unique-swot>=2026.34.0.dev4,<2026.34.0rc0
19
+ Requires-Dist: unique-skill-tool>=2026.34.0.dev4,<2026.34.0rc0
20
+ Requires-Dist: unique-user-memory>=2026.34.0.dev7,<2026.34.0rc0
21
+ Requires-Dist: openai>=1.109.1,<3
22
+ Requires-Python: >=3.12, <4
23
+ Description-Content-Type: text/markdown
24
+
25
+ # Unique Orchestrator
26
+
27
+ Unique AI orchestrator agent to struct and direct subagents, tools and services
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_orchestrator"
3
- version = "2026.34.0.dev4"
3
+ version = "2026.34.0.dev6"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  license = { text = "Proprietary" }
@@ -13,15 +13,15 @@ dependencies = [
13
13
  "pydantic-settings>=2.10.1,<3",
14
14
  "typing-extensions>=4.9.0,<5",
15
15
  "jinja2>=3.1.0,<4",
16
- "unique-toolkit>=2026.34.0.dev7,<2026.34.0rc0",
17
- "unique-stock-ticker>=2026.34.0.dev3,<2026.34.0rc0",
18
- "unique-follow-up-questions>=2026.34.0.dev3,<2026.34.0rc0",
19
- "unique-internal-search>=2026.34.0.dev3,<2026.34.0rc0",
20
- "unique-deep-research>=2026.34.0.dev3,<2026.34.0rc0",
21
- "unique-web-search>=2026.34.0.dev5,<2026.34.0rc0",
22
- "unique-swot>=2026.34.0.dev3,<2026.34.0rc0",
23
- "unique-skill-tool>=2026.34.0.dev3,<2026.34.0rc0",
24
- "unique-user-memory>=2026.34.0.dev3,<2026.34.0rc0",
16
+ "unique-toolkit>=2026.34.0.dev19,<2026.34.0rc0",
17
+ "unique-stock-ticker>=2026.34.0.dev4,<2026.34.0rc0",
18
+ "unique-follow-up-questions>=2026.34.0.dev4,<2026.34.0rc0",
19
+ "unique-internal-search>=2026.34.0.dev4,<2026.34.0rc0",
20
+ "unique-deep-research>=2026.34.0.dev4,<2026.34.0rc0",
21
+ "unique-web-search>=2026.34.0.dev8,<2026.34.0rc0",
22
+ "unique-swot>=2026.34.0.dev4,<2026.34.0rc0",
23
+ "unique-skill-tool>=2026.34.0.dev4,<2026.34.0rc0",
24
+ "unique-user-memory>=2026.34.0.dev7,<2026.34.0rc0",
25
25
  "openai>=1.109.1,<3",
26
26
  ]
27
27
 
@@ -2,7 +2,13 @@ from enum import StrEnum
2
2
  from pathlib import Path
3
3
  from typing import Annotated, Any, Generic, Literal, TypeVar
4
4
 
5
- from pydantic import Field, ValidationInfo, field_validator, model_validator
5
+ from pydantic import (
6
+ AliasChoices,
7
+ Field,
8
+ ValidationInfo,
9
+ field_validator,
10
+ model_validator,
11
+ )
6
12
  from pydantic.json_schema import SkipJsonSchema
7
13
  from unique_deep_research.config import DeepResearchToolConfig
8
14
  from unique_deep_research.service import DeepResearchTool
@@ -106,6 +112,22 @@ class SwitchableLanguageModelConfig(BaseToolConfig):
106
112
  "the value validates when copied on model choice."
107
113
  ),
108
114
  )
115
+ additional_llm_options: dict[str, Any] | None = Field(
116
+ default=None,
117
+ # The node backend forwards this key as `additionalLLMOptions` (LLM
118
+ # uppercase), which the `to_camel` alias generator would not match.
119
+ validation_alias=AliasChoices(
120
+ "additional_llm_options",
121
+ "additionalLlmOptions",
122
+ "additionalLLMOptions",
123
+ ),
124
+ description=(
125
+ "Optional per-model provider-specific request options (e.g. "
126
+ "`reasoning_effort`) shallow-merged into "
127
+ "agent.experimental.additional_llm_options when chat users select "
128
+ "this model. Per-model keys win over the space-level options."
129
+ ),
130
+ )
109
131
 
110
132
 
111
133
  class SpaceConfigBase(BaseToolConfig, Generic[T]):
@@ -250,6 +250,15 @@ def _apply_model_choice_override(
250
250
  switchable_entry.temperature
251
251
  )
252
252
 
253
+ if switchable_entry is not None and switchable_entry.additional_llm_options:
254
+ config_data.setdefault("agent", {})
255
+ config_data["agent"].setdefault("experimental", {})
256
+ experimental = config_data["agent"]["experimental"]
257
+ experimental["additional_llm_options"] = {
258
+ **experimental.get("additional_llm_options", {}),
259
+ **switchable_entry.additional_llm_options,
260
+ }
261
+
253
262
  validated_config = UniqueAIConfig.model_validate(config_data)
254
263
 
255
264
  logger.info(
@@ -1,27 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: unique-orchestrator
3
- Version: 2026.34.0.dev4
4
- Summary:
5
- Author: Andreas Hauri
6
- Author-email: Andreas Hauri <andreas.hauri@unique.ai>
7
- License: Proprietary
8
- Requires-Dist: pydantic>=2.8.2,<3
9
- Requires-Dist: pydantic-settings>=2.10.1,<3
10
- Requires-Dist: typing-extensions>=4.9.0,<5
11
- Requires-Dist: jinja2>=3.1.0,<4
12
- Requires-Dist: unique-toolkit>=2026.34.0.dev7,<2026.34.0rc0
13
- Requires-Dist: unique-stock-ticker>=2026.34.0.dev3,<2026.34.0rc0
14
- Requires-Dist: unique-follow-up-questions>=2026.34.0.dev3,<2026.34.0rc0
15
- Requires-Dist: unique-internal-search>=2026.34.0.dev3,<2026.34.0rc0
16
- Requires-Dist: unique-deep-research>=2026.34.0.dev3,<2026.34.0rc0
17
- Requires-Dist: unique-web-search>=2026.34.0.dev5,<2026.34.0rc0
18
- Requires-Dist: unique-swot>=2026.34.0.dev3,<2026.34.0rc0
19
- Requires-Dist: unique-skill-tool>=2026.34.0.dev3,<2026.34.0rc0
20
- Requires-Dist: unique-user-memory>=2026.34.0.dev3,<2026.34.0rc0
21
- Requires-Dist: openai>=1.109.1,<3
22
- Requires-Python: >=3.12, <4
23
- Description-Content-Type: text/markdown
24
-
25
- # Unique Orchestrator
26
-
27
- Unique AI orchestrator agent to struct and direct subagents, tools and services