{"ok":true,"data":{"schemaVersion":"agentui.demo-suite.v1","title":"PlatPhorm AgentUI Suite Demo: Root -> MCP -> Spec -> Sandbox -> Evals -> AgentUI","generatedAt":"2026-07-09T13:48:23.615Z","mode":"declared","status":"ready","summary":{"steps":6,"publicSafeSteps":6,"protectedSteps":2,"probePass":0,"probeFail":0,"probeTimeout":0,"confirmationGatedHandoffs":6},"flow":[{"id":"root-graph","order":1,"title":"Discover trusted topology from PlatPhorm root","ownerService":"root","endpoint":"https://platphormnews.com/api/network/graph","method":"GET","purpose":"Start with the network graph so AgentUI renders trusted-suite context instead of hardcoded site assumptions.","userAction":"Open the demo readiness panel and confirm the root graph is the topology source.","inputPreview":{"source":"https://platphormnews.com/api/network/graph"},"outputPreview":{"expected":"public-safe network graph summary","sourceLabel":"root_graph"},"nextAction":"Select MCP tool schema rendering after topology is visible.","publicSafe":true,"protectedAction":false,"status":"ready","probeStatus":"not_requested","handoff":{"from":"root","to":"root","transport":"openapi","status":"ready","requiresAuth":false,"resultRef":null,"confirmationPolicy":"Result references are displayed only after the target service confirms a URL, id, scorecard, artifact, trace link, or delivery id."},"evidence":{"source":"declared","url":"https://platphormnews.com/api/network/graph","fetched":false,"verified":false}},{"id":"mcp-render","order":2,"title":"Render MCP tool form in AgentUI","ownerService":"mcp","endpoint":"https://mcp.platphormnews.com/api/mcp","method":"POST","purpose":"MCP remains the capability registry; AgentUI renders tool input schemas and JSON-RPC previews.","userAction":"Show the rendered MCP form and JSON-RPC preview.","inputPreview":{"jsonrpc":"2.0","id":"agentui-render-preview","method":"tools/call","params":{"name":"get_agentui_status","arguments":{}}},"outputPreview":{"formId":"form_mcp_tool_44136fa355b3","fields":0,"renderStatus":"success"},"nextAction":"Validate the rendered contract with Spec before any target execution.","publicSafe":true,"protectedAction":false,"status":"ready","probeStatus":"not_requested","handoff":{"from":"agentui","to":"mcp","transport":"mcp","status":"ready","requiresAuth":false,"resultRef":null,"confirmationPolicy":"Result references are displayed only after the target service confirms a URL, id, scorecard, artifact, trace link, or delivery id."},"evidence":{"source":"declared","url":"https://mcp.platphormnews.com/api/mcp","fetched":false,"verified":false}},{"id":"spec-validate","order":3,"title":"Validate interface contract with Spec","ownerService":"spec","endpoint":"https://spec.platphormnews.com/api/v1/validate","method":"POST","purpose":"Spec owns contract truth. AgentUI prepares the schema packet and displays returned validation only when Spec confirms it.","userAction":"Show the JSON Schema form and validation result.","inputPreview":{"schema":{"type":"object","properties":{"targetUrl":{"type":"string","format":"uri","default":"https://agentui.platphormnews.com/builder"},"workflowTitle":{"type":"string","default":"AgentUI Web Status Demo"},"releaseGate":{"type":"string","enum":["workflow_contract","ui_quality","web_readiness"],"default":"workflow_contract"},"dryRun":{"type":"boolean","default":true}},"required":["targetUrl","workflowTitle","releaseGate"],"additionalProperties":false},"renderer":"renderJsonSchemaForm"},"outputPreview":{"localValidation":true,"renderStatus":"success","fields":4},"nextAction":"Prepare a Sandbox command packet as a dry-run handoff.","publicSafe":true,"protectedAction":false,"status":"ready","probeStatus":"not_requested","handoff":{"from":"agentui","to":"spec","transport":"openapi","status":"ready","requiresAuth":false,"resultRef":null,"confirmationPolicy":"Result references are displayed only after the target service confirms a URL, id, scorecard, artifact, trace link, or delivery id."},"evidence":{"source":"declared","url":"https://spec.platphormnews.com/api/v1/validate","fetched":false,"verified":false}},{"id":"sandbox-packet","order":4,"title":"Prepare Sandbox dry-run command packet","ownerService":"sandbox","endpoint":"https://sandbox.platphormnews.com/api/sandbox/receive-handoff","method":"POST","purpose":"Sandbox owns bounded command execution. AgentUI prepares the command packet and keeps it preview_ready unless Sandbox confirms execution.","userAction":"Show command packet, auth requirement, and no-execution label.","inputPreview":{"schemaVersion":"platphorm.handoff.v1","id":"delegation_sandbox_6de89a74","from":"agentui","to":"sandbox","capability":"validate script or run packet","intent":"Preview validate script or run packet for Delegation Packet","transport":"openapi","auth":{"required":true,"satisfied":false,"mode":"api_key"},"status":"preview_ready","dryRun":true,"inputArtifactIds":["artifact_aa24ca0d6de89a74","share_0d7ac83c18be2020"],"outputArtifactIds":[],"trace":{"traceId":"trace_mrdkb3k3_97nvhtai","spanId":"span_mrdkb3k3_8e9bxqim","traceparent":"00-mrdkb3k3_97nvhtai000000000000000-mrdkb3k3_8e9bxqi-01","traceUrl":"https://trace.platphormnews.com/traces/trace_mrdkb3k3_97nvhtai"},"resultRef":null,"confirmation":{"required":false,"received":false,"source":null}},"outputPreview":{"delegationId":"delegation_sandbox_6de89a74","status":"preview_ready","resultRef":null},"protectedAction":true,"handoffStatus":"preview_ready","nextAction":"Send the UI and workflow packet to Evals as a scorecard preview.","publicSafe":true,"status":"preview_ready","probeStatus":"not_requested","handoff":{"from":"agentui","to":"sandbox","transport":"openapi","status":"preview_ready","requiresAuth":true,"resultRef":null,"confirmationPolicy":"Result references are displayed only after the target service confirms a URL, id, scorecard, artifact, trace link, or delivery id."},"evidence":{"source":"declared","url":"https://sandbox.platphormnews.com/api/sandbox/receive-handoff","fetched":false,"verified":false}},{"id":"evals-packet","order":5,"title":"Prepare Evals release-gate packet","ownerService":"evals","endpoint":"https://evals.platphormnews.com/api/evals/send-handoff","method":"POST","purpose":"Evals owns scoring. AgentUI shows scorecards only after Evals confirms a result.","userAction":"Show scorecard packet, target service, status, and resultRef null.","inputPreview":{"schemaVersion":"platphorm.handoff.v1","id":"delegation_evals_97d6cc32","from":"agentui","to":"evals","capability":"score interface or workflow quality","intent":"Preview score interface or workflow quality for Delegation Packet","transport":"openapi","auth":{"required":true,"satisfied":false,"mode":"api_key"},"status":"preview_ready","dryRun":true,"inputArtifactIds":["artifact_b2b4357c97d6cc32","share_cc31db8ef7402276"],"outputArtifactIds":[],"trace":{"traceId":"trace_mrdkb3k4_rjmindyf","spanId":"span_mrdkb3k4_53aioofp","traceparent":"00-mrdkb3k4_rjmindyf000000000000000-mrdkb3k4_53aioof-01","traceUrl":"https://trace.platphormnews.com/traces/trace_mrdkb3k4_rjmindyf"},"resultRef":null,"confirmation":{"required":false,"received":false,"source":null}},"outputPreview":{"delegationId":"delegation_evals_97d6cc32","status":"preview_ready","resultRef":null},"protectedAction":true,"handoffStatus":"preview_ready","nextAction":"Confirm AgentUI can receive proof handoffs from the suite.","publicSafe":true,"status":"preview_ready","probeStatus":"not_requested","handoff":{"from":"agentui","to":"evals","transport":"openapi","status":"preview_ready","requiresAuth":true,"resultRef":null,"confirmationPolicy":"Result references are displayed only after the target service confirms a URL, id, scorecard, artifact, trace link, or delivery id."},"evidence":{"source":"declared","url":"https://evals.platphormnews.com/api/evals/send-handoff","fetched":false,"verified":false}},{"id":"agentui-receive","order":6,"title":"Confirm AgentUI receive-handoff readiness","ownerService":"agentui","endpoint":"https://agentui.platphormnews.com/api/agentui/receive-handoff","method":"GET","purpose":"AgentUI owns the human-operable proof receiver and does not claim persistence or completion without a result reference.","userAction":"Open receiver readiness and show aliases for BrowserOps and v1 handoff paths.","inputPreview":{"readinessProbe":true},"outputPreview":{"schemaVersion":"agentui.browserops-receiver.v1","service":"agentui","endpoint":"https://agentui.platphormnews.com/api/agentui/receive-handoff","aliases":["https://agentui.platphormnews.com/api/browserops/receive-handoff","https://agentui.platphormnews.com/api/v1/receive-handoff","https://agentui.platphormnews.com/api/v1/agentui/receive-handoff"],"status":"configured","accepts":["platphorm.handoff.v1"],"methods":["GET","POST"],"publicSafeProbe":true,"protectedAcceptance":true,"auth":{"requiredForAcceptedHandoff":true,"acceptedHeaders":["Authorization: Bearer $PLATPHORM_API_KEY","X-PlatPhorm-API-Key: $PLATPHORM_API_KEY"],"browserStorage":"AgentUI does not store platform keys in browser storage."},"confirmationPolicy":"AgentUI returns preview_ready for dry-run handoffs and accepted for authorized received handoffs. It never returns completed unless a result reference exists.","outputPolicy":"No durable AgentUI artifact is created by this receiver yet; outputArtifactIds stay empty until persistence is configured."},"nextAction":"Run live read-only probes if the demo network is available.","publicSafe":true,"protectedAction":false,"status":"ready","probeStatus":"not_requested","handoff":{"from":"agentui","to":"agentui","transport":"openapi","status":"ready","requiresAuth":false,"resultRef":null,"confirmationPolicy":"Result references are displayed only after the target service confirms a URL, id, scorecard, artifact, trace link, or delivery id."},"evidence":{"source":"declared","url":"https://agentui.platphormnews.com/api/agentui/receive-handoff","fetched":false,"verified":false}}],"automations":[{"id":"sheets-to-docs-linkedin","title":"Sheets topic to Docs social draft","status":"blueprint_ready","cadence":"Twice daily with randomized public-safe topic selection","publicSafe":true,"protectedActions":["Read private or protected Sheets data","Use server-side LLM drafting through AI Gateway or PLATPHORM_AI","Create Docs draft","Use Docs SEO/social publishing workflow for LinkedIn scheduling"],"source":{"service":"sheets","url":"https://sheets.platphormnews.com/api/docs","status":"discovery_ready"},"steps":[{"order":1,"service":"sheets","action":"Select a random topic row from the Sheet.","status":"protected_required","outputPolicy":"AgentUI shows the source reference and selected public-safe row summary only after Sheets confirms access."},{"order":2,"service":"ai_gateway","action":"Draft a concise LinkedIn post from the selected topic.","status":"preview_ready","outputPolicy":"Model output is advisory and labeled; secrets and private row values are not logged."},{"order":3,"service":"docs","action":"Create a Docs draft with SEO metadata and social share copy.","status":"protected_required","outputPolicy":"AgentUI displays a Docs URL only after Docs returns a draft id, slug, or URL."},{"order":4,"service":"docs","action":"Queue LinkedIn share through the Docs SEO/social workflow.","status":"confirmation_required","outputPolicy":"AgentUI does not claim LinkedIn scheduling until Docs confirms the social job reference."}],"demoPrompt":"Pick one public-safe topic from the source Sheet, write a professional LinkedIn post with a short hook, one useful insight, one call to action, and SEO metadata suitable for a Docs draft.","nextAction":"For the demo, show this as a protected automation blueprint. Execute only after Sheets, AI Gateway, Docs, and the LinkedIn publishing adapter confirm the required protected actions."}],"handoffPolicy":"AgentUI creates preview_ready packets by default. Protected target sends require PLATPHORM_API_KEY and completion is shown only when the target service returns a result reference.","operatorScript":["Open /integrations and start with Demo Readiness.","Show root topology source, then MCP schema rendering.","Render the suggested BrowserOps or Sandbox payload in /builder.","Show Spec validation and local form validation output.","Prepare Sandbox and Evals packets; point out resultRef stays null until target confirmation.","Open /api/agentui/receive-handoff to prove AgentUI receiver readiness."]}}