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
@@ -0,0 +1,67 @@
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 .conversation_message import ConversationMessage
8
+
9
+
10
+ class ConversationResult(UniversalBaseModel):
11
+ """
12
+ Model representing the conversation result from task/AOP execution.
13
+ """
14
+
15
+ conversation_id: typing.Optional[str] = pydantic.Field(default=None)
16
+ """
17
+ ID of the conversation asset
18
+ """
19
+
20
+ created_at: typing.Optional[str] = pydantic.Field(default=None)
21
+ """
22
+ ISO timestamp when conversation was created
23
+ """
24
+
25
+ last_assistant_message: typing.Optional[ConversationMessage] = pydantic.Field(default=None)
26
+ """
27
+ The last message from the assistant
28
+ """
29
+
30
+ messages: typing.Optional[typing.List[ConversationMessage]] = pydantic.Field(default=None)
31
+ """
32
+ Complete list of messages in the conversation
33
+ """
34
+
35
+ messages_source: str = pydantic.Field()
36
+ """
37
+ Source of the messages (e.g., 'checkpoints')
38
+ """
39
+
40
+ metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
41
+ """
42
+ Additional conversation metadata
43
+ """
44
+
45
+ num_messages: int = pydantic.Field()
46
+ """
47
+ Total number of messages in the conversation
48
+ """
49
+
50
+ title: typing.Optional[str] = pydantic.Field(default=None)
51
+ """
52
+ Title of the conversation
53
+ """
54
+
55
+ updated_at: typing.Optional[str] = pydantic.Field(default=None)
56
+ """
57
+ ISO timestamp when conversation was last updated
58
+ """
59
+
60
+ if IS_PYDANTIC_V2:
61
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
62
+ else:
63
+
64
+ class Config:
65
+ frozen = True
66
+ smart_union = True
67
+ 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
+ CreatableAssetType = typing.Union[typing.Literal["spreadsheet", "document", "folder"], typing.Any]
@@ -0,0 +1,46 @@
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
+
8
+
9
+ class CreateAssetResponseOut(UniversalBaseModel):
10
+ """
11
+ Response model for asset creation.
12
+ """
13
+
14
+ asset_id: str = pydantic.Field()
15
+ """
16
+ ID of the newly created asset
17
+ """
18
+
19
+ asset_type: str = pydantic.Field()
20
+ """
21
+ Type of the created asset
22
+ """
23
+
24
+ created_at: str = pydantic.Field()
25
+ """
26
+ Timestamp when the asset was created
27
+ """
28
+
29
+ parent_folder_id: typing.Optional[str] = pydantic.Field(default=None)
30
+ """
31
+ ID of the parent folder
32
+ """
33
+
34
+ title: str = pydantic.Field()
35
+ """
36
+ Title of the created asset
37
+ """
38
+
39
+ if IS_PYDANTIC_V2:
40
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
41
+ else:
42
+
43
+ class Config:
44
+ frozen = True
45
+ smart_union = True
46
+ extra = pydantic.Extra.allow
@@ -0,0 +1,51 @@
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
+
8
+
9
+ class CreateProjectResponseOut(UniversalBaseModel):
10
+ """
11
+ Response model for project creation.
12
+ """
13
+
14
+ asset_id: str = pydantic.Field()
15
+ """
16
+ ID of the created project asset
17
+ """
18
+
19
+ custom_metadata: typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field(default=None)
20
+ """
21
+ Custom metadata associated with the project
22
+ """
23
+
24
+ description: typing.Optional[str] = pydantic.Field(default=None)
25
+ """
26
+ Description of the project
27
+ """
28
+
29
+ project_type: typing.Optional[str] = pydantic.Field(default=None)
30
+ """
31
+ Type of the project
32
+ """
33
+
34
+ tags: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
35
+ """
36
+ Tags associated with the project
37
+ """
38
+
39
+ title: str = pydantic.Field()
40
+ """
41
+ Title of the created project
42
+ """
43
+
44
+ if IS_PYDANTIC_V2:
45
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
46
+ else:
47
+
48
+ class Config:
49
+ frozen = True
50
+ smart_union = True
51
+ 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
+
10
+
11
+ class DimensionProperties(UniversalBaseModel):
12
+ """
13
+ Properties for a row or column dimension in the spreadsheet.
14
+ """
15
+
16
+ hidden_by_filter: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="hiddenByFilter")] = (
17
+ pydantic.Field(default=None)
18
+ )
19
+ """
20
+ True if this row/column is hidden due to a filter being applied. Do not modify directly - managed by filter operations
21
+ """
22
+
23
+ hidden_by_user: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="hiddenByUser")] = (
24
+ pydantic.Field(default=None)
25
+ )
26
+ """
27
+ True if the user explicitly hid this row/column (e.g., right-click > Hide). Set to False to unhide
28
+ """
29
+
30
+ resized_by_user: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="resizedByUser")] = (
31
+ pydantic.Field(default=None)
32
+ )
33
+ """
34
+ True if the user manually resized this dimension (e.g., dragged column border to resize)
35
+ """
36
+
37
+ size: typing.Optional[int] = pydantic.Field(default=None)
38
+ """
39
+ Size in pixels. For columns, this is the width. For rows, this is the height. Default: 100px for columns, 21px for rows
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
@@ -12,9 +12,9 @@ class GetTableResponse(UniversalBaseModel):
12
12
  The ID of the spreadsheet asset
13
13
  """
