feat: expose authoring contract inventory

This commit is contained in:
lda
2026-08-14 15:44:04 +07:00 Verified
parent 0f1ed56876
commit 22510e0681
11 changed files with 713 additions and 2 deletions
@@ -5,6 +5,7 @@ from typing import Any, Literal, cast
from wf_api import CapabilityStepUpdate
from wf_api.models import (
AuthoringContractInventoryPayload,
CompileDraftWorkspaceResult,
CreateArtifactFromWorkspaceResult,
CreateDraftWorkspaceFromCapabilityResult,
@@ -76,6 +77,25 @@ class RpcDraftClientMixin:
{"workspace_id": workspace_id, "include_draft": include_draft},
)
async def inspect_draft_authoring_contract(
self: RpcCaller,
*,
workspace_id: str,
revision: int,
selected_step_id: str | None = None,
) -> AuthoringContractInventoryPayload | DraftWorkspaceResult:
return cast(
AuthoringContractInventoryPayload | DraftWorkspaceResult,
await self._call(
"workflow.draft_workspaces.inspect_authoring_contract",
{
"workspace_id": workspace_id,
"revision": revision,
"selected_step_id": selected_step_id,
},
),
)
async def create_draft_workspace_from_capability(
self: RpcCaller,
*,
@@ -7,6 +7,7 @@ while registering nested handlers for response validation and OpenRPC output.
import fastapi_jsonrpc as jsonrpc
from wf_api.models import (
AuthoringContractInventoryPayload,
CompileDraftWorkspaceResult,
CreateArtifactFromWorkspaceResult,
CreateDraftWorkspaceFromCapabilityResult,
@@ -33,6 +34,7 @@ from ..models import (
DeleteDraftWorkspaceParams,
GetDraftWorkspaceParams,
HandleDraftParams,
InspectDraftAuthoringContractParams,
ListDraftWorkspacesParams,
PatchDraftParams,
PatchDraftWorkspaceParams,
@@ -113,6 +115,22 @@ def register_methods(
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
raise_workflow_rpc_error(exc)
@entrypoint.method(
name="workflow.draft_workspaces.inspect_authoring_contract",
errors=[WorkflowRpcError],
)
async def workflow_draft_workspaces_inspect_authoring_contract(
params: InspectDraftAuthoringContractParams = RpcParams(),
) -> AuthoringContractInventoryPayload | DraftWorkspaceResult:
try:
return await server.api.inspect_draft_authoring_contract(
workspace_id=params.workspace_id,
revision=params.revision,
selected_step_id=params.selected_step_id,
)
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
raise_workflow_rpc_error(exc)
@entrypoint.method(
name="workflow.draft_workspaces.create_from_capability",
errors=[WorkflowRpcError],
+6
View File
@@ -147,6 +147,12 @@ class GetDraftWorkspaceParams(RpcParamsModel):
include_draft: bool = False
class InspectDraftAuthoringContractParams(RpcParamsModel):
workspace_id: str = Field(min_length=1)
revision: int = Field(ge=1)
selected_step_id: str | None = Field(default=None, min_length=1)
class PatchDraftWorkspaceParams(RpcParamsModel):
workspace_id: str = Field(min_length=1)
revision: int = Field(ge=1)