everyrow 0.1.9__py3-none-any.whl → 0.2.0__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 (207) hide show
  1. everyrow/__init__.py +8 -1
  2. everyrow/api_utils.py +5 -1
  3. everyrow/billing.py +29 -0
  4. everyrow/constants.py +1 -1
  5. everyrow/generated/__init__.py +1 -1
  6. everyrow/generated/api/{default/interrupt_chat_task_tasks_chat_interrupt_post.py → artifacts/create_artifact_artifacts_post.py} +38 -32
  7. everyrow/generated/api/billing/__init__.py +1 -0
  8. everyrow/generated/api/{default/get_queues_stats_jobs_queues_get.py → billing/get_billing_balance_billing_get.py} +25 -17
  9. everyrow/generated/api/operations/__init__.py +1 -0
  10. everyrow/generated/api/{default/re_execute_task_endpoint_tasks_re_execute_post.py → operations/agent_map_operations_agent_map_post.py} +53 -41
  11. everyrow/generated/api/{default/create_workflow_from_artifact_workflows_from_artifact_post.py → operations/dedupe_operations_dedupe_post.py} +39 -33
  12. everyrow/generated/api/{default/submit_task_tasks_post.py → operations/merge_operations_merge_post.py} +37 -29
  13. everyrow/generated/api/{default/copy_workflow_endpoint_workflows_copy_post.py → operations/rank_operations_rank_post.py} +43 -29
  14. everyrow/generated/api/{default/export_to_google_sheets_export_post.py → operations/screen_operations_screen_post.py} +43 -31
  15. everyrow/generated/api/operations/single_agent_operations_single_agent_post.py +236 -0
  16. everyrow/generated/api/sessions/__init__.py +1 -0
  17. everyrow/generated/api/{default/copy_artifacts_artifacts_copy_post.py → sessions/create_session_endpoint_sessions_post.py} +35 -27
  18. everyrow/generated/api/tasks/__init__.py +1 -0
  19. everyrow/generated/api/{default/get_job_progress_for_task_jobs_progress_get.py → tasks/get_task_result_tasks_task_id_result_get.py} +45 -33
  20. everyrow/generated/api/{default/get_task_status_endpoint_tasks_task_id_status_get.py → tasks/get_task_status_tasks_task_id_status_get.py} +24 -42
  21. everyrow/generated/models/__init__.py +82 -266
  22. everyrow/generated/models/agent_map_operation.py +315 -0
  23. everyrow/generated/models/{artifact_group_record_metadata_type_0.py → agent_map_operation_input_type_1_item.py} +5 -5
  24. everyrow/generated/models/agent_map_operation_input_type_2.py +46 -0
  25. everyrow/generated/models/{standalone_artifact_record_analysis_type_0.py → agent_map_operation_response_schema_type_0.py} +5 -5
  26. everyrow/generated/models/{create_query_params.py → billing_response.py} +13 -12
  27. everyrow/generated/models/{continue_task_request.py → create_artifact_request.py} +43 -43
  28. everyrow/generated/models/create_artifact_request_data_type_0_item.py +46 -0
  29. everyrow/generated/models/{task_metadata_cols_to_rename_type_0.py → create_artifact_request_data_type_1.py} +5 -5
  30. everyrow/generated/models/{copy_artifacts_response.py → create_artifact_response.py} +12 -12
  31. everyrow/generated/models/{create_session_request.py → create_session.py} +6 -7
  32. everyrow/generated/models/dedupe_operation.py +151 -0
  33. everyrow/generated/models/dedupe_operation_input_type_1_item.py +46 -0
  34. everyrow/generated/models/{import_request_token_data.py → dedupe_operation_input_type_2.py} +5 -5
  35. everyrow/generated/models/error_response.py +109 -0
  36. everyrow/generated/models/{task_insert_query_params.py → error_response_details_type_0.py} +5 -5
  37. everyrow/generated/models/insufficient_balance_error.py +8 -0
  38. everyrow/generated/models/{llm_enum.py → llm_enum_public.py} +1 -20
  39. everyrow/generated/models/merge_operation.py +278 -0
  40. everyrow/generated/models/merge_operation_left_input_type_1_item.py +46 -0
  41. everyrow/generated/models/{chat_completion_message_tool_call.py → merge_operation_left_input_type_2.py} +5 -5
  42. everyrow/generated/models/merge_operation_right_input_type_1_item.py +46 -0
  43. everyrow/generated/models/merge_operation_right_input_type_2.py +46 -0
  44. everyrow/generated/models/merge_operation_use_web_search_type_0.py +10 -0
  45. everyrow/generated/models/operation_response.py +131 -0
  46. everyrow/generated/models/{multi_agent_effort_level.py → public_effort_level.py} +1 -1
  47. everyrow/generated/models/public_task_type.py +12 -0
  48. everyrow/generated/models/rank_operation.py +203 -0
  49. everyrow/generated/models/rank_operation_input_type_1_item.py +46 -0
  50. everyrow/generated/models/{export_request_token_data.py → rank_operation_input_type_2.py} +5 -5
  51. everyrow/generated/models/{artifact_group_record_analysis_type_0.py → rank_operation_response_schema_type_0.py} +5 -5
  52. everyrow/generated/models/screen_operation.py +186 -0
  53. everyrow/generated/models/screen_operation_input_type_1_item.py +46 -0
  54. everyrow/generated/models/screen_operation_input_type_2.py +46 -0
  55. everyrow/generated/models/screen_operation_response_schema_type_0.py +46 -0
  56. everyrow/generated/models/{create_session_response.py → session_response.py} +7 -8
  57. everyrow/generated/models/single_agent_operation.py +304 -0
  58. everyrow/generated/models/single_agent_operation_input_type_1_item.py +46 -0
  59. everyrow/generated/models/single_agent_operation_input_type_2.py +46 -0
  60. everyrow/generated/models/single_agent_operation_response_schema_type_0.py +46 -0
  61. everyrow/generated/models/task_result_response.py +185 -0
  62. everyrow/generated/models/task_result_response_data_type_0_item.py +46 -0
  63. everyrow/generated/models/task_result_response_data_type_1.py +46 -0
  64. everyrow/generated/models/task_status_response.py +99 -19
  65. everyrow/ops.py +360 -434
  66. everyrow/session.py +5 -7
  67. everyrow/task.py +68 -115
  68. {everyrow-0.1.9.dist-info → everyrow-0.2.0.dist-info}/METADATA +22 -8
  69. everyrow-0.2.0.dist-info/RECORD +81 -0
  70. everyrow/citations.py +0 -50
  71. everyrow/generated/api/default/continue_task_endpoint_tasks_continue_post.py +0 -208
  72. everyrow/generated/api/default/create_api_key_endpoint_api_keys_create_post.py +0 -186
  73. everyrow/generated/api/default/create_session_endpoint_sessions_create_post.py +0 -198
  74. everyrow/generated/api/default/generate_feedback_endpoint_tasks_generate_feedback_post.py +0 -186
  75. everyrow/generated/api/default/get_artifacts_artifacts_get.py +0 -260
  76. everyrow/generated/api/default/get_default_timeout_seconds_models_default_timeout_seconds_get.py +0 -165
  77. everyrow/generated/api/default/get_metrics_metrics_get.py +0 -80
  78. everyrow/generated/api/default/get_user_usage_usage_get.py +0 -123
  79. everyrow/generated/api/default/healthz_healthz_get.py +0 -127
  80. everyrow/generated/api/default/import_from_google_sheets_import_post.py +0 -170
  81. everyrow/generated/api/default/list_api_keys_endpoint_api_keys_get.py +0 -186
  82. everyrow/generated/api/default/revoke_api_key_endpoint_api_keys_key_id_revoke_post.py +0 -181
  83. everyrow/generated/api/default/revoke_jobs_for_task_jobs_revoke_post.py +0 -164
  84. everyrow/generated/api/default/rollback_to_message_endpoint_tasks_chat_rollback_post.py +0 -186
  85. everyrow/generated/api/default/submit_chat_task_tasks_chat_post.py +0 -164
  86. everyrow/generated/api/default/task_resource_estimation_task_resource_estimation_post.py +0 -319
  87. everyrow/generated/api/default/trigger_workflow_execution_endpoint_workflows_trigger_post.py +0 -166
  88. everyrow/generated/api/default/whoami_whoami_get.py +0 -127
  89. everyrow/generated/models/agent_improvement_instruction.py +0 -69
  90. everyrow/generated/models/agent_query_params.py +0 -383
  91. everyrow/generated/models/agent_query_params_system_prompt_kind_type_0.py +0 -10
  92. everyrow/generated/models/agent_task_args.py +0 -163
  93. everyrow/generated/models/agent_task_args_processing_mode.py +0 -9
  94. everyrow/generated/models/allowed_suggestions.py +0 -9
  95. everyrow/generated/models/api_key_info.py +0 -163
  96. everyrow/generated/models/artifact_changed_payload.py +0 -89
  97. everyrow/generated/models/artifact_group_record.py +0 -363
  98. everyrow/generated/models/artifact_group_record_trace_mapping_type_0.py +0 -46
  99. everyrow/generated/models/artifact_status.py +0 -14
  100. everyrow/generated/models/auto_cohort_conversation_message.py +0 -533
  101. everyrow/generated/models/aux_data.py +0 -128
  102. everyrow/generated/models/aux_data_source_bank.py +0 -59
  103. everyrow/generated/models/chat_message_metadata.py +0 -193
  104. everyrow/generated/models/concatenate_query_params.py +0 -46
  105. everyrow/generated/models/concatenate_request.py +0 -306
  106. everyrow/generated/models/continue_reason.py +0 -9
  107. everyrow/generated/models/controller_improvement_round.py +0 -79
  108. everyrow/generated/models/conversation_changed_payload.py +0 -89
  109. everyrow/generated/models/copy_artifacts_request.py +0 -70
  110. everyrow/generated/models/copy_workflow_request.py +0 -62
  111. everyrow/generated/models/copy_workflow_response.py +0 -70
  112. everyrow/generated/models/create_api_key_request.py +0 -95
  113. everyrow/generated/models/create_api_key_response.py +0 -96
  114. everyrow/generated/models/create_group_query_params.py +0 -61
  115. everyrow/generated/models/create_group_request.py +0 -305
  116. everyrow/generated/models/create_request.py +0 -305
  117. everyrow/generated/models/create_workflow_from_artifact_request.py +0 -92
  118. everyrow/generated/models/create_workflow_from_artifact_response.py +0 -70
  119. everyrow/generated/models/data_frame_method.py +0 -18
  120. everyrow/generated/models/date_cutoffs.py +0 -145
  121. everyrow/generated/models/dedupe_public_params.py +0 -64
  122. everyrow/generated/models/dedupe_request_params.py +0 -311
  123. everyrow/generated/models/deep_merge_public_params.py +0 -143
  124. everyrow/generated/models/deep_merge_request.py +0 -313
  125. everyrow/generated/models/deep_rank_public_params.py +0 -109
  126. everyrow/generated/models/deep_rank_request.py +0 -313
  127. everyrow/generated/models/deep_screen_public_params.py +0 -132
  128. everyrow/generated/models/deep_screen_request.py +0 -313
  129. everyrow/generated/models/derive_expression.py +0 -69
  130. everyrow/generated/models/derive_query_params.py +0 -75
  131. everyrow/generated/models/derive_request.py +0 -307
  132. everyrow/generated/models/document_query_tool.py +0 -12
  133. everyrow/generated/models/drop_columns_query_params.py +0 -61
  134. everyrow/generated/models/drop_columns_request.py +0 -305
  135. everyrow/generated/models/event_type.py +0 -14
  136. everyrow/generated/models/execution_metadata.py +0 -146
  137. everyrow/generated/models/export_request.py +0 -75
  138. everyrow/generated/models/export_to_google_sheets_export_post_response_export_to_google_sheets_export_post.py +0 -46
  139. everyrow/generated/models/filter_query_params.py +0 -91
  140. everyrow/generated/models/filter_request.py +0 -305
  141. everyrow/generated/models/flatten_query_params.py +0 -46
  142. everyrow/generated/models/flatten_request.py +0 -305
  143. everyrow/generated/models/generate_feedback_request.py +0 -62
  144. everyrow/generated/models/group_by_query_params.py +0 -62
  145. everyrow/generated/models/group_by_request.py +0 -305
  146. everyrow/generated/models/healthz_healthz_get_response_healthz_healthz_get.py +0 -46
  147. everyrow/generated/models/image_chat_content_part.py +0 -80
  148. everyrow/generated/models/image_chat_content_part_image_url.py +0 -46
  149. everyrow/generated/models/import_from_google_sheets_import_post_response_import_from_google_sheets_import_post.py +0 -46
  150. everyrow/generated/models/import_request.py +0 -83
  151. everyrow/generated/models/join_query_params.py +0 -73
  152. everyrow/generated/models/join_request.py +0 -305
  153. everyrow/generated/models/map_agent_request_params.py +0 -313
  154. everyrow/generated/models/map_multi_agent_request_params.py +0 -313
  155. everyrow/generated/models/message_created_payload.py +0 -98
  156. everyrow/generated/models/multi_agent_query_params.py +0 -264
  157. everyrow/generated/models/multi_modal_chat_message.py +0 -160
  158. everyrow/generated/models/multi_modal_chat_message_role.py +0 -10
  159. everyrow/generated/models/preview_metadata.py +0 -144
  160. everyrow/generated/models/processing_mode.py +0 -10
  161. everyrow/generated/models/progress_status.py +0 -83
  162. everyrow/generated/models/queue_stats.py +0 -77
  163. everyrow/generated/models/reduce_agent_request_params.py +0 -305
  164. everyrow/generated/models/reduce_multi_agent_request_params.py +0 -305
  165. everyrow/generated/models/resource_estimation_response.py +0 -85
  166. everyrow/generated/models/response_schema_type.py +0 -9
  167. everyrow/generated/models/revoke_api_key_response.py +0 -61
  168. everyrow/generated/models/rollback_to_message_request.py +0 -62
  169. everyrow/generated/models/rollback_to_message_response.py +0 -77
  170. everyrow/generated/models/session_changed_payload.py +0 -69
  171. everyrow/generated/models/simple_chat_message.py +0 -121
  172. everyrow/generated/models/simple_chat_message_role.py +0 -10
  173. everyrow/generated/models/simple_chat_message_with_tool_calls.py +0 -156
  174. everyrow/generated/models/source_database_entry.py +0 -92
  175. everyrow/generated/models/standalone_artifact_record.py +0 -311
  176. everyrow/generated/models/standalone_artifact_record_metadata_type_0.py +0 -46
  177. everyrow/generated/models/standalone_artifact_record_trace_mapping_type_0.py +0 -46
  178. everyrow/generated/models/status_count.py +0 -71
  179. everyrow/generated/models/status_count_status.py +0 -13
  180. everyrow/generated/models/submit_chat_task_body.py +0 -497
  181. everyrow/generated/models/submit_chat_task_body_selected_task_type_type_0.py +0 -11
  182. everyrow/generated/models/submit_task_body.py +0 -745
  183. everyrow/generated/models/task_changed_payload.py +0 -105
  184. everyrow/generated/models/task_effort.py +0 -10
  185. everyrow/generated/models/task_id_request.py +0 -62
  186. everyrow/generated/models/task_insert.py +0 -725
  187. everyrow/generated/models/task_metadata.py +0 -323
  188. everyrow/generated/models/task_response.py +0 -62
  189. everyrow/generated/models/task_type.py +0 -31
  190. everyrow/generated/models/text_chat_content_part.py +0 -74
  191. everyrow/generated/models/tool_response_message.py +0 -127
  192. everyrow/generated/models/toolkit_constants.py +0 -80
  193. everyrow/generated/models/trace_changed_payload.py +0 -94
  194. everyrow/generated/models/trace_info.py +0 -78
  195. everyrow/generated/models/trigger_workflow_execution_request.py +0 -112
  196. everyrow/generated/models/trigger_workflow_execution_request_task_params.py +0 -65
  197. everyrow/generated/models/trigger_workflow_execution_request_task_params_additional_property.py +0 -46
  198. everyrow/generated/models/trigger_workflow_execution_response.py +0 -69
  199. everyrow/generated/models/upload_csv_payload.py +0 -310
  200. everyrow/generated/models/upload_csv_query_params.py +0 -114
  201. everyrow/generated/models/usage_response.py +0 -77
  202. everyrow/generated/models/whoami_whoami_get_response_whoami_whoami_get.py +0 -46
  203. everyrow/generated/models/workflow_leaf_node_input.py +0 -70
  204. everyrow-0.1.9.dist-info/RECORD +0 -183
  205. /everyrow/generated/api/{default → artifacts}/__init__.py +0 -0
  206. {everyrow-0.1.9.dist-info → everyrow-0.2.0.dist-info}/WHEEL +0 -0
  207. {everyrow-0.1.9.dist-info → everyrow-0.2.0.dist-info}/licenses/LICENSE.txt +0 -0
