unique-sdk 2026.40.0.dev2__tar.gz → 2026.40.0.dev3__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 (91) hide show
  1. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/PKG-INFO +1 -1
  2. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/pyproject.toml +1 -1
  3. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_message.py +61 -0
  4. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_message_log.py +1 -1
  5. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/README.md +0 -0
  6. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/__init__.py +0 -0
  7. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_api_requestor.py +0 -0
  8. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_api_resource.py +0 -0
  9. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_api_version.py +0 -0
  10. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_error.py +0 -0
  11. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_http_client.py +0 -0
  12. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_list_object.py +0 -0
  13. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_object_classes.py +0 -0
  14. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_request_options.py +0 -0
  15. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_unique_object.py +0 -0
  16. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_unique_ql.py +0 -0
  17. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_unique_response.py +0 -0
  18. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_util.py +0 -0
  19. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_version.py +0 -0
  20. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/_webhook.py +0 -0
  21. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/__init__.py +0 -0
  22. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_acronyms.py +0 -0
  23. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_agentic_table.py +0 -0
  24. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_analytics_order.py +0 -0
  25. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_benchmarking.py +0 -0
  26. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_briefing.py +0 -0
  27. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_chat_completion.py +0 -0
  28. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_content.py +0 -0
  29. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_context_memory.py +0 -0
  30. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_elicitation.py +0 -0
  31. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_embedding.py +0 -0
  32. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_event.py +0 -0
  33. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_folder.py +0 -0
  34. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_group.py +0 -0
  35. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_integrated.py +0 -0
  36. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_llm_models.py +0 -0
  37. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_mcp.py +0 -0
  38. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_message_assessment.py +0 -0
  39. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_message_execution.py +0 -0
  40. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_message_tool.py +0 -0
  41. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_module.py +0 -0
  42. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_scheduled_task.py +0 -0
  43. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_search.py +0 -0
  44. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_search_string.py +0 -0
  45. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_short_term_memory.py +0 -0
  46. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_space.py +0 -0
  47. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_user.py +0 -0
  48. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/api_resources/_web_search.py +0 -0
  49. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/__init__.py +0 -0
  50. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/__main__.py +0 -0
  51. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/cli.py +0 -0
  52. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/__init__.py +0 -0
  53. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/_citation_manifest.py +0 -0
  54. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/agentic_table.py +0 -0
  55. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/agentic_table_write.py +0 -0
  56. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/browser.py +0 -0
  57. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/cite_file.py +0 -0
  58. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/elicitation.py +0 -0
  59. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/files.py +0 -0
  60. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/folders.py +0 -0
  61. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/mcp.py +0 -0
  62. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/navigation.py +0 -0
  63. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/read.py +0 -0
  64. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/scheduled_tasks.py +0 -0
  65. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/search.py +0 -0
  66. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/subagent.py +0 -0
  67. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/web_search.py +0 -0
  68. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/commands/web_search_config.py +0 -0
  69. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/config.py +0 -0
  70. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/formatting.py +0 -0
  71. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/identity.py +0 -0
  72. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/metadata_filter.py +0 -0
  73. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/shell.py +0 -0
  74. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-agentic-table/SKILL.md +0 -0
  75. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-elicitation/SKILL.md +0 -0
  76. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-file-management/SKILL.md +0 -0
  77. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-mcp/SKILL.md +0 -0
  78. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-scheduled-tasks/SKILL.md +0 -0
  79. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-search/SKILL.md +0 -0
  80. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-subagent/SKILL.md +0 -0
  81. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-uploaded-search/SKILL.md +0 -0
  82. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/skills/unique-cli-web-search/SKILL.md +0 -0
  83. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/state.py +0 -0
  84. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/cli/workspace.py +0 -0
  85. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/utils/analytics_order_run.py +0 -0
  86. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/utils/benchmarking_run.py +0 -0
  87. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/utils/chat_history.py +0 -0
  88. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/utils/chat_in_space.py +0 -0
  89. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/utils/file_io.py +0 -0
  90. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/unique_sdk/utils/sources.py +0 -0
  91. {unique_sdk-2026.40.0.dev2 → unique_sdk-2026.40.0.dev3}/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.40.0.dev2
3
+ Version: 2026.40.0.dev3
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.40.0.dev2"
3
+ version = "2026.40.0.dev3"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -68,6 +68,9 @@ class Message(APIResource["Message"]):
68
68
  Literal["PROCESS", "PREFACE", "ELICITATION", "ANSWER"] | None
69
69
  ]
70
70
 
71
+ class MarkTurnSystemInterruptedParams(RequestOptions):
72
+ chatId: str
73
+
71
74
  class DeleteParams(RequestOptions):
72
75
  chatId: str
73
76
 
@@ -280,6 +283,64 @@ class Message(APIResource["Message"]):
280
283
  ),
281
284
  )
282
285
 
286
+ @classmethod
287
+ def mark_turn_system_interrupted(
288
+ cls,
289
+ user_id: str,
290
+ company_id: str,
291
+ id: str,
292
+ **params: Unpack["Message.MarkTurnSystemInterruptedParams"],
293
+ ) -> "Message":
294
+ """
295
+ Marks the turn anchored on the given USER message as system-interrupted.
296
+
297
+ Persists ``turnInterruptionReason = SYSTEM_INTERRUPTED`` on the USER
298
+ message via a dedicated service-authenticated endpoint. The endpoint is
299
+ idempotent and never overwrites a user-initiated stop (``userAbortedAt``
300
+ wins if both race). The reason is fixed server-side semantics and is
301
+ intentionally not parameterizable.
302
+ """
303
+ url = "%s/%s/turn-interruption" % (cls.class_url(), quote_plus(id))
304
+ return cast(
305
+ "Message",
306
+ cls._static_request(
307
+ "post",
308
+ url,
309
+ user_id,
310
+ company_id,
311
+ {**params, "reason": "SYSTEM_INTERRUPTED"},
312
+ ),
313
+ )
314
+
315
+ @classmethod
316
+ async def mark_turn_system_interrupted_async(
317
+ cls,
318
+ user_id: str,
319
+ company_id: str,
320
+ id: str,
321
+ **params: Unpack["Message.MarkTurnSystemInterruptedParams"],
322
+ ) -> "Message":
323
+ """
324
+ Marks the turn anchored on the given USER message as system-interrupted.
325
+
326
+ Persists ``turnInterruptionReason = SYSTEM_INTERRUPTED`` on the USER
327
+ message via a dedicated service-authenticated endpoint. The endpoint is
328
+ idempotent and never overwrites a user-initiated stop (``userAbortedAt``
329
+ wins if both race). The reason is fixed server-side semantics and is
330
+ intentionally not parameterizable.
331
+ """
332
+ url = "%s/%s/turn-interruption" % (cls.class_url(), quote_plus(id))
333
+ return cast(
334
+ "Message",
335
+ await cls._static_request_async(
336
+ "post",
337
+ url,
338
+ user_id,
339
+ company_id,
340
+ {**params, "reason": "SYSTEM_INTERRUPTED"},
341
+ ),
342
+ )
343
+
283
344
  @classmethod
284
345
  def _cls_delete(
285
346
  cls,
@@ -19,7 +19,7 @@ class MessageLog(APIResource["MessageLog"]):
19
19
 
20
20
  RESOURCE_URL = "/message-log"
21
21
 
22
- StatusLiteral = Literal["RUNNING", "COMPLETED", "FAILED"]
22
+ StatusLiteral = Literal["RUNNING", "COMPLETED", "FAILED", "CANCELLED"]
23
23
 
24
24
  class Reference(TypedDict):
25
25
  name: str