14
14
 
15
- data: typing.List[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field()
15
+ columns: typing.List[typing.Dict[str, str]] = pydantic.Field()
16
16
  """
17
- Array of row objects with column names as keys
17
+ Array of column objects with name and other metadata
18
18
  """
19
19
 
20
20
  message: str = pydantic.Field()
@@ -22,6 +22,11 @@ class GetTableResponse(UniversalBaseModel):
22
22
  Success message or error description
23
23
  """
24
24
 
25
+ rows: typing.List[typing.Dict[str, typing.Optional[typing.Any]]] = pydantic.Field()
26
+ """
27
+ Array of row objects with column names as keys
28
+ """
29
+
25
30
  success: bool = pydantic.Field()
26
31
  """
27
32
  Whether the operation was successful
@@ -0,0 +1,39 @@
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
+
10
+
11
+ class GridRange(UniversalBaseModel):
12
+ end_column_index: typing_extensions.Annotated[int, FieldMetadata(alias="endColumnIndex")] = pydantic.Field()
13
+ """
14
+ End column index (1-based, INCLUSIVE). Last column of the range. For range A1:C5, this would be 3. For single columns, equals startColumnIndex.
15
+ """
16
+
17
+ end_row_index: typing_extensions.Annotated[int, FieldMetadata(alias="endRowIndex")] = pydantic.Field()
18
+ """
19
+ End row index (1-based, INCLUSIVE). Last row of the range. For a range A1:A5, this would be 5. For single cells, equals startRowIndex.
20
+ """
21
+
22
+ start_column_index: typing_extensions.Annotated[int, FieldMetadata(alias="startColumnIndex")] = pydantic.Field()
23
+ """
24
+ Start column index (1-based, INCLUSIVE). First column of the range. A=1, B=2, C=3, etc. For range A1:C5, this would be 1.
25
+ """
26
+
27
+ start_row_index: typing_extensions.Annotated[int, FieldMetadata(alias="startRowIndex")] = pydantic.Field()
28
+ """
29
+ Start row index (1-based, INCLUSIVE). First row of the range. For A1 this would be 1, for A5 this would be 5.
30
+ """
31
+
32
+ if IS_PYDANTIC_V2:
33
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
34
+ else:
35
+
36
+ class Config:
37
+ frozen = True
38
+ smart_union = True
39
+ extra = pydantic.Extra.allow
@@ -4,15 +4,19 @@ import typing
4
4
 
5
5
  import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
- from .document_chunk import DocumentChunk
7
+ from .number_format_type import NumberFormatType
8
8
 
9
9
 
10
- class FileChunkRequestOut(UniversalBaseModel):
10
+ class NumberFormatModel(UniversalBaseModel):
11
+ pattern: str = pydantic.Field()
11
12
  """
12
- Response model for a file chunk.
13
+ Excel-compatible format string. If omitted, the server will pick a sensible default based on the chosen type (e.g. NUMBER → '#,##0', CURRENCY → '$#,##0.00').
13
14
  """
14
15
 
15
- chunks: typing.Dict[str, typing.List[DocumentChunk]]
16
+ type: NumberFormatType = pydantic.Field()
17
+ """
18
+ Target number format category (NUMBER, CURRENCY, DATE, etc.)
19
+ """
16
20
 
17
21
  if IS_PYDANTIC_V2:
18
22
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -0,0 +1,21 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ NumberFormatType = typing.Union[
6
+ typing.Literal[
7
+ "GENERAL",
8
+ "NUMBER",
9
+ "CURRENCY",
10
+ "ACCOUNTING",
11
+ "DATE",
12
+ "TIME",
13
+ "DATE_TIME",
14
+ "PERCENT",
15
+ "FRACTION",
16
+ "SCIENTIFIC",
17
+ "TEXT",
18
+ "SPECIAL",
19
+ ],
20
+ typing.Any,
21
+ ]
athena/types/sheet.py ADDED
@@ -0,0 +1,76 @@
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 .dimension_properties import DimensionProperties
10
+ from .grid_range import GridRange
11
+ from .tabcolor import Tabcolor
12
+
13
+
14
+ class Sheet(UniversalBaseModel):
15
+ column_count: typing_extensions.Annotated[int, FieldMetadata(alias="columnCount")] = pydantic.Field()
16
+ """
17
+ Column count (Defaults to 100)
18
+ """
19
+
20
+ column_metadata: typing_extensions.Annotated[
21
+ typing.Optional[typing.List[typing.Optional[DimensionProperties]]], FieldMetadata(alias="columnMetadata")
22
+ ] = pydantic.Field(default=None)
23
+ """
24
+ Array of column properties, one per column (1-indexed). Each entry defines width, visibility for that column. Use to set custom column widths or hide/show specific columns. Example: columnMetadata[1] controls column A, columnMetadata[2] controls column B, etc. To set column C width to 150px: columnMetadata[3] = DimensionProperties(size=150). To hide column B: columnMetadata[2] = DimensionProperties(hiddenByUser=True). Common use case: Auto-size columns with wide content by setting larger size values
25
+ """
26
+
27
+ frozen_column_count: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="frozenColumnCount")] = (
28
+ None
29
+ )
30
+ frozen_row_count: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="frozenRowCount")] = None
31
+ hidden: typing.Optional[bool] = None
32
+ index: int = pydantic.Field()
33
+ """
34
+ The order of the new sheet
35
+ """
36
+
37
+ merges: typing.Optional[typing.List[GridRange]] = pydantic.Field(default=None)
38
+ """
39
+ List of merged cell ranges in the sheet. Each merge combines multiple cells into a single cell. The top-left cell (startRowIndex, startColumnIndex) becomes the anchor cell that displays the content. Example: To merge cells A1:C3, use GridRange(startRowIndex=1, endRowIndex=3, startColumnIndex=1, endColumnIndex=3). Defaults to empty list (no merged cells).
40
+ """
41
+
42
+ row_count: typing_extensions.Annotated[int, FieldMetadata(alias="rowCount")] = pydantic.Field()
43
+ """
44
+ Row count (Defaults to 1000)
45
+ """
46
+
47
+ row_metadata: typing_extensions.Annotated[
48
+ typing.Optional[typing.List[typing.Optional[DimensionProperties]]], FieldMetadata(alias="rowMetadata")
49
+ ] = pydantic.Field(default=None)
50
+ """
51
+ Array of row properties, one per row (1-indexed). Each entry defines height, visibility for that row. Use to set custom row heights or hide/show specific rows. Example: rowMetadata[1] controls row 1, rowMetadata[2] controls row 2, etc. To set row 5 height to 50px: rowMetadata[5] = DimensionProperties(size=50). To hide row 3: rowMetadata[3] = DimensionProperties(hiddenByUser=True)
52
+ """
53
+
54
+ sheet_id: typing_extensions.Annotated[int, FieldMetadata(alias="sheetId")] = pydantic.Field()
55
+ """
56
+ Sheet ID (required)
57
+ """
58
+
59
+ show_grid_lines: typing_extensions.Annotated[typing.Optional[bool], FieldMetadata(alias="showGridLines")] = None
60
+ tab_color: typing_extensions.Annotated[typing.Optional[Tabcolor], FieldMetadata(alias="tabColor")] = pydantic.Field(
61
+ default=None
62
+ )
63
+ """
64
+ Tab color in hex format (e.g., '#FF0000' for red) or as a theme
65
+ """
66
+
67
+ title: str
68
+
69
+ if IS_PYDANTIC_V2:
70
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
71
+ else:
72
+
73
+ class Config:
74
+ frozen = True
75
+ smart_union = True
76
+ extra = pydantic.Extra.allow
@@ -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
+ Tabcolor = typing.Union[str, ThemeColor]
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ TableRowData = typing.Dict[str, typing.Optional[typing.Any]]
@@ -0,0 +1,28 @@
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 .color import Color
10
+
11
+
12
+ class TextFormatModel(UniversalBaseModel):
13
+ bold: typing.Optional[bool] = None
14
+ color: typing.Optional[Color] = None
15
+ font_family: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="fontFamily")] = None
16
+ font_size: typing_extensions.Annotated[typing.Optional[int], FieldMetadata(alias="fontSize")] = None
17
+ italic: typing.Optional[bool] = None
18
+ strikethrough: typing.Optional[bool] = None
19
+ underline: typing.Optional[bool] = None
20
+
21
+ if IS_PYDANTIC_V2:
22
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
23
+ else:
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ 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
+ Textrotation = typing.Union[int, typing.Literal["vertical"]]
@@ -6,8 +6,9 @@ import pydantic
6
6
  from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
7
 
8
8
 
9
- class AssetNotFoundError(UniversalBaseModel):
10
- message: str
9
+ class ThemeColor(UniversalBaseModel):
10
+ theme: int
11
+ tint: typing.Optional[float] = None
11
12
 
12
13
  if IS_PYDANTIC_V2:
13
14
  model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
@@ -22,6 +22,11 @@ class ThreadStatusResponseOut(UniversalBaseModel):
22
22
  ISO timestamp when thread was created
23
23
  """
24
24
 
25
+ error: typing.Optional[str] = pydantic.Field(default=None)
26
+ """
27
+ Error message if thread execution failed
28
+ """
29
+
25
30
  status: str = pydantic.Field()
26
31
  """
27
32
  Current status of the thread (e.g., 'running', 'completed', 'failed')
@@ -0,0 +1,5 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ WrapStrategy = typing.Union[typing.Literal["overflow", "wrap", "clip"], typing.Any]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: athena-intelligence
3
- Version: 0.1.210
3
+ Version: 0.1.303
4
4
  Summary: Athena Intelligence Python Library
5
5
  Requires-Python: >=3.9,<4.0
6
6
  Classifier: Intended Audience :: Developers