From ddf38f8f8d9febdceb8de1aa9daafae9fdaf651c Mon Sep 17 00:00:00 2001 From: Clement Fauchere Date: Tue, 31 Mar 2026 18:52:37 -0500 Subject: [PATCH 1/5] feat(context-grounding): expose index_id on UnifiedQueryResult unified_search and unified_search_async already resolve the index by name to get its ID for the API call, but discard it before returning. This adds index_id to UnifiedQueryResult and sets it from the resolved index, so callers can include it in trace spans for debugging. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../context_grounding/_context_grounding_service.py | 8 ++++++-- .../platform/context_grounding/context_grounding.py | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py b/packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py index 75e525d3b..e10c4a8dc 100644 --- a/packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py +++ b/packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py @@ -1503,7 +1503,9 @@ def unified_search( headers=spec.headers, ) - return UnifiedQueryResult.model_validate(response.json()) + result = UnifiedQueryResult.model_validate(response.json()) + result.index_id = str(index.id) + return result @resource_override(resource_type="index") @traced(name="contextgrounding_unified_search", run_type="uipath") @@ -1562,7 +1564,9 @@ async def unified_search_async( headers=spec.headers, ) - return UnifiedQueryResult.model_validate(response.json()) + result = UnifiedQueryResult.model_validate(response.json()) + result.index_id = str(index.id) + return result @traced(name="contextgrounding_ingest_data", run_type="uipath") def ingest_data( diff --git a/packages/uipath-platform/src/uipath/platform/context_grounding/context_grounding.py b/packages/uipath-platform/src/uipath/platform/context_grounding/context_grounding.py index fdcf5eac9..099056b31 100644 --- a/packages/uipath-platform/src/uipath/platform/context_grounding/context_grounding.py +++ b/packages/uipath-platform/src/uipath/platform/context_grounding/context_grounding.py @@ -305,3 +305,4 @@ class UnifiedQueryResult(BaseModel): default=None, alias="semanticResults" ) explanation: Optional[str] = Field(default=None) + index_id: Optional[str] = Field(default=None, alias="indexId") From 2641e5532bf73b75d67519f9ffc9c9bb5a286da3 Mon Sep 17 00:00:00 2001 From: Clement Fauchere Date: Tue, 31 Mar 2026 20:22:13 -0500 Subject: [PATCH 2/5] chore: bump uipath-platform version to 0.1.17 Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/uipath-platform/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/uipath-platform/pyproject.toml b/packages/uipath-platform/pyproject.toml index bbec9bc57..c5cdf13ee 100644 --- a/packages/uipath-platform/pyproject.toml +++ b/packages/uipath-platform/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "uipath-platform" -version = "0.1.16" +version = "0.1.17" description = "HTTP client library for programmatic access to UiPath Platform" readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.11" From de15944201d20cd350eb8e62bd50e91f8d4121e0 Mon Sep 17 00:00:00 2001 From: Clement Fauchere Date: Tue, 31 Mar 2026 20:36:39 -0500 Subject: [PATCH 3/5] chore: update uv.lock for version bump Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/uipath-platform/uv.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/uipath-platform/uv.lock b/packages/uipath-platform/uv.lock index 9065b5ada..4360ed46b 100644 --- a/packages/uipath-platform/uv.lock +++ b/packages/uipath-platform/uv.lock @@ -1088,7 +1088,7 @@ dev = [ [[package]] name = "uipath-platform" -version = "0.1.16" +version = "0.1.17" source = { editable = "." } dependencies = [ { name = "httpx" }, From 06b9e3178eeb2a5aaf9ce1c11d463e2234a7e24d Mon Sep 17 00:00:00 2001 From: Clement Fauchere Date: Tue, 31 Mar 2026 20:49:12 -0500 Subject: [PATCH 4/5] chore: update uipath package lockfile for version bump Co-Authored-By: Claude Opus 4.6 (1M context) --- packages/uipath/uv.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/uipath/uv.lock b/packages/uipath/uv.lock index 3214375f9..d9aec6716 100644 --- a/packages/uipath/uv.lock +++ b/packages/uipath/uv.lock @@ -2682,7 +2682,7 @@ dev = [ [[package]] name = "uipath-platform" -version = "0.1.16" +version = "0.1.17" source = { editable = "../uipath-platform" } dependencies = [ { name = "httpx" }, From 1502fc9433ddb286385669ea800aa4f5bc9ce55f Mon Sep 17 00:00:00 2001 From: Clement Fauchere Date: Wed, 1 Apr 2026 09:53:21 -0500 Subject: [PATCH 5/5] feat(context-grounding): expose index_id on all CG operation responses Extend index_id to all CG operations, not just unified_search: - start_deep_rag / start_deep_rag_async - start_batch_transform / start_batch_transform_async - start_deep_rag_ephemeral / start_deep_rag_ephemeral_async - start_batch_transform_ephemeral / start_batch_transform_ephemeral_async Added index_id field to BatchTransformCreationResponse and DeepRagCreationResponse models. Every CG operation that resolves or receives an index_id now returns it on the response, so traces can include it for debugging. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../_context_grounding_service.py | 32 ++++++++++++++----- .../context_grounding/context_grounding.py | 2 ++ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py b/packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py index e10c4a8dc..673e008f1 100644 --- a/packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py +++ b/packages/uipath-platform/src/uipath/platform/context_grounding/_context_grounding_service.py @@ -785,7 +785,9 @@ def start_batch_transform( params=spec.params, headers=spec.headers, ) - return BatchTransformCreationResponse.model_validate(response.json()) + result = BatchTransformCreationResponse.model_validate(response.json()) + result.index_id = str(index_id) + return result @resource_override(resource_type="index", resource_identifier="index_name") @traced(name="contextgrounding_start_batch_transform_async", run_type="uipath") @@ -861,7 +863,9 @@ async def start_batch_transform_async( params=spec.params, headers=spec.headers, ) - return BatchTransformCreationResponse.model_validate(response.json()) + result = BatchTransformCreationResponse.model_validate(response.json()) + result.index_id = str(index_id) + return result @resource_override(resource_type="index", resource_identifier="index_name") @traced(name="contextgrounding_start_batch_transform", run_type="uipath") @@ -907,7 +911,9 @@ async def start_batch_transform_ephemeral( params=spec.params, headers=spec.headers, ) - return BatchTransformCreationResponse.model_validate(response.json()) + result = BatchTransformCreationResponse.model_validate(response.json()) + result.index_id = str(index_id) if index_id else None + return result @resource_override(resource_type="index", resource_identifier="index_name") @traced(name="contextgrounding_start_batch_transform_async", run_type="uipath") @@ -953,7 +959,9 @@ async def start_batch_transform_ephemeral_async( params=spec.params, headers=spec.headers, ) - return BatchTransformCreationResponse.model_validate(response.json()) + result = BatchTransformCreationResponse.model_validate(response.json()) + result.index_id = str(index_id) if index_id else None + return result @resource_override(resource_type="index", resource_identifier="index_name") @traced(name="contextgrounding_retrieve_batch_transform", run_type="uipath") @@ -1185,7 +1193,9 @@ def start_deep_rag( headers=spec.headers, ) - return DeepRagCreationResponse.model_validate(response.json()) + result = DeepRagCreationResponse.model_validate(response.json()) + result.index_id = str(index_id) + return result @resource_override(resource_type="index", resource_identifier="index_name") @traced(name="contextgrounding_start_deep_rag_async", run_type="uipath") @@ -1248,7 +1258,9 @@ async def start_deep_rag_async( headers=spec.headers, ) - return DeepRagCreationResponse.model_validate(response.json()) + result = DeepRagCreationResponse.model_validate(response.json()) + result.index_id = str(index_id) + return result @resource_override(resource_type="index", resource_identifier="index_name") @traced(name="contextgrounding_start_deep_rag", run_type="uipath") @@ -1289,7 +1301,9 @@ async def start_deep_rag_ephemeral( headers=spec.headers, ) - return DeepRagCreationResponse.model_validate(response.json()) + result = DeepRagCreationResponse.model_validate(response.json()) + result.index_id = str(index_id) if index_id else None + return result @resource_override(resource_type="index", resource_identifier="index_name") @traced(name="contextgrounding_start_deep_rag_async", run_type="uipath") @@ -1330,7 +1344,9 @@ async def start_deep_rag_ephemeral_async( headers=spec.headers, ) - return DeepRagCreationResponse.model_validate(response.json()) + result = DeepRagCreationResponse.model_validate(response.json()) + result.index_id = str(index_id) if index_id else None + return result @resource_override(resource_type="index") @traced(name="contextgrounding_search", run_type="uipath") diff --git a/packages/uipath-platform/src/uipath/platform/context_grounding/context_grounding.py b/packages/uipath-platform/src/uipath/platform/context_grounding/context_grounding.py index 099056b31..73eafe4df 100644 --- a/packages/uipath-platform/src/uipath/platform/context_grounding/context_grounding.py +++ b/packages/uipath-platform/src/uipath/platform/context_grounding/context_grounding.py @@ -128,6 +128,7 @@ class BatchTransformCreationResponse(BaseModel): id: str last_batch_rag_status: DeepRagStatus = Field(alias="lastBatchRagStatus") error_message: str | None = Field(alias="errorMessage", default=None) + index_id: Optional[str] = Field(default=None, alias="indexId") class BatchTransformResponse(BaseModel): @@ -175,6 +176,7 @@ class DeepRagCreationResponse(BaseModel): id: str last_deep_rag_status: DeepRagStatus = Field(alias="lastDeepRagStatus") created_date: str = Field(alias="createdDate") + index_id: Optional[str] = Field(default=None, alias="indexId") class ContextGroundingMetadata(BaseModel):