workflow builder deprecated field stop use in wf_mcp
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from wf_authoring import WorkflowBuilder
|
||||
from wf_authoring.dsl import PathExpr
|
||||
from wf_core import JoinNode, Workflow
|
||||
@@ -42,9 +44,8 @@ def _add_step(builder: WorkflowBuilder, step_id: str, step: DraftStep):
|
||||
return builder.use_ref(
|
||||
step.use,
|
||||
id=step_id,
|
||||
in_map=step.in_,
|
||||
input_values=step.with_,
|
||||
out_map=step.out,
|
||||
input=_draft_input_bindings(step),
|
||||
output=_draft_output_bindings(step),
|
||||
desc=step.desc,
|
||||
)
|
||||
if isinstance(step, DraftForeachStep):
|
||||
@@ -88,3 +89,24 @@ def _add_step(builder: WorkflowBuilder, step_id: str, step: DraftStep):
|
||||
default=step.match.default,
|
||||
).entry
|
||||
raise TypeError(f"unsupported draft step {type(step)!r}")
|
||||
|
||||
|
||||
def _draft_input_bindings(step: DraftUseStep) -> list[dict[str, Any]]:
|
||||
"""Translate draft input maps into canonical core input binding structs.
|
||||
|
||||
Draft JSON keeps `in` and `with` because they are compact patch targets for
|
||||
LLM clients. The compiled workflow should not re-emit deprecated builder map
|
||||
sugar, so this adapter boundary converts them to `NodeUse.input`.
|
||||
"""
|
||||
literal_bindings = [
|
||||
{"target": target, "value": value} for target, value in step.with_.items()
|
||||
]
|
||||
path_bindings = [
|
||||
{"target": target, "path": source} for source, target in step.in_.items()
|
||||
]
|
||||
return [*literal_bindings, *path_bindings]
|
||||
|
||||
|
||||
def _draft_output_bindings(step: DraftUseStep) -> list[dict[str, str]]:
|
||||
"""Translate draft output maps into canonical core output binding structs."""
|
||||
return [{"source": source, "target": target} for source, target in step.out.items()]
|
||||
|
||||
Reference in New Issue
Block a user