everyrow 0.1.10__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.10.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.10.dist-info/RECORD +0 -183
  205. /everyrow/generated/api/{default → artifacts}/__init__.py +0 -0
  206. {everyrow-0.1.10.dist-info → everyrow-0.2.0.dist-info}/WHEEL +0 -0
  207. {everyrow-0.1.10.dist-info → everyrow-0.2.0.dist-info}/licenses/LICENSE.txt +0 -0
everyrow/__init__.py CHANGED
@@ -1,5 +1,12 @@
1
1
  from everyrow.api_utils import create_client
2
+ from everyrow.billing import BillingResponse, get_billing_balance
2
3
  from everyrow.session import create_session
3
4
  from everyrow.task import fetch_task_data
4
5
 
5
- __all__ = ["create_client", "create_session", "fetch_task_data"]
6
+ __all__ = [
7
+ "BillingResponse",
8
+ "create_client",
9
+ "create_session",
10
+ "fetch_task_data",
11
+ "get_billing_balance",
12
+ ]
everyrow/api_utils.py CHANGED
@@ -3,6 +3,7 @@ from typing import TypeVar
3
3
 
4
4
  from everyrow.constants import DEFAULT_EVERYROW_API_URL, EveryrowError
5
5
  from everyrow.generated.client import AuthenticatedClient
6
+ from everyrow.generated.models.error_response import ErrorResponse
6
7
  from everyrow.generated.models.http_validation_error import HTTPValidationError
7
8
  from everyrow.generated.models.insufficient_balance_error import (
8
9
  InsufficientBalanceError,
@@ -26,6 +27,7 @@ def create_client() -> AuthenticatedClient:
26
27
  base_url=os.environ.get("EVERYROW_API_URL", DEFAULT_EVERYROW_API_URL),
27
28
  token=os.environ["EVERYROW_API_KEY"],
28
29
  raise_on_unexpected_status=True,
30
+ follow_redirects=True,
29
31
  )
30
32
 
31
33
 
@@ -33,8 +35,10 @@ T = TypeVar("T")
33
35
 
34
36
 
35
37
  def handle_response[T](
36
- response: T | HTTPValidationError | InsufficientBalanceError | None,
38
+ response: T | ErrorResponse | HTTPValidationError | InsufficientBalanceError | None,
37
39
  ) -> T:
40
+ if isinstance(response, ErrorResponse):
41
+ raise EveryrowError(response.message)
38
42
  if isinstance(response, HTTPValidationError):
39
43
  raise EveryrowError(response.detail)
40
44
  if isinstance(response, InsufficientBalanceError):
everyrow/billing.py ADDED
@@ -0,0 +1,29 @@
1
+ """Billing utilities for everyrow SDK."""
2
+
3
+ from dataclasses import dataclass
4
+
5
+ from everyrow.api_utils import create_client
6
+ from everyrow.generated.api.billing import get_billing_balance_billing_get
7
+
8
+
9
+ @dataclass
10
+ class BillingResponse:
11
+ """Response containing the user's current billing balance."""
12
+
13
+ current_balance_dollars: float
14
+
15
+
16
+ async def get_billing_balance() -> BillingResponse:
17
+ """Get the current billing balance for the authenticated user.
18
+
19
+ Returns:
20
+ BillingResponse containing the user's current balance.
21
+
22
+ Raises:
23
+ RuntimeError: If the request fails
24
+ """
25
+ client = create_client()
26
+ response = await get_billing_balance_billing_get.asyncio(client=client)
27
+ if response is None:
28
+ raise RuntimeError("Failed to get billing balance")
29
+ return BillingResponse(current_balance_dollars=response.current_balance_dollars)
everyrow/constants.py CHANGED
@@ -1,4 +1,4 @@
1
- DEFAULT_EVERYROW_API_URL = "https://engine.futuresearch.ai"
1
+ DEFAULT_EVERYROW_API_URL = "https://everyrow.io/api/v0"
2
2
 
3
3
 