@@ -0,0 +1,315 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
5
+ from uuid import UUID
6
+
7
+ from attrs import define as _attrs_define
8
+ from attrs import field as _attrs_field
9
+
10
+ from ..models.llm_enum_public import LLMEnumPublic
11
+ from ..models.public_effort_level import PublicEffortLevel
12
+ from ..types import UNSET, Unset
13
+
14
+ if TYPE_CHECKING:
15
+ from ..models.agent_map_operation_input_type_1_item import AgentMapOperationInputType1Item
16
+ from ..models.agent_map_operation_input_type_2 import AgentMapOperationInputType2
17
+ from ..models.agent_map_operation_response_schema_type_0 import AgentMapOperationResponseSchemaType0
18
+
19
+
20
+ T = TypeVar("T", bound="AgentMapOperation")
21
+
22
+
23
+ @_attrs_define
24
+ class AgentMapOperation:
25
+ """
26
+ Attributes:
27
+ input_ (AgentMapOperationInputType2 | list[AgentMapOperationInputType1Item] | UUID): The input data as a) the ID
28
+ of an existing artifact, b) a single record in the form of a JSON object, or c) a table of records in the form
29
+ of a list of JSON objects
30
+ task (str): Instructions for the AI agent to execute per row
31
+ session_id (None | Unset | UUID): Session ID. If not provided, a new session is auto-created for this task.
32
+ response_schema (AgentMapOperationResponseSchemaType0 | None | Unset): JSON Schema for the response format. If
33
+ not provided, use default answer schema.
34
+ llm (LLMEnumPublic | None | Unset): LLM to use for each agent. Required when effort_level is not set.
35
+ effort_level (None | PublicEffortLevel | Unset): Effort level preset: low (quick), medium (balanced), high
36
+ (thorough). Mutually exclusive with llm/iteration_budget/include_research - use either a preset or custom
37
+ params, not both. If not specified, you must provide all individual parameters (llm, iteration_budget,
38
+ include_research).
39
+ join_with_input (bool | Unset): If True, merge agent output with input row. If False, output only agent results.
40
+ Default: True.
41
+ iteration_budget (int | None | Unset): Number of agent iterations per row (0-20). Required when effort_level is
42
+ not set.
43
+ include_research (bool | None | Unset): Include research notes in the response. Required when effort_level is
44
+ not set.
45
+ enforce_row_independence (bool | Unset): If True, each agent runs completely independently without being
46
+ affected by other agents. Disables adaptive budget adjustment and straggler management, ensuring agents are not
47
+ hurried or given iteration limits based on other agents' progress. Use this when consistent per-row behavior is
48
+ more important than overall throughput. Default: False.
49
+ """
50
+
51
+ input_: AgentMapOperationInputType2 | list[AgentMapOperationInputType1Item] | UUID
52
+ task: str
53
+ session_id: None | Unset | UUID = UNSET
54
+ response_schema: AgentMapOperationResponseSchemaType0 | None | Unset = UNSET
55
+ llm: LLMEnumPublic | None | Unset = UNSET
56
+ effort_level: None | PublicEffortLevel | Unset = UNSET
57
+ join_with_input: bool | Unset = True
58
+ iteration_budget: int | None | Unset = UNSET
59
+ include_research: bool | None | Unset = UNSET
60
+ enforce_row_independence: bool | Unset = False
61
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
62
+
63
+ def to_dict(self) -> dict[str, Any]:
64
+ from ..models.agent_map_operation_response_schema_type_0 import AgentMapOperationResponseSchemaType0
65
+
66
+ input_: dict[str, Any] | list[dict[str, Any]] | str
67
+ if isinstance(self.input_, UUID):
68
+ input_ = str(self.input_)
69
+ elif isinstance(self.input_, list):
70
+ input_ = []
71
+ for input_type_1_item_data in self.input_:
72
+ input_type_1_item = input_type_1_item_data.to_dict()
73
+ input_.append(input_type_1_item)
74
+
75
+ else:
76
+ input_ = self.input_.to_dict()
77
+
78
+ task = self.task
79
+
80
+ session_id: None | str | Unset
81
+ if isinstance(self.session_id, Unset):
82
+ session_id = UNSET
83
+ elif isinstance(self.session_id, UUID):
84
+ session_id = str(self.session_id)
85
+ else:
86
+ session_id = self.session_id
87
+
88
+ response_schema: dict[str, Any] | None | Unset
89
+ if isinstance(self.response_schema, Unset):
90
+ response_schema = UNSET
91
+ elif isinstance(self.response_schema, AgentMapOperationResponseSchemaType0):
92
+ response_schema = self.response_schema.to_dict()
93
+ else:
94
+ response_schema = self.response_schema
95
+
96
+ llm: None | str | Unset
97
+ if isinstance(self.llm, Unset):
98
+ llm = UNSET
99
+ elif isinstance(self.llm, LLMEnumPublic):
100
+ llm = self.llm.value
101
+ else:
102
+ llm = self.llm
103
+
104
+ effort_level: None | str | Unset
105
+ if isinstance(self.effort_level, Unset):
106
+ effort_level = UNSET
107
+ elif isinstance(self.effort_level, PublicEffortLevel):
108
+ effort_level = self.effort_level.value
109
+ else:
110
+ effort_level = self.effort_level
111
+
112
+ join_with_input = self.join_with_input
113
+
114
+ iteration_budget: int | None | Unset
115
+ if isinstance(self.iteration_budget, Unset):
116
+ iteration_budget = UNSET
117
+ else:
118
+ iteration_budget = self.iteration_budget
119
+
120
+ include_research: bool | None | Unset
121
+ if isinstance(self.include_research, Unset):
122
+ include_research = UNSET
123
+ else:
124
+ include_research = self.include_research
125
+
126
+ enforce_row_independence = self.enforce_row_independence
127
+
128
+ field_dict: dict[str, Any] = {}
129
+ field_dict.update(self.additional_properties)
130
+ field_dict.update(
131
+ {
132
+ "input": input_,
133
+ "task": task,
134
+ }
135
+ )
136
+ if session_id is not UNSET:
137
+ field_dict["session_id"] = session_id
138
+ if response_schema is not UNSET:
139
+ field_dict["response_schema"] = response_schema
140
+ if llm is not UNSET:
141
+ field_dict["llm"] = llm
142
+ if effort_level is not UNSET:
143
+ field_dict["effort_level"] = effort_level
144
+ if join_with_input is not UNSET:
145
+ field_dict["join_with_input"] = join_with_input
146
+ if iteration_budget is not UNSET:
147
+ field_dict["iteration_budget"] = iteration_budget
148
+ if include_research is not UNSET:
149
+ field_dict["include_research"] = include_research
150
+ if enforce_row_independence is not UNSET:
151
+ field_dict["enforce_row_independence"] = enforce_row_independence
152
+
153
+ return field_dict
154
+
155
+ @classmethod
156
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
157
+ from ..models.agent_map_operation_input_type_1_item import AgentMapOperationInputType1Item
158
+ from ..models.agent_map_operation_input_type_2 import AgentMapOperationInputType2
159
+ from ..models.agent_map_operation_response_schema_type_0 import AgentMapOperationResponseSchemaType0
160
+
161
+ d = dict(src_dict)
162
+
163
+ def _parse_input_(data: object) -> AgentMapOperationInputType2 | list[AgentMapOperationInputType1Item] | UUID:
164
+ try:
165
+ if not isinstance(data, str):
166
+ raise TypeError()
167
+ input_type_0 = UUID(data)
168
+
169
+ return input_type_0
170
+ except (TypeError, ValueError, AttributeError, KeyError):
171
+ pass
172
+ try:
173
+ if not isinstance(data, list):
174
+ raise TypeError()
175
+ input_type_1 = []
176
+ _input_type_1 = data
177
+ for input_type_1_item_data in _input_type_1:
178
+ input_type_1_item = AgentMapOperationInputType1Item.from_dict(input_type_1_item_data)
179
+
180
+ input_type_1.append(input_type_1_item)
181
+
182
+ return input_type_1
183
+ except (TypeError, ValueError, AttributeError, KeyError):
184
+ pass
185
+ if not isinstance(data, dict):
186
+ raise TypeError()
187
+ input_type_2 = AgentMapOperationInputType2.from_dict(data)
188
+
189
+ return input_type_2
190
+
191
+ input_ = _parse_input_(d.pop("input"))
192
+
193
+ task = d.pop("task")
194
+
195
+ def _parse_session_id(data: object) -> None | Unset | UUID:
196
+ if data is None:
197
+ return data
198
+ if isinstance(data, Unset):
199
+ return data
200
+ try:
201
+ if not isinstance(data, str):
202
+ raise TypeError()
203
+ session_id_type_0 = UUID(data)
204
+
205
+ return session_id_type_0
206
+ except (TypeError, ValueError, AttributeError, KeyError):
207
+ pass
208
+ return cast(None | Unset | UUID, data)
209
+
210
+ session_id = _parse_session_id(d.pop("session_id", UNSET))
211
+
212
+ def _parse_response_schema(data: object) -> AgentMapOperationResponseSchemaType0 | None | Unset:
213
+ if data is None:
214
+ return data
215
+ if isinstance(data, Unset):
216
+ return data
217
+ try:
218
+ if not isinstance(data, dict):
219
+ raise TypeError()
220
+ response_schema_type_0 = AgentMapOperationResponseSchemaType0.from_dict(data)
221
+
222
+ return response_schema_type_0
223
+ except (TypeError, ValueError, AttributeError, KeyError):
224
+ pass
225
+ return cast(AgentMapOperationResponseSchemaType0 | None | Unset, data)
226
+
227
+ response_schema = _parse_response_schema(d.pop("response_schema", UNSET))
228
+
229
+ def _parse_llm(data: object) -> LLMEnumPublic | None | Unset:
230
+ if data is None:
231
+ return data
232
+ if isinstance(data, Unset):
233
+ return data
234
+ try:
235
+ if not isinstance(data, str):
236
+ raise TypeError()
237
+ llm_type_0 = LLMEnumPublic(data)
238
+
239
+ return llm_type_0
240
+ except (TypeError, ValueError, AttributeError, KeyError):
241
+ pass
242
+ return cast(LLMEnumPublic | None | Unset, data)
243
+
244
+ llm = _parse_llm(d.pop("llm", UNSET))
245
+
246
+ def _parse_effort_level(data: object) -> None | PublicEffortLevel | Unset:
247
+ if data is None:
248
+ return data
249
+ if isinstance(data, Unset):
250
+ return data
251
+ try:
252
+ if not isinstance(data, str):
253
+ raise TypeError()
254
+ effort_level_type_0 = PublicEffortLevel(data)
255
+
256
+ return effort_level_type_0
257
+ except (TypeError, ValueError, AttributeError, KeyError):
258
+ pass
259
+ return cast(None | PublicEffortLevel | Unset, data)
260
+
261
+ effort_level = _parse_effort_level(d.pop("effort_level", UNSET))
262
+
263
+ join_with_input = d.pop("join_with_input", UNSET)
264
+
265
+ def _parse_iteration_budget(data: object) -> int | None | Unset:
266
+ if data is None:
267
+ return data
268
+ if isinstance(data, Unset):
269
+ return data
270
+ return cast(int | None | Unset, data)
271
+
272
+ iteration_budget = _parse_iteration_budget(d.pop("iteration_budget", UNSET))
273
+
274
+ def _parse_include_research(data: object) -> bool | None | Unset:
275
+ if data is None:
276
+ return data
277
+ if isinstance(data, Unset):
278
+ return data
279
+ return cast(bool | None | Unset, data)
280
+
281
+ include_research = _parse_include_research(d.pop("include_research", UNSET))
282
+
283
+ enforce_row_independence = d.pop("enforce_row_independence", UNSET)
284
+
285
+ agent_map_operation = cls(
286
+ input_=input_,
287
+ task=task,
288
+ session_id=session_id,
289
+ response_schema=response_schema,
290
+ llm=llm,
291
+ effort_level=effort_level,
292
+ join_with_input=join_with_input,
293
+ iteration_budget=iteration_budget,
294
+ include_research=include_research,
295
+ enforce_row_independence=enforce_row_independence,
296
+ )
297
+
298
+ agent_map_operation.additional_properties = d
299
+ return agent_map_operation
300
+
301
+ @property
302
+ def additional_keys(self) -> list[str]:
303
+ return list(self.additional_properties.keys())
304
+
305
+ def __getitem__(self, key: str) -> Any:
306
+ return self.additional_properties[key]
307
+
308
+ def __setitem__(self, key: str, value: Any) -> None:
309
+ self.additional_properties[key] = value
310
+
311
+ def __delitem__(self, key: str) -> None:
312
+ del self.additional_properties[key]
313
+
314
+ def __contains__(self, key: str) -> bool:
315
+ return key in self.additional_properties
@@ -6,11 +6,11 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="ArtifactGroupRecordMetadataType0")
9
+ T = TypeVar("T", bound="AgentMapOperationInputType1Item")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class ArtifactGroupRecordMetadataType0:
13
+ class AgentMapOperationInputType1Item:
14
14
  """ """
