groundx 3.7.0__tar.gz → 3.7.2__tar.gz
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.
- {groundx-3.7.0 → groundx-3.7.2}/PKG-INFO +1 -1
- {groundx-3.7.0 → groundx-3.7.2}/pyproject.toml +1 -1
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/client_wrapper.py +2 -2
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/prompt/utility.py +39 -2
- {groundx-3.7.0 → groundx-3.7.2}/LICENSE +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/README.md +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/_default_clients.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/api_key/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/api_key/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/api_key/raw_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/buckets/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/buckets/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/buckets/raw_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/api_error.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/datetime_utils.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/file.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/force_multipart.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/http_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/http_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/http_sse/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/http_sse/_api.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/http_sse/_decoders.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/http_sse/_exceptions.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/http_sse/_models.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/jsonable_encoder.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/logging.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/parse_error.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/pydantic_utilities.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/query_encoder.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/remove_none_from_dict.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/request_options.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/core/serialization.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/csv_splitter.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/customer/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/customer/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/customer/raw_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/documents/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/documents/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/documents/raw_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/environment.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/errors/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/errors/bad_request_error.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/errors/unauthorized_error.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/agents/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/agents/agent.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/agent.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/api.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/document.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/element.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/field.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/groundx.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/group.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/prompt.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/classes/testing.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/post_process/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/post_process/post_process.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/prompt/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/prompt/manager.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/prompt/object_store.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/prompt/source.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/.DS_Store +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/csv.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/logger.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/logging_cfg.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/ratelimit.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/sheets_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/status.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/upload.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/upload_minio.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/upload_s3.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/services/utility.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/settings/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/settings/settings.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/tasks/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/tasks/utility.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/utility/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/utility/utility.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/extract/workflows.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/groups/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/groups/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/groups/raw_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/health/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/health/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/health/raw_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/ingest.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/py.typed +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/search/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/search/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/search/raw_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/search/types/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/search/types/search_content_request_id.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/api_key_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/api_key_request.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/api_key_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/bounding_box_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/bucket_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/bucket_list_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/bucket_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/bucket_update_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/bucket_update_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_leaf_field.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_leaf_field_level.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_leaf_field_repetition_scope.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_output_map.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_output_route.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_output_route_level.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_output_route_output_map.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_step.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_step_config.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_step_element_config.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_step_kind.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_step_level.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/customer_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/customer_detail_status.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/customer_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_list_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_local_ingest_request.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_lookup_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_type.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_update.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_xray.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_xray_chunk.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/document_xray_page.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/group_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/group_list_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/group_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/health_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/health_response_health.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/health_service.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/health_service_status.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_local_document.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_local_document_metadata.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_remote_document.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_status.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_status_light.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_status_progress.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_status_progress_cancelled.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_status_progress_complete.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_status_progress_errors.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_status_progress_processing.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/ingest_status_progress_queued.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/message_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/meter_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/process_level.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/processes_status_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/processing_status.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/search_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/search_response_search.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/search_result_item.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/search_result_item_pages_item.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/sort.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/sort_order.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/subscription_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/subscription_detail_meters.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/website_source.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_apply_request.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_detail.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_detail_chunk_strategy.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_detail_relationships.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_detail_section_strategy.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_engine.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_engine_reasoning_effort.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_engine_service.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_prompt.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_prompt_group.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_prompt_role.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_request.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_request_chunk_strategy.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_request_section_strategy.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_step.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_step_config.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_step_config_field.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_steps.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflow_template.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/workflows_response.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/version.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/workflows/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/workflows/client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/workflows/raw_client.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/workflows/types/__init__.py +0 -0
- {groundx-3.7.0 → groundx-3.7.2}/src/groundx/workflows/types/workflows_get_request_id.py +0 -0
|
@@ -27,12 +27,12 @@ class BaseClientWrapper:
|
|
|
27
27
|
import platform
|
|
28
28
|
|
|
29
29
|
headers: typing.Dict[str, str] = {
|
|
30
|
-
"User-Agent": "groundx/3.7.
|
|
30
|
+
"User-Agent": "groundx/3.7.2",
|
|
31
31
|
"X-Fern-Language": "Python",
|
|
32
32
|
"X-Fern-Runtime": f"python/{platform.python_version()}",
|
|
33
33
|
"X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}",
|
|
34
34
|
"X-Fern-SDK-Name": "groundx",
|
|
35
|
-
"X-Fern-SDK-Version": "3.7.
|
|
35
|
+
"X-Fern-SDK-Version": "3.7.2",
|
|
36
36
|
**(self.get_custom_headers() or {}),
|
|
37
37
|
}
|
|
38
38
|
headers["X-API-Key"] = self.api_key
|
|
@@ -17,7 +17,7 @@ _CUSTOM_WORKFLOW_KEY = "workflow"
|
|
|
17
17
|
_CUSTOM_WORKFLOW_GROUP_METADATA_KEY = "workflow_step"
|
|
18
18
|
_CUSTOM_WORKFLOW_FIELD_METADATA_KEY = "workflow_output_key"
|
|
19
19
|
_CUSTOM_WORKFLOW_METADATA_VERSION = 1
|
|
20
|
-
_CUSTOM_WORKFLOW_MAX_FIELDS =
|
|
20
|
+
_CUSTOM_WORKFLOW_MAX_FIELDS = 30
|
|
21
21
|
_CUSTOM_WORKFLOW_AGENT_CHAIN_KEY = "agent_chain"
|
|
22
22
|
_CUSTOM_WORKFLOW_OUTPUT_MAPS = {
|
|
23
23
|
"chunk": "customChunkOutputs",
|
|
@@ -805,6 +805,7 @@ def _validate_agent_chain(
|
|
|
805
805
|
|
|
806
806
|
has_save = False
|
|
807
807
|
serial_start_index = 1
|
|
808
|
+
covered_groups: typing.Set[str] = set()
|
|
808
809
|
for stage_index, raw_stage in enumerate(raw_chain):
|
|
809
810
|
if isinstance(raw_stage, str):
|
|
810
811
|
_validate_agent_chain_task(
|
|
@@ -849,6 +850,7 @@ def _validate_agent_chain(
|
|
|
849
850
|
raise ValueError(f"{path}.group must be a non-empty string")
|
|
850
851
|
if group not in workflow_groups:
|
|
851
852
|
raise ValueError(f"{path}.group [{group}] is not a workflow group")
|
|
853
|
+
covered_groups.add(group)
|
|
852
854
|
|
|
853
855
|
chain = raw_branch["chain"]
|
|
854
856
|
if not isinstance(chain, list) or not chain:
|
|
@@ -902,6 +904,12 @@ def _validate_agent_chain(
|
|
|
902
904
|
if not has_save:
|
|
903
905
|
raise ValueError(f"{_CUSTOM_WORKFLOW_KEY}.agent_chain must include a save task")
|
|
904
906
|
_validate_agent_chain_serial_tasks(raw_chain, serial_start_index)
|
|
907
|
+
_validate_agent_chain_group_coverage(
|
|
908
|
+
raw_chain,
|
|
909
|
+
workflow_groups,
|
|
910
|
+
covered_groups,
|
|
911
|
+
serial_start_index,
|
|
912
|
+
)
|
|
905
913
|
|
|
906
914
|
|
|
907
915
|
def _validate_agent_chain_serial_tasks(
|
|
@@ -936,6 +944,35 @@ def _validate_agent_chain_serial_tasks(
|
|
|
936
944
|
stage_index += 2
|
|
937
945
|
|
|
938
946
|
|
|
947
|
+
def _validate_agent_chain_group_coverage(
|
|
948
|
+
raw_chain: typing.List[typing.Any],
|
|
949
|
+
workflow_groups: typing.Set[str],
|
|
950
|
+
branch_covered_groups: typing.Set[str],
|
|
951
|
+
serial_start_index: int,
|
|
952
|
+
) -> None:
|
|
953
|
+
covered_groups = set(branch_covered_groups)
|
|
954
|
+
stage_index = serial_start_index
|
|
955
|
+
while stage_index < len(raw_chain):
|
|
956
|
+
raw_stage = raw_chain[stage_index]
|
|
957
|
+
if (
|
|
958
|
+
isinstance(raw_stage, str)
|
|
959
|
+
and raw_stage in _CUSTOM_WORKFLOW_AGENT_CHAIN_AGENT_TASKS
|
|
960
|
+
):
|
|
961
|
+
suffix = _agent_chain_task_suffix(raw_stage)
|
|
962
|
+
if suffix in workflow_groups:
|
|
963
|
+
covered_groups.add(suffix)
|
|
964
|
+
stage_index += 2
|
|
965
|
+
continue
|
|
966
|
+
stage_index += 1
|
|
967
|
+
|
|
968
|
+
missing_groups = sorted(workflow_groups - covered_groups)
|
|
969
|
+
if missing_groups:
|
|
970
|
+
raise ValueError(
|
|
971
|
+
f"{_CUSTOM_WORKFLOW_KEY}.agent_chain does not cover workflow groups "
|
|
972
|
+
f"[{', '.join(missing_groups)}]"
|
|
973
|
+
)
|
|
974
|
+
|
|
975
|
+
|
|
939
976
|
def _validate_agent_chain_task(task: typing.Any, path: str) -> str:
|
|
940
977
|
if not isinstance(task, str) or not task:
|
|
941
978
|
raise ValueError(f"{path} task must be a non-empty string")
|
|
@@ -1710,7 +1747,7 @@ def _build_authored_custom_workflow_metadata(
|
|
|
1710
1747
|
metadata["field_counts"] = field_counts
|
|
1711
1748
|
agent_chain = _normalize_agent_chain(
|
|
1712
1749
|
workflow.get(_CUSTOM_WORKFLOW_AGENT_CHAIN_KEY),
|
|
1713
|
-
|
|
1750
|
+
{route["workflow_group"] for route in routes},
|
|
1714
1751
|
)
|
|
1715
1752
|
if agent_chain is not None:
|
|
1716
1753
|
metadata[_CUSTOM_WORKFLOW_AGENT_CHAIN_KEY] = agent_chain
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_leaf_field_repetition_scope.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{groundx-3.7.0 → groundx-3.7.2}/src/groundx/types/custom_workflow_output_route_output_map.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|