unique-sdk 2026.36.0.dev0__tar.gz → 2026.36.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 (89) hide show
  1. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/PKG-INFO +1 -1
  2. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/pyproject.toml +5 -2
  3. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/utils/chat_in_space.py +5 -0
  4. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/README.md +0 -0
  5. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/__init__.py +0 -0
  6. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_api_requestor.py +0 -0
  7. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_api_resource.py +0 -0
  8. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_api_version.py +0 -0
  9. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_error.py +0 -0
  10. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_http_client.py +0 -0
  11. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_list_object.py +0 -0
  12. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_object_classes.py +0 -0
  13. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_request_options.py +0 -0
  14. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_unique_object.py +0 -0
  15. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_unique_ql.py +0 -0
  16. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_unique_response.py +0 -0
  17. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_util.py +0 -0
  18. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_version.py +0 -0
  19. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/_webhook.py +0 -0
  20. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/__init__.py +0 -0
  21. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_acronyms.py +0 -0
  22. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_agentic_table.py +0 -0
  23. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_analytics_order.py +0 -0
  24. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_benchmarking.py +0 -0
  25. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_briefing.py +0 -0
  26. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_chat_completion.py +0 -0
  27. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_content.py +0 -0
  28. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_elicitation.py +0 -0
  29. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_embedding.py +0 -0
  30. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_event.py +0 -0
  31. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_folder.py +0 -0
  32. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_group.py +0 -0
  33. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_integrated.py +0 -0
  34. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_llm_models.py +0 -0
  35. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_mcp.py +0 -0
  36. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_message.py +0 -0
  37. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_message_assessment.py +0 -0
  38. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_message_execution.py +0 -0
  39. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_message_log.py +0 -0
  40. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_message_tool.py +0 -0
  41. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_module.py +0 -0
  42. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_scheduled_task.py +0 -0
  43. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_search.py +0 -0
  44. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_search_string.py +0 -0
  45. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_short_term_memory.py +0 -0
  46. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_space.py +0 -0
  47. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_user.py +0 -0
  48. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/api_resources/_web_search.py +0 -0
  49. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/__init__.py +0 -0
  50. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/__main__.py +0 -0
  51. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/cli.py +0 -0
  52. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/__init__.py +0 -0
  53. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/_citation_manifest.py +0 -0
  54. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/agentic_table.py +0 -0
  55. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/agentic_table_write.py +0 -0
  56. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/browser.py +0 -0
  57. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/cite_file.py +0 -0
  58. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/elicitation.py +0 -0
  59. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/files.py +0 -0
  60. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/folders.py +0 -0
  61. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/mcp.py +0 -0
  62. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/navigation.py +0 -0
  63. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/read.py +0 -0
  64. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/scheduled_tasks.py +0 -0
  65. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/search.py +0 -0
  66. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/subagent.py +0 -0
  67. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/web_search.py +0 -0
  68. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/commands/web_search_config.py +0 -0
  69. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/config.py +0 -0
  70. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/formatting.py +0 -0
  71. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/identity.py +0 -0
  72. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/metadata_filter.py +0 -0
  73. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/shell.py +0 -0
  74. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-agentic-table/SKILL.md +0 -0
  75. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-elicitation/SKILL.md +0 -0
  76. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-file-management/SKILL.md +0 -0
  77. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-mcp/SKILL.md +0 -0
  78. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-scheduled-tasks/SKILL.md +0 -0
  79. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-search/SKILL.md +0 -0
  80. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-subagent/SKILL.md +0 -0
  81. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-uploaded-search/SKILL.md +0 -0
  82. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/skills/unique-cli-web-search/SKILL.md +0 -0
  83. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/cli/state.py +0 -0
  84. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/utils/analytics_order_run.py +0 -0
  85. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/utils/benchmarking_run.py +0 -0
  86. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/utils/chat_history.py +0 -0
  87. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/utils/file_io.py +0 -0
  88. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/utils/sources.py +0 -0
  89. {unique_sdk-2026.36.0.dev0 → unique_sdk-2026.36.0.dev2}/unique_sdk/utils/token.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: unique-sdk
3
- Version: 2026.36.0.dev0
3
+ Version: 2026.36.0.dev2
4
4
  Summary:
5
5
  Author: Martin Fadler, Konstantin Krauss, Andreas Hauri
6
6
  Author-email: Martin Fadler <martin.fadler@unique.ch>, Konstantin Krauss <konstantin@unique.ch>, Andreas Hauri <andreas@unique.ch>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "unique_sdk"
3
- version = "2026.36.0.dev0"
3
+ version = "2026.36.0.dev2"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -82,7 +82,9 @@ reportUnusedParameter = "none"
82
82
  reportImportCycles = "none"
83
83
 
84
84
  [tool.pytest.ini_options]
85
- addopts = "--strict-markers --import-mode=importlib"
85
+ # Exclude live API integration tests from the default suite (CI / poe test).
86
+ # Run them explicitly with: uv run poe test-integration
87
+ addopts = "--strict-markers --import-mode=importlib -m 'not integration'"
86
88
  asyncio_mode = "auto"
87
89
  markers = [
88
90
  "ai: AI-authored or AI-generated tests",
@@ -102,6 +104,7 @@ lint = "ruff check ."
102
104
  lint-fix = "ruff check . --fix"
103
105
  format = "ruff format ."
104
106
  test = "pytest"
107
+ test-integration = "pytest tests/integration -m integration"
105
108
  typecheck = "basedpyright"
106
109
  depcheck = "deptry ."
107
110
  coverage = "pytest --cov=unique_sdk --cov-report=term-missing"
@@ -38,6 +38,7 @@ async def send_message_and_wait_for_completion(
38
38
  stop_condition: Literal["stoppedStreamingAt", "completedAt"] = "stoppedStreamingAt",
39
39
  correlation: Space.Correlation | None = None,
40
40
  auto_approve_elicitation: bool | None = None,
41
+ language_model: str | None = None,
41
42
  on_message_update: Callable[[Space.Message], Awaitable[None]] | None = None,
42
43
  wait_for_invocations: bool = False,
43
44
  ) -> Space.Message:
@@ -67,6 +68,8 @@ async def send_message_and_wait_for_completion(
67
68
  Should contain: parentMessageId, parentChatId, parentAssistantId.
68
69
  auto_approve_elicitation: When True, automatically approves elicitation requests during
69
70
  the assistant run. Use for non-interactive automation where no user is present.
71
+ language_model: Optional language model group name for this single message
72
+ (e.g. ``"AZURE_GPT_4o_2024_1120"``). Requires manage access on the space.
70
73
  on_message_update: Optional async callback called whenever the latest assistant
71
74
  message changes while waiting for completion.
72
75
  wait_for_invocations: When True, briefly wait for the orchestrator's final
@@ -87,6 +90,8 @@ async def send_message_and_wait_for_completion(
87
90
  create_message_params["chatId"] = chat_id
88
91
  if auto_approve_elicitation is not None:
89
92
  create_message_params["autoApproveElicitation"] = auto_approve_elicitation
93
+ if language_model is not None:
94
+ create_message_params["languageModel"] = language_model
90
95
 
91
96
  response = await Space.create_message_async(
92
97
  user_id=user_id,