unique-sdk 2026.42.0.dev2__tar.gz → 2026.42.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.42.0.dev2 → unique_sdk-2026.42.0.dev3}/PKG-INFO +1 -1
  2. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/pyproject.toml +1 -1
  3. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_agentic_table.py +67 -1
  4. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/README.md +0 -0
  5. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/__init__.py +0 -0
  6. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_api_requestor.py +0 -0
  7. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_api_resource.py +0 -0
  8. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_api_version.py +0 -0
  9. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_error.py +0 -0
  10. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_http_client.py +0 -0
  11. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_list_object.py +0 -0
  12. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_object_classes.py +0 -0
  13. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_request_options.py +0 -0
  14. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_unique_object.py +0 -0
  15. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_unique_ql.py +0 -0
  16. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_unique_response.py +0 -0
  17. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_util.py +0 -0
  18. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_version.py +0 -0
  19. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/_webhook.py +0 -0
  20. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/__init__.py +0 -0
  21. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_acronyms.py +0 -0
  22. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_analytics_order.py +0 -0
  23. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_benchmarking.py +0 -0
  24. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_briefing.py +0 -0
  25. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_chat_completion.py +0 -0
  26. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_content.py +0 -0
  27. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_context_memory.py +0 -0
  28. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_elicitation.py +0 -0
  29. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_embedding.py +0 -0
  30. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_event.py +0 -0
  31. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_folder.py +0 -0
  32. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_group.py +0 -0
  33. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_integrated.py +0 -0
  34. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_llm_models.py +0 -0
  35. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_mcp.py +0 -0
  36. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_message.py +0 -0
  37. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_message_assessment.py +0 -0
  38. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_message_execution.py +0 -0
  39. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_message_log.py +0 -0
  40. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_message_tool.py +0 -0
  41. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_module.py +0 -0
  42. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_scheduled_task.py +0 -0
  43. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_search.py +0 -0
  44. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_search_string.py +0 -0
  45. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_short_term_memory.py +0 -0
  46. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_space.py +0 -0
  47. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_user.py +0 -0
  48. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/api_resources/_web_search.py +0 -0
  49. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/__init__.py +0 -0
  50. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/__main__.py +0 -0
  51. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/cli.py +0 -0
  52. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/__init__.py +0 -0
  53. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/_citation_manifest.py +0 -0
  54. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/agentic_table.py +0 -0
  55. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/agentic_table_write.py +0 -0
  56. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/browser.py +0 -0
  57. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/cite_file.py +0 -0
  58. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/elicitation.py +0 -0
  59. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/files.py +0 -0
  60. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/folders.py +0 -0
  61. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/mcp.py +0 -0
  62. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/navigation.py +0 -0
  63. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/read.py +0 -0
  64. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/scheduled_tasks.py +0 -0
  65. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/search.py +0 -0
  66. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/subagent.py +0 -0
  67. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/web_search.py +0 -0
  68. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/commands/web_search_config.py +0 -0
  69. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/config.py +0 -0
  70. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/formatting.py +0 -0
  71. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/identity.py +0 -0
  72. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/metadata_filter.py +0 -0
  73. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/shell.py +0 -0
  74. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-agentic-table/SKILL.md +0 -0
  75. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-elicitation/SKILL.md +0 -0
  76. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-file-management/SKILL.md +0 -0
  77. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-mcp/SKILL.md +0 -0
  78. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-scheduled-tasks/SKILL.md +0 -0
  79. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-search/SKILL.md +0 -0
  80. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-subagent/SKILL.md +0 -0
  81. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-uploaded-search/SKILL.md +0 -0
  82. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/skills/unique-cli-web-search/SKILL.md +0 -0
  83. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/state.py +0 -0
  84. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/cli/workspace.py +0 -0
  85. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/utils/analytics_order_run.py +0 -0
  86. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/utils/benchmarking_run.py +0 -0
  87. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/utils/chat_history.py +0 -0
  88. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/utils/chat_in_space.py +0 -0
  89. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/utils/file_io.py +0 -0
  90. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.0.dev3}/unique_sdk/utils/sources.py +0 -0
  91. {unique_sdk-2026.42.0.dev2 → unique_sdk-2026.42.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.42.0.dev2
3
+ Version: 2026.42.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.42.0.dev2"
3
+ version = "2026.42.0.dev3"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  license = { text = "MIT" }
@@ -348,6 +348,19 @@ class AgenticTable(APIResource["AgenticTable"]):
348
348
  rowId: str
349
349
  entries: list[MagicTableMetadataEntry]
350
350
 
351
+ class UpdateRowMetadata(RequestOptions):
352
+ """Body for `POST /magic-table/{tableId}/row/metadata/{metadataId}` (update one row metadata entry).
353
+
354
+ The entry is addressed by its own id (``id`` on a ``rowMetadata`` entry),
355
+ not by row or key.
356
+ """
357
+
358
+ tableId: str
359
+ metadataId: str
360
+ key: str
361
+ value: str
362
+ exactFilter: NotRequired[bool]
363
+
351
364
  @classmethod
352
365
  async def set_cell(
353
366
  cls,
@@ -505,10 +518,19 @@ class AgenticTable(APIResource["AgenticTable"]):
505
518
  company_id: str,
506
519
  tableId: str,
507
520
  cells: list[AgenticTableCell],
521
+ overwriteLibraryRows: bool | None = None,
508
522
  ) -> ColumnMetadataUpdateStatus:
523
+ """Upsert cells (`POST /magic-table/{tableId}/cells/bulk-upsert`).
524
+
525
+ ``overwriteLibraryRows=True`` asks the server to apply updates to existing
526
+ cells on library-sheet rows, which it otherwise drops for assistant
527
+ writes. The server only honors it on library sheets, for rows where the
528
+ caller can read every sheet named in the row's ``sourceSheetId`` metadata.
529
+ ``None`` omits the field; servers that predate it reject it with a 400.
530
+ """
509
531
  url = f"/magic-table/{tableId}/cells/bulk-upsert"
510
532
  try:
511
- params_api = {
533
+ params_api: dict[str, Any] = {
512
534
  "cells": [
513
535
  {
514
536
  "rowOrder": cell["rowOrder"],
@@ -520,6 +542,8 @@ class AgenticTable(APIResource["AgenticTable"]):
520
542
  }
521
543
  except Exception as e:
522
544
  raise ValueError(f"Invalid data or missing required fields: {e}")
545
+ if overwriteLibraryRows is not None:
546
+ params_api["overwriteLibraryRows"] = overwriteLibraryRows
523
547
  return cast(
524
548
  "ColumnMetadataUpdateStatus",
525
549
  await cls._static_request_async(
@@ -720,6 +744,48 @@ class AgenticTable(APIResource["AgenticTable"]):
720
744
  ),
721
745
  )
722
746
 
747
+ @classmethod
748
+ async def update_row_metadata(
749
+ cls,
750
+ user_id: str,
751
+ company_id: str,
752
+ **params: Unpack["AgenticTable.UpdateRowMetadata"],
753
+ ) -> MagicTableActionResult:
754
+ """Update one row metadata entry (`POST /magic-table/{tableId}/row/metadata/{metadataId}`)."""
755
+ url = f"/magic-table/{params['tableId']}/row/metadata/{params['metadataId']}"
756
+ params.pop("tableId")
757
+ params.pop("metadataId")
758
+ return cast(
759
+ MagicTableActionResult,
760
+ await cls._static_request_async(
761
+ "post",
762
+ url,
763
+ user_id,
764
+ company_id,
765
+ params,
766
+ ),
767
+ )
768
+
769
+ @classmethod
770
+ async def delete_row_metadata(
771
+ cls,
772
+ user_id: str,
773
+ company_id: str,
774
+ tableId: str,
775
+ metadataId: str,
776
+ ) -> MagicTableActionResult:
777
+ """Delete one row metadata entry (`DELETE /magic-table/{tableId}/row/metadata/{metadataId}`)."""
778
+ url = f"/magic-table/{tableId}/row/metadata/{metadataId}"
779
+ return cast(
780
+ MagicTableActionResult,
781
+ await cls._static_request_async(
782
+ "delete",
783
+ url,
784
+ user_id,
785
+ company_id,
786
+ ),
787
+ )
788
+
723
789
  @classmethod
724
790
  async def delete_sheet_metadata(
725
791
  cls,