unique_sdk 0.10.19__py3-none-any.whl → 0.10.71__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.

Potentially problematic release.


This version of unique_sdk might be problematic. Click here for more details.

@@ -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
 
@@ -45,10 +47,14 @@ class Message(APIResource["Message"]):
45
47
 
46
48
  class ModifyParams(RequestOptions):
47
49
  chatId: str
50
+ originalText: NotRequired[str | None]
48
51
  text: NotRequired[Optional["str"]]
49
- references: Optional[List["Message.Reference"]]
50
- debugInfo: Optional[Dict[str, Any]]
51
- completedAt: Optional[datetime]
52
+ references: NotRequired[List["Message.Reference"] | None]
53
+ gptRequest: NotRequired[Dict[str, Any] | None]
54
+ debugInfo: NotRequired[Dict[str, Any] | None]
55
+ startedStreamingAt: NotRequired[datetime | None]
56
+ stoppedStreamingAt: NotRequired[datetime | None]
57
+ completedAt: NotRequired[datetime | None]
52
58
 
53
59
  class DeleteParams(RequestOptions):
54
60
  chatId: str
@@ -59,11 +65,16 @@ class Message(APIResource["Message"]):
59
65
  class RetrieveParams(RequestOptions):
60
66
  chatId: str
61
67
 
68
+ class CreateEventParams(ModifyParams):
69
+ messageId: str
70
+
62
71
  chatId: str
63
72
  text: Optional[str]
64
73
  role: Literal["SYSTEM", "USER", "ASSISTANT"]
65
74
  gptRequest: Optional[Dict[str, Any]]
66
75
  debugInfo: Optional[Dict[str, Any]]
76
+ startedStreamingAt: Optional[datetime]
77
+ stoppedStreamingAt: Optional[datetime]
67
78
 
68
79
  @classmethod
