list deployment compaction & inspect deployment
This commit is contained in:
@@ -819,11 +819,18 @@ class WorkflowSurfaceHandlers:
|
||||
return {"deployments": []}
|
||||
return {
|
||||
"deployments": [
|
||||
deployment.model_dump(mode="json")
|
||||
_deployment_summary(deployment)
|
||||
for deployment in self.service.artifact_store.list_deployments()
|
||||
]
|
||||
}
|
||||
|
||||
async def inspect_deployment(self, *, deployment_id: str) -> dict[str, Any]:
|
||||
if self.service.artifact_store is None:
|
||||
raise KeyError("workflow artifact store is not configured")
|
||||
return self.service.artifact_store.get_deployment(deployment_id).model_dump(
|
||||
mode="json"
|
||||
)
|
||||
|
||||
async def save_deployment(self, deployment: dict[str, Any]) -> dict[str, Any]:
|
||||
if self.service.artifact_store is None:
|
||||
raise KeyError("workflow artifact store is not configured")
|
||||
@@ -1262,3 +1269,14 @@ def _run_payload(
|
||||
payload["trace"] = trace
|
||||
payload["trace_truncated"] = trace_truncated
|
||||
return payload
|
||||
|
||||
|
||||
def _deployment_summary(deployment: WorkflowDeployment) -> dict[str, Any]:
|
||||
"""Return compact deployment metadata for progressive list responses."""
|
||||
return {
|
||||
"id": deployment.id,
|
||||
"artifact_id": deployment.artifact_id,
|
||||
"artifact_version": deployment.artifact_version,
|
||||
"binding_count": len(deployment.binding_map()),
|
||||
"drift_policy": deployment.drift_policy.value,
|
||||
}
|
||||
|
||||
@@ -514,11 +514,22 @@ def register_workflow_tools(server: FastMCP[Any], service: WfMcpService) -> None
|
||||
@server.tool(
|
||||
name="wf.workflow.list_deployments",
|
||||
title="List Workflow Deployments",
|
||||
description="List saved workflow deployments and their source bindings.",
|
||||
description=(
|
||||
"List compact saved workflow deployment summaries. Use "
|
||||
"inspect_deployment for full source bindings."
|
||||
),
|
||||
)
|
||||
async def list_deployments() -> dict[str, Any]:
|
||||
return await handlers.list_deployments()
|
||||
|
||||
@server.tool(
|
||||
name="wf.workflow.inspect_deployment",
|
||||
title="Inspect Workflow Deployment",
|
||||
description="Return one full workflow deployment including source bindings.",
|
||||
)
|
||||
async def inspect_deployment(deployment_id: str) -> dict[str, Any]:
|
||||
return await handlers.inspect_deployment(deployment_id=deployment_id)
|
||||
|
||||
@server.tool(
|
||||
name="wf.workflow.save_deployment",
|
||||
title="Save Workflow Deployment",
|
||||
|
||||
Reference in New Issue
Block a user