4
4
  class EveryrowError(Exception): ...
@@ -1,4 +1,4 @@
1
- """A client library for accessing FastAPI"""
1
+ """A client library for accessing everyrow API"""
2
2
 
3
3
  from .client import AuthenticatedClient, Client
4
4
 
@@ -5,20 +5,21 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.http_validation_error import HTTPValidationError
9
- from ...models.submit_chat_task_body import SubmitChatTaskBody
8
+ from ...models.create_artifact_request import CreateArtifactRequest
9
+ from ...models.create_artifact_response import CreateArtifactResponse
10
+ from ...models.error_response import ErrorResponse
10
11
  from ...types import Response
11
12
 
12
13
 
13
14
  def _get_kwargs(
14
15
  *,
15
- body: SubmitChatTaskBody,
16
+ body: CreateArtifactRequest,
16
17
  ) -> dict[str, Any]:
17
18
  headers: dict[str, Any] = {}
18
19
 
19
20
  _kwargs: dict[str, Any] = {
20
21
  "method": "post",
21
- "url": "/tasks/chat/interrupt",
22
+ "url": "/artifacts",
22
23
  }
23
24
 
24
25
  _kwargs["json"] = body.to_dict()
@@ -31,13 +32,14 @@ def _get_kwargs(
31
32
 
32
33
  def _parse_response(
33
34
  *, client: AuthenticatedClient | Client, response: httpx.Response
34
- ) -> Any | HTTPValidationError | None:
35
+ ) -> CreateArtifactResponse | ErrorResponse | None:
35
36
  if response.status_code == 200:
36
- response_200 = response.json()
37
+ response_200 = CreateArtifactResponse.from_dict(response.json())
38
+
37
39
  return response_200
38
40
 
39
41
  if response.status_code == 422:
40
- response_422 = HTTPValidationError.from_dict(response.json())
42
+ response_422 = ErrorResponse.from_dict(response.json())
41
43
 
42
44
  return response_422
43
45
 
