(()=>{const g=window.React;if(!g)return;const n=g.createElement,b=g.useState,S=g.useEffect,e={surface:"var(--app-surface,#1a1a1c)",elevated:"var(--app-elevated,#2a2a2e)",rule:"var(--app-rule,rgba(255,255,255,.07))",ink:"var(--app-ink,#e6e3da)",inkSoft:"var(--app-ink-soft,rgba(230,227,218,.62))",inkFaint:"var(--app-ink-faint,rgba(230,227,218,.38))",accent:"var(--app-accent,#00f3ff)",accentDim:"var(--app-accent-dim,rgba(0,243,255,.16))",running:"var(--app-running,#00f3ff)",success:"var(--app-success,#00d4b8)",warn:"var(--app-warn,#f8d974)",fail:"var(--app-fail,#f43f6c)",mono:'var(--app-font-mono,"JetBrains Mono",SFMono-Regular,monospace)'},f=[{id:"agt-lead-intake",name:"Lead Intake Agent",state:"draft",blueprint:{frontend:"Canvas Kind (custom)",backend:"FastAPI router"},bindings:{contexts:["ICP profile"],tools:[],dataSources:[]},runtimeUrl:null,updated:"2026-07-10",owner:"you"},{id:"agt-content-brief",name:"Content Brief Drafter",state:"draft",blueprint:{frontend:"Canvas Kind (form)",backend:"FastAPI router"},bindings:{contexts:["Brand voice"],tools:[],dataSources:[]},runtimeUrl:null,updated:"2026-07-11",owner:"growth"},{id:"agt-lead-classify",name:"Lead Classifier",state:"configured",blueprint:{frontend:"Canvas Kind (table)",backend:"FastAPI router + Firestore"},bindings:{contexts:["ICP profile","Scoring rubric"],tools:["classifier-model"],dataSources:["CRM"]},runtimeUrl:null,updated:"2026-07-11",owner:"ops"},{id:"agt-invoice-discovery",name:"Invoice Reconciler",state:"configured",blueprint:{frontend:"Canvas Kind (board)",backend:"FastAPI router + Firestore"},bindings:{contexts:["Ledger schema"],tools:["ledger-api"],dataSources:["Finance DB"]},runtimeUrl:null,updated:"2026-07-09",owner:"finance"},{id:"agt-outreach-composer",name:"Outreach Composer",state:"deployed",blueprint:{frontend:"Canvas Kind (chat)",backend:"FastAPI + Cloud Run"},bindings:{contexts:["Brand voice"],tools:["email-send","calendar"],dataSources:["CRM","Inbox"]},runtimeUrl:"https://agt-outreach-composer.run.app",updated:"2026-07-08",owner:"growth"},{id:"agt-support-triage",name:"Support Triage Agent",state:"deployed",blueprint:{frontend:"Canvas Kind (queue)",backend:"FastAPI + Cloud Run"},bindings:{contexts:["Support macros"],tools:["ticket-api"],dataSources:["Helpdesk"]},runtimeUrl:"https://agt-support-triage.run.app",updated:"2026-07-07",owner:"ops"},{id:"agt-vendor-scout",name:"Vendor Scout",state:"paused",blueprint:{frontend:"Canvas Kind (board)",backend:"FastAPI + Cloud Run"},bindings:{contexts:["Vendor policy"],tools:["scrape-worker"],dataSources:["Vendor registry"]},runtimeUrl:"https://agt-vendor-scout.run.app",updated:"2026-07-05",owner:"data"},{id:"agt-legacy-scraper",name:"Legacy Scraper",state:"retired",blueprint:{frontend:"\u2014",backend:"FastAPI (deprecated)"},bindings:{contexts:[],tools:[],dataSources:["Vendor registry"]},runtimeUrl:null,updated:"2026-06-30",owner:"data"}],m={heroKpis:[{label:"Agents",value:String(f.length)},{label:"Deployed",value:String(f.filter(a=>a.state==="deployed").length),delta:"+1"},{label:"Configured",value:String(f.filter(a=>a.state==="configured").length)},{label:"Retired",value:String(f.filter(a=>a.state==="retired").length)}],agents:f,source:"seed"},C=[{id:"draft",label:"Draft"},{id:"configured",label:"Configured"},{id:"deployed",label:"Deployed"},{id:"paused",label:"Paused"},{id:"retired",label:"Retired"}];function A(a){return a==="deployed"?e.running:a==="configured"?e.success:a==="paused"?e.warn:a==="retired"?e.inkFaint:e.inkSoft}function I(a){return a==="draft"?[{label:"Configure",action:"agent.configure"}]:a==="configured"?[{label:"Deploy",action:"agent.deploy"},{label:"Retire",action:"agent.transition",toState:"retired"}]:a==="deployed"?[{label:"Pause",action:"agent.transition",toState:"paused"},{label:"Retire",action:"agent.transition",toState:"retired"}]:a==="paused"?[{label:"Resume",action:"agent.transition",toState:"deployed"},{label:"Retire",action:"agent.transition",toState:"retired"}]:[]}const k="agent-foundry-style";function F(){if(document.getElementById(k))return;const a=`
    .agentfoundry{display:flex;flex-direction:column;gap:14px;height:100%;min-height:0;font-size:14px;line-height:1.45;color:${e.ink};font-family:var(--app-font-body,"Inter",system-ui,sans-serif);overflow:auto;padding:1.5rem;}
    .agentfoundry *,.agentfoundry *::before,.agentfoundry *::after{box-sizing:border-box;}
    .agentfoundry button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0;}
    .agentfoundry .mono{font-family:${e.mono};font-variant-numeric:tabular-nums;}
    .agentfoundry .agtf-src{font-family:${e.mono};font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:${e.inkFaint};margin:-6px 0 0;}

    .agentfoundry .agtf-hero{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
    .agentfoundry .agtf-kpi-row{display:flex;gap:10px;flex-wrap:wrap;flex:1;}
    .agentfoundry .agtf-kpi{padding:10px 14px;border-radius:10px;border:1px solid ${e.rule};background:${e.surface};min-width:96px;}
    .agentfoundry .agtf-kpi-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:${e.inkFaint};}
    .agentfoundry .agtf-kpi-value{font-family:${e.mono};font-size:19px;color:${e.ink};margin-top:2px;}
    .agentfoundry .agtf-kpi-delta{font-family:${e.mono};font-size:10.5px;color:${e.success};margin-left:6px;}
    .agentfoundry .agtf-new-btn{padding:9px 16px;border-radius:9px;background:${e.accent};color:#0e0e10;font-weight:700;font-size:12.5px;white-space:nowrap;}

    .agentfoundry .agtf-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;}
    .agentfoundry .agtf-col{width:236px;flex-shrink:0;display:flex;flex-direction:column;gap:10px;}
    .agentfoundry .agtf-col-head{display:flex;align-items:center;justify-content:space-between;padding:0 4px;}
    .agentfoundry .agtf-col-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:${e.ink};}
    .agentfoundry .agtf-col-count{font-size:11px;color:${e.inkFaint};}
    .agentfoundry .agtf-col-list{display:flex;flex-direction:column;gap:10px;}
    .agentfoundry .agtf-col-empty{font-size:11px;color:${e.inkFaint};padding:10px 4px;border:1px dashed ${e.rule};border-radius:10px;text-align:center;}

    .agentfoundry .agtf-card{border:1px solid ${e.rule};border-left-width:3px;border-left-style:solid;border-radius:10px;background:${e.surface};padding:12px;display:flex;flex-direction:column;gap:8px;}
    .agentfoundry .agtf-card-head{display:flex;align-items:center;gap:8px;}
    .agentfoundry .agtf-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
    .agentfoundry .agtf-card-name{flex:1;min-width:0;font-size:12.5px;font-weight:600;color:${e.ink};white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .agentfoundry .agtf-badge-row{display:flex;gap:5px;flex-wrap:wrap;}
    .agentfoundry .agtf-badge{font-family:${e.mono};font-size:9.5px;padding:2px 7px;border-radius:6px;color:${e.inkSoft};background:${e.elevated};border:1px solid ${e.rule};}
    .agentfoundry .agtf-bindings{font-family:${e.mono};font-size:10.5px;color:${e.inkFaint};}
    .agentfoundry .agtf-runtime{font-family:${e.mono};font-size:10.5px;color:${e.accent};text-decoration:none;word-break:break-all;}
    .agentfoundry .agtf-meta{font-size:10px;color:${e.inkFaint};}
    .agentfoundry .agtf-card-actions{display:flex;gap:6px;flex-wrap:wrap;padding-top:6px;border-top:1px solid ${e.rule};}
    .agentfoundry .agtf-btn-mini{flex:1;min-width:64px;height:26px;border-radius:6px;border:1px solid ${e.rule};color:${e.inkSoft};font-family:${e.mono};font-size:10px;text-transform:uppercase;letter-spacing:.04em;}
    .agentfoundry .agtf-btn-mini.primary{color:${e.accent};border-color:${e.accent};}
    .agentfoundry .agtf-btn-mini.danger{color:${e.fail};}

    .agentfoundry .agtf-modal-backdrop{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;}
    .agentfoundry .agtf-modal{width:min(440px,94vw);border-radius:14px;overflow:hidden;background:${e.elevated};border:1px solid ${e.rule};box-shadow:0 20px 60px rgba(0,0,0,.5);padding:18px 20px;color:${e.ink};}
    .agentfoundry .agtf-modal-verb{font-family:${e.mono};font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:${e.accent};margin-bottom:6px;}
    .agentfoundry .agtf-modal-title{font-weight:650;font-size:15px;margin-bottom:8px;}
    .agentfoundry .agtf-modal-sub{font-size:12.5px;color:${e.inkSoft};margin-bottom:12px;}
    .agentfoundry .agtf-modal-preview{font-family:${e.mono};font-size:10.5px;color:${e.inkSoft};background:${e.surface};border:1px solid ${e.rule};border-radius:8px;padding:8px 10px;margin-bottom:12px;white-space:pre-wrap;}
    .agentfoundry .agtf-modal-input{width:100%;padding:9px 11px;border-radius:8px;border:1px solid ${e.rule};background:${e.surface};color:${e.ink};font-size:13px;margin-bottom:12px;}
    .agentfoundry .agtf-modal-actions{display:flex;gap:8px;justify-content:flex-end;}
    .agentfoundry .agtf-modal-cancel{height:38px;padding:0 16px;border-radius:9px;border:1px solid ${e.rule};color:${e.ink};font-weight:500;font-size:12.5px;}
    .agentfoundry .agtf-modal-approve{height:38px;padding:0 16px;border-radius:9px;background:${e.accent};color:#0e0e10;font-weight:700;font-size:12.5px;}
    .agentfoundry .agtf-modal-approve[disabled],.agentfoundry .agtf-modal-cancel[disabled]{opacity:.5;cursor:default;}

    .agentfoundry .agtf-toast{position:fixed;right:18px;bottom:18px;z-index:70;padding:10px 14px;border-radius:10px;font-size:12.5px;color:${e.ink};background:${e.elevated};border:1px solid ${e.rule};}
    .agentfoundry .agtf-toast.warn{border-color:${e.warn};}
    .agentfoundry .agtf-toast.fail{border-color:${e.fail};}
    `,r=document.createElement("style");r.id=k,r.textContent=a,document.head.appendChild(r)}function R(a){const r=a||{},l=t=>Array.isArray(t)?t.length:0;return`Contexts ${l(r.contexts)} \xB7 Tools ${l(r.tools)} \xB7 Data ${l(r.dataSources)}`}function E(a,r){const l=A(a.state),t=I(a.state);return n("div",{key:a.id,className:"agtf-card",style:{borderLeftColor:l}},[n("div",{key:"hd",className:"agtf-card-head"},[n("span",{key:"dot",className:"agtf-dot",style:{background:l,boxShadow:`0 0 8px ${l}`}}),n("span",{key:"nm",className:"agtf-card-name",title:a.name||"\u2014"},a.name||"\u2014")]),n("div",{key:"badges",className:"agtf-badge-row"},[n("span",{key:"fe",className:"agtf-badge"},`FE \xB7 ${a.blueprint&&a.blueprint.frontend||"\u2014"}`),n("span",{key:"be",className:"agtf-badge"},`BE \xB7 ${a.blueprint&&a.blueprint.backend||"\u2014"}`)]),n("div",{key:"bindings",className:"agtf-bindings"},R(a.bindings)),a.runtimeUrl?n("a",{key:"rt",className:"agtf-runtime",href:a.runtimeUrl,target:"_blank",rel:"noreferrer noopener"},"Open runtime \u2197"):null,n("div",{key:"meta",className:"agtf-meta mono"},`${a.owner||"\u2014"} \xB7 updated ${a.updated||"\u2014"}`),t.length?n("div",{key:"act",className:"agtf-card-actions"},t.map((i,p)=>n("button",{key:i.label,type:"button",className:`agtf-btn-mini${p===0?" primary":""}${i.toState==="retired"?" danger":""}`,onClick:()=>r(a,i)},i.label))):null])}function _(a,r){return n("div",{className:"agtf-board"},C.map(l=>{const t=a.filter(i=>i.state===l.id);return n("div",{key:l.id,className:"agtf-col"},[n("div",{key:"hd",className:"agtf-col-head"},[n("span",{key:"l",className:"agtf-col-label"},l.label),n("span",{key:"c",className:"agtf-col-count mono"},String(t.length))]),n("div",{key:"list",className:"agtf-col-list"},t.length?t.map(i=>E(i,r)):n("div",{key:"empty",className:"agtf-col-empty"},"No agents"))])}))}function z(a,r){return n("div",{className:"agtf-hero"},[n("div",{key:"kpis",className:"agtf-kpi-row"},(Array.isArray(a)?a:[]).map(l=>n("div",{key:l.label,className:"agtf-kpi"},[n("div",{key:"l",className:"agtf-kpi-label"},l.label),n("div",{key:"v",className:"agtf-kpi-value mono"},[l.value,l.delta?n("span",{key:"d",className:"agtf-kpi-delta"},l.delta):null])]))),n("button",{key:"new",type:"button",className:"agtf-new-btn",onClick:r},"+ New agent")])}function T(a){return`agt-${String(a||"").toLowerCase().trim().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"untitled"}-${Math.random().toString(36).slice(2,6)}`}function v(a){return!a||typeof a!="object"?null:typeof a.state=="string"?a.state:a.agent&&typeof a.agent.state=="string"?a.agent.state:null}function x(){F();const a=()=>window.KIND_REGISTRY&&window.KIND_REGISTRY.agentFoundry&&window.KIND_REGISTRY.agentFoundry.data||m,[r,l]=b(a),[t,i]=b(null),[p,h]=b(null);S(()=>{const o=()=>l(a());return window.addEventListener("agents-live-hydrated",o),()=>window.removeEventListener("agents-live-hydrated",o)},[]);const D=Array.isArray(r&&r.agents)?r.agents:[],K=Array.isArray(r&&r.heroKpis)?r.heroKpis:[],u=(o,d)=>{h({msg:o,tone:d||"info"}),setTimeout(()=>h(null),5e3)},y=(o,d,c)=>!window.CANVAS_ACTIONS||!window.CANVAS_ACTIONS.dispatch?Promise.reject(new Error("actions gateway unavailable in this build")):window.CANVAS_ACTIONS.dispatch(o,d,{confirm:c===!0}),$=()=>{typeof window.agentsLiveHydrate=="function"&&window.agentsLiveHydrate()},P=(o,d)=>{const c=d.action==="agent.configure"?{agent_id:o.id,patch:{blueprint:o.blueprint||{},bindings:o.bindings||{}}}:d.action==="agent.deploy"?{agent_id:o.id}:{agent_id:o.id,to_state:d.toState};i({kind:"action",agent:o,act:d,busy:!0}),y(d.action,c,!1).then(s=>i({kind:"action",agent:o,act:d,payload:c,preview:s,busy:!1})).catch(s=>{i(null),u(`${d.label} \xB7 ${o.name} \u2014 ${s.message}`,"fail")})},L=()=>i({kind:"create",name:"",stage:"form"}),U=()=>{const o=t&&t.name||"";if(!o.trim())return;const d={id:T(o),name:o.trim()};i({kind:"create",name:o,payload:d,busy:!0,stage:"preview"}),y("agent.create",d,!1).then(c=>i({kind:"create",name:o,payload:d,preview:c,busy:!1,stage:"preview"})).catch(c=>{i(null),u(`New agent \xB7 ${o} \u2014 ${c.message}`,"fail")})},N=()=>{if(!t||t.busy)return;if(t.kind==="create"){i({...t,busy:!0}),y("agent.create",t.payload,!0).then(s=>{i(null),u(`${t.name} created \u2014 state: ${v(s)||"draft"}`,"ok"),$()}).catch(s=>{i(null),u(`New agent \xB7 ${t.name} \u2014 ${s.message}`,"fail")});return}const{agent:o,act:d,payload:c}=t;i({...t,busy:!0}),y(d.action,c,!0).then(s=>{i(null),u(`${o.name} \xB7 ${d.label.toLowerCase()} applied \u2014 state: ${v(s)||d.toState||"updated"}`,"ok"),$()}).catch(s=>{i(null),u(`${d.label} \xB7 ${o.name} \u2014 ${s.message}`,"fail")})},w=()=>{t&&t.busy||i(null)},V=t&&n("div",{key:"dialog",className:"agtf-modal-backdrop",onClick:w},n("div",{className:"agtf-modal",onClick:o=>o.stopPropagation()},t.kind==="create"?[n("div",{key:"verb",className:"agtf-modal-verb"},"New agent"),n("div",{key:"title",className:"agtf-modal-title"},t.stage==="preview"?t.name:"Name the agent"),t.stage!=="preview"?n("input",{key:"input",className:"agtf-modal-input",type:"text",placeholder:"e.g. Lead Intake Agent",value:t.name,autoFocus:!0,onChange:o=>i({...t,name:o.target.value})}):n("div",{key:"sub",className:"agtf-modal-sub"},t.busy?"Running validate-only dry run\u2026":"Creates a new agent in the draft state."),t.preview&&t.preview.would_write?n("div",{key:"prev",className:"agtf-modal-preview"},JSON.stringify(t.preview.would_write,null,1)):null,n("div",{key:"actions",className:"agtf-modal-actions"},[n("button",{key:"cancel",type:"button",className:"agtf-modal-cancel",onClick:w,disabled:!!t.busy},"Cancel"),n("button",{key:"go",type:"button",className:"agtf-modal-approve",onClick:t.stage==="preview"?N:U,disabled:!!t.busy||!t.name.trim()},t.stage==="preview"?"Approve \xB7 Create":"Preview")])]:[n("div",{key:"verb",className:"agtf-modal-verb"},`HITL \xB7 ${t.act.label}`),n("div",{key:"title",className:"agtf-modal-title"},`${t.act.label} \xB7 ${t.agent.name}`),n("div",{key:"sub",className:"agtf-modal-sub"},t.busy?"Running validate-only dry run\u2026":"Approve to send the confirmed request to the actions gateway."),!t.busy&&t.preview&&t.preview.would_write?n("div",{key:"prev",className:"agtf-modal-preview"},JSON.stringify(t.preview.would_write,null,1)):null,n("div",{key:"actions",className:"agtf-modal-actions"},[n("button",{key:"cancel",type:"button",className:"agtf-modal-cancel",onClick:w,disabled:!!t.busy},"Cancel"),n("button",{key:"approve",type:"button",className:"agtf-modal-approve",onClick:N,disabled:!!t.busy},`Approve \xB7 ${t.act.label}`)])])),G=p&&n("div",{key:"toast",className:`agtf-toast${p.tone==="fail"?" fail":p.tone==="warn"?" warn":""}`},p.msg);return n("div",{className:"agentfoundry"},[r&&r.source?n("p",{key:"src",className:"agtf-src"},`source: ${r.source}`):null,z(K,L),_(D,P),V,G])}x.displayName="AgentFoundryView",window.AGENT_FOUNDRY_VIEW_FN=x,window.VIEWS=window.VIEWS||{},window.VIEWS.agentFoundry=x,window.KIND_REGISTRY=window.KIND_REGISTRY||{},window.KIND_REGISTRY.agentFoundry=window.KIND_REGISTRY.agentFoundry||{id:"agentFoundry",label:"Agent Foundry",workspaceLabel:"Agent Foundry",workspaceIcon:"smart_toy",description:"Agent-production lifecycle board: draft \u2192 configured \u2192 deployed \u21C4 paused \u2192 retired. Each card shows its blueprint (frontend/backend), binding counts and runtime link; Configure/Deploy/Pause/Resume/Retire and New agent are real two-phase /actions gateway dispatches (dry-run preview \u2192 HITL approve).",defaultView:"agentFoundry",defaultDetail:"none",agentTreatment:"implicit",primaryAction:{label:"New agent",kind:"primary",icon:"add"},secondaryActions:[{label:"Refresh",icon:"refresh"}],heroKpis:m.heroKpis,data:m},window.AGENT_FOUNDRY_SEED=m})();
