athena-intelligence 0.1.210__py3-none-any.whl → 0.1.303__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.
Files changed (62) hide show
  1. athena/__init__.py +232 -71
  2. athena/agents/__init__.py +33 -1
  3. athena/agents/client.py +81 -18
  4. athena/aop/client.py +2 -2
  5. athena/aop/raw_client.py +10 -11
  6. athena/assets/client.py +359 -2
  7. athena/assets/raw_client.py +562 -0
  8. athena/base_client.py +122 -22
  9. athena/client.py +23 -21
  10. athena/core/__init__.py +73 -20
  11. athena/core/client_wrapper.py +2 -2
  12. athena/core/force_multipart.py +4 -2
  13. athena/core/http_response.py +1 -1
  14. athena/core/pydantic_utilities.py +5 -2
  15. athena/environment.py +1 -2
  16. athena/errors/__init__.py +42 -7
  17. athena/errors/not_found_error.py +1 -2
  18. athena/query/__init__.py +28 -1
  19. athena/query/types/__init__.py +30 -1
  20. athena/threads/raw_client.py +4 -5
  21. athena/tools/__init__.py +47 -3
  22. athena/tools/client.py +161 -31
  23. athena/tools/raw_client.py +36 -34
  24. athena/tools/sheets/__init__.py +30 -0
  25. athena/tools/sheets/client.py +100 -122
  26. athena/tools/sheets/raw_client.py +91 -94
  27. athena/tools/sheets/types/__init__.py +36 -0
  28. athena/tools/sheets/types/update_sheet_range_request_values_item_item.py +5 -0
  29. athena/tools/types/__init__.py +28 -1
  30. athena/types/__init__.py +196 -54
  31. athena/types/aop_async_execute_response_out.py +0 -5
  32. athena/types/aop_execute_response_out.py +7 -6
  33. athena/types/backgroundcolor.py +7 -0
  34. athena/types/{document_chunk.py → border_model.py} +7 -4
  35. athena/types/border_style.py +7 -0
  36. athena/types/borders_model.py +58 -0
  37. athena/types/cell_format.py +49 -0
  38. athena/types/cell_format_horizontal_alignment.py +5 -0
  39. athena/types/cell_format_vertical_alignment.py +5 -0
  40. athena/types/color.py +7 -0
  41. athena/types/conversation_asset_info.py +13 -2
  42. athena/types/conversation_message.py +42 -0
  43. athena/types/conversation_result.py +67 -0
  44. athena/types/creatable_asset_type.py +5 -0
  45. athena/types/create_asset_response_out.py +46 -0
  46. athena/types/create_project_response_out.py +51 -0
  47. athena/types/dimension_properties.py +49 -0
  48. athena/types/get_table_response.py +7 -2
  49. athena/types/grid_range.py +39 -0
  50. athena/types/{file_chunk_request_out.py → number_format_model.py} +8 -4
  51. athena/types/number_format_type.py +21 -0
  52. athena/types/sheet.py +76 -0
  53. athena/types/tabcolor.py +7 -0
  54. athena/types/table_row_data.py +5 -0
  55. athena/types/text_format_model.py +28 -0
  56. athena/types/textrotation.py +5 -0
  57. athena/types/{asset_not_found_error.py → theme_color.py} +3 -2
  58. athena/types/thread_status_response_out.py +5 -0
  59. athena/types/wrap_strategy.py +5 -0
  60. {athena_intelligence-0.1.210.dist-info → athena_intelligence-0.1.303.dist-info}/METADATA +1 -1
  61. {athena_intelligence-0.1.210.dist-info → athena_intelligence-0.1.303.dist-info}/RECORD +62 -39
  62. {athena_intelligence-0.1.210.dist-info → athena_intelligence-0.1.303.dist-info}/WHEEL +0 -0
