unique_sdk 0.10.35__py3-none-any.whl → 0.10.42__py3-none-any.whl

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.
unique_sdk/__init__.py CHANGED
@@ -83,6 +83,8 @@ from unique_sdk.api_resources._short_term_memory import (
83
83
  from unique_sdk.api_resources._folder import Folder as Folder
84
84
  from unique_sdk.api_resources._embedding import Embeddings as Embeddings
85
85
  from unique_sdk.api_resources._acronyms import Acronyms as Acronyms
86
+ from unique_sdk.api_resources._llm_models import LLMModels as LLMModels
87
+ from unique_sdk.api_resources._user import User as User
86
88
  from unique_sdk.api_resources._message_assessment import (
87
89
  MessageAssessment as MessageAssessment,
88
90
  )
@@ -20,6 +20,16 @@ from unique_sdk._request_options import RequestOptions
20
20
  class Content(APIResource["Content"]):
21
21
  OBJECT_NAME: ClassVar[Literal["content.search"]] = "content.search"
22
22
 
23
+ id: str
24
+ key: str
25
+ url: Optional[str]
26
+ title: Optional[str]
27
+ updatedAt: str
28
+ chunks: Optional[List["Content.Chunk"]]
29
+ metadata: Optional[Dict[str, Any]]
30
+ writeUrl: Optional[str]
31
+ readUrl: Optional[str]
32
+
23
33
  class QueryMode(Enum):
24
34
  Default = "default"
25
35
  Insensitive = "insensitive"
@@ -127,6 +137,7 @@ class Content(APIResource["Content"]):
127
137
  key: str
128
138
  title: Optional[str]
129
139
  mimeType: str
140
+ description: NotRequired[str | None]
130
141
  ownerType: NotRequired[str | None]
131
142
  ownerId: NotRequired[str | None]
132
143
  byteSize: NotRequired[int | None]
@@ -168,6 +179,7 @@ class Content(APIResource["Content"]):
168
179
  title: str | None
169
180
  metadata: Dict[str, Any] | None
170
181
  mimeType: str
182
+ description: str | None
171
183
  byteSize: int
172
184
  ownerId: str
173
185
  createdAt: str
@@ -192,16 +204,6 @@ class Content(APIResource["Content"]):
192
204
  class DeleteResponse(TypedDict):
193
205
  id: str
194
206
 
195
- id: str
196
- key: str
197
- url: Optional[str]
198
- title: Optional[str]
199
- updatedAt: str
200
- chunks: List[Chunk]
201
- metadata: Optional[Dict[str, Any]]
202
- writeUrl: str
203
- readUrl: str
204
-
205
207
  class MagicTableSheetTableColumn(TypedDict):
206
208
  columnId: str
207
209
  columnName: str
@@ -349,6 +351,9 @@ class Content(APIResource["Content"]):
349
351
  """
350
352
  if "input" in params:
351
353
  params["input"]["metadata"] = params["input"].get("metadata") or {}
354
+ if "description" in params["input"] and not params["input"]["description"]:
355
+ params["input"].pop("description")
356
+
352
357
  return cast(
353
358
  "Content",
354
359
  cls._static_request(
@@ -372,6 +377,9 @@ class Content(APIResource["Content"]):
372
377
  """
373
378
  if "input" in params:
374
379
  params["input"]["metadata"] = params["input"].get("metadata") or {}
380
+ if "description" in params["input"] and not params["input"]["description"]:
381
+ params["input"].pop("description")
382
+
375
383
  return cast(
376
384
  "Content",
377
385
  await cls._static_request_async(
@@ -216,12 +216,12 @@ class Folder(APIResource["Folder"]):
216
216
  @classmethod
217
217
  def get_infos(
218
218
  cls, user_id: str, company_id: str, **params: Unpack["Folder.GetInfosParams"]
219
- ) -> "List[Folder.FolderInfos]":
219
+ ) -> "Folder.FolderInfos":
220
220
  """
221
221
  Get paginated folders based on parentId. If the parentId is not defined, the root folders will be returned.
222
222
  """
223
223
  return cast(
224
- "List[Folder.FolderInfo]",
224
+ "Folder.FolderInfos",
225
225
  cls._static_request(
226
226
  "get",
227
227
  "/folder/infos",
@@ -234,12 +234,12 @@ class Folder(APIResource["Folder"]):
234
234
  @classmethod
235
235
  async def get_infos_async(
236
236
  cls, user_id: str, company_id: str, **params: Unpack["Folder.GetInfosParams"]
237
- ) -> "List[Folder.FolderInfos]":
237
+ ) -> "Folder.FolderInfos":
238
238
  """
239
239
  Async get paginated folders based on parentId. If the parentId is not defined, the root folders will be returned.
240
240
  """
241
241
  return cast(
242
- "List[Folder.FolderInfo]",
242
+ "Folder.FolderInfos",
243
243
  await cls._static_request_async(
244
244
  "get",
245
245
  "/folder/infos",
@@ -0,0 +1,64 @@
1
+ from typing import ClassVar, List, Literal, NotRequired, TypedDict, Unpack, cast
2
+
3
+ from unique_sdk._api_resource import APIResource
4
+ from unique_sdk._request_options import RequestOptions
5
+
6
+
7
+ class LLMModels(APIResource["LLMModels"]):
8
+ OBJECT_NAME: ClassVar[Literal["llm-models"]] = "llm-models"
9
+
10
+ class GetParams(RequestOptions):
11
+ """
12
+ Parameters for getting available LLM models.
13
+ """
14
+
15
+ module: NotRequired[str | None]
16
+
17
+ class LLMModelsResponse(TypedDict):
18
+ """
19
+ Response for getting available LLM models.
20
+ """
21
+
22
+ models: List[str]
23
+
24
+ @classmethod
25
+ def get_models(
26
+ cls,
27
+ user_id: str,
28
+ company_id: str,
29
+ **params: Unpack["LLMModels.GetParams"],
30
+ ) -> "LLMModels.LLMModelsResponse":
31
+ """
32
+ Get available LLM models.
33
+ """
34
+ return cast(
35
+ "LLMModels.LLMModelsResponse",
36
+ cls._static_request(
37
+ "get",
38
+ "/openai/models",
39
+ user_id,
40
+ company_id,
41
+ params=params,
42
+ ),
43
+ )
44
+
45
+ @classmethod
46
+ async def get_models_async(
47
+ cls,
48
+ user_id: str,
49
+ company_id: str,
50
+ **params: Unpack["LLMModels.GetParams"],
51
+ ) -> "LLMModels.LLMModelsResponse":
52
+ """
53
+ Async get available LLM models.
54
+ """
55
+ return cast(
56
+ "LLMModels.LLMModelsResponse",
57
+ await cls._static_request_async(
58
+ "get",
59
+ "/openai/models",
60
+ user_id,
61
+ company_id,
62
+ params=params,
63
+ ),
64
+ )
@@ -29,8 +29,10 @@ class Message(APIResource["Message"]):
29
29
 
30
30
  class Reference(TypedDict):
31
31
  name: str
32
+ description: Optional[str]
32
33
  url: Optional[str]
33
34
  sequenceNumber: int
35
+ originalIndex: Optional[list[int]]
34
36
  sourceId: str
35
37
  source: str
36
38
 
@@ -165,6 +167,12 @@ class Message(APIResource["Message"]):
165
167
  """
166
168
  Creates a new message object.
167
169
  """
170
+ # Clean up empty descriptions from references
171
+ if "references" in params and params["references"]:
172
+ for ref in params["references"]:
173
+ if "description" in ref and not ref["description"]:
174
+ ref.pop("description")
175
+
168
176
  return cast(
169
177
  "Message",
170
178
  cls._static_request(
@@ -186,6 +194,12 @@ class Message(APIResource["Message"]):
186
194
  """
187
195
  Creates a new message object.
188
196
  """
197
+ # Clean up empty descriptions from references
198
+ if "references" in params and params["references"]:
199
+ for ref in params["references"]:
200
+ if "description" in ref and not ref["description"]:
201
+ ref.pop("description")
202
+
189
203
  return cast(
190
204
  "Message",
191
205
  await cls._static_request_async(
@@ -208,6 +222,12 @@ class Message(APIResource["Message"]):
208
222
  """
209
223
  Updates an existing message object.
210
224
  """
225
+ # Clean up empty descriptions from references
226
+ if "references" in params and params["references"]:
227
+ for ref in params["references"]:
228
+ if "description" in ref and not ref["description"]:
229
+ ref.pop("description")
230
+
211
231
  url = "%s/%s" % (cls.class_url(), quote_plus(id))
212
232
  return cast(
213
233
  "Message",
@@ -231,6 +251,12 @@ class Message(APIResource["Message"]):
231
251
  """
232
252
  Updates an existing message object.
233
253
  """
254
+ # Clean up empty descriptions from references
255
+ if "references" in params and params["references"]:
256
+ for ref in params["references"]:
257
+ if "description" in ref and not ref["description"]:
258
+ ref.pop("description")
259
+
234
260
  url = "%s/%s" % (cls.class_url(), quote_plus(id))
235
261
  return cast(
236
262
  "Message",
@@ -324,6 +350,12 @@ class Message(APIResource["Message"]):
324
350
  """
325
351
  Creates a new message event object.
326
352
  """
353
+ # Clean up empty descriptions from references
354
+ if "references" in params and params["references"]:
355
+ for ref in params["references"]:
356
+ if "description" in ref and not ref["description"]:
357
+ ref.pop("description")
358
+
327
359
  message_id = params.get("messageId")
328
360
  params.pop("messageId", None)
329
361
  return cast(
@@ -347,6 +379,12 @@ class Message(APIResource["Message"]):
347
379
  """
348
380
  Creates a new message event object.
349
381
  """
382
+ # Clean up empty descriptions from references
383
+ if "references" in params and params["references"]:
384
+ for ref in params["references"]:
385
+ if "description" in ref and not ref["description"]:
386
+ ref.pop("description")
387
+
350
388
  message_id = params.get("messageId")
351
389
  params.pop("messageId", None)
352
390
  return cast(
@@ -1,4 +1,4 @@
1
- from typing import ClassVar, Literal, NotRequired, TypedDict, Unpack, cast
1
+ from typing import ClassVar, Literal, NotRequired, Optional, TypedDict, Unpack, cast
2
2
 
3
3
  from unique_sdk._api_resource import APIResource
4
4
  from unique_sdk._request_options import RequestOptions
@@ -12,9 +12,10 @@ class MessageLog(APIResource["MessageLog"]):
12
12
 
13
13
  class Reference(TypedDict):
14
14
  name: str
15
- url: str | None
15
+ description: Optional[str]
16
+ url: Optional[str]
16
17
  sequenceNumber: int
17
- originalIndex: list[int] | None
18
+ originalIndex: Optional[list[int]]
18
19
  sourceId: str
19
20
  source: str
20
21
 
@@ -63,6 +64,12 @@ class MessageLog(APIResource["MessageLog"]):
63
64
  """
64
65
  Create a MessageLog.
65
66
  """
67
+ # Clean up empty descriptions from references
68
+ if "references" in params and params["references"]:
69
+ for ref in params["references"]:
70
+ if "description" in ref and not ref["description"]:
71
+ ref.pop("description")
72
+
66
73
  return cast(
67
74
  "MessageLog",
68
75
  cls._static_request(
@@ -84,6 +91,12 @@ class MessageLog(APIResource["MessageLog"]):
84
91
  """
85
92
  Async create a MessageLog.
86
93
  """
94
+ # Clean up empty descriptions from references
95
+ if "references" in params and params["references"]:
96
+ for ref in params["references"]:
97
+ if "description" in ref and not ref["description"]:
98
+ ref.pop("description")
99
+
87
100
  return cast(
88
101
  "MessageLog",
89
102
  await cls._static_request_async(
@@ -106,6 +119,12 @@ class MessageLog(APIResource["MessageLog"]):
106
119
  """
107
120
  Update a MessageLog.
108
121
  """
122
+ # Clean up empty descriptions from references
123
+ if "references" in params and params["references"]:
124
+ for ref in params["references"]:
125
+ if "description" in ref and not ref["description"]:
126
+ ref.pop("description")
127
+
109
128
  return cast(
110
129
  "MessageLog",
111
130
  cls._static_request(
@@ -128,6 +147,12 @@ class MessageLog(APIResource["MessageLog"]):
128
147
  """
129
148
  Async update a MessageLog.
130
149
  """
150
+ # Clean up empty descriptions from references
151
+ if "references" in params and params["references"]:
152
+ for ref in params["references"]:
153
+ if "description" in ref and not ref["description"]:
154
+ ref.pop("description")
155
+
131
156
  return cast(
132
157
  "MessageLog",
133
158
  await cls._static_request_async(
@@ -35,9 +35,10 @@ class Space(APIResource["Space"]):
35
35
  """
36
36
 
37
37
  name: str
38
- url: str | None
38
+ description: Optional[str]
39
+ url: Optional[str]
39
40
  sequenceNumber: int
40
- originalIndex: List[int] | None
41
+ originalIndex: Optional[list[int]]
41
42
  sourceId: str
42
43
  source: str
43
44
 
@@ -0,0 +1,91 @@
1
+ from typing import (
2
+ ClassVar,
3
+ List,
4
+ NotRequired,
5
+ Optional,
6
+ TypedDict,
7
+ Unpack,
8
+ cast,
9
+ )
10
+
11
+ from unique_sdk._api_resource import APIResource
12
+ from unique_sdk._request_options import RequestOptions
13
+
14
+
15
+ class User(APIResource["User"]):
16
+ OBJECT_NAME: ClassVar[str] = "users"
17
+
18
+ class GetParams(RequestOptions):
19
+ """
20
+ Parameters for getting users in a company.
21
+ """
22
+
23
+ skip: NotRequired[Optional[int]]
24
+ take: NotRequired[Optional[int]]
25
+ email: NotRequired[Optional[str]]
26
+ displayName: NotRequired[Optional[str]]
27
+
28
+ class User(TypedDict):
29
+ """
30
+ Represents a user in the company.
31
+ """
32
+
33
+ id: str
34
+ externalId: Optional[str]
35
+ firstName: str
36
+ lastName: str
37
+ displayName: str
38
+ userName: str
39
+ email: str
40
+ updatedAt: str
41
+ createdAt: str
42
+ active: bool
43
+
44
+ class Users(TypedDict):
45
+ """
46
+ Response for getting users.
47
+ """
48
+
49
+ users: List["User.User"]
50
+
51
+ @classmethod
52
+ def get_users(
53
+ cls,
54
+ user_id: str,
55
+ company_id: str,
56
+ **params: Unpack["User.GetParams"],
57
+ ) -> "User.Users":
58
+ """
59
+ Get users in a company.
60
+ """
61
+ return cast(
62
+ "User.Users",
63
+ cls._static_request(
64
+ "get",
65
+ "/users",
66
+ user_id,
67
+ company_id,
68
+ params=params,
69
+ ),
70
+ )
71
+
72
+ @classmethod
73
+ async def get_users_async(
74
+ cls,
75
+ user_id: str,
76
+ company_id: str,
77
+ **params: Unpack["User.GetParams"],
78
+ ) -> "User.Users":
79
+ """
80
+ Async get users in a company.
81
+ """
82
+ return cast(
83
+ "User.Users",
84
+ await cls._static_request_async(
85
+ "get",
86
+ "/users",
87
+ user_id,
88
+ company_id,
89
+ params=params,
90
+ ),
91
+ )
@@ -38,6 +38,7 @@ def upload_file(
38
38
  path_to_file,
39
39
  displayed_filename,
40
40
  mime_type,
41
+ description: Optional[str] = None,
41
42
  scope_or_unique_path=None,
42
43
  chat_id=None,
43
44
  ingestion_config: Optional[Content.IngestionConfig] = None,
@@ -55,6 +56,7 @@ def upload_file(
55
56
  "key": displayed_filename,
56
57
  "title": displayed_filename,
57
58
  "mimeType": mime_type,
59
+ "description": description,
58
60
  "ingestionConfig": ingestion_config,
59
61
  "metadata": metadata,
60
62
  },
@@ -83,6 +85,7 @@ def upload_file(
83
85
  "key": displayed_filename,
84
86
  "title": displayed_filename,
85
87
  "mimeType": mime_type,
88
+ "description": description,
86
89
  "byteSize": size,
87
90
  "ingestionConfig": ingestion_config,
88
91
  "metadata": metadata,
@@ -98,6 +101,7 @@ def upload_file(
98
101
  "key": displayed_filename,
99
102
  "title": displayed_filename,
100
103
  "mimeType": mime_type,
104
+ "description": description,
101
105
  "byteSize": size,
102
106
  "ingestionConfig": ingestion_config,
103
107
  "metadata": metadata,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: unique_sdk
3
- Version: 0.10.35
3
+ Version: 0.10.42
4
4
  Summary:
5
5
  License: MIT
6
6
  Author: Martin Fadler
@@ -42,6 +42,8 @@ The Unique Python SDK provides access to the public API of Unique AI. It also en
42
42
  - [Message Assessment](#message-assessment)
43
43
  - [Folder](#folder)
44
44
  - [Space](#space)
45
+ - [LLM Models](#llm-models)
46
+ - [User](#user)
45
47
  - [Agentic Table](#agentic-table)
46
48
  6. [UniqueQL](#uniqueql)
47
49
  - [Query Structure](#uniqueql-query-structure)
@@ -260,6 +262,8 @@ unique_sdk.Message.modify(
260
262
  - [Message Assessment](#message-assessment)
261
263
  - [Folder](#folder)
262
264
  - [Space](#space)
265
+ - [LLM Models](#llm-models)
266
+ - [User](#user)
263
267
  - [Agentic Table](#agentic-table)
264
268
 
265
269
  Most of the API services provide an asynchronous version of the method. The async methods are suffixed with `_async`.
@@ -477,6 +481,7 @@ def upload_file(
477
481
  path_to_file,
478
482
  displayed_filename,
479
483
  mimeType,
484
+ description=None,
480
485
  scope_or_unique_path,
481
486
  ingestion_config=None,
482
487
  metadata=None,
@@ -489,6 +494,7 @@ def upload_file(
489
494
  "key": displayed_filename,
490
495
  "title": displayed_filename,
491
496
  "mimeType": mimeType,
497
+ "description": description,
492
498
  "ingestionConfig": ingestionConfig,
493
499
  "metadata": metadata,
494
500
  },
@@ -515,6 +521,7 @@ def upload_file(
515
521
  "key": displayed_filename,
516
522
  "title": displayed_filename,
517
523
  "mimeType": mimeType,
524
+ "description": description,
518
525
  "byteSize": size,
519
526
  "ingestionConfig": ingestionConfig,
520
527
  "metadata": metadata,
@@ -1359,6 +1366,42 @@ unique_sdk.Folder.delete(
1359
1366
 
1360
1367
  ### Space
1361
1368
 
1369
+ #### `unique_sdk.Space.create_message`
1370
+
1371
+ Send a message in a space. You can optionally provide a chat ID to continue an existing conversation, or omit it to start a new chat.
1372
+
1373
+ ```python
1374
+ message = unique_sdk.Space.create_message(
1375
+ user_id=user_id,
1376
+ company_id=company_id,
1377
+ chatId="chat_dejfhe729br398", # Optional - if not provided, a new chat will be created
1378
+ assistantId="assistant_abc123",
1379
+ text="Hello, how can you help me?",
1380
+ toolChoices=["WebSearch"], # Optional - list of tools to use
1381
+ scopeRules={ # Optional - scope rules for filtering
1382
+ "or": [
1383
+ {
1384
+ "operator": "contains",
1385
+ "path": ["folderIdPath"],
1386
+ "value": "uniquepathid://scope_123"
1387
+ }
1388
+ ]
1389
+ },
1390
+ )
1391
+ ```
1392
+
1393
+ #### `unique_sdk.Space.get_latest_message`
1394
+
1395
+ Get the latest message in a space chat.
1396
+
1397
+ ```python
1398
+ message = unique_sdk.Space.get_latest_message(
1399
+ user_id=user_id,
1400
+ company_id=company_id,
1401
+ chat_id="chat_dejfhe729br398",
1402
+ )
1403
+ ```
1404
+
1362
1405
  #### `unique_sdk.Space.delete_chat`
1363
1406
 
1364
1407
  Delete a space chat by id. If the chat does not exist, the function will return an error.
@@ -1371,6 +1414,37 @@ unique_sdk.Space.delete_chat(
1371
1414
  )
1372
1415
  ```
1373
1416
 
1417
+ ### LLM Models
1418
+
1419
+ #### `unique_sdk.LLMModels.get` (Compatible with release >.46)
1420
+
1421
+ Get available LLM models. You can optionally filter by module and skip cache to fetch fresh data.
1422
+
1423
+ ```python
1424
+ models = unique_sdk.LLMModels.get(
1425
+ user_id=user_id,
1426
+ company_id=company_id,
1427
+ module="UNIQUE_AI", # Optional - filter models by module, only UNIQUE_AI is supported right now
1428
+ )
1429
+ ```
1430
+
1431
+ ### User
1432
+
1433
+ #### `unique_sdk.User.get_users` (Compatible with release >.48)
1434
+
1435
+ Get users in a company. You can filter by email, display name, and use pagination with skip and take parameters.
1436
+
1437
+ ```python
1438
+ users = unique_sdk.User.get_users(
1439
+ user_id=user_id,
1440
+ company_id=company_id,
1441
+ skip=0, # Optional - number of records to skip for pagination
1442
+ take=50, # Optional - number of records to return (max 1000)
1443
+ email="user@example.com", # Optional - filter by email
1444
+ displayName="John", # Optional - filter by display name
1445
+ )
1446
+ ```
1447
+
1374
1448
  ### Agentic Table
1375
1449
 
1376
1450
  The Agentic Table (Magic Table) API provides functionality for managing interactive tables with AI-powered cells, activity tracking, and metadata management.
@@ -1976,6 +2050,27 @@ All notable changes to this project will be documented in this file.
1976
2050
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1977
2051
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
1978
2052
 
2053
+ ## [0.10.42] - 2025-11-14
2054
+ - Add get_users function.
2055
+
2056
+ ## [0.10.41] - 2025-11-13
2057
+ - Add create_message and get_latest_message.
2058
+
2059
+ ## [0.10.40] - 2025-11-10
2060
+ - Don't send description if not defined.
2061
+
2062
+ ## [0.10.39] - 2025-11-07
2063
+ - Add function to get llm models
2064
+
2065
+ ## [0.10.38] - 2025-11-06
2066
+ - Add description property to Reference and Content.
2067
+
2068
+ ## [0.10.37] - 2025-11-04
2069
+ - Introduce local integration tests for Content API Resource
2070
+
2071
+ ## [0.10.36] - 2025-11-04
2072
+ - Introduce local integration tests for Folder API Resource
2073
+
1979
2074
  ## [0.10.35] - 2025-11-04
1980
2075
  - Inmprove folder get infos types.
1981
2076
 
@@ -1,4 +1,4 @@
1
- unique_sdk/__init__.py,sha256=iSHCv4LojvIth8YnDhlHvCH6MqeIa3ZQUMFdwj0ipyY,4017
1
+ unique_sdk/__init__.py,sha256=nBscz8qGKhZxUDUM43h4hfTjWZ_IWSswNo6bQ1K0TMs,4145
2
2
  unique_sdk/_api_requestor.py,sha256=i4gCpzx8zP95sv-AhJfpQxKvWR0U-I6lclHyV55RPtg,14397
3
3
  unique_sdk/_api_resource.py,sha256=ytjomI-IVJwsbvdPyuZCfF-bl-Abgf66bu1D34YxCu8,6244
4
4
  unique_sdk/_api_version.py,sha256=Ku4JPdeyJtnX5eJJvRCEc1_u44UObdVrvrL1T-WwWCs,46
@@ -17,26 +17,28 @@ unique_sdk/api_resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
17
17
  unique_sdk/api_resources/_acronyms.py,sha256=GIU1XH1flGWQYcpsFqTYwg4ioIGxVmb15tux84nmhEg,891
18
18
  unique_sdk/api_resources/_agentic_table.py,sha256=8-_f7t-m_iiiOj2835iESoxz91YRxl4-tkxpzQbgdcI,9958
19
19
  unique_sdk/api_resources/_chat_completion.py,sha256=ILCAffxkbkfh2iV9L4KKnfe80gZmT9pWfkNmf3mq68U,2172
20
- unique_sdk/api_resources/_content.py,sha256=brgl1dqbOTpRK_Q-hj6j2m4mJ66qhcjSZOWgmpup_eQ,17117
20
+ unique_sdk/api_resources/_content.py,sha256=Z7BU2bw1qULnn-UBX0f6ix_XV0qI1yaRH6zOSgtMvho,17514
21
21
  unique_sdk/api_resources/_embedding.py,sha256=C6qak7cCUBMBINfPhgH8taCJZ9n6w1MUElqDJJ8dG10,1281
22
22
  unique_sdk/api_resources/_event.py,sha256=bpWF9vstdoAWbUzr-iiGP713ceP0zPk77GJXiImf9zg,374
23
- unique_sdk/api_resources/_folder.py,sha256=Auz1QRhZUFUGy2SqGHLPr9o9-RlyVr63T4KZsePk8ZQ,15787
23
+ unique_sdk/api_resources/_folder.py,sha256=WPyRPsdAE62tU7p4hEYiVB4OoArv_60b8t4j7hgrJKk,15765
24
24
  unique_sdk/api_resources/_integrated.py,sha256=O8e673z-RB7FRFMQYn_YEuHijebr5W7KJxkUnymbBZk,6164
25
+ unique_sdk/api_resources/_llm_models.py,sha256=3Jn6MpxWgZ43Hze8JHd4_n27si5xmwd3JE8r8cEZq_M,1640
25
26
  unique_sdk/api_resources/_mcp.py,sha256=zKh0dyn0QnkKk57N2zlGVN_GQoxEp5T2CS38vVm6jQY,3341
26
- unique_sdk/api_resources/_message.py,sha256=WgdvVS6Gx3gXGlaSlCjE-qrlj3SbkF--EFG7HiSp6cM,9282
27
+ unique_sdk/api_resources/_message.py,sha256=tSS_jVwoAffBFH6RSClEnbRf48MleL7RMs3MnbNDq-E,10986
27
28
  unique_sdk/api_resources/_message_assessment.py,sha256=SSfx6eW7zb_GKe8cFJzCqW-t-_eWEXxKP5cnIb0DhIc,2276
28
29
  unique_sdk/api_resources/_message_execution.py,sha256=7V_Qovu4vzoXDd2em0AgnAJC460RUX6AE4byztNPlvg,4556
29
- unique_sdk/api_resources/_message_log.py,sha256=vmNyXlgfALONNrhGi0qFpUWalcKxH6OkVoBSmJbsL2k,3658
30
+ unique_sdk/api_resources/_message_log.py,sha256=_DifZ4Di7uKyzkP0i8rwu5IIiYZPCBp5lvE4gfTrTHw,4793
30
31
  unique_sdk/api_resources/_search.py,sha256=GQItZKoGNOVZfkLLltBmsRZYBIreRKU0lGW8Kgpj1_Q,1959
31
32
  unique_sdk/api_resources/_search_string.py,sha256=LZz2_QPZXV1NXucRR06dnDC2miK7J8XBY7dXX2xoDY4,1610
32
33
  unique_sdk/api_resources/_short_term_memory.py,sha256=vPRN-Y0WPx74E6y-A3LocGc0TxJdzT-xGL66WzZwKRg,2820
33
- unique_sdk/api_resources/_space.py,sha256=J7rS7Y62QQ7r_VpGLVb3UdhPtu9FxgrY2c515uxaypc,4994
34
+ unique_sdk/api_resources/_space.py,sha256=JjIPauH37wULEiNO5PqOfgsipyfbRlC0KqjJ4_1Uugg,5035
35
+ unique_sdk/api_resources/_user.py,sha256=u59Hgq9i-QhYlqIYgk-KE7OeSx5xuNVo_gUgDpZTLcI,1974
34
36
  unique_sdk/utils/chat_history.py,sha256=5UqL9hF1O9pV7skbNOlEibF5rHdYsmG3m5-YEPUowOs,3037
35
37
  unique_sdk/utils/chat_in_space.py,sha256=cdjETBLnjv-OE8qsQpm626ks5yBdfQG_KBeG0WIzCbY,5994
36
- unique_sdk/utils/file_io.py,sha256=sJS-dJLjogG65mLukDO9pGDpKVTP4LhIgiZASnCvjNI,4330
38
+ unique_sdk/utils/file_io.py,sha256=lskRULIh7qExK26o_1YqRs0f5mqJHTS9m_mdxlsVo4s,4497
37
39
  unique_sdk/utils/sources.py,sha256=DoxxhMLcLhmDfNarjXa41H4JD2GSSDywr71hiC-4pYc,4952
38
40
  unique_sdk/utils/token.py,sha256=AzKuAA1AwBtnvSFxGcsHLpxXr_wWE5Mj4jYBbOz2ljA,1740
39
- unique_sdk-0.10.35.dist-info/LICENSE,sha256=EJCWoHgrXVBUb47PnjeV4MFIEOR71MAdCOIgv61J-4k,1065
40
- unique_sdk-0.10.35.dist-info/METADATA,sha256=iUNYFvNxF9om3x1xocvzhSLCSeHSpgAHmTuj08y3Kac,67942
41
- unique_sdk-0.10.35.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
42
- unique_sdk-0.10.35.dist-info/RECORD,,
41
+ unique_sdk-0.10.42.dist-info/LICENSE,sha256=EJCWoHgrXVBUb47PnjeV4MFIEOR71MAdCOIgv61J-4k,1065
42
+ unique_sdk-0.10.42.dist-info/METADATA,sha256=hZwJdmI3RPTLRNJgAcPH0kedZuEo1pMK-7zfNpe0uvs,70570
43
+ unique_sdk-0.10.42.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
44
+ unique_sdk-0.10.42.dist-info/RECORD,,