15
15
 
16
16
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -24,10 +24,10 @@ class ArtifactGroupRecordMetadataType0:
24
24
  @classmethod
25
25
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
26
  d = dict(src_dict)
27
- artifact_group_record_metadata_type_0 = cls()
27
+ agent_map_operation_input_type_1_item = cls()
28
28
 
29
- artifact_group_record_metadata_type_0.additional_properties = d
30
- return artifact_group_record_metadata_type_0
29
+ agent_map_operation_input_type_1_item.additional_properties = d
30
+ return agent_map_operation_input_type_1_item
31
31
 
32
32
  @property
33
33
  def additional_keys(self) -> list[str]:
@@ -0,0 +1,46 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ T = TypeVar("T", bound="AgentMapOperationInputType2")
10
+
11
+
12
+ @_attrs_define
13
+ class AgentMapOperationInputType2:
14
+ """ """
15
+
16
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
17
+
18
+ def to_dict(self) -> dict[str, Any]:
19
+ field_dict: dict[str, Any] = {}
20
+ field_dict.update(self.additional_properties)
21
+
22
+ return field_dict
23
+
24
+ @classmethod
25
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
+ d = dict(src_dict)
27
+ agent_map_operation_input_type_2 = cls()
28
+
29
+ agent_map_operation_input_type_2.additional_properties = d
30
+ return agent_map_operation_input_type_2
31
+
32
+ @property
33
+ def additional_keys(self) -> list[str]:
34
+ return list(self.additional_properties.keys())
35
+
36
+ def __getitem__(self, key: str) -> Any:
37
+ return self.additional_properties[key]
38
+
39
+ def __setitem__(self, key: str, value: Any) -> None:
40
+ self.additional_properties[key] = value
41
+
42
+ def __delitem__(self, key: str) -> None:
43
+ del self.additional_properties[key]
44
+
45
+ def __contains__(self, key: str) -> bool:
46
+ return key in self.additional_properties
@@ -6,11 +6,11 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="StandaloneArtifactRecordAnalysisType0")
9
+ T = TypeVar("T", bound="AgentMapOperationResponseSchemaType0")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class StandaloneArtifactRecordAnalysisType0:
13
+ class AgentMapOperationResponseSchemaType0:
14
14
  """ """