athena/types/__init__.py CHANGED
@@ -2,57 +2,178 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- from .aop_async_execute_response_out import AopAsyncExecuteResponseOut
6
- from .aop_execute_request_in import AopExecuteRequestIn
7
- from .aop_execute_response_out import AopExecuteResponseOut
8
- from .asset_content_request_out import AssetContentRequestOut
9
- from .asset_node import AssetNode
10
- from .asset_not_found_error import AssetNotFoundError
11
- from .asset_screenshot_response_out import AssetScreenshotResponseOut
12
- from .chunk import Chunk
13
- from .chunk_content_item import ChunkContentItem, ChunkContentItem_ImageUrl, ChunkContentItem_Text
14
- from .chunk_result import ChunkResult
15
- from .chunk_result_chunk_id import ChunkResultChunkId
16
- from .content import Content
17
- from .conversation_asset_info import ConversationAssetInfo
18
- from .create_new_sheet_tab_response import CreateNewSheetTabResponse
19
- from .custom_agent_response import CustomAgentResponse
20
- from .data_frame_request_out import DataFrameRequestOut
21
- from .data_frame_request_out_columns_item import DataFrameRequestOutColumnsItem
22
- from .data_frame_request_out_data_item_item import DataFrameRequestOutDataItemItem
23
- from .data_frame_request_out_index_item import DataFrameRequestOutIndexItem
24
- from .data_frame_unknown_format_error import DataFrameUnknownFormatError
25
- from .document_chunk import DocumentChunk
26
- from .drive_agent_response import DriveAgentResponse
27
- from .file_chunk_request_out import FileChunkRequestOut
28
- from .file_too_large_error import FileTooLargeError
29
- from .folder_response import FolderResponse
30
- from .general_agent_config import GeneralAgentConfig
31
- from .general_agent_config_enabled_tools_item import GeneralAgentConfigEnabledToolsItem
32
- from .general_agent_request import GeneralAgentRequest
33
- from .general_agent_response import GeneralAgentResponse
34
- from .general_agent_response_message import GeneralAgentResponseMessage
35
- from .general_agent_response_message_kwargs import GeneralAgentResponseMessageKwargs
36
- from .get_table_response import GetTableResponse
37
- from .id import Id
38
- from .image_url_content import ImageUrlContent
39
- from .input_message import InputMessage
40
- from .input_message_content_item import (
41
- InputMessageContentItem,
42
- InputMessageContentItem_ImageUrl,
43
- InputMessageContentItem_Text,
44
- )
45
- from .paginated_assets_out import PaginatedAssetsOut
46
- from .prompt_message import PromptMessage
47
- from .public_asset_out import PublicAssetOut
48
- from .research_agent_response import ResearchAgentResponse
49
- from .save_asset_request_out import SaveAssetRequestOut
50
- from .sheet_operation_response import SheetOperationResponse
51
- from .sql_agent_response import SqlAgentResponse
52
- from .structured_data_extractor_response import StructuredDataExtractorResponse
53
- from .text_content import TextContent
54
- from .thread_status_response_out import ThreadStatusResponseOut
55
- from .type import Type
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .aop_async_execute_response_out import AopAsyncExecuteResponseOut
10
+ from .aop_execute_request_in import AopExecuteRequestIn
11
+ from .aop_execute_response_out import AopExecuteResponseOut
12
+ from .asset_content_request_out import AssetContentRequestOut
13
+ from .asset_node import AssetNode
14
+ from .asset_screenshot_response_out import AssetScreenshotResponseOut
15
+ from .backgroundcolor import Backgroundcolor
16
+ from .border_model import BorderModel
17
+ from .border_style import BorderStyle
18
+ from .borders_model import BordersModel
19
+ from .cell_format import CellFormat
20
+ from .cell_format_horizontal_alignment import CellFormatHorizontalAlignment
21
+ from .cell_format_vertical_alignment import CellFormatVerticalAlignment
22
+ from .chunk import Chunk
23
+ from .chunk_content_item import ChunkContentItem, ChunkContentItem_ImageUrl, ChunkContentItem_Text
24
+ from .chunk_result import ChunkResult
25
+ from .chunk_result_chunk_id import ChunkResultChunkId
26
+ from .color import Color
27
+ from .content import Content
28
+ from .conversation_asset_info import ConversationAssetInfo
29
+ from .conversation_message import ConversationMessage
30
+ from .conversation_result import ConversationResult
31
+ from .creatable_asset_type import CreatableAssetType
32
+ from .create_asset_response_out import CreateAssetResponseOut
33
+ from .create_new_sheet_tab_response import CreateNewSheetTabResponse
34
+ from .create_project_response_out import CreateProjectResponseOut
35
+ from .custom_agent_response import CustomAgentResponse
36
+ from .data_frame_request_out import DataFrameRequestOut
37
+ from .data_frame_request_out_columns_item import DataFrameRequestOutColumnsItem
38
+ from .data_frame_request_out_data_item_item import DataFrameRequestOutDataItemItem
39
+ from .data_frame_request_out_index_item import DataFrameRequestOutIndexItem
40
+ from .data_frame_unknown_format_error import DataFrameUnknownFormatError
41
+ from .dimension_properties import DimensionProperties
42
+ from .drive_agent_response import DriveAgentResponse
43
+ from .file_too_large_error import FileTooLargeError
44
+ from .folder_response import FolderResponse
45
+ from .general_agent_config import GeneralAgentConfig
46
+ from .general_agent_config_enabled_tools_item import GeneralAgentConfigEnabledToolsItem
47
+ from .general_agent_request import GeneralAgentRequest
48
+ from .general_agent_response import GeneralAgentResponse
49
+ from .general_agent_response_message import GeneralAgentResponseMessage
50
+ from .general_agent_response_message_kwargs import GeneralAgentResponseMessageKwargs
51
+ from .get_table_response import GetTableResponse
52
+ from .grid_range import GridRange
53
+ from .id import Id
54
+ from .image_url_content import ImageUrlContent
55
+ from .input_message import InputMessage
56
+ from .input_message_content_item import (
57
+ InputMessageContentItem,
58
+ InputMessageContentItem_ImageUrl,
59
+ InputMessageContentItem_Text,
60
+ )
61
+ from .number_format_model import NumberFormatModel
62
+ from .number_format_type import NumberFormatType
63
+ from .paginated_assets_out import PaginatedAssetsOut
64
+ from .prompt_message import PromptMessage
65
+ from .public_asset_out import PublicAssetOut
66
+ from .research_agent_response import ResearchAgentResponse
67
+ from .save_asset_request_out import SaveAssetRequestOut
68
+ from .sheet import Sheet
69
+ from .sheet_operation_response import SheetOperationResponse
70
+ from .sql_agent_response import SqlAgentResponse
71
+ from .structured_data_extractor_response import StructuredDataExtractorResponse
72
+ from .tabcolor import Tabcolor
73
+ from .table_row_data import TableRowData
74
+ from .text_content import TextContent
75
+ from .text_format_model import TextFormatModel
76
+ from .textrotation import Textrotation
77
+ from .theme_color import ThemeColor
78
+ from .thread_status_response_out import ThreadStatusResponseOut
79
+ from .type import Type
80
+ from .wrap_strategy import WrapStrategy
81
+ _dynamic_imports: typing.Dict[str, str] = {
82
+ "AopAsyncExecuteResponseOut": ".aop_async_execute_response_out",
83
+ "AopExecuteRequestIn": ".aop_execute_request_in",
84
+ "AopExecuteResponseOut": ".aop_execute_response_out",
85
+ "AssetContentRequestOut": ".asset_content_request_out",
86
+ "AssetNode": ".asset_node",
87
+ "AssetScreenshotResponseOut": ".asset_screenshot_response_out",
88
+ "Backgroundcolor": ".backgroundcolor",
89
+ "BorderModel": ".border_model",
90
+ "BorderStyle": ".border_style",
91
+ "BordersModel": ".borders_model",
92
+ "CellFormat": ".cell_format",
93
+ "CellFormatHorizontalAlignment": ".cell_format_horizontal_alignment",
94
+ "CellFormatVerticalAlignment": ".cell_format_vertical_alignment",
95
+ "Chunk": ".chunk",
96
+ "ChunkContentItem": ".chunk_content_item",
97
+ "ChunkContentItem_ImageUrl": ".chunk_content_item",
98
+ "ChunkContentItem_Text": ".chunk_content_item",
99
+ "ChunkResult": ".chunk_result",
100
+ "ChunkResultChunkId": ".chunk_result_chunk_id",
101
+ "Color": ".color",
102
+ "Content": ".content",
103
+ "ConversationAssetInfo": ".conversation_asset_info",
104
+ "ConversationMessage": ".conversation_message",
105
+ "ConversationResult": ".conversation_result",
106
+ "CreatableAssetType": ".creatable_asset_type",
107
+ "CreateAssetResponseOut": ".create_asset_response_out",
108
+ "CreateNewSheetTabResponse": ".create_new_sheet_tab_response",
109
+ "CreateProjectResponseOut": ".create_project_response_out",
110
+ "CustomAgentResponse": ".custom_agent_response",
111
+ "DataFrameRequestOut": ".data_frame_request_out",
112
+ "DataFrameRequestOutColumnsItem": ".data_frame_request_out_columns_item",
113
+ "DataFrameRequestOutDataItemItem": ".data_frame_request_out_data_item_item",
114
+ "DataFrameRequestOutIndexItem": ".data_frame_request_out_index_item",
115
+ "DataFrameUnknownFormatError": ".data_frame_unknown_format_error",
116
+ "DimensionProperties": ".dimension_properties",
117
+ "DriveAgentResponse": ".drive_agent_response",
118
+ "FileTooLargeError": ".file_too_large_error",
119
+ "FolderResponse": ".folder_response",
120
+ "GeneralAgentConfig": ".general_agent_config",
121
+ "GeneralAgentConfigEnabledToolsItem": ".general_agent_config_enabled_tools_item",
122
+ "GeneralAgentRequest": ".general_agent_request",
123
+ "GeneralAgentResponse": ".general_agent_response",
124
+ "GeneralAgentResponseMessage": ".general_agent_response_message",
125
+ "GeneralAgentResponseMessageKwargs": ".general_agent_response_message_kwargs",
126
+ "GetTableResponse": ".get_table_response",
127
+ "GridRange": ".grid_range",
128
+ "Id": ".id",
129
+ "ImageUrlContent": ".image_url_content",
130
+ "InputMessage": ".input_message",
131
+ "InputMessageContentItem": ".input_message_content_item",
132
+ "InputMessageContentItem_ImageUrl": ".input_message_content_item",
133
+ "InputMessageContentItem_Text": ".input_message_content_item",
134
+ "NumberFormatModel": ".number_format_model",
135
+ "NumberFormatType": ".number_format_type",
136
+ "PaginatedAssetsOut": ".paginated_assets_out",
137
+ "PromptMessage": ".prompt_message",
138
+ "PublicAssetOut": ".public_asset_out",
139
+ "ResearchAgentResponse": ".research_agent_response",
140
+ "SaveAssetRequestOut": ".save_asset_request_out",
141
+ "Sheet": ".sheet",
142
+ "SheetOperationResponse": ".sheet_operation_response",
143
+ "SqlAgentResponse": ".sql_agent_response",
144
+ "StructuredDataExtractorResponse": ".structured_data_extractor_response",
145
+ "Tabcolor": ".tabcolor",
146
+ "TableRowData": ".table_row_data",
147
+ "TextContent": ".text_content",
148
+ "TextFormatModel": ".text_format_model",
149
+ "Textrotation": ".textrotation",
150
+ "ThemeColor": ".theme_color",
151
+ "ThreadStatusResponseOut": ".thread_status_response_out",
152
+ "Type": ".type",
153
+ "WrapStrategy": ".wrap_strategy",
154
+ }
155
+
156
+
157
+ def __getattr__(attr_name: str) -> typing.Any:
158
+ module_name = _dynamic_imports.get(attr_name)
159
+ if module_name is None:
160
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
161
+ try:
162
+ module = import_module(module_name, __package__)
163
+ if module_name == f".{attr_name}":
164
+ return module
165
+ else:
166
+ return getattr(module, attr_name)
167
+ except ImportError as e:
168
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
169
+ except AttributeError as e:
170
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
171
+
172
+
173
+ def __dir__():
174
+ lazy_attrs = list(_dynamic_imports.keys())
175
+ return sorted(lazy_attrs)
176
+
56
177
 
