everyrow 0.1.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 (183) hide show
  1. everyrow/__init__.py +4 -0
  2. everyrow/api_utils.py +45 -0
  3. everyrow/citations.py +46 -0
  4. everyrow/constants.py +4 -0
  5. everyrow/generated/__init__.py +8 -0
  6. everyrow/generated/api/__init__.py +1 -0
  7. everyrow/generated/api/default/__init__.py +1 -0
  8. everyrow/generated/api/default/continue_task_endpoint_tasks_continue_post.py +208 -0
  9. everyrow/generated/api/default/copy_artifacts_artifacts_copy_post.py +166 -0
  10. everyrow/generated/api/default/copy_workflow_endpoint_workflows_copy_post.py +166 -0
  11. everyrow/generated/api/default/create_api_key_endpoint_api_keys_create_post.py +186 -0
  12. everyrow/generated/api/default/create_session_endpoint_sessions_create_post.py +198 -0
  13. everyrow/generated/api/default/create_workflow_from_artifact_workflows_from_artifact_post.py +174 -0
  14. everyrow/generated/api/default/export_to_google_sheets_export_post.py +168 -0
  15. everyrow/generated/api/default/generate_feedback_endpoint_tasks_generate_feedback_post.py +186 -0
  16. everyrow/generated/api/default/get_artifacts_artifacts_get.py +260 -0
  17. everyrow/generated/api/default/get_default_timeout_seconds_models_default_timeout_seconds_get.py +165 -0
  18. everyrow/generated/api/default/get_job_progress_for_task_jobs_progress_get.py +167 -0
  19. everyrow/generated/api/default/get_metrics_metrics_get.py +80 -0
  20. everyrow/generated/api/default/get_queues_stats_jobs_queues_get.py +123 -0
  21. everyrow/generated/api/default/get_task_status_endpoint_tasks_task_id_status_get.py +193 -0
  22. everyrow/generated/api/default/get_user_usage_usage_get.py +123 -0
  23. everyrow/generated/api/default/healthz_healthz_get.py +127 -0
  24. everyrow/generated/api/default/import_from_google_sheets_import_post.py +170 -0
  25. everyrow/generated/api/default/interrupt_chat_task_tasks_chat_interrupt_post.py +172 -0
  26. everyrow/generated/api/default/list_api_keys_endpoint_api_keys_get.py +186 -0
  27. everyrow/generated/api/default/re_execute_task_endpoint_tasks_re_execute_post.py +192 -0
  28. everyrow/generated/api/default/revoke_api_key_endpoint_api_keys_key_id_revoke_post.py +181 -0
  29. everyrow/generated/api/default/revoke_jobs_for_task_jobs_revoke_post.py +164 -0
  30. everyrow/generated/api/default/rollback_to_message_endpoint_tasks_chat_rollback_post.py +186 -0
  31. everyrow/generated/api/default/submit_chat_task_tasks_chat_post.py +164 -0
  32. everyrow/generated/api/default/submit_task_tasks_post.py +172 -0
  33. everyrow/generated/api/default/task_resource_estimation_task_resource_estimation_post.py +319 -0
  34. everyrow/generated/api/default/trigger_workflow_execution_endpoint_workflows_trigger_post.py +166 -0
  35. everyrow/generated/api/default/whoami_whoami_get.py +127 -0
  36. everyrow/generated/client.py +268 -0
  37. everyrow/generated/errors.py +16 -0
  38. everyrow/generated/models/__init__.py +281 -0
  39. everyrow/generated/models/agent_improvement_instruction.py +69 -0
  40. everyrow/generated/models/agent_query_params.py +362 -0
  41. everyrow/generated/models/agent_query_params_system_prompt_kind_type_0.py +10 -0
  42. everyrow/generated/models/agent_task_args.py +163 -0
  43. everyrow/generated/models/agent_task_args_processing_mode.py +9 -0
  44. everyrow/generated/models/allowed_suggestions.py +8 -0
  45. everyrow/generated/models/api_key_info.py +163 -0
  46. everyrow/generated/models/artifact_changed_payload.py +89 -0
  47. everyrow/generated/models/artifact_group_record.py +330 -0
  48. everyrow/generated/models/artifact_group_record_metadata_type_0.py +46 -0
  49. everyrow/generated/models/artifact_group_record_trace_mapping_type_0.py +46 -0
  50. everyrow/generated/models/artifact_status.py +14 -0
  51. everyrow/generated/models/auto_cohort_conversation_message.py +533 -0
  52. everyrow/generated/models/aux_data.py +128 -0
  53. everyrow/generated/models/aux_data_source_bank.py +59 -0
  54. everyrow/generated/models/chat_completion_message_tool_call.py +46 -0
  55. everyrow/generated/models/chat_message_metadata.py +193 -0
  56. everyrow/generated/models/concatenate_query_params.py +46 -0
  57. everyrow/generated/models/concatenate_request.py +306 -0
  58. everyrow/generated/models/continue_reason.py +9 -0
  59. everyrow/generated/models/continue_task_request.py +133 -0
  60. everyrow/generated/models/controller_improvement_round.py +79 -0
  61. everyrow/generated/models/conversation_changed_payload.py +89 -0
  62. everyrow/generated/models/copy_artifacts_request.py +70 -0
  63. everyrow/generated/models/copy_artifacts_response.py +70 -0
  64. everyrow/generated/models/copy_workflow_request.py +62 -0
  65. everyrow/generated/models/copy_workflow_response.py +70 -0
  66. everyrow/generated/models/create_api_key_request.py +95 -0
  67. everyrow/generated/models/create_api_key_response.py +96 -0
  68. everyrow/generated/models/create_group_query_params.py +61 -0
  69. everyrow/generated/models/create_group_request.py +305 -0
  70. everyrow/generated/models/create_query_params.py +61 -0
  71. everyrow/generated/models/create_request.py +305 -0
  72. everyrow/generated/models/create_session_request.py +62 -0
  73. everyrow/generated/models/create_session_response.py +63 -0
  74. everyrow/generated/models/create_workflow_from_artifact_request.py +92 -0
  75. everyrow/generated/models/create_workflow_from_artifact_response.py +70 -0
  76. everyrow/generated/models/data_frame_method.py +18 -0
  77. everyrow/generated/models/date_cutoffs.py +145 -0
  78. everyrow/generated/models/dedupe_mode.py +9 -0
  79. everyrow/generated/models/dedupe_query_params.py +174 -0
  80. everyrow/generated/models/dedupe_request_params.py +311 -0
  81. everyrow/generated/models/deep_merge_public_params.py +143 -0
  82. everyrow/generated/models/deep_merge_request.py +313 -0
  83. everyrow/generated/models/deep_rank_public_params.py +99 -0
  84. everyrow/generated/models/deep_rank_request.py +313 -0
  85. everyrow/generated/models/deep_screen_public_params.py +122 -0
  86. everyrow/generated/models/deep_screen_request.py +313 -0
  87. everyrow/generated/models/derive_expression.py +69 -0
  88. everyrow/generated/models/derive_query_params.py +75 -0
  89. everyrow/generated/models/derive_request.py +307 -0
  90. everyrow/generated/models/document_query_tool.py +12 -0
  91. everyrow/generated/models/drop_columns_query_params.py +61 -0
  92. everyrow/generated/models/drop_columns_request.py +305 -0
  93. everyrow/generated/models/embedding_models.py +9 -0
  94. everyrow/generated/models/event_type.py +14 -0
  95. everyrow/generated/models/execution_metadata.py +146 -0
  96. everyrow/generated/models/export_request.py +75 -0
  97. everyrow/generated/models/export_request_token_data.py +46 -0
  98. everyrow/generated/models/export_to_google_sheets_export_post_response_export_to_google_sheets_export_post.py +46 -0
  99. everyrow/generated/models/filter_query_params.py +91 -0
  100. everyrow/generated/models/filter_request.py +305 -0
  101. everyrow/generated/models/flatten_query_params.py +46 -0
  102. everyrow/generated/models/flatten_request.py +305 -0
  103. everyrow/generated/models/generate_feedback_request.py +62 -0
  104. everyrow/generated/models/group_by_query_params.py +62 -0
  105. everyrow/generated/models/group_by_request.py +305 -0
  106. everyrow/generated/models/healthz_healthz_get_response_healthz_healthz_get.py +46 -0
  107. everyrow/generated/models/http_validation_error.py +79 -0
  108. everyrow/generated/models/image_chat_content_part.py +80 -0
  109. everyrow/generated/models/image_chat_content_part_image_url.py +46 -0
  110. everyrow/generated/models/import_from_google_sheets_import_post_response_import_from_google_sheets_import_post.py +46 -0
  111. everyrow/generated/models/import_request.py +83 -0
  112. everyrow/generated/models/import_request_token_data.py +46 -0
  113. everyrow/generated/models/insufficient_balance_error.py +81 -0
  114. everyrow/generated/models/join_query_params.py +73 -0
  115. everyrow/generated/models/join_request.py +305 -0
  116. everyrow/generated/models/llm_enum.py +54 -0
  117. everyrow/generated/models/map_agent_request_params.py +313 -0
  118. everyrow/generated/models/map_multi_agent_request_params.py +313 -0
  119. everyrow/generated/models/message_created_payload.py +98 -0
  120. everyrow/generated/models/multi_agent_effort_level.py +10 -0
  121. everyrow/generated/models/multi_agent_query_params.py +264 -0
  122. everyrow/generated/models/multi_modal_chat_message.py +160 -0
  123. everyrow/generated/models/multi_modal_chat_message_role.py +10 -0
  124. everyrow/generated/models/preview_metadata.py +144 -0
  125. everyrow/generated/models/processing_mode.py +10 -0
  126. everyrow/generated/models/progress_status.py +83 -0
  127. everyrow/generated/models/queue_stats.py +77 -0
  128. everyrow/generated/models/reduce_agent_request_params.py +305 -0
  129. everyrow/generated/models/reduce_multi_agent_request_params.py +305 -0
  130. everyrow/generated/models/resource_estimation_response.py +85 -0
  131. everyrow/generated/models/response_schema_type.py +9 -0
  132. everyrow/generated/models/revoke_api_key_response.py +61 -0
  133. everyrow/generated/models/rollback_to_message_request.py +62 -0
  134. everyrow/generated/models/rollback_to_message_response.py +77 -0
  135. everyrow/generated/models/session_changed_payload.py +69 -0
  136. everyrow/generated/models/simple_chat_message.py +121 -0
  137. everyrow/generated/models/simple_chat_message_role.py +10 -0
  138. everyrow/generated/models/simple_chat_message_with_tool_calls.py +156 -0
  139. everyrow/generated/models/source_database_entry.py +92 -0
  140. everyrow/generated/models/standalone_artifact_record.py +278 -0
  141. everyrow/generated/models/standalone_artifact_record_metadata_type_0.py +46 -0
  142. everyrow/generated/models/standalone_artifact_record_trace_mapping_type_0.py +46 -0
  143. everyrow/generated/models/status_count.py +71 -0
  144. everyrow/generated/models/status_count_status.py +13 -0
  145. everyrow/generated/models/submit_chat_task_body.py +497 -0
  146. everyrow/generated/models/submit_chat_task_body_selected_task_type_type_0.py +11 -0
  147. everyrow/generated/models/submit_task_body.py +745 -0
  148. everyrow/generated/models/task_changed_payload.py +105 -0
  149. everyrow/generated/models/task_effort.py +10 -0
  150. everyrow/generated/models/task_id_request.py +62 -0
  151. everyrow/generated/models/task_insert.py +725 -0
  152. everyrow/generated/models/task_insert_query_params.py +46 -0
  153. everyrow/generated/models/task_metadata.py +323 -0
  154. everyrow/generated/models/task_metadata_cols_to_rename_type_0.py +46 -0
  155. everyrow/generated/models/task_response.py +62 -0
  156. everyrow/generated/models/task_status.py +12 -0
  157. everyrow/generated/models/task_status_response.py +112 -0
  158. everyrow/generated/models/task_type.py +31 -0
  159. everyrow/generated/models/text_chat_content_part.py +74 -0
  160. everyrow/generated/models/tool_response_message.py +127 -0
  161. everyrow/generated/models/toolkit_constants.py +80 -0
  162. everyrow/generated/models/trace_changed_payload.py +94 -0
  163. everyrow/generated/models/trace_info.py +78 -0
  164. everyrow/generated/models/trigger_workflow_execution_request.py +112 -0
  165. everyrow/generated/models/trigger_workflow_execution_request_task_params.py +65 -0
  166. everyrow/generated/models/trigger_workflow_execution_request_task_params_additional_property.py +46 -0
  167. everyrow/generated/models/trigger_workflow_execution_response.py +69 -0
  168. everyrow/generated/models/upload_csv_payload.py +310 -0
  169. everyrow/generated/models/upload_csv_query_params.py +114 -0
  170. everyrow/generated/models/usage_response.py +77 -0
  171. everyrow/generated/models/validation_error.py +90 -0
  172. everyrow/generated/models/whoami_whoami_get_response_whoami_whoami_get.py +46 -0
  173. everyrow/generated/models/workflow_leaf_node_input.py +70 -0
  174. everyrow/generated/py.typed +1 -0
  175. everyrow/generated/types.py +54 -0
  176. everyrow/ops.py +672 -0
  177. everyrow/result.py +25 -0
  178. everyrow/session.py +53 -0
  179. everyrow/task.py +143 -0
  180. everyrow-0.1.0.dist-info/METADATA +238 -0
  181. everyrow-0.1.0.dist-info/RECORD +183 -0
  182. everyrow-0.1.0.dist-info/WHEEL +4 -0
  183. everyrow-0.1.0.dist-info/licenses/LICENSE.txt +21 -0
