feat: expose draft lifecycle rpc methods

This commit is contained in:
lda
2026-07-21 20:17:05 +07:00 Verified
parent ee477c01a4
commit 4c36597f51
4 changed files with 236 additions and 2 deletions
@@ -16,6 +16,7 @@ from ..models import (
CompileDraftWorkspaceParams,
CreateArtifactFromWorkspaceParams,
CreateDraftFromCapabilityParams,
CreateEmptyDraftWorkspaceParams,
CreateWrapperFromWorkspaceParams,
DeleteDraftWorkspaceParams,
GetDraftWorkspaceParams,
@@ -26,8 +27,10 @@ from ..models import (
RemoveDraftBindingParams,
RemoveDraftRouteParams,
RemoveDraftStepParams,
SetDraftContractParams,
SetDraftNameParams,
SetDraftRouteParams,
SetDraftStartParams,
SetStepInputMapParams,
SetStepOutputMapParams,
SetWorkflowOutputMapParams,
@@ -105,6 +108,26 @@ def register_methods(
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
raise_workflow_rpc_error(exc)
@entrypoint.method(
name="workflow.draft_workspaces.create_empty",
errors=[WorkflowRpcError],
)
async def workflow_draft_workspaces_create_empty(
params: CreateEmptyDraftWorkspaceParams = RpcParams(),
) -> dict[str, Any]:
try:
return await server.api.create_empty_draft_workspace(
workspace_id=params.workspace_id,
name=params.name,
title=params.title,
input_schema=params.input_schema,
state_schema=params.state_schema,
output_schema=params.output_schema,
outcomes=params.outcomes,
)
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
raise_workflow_rpc_error(exc)
@entrypoint.method(
name="workflow.draft_workspaces.patch", errors=[WorkflowRpcError]
)
@@ -135,6 +158,39 @@ def register_methods(
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
raise_workflow_rpc_error(exc)
@entrypoint.method(
name="workflow.draft_workspaces.set_start", errors=[WorkflowRpcError]
)
async def workflow_draft_workspaces_set_start(
params: SetDraftStartParams = RpcParams(),
) -> dict[str, Any]:
try:
return await server.api.set_draft_start(
workspace_id=params.workspace_id,
revision=params.revision,
step_id=params.step_id,
)
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
raise_workflow_rpc_error(exc)
@entrypoint.method(
name="workflow.draft_workspaces.set_contract", errors=[WorkflowRpcError]
)
async def workflow_draft_workspaces_set_contract(
params: SetDraftContractParams = RpcParams(),
) -> dict[str, Any]:
try:
return await server.api.set_draft_contract(
workspace_id=params.workspace_id,
revision=params.revision,
input_schema=params.input_schema,
state_schema=params.state_schema,
output_schema=params.output_schema,
outcomes=params.outcomes,
)
except (ValueError, KeyError, LookupError, FileNotFoundError) as exc:
raise_workflow_rpc_error(exc)
@entrypoint.method(
name="workflow.draft_workspaces.set_route", errors=[WorkflowRpcError]
)