unique_orchestrator 2026.22.0.dev0__tar.gz → 2026.22.0.dev2__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 (29) hide show
  1. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/PKG-INFO +9 -9
  2. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/pyproject.toml +9 -9
  3. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/unique_ai_builder.py +15 -2
  4. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/README.md +0 -0
  5. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/__init__.py +0 -0
  6. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/_builders/__init__.py +0 -0
  7. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/_builders/inject_tool_reminders.py +0 -0
  8. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/_builders/loop_iteration_runner.py +0 -0
  9. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/_builders/open_file_setup.py +0 -0
  10. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/_builders/skill_setup.py +0 -0
  11. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/config.py +0 -0
  12. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/prompts/generic_reference_prompt.jinja2 +0 -0
  13. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/prompts/system_prompt.jinja2 +0 -0
  14. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/prompts/user_message_prompt.jinja2 +0 -0
  15. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/settings.py +0 -0
  16. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_build_loop_iteration_runner.py +0 -0
  17. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_config_services_validators.py +0 -0
  18. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_qwen_max_loop_iterations.py +0 -0
  19. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_register_code_interpreter_postprocessors.py +0 -0
  20. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_unique_ai_async_modify.py +0 -0
  21. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_unique_ai_execution_timing.py +0 -0
  22. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_unique_ai_get_filtered_user_metadata.py +0 -0
  23. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_unique_ai_log_tool_calls.py +0 -0
  24. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_unique_ai_persist_tool_calls.py +0 -0
  25. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_unique_ai_plan_or_execute_include.py +0 -0
  26. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_unique_ai_reference_order.py +0 -0
  27. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/tests/test_unique_ai_render_system_prompt_user_instructions.py +0 -0
  28. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/unique_ai.py +0 -0
  29. {unique_orchestrator-2026.22.0.dev0 → unique_orchestrator-2026.22.0.dev2}/unique_orchestrator/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: unique-orchestrator
3
- Version: 2026.22.0.dev0
3
+ Version: 2026.22.0.dev2
4
4
  Summary:
5
5
  Author: Andreas Hauri
6
6
  Author-email: Andreas Hauri <andreas.hauri@unique.ai>
@@ -9,14 +9,14 @@ Requires-Dist: pydantic>=2.8.2,<3
9
9
  Requires-Dist: pydantic-settings>=2.10.1,<3
10
10
  Requires-Dist: typing-extensions>=4.9.0,<5
11
11
  Requires-Dist: jinja2>=3.1.0,<4
12
- Requires-Dist: unique-toolkit>=2026.22.0.dev0,<2026.22.0rc0
13
- Requires-Dist: unique-stock-ticker>=2026.22.0.dev0,<2026.22.0rc0
14
- Requires-Dist: unique-follow-up-questions>=2026.22.0.dev0,<2026.22.0rc0
15
- Requires-Dist: unique-internal-search>=2026.22.0.dev0,<2026.22.0rc0
16
- Requires-Dist: unique-deep-research>=2026.22.0.dev0,<2026.22.0rc0
17
- Requires-Dist: unique-web-search>=2026.22.0.dev0,<2026.22.0rc0
18
- Requires-Dist: unique-swot>=2026.22.0.dev0,<2026.22.0rc0
19
- Requires-Dist: unique-skill-tool>=2026.22.0.dev0,<2026.22.0rc0
12
+ Requires-Dist: unique-toolkit>=2026.22.0.dev2,<2026.22.0rc0
13
+ Requires-Dist: unique-stock-ticker>=2026.22.0.dev1,<2026.22.0rc0
14
+ Requires-Dist: unique-follow-up-questions>=2026.22.0.dev1,<2026.22.0rc0
15
+ Requires-Dist: unique-internal-search>=2026.22.0.dev1,<2026.22.0rc0
16
+ Requires-Dist: unique-deep-research>=2026.22.0.dev1,<2026.22.0rc0
17
+ Requires-Dist: unique-web-search>=2026.22.0.dev2,<2026.22.0rc0
18
+ Requires-Dist: unique-swot>=2026.22.0.dev1,<2026.22.0rc0
19
+ Requires-Dist: unique-skill-tool>=2026.22.0.dev1,<2026.22.0rc0
20
20
  Requires-Dist: openai>=1.109.1,<3
