Planner Studio

Turn upstream planner input into route plans and rendered widgets.

Edit the planner input JSON, validate it locally, inspect the resulting route plan, and render the widget output without going through ChatGPT.

Input

Planner Input

Output

Route Plan

{
  "version": "1.0",
  "id": "plan:9f0a065d",
  "mode": "clarify",
  "prompt": "We have the sales context already, but ask whether the customer wants pricing, capacity, or both.",
  "summary": "Clarification is required before continuing with sales-cloud, cloud-cost-estimator, capacity-manager.",
  "agents": [
    {
      "serverId": "sales-cloud",
      "status": "running"
    },
    {
      "serverId": "cloud-cost-estimator",
      "status": "queued"
    },
    {
      "serverId": "capacity-manager",
      "status": "queued"
    }
  ],
  "widgets": [
    {
      "kind": "option",
      "id": "option:planner-clarification",
      "prompt": "Which analysis should the router prioritize next?",
      "selectionMode": "multi",
      "options": [
        {
          "id": "cost-estimate",
          "label": "Produce an OCI cost comparison"
        },
        {
          "id": "capacity-plan",
          "label": "Find regions with deployable capacity"
        }
      ],
      "allowFreeText": true
    },
    {
      "kind": "tile",
      "serverId": "sales-cloud",
      "status": "running"
    },
    {
      "kind": "tile",
      "serverId": "cloud-cost-estimator",
      "status": "queued"
    },
    {
      "kind": "tile",
      "serverId": "capacity-manager",
      "status": "queued"
    }
  ]
}

Trace

Rendered Payload

{
  "path": "/",
  "prompt": "We have the sales context already, but ask whether the customer wants pricing, capacity, or both.",
  "plan": {
    "version": "1.0",
    "id": "plan:9f0a065d",
    "mode": "clarify",
    "prompt": "We have the sales context already, but ask whether the customer wants pricing, capacity, or both.",
    "summary": "Clarification is required before continuing with sales-cloud, cloud-cost-estimator, capacity-manager.",
    "agents": [
      {
        "serverId": "sales-cloud",
        "status": "running"
      },
      {
        "serverId": "cloud-cost-estimator",
        "status": "queued"
      },
      {
        "serverId": "capacity-manager",
        "status": "queued"
      }
    ],
    "widgets": [
      {
        "kind": "option",
        "id": "option:planner-clarification",
        "prompt": "Which analysis should the router prioritize next?",
        "selectionMode": "multi",
        "options": [
          {
            "id": "cost-estimate",
            "label": "Produce an OCI cost comparison"
          },
          {
            "id": "capacity-plan",
            "label": "Find regions with deployable capacity"
          }
        ],
        "allowFreeText": {
          "enabled": true
        }
      },
      {
        "kind": "tile",
        "serverId": "sales-cloud",
        "status": "running"
      },
      {
        "kind": "tile",
        "serverId": "cloud-cost-estimator",
        "status": "queued"
      },
      {
        "kind": "tile",
        "serverId": "capacity-manager",
        "status": "queued"
      }
    ]
  },
  "message": "Clarification is required before continuing with sales-cloud, cloud-cost-estimator, capacity-manager.",
  "widgets": [
    {
      "id": "option:planner-clarification",
      "type": "option",
      "title": "Clarify the next step",
      "description": "Select one or more paths so the router can continue with structured input instead of a free-form reply.",
      "props": {
        "prompt": "Which analysis should the router prioritize next?",
        "selectionMode": "multi",
        "options": [
          {
            "id": "cost-estimate",
            "label": "Produce an OCI cost comparison"
          },
          {
            "id": "capacity-plan",
            "label": "Find regions with deployable capacity"
          }
        ],
        "allowFreeText": {
          "enabled": true,
          "label": "Something else",
          "placeholder": "Add any extra routing guidance."
        },
        "submitLabel": "Continue"
      },
      "modelContext": {
        "widgetFamily": "clarification"
      },
      "privateContext": {},
      "submit": {
        "action": {
          "kind": "tool-call",
          "toolName": "submit_widget_input",
          "input": {
            "sourceWidgetId": "option:planner-clarification"
          }
        }
      }
    },
    {
      "id": "tile:sales-cloud:1",
      "type": "tile",
      "title": "Sales Cloud",
      "description": "Pipeline, leads, contacts, and deal context.",
      "props": {
        "serverId": "sales-cloud",
        "shortDescription": "Pipeline, leads, contacts, and deal context.",
        "destination": "/apps/sales-cloud",
        "statusIndex": 1,
        "isCancelled": false,
        "detailsWidgetId": "details:sales-cloud"
      },
      "modelContext": {
        "serverId": "sales-cloud",
        "widgetFamily": "agent-summary"
      },
      "privateContext": {},
      "submit": null
    },
    {
      "id": "tile:cloud-cost-estimator:2",
      "type": "tile",
      "title": "Cloud Cost Estimator",
      "description": "Uploads bills and compares equivalent OCI costs.",
      "props": {
        "serverId": "cloud-cost-estimator",
        "shortDescription": "Uploads bills and compares equivalent OCI costs.",
        "destination": "/apps/cloud-cost-estimator",
        "statusIndex": 0,
        "isCancelled": false,
        "detailsWidgetId": "details:cloud-cost-estimator"
      },
      "modelContext": {
        "serverId": "cloud-cost-estimator",
        "widgetFamily": "agent-summary"
      },
      "privateContext": {},
      "submit": null
    },
    {
      "id": "tile:capacity-manager:3",
      "type": "tile",
      "title": "Capacity Manager",
      "description": "Finds regional capacity now or over time.",
      "props": {
        "serverId": "capacity-manager",
        "shortDescription": "Finds regional capacity now or over time.",
        "destination": "/apps/capacity-manager",
        "statusIndex": 0,
        "isCancelled": false,
        "detailsWidgetId": "details:capacity-manager"
      },
      "modelContext": {
        "serverId": "capacity-manager",
        "widgetFamily": "agent-summary"
      },
      "privateContext": {},
      "submit": null
    }
  ]
}

Rendered Output

Compiled Widgets

Clarification is required before continuing with sales-cloud, cloud-cost-estimator, capacity-manager.

Option Widget

Clarify the next step

Select one or more paths so the router can continue with structured input instead of a free-form reply.

Which analysis should the router prioritize next?

Sales Cloud

Pipeline, leads, contacts, and deal context.

Collecting data

Cloud Cost Estimator

Uploads bills and compares equivalent OCI costs.

Queued

Capacity Manager

Finds regional capacity now or over time.

Queued

Activity

Event Log

Produce a plan or interact with a widget to inspect follow-up state.