feat: expose composite step inputs

This commit is contained in:
lda
2026-08-13 18:44:40 +07:00 Verified
parent 0eeb6079d4
commit 144152a0ad
27 changed files with 495 additions and 92 deletions
+15 -7
View File
@@ -16,7 +16,7 @@ from wf_api.models import (
)
from wf_api.surface import RouteSource
from wf_artifacts.drafts.models import DraftStep
from wf_core.models.steps import InputBinding, OutputBinding
from wf_core.models.steps import InputBinding, OutputBinding, StepInputBinding
from .base import RpcCaller
@@ -86,8 +86,8 @@ class RpcDraftClientMixin:
input_schema: dict[str, Any] | None = None,
state_schema: dict[str, Any] | None = None,
output_schema: dict[str, Any] | None = None,
input: Sequence[Any] | None = None,
output: Sequence[Any] | None = None,
input: Sequence[StepInputBinding] | None = None,
output: Sequence[OutputBinding] | None = None,
input_map: dict[str, str] | None = None,
output_map: dict[str, str] | None = None,
error_message_source: Any | None = None,
@@ -104,8 +104,16 @@ class RpcDraftClientMixin:
"input_schema": input_schema,
"state_schema": state_schema,
"output_schema": output_schema,
"input": input,
"output": output,
"input": (
[binding.model_dump(mode="json") for binding in input]
if input is not None
else None
),
"output": (
[binding.model_dump(mode="json") for binding in output]
if output is not None
else None
),
"input_map": input_map,
"output_map": output_map,
"error_message_source": error_message_source,
@@ -265,7 +273,7 @@ class RpcDraftClientMixin:
workspace_id: str,
revision: int,
step_id: str,
bindings: Sequence[InputBinding],
bindings: Sequence[StepInputBinding],
) -> DraftWorkspaceResult:
return await _call_draft_workspace(
self,
@@ -405,7 +413,7 @@ class RpcDraftClientMixin:
route_from_outcome: str = "ok",
routes: dict[str, str] | None = None,
input_map: dict[str, str] | None = None,
input_bindings: Sequence[InputBinding] | None = None,
input_bindings: Sequence[StepInputBinding] | None = None,
bind_outputs: dict[str, str] | None = None,
desc: str | None = None,
retry: int | None = None,
+5 -5
View File
@@ -7,7 +7,7 @@ from pydantic import BaseModel, ConfigDict, Field, model_validator
from wf_api import CapabilityStepUpdate
from wf_api.models import TraceRange
from wf_artifacts.drafts.models import DraftStep
from wf_core.models.steps import InputBinding, OutputBinding
from wf_core.models.steps import InputBinding, OutputBinding, StepInputBinding
class RpcParamsModel(BaseModel):
@@ -75,8 +75,8 @@ class CreateDraftFromCapabilityParams(RpcParamsModel):
input_schema: dict[str, Any] | None = None
state_schema: dict[str, Any] | None = None
output_schema: dict[str, Any] | None = None
input: list[Any] | None = None
output: list[Any] | None = None
input: list[StepInputBinding] | None = None
output: list[OutputBinding] | None = None
input_map: dict[str, str] | None = None
output_map: dict[str, str] | None = None
error_message_source: Any | None = None
@@ -220,7 +220,7 @@ class SetStepInputBindingsParams(RpcParamsModel):
workspace_id: str = Field(min_length=1)
revision: int = Field(ge=1)
step_id: str = Field(min_length=1)
bindings: list[InputBinding]
bindings: list[StepInputBinding]
class SetStepOutputBindingsParams(RpcParamsModel):
@@ -275,7 +275,7 @@ class AddStepFromCapabilityParams(RpcParamsModel):
route_from_outcome: str = Field(default="ok", min_length=1)
routes: dict[str, str] | None = None
input_map: dict[str, str] | None = None
input_bindings: list[InputBinding] | None = None
input_bindings: list[StepInputBinding] | None = None
bind_outputs: dict[str, str] = Field(default_factory=dict)
desc: str | None = Field(default=None, min_length=1)
retry: int | None = Field(default=None, ge=0)