15
15
 
16
16
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
@@ -24,10 +24,10 @@ class StandaloneArtifactRecordAnalysisType0:
24
24
  @classmethod
25
25
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
26
  d = dict(src_dict)
27
- standalone_artifact_record_analysis_type_0 = cls()
27
+ agent_map_operation_response_schema_type_0 = cls()
28
28
 
29
- standalone_artifact_record_analysis_type_0.additional_properties = d
30
- return standalone_artifact_record_analysis_type_0
29
+ agent_map_operation_response_schema_type_0.additional_properties = d
30
+ return agent_map_operation_response_schema_type_0
31
31
 
32
32
  @property
33
33
  def additional_keys(self) -> list[str]:
@@ -6,27 +6,28 @@ from typing import Any, TypeVar
6
6
  from attrs import define as _attrs_define
7
7
  from attrs import field as _attrs_field
8
8
 
9
- T = TypeVar("T", bound="CreateQueryParams")
9
+ T = TypeVar("T", bound="BillingResponse")
10
10
 
11
11
 
12
12
  @_attrs_define
13
- class CreateQueryParams:
14
- """
13
+ class BillingResponse:
14
+ """Response containing the user's current billing balance.
15
+
15
16
  Attributes:
16
- data_to_create (Any):
17
+ current_balance_dollars (float):
17
18
  """
18
19
 
19
- data_to_create: Any
20
+ current_balance_dollars: float
20
21
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
22
 
22
23
  def to_dict(self) -> dict[str, Any]:
23
- data_to_create = self.data_to_create
24
+ current_balance_dollars = self.current_balance_dollars
24
25
 
25
26
  field_dict: dict[str, Any] = {}
26
27
  field_dict.update(self.additional_properties)
27
28
  field_dict.update(
28
29
  {
29
- "data_to_create": data_to_create,
30
+ "current_balance_dollars": current_balance_dollars,
30
31
  }
31
32
  )
32
33
 
@@ -35,14 +36,14 @@ class CreateQueryParams:
35
36
  @classmethod
36
37
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
37
38
  d = dict(src_dict)
38
- data_to_create = d.pop("data_to_create")
39
+ current_balance_dollars = d.pop("current_balance_dollars")
39
40
 
40
- create_query_params = cls(
41
- data_to_create=data_to_create,
41
+ billing_response = cls(
42
+ current_balance_dollars=current_balance_dollars,
42
43
  )
43
44
 
44
- create_query_params.additional_properties = d
45
- return create_query_params
45
+ billing_response.additional_properties = d
46
+ return billing_response
46
47
 
47
48
  @property
48
49
  def additional_keys(self) -> list[str]:
@@ -1,46 +1,46 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from collections.abc import Mapping
4
- from typing import Any, TypeVar, cast
4
+ from typing import TYPE_CHECKING, Any, TypeVar, cast
5
5
  from uuid import UUID
6
6
 
7
7
  from attrs import define as _attrs_define
8
8
  from attrs import field as _attrs_field
9
9
 
10
- from ..models.continue_reason import ContinueReason
11
10
  from ..types import UNSET, Unset
12
11
 
13
- T = TypeVar("T", bound="ContinueTaskRequest")
12
+ if TYPE_CHECKING:
13
+ from ..models.create_artifact_request_data_type_0_item import CreateArtifactRequestDataType0Item
14
+ from ..models.create_artifact_request_data_type_1 import CreateArtifactRequestDataType1
15
+
16
+
17
+ T = TypeVar("T", bound="CreateArtifactRequest")
14
18
 
15
19
 
16
20
  @_attrs_define
17
- class ContinueTaskRequest:
21
+ class CreateArtifactRequest:
18
22
  """
