(()=>{const e=window.KIND_REGISTRY;e&&(e.conversationWorkspace={id:"conversationWorkspace",label:"Workspace",workspaceLabel:"Conversation Workspace",workspaceIcon:"forum",description:"Side-by-side agent conversations as first-class panels \u2014 each a live session with tools, files, and status.",defaultView:"panel-grid",defaultDetail:"none",agentTreatment:"provenance",primaryAction:{label:"New panel",kind:"primary",icon:"add"},secondaryActions:[{label:"4-up layout",icon:"grid_view"}],heroKpis:[{label:"open panels",value:"3",delta:"",trend:"flat"},{label:"streaming",value:"1",delta:"",trend:"flat"},{label:"awaiting input",value:"2",delta:"",trend:"flat"},{label:"queued msgs",value:"4",delta:"",trend:"flat"},{label:"session cost",value:"$1.84",delta:"",trend:"down"}],schema:[],panels:[{agent:"claude-code \xB7 context-loop",harness:"claude-code",status:"running",elapsed:"00:18:44",transcript:[{who:"user",text:"Refactor the context-loop to cache the last 5 turns."},{who:"agent",text:"On it \u2014 reading contextPipeline first."},{who:"agent",tool:!0,ok:!0,text:"read_file services/context-pipeline/index.ts"},{who:"agent",tool:!0,ok:!0,text:"edit_file \u2014 added LRU cache, 5-turn window"}],composerHint:"Send a message\u2026"},{agent:"codex \xB7 outbox migration",harness:"codex",status:"warn",elapsed:"01:02:10",transcript:[{who:"user",text:"Migrate the Firestore outbox table."},{who:"agent",tool:!0,ok:!1,text:"run_migration --dry-run  \u2192 destructive, needs approval"},{who:"agent",text:"Waiting for approval before running the real migration."}],composerHint:"Approve to continue\u2026"}],mockItems:[],dataContract:"HAVE (send) / PARTIAL \u2014 POST /api/agent exists (auth-gate, working) for send; GET /agent-runs/{id}/transcript planned (C8). Design the queue/optimistic-send states."},e.automations={id:"automations",label:"Automations",workspaceLabel:"Automations",workspaceIcon:"bolt",description:"Define, observe, and audit automations that trigger agent runs \u2014 cron, GitHub, Slack, webhook, poll.",defaultView:"table",defaultDetail:"drawer",agentTreatment:"provenance",primaryAction:{label:"New automation",kind:"primary",icon:"add"},secondaryActions:[{label:"Run history",icon:"timeline"}],heroKpis:[{label:"active",value:"8",delta:"",trend:"flat"},{label:"paused",value:"2",delta:"",trend:"flat"},{label:"fired 24h",value:"31",delta:"+31",trend:"up"},{label:"failed 24h",value:"1",delta:"",trend:"down"},{label:"next fire",value:"in 22m",delta:"",trend:"flat"}],schema:[{key:"title",label:"Automation",wide:!0},{key:"trigger",label:"Trigger",mono:!0},{key:"target",label:"Target agent"},{key:"status",label:"Last result",kind:"status"},{key:"nextFire",label:"Next fire",mono:!0},{key:"enabled",label:"Enabled"}],mockItems:[{id:"au-1",title:"Morning brief",trigger:"cron 0 7 * * *",target:"brief-writer",status:"ok",statusLabel:"\u2713 07:00",nextFire:"in 22m",enabled:!0,subtitle:"Fires daily, cost cap $0.50"},{id:"au-2",title:"Issue triage",trigger:"github: issues.opened",target:"triage-agent",status:"ok",statusLabel:"\u2713 2m ago",nextFire:"on event",enabled:!0,subtitle:"Approval required before labeling"},{id:"au-3",title:"PR review rota",trigger:"github: pull_request",target:"reviewer-agent",status:"fail",statusLabel:"\u2717 1h ago",nextFire:"on event",enabled:!0,error:"Timeout calling reviewer-agent",subtitle:"Failed once today \u2014 investigate"},{id:"au-4",title:"Ops mention watch",trigger:"slack: #ops mention",target:"ops-responder",status:"ok",statusLabel:"\u2713 14m ago",nextFire:"on event",enabled:!0,subtitle:""},{id:"au-5",title:"Dependency-bump verifier",trigger:"poll 5m",target:"dep-verifier",status:"idle",statusLabel:"paused",nextFire:"\u2014",enabled:!1,subtitle:"Paused since 2026-07-08"}],dataContract:"PLANNED \u2014 GET /automations + /automations/{id}/history (harness-backed via frontend/api/); mutations /actions automation.create|update|toggle|delete (two-phase). Connection chips reuse kinds-platform-integrations.jsx visual language (existing)."},e.backendSwitch={id:"backendSwitch",label:"Backends",workspaceLabel:"Execution Backends",workspaceIcon:"dns",description:"Choose where an agent run executes \u2014 Local \xB7 Remote VM \xB7 Cloud \u2014 with honest state-preservation semantics.",defaultView:"table",defaultDetail:"drawer",agentTreatment:"none",primaryAction:{label:"Add backend",kind:"primary",icon:"add"},secondaryActions:[],heroKpis:[{label:"registered",value:"3",delta:"",trend:"flat"},{label:"reachable",value:"3 / 3",delta:"",trend:"flat"},{label:"default",value:"Local",delta:"",trend:"flat"}],schema:[{key:"title",label:"Backend",wide:!0},{key:"type",label:"Type",mono:!0},{key:"status",label:"Reachability",kind:"status"},{key:"capacity",label:"Capacity",mono:!0},{key:"defaultFor",label:"Default for"}],mockItems:[{id:"be-1",title:"This machine",type:"local",status:"ok",statusLabel:"reachable",capacity:"4 concurrent",defaultFor:"secrets-local tasks",subtitle:"Full FS \xB7 your creds"},{id:"be-2",title:"build-vm-01",type:"remote",status:"ok",statusLabel:"reachable",capacity:"2 concurrent",defaultFor:"automations",subtitle:"Isolated \xB7 attached repo copy"},{id:"be-3",title:"Cloud Run \u2014 us-central1",type:"cloud",status:"ok",statusLabel:"reachable",capacity:"auto-scales",defaultFor:"foundry deploys",subtitle:"Ephemeral \xB7 cost-metered"}],dataContract:"PLANNED \u2014 GET /backends + /actions backend.register|test|set-default|migrate-run (C8 engine API). Mid-run switch is a migration: confirm states exactly what is preserved vs restarts."},e.extensibilityLibrary={id:"extensibilityLibrary",label:"Library",workspaceLabel:"Extensibility Library",workspaceIcon:"extension",description:"Browse and enable ~5,500 skills, 316 plugins, 36 MCP servers \u2014 search-first, equip an agent.",defaultView:"catalog-grid",defaultDetail:"drawer",agentTreatment:"none",primaryAction:{label:"Add custom",kind:"primary",icon:"add"},secondaryActions:[],searchHint:"Search 5,623 skills, plugins & MCP servers\u2026",facets:["All","Skills","Plugins","MCP"],heroKpis:[{label:"skills",value:"5,272",delta:"",trend:"flat"},{label:"plugins",value:"315",delta:"",trend:"flat"},{label:"MCP servers",value:"36",delta:"",trend:"flat"},{label:"enabled (session)",value:"12",delta:"",trend:"up"},{label:"custom",value:"9",delta:"",trend:"flat"}],schema:[],mockItems:[{id:"ex-1",title:"pdf-extract",badge:"skill",badgeTone:"accent",subtitle:"Extract structured text/tables from PDFs.",provenance:"core",meta:"used 412\xD7",enabled:!0},{id:"ex-2",title:"playwright-mcp",badge:"mcp",badgeTone:"ok",subtitle:"Headless browser automation for agent tasks.",provenance:"core",meta:"used 88\xD7",enabled:!0},{id:"ex-3",title:"slack-notify",badge:"plugin",badgeTone:"warn",subtitle:"Post run status updates to a Slack channel.",provenance:"plugin:ops",meta:"used 205\xD7",enabled:!1},{id:"ex-4",title:"repo-summarize",badge:"skill",badgeTone:"accent",subtitle:"One-paragraph summary of any repo, for onboarding demo runs.",provenance:"core",meta:"used 61\xD7",enabled:!0},{id:"ex-5",title:"invoice-discovery-mcp",badge:"mcp",badgeTone:"ok",subtitle:"Match Stripe invoices against bank statements.",provenance:"custom",meta:"used 34\xD7",enabled:!1},{id:"ex-6",title:"linear-sync",badge:"plugin",badgeTone:"warn",subtitle:"Two-way sync between run status and Linear issues.",provenance:"plugin:ops",meta:"used 19\xD7",enabled:!1}],dataContract:"PLANNED \u2014 GET /library/catalog?q= (backed by existing harness index search-harness.mjs, exposed snapshot-first); enable/register via /actions library.enable|register (two-phase)."},e.runReview={id:"runReview",label:"Review",workspaceLabel:"Run Review",workspaceIcon:"difference",description:"Review what an agent actually changed before it ships \u2014 diff, PR status, and quality-gate verdicts.",defaultView:"diffView",defaultDetail:"drawer",agentTreatment:"provenance",primaryAction:{label:"Approve & merge",kind:"red",icon:"check"},secondaryActions:[{label:"Request changes",icon:"forum"}],heroKpis:[{label:"awaiting review",value:"4",delta:"",trend:"flat"},{label:"files changed",value:"23",delta:"",trend:"flat"},{label:"checks green",value:"6/7",delta:"",trend:"up"},{label:"gate verdicts",value:"2 approve \xB7 1 pending",delta:"",trend:"flat"},{label:"merged today",value:"3",delta:"+3",trend:"up"}],schema:[{key:"title",label:"Run",wide:!0},{key:"branch",label:"Branch",mono:!0},{key:"diffCount",label:"+/\u2212",mono:!0},{key:"status",label:"Verdict",kind:"status"}],diff:{from:"main",to:"feat/372-context-loop",added:41,removed:9,left:`async function loadContext(turns) {
  return db.getRecentTurns(turns, 20);
}`,right:`const cache = new LRUCache({ max: 5 });
async function loadContext(turns) {
  if (cache.has(turns)) return cache.get(turns);
  const ctx = await db.getRecentTurns(turns, 5);
  cache.set(turns, ctx);
  return ctx;
}`},mockItems:[{id:"rv-372",title:"context-loop refactor",branch:"feat/372-context-loop",diffCount:"+41 / \u22129",status:"ok",statusLabel:"APPROVE",subtitle:"Acceptance-contract 7/7 \xB7 adversarial review: 0 findings",preview:`PR       #401
Mergeable yes
Checks   6/7 green
Gates    APPROVE \xB7 7/7 acceptance \xB7 0 adversarial findings`},{id:"rv-360",title:"outbox migration",branch:"feat/360-outbox",diffCount:"+118 / \u22124",status:"warn",statusLabel:"PENDING",subtitle:"Awaiting local-green evidence",preview:`PR       #398 (draft)
Mergeable blocked
Checks   4/7 green
Gates    PENDING \xB7 awaiting local-green`},{id:"rv-355",title:"docstring pass",branch:"chore/355-docstrings",diffCount:"+62 / \u221218",status:"ok",statusLabel:"APPROVE",subtitle:"Acceptance-contract 5/5 \xB7 adversarial review: 0 findings",preview:`PR       #399
Mergeable yes
Checks   7/7 green
Gates    APPROVE \xB7 5/5 acceptance`},{id:"rv-341",title:"MCP handshake fix",branch:"fix/341-mcp",diffCount:"+9 / \u22122",status:"fail",statusLabel:"REQUEST-CHANGES",subtitle:"Adversarial review: 1 finding (medium)",preview:`PR       #400
Mergeable no
Checks   5/7 green
Gates    REQUEST-CHANGES \xB7 1 medium finding`}],dataContract:"PLANNED \u2014 GET /review/queue, /agent-runs/{id}/diff (C8 engine worktree API); PR/checks via existing gh-backed proxy (partial). Merge \u2192 /actions run.merge (two-phase, evidence-gated)."},e.workspaceOnboarding={id:"workspaceOnboarding",label:"Templates",workspaceLabel:"Onboarding + Template Gallery",workspaceIcon:"dashboard_customize",description:"Under-5-minute first run: detect the engine, guided connect, spawn a demo run \u2014 plus a template gallery.",defaultView:"catalog-grid",defaultDetail:"none",agentTreatment:"none",primaryAction:{label:"Set up workspace",kind:"primary",icon:"rocket_launch"},secondaryActions:[],searchHint:"Search automations & blueprints\u2026",facets:["Automations","Agent blueprints","Workflows"],heroKpis:[{label:"templates",value:"8",delta:"",trend:"flat"},{label:"first-run state",value:"ready",delta:"",trend:"up"},{label:"demo runs today",value:"2",delta:"+2",trend:"up"}],schema:[],stageNames:["Detect","Connect","Demo run","Tour"],mockItems:[{id:"tp-1",title:"Morning brief",badge:"automation",badgeTone:"accent",subtitle:"Daily 07:00 summary of overnight runs & issues.",provenance:"skills: pdf-extract",meta:"~$0.05/run"},{id:"tp-2",title:"Issue triage",badge:"automation",badgeTone:"accent",subtitle:"Labels and routes new GitHub issues.",provenance:"MCP: github",meta:"~$0.02/run"},{id:"tp-3",title:"PR review rota",badge:"automation",badgeTone:"accent",subtitle:"Assigns and summarizes open PRs on rotation.",provenance:"MCP: github",meta:"~$0.08/run"},{id:"tp-4",title:"Dependency-bump verifier",badge:"automation",badgeTone:"accent",subtitle:"Runs tests against every dependency bump PR.",provenance:"core",meta:"~$0.11/run"},{id:"tp-5",title:"Research \u2192 Plan \u2192 Implement",badge:"workflow",badgeTone:"warn",subtitle:"Three-step agent workflow for a scoped feature.",provenance:"core",meta:"~$1.20/run"},{id:"tp-6",title:"Support triage agent",badge:"blueprint",badgeTone:"ok",subtitle:"Blueprint for a customer-support first-response agent.",provenance:"feeds Agent Foundry",meta:""}],dataContract:"PLANNED \u2014 GET /templates/gallery (seed with the 8 templates named in the source prompt, snapshot-first). Template instantiation via /actions template.instantiate (two-phase)."})})();