69
80
  def list(
@@ -155,6 +166,12 @@ class Message(APIResource["Message"]):
155
166
  """
156
167
  Creates a new message object.
157
168
  """
169
+ # Clean up empty descriptions from references
170
+ if "references" in params and params["references"]:
171
+ for ref in params["references"]:
172
+ if "description" in ref and not ref["description"]:
173
+ ref.pop("description")
174
+
158
175
  return cast(
159
176
  "Message",
160
177
  cls._static_request(
@@ -176,6 +193,12 @@ class Message(APIResource["Message"]):
176
193
  """
177
194
  Creates a new message object.
178
195
  """
196
+ # Clean up empty descriptions from references
197
+ if "references" in params and params["references"]:
198
+ for ref in params["references"]:
199
+ if "description" in ref and not ref["description"]:
200
+ ref.pop("description")
201
+
179
202
  return cast(
180
203
  "Message",
181
204
  await cls._static_request_async(
@@ -198,6 +221,12 @@ class Message(APIResource["Message"]):
198
221
  """
199
222
  Updates an existing message object.
200
223
  """
224
+ # Clean up empty descriptions from references
225
+ if "references" in params and params["references"]:
226
+ for ref in params["references"]:
227
+ if "description" in ref and not ref["description"]:
228
+ ref.pop("description")
229
+
201
230
  url = "%s/%s" % (cls.class_url(), quote_plus(id))
202
231
  return cast(
203
232
  "Message",
@@ -221,6 +250,12 @@ class Message(APIResource["Message"]):
221
250
  """
222
251
  Updates an existing message object.
223
252
  """
253
+ # Clean up empty descriptions from references
254
+ if "references" in params and params["references"]:
255
+ for ref in params["references"]:
256
+ if "description" in ref and not ref["description"]:
257
+ ref.pop("description")
258
+
224
259
  url = "%s/%s" % (cls.class_url(), quote_plus(id))
225
260
  return cast(
226
261
  "Message",
@@ -303,3 +338,61 @@ class Message(APIResource["Message"]):
303
338
  company_id,
304
339
  params=params,
305
340
  )
341
+
342
+ @classmethod
343
+ def create_event(
344
+ cls,
345
+ user_id: str,
346
+ company_id: str,
347
+ **params: Unpack["Message.CreateEventParams"],
348
+ ) -> "Message":
349
+ """
350
+ Creates a new message event object.
351
+ """
352
+ # Clean up empty descriptions from references
353
+ if "references" in params and params["references"]:
354
+ for ref in params["references"]:
355
+ if "description" in ref and not ref["description"]:
356
+ ref.pop("description")
357
+
358
+ message_id = params.get("messageId")
359
+ params.pop("messageId", None)
360
+ return cast(
361
+ "Message",
362
+ cls._static_request(
363
+ "post",
364
+ f"{cls.class_url()}/{message_id}/event",
365
+ user_id,
366
+ company_id,
367
+ params,
368
+ ),
369
+ )
370
+
371
+ @classmethod
372
+ async def create_event_async(
373
+ cls,
374
+ user_id: str,
375
+ company_id: str,
376
+ **params: Unpack["Message.CreateEventParams"],
377
+ ) -> "Message":
378
+ """
379
+ Creates a new message event object.
380
+ """
381
+ # Clean up empty descriptions from references
382
+ if "references" in params and params["references"]:
383
+ for ref in params["references"]:
384
+ if "description" in ref and not ref["description"]:
385
+ ref.pop("description")
386
+
387
+ message_id = params.get("messageId")
388
+ params.pop("messageId", None)
389
+ return cast(
390
+ "Message",
391
+ await cls._static_request_async(
392
+ "post",
393
+ f"{cls.class_url()}/{message_id}/event",
394
+ user_id,
395
+ company_id,
396
+ params,
397
+ ),
398
+ )
@@ -1,4 +1,4 @@
1
- from typing import ClassVar, Literal, Unpack, cast
1
+ from typing import ClassVar, Literal, NotRequired, Unpack, cast
2
2
 
3
3
  from unique_sdk._api_resource import APIResource
4
4
  from unique_sdk._request_options import RequestOptions
@@ -8,16 +8,21 @@ class MessageExecution(APIResource["MessageExecution"]):
8
8
  OBJECT_NAME: ClassVar[Literal["message_execution"]] = "message_execution"
9
9
  RESOURCE_URL = "/message-execution"
10
10
 
11
+ TypeLiteral = Literal["DEEP_RESEARCH"]
12
+ StatusLiteral = Literal["PENDING", "RUNNING", "COMPLETED", "FAILED"]
13
+ # Only COMPLETED and FAILED statuses are allowed for update
14
+ UpdateStatusLiteral = Literal["COMPLETED", "FAILED"]
15
+
11
16
  class CreateMessageExecutionParams(RequestOptions):
12
17
  """
13
18
  Parameters for creating a message execution.
14
19
  """
15
20
 
16
21
  messageId: str
17
- chatId: str
18
- type: Literal["DEEP_RESEARCH"] = "DEEP_RESEARCH"
19
- secondsRemaining: int | None = None
20
- percentageCompleted: int | None = None
22
+ type: "MessageExecution.TypeLiteral"
23
+ isQueueable: NotRequired[bool | None]
24
+ executionOptions: NotRequired[dict | None]
25
+ progressTitle: NotRequired[str | None]
21
26
 
22
27
  class GetMessageExecutionParams(RequestOptions):
23
28
  """
@@ -32,18 +37,23 @@ class MessageExecution(APIResource["MessageExecution"]):
32
37
  """
33
38
 
34
39
  messageId: str
35
- status: Literal["COMPLETED", "FAILED"]
36
- secondsRemaining: int | None = None
37
- percentageCompleted: int | None = None
38
-
39
- messageExecutionId: str | None
40
- messageId: str | None
41
- status: Literal["PENDING", "RUNNING", "COMPLETED", "FAILED"]
42
- type: Literal["DEEP_RESEARCH"] = "DEEP_RESEARCH"
40
+ status: NotRequired["MessageExecution.UpdateStatusLiteral | None"]
41
+ secondsRemaining: NotRequired[int | None]
42
+ percentageCompleted: NotRequired[int | None]
43
+ progressTitle: NotRequired[str | None]
44
+
45
+ id: str
46
+ messageId: str
47
+ status: "MessageExecution.StatusLiteral"
48
+ type: "MessageExecution.TypeLiteral"
43
49
  secondsRemaining: int | None
44
50
  percentageCompleted: int | None
51
+ isQueueable: bool
52
+ executionOptions: dict | None
53
+ progressTitle: str | None
54
+ positionInQueue: int | None
45
55
  createdAt: str
46
- updatedAt: str | None
56
+ updatedAt: str
47
57
 
48
58
  @classmethod
49
59
  def create(
@@ -1,4 +1,4 @@
1
- from typing import ClassVar, Literal, 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
@@ -8,11 +8,14 @@ class MessageLog(APIResource["MessageLog"]):
8
8
  OBJECT_NAME: ClassVar[Literal["message_log"]] = "message_log"
9
9
  RESOURCE_URL = "/message-log"
10
10
 
11
+ StatusLiteral = Literal["RUNNING", "COMPLETED", "FAILED"]
12
+
11
13
  class Reference(TypedDict):
12
14
  name: str
13
- url: str | None
15
+ description: Optional[str]
16
+ url: Optional[str]
14
17
  sequenceNumber: int
15
- originalIndex: list[int] | None
18
+ originalIndex: Optional[list[int]]
16
19
  sourceId: str
17
20
  source: str
18
21
 
@@ -23,33 +26,33 @@ class MessageLog(APIResource["MessageLog"]):
23
26
 
24
27
  messageId: str
25
28
  text: str
26
- status: Literal["RUNNING", "COMPLETED", "FAILED"]
29
+ status: "MessageLog.StatusLiteral"
27
30
  order: int
28
- details: dict | None = None
29
- uncitedReferences: dict | None = None
30
- references: list["MessageLog.Reference"] | None = None
31
+ details: NotRequired[dict | None]
32
+ uncitedReferences: NotRequired[dict | None]
33
+ references: NotRequired[list["MessageLog.Reference"] | None]
31
34
 
32
35
  class UpdateMessageLogParams(RequestOptions):
33
36
  """
34
37
  Parameters for updating a message log.
35
38
  """
36
39
 
37
- text: str | None
38
- status: Literal["RUNNING", "COMPLETED", "FAILED"] | None
39
- order: int
40
- details: dict | None = None
41
- uncitedReferences: dict | None = None
42
- references: list["MessageLog.Reference"] | None = None
43
-
44
- messageLogId: str | None
45
- messageId: str | None
46
- status: Literal["RUNNING", "COMPLETED", "FAILED"]
47
- text: str | None
40
+ text: NotRequired[str | None]
41
+ status: NotRequired["MessageLog.StatusLiteral | None"]
42
+ order: NotRequired[int | None]
43
+ details: NotRequired[dict | None]
44
+ uncitedReferences: NotRequired[dict | None]
45
+ references: NotRequired[list["MessageLog.Reference"] | None]
46
+
47
+ id: str
48
+ messageId: str
49
+ status: "MessageLog.StatusLiteral"
50
+ text: str
48
51
  details: dict
49
52
  uncitedReferences: dict
50
53
  order: int
51
54
  createdAt: str
52
- updatedAt: str | None
55
+ updatedAt: str
53
56
 
54
57
  @classmethod
55
58
  def create(
@@ -61,6 +64,12 @@ class MessageLog(APIResource["MessageLog"]):
61
64
  """
62
65
  Create a MessageLog.
63
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
+
64
73
  return cast(
65
74
  "MessageLog",
66
75
  cls._static_request(
@@ -82,6 +91,12 @@ class MessageLog(APIResource["MessageLog"]):
82
91
  """
83
92
  Async create a MessageLog.
84
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
+
85
100
  return cast(
86
101
  "MessageLog",
87
102
  await cls._static_request_async(
@@ -104,6 +119,12 @@ class MessageLog(APIResource["MessageLog"]):
104
119
  """
105
120
  Update a MessageLog.
106
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
+
107
128
  return cast(
108
129
  "MessageLog",
109
130
  cls._static_request(
@@ -126,6 +147,12 @@ class MessageLog(APIResource["MessageLog"]):
126
147
  """
127
148
  Async update a MessageLog.
128
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
+
129
156
  return cast(
130
157
  "MessageLog",
131
158
  await cls._static_request_async(
@@ -23,7 +23,6 @@ class SearchString(APIResource["SearchString"]):
23
23
  "AZURE_GPT_4_0613",
24
24
  "AZURE_GPT_4_32K_0613",
25
25
  "AZURE_GPT_4_TURBO_1106",
26
- "AZURE_GPT_35_TURBO_INSTRUCT_0914",
27
26
  ]
28
27
  ]
29
28