syllable-sdk 0.40.9__py3-none-any.whl → 0.41.1__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.
syllable_sdk/_version.py CHANGED
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "syllable-sdk"
6
- __version__: str = "0.40.9"
6
+ __version__: str = "0.41.1"
7
7
  __openapi_doc_version__: str = "0.0.2"
8
- __gen_version__: str = "2.731.6"
9
- __user_agent__: str = "speakeasy-sdk/python 0.40.9 2.731.6 0.0.2 syllable-sdk"
8
+ __gen_version__: str = "2.739.1"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.41.1 2.739.1 0.0.2 syllable-sdk"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
syllable_sdk/directory.py CHANGED
@@ -609,8 +609,8 @@ class Directory(BaseSDK):
609
609
  self,
610
610
  *,
611
611
  member_id: int,
612
- directory_member: Union[
613
- models.DirectoryMember, models.DirectoryMemberTypedDict
612
+ directory_member_update: Union[
613
+ models.DirectoryMemberUpdate, models.DirectoryMemberUpdateTypedDict
614
614
  ],
615
615
  retries: OptionalNullable[utils.RetryConfig] = UNSET,
616
616
  server_url: Optional[str] = None,
@@ -622,7 +622,7 @@ class Directory(BaseSDK):
622
622
  Update a DirectoryMember.
623
623
 
624
624
  :param member_id:
625
- :param directory_member:
625
+ :param directory_member_update:
626
626
  :param retries: Override the default retry configuration for this method
627
627
  :param server_url: Override the default server URL for this method
628
628
  :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -640,8 +640,8 @@ class Directory(BaseSDK):
640
640
 
641
641
  request = models.DirectoryMemberUpdateRequest(
642
642
  member_id=member_id,
643
- directory_member=utils.get_pydantic_model(
644
- directory_member, models.DirectoryMember
643
+ directory_member_update=utils.get_pydantic_model(
644
+ directory_member_update, models.DirectoryMemberUpdate
645
645
  ),
646
646
  )
647
647
 
@@ -659,7 +659,11 @@ class Directory(BaseSDK):
659
659
  http_headers=http_headers,
660
660
  security=self.sdk_configuration.security,
661
661
  get_serialized_body=lambda: utils.serialize_request_body(
662
- request.directory_member, False, False, "json", models.DirectoryMember
662
+ request.directory_member_update,
663
+ False,
664
+ False,
665
+ "json",
666
+ models.DirectoryMemberUpdate,
663
667
  ),
664
668
  timeout_ms=timeout_ms,
665
669
  )
@@ -708,8 +712,8 @@ class Directory(BaseSDK):
708
712
  self,
709
713
  *,
710
714
  member_id: int,
711
- directory_member: Union[
712
- models.DirectoryMember, models.DirectoryMemberTypedDict
715
+ directory_member_update: Union[
716
+ models.DirectoryMemberUpdate, models.DirectoryMemberUpdateTypedDict
713
717
  ],
714
718
  retries: OptionalNullable[utils.RetryConfig] = UNSET,
715
719
  server_url: Optional[str] = None,
@@ -721,7 +725,7 @@ class Directory(BaseSDK):
721
725
  Update a DirectoryMember.
722
726
 
723
727
  :param member_id:
724
- :param directory_member:
728
+ :param directory_member_update:
725
729
  :param retries: Override the default retry configuration for this method
726
730
  :param server_url: Override the default server URL for this method
727
731
  :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
@@ -739,8 +743,8 @@ class Directory(BaseSDK):
739
743
 
740
744
  request = models.DirectoryMemberUpdateRequest(
741
745
  member_id=member_id,
742
- directory_member=utils.get_pydantic_model(
743
- directory_member, models.DirectoryMember
746
+ directory_member_update=utils.get_pydantic_model(
747
+ directory_member_update, models.DirectoryMemberUpdate
744
748
  ),
745
749
  )
746
750
 
@@ -758,7 +762,11 @@ class Directory(BaseSDK):
758
762
  http_headers=http_headers,
759
763
  security=self.sdk_configuration.security,
760
764
  get_serialized_body=lambda: utils.serialize_request_body(
761
- request.directory_member, False, False, "json", models.DirectoryMember
765
+ request.directory_member_update,
766
+ False,
767
+ False,
768
+ "json",
769
+ models.DirectoryMemberUpdate,
762
770
  ),
763
771
  timeout_ms=timeout_ms,
764
772
  )
@@ -186,6 +186,7 @@ if TYPE_CHECKING:
186
186
  CustomMessageUpdateRequest,
187
187
  CustomMessageUpdateRequestTypedDict,
188
188
  )
189
+ from .daotoolresponse import DaoToolResponse, DaoToolResponseTypedDict
189
190
  from .dashboard import Dashboard, DashboardTypedDict
190
191
  from .dashboardproperties import DashboardProperties
191
192
  from .dashboardresponse import DashboardResponse, DashboardResponseTypedDict
@@ -263,6 +264,10 @@ if TYPE_CHECKING:
263
264
  DirectoryMemberTestResponse,
264
265
  DirectoryMemberTestResponseTypedDict,
265
266
  )
