1import{r as l,j as e}from"./react-vendor-BKgfKFZH.js";import{e as H,i3 as te,i4 as re}from"./graphql-WBhJzdnw.js";import{a as F}from"./pathPrefix-C6KjWwRj.js";import{z as ae,B as le,C as ne,D as ie}from"./admin-DkKq5hJV.js";import{O as oe,e as ce,Q as J}from"./icons-BfNt_9T9.js";import{e as K,D as P,a as L,d as O,N as S,C as q,h as de}from"./primitives-CQ3zAopb.js";import{v as U}from"./entry-C8wUDEw9.js";import{a as z}from"./adminControls-BcRTrq2z.js";import"./makePostHogHeaders-DBJS6Pqp.js";import"./types-BQz_GrV3.js";import"./Identity-BmVeq4PW.js";import"./billing-BoSVWj_Q.js";import"./EvalCloneMarker-DcaKrgBx.js";import"./speechToText-BwTQh1Op.js";import"./types-C1NrGZG4.js";import"./models-Q8igSjJO.js";import"./types-Cf2awXPR.js";import"./authStep-CfHaIP7H.js";import"./types-BpdjsHyx.js";import"./parsePhoneNumber-6f8GhqhW.js";import"./normalizeArguments-VsWXHrBn.js";import"./types-B3nsUNRA.js";import"./lindyTool-foG1F4ub.js";import"./hostedMcpProviders-nNFzfAVQ.js";import"./adminLayout-BbJWN0b2.js";const ue="2026-08-10T17:00:00Z",me=200,he=4e3;async function W(s){const c=await s;if(c.error||c.data===void 0)throw new Error(c.error?.message??"Request failed");return c.data}function Q(s){const c=s.trim();if(!c)return null;const r=new Date(c);return Number.isNaN(r.getTime())?null:r.toISOString()}function Y(s,c){for(const[r,u]of Object.entries(c))s[r]=(s[r]??0)+u}async function xe({missedBefore:s,missedSince:c,onProgress:r}){const u={stranded:0,scheduling_failed:0,byManagedAgentType:{},byMissedDay:{}},t=[];let g=!1,a=null,p=0,n=null;for(;;){const x=await W(F.call(le,{body:{cursor:a,missedBefore:n??s,missedSince:a?.missedSince??c,pageSize:1e3}}));n??=x.resolvedMissedBefore,p+=x.scanned,u.stranded+=x.counts.stranded,u.scheduling_failed+=x.counts.scheduling_failed,Y(u.byManagedAgentType,x.counts.byManagedAgentType),Y(u.byMissedDay,x.counts.byMissedDay);const h=me-t.length;if(h>0?(t.push(...x.rows.slice(0,h)),x.rows.length>h&&(g=!0)):x.rows.length>0&&(g=!0),x.rowsTruncated&&(g=!0),r(p),x.walkComplete||!x.nextCursor)break;a=x.nextCursor}if(n===null)throw new Error("Stranded trigger scan finished without a resolved cutoff");return{scanned:p,counts:u,rows:t,rowsTruncated:g,window:{missedSince:c,missedBefore:s},resolvedMissedBefore:n}}function Z({counts:s,title:c}){const r=Object.entries(s).toSorted(([,u],[,t])=>t-u);return r.length===0?null:e.jsxs("div",{className:"space-y-2",children:[c?e.jsx("div",{className:"font-medium text-slate-12",children:c}):null,e.jsx("div",{className:"overflow-x-auto",children:e.jsx("table",{className:"w-full max-w-3xl text-left text-sm",children:e.jsx("tbody",{children:r.map(([u,t])=>e.jsxs("tr",{className:"border-b border-edge",children:[e.jsx("td",{className:"py-2 pr-4 font-mono",children:u}),e.jsx("td",{className:"py-2 text-slate-11",children:t})]},u))})})})]})}function G({label:s,triggerIds:c}){return c?.length?e.jsxs("details",{children:[e.jsxs("summary",{className:"cursor-pointer font-medium",children:[s," (",c.length,")"]}),e.jsx("pre",{className:"mt-2 max-h-48 overflow-auto rounded bg-slate-3 p-2 text-xs",children:c.join(` 2`)})]}):null}function Ge(){const[s,c]=l.useState(ue),[r,u]=l.useState(""),[t,g]=l.useState(null),[a,p]=l.useState(null),[n,x]=l.useState(null),[h,E]=l.useState(null),[v,I]=l.useState(null),[T,N]=l.useState(!0),[k,j]=l.useState(null),[b,d]=l.useState(null),[_,$]=l.useState(null),[C,M]=l.useState(null),[i,y]=l.useState(0),m=l.useMemo(()=>{const o=Q(s);if(!o)return null;const w=r.trim()?Q(r):null;return r.trim()&&!w?null:{missedSince:o,missedBefore:w}},[r,s]),R=a!=null&&m!=null&&a.window.missedSince===m.missedSince&&a.window.missedBefore===m.missedBefore,ee=l.useCallback(async()=>{if(m){g(0),x(null);try{p(await xe({...m,onProgress:g}))}catch(o){x(o instanceof Error?o.message:"Scan failed")}finally{g(null)}}},[m]),V=l.useCallback(async o=>{if(!m||!o&&(!R||!a))return;const w=R&&a?{missedSince:m.missedSince,missedBefore:a.resolvedMissedBefore}:m;j(o?"dry":"live"),$(null);try{const B=await W(F.call(ae,{body:{...w,dryRun:o}}));d(null),M(null),E(B.workflowId),I(B.runId),N(o),y(A=>A+1)}catch(B){$(B instanceof Error?B.message:"Failed to start the repair")}finally{j(null)}},[m,R,a]);l.useEffect(()=>{if(!h)return;let o=!1,w=null;const B=async()=>{try{const A=await W(F.call(ne,{body:{workflowId:h}}));if(o||(d(A),M(null),A.status!=="RUNNING"))return}catch(A){if(o)return;M(A instanceof Error?A.message:"Status request failed")}w=window.setTimeout(()=>U(B()),he)};return U(B()),()=>{o=!0,w!=null&&window.clearTimeout(w)}},[h,i]);const se=a?`${a.window.missedSince} and ${a.resolvedMissedBefore}`:"",f=b?.totals??null;
2return e.jsxs(K,{title:"Stranded recurring triggers",description:e.jsx(e.Fragment,{children:"REL-11473. The global sweep was paused for about 24 hours on 2026-08-10/11, leaving recurring triggers outside its scheduling window. This repair re-arms their cadence from the next future occurrence. It never replays missed runs."}),children:[e.jsxs(S,{tone:"amber",children:["Run a dry run first. The live stop control is the"," ",e.jsx("code",{children:"triggers.strandedRepair.killSwitch.enabled"})," sitevar; terminating the workflow does not stop a batch already in flight."]}),e.jsxs(P,{className:"max-w-3xl",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(L,{label:"Missed since (ISO, required)",children:e.jsx(O,{value:s,onChange:c})}),e.jsx(L,{label:"Missed before (ISO, optional)",children:e.jsx(O,{value:r,onChange:u,placeholder:"defaults to now - 30min"})})]}),e.jsxs("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[e.jsx(z,{level:"outline",disabled:t!=null||!m,loading:t!=null,onClick:ee,children:"Scan"}),e.jsx(z,{level:"outline",disabled:k!=null||!m,loading:k==="dry",onClick:()=>V(!0),children:"Start dry run"}),e.jsx(q,{disabled:k!=null||!R,loading:k==="live",confirmation:`Start the LIVE repair for ${a?.counts.stranded??0} stranded trigger(s) missed between ${se}? This re-arms every stranded trigger in that window. 3 4It never replays missed runs, only the next future occurrence.`,onConfirm:()=>V(!1),children:"Start repair"}),e.jsx("span",{className:"text-sm text-slate-11","aria-live":"polite",children:t!=null?`Scanned ${t} row(s)â¦`:""})]}),m?R?null:e.jsx("p",{className:"mt-3 text-sm text-amber-11",children:"Scan this exact window before a live repair."}):e.jsx("p",{className:"mt-3 text-sm text-red-11",children:"Enter a valid ISO instant for âmissed sinceâ and, when supplied, âmissed before.â"})]}),n?e.jsx(S,{tone:"red",children:n}):null,a?e.jsxs("div",{className:"space-y-5 text-sm",children:[e.jsxs("p",{className:"text-slate-11",children:["Walk complete · scanned ",a.scanned," recurring row(s) between"," ",e.jsx("code",{children:a.window.missedSince})," and"," ",e.jsx("code",{children:a.resolvedMissedBefore}),a.resolvedMissedBefore!==a.window.missedBefore?" (auto)":""]}),R?null:e.jsx(S,{tone:"amber",children:"These totals describe the scanned window, not the current inputs. Re-scan before repairing."}),e.jsxs("div",{className:"flex flex-wrap gap-8",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-2xl font-medium",children:a.counts.stranded}),e.jsx("div",{className:"text-slate-11",children:"stranded (safe to repair)"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-2xl font-medium",children:a.counts.scheduling_failed}),e.jsx("div",{className:"text-slate-11",children:"scheduling_failed (separate backlog, not repaired here)"})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-8",children:[e.jsx(Z,{title:"By managed agent type",counts:a.counts.byManagedAgentType}),e.jsx(Z,{title:"By missed day",counts:a.counts.byMissedDay})]}),e.jsxs("div",{className:"font-medium",children:["Sample rows (",a.rows.length,a.rowsTruncated?"+":"",")"]}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full min-w-[52rem] text-left text-xs",children:[e.jsx("thead",{className:"text-slate-11",children:e.jsxs("tr",{className:"border-b border-edge",children:[e.jsx("th",{className:"py-2 pr-4",children:"Trigger"}),e.jsx("th",{className:"py-2 pr-4",children:"Owner"}),e.jsx("th",{className:"py-2 pr-4",children:"Agent type"}),e.jsx("th",{className:"py-2 pr-4",children:"Cron"}),e.jsx("th",{className:"py-2 pr-4",children:"Missed at"}),e.jsx("th",{className:"py-2 pr-4",children:"Minutes late"}),e.jsx("th",{className:"py-2",children:"Class"})]})}),e.jsx("tbody",{children:a.rows.map(o=>e.jsxs("tr",{className:"border-b border-edge",children:[e.jsx("td",{className:"py-2 pr-4 font-mono",children:o.createdByNodeLabel??o.triggerId}),e.jsx("td",{className:"py-2 pr-4",children:o.owner}),e.jsx("td",{className:"py-2 pr-4",children:o.managedAgentType??"â"}),e.jsx("td",{className:"py-2 pr-4 font-mono",children:o.cronExpression}),e.jsx("td",{className:"py-2 pr-4",children:o.missedAt}),e.jsx("td",{className:"py-2 pr-4",children:o.minutesLate}),e.jsx("td",{className:"py-2",children:o.class})]},o.triggerId))})]})})]}):null,_?e.jsx(S,{tone:"red",children:_}):null,h?e.jsx(P,{className:"max-w-3xl",title:T?"Dry run":"Repair",children:e.jsxs("div",{className:"space-y-3 text-sm",children:[e.jsxs("div",{className:"space-y-1 text-slate-11",children:[e.jsxs("div",{className:"break-all font-mono text-xs",children:["Workflow ",h]}),v?e.jsxs("div",{className:"break-all font-mono text-xs",children:["Run ",v]}):null,e.jsxs("div",{className:"flex flex-wrap items-center gap-3 pt-1",children:[e.jsx(de,{label:"Copy workflow IDs",value:`${h}${v?` (${v})`:""}`}),e.jsxs("a",{className:"inline-flex items-center gap-1.5 text-blue-11 hover:underline",href:X(h),rel:"noopener noreferrer",target:"_blank",children:["View workflow",e.
4jsx(J,{className:"size-4"})]})]})]}),e.jsxs("div",{className:"text-slate-11",children:["Status:"," ",b?.status??(C?"unknown":"loadingâ¦")]}),C?e.jsx(S,{tone:"red",children:C}):null,b?.progressUnavailable&&b.status==="RUNNING"?e.jsx(S,{tone:"amber",children:"The run is live but its progress query did not answer. This does not mean it is still on the first batch; check the worker."}):null,f?e.jsx("div",{className:"grid grid-cols-2 gap-4 md:grid-cols-4",children:[["batches",f.batches],["scanned",f.scanned],["repaired",f.repaired],["would repair (dry run)",f.wouldRepair],["skipped",f.skipped],["claim lost",f.claimLost],["failed",f.failed],["scheduling_failed seen",f.schedulingFailedSeen],["unrepairable (bad cron)",f.unrepairable]].map(([o,w])=>e.jsxs("div",{children:[e.jsx("div",{className:"text-lg",children:w}),e.jsx("div",{className:"text-slate-11",children:o})]},o))}):null,f?.stoppedByKillSwitch?e.jsxs(S,{tone:"amber",children:["Stopped by the"," ",e.jsx("code",{children:"triggers.strandedRepair.killSwitch.enabled"})," sitevar. Flip it back, then re-run against the ânever attemptedâ ids below."]}):null,f?.errors.length?e.jsxs("div",{children:[e.jsxs("div",{className:"font-medium text-red-11",children:["Errors (",f.errors.length,")"]}),e.jsx("ul",{className:"list-disc pl-5 text-xs text-red-11",children:f.errors.slice(0,20).map((o,w)=>e.jsx("li",{children:o},`${w}-${o}`))})]}):null,e.jsx(G,{label:"Failed â worth another run",triggerIds:f?.failedTriggerIds}),e.jsx(G,{label:"Unrepairable â cron does not parse, needs a human",triggerIds:f?.unrepairableTriggerIds}),e.jsx(G,{label:"Never attempted â kill switch stopped the batch, resume from here",triggerIds:f?.unattemptedTriggerIds})]})}):null]})}const pe={would_update:0,rematerialized:0,cleared_only:0,skipped_owner_missing:0,failed:0},fe={would_update:"Dry run only â still carries the removed guard and would be rematerialized.",rematerialized:"Rematerialized without the guard. Now runs on app and bot messages.",cleared_only:"Guard fields were cleared; no rematerialization was needed.",skipped_owner_missing:"The routine owner is gone, so nothing changed.",failed:"Rematerialization failed and still ignores bot messages. See the row below."};async function ge(s){const c={...pe},r=[];let u=s.startAfterId,t=0,g=0,a=!1;for(;;){const p=await W(F.call(ie,{body:{afterId:u,apply:s.apply,limit:s.limit,routineId:s.routineId}}));t+=p.scanned;for(const n of Object.keys(c))c[n]+=p.counts[n];if(r.push(...p.rows),g+=1,s.onProgress(t),!p.nextCursor||s.routineId)break;if(u=p.nextCursor,s.shouldStop()||g>=s.maxBatches){a=!0;break}}return{apply:s.apply,scanned:t,counts:c,rows:r,stoppedEarly:a,nextCursor:a?u:null,scope:{limit:s.limit,maxBatches:s.maxBatches,routineId:s.routineId}}}function Ke(){const[s,c]=l.useState(""),[r,u]=l.useState("25"),[t,g]=l.useState("4"),[a,p]=l.useState(null),[n,x]=l.useState(null),[h,E]=l.useState(null),[v,I]=l.useState(null),T=l.useRef(!1),N=l.useCallback(async(d,_,$)=>{const C=$??{limit:Number(r)||25,maxBatches:Number(t)||1,routineId:s.trim()||null};T.current=!1,p(0),E(d?"apply":"dry"),I(null);try{x(await ge({apply:d,...C,startAfterId:_,shouldStop:()=>T.current,onProgress:p}))}catch(M){I(M instanceof Error?M.message:"Backfill failed")}finally{p(null),E(null)}},[r,t,s]),k=n?.stoppedEarly?n.nextCursor:null,j=n?.rows.filter(d=>d.outcome==="failed")??[],b=n?e.jsxs(e.Fragment,{children:[n.apply?"Applied":"Dry run"," · scanned ",n.scanned," routine(s) ·"," ",n.scope.routineId?`routine ${n.scope.routineId}`:"all routines",n.stoppedEarly?e.jsxs(e.Fragment,{children:[" · ",e.jsx("span",{className:"text-amber-11",children:"stopped early, more remain"})]}):null]}):null;return e.jsxs(K,{title:"Slack routine bot-message guard backfill",description:"INFRA-1559. Slack routines used to ignore messages from apps and bots. This rematerializes the routines that still carry that setting so they start running on app messages.",children:[e.jsxs(P,{className:"max-w-3xl",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsx(L,{label:"Routine ID (optional â scope to one routine)",children:e.jsx(O,{value:s,onChange:c,placeholder:"all routines"})}),e.jsx(L,{label:"Batch size",children:e.jsx(O,{value:r,onChange:u})}),e.jsx(L,{label:"Max batches per run",children:e.jsx(O,{value:t,onChange:g})})]}),e.jsxs("div",{className:"mt-4 flex flex-wrap items-center gap-3",children:[e.jsx(z,{level:"outline",disabled:h!=null,loading:h==="dry",onClick:()=>
4N(!1,null),children:"Dry run"}),e.jsx(q,{disabled:h!=null,loading:h==="apply",level:"primary",confirmation:"Rematerialize these routinesâ triggers so they stop ignoring app and bot messages? This writes to production.",onConfirm:()=>N(!0,null),children:"Apply"}),h!=null?e.jsx(z,{level:"outline",onClick:()=>{T.current=!0},children:"Stop after this batch"}):null,h==null&&k?n?.apply?e.jsx(q,{level:"primary",confirmation:"Resume the apply pass? This rematerializes more live routines and writes to production.",onConfirm:()=>N(!0,k,n.scope),children:"Resume apply"}):e.jsx(z,{level:"outline",onClick:()=>N(!1,k,n?.scope),children:"Resume dry run"}):null,e.jsx("span",{className:"text-sm text-slate-11","aria-live":"polite",children:a!=null?`Scanned ${a} routine(s)â¦`:""})]})]}),v?e.jsx(S,{tone:"red",children:v}):null,n?e.jsxs("div",{className:"space-y-5 text-sm",children:[n.counts.failed>0?e.jsxs(S,{tone:"amber",children:[b," · ",n.counts.failed," failed"]}):e.jsx("p",{className:"text-slate-11",children:b}),e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full max-w-4xl text-left",children:[e.jsx("thead",{className:"text-xs text-slate-11",children:e.jsxs("tr",{className:"border-b border-edge",children:[e.jsx("th",{className:"py-2 pr-4",children:"Outcome"}),e.jsx("th",{className:"py-2 pr-4",children:"Count"}),e.jsx("th",{className:"py-2",children:"Meaning"})]})}),e.jsx("tbody",{children:Object.keys(n.counts).map(d=>e.jsxs("tr",{className:"border-b border-edge",children:[e.jsx("td",{className:`py-2 pr-4 font-mono ${d==="failed"?"text-red-11":"text-slate-11"}`,children:d}),e.jsx("td",{className:"py-2 pr-4",children:n.counts[d]}),e.jsx("td",{className:"py-2 text-slate-11",children:fe[d]})]},d))})]})}),j.length?e.jsx(P,{title:e.jsxs("span",{className:"text-red-11",children:["Failed (",j.length,") â still ignoring bot messages"]}),children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full text-left",children:[e.jsx("thead",{className:"text-xs text-slate-11",children:e.jsxs("tr",{className:"border-b border-edge",children:[e.jsx("th",{className:"py-2 pr-4",children:"Routine"}),e.jsx("th",{className:"py-2",children:"Error"})]})}),e.jsx("tbody",{children:j.map(d=>e.jsxs("tr",{className:"border-b border-edge",children:[e.jsxs("td",{className:"py-2 pr-4 font-mono text-xs",children:[d.scope," · ",d.routineId]}),e.jsx("td",{className:"py-2 text-red-11",children:d.error??"â"})]},d.routineId))})]})})}):null,e.jsx(P,{title:`All rows (${n.rows.length})`,children:e.jsx("div",{className:"overflow-x-auto",children:e.jsxs("table",{className:"w-full min-w-[40rem] text-left",children:[e.jsx("thead",{className:"text-xs text-slate-11",children:e.jsxs("tr",{className:"border-b border-edge",children:[e.jsx("th",{className:"py-2 pr-4",children:"Routine"}),e.jsx("th",{className:"py-2 pr-4",children:"Scope"}),e.jsx("th",{className:"py-2 pr-4",children:"Enabled"}),e.jsx("th",{className:"py-2",children:"Outcome"})]})}),e.jsx("tbody",{children:n.rows.map(d=>e.jsxs("tr",{className:"border-b border-edge",children:[e.jsx("td",{className:"py-2 pr-4 font-mono text-xs",children:d.routineId}),e.jsx("td",{className:"py-2 pr-4 text-slate-11",children:d.scope}),e.jsx("td",{className:"py-2 pr-4 text-slate-11",children:d.enabled?"yes":"no"}),e.jsx("td",{className:`py-2 font-mono ${d.outcome==="failed"?"text-red-11":"text-slate-11"}`,children:d.outcome})]},d.routineId))})]})})})]}):null]})}const D=["summary","title"],je=te,be=re;function X(s){return`https://cloud.temporal.io/namespaces/lindy-prod.bskbn/workflows/${encodeURIComponent(s)}`}function Ve(){const[s,c]=l.useState(""),[r,u]=l.useState(null),[t,g]=l.useState("summary"),[a,p]=l.useState(!1),[n,x]=l.useState(!1),[h,E]=l.useState(null),[v,I]=l.useState(null),[T,N]=l.useState(null),k=l.useCallback(async()=>{const i=s.trim();if(i){p(!0),u(null),E(null),I(null),N(null);try{const m=(await H(je,{email:i})).admin.meetingSummaryBackfillPreview;if(!m)throw new Error("Account not found");u(m)}catch(y){I(y instanceof Error?y.message:"Account check failed")}finally{p(!1)}}},[s]),j=t==="summary"?r?.candidateCount:r?.titleCandidateCount,b=t==="summary"?"summaries":"titles",d=t==="summary"?r?.meetings:r?.titleMeetings,_=t==="summary"?r?.hasMore:r?.t
4itleHasMore,$=l.useCallback(async()=>{if(!(!r||!j)){x(!0),I(null),N(null);try{const y=(await H(be,{input:{batchSize:3,dryRun:!1,endId:r.endId,ownerId:r.ownerId,phase:t,startId:r.startId}})).triggerBackfillMeetingSummaryArtifacts;if(!y.data)throw new Error(y.message??"Meeting backfill failed");E(y.data.workflowId),N(`${t==="summary"?"Summary":"Title"} backfill started · ${j} meeting(s) queued`)}catch(i){I(i instanceof Error?i.message:"Meeting backfill failed")}finally{x(!1)}}},[j,t,r]),C=l.useCallback(i=>{g(i),E(null),N(null)},[]),M=l.useCallback(i=>{const y=D.indexOf(t);let m=null;switch(i.key){case"ArrowRight":{m=(y+1)%D.length;break}case"ArrowLeft":{m=(y-1+D.length)%D.length;break}case"Home":{m=0;break}case"End":{m=D.length-1;break}}if(m===null)return;i.preventDefault();const R=D[m]??t;C(R),document.querySelector(`#meeting-backfill-${R}-tab`)?.focus()},[t,C]);return e.jsxs(K,{title:"Meeting summary backfill",width:"max-w-5xl",children:[e.jsx(P,{className:"max-w-2xl",children:e.jsxs("form",{className:"flex flex-col gap-3 sm:flex-row sm:items-end",onSubmit:i=>{i.preventDefault(),U(k())},children:[e.jsx("div",{className:"min-w-0 grow",children:e.jsx(L,{label:"Account email",children:e.jsx(O,{autoComplete:"off",placeholder:"[email protected]",type:"email",value:s,onChange:c})})}),e.jsxs(z,{type:"submit",disabled:!s.trim()||a||n,loading:a,children:[e.jsx(oe,{className:"size-4"}),"Check account"]})]})}),v?e.jsx(S,{tone:"red",children:v}):null,T?e.jsx(S,{tone:"green",children:T}):null,r?e.jsxs("section",{className:"space-y-4 border-t border-edge pt-6",children:[e.jsx("div",{className:"flex w-fit rounded-md border border-slate-6 bg-slate-2 p-1",role:"tablist","aria-label":"Backfill artifact",children:D.map(i=>e.jsx("button",{id:`meeting-backfill-${i}-tab`,type:"button",role:"tab","aria-controls":t===i?`meeting-backfill-${i}-panel`:void 0,"aria-selected":t===i,tabIndex:t===i?0:-1,className:`rounded px-3 py-1.5 text-sm ${t===i?"bg-white font-medium text-slate-12 shadow-sm dark:bg-slate-4":"text-slate-10 hover:text-slate-12"}`,onClick:()=>C(i),onKeyDown:M,children:i==="summary"?"Summaries":"Titles"},i))}),e.jsxs("div",{id:`meeting-backfill-${t}-panel`,role:"tabpanel","aria-labelledby":`meeting-backfill-${t}-tab`,className:"space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("div",{className:"font-medium text-slate-12",children:r.email}),e.jsxs("div",{className:"text-sm text-slate-11",children:[j," meeting",j===1?"":"s"," missing ",b]})]}),e.jsxs(q,{disabled:!j||n||!!h,loading:n,level:"primary",confirmation:`Generate ${j} missing ${b} for ${r.email}? This writes to production.`,onConfirm:()=>U($()),children:[e.jsx(ce,{className:"size-4"}),"Generate ",b]})]}),h?e.jsxs("a",{className:"flex items-center gap-1.5 text-sm text-blue-11 hover:underline",href:X(h),rel:"noopener noreferrer",target:"_blank",children:["View workflow",e.
4jsx(J,{className:"size-4"})]}):null,d?.length?e.jsxs("div",{className:"overflow-x-auto",children:[e.jsxs("table",{className:"w-full text-left text-sm",children:[e.jsx("thead",{className:"text-xs text-slate-11",children:e.jsxs("tr",{className:"border-b border-edge",children:[t==="summary"?e.jsx("th",{className:"py-2 pr-4",children:"Meeting"}):null,e.jsx("th",{className:"py-2 pr-4",children:"Created"}),e.jsx("th",{className:"py-2",children:"ID"})]})}),e.jsx("tbody",{children:d.map(i=>e.jsxs("tr",{className:"border-b border-edge",children:[t==="summary"?e.jsx("td",{className:"py-2 pr-4",children:i.title||"Untitled meeting"}):null,e.jsx("td",{className:"whitespace-nowrap py-2 pr-4 text-slate-11",children:new Date(i.createdAt).toLocaleString()}),e.jsx("td",{className:"py-2 font-mono text-xs text-slate-11",children:i.id})]},i.id))})]}),_?e.jsxs("div",{className:"pt-3 text-xs text-slate-11",children:["Showing the first ",d.length," meetings."]}):null]}):e.jsxs("p",{className:"text-sm text-slate-11",children:["No ",b," need backfill."]})]})]}):null]})}export{Ve as MeetingSummaryBackfillView,Ke as RoutineSlackBotGuardsView,Ge as StrandedTriggersView,Q as parseWindowInput};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.