@@ -49,7 +51,7 @@ def _parse_response(
49
51
 
50
52
  def _build_response(
51
53
  *, client: AuthenticatedClient | Client, response: httpx.Response
52
- ) -> Response[Any | HTTPValidationError]:
54
+ ) -> Response[CreateArtifactResponse | ErrorResponse]:
53
55
  return Response(
54
56
  status_code=HTTPStatus(response.status_code),
55
57
  content=response.content,
@@ -61,21 +63,22 @@ def _build_response(
61
63
  def sync_detailed(
62
64
  *,
63
65
  client: AuthenticatedClient,
64
- body: SubmitChatTaskBody,
65
- ) -> Response[Any | HTTPValidationError]:
66
- """Interrupt Chat Task
66
+ body: CreateArtifactRequest,
67
+ ) -> Response[CreateArtifactResponse | ErrorResponse]:
68
+ """Create an artifact
67
69
 
68
- Interrupt the current conversation's running tasks and process a new message.
70
+ Upload data as an artifact for use in operations. A list of JSON objects creates a table. A single
71
+ JSON object creates a scalar.
69
72
 
70
73
  Args:
71
- body (SubmitChatTaskBody):
74
+ body (CreateArtifactRequest):
72
75
 
73
76
  Raises:
74
77
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
75
78
  httpx.TimeoutException: If the request takes longer than Client.timeout.
76
79
 
77
80
  Returns:
78
- Response[Any | HTTPValidationError]
81
+ Response[CreateArtifactResponse | ErrorResponse]
79
82
  """
80
83
 
81
84
  kwargs = _get_kwargs(
@@ -92,21 +95,22 @@ def sync_detailed(
92
95
  def sync(
93
96
  *,
94
97
  client: AuthenticatedClient,
95
- body: SubmitChatTaskBody,
96
- ) -> Any | HTTPValidationError | None:
97
- """Interrupt Chat Task
98
+ body: CreateArtifactRequest,
99
+ ) -> CreateArtifactResponse | ErrorResponse | None:
100
+ """Create an artifact
98
101
 
99
- Interrupt the current conversation's running tasks and process a new message.
102
+ Upload data as an artifact for use in operations. A list of JSON objects creates a table. A single
103
+ JSON object creates a scalar.
100
104
 
101
105
  Args:
102
- body (SubmitChatTaskBody):
106
+ body (CreateArtifactRequest):
103
107
 
104
108
  Raises:
105
109
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
106
110
  httpx.TimeoutException: If the request takes longer than Client.timeout.
107
111
 
108
112
  Returns:
109
- Any | HTTPValidationError
113
+ CreateArtifactResponse | ErrorResponse
110
114
  """
111
115
 
112
116
  return sync_detailed(
@@ -118,21 +122,22 @@ def sync(
118
122
  async def asyncio_detailed(
119
123
  *,
120
124
  client: AuthenticatedClient,
121
- body: SubmitChatTaskBody,
122
- ) -> Response[Any | HTTPValidationError]:
123
- """Interrupt Chat Task
125
+ body: CreateArtifactRequest,
126
+ ) -> Response[CreateArtifactResponse | ErrorResponse]:
127
+ """Create an artifact
124
128
 
125
- Interrupt the current conversation's running tasks and process a new message.
129
+ Upload data as an artifact for use in operations. A list of JSON objects creates a table. A single
130
+ JSON object creates a scalar.
126
131
 
127
132
  Args:
128
- body (SubmitChatTaskBody):
133
+ body (CreateArtifactRequest):
129
134
 
130
135
  Raises:
131
136
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
132
137
  httpx.TimeoutException: If the request takes longer than Client.timeout.
133
138
 
134
139
  Returns:
135
- Response[Any | HTTPValidationError]
140
+ Response[CreateArtifactResponse | ErrorResponse]
136
141
  """
137
142
 
138
143
  kwargs = _get_kwargs(
@@ -147,21 +152,22 @@ async def asyncio_detailed(
147
152
  async def asyncio(
148
153
  *,
149
154
  client: AuthenticatedClient,
150
- body: SubmitChatTaskBody,
151
- ) -> Any | HTTPValidationError | None:
152
- """Interrupt Chat Task
155
+ body: CreateArtifactRequest,
156
+ ) -> CreateArtifactResponse | ErrorResponse | None:
157
+ """Create an artifact
153
158
 
154
- Interrupt the current conversation's running tasks and process a new message.
159
+ Upload data as an artifact for use in operations. A list of JSON objects creates a table. A single
160
+ JSON object creates a scalar.
155
161
 
156
162
  Args:
157
- body (SubmitChatTaskBody):
163
+ body (CreateArtifactRequest):
158
164
 
159
165
  Raises:
160
166
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
161
167
  httpx.TimeoutException: If the request takes longer than Client.timeout.
162
168
 
163
169
  Returns:
164
- Any | HTTPValidationError
170
+ CreateArtifactResponse | ErrorResponse
165
171
  """
166
172
 
167
173
  return (
@@ -0,0 +1 @@
1
+ """Contains endpoint functions for accessing the API"""
@@ -5,22 +5,22 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.queue_stats import QueueStats
8
+ from ...models.billing_response import BillingResponse
9
9
  from ...types import Response
10
10
 
11
11
 
12
12
  def _get_kwargs() -> dict[str, Any]:
13
13
  _kwargs: dict[str, Any] = {
14
14
  "method": "get",
15
- "url": "/jobs/queues",
15
+ "url": "/billing",
16
16
  }
17
17
 
18
18
  return _kwargs
19
19
 
20
20
 
21
- def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> QueueStats | None:
21
+ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> BillingResponse | None:
22
22
  if response.status_code == 200:
23
- response_200 = QueueStats.from_dict(response.json())
23
+ response_200 = BillingResponse.from_dict(response.json())
24
24
 
25
25
  return response_200
26
26
 
@@ -30,7 +30,7 @@ def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Res
30
30
  return None
31
31
 
32
32
 
33
- def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[QueueStats]:
33
+ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[BillingResponse]:
34
34
  return Response(
35
35
  status_code=HTTPStatus(response.status_code),
36
36
  content=response.content,
@@ -42,15 +42,17 @@ def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Res
42
42
  def sync_detailed(
43
43
  *,
44
44
  client: AuthenticatedClient,
45
- ) -> Response[QueueStats]:
46
- """Get Queues Stats
45
+ ) -> Response[BillingResponse]:
46
+ """Get billing balance
47
+
48
+ Get the current billing balance for the authenticated user.
47
49
 
48
50
  Raises:
49
51
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
50
52
  httpx.TimeoutException: If the request takes longer than Client.timeout.
51
53
 
52
54
  Returns:
53
- Response[QueueStats]
55
+ Response[BillingResponse]
54
56
  """
55
57
 
56
58
  kwargs = _get_kwargs()
@@ -65,15 +67,17 @@ def sync_detailed(
65
67
  def sync(
66
68
  *,
67
69
  client: AuthenticatedClient,
68
- ) -> QueueStats | None:
69
- """Get Queues Stats
70
+ ) -> BillingResponse | None:
71
+ """Get billing balance
72
+
73
+ Get the current billing balance for the authenticated user.
70
74
 
71
75
  Raises:
72
76
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
73
77
  httpx.TimeoutException: If the request takes longer than Client.timeout.
74
78
 
75
79
  Returns:
76
- QueueStats
80
+ BillingResponse
77
81
  """
78
82
 
79
83
  return sync_detailed(
@@ -84,15 +88,17 @@ def sync(
84
88
  async def asyncio_detailed(
85
89
  *,
86
90
  client: AuthenticatedClient,
87
- ) -> Response[QueueStats]:
88
- """Get Queues Stats
91
+ ) -> Response[BillingResponse]:
92
+ """Get billing balance
93
+
94
+ Get the current billing balance for the authenticated user.
89
95
 
90
96
  Raises:
91
97
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
92
98
  httpx.TimeoutException: If the request takes longer than Client.timeout.
93
99
 
94
100
  Returns:
95
- Response[QueueStats]
101
+ Response[BillingResponse]
96
102
  """
97
103
 
98
104
  kwargs = _get_kwargs()
@@ -105,15 +111,17 @@ async def asyncio_detailed(
105
111
  async def asyncio(
106
112
  *,
107
113
  client: AuthenticatedClient,
108
- ) -> QueueStats | None:
109
- """Get Queues Stats
114
+ ) -> BillingResponse | None:
115
+ """Get billing balance
116
+
117
+ Get the current billing balance for the authenticated user.
110
118
 
111
119
  Raises:
112
120
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
113
121
  httpx.TimeoutException: If the request takes longer than Client.timeout.
114
122
 
115
123
  Returns:
116
- QueueStats
124
+ BillingResponse
117
125
  """
118
126
 
119
127
  return (
@@ -0,0 +1 @@
1
+ """Contains endpoint functions for accessing the API"""
@@ -5,22 +5,22 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.http_validation_error import HTTPValidationError
8
+ from ...models.agent_map_operation import AgentMapOperation
9
+ from ...models.error_response import ErrorResponse
9
10
  from ...models.insufficient_balance_error import InsufficientBalanceError
10
- from ...models.task_id_request import TaskIdRequest
11
- from ...models.task_response import TaskResponse
11
+ from ...models.operation_response import OperationResponse
12
12
  from ...types import Response
13
13
 
14
14
 
15
15
  def _get_kwargs(
16
16
  *,
17
- body: TaskIdRequest,
17
+ body: AgentMapOperation,
18
18
  ) -> dict[str, Any]:
19
19
  headers: dict[str, Any] = {}
20
20
 
21
21
  _kwargs: dict[str, Any] = {
22
22
  "method": "post",
23
- "url": "/tasks/re-execute",
23
+ "url": "/operations/agent-map",
24
24
  }
25
25
 
26
26
  _kwargs["json"] = body.to_dict()
@@ -33,9 +33,9 @@ def _get_kwargs(
33
33
 
34
34
  def _parse_response(
35
35
  *, client: AuthenticatedClient | Client, response: httpx.Response
36
- ) -> HTTPValidationError | InsufficientBalanceError | TaskResponse | None:
36
+ ) -> ErrorResponse | InsufficientBalanceError | OperationResponse | None:
37
37
  if response.status_code == 200:
38
- response_200 = TaskResponse.from_dict(response.json())
38
+ response_200 = OperationResponse.from_dict(response.json())
39
39
 
40
40
  return response_200
41
41
 
@@ -45,7 +45,7 @@ def _parse_response(
45
45
  return response_402
46
46
 
47
47
  if response.status_code == 422:
48
- response_422 = HTTPValidationError.from_dict(response.json())
48
+ response_422 = ErrorResponse.from_dict(response.json())
49
49
 
50
50
  return response_422
51
51
 
@@ -57,7 +57,7 @@ def _parse_response(
57
57
 
58
58
  def _build_response(
59
59
  *, client: AuthenticatedClient | Client, response: httpx.Response
60
- ) -> Response[HTTPValidationError | InsufficientBalanceError | TaskResponse]:
60
+ ) -> Response[ErrorResponse | InsufficientBalanceError | OperationResponse]:
61
61
  return Response(
62
62
  status_code=HTTPStatus(response.status_code),
63
63
  content=response.content,
@@ -69,24 +69,27 @@ def _build_response(
69
69
  def sync_detailed(
70
70
  *,
71
71
  client: AuthenticatedClient,
72
- body: TaskIdRequest,
73
- ) -> Response[HTTPValidationError | InsufficientBalanceError | TaskResponse]:
74
- """Re Execute Task Endpoint
72
+ body: AgentMapOperation,
73
+ ) -> Response[ErrorResponse | InsufficientBalanceError | OperationResponse]:
74
+ """Parallel AI research agents
75
75
 
76
- Re-execute a task by creating a new task with the same parameters.
76
+ Run an AI agent on each row in parallel to perform research and generate responses.
77
77
 
78
- This creates a completely fresh task from scratch. No data or state is
79
- carried over from the original task.
78
+ **Configuration options** (mutually exclusive):
79
+
80
+ 1. **Use a preset** - set `effort_level` to `low`, `medium`, or `high`
81
+ 2. **Fully customize** - set `effort_level=null` and provide ALL of: `llm`, `iteration_budget`,
82
+ `include_research`
80
83
 
81
84
  Args:
82
- body (TaskIdRequest):
85
+ body (AgentMapOperation):
83
86
 
84
87
  Raises:
85
88
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
86
89
  httpx.TimeoutException: If the request takes longer than Client.timeout.
87
90
 
88
91
  Returns:
89
- Response[HTTPValidationError | InsufficientBalanceError | TaskResponse]
92
+ Response[ErrorResponse | InsufficientBalanceError | OperationResponse]
90
93
  """
91
94
 
92
95
  kwargs = _get_kwargs(
@@ -103,24 +106,27 @@ def sync_detailed(
103
106
  def sync(
104
107
  *,
105
108
  client: AuthenticatedClient,
106
- body: TaskIdRequest,
107
- ) -> HTTPValidationError | InsufficientBalanceError | TaskResponse | None:
108
- """Re Execute Task Endpoint
109
+ body: AgentMapOperation,
110
+ ) -> ErrorResponse | InsufficientBalanceError | OperationResponse | None:
111
+ """Parallel AI research agents
112
+
113
+ Run an AI agent on each row in parallel to perform research and generate responses.
109
114
 
110
- Re-execute a task by creating a new task with the same parameters.
115
+ **Configuration options** (mutually exclusive):
111
116
 
112
- This creates a completely fresh task from scratch. No data or state is
113
- carried over from the original task.
117
+ 1. **Use a preset** - set `effort_level` to `low`, `medium`, or `high`
118
+ 2. **Fully customize** - set `effort_level=null` and provide ALL of: `llm`, `iteration_budget`,
119
+ `include_research`
114
120
 
115
121
  Args:
116
- body (TaskIdRequest):
122
+ body (AgentMapOperation):
117
123
 
118
124
  Raises:
119
125
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
120
126
  httpx.TimeoutException: If the request takes longer than Client.timeout.
121
127
 
122
128
  Returns:
123
- HTTPValidationError | InsufficientBalanceError | TaskResponse
129
+ ErrorResponse | InsufficientBalanceError | OperationResponse
124
130
  """
125
131
 
126
132
  return sync_detailed(
@@ -132,24 +138,27 @@ def sync(
132
138
  async def asyncio_detailed(
133
139
  *,
134
140
  client: AuthenticatedClient,
135
- body: TaskIdRequest,
136
- ) -> Response[HTTPValidationError | InsufficientBalanceError | TaskResponse]:
137
- """Re Execute Task Endpoint
141
+ body: AgentMapOperation,
142
+ ) -> Response[ErrorResponse | InsufficientBalanceError | OperationResponse]:
143
+ """Parallel AI research agents
138
144
 
139
- Re-execute a task by creating a new task with the same parameters.
145
+ Run an AI agent on each row in parallel to perform research and generate responses.
140
146
 
141
- This creates a completely fresh task from scratch. No data or state is
142
- carried over from the original task.
147
+ **Configuration options** (mutually exclusive):
148
+
149
+ 1. **Use a preset** - set `effort_level` to `low`, `medium`, or `high`
150
+ 2. **Fully customize** - set `effort_level=null` and provide ALL of: `llm`, `iteration_budget`,
151
+ `include_research`
143
152
 
144
153
  Args:
145
- body (TaskIdRequest):
154
+ body (AgentMapOperation):
146
155
 
147
156
  Raises:
148
157
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
149
158
  httpx.TimeoutException: If the request takes longer than Client.timeout.
150
159
 
151
160
  Returns:
152
- Response[HTTPValidationError | InsufficientBalanceError | TaskResponse]
161
+ Response[ErrorResponse | InsufficientBalanceError | OperationResponse]
153
162
  """
154
163
 
155
164
  kwargs = _get_kwargs(
@@ -164,24 +173,27 @@ async def asyncio_detailed(
164
173
  async def asyncio(
165
174
  *,
166
175
  client: AuthenticatedClient,
167
- body: TaskIdRequest,
168
- ) -> HTTPValidationError | InsufficientBalanceError | TaskResponse | None:
169
- """Re Execute Task Endpoint
176
+ body: AgentMapOperation,
177
+ ) -> ErrorResponse | InsufficientBalanceError | OperationResponse | None:
178
+ """Parallel AI research agents
179
+
180
+ Run an AI agent on each row in parallel to perform research and generate responses.
170
181
 
171
- Re-execute a task by creating a new task with the same parameters.
182
+ **Configuration options** (mutually exclusive):
172
183
 
173
- This creates a completely fresh task from scratch. No data or state is
174
- carried over from the original task.
184
+ 1. **Use a preset** - set `effort_level` to `low`, `medium`, or `high`
185
+ 2. **Fully customize** - set `effort_level=null` and provide ALL of: `llm`, `iteration_budget`,
186
+ `include_research`
175
187
 
176
188
  Args:
177
- body (TaskIdRequest):
189
+ body (AgentMapOperation):
178
190
 
179
191
  Raises:
180
192
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
181
193
  httpx.TimeoutException: If the request takes longer than Client.timeout.
182
194
 
183
195
  Returns:
184
- HTTPValidationError | InsufficientBalanceError | TaskResponse
196
+ ErrorResponse | InsufficientBalanceError | OperationResponse
185
197
  """
186
198
 
187
199
  return (