267
+ from .directorymemberupdate import (
268
+ DirectoryMemberUpdate,
269
+ DirectoryMemberUpdateTypedDict,
270
+ )
266
271
  from .event import Attributes, AttributesTypedDict, Event, EventTypedDict
267
272
  from .eventproperties import EventProperties
268
273
  from .events_listop import EventsListRequest, EventsListRequestTypedDict
@@ -1061,6 +1066,8 @@ __all__ = [
1061
1066
  "CustomMessagesDeleteRequestTypedDict",
1062
1067
  "CustomMessagesListRequest",
1063
1068
  "CustomMessagesListRequestTypedDict",
1069
+ "DaoToolResponse",
1070
+ "DaoToolResponseTypedDict",
1064
1071
  "Dashboard",
1065
1072
  "DashboardProperties",
1066
1073
  "DashboardResponse",
@@ -1113,8 +1120,10 @@ __all__ = [
1113
1120
  "DirectoryMemberTestResponse",
1114
1121
  "DirectoryMemberTestResponseTypedDict",
1115
1122
  "DirectoryMemberTypedDict",
1123
+ "DirectoryMemberUpdate",
1116
1124
  "DirectoryMemberUpdateRequest",
1117
1125
  "DirectoryMemberUpdateRequestTypedDict",
1126
+ "DirectoryMemberUpdateTypedDict",
1118
1127
  "Event",
1119
1128
  "EventProperties",
1120
1129
  "EventTypedDict",
@@ -1701,6 +1710,8 @@ _dynamic_imports: dict[str, str] = {
1701
1710
  "CustomMessageRuleTypedDict": ".custommessagerule",
1702
1711
  "CustomMessageUpdateRequest": ".custommessageupdaterequest",
1703
1712
  "CustomMessageUpdateRequestTypedDict": ".custommessageupdaterequest",
1713
+ "DaoToolResponse": ".daotoolresponse",
1714
+ "DaoToolResponseTypedDict": ".daotoolresponse",
1704
1715
  "Dashboard": ".dashboard",
1705
1716
  "DashboardTypedDict": ".dashboard",
1706
1717
  "DashboardProperties": ".dashboardproperties",
@@ -1753,6 +1764,8 @@ _dynamic_imports: dict[str, str] = {
1753
1764
  "DirectoryMemberProperties": ".directorymemberproperties",
1754
1765
  "DirectoryMemberTestResponse": ".directorymembertestresponse",
1755
1766
  "DirectoryMemberTestResponseTypedDict": ".directorymembertestresponse",
1767
+ "DirectoryMemberUpdate": ".directorymemberupdate",
1768
+ "DirectoryMemberUpdateTypedDict": ".directorymemberupdate",
1756
1769
  "Attributes": ".event",
1757
1770
  "AttributesTypedDict": ".event",
1758
1771
  "Event": ".event",
@@ -0,0 +1,112 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .toolagentinfo import ToolAgentInfo, ToolAgentInfoTypedDict
5
+ from .tooldefinition import ToolDefinition, ToolDefinitionTypedDict
6
+ from .toolpromptinfo import ToolPromptInfo, ToolPromptInfoTypedDict
7
+ from datetime import datetime
8
+ from pydantic import model_serializer
9
+ from syllable_sdk.types import (
10
+ BaseModel,
11
+ Nullable,
12
+ OptionalNullable,
13
+ UNSET,
14
+ UNSET_SENTINEL,
15
+ )
16
+ from typing import List
17
+ from typing_extensions import NotRequired, TypedDict
18
+
19
+
20
+ class DaoToolResponseTypedDict(TypedDict):
21
+ name: str
22
+ r"""The name of the tool"""
23
+ definition: ToolDefinitionTypedDict
24
+ r"""A tool that can be called from an LLM during the conversation. See https://docs.syllable.ai/Resources/Tools."""
25
+ service_id: int
26
+ r"""Internal ID of the service to which the tool belongs"""
27
+ id: int
28
+ r"""The internal ID of the tool"""
29
+ last_updated: datetime
30
+ r"""The timestamp of the most recent update to the tool"""
31
+ last_updated_by: str
32
+ r"""The email of the user who last updated the tool"""
33
+ last_updated_comments: NotRequired[Nullable[str]]
34
+ r"""Comments for the most recent edit to the tool."""
35
+ service_name: NotRequired[Nullable[str]]
36
+ r"""The name of the service to which the tool belongs"""
37
+ prompts_info: NotRequired[Nullable[List[ToolPromptInfoTypedDict]]]
38
+ r"""IDs and names of the prompts linked to the tool"""
39
+ agents_info: NotRequired[Nullable[List[ToolAgentInfoTypedDict]]]
40
+ r"""IDs and names of the agents linked to the tool via a prompt"""
41
+
42
+
43
+ class DaoToolResponse(BaseModel):
44
+ name: str
45
+ r"""The name of the tool"""
46
+
47
+ definition: ToolDefinition
48
+ r"""A tool that can be called from an LLM during the conversation. See https://docs.syllable.ai/Resources/Tools."""
49
+
50
+ service_id: int
51
+ r"""Internal ID of the service to which the tool belongs"""
52
+
53
+ id: int
54
+ r"""The internal ID of the tool"""
55
+
56
+ last_updated: datetime
57
+ r"""The timestamp of the most recent update to the tool"""
58
+
59
+ last_updated_by: str
60
+ r"""The email of the user who last updated the tool"""
61
+
62
+ last_updated_comments: OptionalNullable[str] = UNSET
63
+ r"""Comments for the most recent edit to the tool."""
64
+
65
+ service_name: OptionalNullable[str] = UNSET
66
+ r"""The name of the service to which the tool belongs"""
67
+
68
+ prompts_info: OptionalNullable[List[ToolPromptInfo]] = UNSET
69
+ r"""IDs and names of the prompts linked to the tool"""
70
+
71
+ agents_info: OptionalNullable[List[ToolAgentInfo]] = UNSET
72
+ r"""IDs and names of the agents linked to the tool via a prompt"""
73
+
74
+ @model_serializer(mode="wrap")
75
+ def serialize_model(self, handler):
76
+ optional_fields = [
77
+ "last_updated_comments",
78
+ "service_name",
79
+ "prompts_info",
80
+ "agents_info",
81
+ ]
82
+ nullable_fields = [
83
+ "last_updated_comments",
84
+ "service_name",
85
+ "prompts_info",
86
+ "agents_info",
87
+ ]
88
+ null_default_fields = []
89
+
90
+ serialized = handler(self)
91
+
92
+ m = {}
93
+
94
+ for n, f in type(self).model_fields.items():
95
+ k = f.alias or n
96
+ val = serialized.get(k)
97
+ serialized.pop(k, None)
98
+
99
+ optional_nullable = k in optional_fields and k in nullable_fields
100
+ is_set = (
101
+ self.__pydantic_fields_set__.intersection({n})
102
+ or k in null_default_fields
103
+ ) # pylint: disable=no-member
104
+
105
+ if val is not None and val != UNSET_SENTINEL:
106
+ m[k] = val
107
+ elif val != UNSET_SENTINEL and (
108
+ not k in optional_fields or (optional_nullable and is_set)
109
+ ):
110
+ m[k] = val
111
+
112
+ return m
@@ -1,7 +1,7 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from .directorymember import DirectoryMember, DirectoryMemberTypedDict
4
+ from .directorymemberupdate import DirectoryMemberUpdate, DirectoryMemberUpdateTypedDict
5
5
  from syllable_sdk.types import BaseModel
6
6
  from syllable_sdk.utils import FieldMetadata, PathParamMetadata, RequestMetadata
7
7
  from typing_extensions import Annotated, TypedDict
@@ -9,7 +9,7 @@ from typing_extensions import Annotated, TypedDict
9
9
 
10
10
  class DirectoryMemberUpdateRequestTypedDict(TypedDict):
11
11
  member_id: int
12
- directory_member: DirectoryMemberTypedDict
12
+ directory_member_update: DirectoryMemberUpdateTypedDict
13
13
 
14
14
 
15
15
  class DirectoryMemberUpdateRequest(BaseModel):
@@ -17,7 +17,7 @@ class DirectoryMemberUpdateRequest(BaseModel):
17
17
  int, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
18
18
  ]
19
19
 
20
- directory_member: Annotated[
21
- DirectoryMember,
20
+ directory_member_update: Annotated[
21
+ DirectoryMemberUpdate,
22
22
  FieldMetadata(request=RequestMetadata(media_type="application/json")),
23
23
  ]
@@ -22,14 +22,14 @@ class DirectoryMemberTypedDict(TypedDict):
22
22
  r"""Name of the directory member"""
23
23
  type: str
24
24
  r"""Type of the directory member"""
25
+ id: int
26
+ r"""Internal ID of the directory member"""
27
+ updated_at: datetime
28
+ r"""Timestamp of most recent update"""
25
29
  extensions: NotRequired[Nullable[List[DirectoryExtensionTypedDict]]]
26
30
  r"""List of extensions for the directory member"""
27
31
  contact_tags: NotRequired[Nullable[Dict[str, List[str]]]]
28
32
  r"""Tags for the directory member"""
29
- id: NotRequired[Nullable[int]]
30
- r"""Internal ID of the directory member"""
31
- updated_at: NotRequired[Nullable[datetime]]
32
- r"""Timestamp of most recent update"""
33
33
  last_updated_by: NotRequired[Nullable[str]]
34
34
  r"""Email of the user who last updated the directory member"""
35
35
 
@@ -43,37 +43,25 @@ class DirectoryMember(BaseModel):
43
43
  type: str
44
44
  r"""Type of the directory member"""
45
45
 
46
+ id: int
47
+ r"""Internal ID of the directory member"""
48
+
49
+ updated_at: datetime
50
+ r"""Timestamp of most recent update"""
51
+
46
52
  extensions: OptionalNullable[List[DirectoryExtension]] = UNSET
47
53
  r"""List of extensions for the directory member"""
48
54
 
49
55
  contact_tags: OptionalNullable[Dict[str, List[str]]] = UNSET
50
56
  r"""Tags for the directory member"""
51
57
 
52
- id: OptionalNullable[int] = UNSET
53
- r"""Internal ID of the directory member"""
54
-
55
- updated_at: OptionalNullable[datetime] = UNSET
56
- r"""Timestamp of most recent update"""
57
-
58
58
  last_updated_by: OptionalNullable[str] = UNSET
59
59
  r"""Email of the user who last updated the directory member"""
60
60
 
61
61
  @model_serializer(mode="wrap")
62
62
  def serialize_model(self, handler):
63
- optional_fields = [
64
- "extensions",
65
- "contact_tags",
66
- "id",
67
- "updated_at",
68
- "last_updated_by",
69
- ]
70
- nullable_fields = [
71
- "extensions",
72
- "contact_tags",
73
- "id",
74
- "updated_at",
75
- "last_updated_by",
76
- ]
63
+ optional_fields = ["extensions", "contact_tags", "last_updated_by"]
64
+ nullable_fields = ["extensions", "contact_tags", "last_updated_by"]
77
65
  null_default_fields = []
78
66
 
79
67
  serialized = handler(self)
@@ -0,0 +1,78 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .directoryextension import DirectoryExtension, DirectoryExtensionTypedDict
5
+ from pydantic import model_serializer
6
+ from syllable_sdk.types import (
7
+ BaseModel,
8
+ Nullable,
9
+ OptionalNullable,
10
+ UNSET,
11
+ UNSET_SENTINEL,
12
+ )
13
+ from typing import Dict, List
14
+ from typing_extensions import NotRequired, TypedDict
15
+
16
+
17
+ class DirectoryMemberUpdateTypedDict(TypedDict):
18
+ r"""Request model to update a directory member."""
19
+
20
+ name: str
21
+ r"""Name of the directory member"""
22
+ type: str
23
+ r"""Type of the directory member"""
24
+ id: int
25
+ r"""Internal ID of the directory member"""
26
+ extensions: NotRequired[Nullable[List[DirectoryExtensionTypedDict]]]
27
+ r"""List of extensions for the directory member"""
28
+ contact_tags: NotRequired[Nullable[Dict[str, List[str]]]]
29
+ r"""Tags for the directory member"""
30
+
31
+
32
+ class DirectoryMemberUpdate(BaseModel):
33
+ r"""Request model to update a directory member."""
34
+
35
+ name: str
36
+ r"""Name of the directory member"""
37
+
38
+ type: str
39
+ r"""Type of the directory member"""
40
+
41
+ id: int
42
+ r"""Internal ID of the directory member"""
43
+
44
+ extensions: OptionalNullable[List[DirectoryExtension]] = UNSET
45
+ r"""List of extensions for the directory member"""
46
+
47
+ contact_tags: OptionalNullable[Dict[str, List[str]]] = UNSET
48
+ r"""Tags for the directory member"""
49
+
50
+ @model_serializer(mode="wrap")
51
+ def serialize_model(self, handler):
52
+ optional_fields = ["extensions", "contact_tags"]
53
+ nullable_fields = ["extensions", "contact_tags"]
54
+ null_default_fields = []
55
+
56
+ serialized = handler(self)
57
+
58
+ m = {}
59
+
60
+ for n, f in type(self).model_fields.items():
61
+ k = f.alias or n
62
+ val = serialized.get(k)
63
+ serialized.pop(k, None)
64
+
65
+ optional_nullable = k in optional_fields and k in nullable_fields
66
+ is_set = (
67
+ self.__pydantic_fields_set__.intersection({n})
68
+ or k in null_default_fields
69
+ ) # pylint: disable=no-member
70
+
71
+ if val is not None and val != UNSET_SENTINEL:
72
+ m[k] = val
73
+ elif val != UNSET_SENTINEL and (
74
+ not k in optional_fields or (optional_nullable and is_set)
75
+ ):
76
+ m[k] = val
77
+
78
+ return m
@@ -31,6 +31,8 @@ class PromptCreateRequestTypedDict(TypedDict):
31
31
  r"""Names of tools to which the prompt has access"""
32
32
  session_end_enabled: NotRequired[bool]
33
33
  r"""Whether session end functionality is enabled for this prompt"""
34
+ session_end_tool_id: NotRequired[Nullable[int]]
35
+ r"""ID of the optional session end tool associated with the prompt"""
34
36
  edit_comments: NotRequired[Nullable[str]]
35
37
  r"""The comments for the most recent edit to the prompt"""
36
38
  include_default_tools: NotRequired[bool]
@@ -61,6 +63,9 @@ class PromptCreateRequest(BaseModel):
61
63
  session_end_enabled: Optional[bool] = False
62
64
  r"""Whether session end functionality is enabled for this prompt"""
63
65
 
66
+ session_end_tool_id: OptionalNullable[int] = UNSET
67
+ r"""ID of the optional session end tool associated with the prompt"""
68
+
64
69
  edit_comments: OptionalNullable[str] = UNSET
65
70
  r"""The comments for the most recent edit to the prompt"""
66
71
 
@@ -74,10 +79,16 @@ class PromptCreateRequest(BaseModel):
74
79
  "context",
75
80
  "tools",
76
81
  "session_end_enabled",
82
+ "session_end_tool_id",
77
83
  "edit_comments",
78
84
  "include_default_tools",
79
85
  ]
80
- nullable_fields = ["description", "context", "edit_comments"]
86
+ nullable_fields = [
87
+ "description",
88
+ "context",
89
+ "session_end_tool_id",
90
+ "edit_comments",
91
+ ]
81
92
  null_default_fields = []
82
93
 
83
94
  serialized = handler(self)
@@ -1,6 +1,7 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
+ from .daotoolresponse import DaoToolResponse, DaoToolResponseTypedDict
4
5
  from .promptllmconfig import PromptLlmConfig, PromptLlmConfigTypedDict
5
6
  from .toolresponse import ToolResponse, ToolResponseTypedDict
6
7
  import pydantic
@@ -42,10 +43,14 @@ class PromptResponseTypedDict(TypedDict):
42
43
  r"""Names of the tools to which the prompt has access (DEPRECATED - use information from full tools field instead)"""
43
44
  session_end_enabled: NotRequired[bool]
44
45
  r"""Whether session end functionality is enabled for this prompt"""
46
+ session_end_tool_id: NotRequired[Nullable[int]]
47
+ r"""ID of the optional session end tool associated with the prompt"""
45
48
  edit_comments: NotRequired[Nullable[str]]
46
49
  r"""The comments for the most recent edit to the prompt"""
47
50
  last_updated_by: NotRequired[Nullable[str]]
48
51
  r"""Email address of the user who most recently updated the prompt"""
52
+ session_end_tool: NotRequired[Nullable[DaoToolResponseTypedDict]]
53
+ r"""The session end tool associated with the prompt"""
49
54
  agent_count: NotRequired[Nullable[int]]
50
55
  r"""The number of agents using the prompt"""
51
56
  version_number: NotRequired[Nullable[int]]
@@ -94,12 +99,18 @@ class PromptResponse(BaseModel):
94
99
  session_end_enabled: Optional[bool] = False
95
100
  r"""Whether session end functionality is enabled for this prompt"""
96
101
 
102
+ session_end_tool_id: OptionalNullable[int] = UNSET
103
+ r"""ID of the optional session end tool associated with the prompt"""
104
+
97
105
  edit_comments: OptionalNullable[str] = UNSET
98
106
  r"""The comments for the most recent edit to the prompt"""
99
107
 
100
108
  last_updated_by: OptionalNullable[str] = UNSET
101
109
  r"""Email address of the user who most recently updated the prompt"""
102
110
 
111
+ session_end_tool: OptionalNullable[DaoToolResponse] = UNSET
112
+ r"""The session end tool associated with the prompt"""
113
+
103
114
  agent_count: OptionalNullable[int] = UNSET
104
115
  r"""The number of agents using the prompt"""
105
116
 
@@ -116,8 +127,10 @@ class PromptResponse(BaseModel):
116
127
  "context",
117
128
  "tools",
118
129
  "session_end_enabled",
130
+ "session_end_tool_id",
119
131
  "edit_comments",
120
132
  "last_updated_by",
133
+ "session_end_tool",
121
134
  "agent_count",
122
135
  "version_number",
123
136
  "tools_full",
@@ -125,9 +138,11 @@ class PromptResponse(BaseModel):
125
138
  nullable_fields = [
126
139
  "description",
127
140
  "context",
141
+ "session_end_tool_id",
128
142
  "edit_comments",
129
143
  "last_updated",
130
144
  "last_updated_by",
145
+ "session_end_tool",
131
146
  "agent_count",
132
147
  "version_number",
133
148
  "tools_full",
@@ -33,6 +33,8 @@ class PromptUpdateRequestTypedDict(TypedDict):
33
33
  r"""Names of tools to which the prompt has access"""
34
34
  session_end_enabled: NotRequired[bool]
35
35
  r"""Whether session end functionality is enabled for this prompt"""
36
+ session_end_tool_id: NotRequired[Nullable[int]]
37
+ r"""ID of the optional session end tool associated with the prompt"""
36
38
  edit_comments: NotRequired[Nullable[str]]
37
39
  r"""The comments for the most recent edit to the prompt"""
38
40
  include_default_tools: NotRequired[bool]
@@ -66,6 +68,9 @@ class PromptUpdateRequest(BaseModel):
66
68
  session_end_enabled: Optional[bool] = False
67
69
  r"""Whether session end functionality is enabled for this prompt"""
68
70
 
71
+ session_end_tool_id: OptionalNullable[int] = UNSET
72
+ r"""ID of the optional session end tool associated with the prompt"""
73
+
69
74
  edit_comments: OptionalNullable[str] = UNSET
70
75
  r"""The comments for the most recent edit to the prompt"""
71
76
 
@@ -79,10 +84,16 @@ class PromptUpdateRequest(BaseModel):
79
84
  "context",
80
85
  "tools",
81
86
  "session_end_enabled",
87
+ "session_end_tool_id",
82
88
  "edit_comments",
83
89
  "include_default_tools",
84
90
  ]
85
- nullable_fields = ["description", "context", "edit_comments"]
91
+ nullable_fields = [
92
+ "description",
93
+ "context",
94
+ "session_end_tool_id",
95
+ "edit_comments",
96
+ ]
86
97
  null_default_fields = []
87
98
 
88
99
  serialized = handler(self)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: syllable-sdk
3
- Version: 0.40.9
3
+ Version: 0.41.1
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Syllable
6
6
  Requires-Python: >=3.9.2
@@ -3,7 +3,7 @@ syllable_sdk/_hooks/__init__.py,sha256=9_7W5jAYw8rcO8Kfc-Ty-lB82BHfksAJJpVFb_UeU
3
3
  syllable_sdk/_hooks/registration.py,sha256=1QZB41w6If7I9dXiOSQx6dhSc6BPWrnI5Q5bMOr4iVA,624
4
4
  syllable_sdk/_hooks/sdkhooks.py,sha256=aRu2TMpxilLKDrG6EIy6uQd6IrBH7kaHOoVkd7GIcus,2562
5
5
  syllable_sdk/_hooks/types.py,sha256=uwJkn18g4_rLZhVtKdE6Ed5YcCjGWSqVgN9-PWqV7Ho,3053
6
- syllable_sdk/_version.py,sha256=NqTh_LfxRKH5cFVpkKjrcBVHEZGyFpUAJoyjqfKmieE,468
6
+ syllable_sdk/_version.py,sha256=Nlba4KWKj7VCMJFK22yBAAJ4Ur4ffneUGj0JT7w4eEQ,468
7
7
  syllable_sdk/agents.py,sha256=KV-3_nFZGBOQV0IAfjO3TFhorfr-PV6eeuTl6DL8AqI,46820
8
8
  syllable_sdk/basesdk.py,sha256=PCXez-bS_sOzXpRo7awDMzW4zqGJtktHytrlQfG1HNw,12211
9
9
  syllable_sdk/batches.py,sha256=I-mV5vzpM3BfO91NLmtwt-GKhrOjf351XWFLrdvIofU,73095
@@ -13,7 +13,7 @@ syllable_sdk/conversations.py,sha256=ghoxP8diGGzI19G2Lffr9v3XgQ_dbC-NibDOvwhaW00
13
13
  syllable_sdk/custom_messages.py,sha256=TFZWJEtt6obeBx7hMZUZkN7rsTlZzLABdS8UHblegU8,41327
14
14
  syllable_sdk/dashboards.py,sha256=db98Dq21VhsVWGKdpWePp5I6dwgQUkQaKRJHun5yVFI,45466
15
15
  syllable_sdk/data_sources.py,sha256=yQ26ikJElPq6HujNJ4_8971GxpFD0LH4kWi2vgKudSA,40929
16
- syllable_sdk/directory.py,sha256=ISsZyxUOrxwk0F_U8aGWdheo9Cl2flxf3caRDH5rprI,62629
16
+ syllable_sdk/directory.py,sha256=RK_Z_-vcFHUXfWdUPJ0ru_eL0uyZug_uJdlyNF1g7NQ,62877
17
17
  syllable_sdk/errors/__init__.py,sha256=b7YCOOsKA0VcV2bgdwU0w8lITftThPQ5QHX8sTisILk,2098
18
18
  syllable_sdk/errors/apierror.py,sha256=-LoYmnlQmN0_BBJU1vWCEvA3QDeag_x4lbw7u4R6pfk,1297
19
19
  syllable_sdk/errors/httpvalidationerror.py,sha256=ZsPoNUMwj4CdGcDRWmljjBmg_a9UkpoKSBFFylM9Pu0,906
@@ -29,7 +29,7 @@ syllable_sdk/insights_sdk.py,sha256=_RfPEqpJGTYpGv0kxID2YQb-EbbhZKc82VwlB4xDON4,
29
29
  syllable_sdk/insights_tools.py,sha256=CcOobBAVx2kS8fj4Qk6eoPanmVpEMK7oH9IFaijDlQs,55143
30
30
  syllable_sdk/language_groups.py,sha256=6x4_4TNhVaz-O50iT1hpDQGfoH1OZdIR0-lL4y5Psbg,51531
31
31
  syllable_sdk/latency.py,sha256=qJT16MmojZcxXD2-x5i27FplrB4O_fAN264LsHbHckg,7453
32
- syllable_sdk/models/__init__.py,sha256=qnJWpW-bZu_RMDQd2BaUqLauzlx6kLR4dusX_ee5x4I,96301
32
+ syllable_sdk/models/__init__.py,sha256=IO-o6wdU3f610vYFjZBURrwKxZ3-sghEFX8h58fVyhc,96830
33
33
  syllable_sdk/models/agent_deleteop.py,sha256=tUbi-gwd4chf2Ba9O9lCvqDQw6YOnn7aheu8OPDzptc,629
34
34
  syllable_sdk/models/agent_get_by_idop.py,sha256=vj_xEbhOv3c8n3-B3uQnfTwHWdxYSE4k3Zvr58Yc9A4,484
35
35
  syllable_sdk/models/agent_listop.py,sha256=dJdQuIst1TF4xMol9XVdX4xOw8z06jyAQpm46_u0Ysk,5007
@@ -97,6 +97,7 @@ syllable_sdk/models/custommessageproperties.py,sha256=d5QrfThosurEgPFUlZun168xmj
97
97
  syllable_sdk/models/custommessageresponse.py,sha256=WNXTV-Qv2zQ4sKUqjU2MbhwRA0dGjLSOHsB5CJma6zM,4258
98
98
  syllable_sdk/models/custommessagerule.py,sha256=w97jz-I-riDHSVmq1Qeu7nuW6V91heV0x60XSgGi56o,3280
99
99
  syllable_sdk/models/custommessageupdaterequest.py,sha256=4Hj63sregTQ7-VDLTqALlkUDM5J9yKLhe9ddFYgzLBI,2650
100
+ syllable_sdk/models/daotoolresponse.py,sha256=b0bVgo94XvjFgq-Ki5vr044zexGywNzNNbd_WtbunkE,3802
100
101
  syllable_sdk/models/dashboard.py,sha256=Q7Tji4r3VKAvrjPRE4NOyRsldyFLHXdie5hBODSdkMM,993
101
102
  syllable_sdk/models/dashboardproperties.py,sha256=JhuzlUJK4VHGWalpvKbZfu6LK-KcmP189BwubyfRhYk,362
102
103
  syllable_sdk/models/dashboardresponse.py,sha256=Bkdf84Y7gZ7kZRAsFQTdNpN-NBEz-P-Ll0tjAV4Otf4,927
@@ -119,13 +120,14 @@ syllable_sdk/models/directory_member_deleteop.py,sha256=a6T1MBc0ZUBaQFQ3ugRMs_E8
119
120
  syllable_sdk/models/directory_member_get_by_idop.py,sha256=5IvyVMM4Ykm-_75QYbe3ljxatQUvO2sQHtQ5Xt98NE8,506
120
121
  syllable_sdk/models/directory_member_listop.py,sha256=568u6zJ86cE45I9mF4dzRd4dRn-EHTlppdtazmx5W2c,5107
121
122
  syllable_sdk/models/directory_member_test_extensionop.py,sha256=JpmuK8_1T7R3FK9DGyOjZgCOnaWzNXxgpUA8TJOaU0Y,2162
122
- syllable_sdk/models/directory_member_updateop.py,sha256=q3kr--mKru1xyqv81_lpHNR_wcHWcXh-0sqj4VvhbsE,783
123
+ syllable_sdk/models/directory_member_updateop.py,sha256=KjeakJR0tdUfUnPVm-NJduca3xgD5hfeGSeg-LI_tCE,827
123
124
  syllable_sdk/models/directoryextension.py,sha256=37hSpmuwYovZ7AuO3-FajBLr9_i_ardVG20fYHuDF4I,1775
124
125
  syllable_sdk/models/directoryextensionnumber.py,sha256=P7u9CtS1N4k0b0XLD4AD9HnrXY2GcE8D65M8Uwsu6DE,1789
125
- syllable_sdk/models/directorymember.py,sha256=VDVWGYyNRbzUSv40l__kjDrbC7fBsX_A8z1c4FHKKsY,3089
126
+ syllable_sdk/models/directorymember.py,sha256=l3aOb-qS92dQQKU3A2y4dTPPpfRsIOwxTqiGEpkRHSc,2809
126
127
  syllable_sdk/models/directorymembercreate.py,sha256=uJbTXLxb5g6uX4kJphChQzy9EZr2B06cCiYc9Eb-phM,2257
127
128
  syllable_sdk/models/directorymemberproperties.py,sha256=qX6Ln1OABBc26wgdAiYfZFK0yvYRARgIWaw6RxyUaLg,350
128
129
  syllable_sdk/models/directorymembertestresponse.py,sha256=iHorMtw1hu3lqt9jRH0xhoiskGWDkbrC7wys3TSoP3I,1662
130
+ syllable_sdk/models/directorymemberupdate.py,sha256=LTWsH5J1gbWiRUs565C38ez9XF8-nVsOV_jKKZaaALI,2376
129
131
  syllable_sdk/models/event.py,sha256=qFvXId06MfWSPW3SnFyy4_rvvqknzoAo0TSQy3F38Jo,4151
130
132
  syllable_sdk/models/eventproperties.py,sha256=9_5DIkk5RtQsa52IxCkffSG0livH8baPSCdhzRKz48I,444
131
133
  syllable_sdk/models/events_listop.py,sha256=eIXJRB3dZpc0DQAOzgfmls2OIgR8vpn_J-_AspXVUBY,5009
@@ -248,18 +250,18 @@ syllable_sdk/models/permissiongroupresponse.py,sha256=-2y4Mm5p7k8A-oOrqEVrm-XeHV
248
250
  syllable_sdk/models/permissionresponse.py,sha256=UieyRpT5ubQ-08bx3DMdIkGi9KYbJaLe4EOxdg15bVQ,1808
249
251
  syllable_sdk/models/post_get_dashboardop.py,sha256=hJgtyzQsZ9Qyc5mqpfULcwHqXyAM8JucU5qRq6_VJ9g,504
250
252
  syllable_sdk/models/post_list_dashboardop.py,sha256=5A9ntb9WgxBqwysitzuz9rL1rETjfXsxw_L6Ytho3Gg,5055
251
- syllable_sdk/models/promptcreaterequest.py,sha256=1ppsUclSLTtnoEZDugSd_A7gxE_7ult-y9-7K7sSGeA,3747
253
+ syllable_sdk/models/promptcreaterequest.py,sha256=OHKDYI4lu5EzuBAWgoi9skXAZf8ch9oRMbAnL2v3GiQ,4120
252
254
  syllable_sdk/models/prompthistory.py,sha256=pjqX8zjgVPrqrX5ax_ezMuTSeFS_aWmzRelHepJP7-E,4086
253
255
  syllable_sdk/models/prompthistorylinkedtool.py,sha256=gVLskq9wKSPlaXadgWc6o2ELdKOvqSZIOoUx9RXpVBQ,1351
254
256
  syllable_sdk/models/promptllmconfig.py,sha256=l231V2X2d42PrRAhC0xImKTWJBmcAztRrgGeprvtfqI,3213
255
257
  syllable_sdk/models/promptllmprovider.py,sha256=nkDRxVE2qld5aX-rSyDO1KpD1nv5OVVEvxVQnl7VWUY,276
256
258
  syllable_sdk/models/promptproperties.py,sha256=wOMjHbnxTiUDA9VJPTiBqkYHsxy9LDV0LMEim0aQ0KU,616
257
- syllable_sdk/models/promptresponse.py,sha256=HMfVzFKQ9q1IGgFU6toNWaCLWEMWj3lbKIcubcg4lUc,5737
259
+ syllable_sdk/models/promptresponse.py,sha256=xzXgs7cpLJeUj--V-EN7oYhBtZ_NFAh7iJCOBw2nzb8,6451
258
260
  syllable_sdk/models/prompts_deleteop.py,sha256=gw1CB5A5Fd1CTaSMlQSDtJc0ZMKju7XcR-BnNZzWLDU,635
259
261
  syllable_sdk/models/prompts_get_by_idop.py,sha256=r-ugo1ui1v-5Ns9dbDNuB_0R7-QD9aKUebT6noQHDVg,490
260
262
  syllable_sdk/models/prompts_historyop.py,sha256=psp95NjtZ-G1ItE6AUgNO8OgZ0nh2vu8HZ7zK8vz9MY,490
261
263
  syllable_sdk/models/prompts_listop.py,sha256=s9iHPBo_MDmtVvwh3bqEFSgxmNVUqjNebO83MARe_W0,5019
262
- syllable_sdk/models/promptupdaterequest.py,sha256=8Dykjiv5VgLy_3qB9Opt4Dp1DSzD-FPk7FiVFL6NHaA,3848
264
+ syllable_sdk/models/promptupdaterequest.py,sha256=H-PEJ_C9DbHEjwpkyDfbehKPd6OyLmPPBdK11GqtXqM,4221
263
265
  syllable_sdk/models/pronunciationoverride.py,sha256=hh40Pm5_foJuS57H-umDw55KMFnYxM_fai5NbLFVu_Y,1120
264
266
  syllable_sdk/models/pronunciationoverridesdictionary.py,sha256=VAVif2n6qV2xIYNugb9DT52U33PwW1YXFDIGcFPWuPQ,2693
265
267
  syllable_sdk/models/pronunciations_download_csvop.py,sha256=xCoc57YcYPwYjhJ1ZcfvpaDePoEJ4HJuXIgyBSL0hlA,472
@@ -406,6 +408,6 @@ syllable_sdk/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,
406
408
  syllable_sdk/v1.py,sha256=BuA9D8PTM3ACw7t2p_wd6bIZblDM1JF8Scx0U2GPpCQ,53476
407
409
  syllable_sdk/voice_groups.py,sha256=m68HbT6z6SWtGWPoZaFFu6NIyNYIG7H9H5QkQuzlTQU,48512
408
410
  syllable_sdk/workflows.py,sha256=xHWT4Wl65qw2jvNZ5xF_MwpR5xd5147cSlQE_6gvfSo,64809
409
- syllable_sdk-0.40.9.dist-info/METADATA,sha256=yDOAqbIHOdLWO2EB-u--to4h848DX5Db5unDSiLhyy8,49670
410
- syllable_sdk-0.40.9.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
411
- syllable_sdk-0.40.9.dist-info/RECORD,,
411
+ syllable_sdk-0.41.1.dist-info/METADATA,sha256=hz7wmcf_ypHGpi2Qmw2mW9peJ-WarKxcjFcYXx7BLrE,49670
412
+ syllable_sdk-0.41.1.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
413
+ syllable_sdk-0.41.1.dist-info/RECORD,,