@@ -0,0 +1,69 @@
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="AgentImprovementInstruction")
10
+
11
+
12
+ @_attrs_define
13
+ class AgentImprovementInstruction:
14
+ """
15
+ Attributes:
16
+ agent_id (str): Target agent ID
17
+ feedback (str): Additional work to increase the quality of the agent's solution
18
+ """
19
+
20
+ agent_id: str
21
+ feedback: str
22
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+ agent_id = self.agent_id
26
+
27
+ feedback = self.feedback
28
+
29
+ field_dict: dict[str, Any] = {}
30
+ field_dict.update(self.additional_properties)
31
+ field_dict.update(
32
+ {
33
+ "agent_id": agent_id,
34
+ "feedback": feedback,
35
+ }
36
+ )
37
+
38
+ return field_dict
39
+
40
+ @classmethod
41
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
42
+ d = dict(src_dict)
43
+ agent_id = d.pop("agent_id")
44
+
45
+ feedback = d.pop("feedback")
46
+
47
+ agent_improvement_instruction = cls(
48
+ agent_id=agent_id,
49
+ feedback=feedback,
50
+ )
51
+
52
+ agent_improvement_instruction.additional_properties = d
53
+ return agent_improvement_instruction
54
+
55
+ @property
56
+ def additional_keys(self) -> list[str]:
57
+ return list(self.additional_properties.keys())
58
+
59
+ def __getitem__(self, key: str) -> Any:
60
+ return self.additional_properties[key]
61
+
62
+ def __setitem__(self, key: str, value: Any) -> None:
63
+ self.additional_properties[key] = value
64
+
65
+ def __delitem__(self, key: str) -> None:
66
+ del self.additional_properties[key]
67
+
68
+ def __contains__(self, key: str) -> bool:
69
+ return key in self.additional_properties
@@ -0,0 +1,362 @@
1
+ from __future__ import annotations
2
+
3
+ from collections.abc import Mapping
4
+ from typing import Any, TypeVar, cast
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+
9
+ from ..models.agent_query_params_system_prompt_kind_type_0 import AgentQueryParamsSystemPromptKindType0
10
+ from ..models.document_query_tool import DocumentQueryTool
11
+ from ..models.llm_enum import LLMEnum
12
+ from ..models.response_schema_type import ResponseSchemaType
13
+ from ..models.task_effort import TaskEffort
14
+ from ..types import UNSET, Unset
15
+
16
+ T = TypeVar("T", bound="AgentQueryParams")
17
+
18
+
19
+ @_attrs_define
20
+ class AgentQueryParams:
21
+ """
22
+ Attributes:
23
+ task (str): The user-specified task
24
+ llm (LLMEnum | Unset):
25
+ agenda (str | Unset): Research agenda, if any Default: ''.
26
+ selected_input_fields (list[str] | None | Unset): Fields to select from the input artifacts. If None, select all
27
+ fields.
28
+ apply_at_depth (int | Unset): Default: -1.
29
+ preview (bool | Unset): When true, process only the first 5 inputs in map/map-expand operations Default: False.
30
+ is_expand (bool | Unset): When true, treat outputs as lists (expand behavior) Default: False.
31
+ flatten_map_expand (bool | Unset): When true with MAP mode and is_expand, flatten expanded results into single
32
+ group instead of nested groups Default: True.
33
+ response_schema (Any | Unset): Default: {'_model_name': 'Root', 'answer': {'description': 'The response
34
+ answer', 'optional': False, 'type': 'str'}}.
35
+ response_schema_type (ResponseSchemaType | Unset): Type of response schema format.
36
+ number_of_steps (int | None | Unset): The number of agent iterations allowed to complete the task, after which
37
+ the agent is forced to provide an answer, if it has not already done so. If not specified, defaults based on
38
+ effort_level.
39
+ generate_assumptions (bool | Unset): Default: False.
40
+ include_provenance_and_notes (bool | Unset): Whether to include an additional provenance and notes field in the
41
+ output and prompt Default: True.
42
+ agent_step_timeout_seconds (int | Unset): Agent step timeout in seconds (8-1400) Default: 300.
43
+ timeout_seconds (int | Unset): Full task timeout in seconds (20-360000) Default: 600.
44
+ retries (int | Unset): Number of retries (0-5) Default: 2.
45
+ enable_communication (bool | Unset): Whether to enable communication between agents Default: False.
46
+ max_feedback_rounds (int | Unset): Maximum number of rounds in orchestrator v2 mode.1 is equivalent to a
47
+ standard map task. 2 is map -> feedback -> map Default: 1.
48
+ document_query_tool (DocumentQueryTool | Unset): Document query tool to use.
49
+ effort_level (TaskEffort | Unset): Effort level for task execution (includes MINIMAL for non-agent execution).
50
+ system_prompt_kind (AgentQueryParamsSystemPromptKindType0 | None | Unset): System prompt variant to use. If not
51
+ specified, defaults based on effort_level (speed_focused for LOW, persistent for HIGH)
52
+ batch_size (int | None | Unset): The number of artifacts to process in a single batch. If set, enables batched
53
+ agent processing.
54
+ """
55
+
56
+ task: str
57
+ llm: LLMEnum | Unset = UNSET
58
+ agenda: str | Unset = ""
59
+ selected_input_fields: list[str] | None | Unset = UNSET
60
+ apply_at_depth: int | Unset = -1
61
+ preview: bool | Unset = False
62
+ is_expand: bool | Unset = False
63
+ flatten_map_expand: bool | Unset = True
64
+ response_schema: Any | Unset = {
65
+ "_model_name": "Root",
66
+ "answer": {"description": "The response answer", "optional": False, "type": "str"},
67
+ }
68
+ response_schema_type: ResponseSchemaType | Unset = UNSET
69
+ number_of_steps: int | None | Unset = UNSET
70
+ generate_assumptions: bool | Unset = False
71
+ include_provenance_and_notes: bool | Unset = True
72
+ agent_step_timeout_seconds: int | Unset = 300
73
+ timeout_seconds: int | Unset = 600
74
+ retries: int | Unset = 2
75
+ enable_communication: bool | Unset = False
76
+ max_feedback_rounds: int | Unset = 1
77
+ document_query_tool: DocumentQueryTool | Unset = UNSET
78
+ effort_level: TaskEffort | Unset = UNSET
79
+ system_prompt_kind: AgentQueryParamsSystemPromptKindType0 | None | Unset = UNSET
80
+ batch_size: int | None | Unset = UNSET
81
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
82
+
83
+ def to_dict(self) -> dict[str, Any]:
84
+ task = self.task
85
+
86
+ llm: str | Unset = UNSET
87
+ if not isinstance(self.llm, Unset):
88
+ llm = self.llm.value
89
+
90
+ agenda = self.agenda
91
+
92
+ selected_input_fields: list[str] | None | Unset
93
+ if isinstance(self.selected_input_fields, Unset):
94
+ selected_input_fields = UNSET
95
+ elif isinstance(self.selected_input_fields, list):
96
+ selected_input_fields = self.selected_input_fields
97
+
98
+ else:
99
+ selected_input_fields = self.selected_input_fields
100
+
101
+ apply_at_depth = self.apply_at_depth
102
+
103
+ preview = self.preview
104
+
105
+ is_expand = self.is_expand
106
+
107
+ flatten_map_expand = self.flatten_map_expand
108
+
109
+ response_schema = self.response_schema
110
+
111
+ response_schema_type: str | Unset = UNSET
112
+ if not isinstance(self.response_schema_type, Unset):
113
+ response_schema_type = self.response_schema_type.value
114
+
115
+ number_of_steps: int | None | Unset
116
+ if isinstance(self.number_of_steps, Unset):
117
+ number_of_steps = UNSET
118
+ else:
119
+ number_of_steps = self.number_of_steps
120
+
121
+ generate_assumptions = self.generate_assumptions
122
+
123
+ include_provenance_and_notes = self.include_provenance_and_notes
124
+
125
+ agent_step_timeout_seconds = self.agent_step_timeout_seconds
126
+
127
+ timeout_seconds = self.timeout_seconds
128
+
129
+ retries = self.retries
130
+
131
+ enable_communication = self.enable_communication
132
+
133
+ max_feedback_rounds = self.max_feedback_rounds
134
+
135
+ document_query_tool: str | Unset = UNSET
136
+ if not isinstance(self.document_query_tool, Unset):
137
+ document_query_tool = self.document_query_tool.value
138
+
139
+ effort_level: str | Unset = UNSET
140
+ if not isinstance(self.effort_level, Unset):
141
+ effort_level = self.effort_level.value
142
+
143
+ system_prompt_kind: None | str | Unset
144
+ if isinstance(self.system_prompt_kind, Unset):
145
+ system_prompt_kind = UNSET
146
+ elif isinstance(self.system_prompt_kind, AgentQueryParamsSystemPromptKindType0):
147
+ system_prompt_kind = self.system_prompt_kind.value
148
+ else:
149
+ system_prompt_kind = self.system_prompt_kind
150
+
151
+ batch_size: int | None | Unset
152
+ if isinstance(self.batch_size, Unset):
153
+ batch_size = UNSET
154
+ else:
155
+ batch_size = self.batch_size
156
+
157
+ field_dict: dict[str, Any] = {}
158
+ field_dict.update(self.additional_properties)
159
+ field_dict.update(
160
+ {
161
+ "task": task,
162
+ }
163
+ )
164
+ if llm is not UNSET:
165
+ field_dict["llm"] = llm
166
+ if agenda is not UNSET:
167
+ field_dict["agenda"] = agenda
168
+ if selected_input_fields is not UNSET:
169
+ field_dict["selected_input_fields"] = selected_input_fields
170
+ if apply_at_depth is not UNSET:
171
+ field_dict["apply_at_depth"] = apply_at_depth
172
+ if preview is not UNSET:
173
+ field_dict["preview"] = preview
174
+ if is_expand is not UNSET:
175
+ field_dict["is_expand"] = is_expand
176
+ if flatten_map_expand is not UNSET:
177
+ field_dict["flatten_map_expand"] = flatten_map_expand
178
+ if response_schema is not UNSET:
179
+ field_dict["response_schema"] = response_schema
180
+ if response_schema_type is not UNSET:
181
+ field_dict["response_schema_type"] = response_schema_type
182
+ if number_of_steps is not UNSET:
183
+ field_dict["number_of_steps"] = number_of_steps
184
+ if generate_assumptions is not UNSET:
185
+ field_dict["generate_assumptions"] = generate_assumptions
186
+ if include_provenance_and_notes is not UNSET:
187
+ field_dict["include_provenance_and_notes"] = include_provenance_and_notes
188
+ if agent_step_timeout_seconds is not UNSET:
189
+ field_dict["agent_step_timeout_seconds"] = agent_step_timeout_seconds
190
+ if timeout_seconds is not UNSET:
191
+ field_dict["timeout_seconds"] = timeout_seconds
192
+ if retries is not UNSET:
193
+ field_dict["retries"] = retries
194
+ if enable_communication is not UNSET:
195
+ field_dict["enable_communication"] = enable_communication
196
+ if max_feedback_rounds is not UNSET:
197
+ field_dict["max_feedback_rounds"] = max_feedback_rounds
198
+ if document_query_tool is not UNSET:
199
+ field_dict["document_query_tool"] = document_query_tool
200
+ if effort_level is not UNSET:
201
+ field_dict["effort_level"] = effort_level
202
+ if system_prompt_kind is not UNSET:
203
+ field_dict["system_prompt_kind"] = system_prompt_kind
204
+ if batch_size is not UNSET:
205
+ field_dict["batch_size"] = batch_size
206
+
207
+ return field_dict
208
+
209
+ @classmethod
210
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
211
+ d = dict(src_dict)
212
+ task = d.pop("task")
213
+
214
+ _llm = d.pop("llm", UNSET)
215
+ llm: LLMEnum | Unset
216
+ if isinstance(_llm, Unset):
217
+ llm = UNSET
218
+ else:
219
+ llm = LLMEnum(_llm)
220
+
221
+ agenda = d.pop("agenda", UNSET)
222
+
223
+ def _parse_selected_input_fields(data: object) -> list[str] | None | Unset:
224
+ if data is None:
225
+ return data
226
+ if isinstance(data, Unset):
227
+ return data
228
+ try:
229
+ if not isinstance(data, list):
230
+ raise TypeError()
231
+ selected_input_fields_type_0 = cast(list[str], data)
232
+
233
+ return selected_input_fields_type_0
234
+ except (TypeError, ValueError, AttributeError, KeyError):
235
+ pass
236
+ return cast(list[str] | None | Unset, data)
237
+
238
+ selected_input_fields = _parse_selected_input_fields(d.pop("selected_input_fields", UNSET))
239
+
240
+ apply_at_depth = d.pop("apply_at_depth", UNSET)
241
+
242
+ preview = d.pop("preview", UNSET)
243
+
244
+ is_expand = d.pop("is_expand", UNSET)
245
+
246
+ flatten_map_expand = d.pop("flatten_map_expand", UNSET)
247
+
248
+ response_schema = d.pop("response_schema", UNSET)
249
+
250
+ _response_schema_type = d.pop("response_schema_type", UNSET)
251
+ response_schema_type: ResponseSchemaType | Unset
252
+ if isinstance(_response_schema_type, Unset):
253
+ response_schema_type = UNSET
254
+ else:
255
+ response_schema_type = ResponseSchemaType(_response_schema_type)
256
+
257
+ def _parse_number_of_steps(data: object) -> int | None | Unset:
258
+ if data is None:
259
+ return data
260
+ if isinstance(data, Unset):
261
+ return data
262
+ return cast(int | None | Unset, data)
263
+
264
+ number_of_steps = _parse_number_of_steps(d.pop("number_of_steps", UNSET))
265
+
266
+ generate_assumptions = d.pop("generate_assumptions", UNSET)
267
+
268
+ include_provenance_and_notes = d.pop("include_provenance_and_notes", UNSET)
269
+
270
+ agent_step_timeout_seconds = d.pop("agent_step_timeout_seconds", UNSET)
271
+
272
+ timeout_seconds = d.pop("timeout_seconds", UNSET)
273
+
274
+ retries = d.pop("retries", UNSET)
275
+
276
+ enable_communication = d.pop("enable_communication", UNSET)
277
+
278
+ max_feedback_rounds = d.pop("max_feedback_rounds", UNSET)
279
+
280
+ _document_query_tool = d.pop("document_query_tool", UNSET)
281
+ document_query_tool: DocumentQueryTool | Unset
282
+ if isinstance(_document_query_tool, Unset):
283
+ document_query_tool = UNSET
284
+ else:
285
+ document_query_tool = DocumentQueryTool(_document_query_tool)
286
+
287
+ _effort_level = d.pop("effort_level", UNSET)
288
+ effort_level: TaskEffort | Unset
289
+ if isinstance(_effort_level, Unset):
290
+ effort_level = UNSET
291
+ else:
292
+ effort_level = TaskEffort(_effort_level)
293
+
294
+ def _parse_system_prompt_kind(data: object) -> AgentQueryParamsSystemPromptKindType0 | None | Unset:
295
+ if data is None:
296
+ return data
297
+ if isinstance(data, Unset):
298
+ return data
299
+ try:
300
+ if not isinstance(data, str):
301
+ raise TypeError()
302
+ system_prompt_kind_type_0 = AgentQueryParamsSystemPromptKindType0(data)
303
+
304
+ return system_prompt_kind_type_0
305
+ except (TypeError, ValueError, AttributeError, KeyError):
306
+ pass
307
+ return cast(AgentQueryParamsSystemPromptKindType0 | None | Unset, data)
308
+
309
+ system_prompt_kind = _parse_system_prompt_kind(d.pop("system_prompt_kind", UNSET))
310
+
311
+ def _parse_batch_size(data: object) -> int | None | Unset:
312
+ if data is None:
313
+ return data
314
+ if isinstance(data, Unset):
315
+ return data
316
+ return cast(int | None | Unset, data)
317
+
318
+ batch_size = _parse_batch_size(d.pop("batch_size", UNSET))
319
+
320
+ agent_query_params = cls(
321
+ task=task,
322
+ llm=llm,
323
+ agenda=agenda,
324
+ selected_input_fields=selected_input_fields,
325
+ apply_at_depth=apply_at_depth,
326
+ preview=preview,
327
+ is_expand=is_expand,
328
+ flatten_map_expand=flatten_map_expand,
329
+ response_schema=response_schema,
330
+ response_schema_type=response_schema_type,
331
+ number_of_steps=number_of_steps,
332
+ generate_assumptions=generate_assumptions,
333
+ include_provenance_and_notes=include_provenance_and_notes,
334
+ agent_step_timeout_seconds=agent_step_timeout_seconds,
335
+ timeout_seconds=timeout_seconds,
336
+ retries=retries,
337
+ enable_communication=enable_communication,
338
+ max_feedback_rounds=max_feedback_rounds,
339
+ document_query_tool=document_query_tool,
340
+ effort_level=effort_level,
341
+ system_prompt_kind=system_prompt_kind,
342
+ batch_size=batch_size,
343
+ )
344
+
345
+ agent_query_params.additional_properties = d
346
+ return agent_query_params
347
+
348
+ @property
349
+ def additional_keys(self) -> list[str]:
350
+ return list(self.additional_properties.keys())
351
+
352
+ def __getitem__(self, key: str) -> Any:
353
+ return self.additional_properties[key]
354
+
355
+ def __setitem__(self, key: str, value: Any) -> None:
356
+ self.additional_properties[key] = value
357
+
358
+ def __delitem__(self, key: str) -> None:
359
+ del self.additional_properties[key]
360
+
361
+ def __contains__(self, key: str) -> bool:
362
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class AgentQueryParamsSystemPromptKindType0(str, Enum):
5
+ PERSISTENT = "persistent"
6
+ SPEED_FOCUSED = "speed_focused"
7
+ TONED_DOWN_WITH_ALLOWED_CONFLICTS = "toned_down_with_allowed_conflicts"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,163 @@
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.agent_task_args_processing_mode import AgentTaskArgsProcessingMode
11
+ from ..types import UNSET, Unset
12
+
13
+ if TYPE_CHECKING:
14
+ from ..models.agent_query_params import AgentQueryParams
15
+
16
+
17
+ T = TypeVar("T", bound="AgentTaskArgs")
18
+
19
+
20
+ @_attrs_define
21
+ class AgentTaskArgs:
22
+ """
23
+ Attributes:
24
+ processing_mode (AgentTaskArgsProcessingMode):
25
+ query (AgentQueryParams):
26
+ input_artifacts (list[UUID]):
27
+ context_artifacts (list[UUID]):
28
+ label (None | str | Unset): Very short label (a few words) clearly stating the action, e.g. 'Find third-party
29
+ claims'.
30
+ description (None | str | Unset): One to two sentence, high-level description of what this task does. If the
31
+ output has many columns or parameters, do not list them all; give a holistic description instead.
32
+ join_with_input (bool | Unset): Whether to include input columns alongside the generated columns in the output
33
+ artifact. Only used for `map` processing mode. Default: True.
34
+ """
35
+
36
+ processing_mode: AgentTaskArgsProcessingMode
37
+ query: AgentQueryParams
38
+ input_artifacts: list[UUID]
39
+ context_artifacts: list[UUID]
40
+ label: None | str | Unset = UNSET
41
+ description: None | str | Unset = UNSET
42
+ join_with_input: bool | Unset = True
43
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
44
+
45
+ def to_dict(self) -> dict[str, Any]:
46
+ processing_mode = self.processing_mode.value
47
+
48
+ query = self.query.to_dict()
49
+
50
+ input_artifacts = []
51
+ for componentsschemas_input_artifacts_ids_item_data in self.input_artifacts:
52
+ componentsschemas_input_artifacts_ids_item = str(componentsschemas_input_artifacts_ids_item_data)
53
+ input_artifacts.append(componentsschemas_input_artifacts_ids_item)
54
+
55
+ context_artifacts = []
56
+ for componentsschemas_context_artifacts_ids_item_data in self.context_artifacts:
57
+ componentsschemas_context_artifacts_ids_item = str(componentsschemas_context_artifacts_ids_item_data)
58
+ context_artifacts.append(componentsschemas_context_artifacts_ids_item)
59
+
60
+ label: None | str | Unset
61
+ if isinstance(self.label, Unset):
62
+ label = UNSET
63
+ else:
64
+ label = self.label
65
+
66
+ description: None | str | Unset
67
+ if isinstance(self.description, Unset):
68
+ description = UNSET
69
+ else:
70
+ description = self.description
71
+
72
+ join_with_input = self.join_with_input
73
+
74
+ field_dict: dict[str, Any] = {}
75
+ field_dict.update(self.additional_properties)
76
+ field_dict.update(
77
+ {
78
+ "processing_mode": processing_mode,
79
+ "query": query,
80
+ "input_artifacts": input_artifacts,
81
+ "context_artifacts": context_artifacts,
82
+ }
83
+ )
84
+ if label is not UNSET:
85
+ field_dict["label"] = label
86
+ if description is not UNSET:
87
+ field_dict["description"] = description
88
+ if join_with_input is not UNSET:
89
+ field_dict["join_with_input"] = join_with_input
90
+
91
+ return field_dict
92
+
93
+ @classmethod
94
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
95
+ from ..models.agent_query_params import AgentQueryParams
96
+
97
+ d = dict(src_dict)
98
+ processing_mode = AgentTaskArgsProcessingMode(d.pop("processing_mode"))
99
+
100
+ query = AgentQueryParams.from_dict(d.pop("query"))
101
+
102
+ input_artifacts = []
103
+ _input_artifacts = d.pop("input_artifacts")
104
+ for componentsschemas_input_artifacts_ids_item_data in _input_artifacts:
105
+ componentsschemas_input_artifacts_ids_item = UUID(componentsschemas_input_artifacts_ids_item_data)
106
+
107
+ input_artifacts.append(componentsschemas_input_artifacts_ids_item)
108
+
109
+ context_artifacts = []
110
+ _context_artifacts = d.pop("context_artifacts")
111
+ for componentsschemas_context_artifacts_ids_item_data in _context_artifacts:
112
+ componentsschemas_context_artifacts_ids_item = UUID(componentsschemas_context_artifacts_ids_item_data)
113
+
114
+ context_artifacts.append(componentsschemas_context_artifacts_ids_item)
115
+
116
+ def _parse_label(data: object) -> None | str | Unset:
117
+ if data is None:
118
+ return data
119
+ if isinstance(data, Unset):
120
+ return data
121
+ return cast(None | str | Unset, data)
122
+
123
+ label = _parse_label(d.pop("label", UNSET))
124
+
125
+ def _parse_description(data: object) -> None | str | Unset:
126
+ if data is None:
127
+ return data
128
+ if isinstance(data, Unset):
129
+ return data
130
+ return cast(None | str | Unset, data)
131
+
132
+ description = _parse_description(d.pop("description", UNSET))
133
+
134
+ join_with_input = d.pop("join_with_input", UNSET)
135
+
136
+ agent_task_args = cls(
137
+ processing_mode=processing_mode,
138
+ query=query,
139
+ input_artifacts=input_artifacts,
140
+ context_artifacts=context_artifacts,
141
+ label=label,
142
+ description=description,
143
+ join_with_input=join_with_input,
144
+ )
145
+
146
+ agent_task_args.additional_properties = d
147
+ return agent_task_args
148
+
149
+ @property
150
+ def additional_keys(self) -> list[str]:
151
+ return list(self.additional_properties.keys())
152
+
153
+ def __getitem__(self, key: str) -> Any:
154
+ return self.additional_properties[key]
155
+
156
+ def __setitem__(self, key: str, value: Any) -> None:
157
+ self.additional_properties[key] = value
158
+
159
+ def __delitem__(self, key: str) -> None:
160
+ del self.additional_properties[key]
161
+
162
+ def __contains__(self, key: str) -> bool:
163
+ return key in self.additional_properties
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class AgentTaskArgsProcessingMode(str, Enum):
5
+ MAP = "map"
6
+ REDUCE = "reduce"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class AllowedSuggestions(str, Enum):
5
+ RUN_ON_ALL_ROWS = "run_on_all_rows"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)