21
21
  Requires-Dist: python-frontmatter>=1.1.0,<2
22
22
  Requires-Python: >=3.12, <4
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_orchestrator"
3
- version = "2026.22.0.dev0"
3
+ version = "2026.22.0.dev2"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  license = { text = "Proprietary" }
@@ -13,14 +13,14 @@ 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.22.0.dev0,<2026.22.0rc0",
17
- "unique-stock-ticker>=2026.22.0.dev0,<2026.22.0rc0",
18
- "unique-follow-up-questions>=2026.22.0.dev0,<2026.22.0rc0",
19
- "unique-internal-search>=2026.22.0.dev0,<2026.22.0rc0",
20
- "unique-deep-research>=2026.22.0.dev0,<2026.22.0rc0",
21
- "unique-web-search>=2026.22.0.dev0,<2026.22.0rc0",
22
- "unique-swot>=2026.22.0.dev0,<2026.22.0rc0",
23
- "unique-skill-tool>=2026.22.0.dev0,<2026.22.0rc0",
16
+ "unique-toolkit>=2026.22.0.dev2,<2026.22.0rc0",
17
+ "unique-stock-ticker>=2026.22.0.dev1,<2026.22.0rc0",
18
+ "unique-follow-up-questions>=2026.22.0.dev1,<2026.22.0rc0",
19
+ "unique-internal-search>=2026.22.0.dev1,<2026.22.0rc0",
20
+ "unique-deep-research>=2026.22.0.dev1,<2026.22.0rc0",
21
+ "unique-web-search>=2026.22.0.dev2,<2026.22.0rc0",
22
+ "unique-swot>=2026.22.0.dev1,<2026.22.0rc0",
23
+ "unique-skill-tool>=2026.22.0.dev1,<2026.22.0rc0",
24
24
  "openai>=1.109.1,<3",
25
25
  "python-frontmatter>=1.1.0,<2",
26
26
  ]
@@ -154,6 +154,7 @@ class _CommonComponents(NamedTuple):
154
154
  content_service: ContentService
155
155
  llm_service: LanguageModelService
156
156
  uploaded_documents: list[Content]
157
+ uploaded_images: list[Content]
157
158
  thinking_manager: ThinkingManager
158
159
  reference_manager: ReferenceManager
159
160
  history_manager: HistoryManager
@@ -180,13 +181,23 @@ async def _build_common(
180
181
 
181
182
  content_service = ContentService.from_event(event)
182
183
 
183
- uploaded_documents = await content_service.get_documents_uploaded_to_chat_async()
184
+ (
185
+ uploaded_images,
186
+ uploaded_documents,
187
+ ) = await chat_service.download_chat_images_and_documents_async()
188
+
184
189
  uploaded_documents = filter_uploaded_documents_by_selection(
185
190
  documents=uploaded_documents,
186
191
  additional_parameters=event.payload.additional_parameters,
187
192
  company_id=event.company_id,
188
193
  )
189
194
 
195
+ uploaded_images = filter_uploaded_documents_by_selection(
196
+ documents=uploaded_images,
197
+ additional_parameters=event.payload.additional_parameters,
198
+ company_id=event.company_id,
199
+ )
200
+
190
201
  response_watcher = SubAgentResponseWatcher()
191
202
 
192
203
  tool_progress_reporter = ToolProgressReporter(
@@ -279,6 +290,7 @@ async def _build_common(
279
290
  content_service=content_service,
280
291
  llm_service=llm_service,
281
292
  uploaded_documents=uploaded_documents,
293
+ uploaded_images=uploaded_images,
282
294
  thinking_manager=thinking_manager,
283
295
  reference_manager=reference_manager,
284
296
  history_manager=history_manager,
@@ -394,7 +406,8 @@ async def _build_responses(
394
406
  )
395
407
 
396
408
  builtin_tool_manager = await OpenAIBuiltInToolManager.build_manager(
397
- uploaded_files=common_components.uploaded_documents,
409
+ uploaded_files=common_components.uploaded_documents
410
+ + common_components.uploaded_images,
398
411
  content_service=common_components.content_service,
399
412
  user_id=event.user_id,
400
413
  company_id=event.company_id,