19
23
  Attributes:
20
- task_id (UUID):
21
- reason (ContinueReason):
22
- conversation_id (None | Unset | UUID):
23
- session_id (None | Unset | UUID):
24
+ data (CreateArtifactRequestDataType1 | list[CreateArtifactRequestDataType0Item]): The data to store as an
25
+ artifact. A list of JSON objects creates a table (group artifact). A single JSON object creates a scalar
26
+ (standalone artifact).
27
+ session_id (None | Unset | UUID): Session ID. If not provided, a new session is auto-created.
24
28
  """
25
29
 
26
- task_id: UUID
27
- reason: ContinueReason
28
- conversation_id: None | Unset | UUID = UNSET
30
+ data: CreateArtifactRequestDataType1 | list[CreateArtifactRequestDataType0Item]
29
31
  session_id: None | Unset | UUID = UNSET
30
32
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
31
33
 
32
34
  def to_dict(self) -> dict[str, Any]:
33
- task_id = str(self.task_id)
35
+ data: dict[str, Any] | list[dict[str, Any]]
36
+ if isinstance(self.data, list):
37
+ data = []
38
+ for data_type_0_item_data in self.data:
39
+ data_type_0_item = data_type_0_item_data.to_dict()
40
+ data.append(data_type_0_item)
34
41
 
35
- reason = self.reason.value
36
-
37
- conversation_id: None | str | Unset
38
- if isinstance(self.conversation_id, Unset):
39
- conversation_id = UNSET
40
- elif isinstance(self.conversation_id, UUID):
41
- conversation_id = str(self.conversation_id)
42
42
  else:
43
- conversation_id = self.conversation_id
43
+ data = self.data.to_dict()
44
44
 
45
45
  session_id: None | str | Unset
46
46
  if isinstance(self.session_id, Unset):
@@ -54,12 +54,9 @@ class ContinueTaskRequest:
54
54
  field_dict.update(self.additional_properties)
55
55
  field_dict.update(
56
56
  {
57
- "task_id": task_id,
58
- "reason": reason,
57
+ "data": data,
59
58
  }
60
59
  )
61
- if conversation_id is not UNSET:
62
- field_dict["conversation_id"] = conversation_id
63
60
  if session_id is not UNSET:
64
61
  field_dict["session_id"] = session_id
65
62
 
@@ -67,27 +64,32 @@ class ContinueTaskRequest:
67
64
 
68
65
  @classmethod
69
66
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
70
- d = dict(src_dict)
71
- task_id = UUID(d.pop("task_id"))
67
+ from ..models.create_artifact_request_data_type_0_item import CreateArtifactRequestDataType0Item
68
+ from ..models.create_artifact_request_data_type_1 import CreateArtifactRequestDataType1
72
69
 
73
- reason = ContinueReason(d.pop("reason"))
70
+ d = dict(src_dict)
74
71
 
75
- def _parse_conversation_id(data: object) -> None | Unset | UUID:
76
- if data is None:
77
- return data
78
- if isinstance(data, Unset):
79
- return data
72
+ def _parse_data(data: object) -> CreateArtifactRequestDataType1 | list[CreateArtifactRequestDataType0Item]:
80
73
  try:
81
- if not isinstance(data, str):
74
+ if not isinstance(data, list):
82
75
  raise TypeError()
83
- conversation_id_type_0 = UUID(data)
76
+ data_type_0 = []
77
+ _data_type_0 = data
78
+ for data_type_0_item_data in _data_type_0:
79
+ data_type_0_item = CreateArtifactRequestDataType0Item.from_dict(data_type_0_item_data)
84
80
 
85
- return conversation_id_type_0
81
+ data_type_0.append(data_type_0_item)
82
+
83
+ return data_type_0
86
84
  except (TypeError, ValueError, AttributeError, KeyError):
87
85
  pass
88
- return cast(None | Unset | UUID, data)
86
+ if not isinstance(data, dict):
87
+ raise TypeError()
88
+ data_type_1 = CreateArtifactRequestDataType1.from_dict(data)
89
+
90
+ return data_type_1
89
91
 
90
- conversation_id = _parse_conversation_id(d.pop("conversation_id", UNSET))
92
+ data = _parse_data(d.pop("data"))
91
93
 
92
94
  def _parse_session_id(data: object) -> None | Unset | UUID:
93
95
  if data is None:
@@ -106,15 +108,13 @@ class ContinueTaskRequest:
106
108
 
107
109
  session_id = _parse_session_id(d.pop("session_id", UNSET))
108
110
 
109
- continue_task_request = cls(
110
- task_id=task_id,
111
- reason=reason,
112
- conversation_id=conversation_id,
111
+ create_artifact_request = cls(
112
+ data=data,
113
113
  session_id=session_id,
114
114
  )
115
115
 
116
- continue_task_request.additional_properties = d
117
- return continue_task_request
116
+ create_artifact_request.additional_properties = d
117
+ return create_artifact_request
118
118
 
119
119
  @property
120
120
  def additional_keys(self) -> list[str]:
@@ -0,0 +1,46 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ T = TypeVar("T", bound="CreateArtifactRequestDataType0Item")
10
+
11
+
12
+ @_attrs_define
13
+ class CreateArtifactRequestDataType0Item:
14
+ """ """
15
+
16
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
17
+
18
+ def to_dict(self) -> dict[str, Any]:
19
+ field_dict: dict[str, Any] = {}
20
+ field_dict.update(self.additional_properties)
21
+
22
+ return field_dict
23
+
24
+ @classmethod
25
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
26
+ d = dict(src_dict)
27
+ create_artifact_request_data_type_0_item = cls()
28
+
29
+ create_artifact_request_data_type_0_item.additional_properties = d
30
+ return create_artifact_request_data_type_0_item
31
+
32
+ @property
33
+ def additional_keys(self) -> list[str]:
34
+ return list(self.additional_properties.keys())
35
+
36
+ def __getitem__(self, key: str) -> Any:
37
+ return self.additional_properties[key]
38
+
39
+ def __setitem__(self, key: str, value: Any) -> None:
40
+ self.additional_properties[key] = value
41
+
42
+ def __delitem__(self, key: str) -> None:
43
+ del self.additional_properties[key]
44
+
45
+ def __contains__(self, key: str) -> bool:
46
+ return key in self.additional_properties