57
178
  __all__ = [
58
179
  "AopAsyncExecuteResponseOut",
@@ -60,26 +181,37 @@ __all__ = [
60
181
  "AopExecuteResponseOut",
61
182
  "AssetContentRequestOut",
62
183
  "AssetNode",
63
- "AssetNotFoundError",
64
184
  "AssetScreenshotResponseOut",
185
+ "Backgroundcolor",
186
+ "BorderModel",
187
+ "BorderStyle",
188
+ "BordersModel",
189
+ "CellFormat",
190
+ "CellFormatHorizontalAlignment",
191
+ "CellFormatVerticalAlignment",
65
192
  "Chunk",
66
193
  "ChunkContentItem",
67
194
  "ChunkContentItem_ImageUrl",
68
195
  "ChunkContentItem_Text",
69
196
  "ChunkResult",
70
197
  "ChunkResultChunkId",
198
+ "Color",
71
199
  "Content",
72
200
  "ConversationAssetInfo",
201
+ "ConversationMessage",
202
+ "ConversationResult",
203
+ "CreatableAssetType",
204
+ "CreateAssetResponseOut",
73
205
  "CreateNewSheetTabResponse",
206
+ "CreateProjectResponseOut",
74
207
  "CustomAgentResponse",
75
208
  "DataFrameRequestOut",
76
209
  "DataFrameRequestOutColumnsItem",
77
210
  "DataFrameRequestOutDataItemItem",
78
211
  "DataFrameRequestOutIndexItem",
79
212
  "DataFrameUnknownFormatError",
80
- "DocumentChunk",
213
+ "DimensionProperties",
81
214
  "DriveAgentResponse",
82
- "FileChunkRequestOut",
83
215
  "FileTooLargeError",
84
216
  "FolderResponse",
85
217
  "GeneralAgentConfig",
@@ -89,21 +221,31 @@ __all__ = [
89
221
  "GeneralAgentResponseMessage",
90
222
  "GeneralAgentResponseMessageKwargs",
91
223
  "GetTableResponse",
224
+ "GridRange",
92
225
  "Id",
93
226
  "ImageUrlContent",
94
227
  "InputMessage",
95
228
  "InputMessageContentItem",
96
229
  "InputMessageContentItem_ImageUrl",
97
230
  "InputMessageContentItem_Text",
231
+ "NumberFormatModel",
232
+ "NumberFormatType",
98
233
  "PaginatedAssetsOut",
99
234
  "PromptMessage",
100
235
  "PublicAssetOut",
101
236
  "ResearchAgentResponse",
102
237
  "SaveAssetRequestOut",
238
+ "Sheet",
103
239
  "SheetOperationResponse",
104
240
  "SqlAgentResponse",
105
241
  "StructuredDataExtractorResponse",
242
+ "Tabcolor",
243
+ "TableRowData",
106
244
  "TextContent",
245
+ "TextFormatModel",
246
+ "Textrotation",
247
+ "ThemeColor",
107
248
  "ThreadStatusResponseOut",
108
249
  "Type",
250
+ "WrapStrategy",
109
251
  ]
@@ -31,11 +31,6 @@ class AopAsyncExecuteResponseOut(UniversalBaseModel):
31
31
  Base prompt of the AOP before user inputs were added
32
32
  """
33
33
 
34
- enabled_tools: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
35
- """
36
- List of tools that were enabled for this execution
37
- """
38
-
39
34
  final_prompt: str = pydantic.Field()
40
35
  """
41
36
  Final prompt used for execution including user inputs
@@ -4,6 +4,7 @@ import typing
4
4
 
5
5
  import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .conversation_result import ConversationResult
7
8
 
8
9
 
9
10
  class AopExecuteResponseOut(UniversalBaseModel):
@@ -31,19 +32,19 @@ class AopExecuteResponseOut(UniversalBaseModel):
31
32
  Base prompt of the AOP before user inputs were added
32
33
  """
33
34
 
34
- enabled_tools: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
35
+ conversation: typing.Optional[ConversationResult] = pydantic.Field(default=None)
35
36
  """
36
- List of tools that were enabled for this execution
37
+ The conversation result from the AOP execution
37
38
  """
38
39
 
39
- final_prompt: str = pydantic.Field()
40
+ error: typing.Optional[str] = pydantic.Field(default=None)
40
41
  """
41
- Final prompt used for execution including user inputs
42
+ Error message if execution failed
42
43
  """
43
44
 
44
- response: typing.Dict[str, typing.Optional[typing.Any]] = pydantic.Field()
45
+ final_prompt: str = pydantic.Field()
45
46
  """
46
- The execution response from the AOP
47
+ Final prompt used for execution including user inputs
47
48
  """
48
49
 
49
50
  status: str = pydantic.Field()
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .theme_color import ThemeColor
6
+
7
+ Backgroundcolor = typing.Union[str, ThemeColor]
@@ -4,15 +4,18 @@ import typing
4
4
 
5
5
  import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .border_style import BorderStyle
8
+ from .color import Color
7
9
 
8
10
 
9
- class DocumentChunk(UniversalBaseModel):
11
+ class BorderModel(UniversalBaseModel):
12
+ color: typing.Optional[Color] = pydantic.Field(default=None)
10
13
  """
11
- A document chunk.
14
+ Border color. Defaults to theme color 1 (default black). Always set the color if border width and border style is present
12
15
  """
13
16
 
14
- metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = None
15
- page_content: str
17
+ style: BorderStyle
18
+ width: int
16
19
 
17
20
  if IS_PYDANTIC_V2:
18
21
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ BorderStyle = typing.Union[
6
+ typing.Literal["dotted", "dashed", "solid", "solid_medium", "solid_thick", "double"], typing.Any
7
+ ]
@@ -0,0 +1,58 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .border_model import BorderModel
8
+
9
+
10
+ class BordersModel(UniversalBaseModel):
11
+ """
12
+ Border configuration for spreadsheet cells. Set individual borders (top, right, bottom, left) to apply borders around cells.
13
+
14
+ Common border patterns:
15
+ - All borders: Set all four sides (top, right, bottom, left) to create borders around every cell
16
+ - Outer border only: For a range A1:C3, only the perimeter cells get borders (first row gets top, last row gets bottom, etc.)
17
+ - Inner borders only: Only borders between cells, not on the outer edges
18
+ - Horizontal lines: Set only top and/or bottom borders
19
+ - Vertical lines: Set only left and/or right borders
20
+ - Single side: Set only one border (e.g., just bottom for underline effect)
21
+
22
+ Note: Borders are applied per-cell. Each cell's border properties control which edges of that specific cell have borders. Overlapping borders between adjacent cells will appear as a single line.
23
+
24
+ Examples:
25
+ - Box around range: Set all four borders on all cells in the range
26
+ - Table with grid: Set all four borders to create a complete grid
27
+ - Underline header: Set only bottom border on header row
28
+ - Separate sections: Set bottom border to divide content
29
+ """
30
+
31
+ bottom: typing.Optional[BorderModel] = pydantic.Field(default=None)
32
+ """
33
+ Bottom border of the cell
34
+ """
35
+
36
+ left: typing.Optional[BorderModel] = pydantic.Field(default=None)
37
+ """
38
+ Left border of the cell
39
+ """
40
+
41
+ right: typing.Optional[BorderModel] = pydantic.Field(default=None)
42
+ """
43
+ Right border of the cell
44
+ """
45
+
46
+ top: typing.Optional[BorderModel] = pydantic.Field(default=None)
47
+ """
48
+ Top border of the cell
49
+ """
50
+
51
+ if IS_PYDANTIC_V2:
52
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
53
+ else:
54
+
55
+ class Config:
56
+ frozen = True
57
+ smart_union = True
58
+ extra = pydantic.Extra.allow
@@ -0,0 +1,49 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ..core.serialization import FieldMetadata
9
+ from .backgroundcolor import Backgroundcolor
10
+ from .borders_model import BordersModel
11
+ from .cell_format_horizontal_alignment import CellFormatHorizontalAlignment
12
+ from .cell_format_vertical_alignment import CellFormatVerticalAlignment
13
+ from .number_format_model import NumberFormatModel
14
+ from .text_format_model import TextFormatModel
15
+ from .textrotation import Textrotation
16
+ from .wrap_strategy import WrapStrategy
17
+
18
+
19
+ class CellFormat(UniversalBaseModel):
20
+ background_color: typing_extensions.Annotated[
21
+ typing.Optional[Backgroundcolor], FieldMetadata(alias="backgroundColor")
22
+ ] = None
23
+ borders: typing.Optional[BordersModel] = None
24
+ horizontal_alignment: typing_extensions.Annotated[
25
+ typing.Optional[CellFormatHorizontalAlignment], FieldMetadata(alias="horizontalAlignment")
26
+ ] = None
27
+ indent: typing.Optional[int] = None
28
+ number_format: typing_extensions.Annotated[
29
+ typing.Optional[NumberFormatModel], FieldMetadata(alias="numberFormat")
30
+ ] = None
31
+ text_format: typing_extensions.Annotated[typing.Optional[TextFormatModel], FieldMetadata(alias="textFormat")] = None
32
+ text_rotation: typing_extensions.Annotated[typing.Optional[Textrotation], FieldMetadata(alias="textRotation")] = (
33
+ None
34
+ )
35
+ vertical_alignment: typing_extensions.Annotated[
36
+ typing.Optional[CellFormatVerticalAlignment], FieldMetadata(alias="verticalAlignment")
37
+ ] = None
38
+ wrap_strategy: typing_extensions.Annotated[typing.Optional[WrapStrategy], FieldMetadata(alias="wrapStrategy")] = (
39
+ None
40
+ )
41
+
42
+ if IS_PYDANTIC_V2:
43
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
44
+ else:
45
+
46
+ class Config:
47
+ frozen = True
48
+ smart_union = True
49
+ extra = pydantic.Extra.allow
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ CellFormatHorizontalAlignment = typing.Union[typing.Literal["left", "right", "center"], typing.Any]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ CellFormatVerticalAlignment = typing.Union[typing.Literal["top", "middle", "bottom"], typing.Any]
athena/types/color.py ADDED
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from .theme_color import ThemeColor
6
+
7
+ Color = typing.Union[str, ThemeColor]
@@ -4,6 +4,7 @@ import typing
4
4
 
5
5
  import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .conversation_message import ConversationMessage
7
8
 
8
9
 
9
10
  class ConversationAssetInfo(UniversalBaseModel):
@@ -36,14 +37,19 @@ class ConversationAssetInfo(UniversalBaseModel):
36
37
  User ID who created the conversation
37
38
  """
38
39
 
40
+ error: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
41
+ """
42
+ Error details if the conversation execution failed
43
+ """
44
+
39
45
  last_channel: typing.Optional[str] = pydantic.Field(default=None)
40
46
  """
41
47
  Last active channel for the conversation
42
48
  """
43
49
 
44
- last_message: typing.Optional[str] = pydantic.Field(default=None)
50
+ last_message: typing.Optional[ConversationMessage] = pydantic.Field(default=None)
45
51
  """
46
- Last message content
52
+ Last message in the conversation
47
53
  """
48
54
 
49
55
  linked_aops: typing.Optional[typing.List[typing.Dict[str, typing.Optional[typing.Any]]]] = pydantic.Field(
@@ -60,6 +66,11 @@ class ConversationAssetInfo(UniversalBaseModel):
60
66
  List of linked project assets
61
67
  """
62
68
 
69
+ messages: typing.Optional[typing.List[ConversationMessage]] = pydantic.Field(default=None)
70
+ """
71
+ Complete list of messages in the conversation from checkpoints
72
+ """
73
+
63
74
  model: typing.Optional[str] = pydantic.Field(default=None)
64
75
  """
65
76
  Model used in conversation
@@ -0,0 +1,42 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+ from .content import Content
8
+
9
+
10
+ class ConversationMessage(UniversalBaseModel):
11
+ """
12
+ Model representing a single conversation message.
13
+ """
14
+
15
+ additional_kwargs: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
16
+ """
17
+ Additional message metadata
18
+ """
19
+
20
+ content: Content = pydantic.Field()
21
+ """
22
+ Message content as text or structured content blocks
23
+ """
24
+
25
+ id: str = pydantic.Field()
26
+ """
27
+ Unique identifier for the message
28
+ """
29
+
30
+ role: str = pydantic.Field()
31
+ """
32
+ Role of the message sender (user, assistant, system)
33
+ """
34
+
35
+ if IS_PYDANTIC_V2:
36
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
37
+ else:
38
+
39
+ class Config:
40
+ frozen = True
41
+ smart_union = True
42
+ extra = pydantic.Extra.allow