1import{r as _,j as e}from"./index-DP61GySm.js";import{L as E}from"./index-MuG4xkEZ.js";import{u as re,NF as ne,NG as ie,NH as le,NI as oe,NJ as ce,a2 as $,ai as R,E as f,NK as q,NL as D,NM as H}from"./loader-circle-eo-mph3g.js";import{dx as de,B as A,ag as me,o as G,il as U,A as ue,ah as xe,aW as pe,aX as he,aY as fe,aZ as ye,a_ as je,iO as ge}from"./App-0t6TVAR4.js";import{u as Y,C as j,c as g}from"./use-toast-C6aFH3Eg.js";import{I as W,T as B}from"./triangle-alert-CaKCF_Nq.js";import{a as T}from"./shared-CjT7fZRw.js";import{L as ve}from"./toaster-BDyw2x6L.js";import{A as ke,S as Ne}from"./sparkles-B4yqwNG6.js";import{S as K}from"./shield-check-BQHCFnRX.js";import{M as V}from"./dialog-B9xd4dRw.js";import{k as be}from"./section-chips-C68mRSIN.js";import"./vendor-shared-C5tCw9rW.js";import"./utils-hQAQiId-.js";import"./x-D235ZOFZ.js";import"./trademark-screen-DYufZ-CB.js";import"./waypoints-C6gFN1cM.js";import"./privacy-I8Fotoxq.js";import"./chevron-right-qcpptIv2.js";import"./chevron-down-C8mjF8sg.js";import"./image-off-CpRV4JaY.js";import"./trial-copy-BQN_0jwW.js";import"./unicorniq-logo-B9mOeuD0.js";const F=["mapping","accounts","sources","workflows","review"],we={mapping:U,accounts:V,sources:G,workflows:me,review:K},Z="Every external action (emails, calendar changes, records in connected systems) is proposed first and executes only after your explicit confirmation. Nothing in this setup enables autonomous writes.",Se=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],I={daily_reconciliation:{time:"08:00",weekday:1,intervalHours:24},weekly_review:{time:"08:30",weekday:1,intervalHours:24},meeting_followup:{time:"15:00",weekday:5,intervalHours:24},inbox_review:{time:"08:00",weekday:1,intervalHours:24}};function Ce(t){const s=/^(\d{1,2}):(\d{2})$/.exec(t);if(!s)return 480;const l=Number(s[1])*60+Number(s[2]);return Number.isFinite(l)&&l>=0&&l<=1439?l:480}function Ae(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}catch{return"UTC"}}function Ee(t){if(!t)return null;const s=new Date(t);return Number.isNaN(s.getTime())?null:s.toLocaleString(void 0,{weekday:"short",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function rs(){const{toast:t}=Y(),s=re(),l=ne(),a=l.data,[y,S]=_.useState(null),c=y??a?.currentStep??"mapping",b=ie({query:{queryKey:D(),enabled:c==="workflows"||c==="review"}}),v=le({query:{queryKey:H(),enabled:c==="review"}}),m=oe(),C=ce(),n=()=>{s.invalidateQueries({queryKey:q()}),s.invalidateQueries({queryKey:D()}),s.invalidateQueries({queryKey:H()})},h=r=>{S(r),m.mutate({data:{currentStep:r}},{onSettled:()=>void s.invalidateQueries({queryKey:q()})})},o=()=>{const r=F.indexOf(c),x=F[r+1]??c;S(x),m.mutate({data:{completeStep:c,currentStep:x}},{onError:i=>t({title:"Could not save progress",description:T(i).message,variant:"destructive"}),onSettled:()=>void s.invalidateQueries({queryKey:q()})})},d=b.data,[w,u]=_.useState(null),[L,J]=_.useState(I),[X,ee]=_.useState(null);_.useEffect(()=>{if(w!==null||!d)return;const r=d.some(i=>i.installed),x={};for(const i of d)x[i.key]=r?i.installed:!0;u(x)},[w,d]);const P=d?d.filter(r=>w?.[r.key]).map(r=>r.key):[],se=()=>{if(!d||P.length===0)return;const r=Ae(),x=P.map(i=>{const p=L[i]??I[i]??{time:"08:00",weekday:1,intervalHours:24},k=d.find(ae=>ae.key===i),N={key:i,timeOfDayMinutes:Ce(p.time),timezone:r};return k?.kind==="cos_schedule"&&(N.cadence="weekly",N.weekday=p.weekday),k?.kind==="mail_scan"&&(N.intervalHours=p.intervalHours),N});C.mutate({data:{templates:x}},{onSuccess:i=>{ee(i.results);const p=i.results.filter(N=>N.outcome==="applied").length,k=i.results.filter(N=>N.outcome==="blocked").length;t({title:k>0?"Applied with blockers":"Workflows applied",description:`${p} applied, ${i.results.length-p-k} already active${k>0?`, ${k} blocked`:""}.`,variant:k>0?"destructive":void 0}),n()},onError:i=>{const p=T(i);t({title:p.code==="ai_not_configured"?"AI provider key required":"Could not apply workflows",description:p.message,variant:"destructive"})}})},Q=r=>{m.mutate({data:{completed:r}},{onSuccess:()=>{t({title:r?"Setup complete":"Setup reopened",description:r?"Executive Operations is configured. You can reopen this wizard any time for a tune-up.":"Walk through the steps again and finish when ready."}),n()},onError:x=>{const i=T(x);t({title:i.code==="setup_blocked"?"A blocker remains":"Could not finish setup",de
1scription:i.message,variant:"destructive"})}})};if(l.isLoading)return e.jsxs("div",{className:"p-6 max-w-6xl mx-auto flex items-center gap-2 text-muted-foreground","data-testid":"page-operations-setup-loading",children:[e.jsx($,{className:"w-4 h-4 animate-spin"})," Loading setupâ¦"]});if(!a)return e.jsx("div",{className:"p-6 max-w-6xl mx-auto","data-testid":"page-operations-setup-error",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Could not load the setup state",l.error?`: ${T(l.error).message}`:"."]})});const te=new Set(a.stepsCompleted),z=a.completedAt!=null;return e.jsx("div",{className:"flex-1 overflow-y-auto",children:e.jsxs("div",{className:"p-4 md:p-6 max-w-6xl mx-auto","data-testid":"page-operations-setup",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3 mb-5",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl font-semibold flex items-center gap-2",children:[e.jsx(de,{className:"w-6 h-6"})," Executive Operations setup"]}),e.jsxs("p",{className:"text-sm text-muted-foreground mt-1 flex items-center gap-1.5",children:[e.jsx(ve,{className:"w-3.5 h-3.5"}),"A guided, resumable setup â your progress is saved after every step. Only you can see this."]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[z&&e.jsxs(A,{className:"gap-1 border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300",variant:"outline","data-testid":"badge-setup-complete",children:[e.jsx(R,{className:"w-3 h-3"})," Setup complete"]}),e.jsx(f,{asChild:!0,size:"sm",variant:"outline","data-testid":"link-back-operations",children:e.jsxs(E,{href:"/operations",children:[e.jsx(ke,{className:"w-4 h-4 mr-1.5"})," Operations"]})})]})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-[280px_1fr] gap-6",children:[e.jsx("aside",{className:"lg:border-r lg:pr-5",children:e.jsx("nav",{className:"space-y-1","aria-label":"Setup steps",children:a.steps.map(r=>{const x=we[r.key]??be,i=r.key===c,p=te.has(r.key);return e.jsxs("button",{type:"button",onClick:()=>h(r.key),"data-testid":`step-nav-${r.key}`,className:`w-full text-left rounded-md px-3 py-2.5 flex items-start gap-2.5 transition-colors ${i?"bg-accent text-accent-foreground":"hover:bg-accent/50"}`,children:[e.jsx("span",{className:"mt-0.5",children:p?e.jsx(R,{className:"w-4 h-4 text-emerald-600 dark:text-emerald-400"}):e.jsx(x,{className:"w-4 h-4 text-muted-foreground"})}),e.jsxs("span",{className:"min-w-0",children:[e.jsx("span",{className:"block text-sm font-medium",children:r.title}),e.jsx("span",{className:"block text-xs text-muted-foreground line-clamp-2",children:r.blurb})]})]},r.key)})})}),e.jsxs("main",{className:"min-w-0 space-y-4",children:[c==="mapping"&&e.jsx(_e,{setup:a}),c==="accounts"&&e.jsx($e,{setup:a}),c==="sources"&&e.jsx(Oe,{setup:a}),c==="workflows"&&e.jsx(Te,{workflows:d,loading:b.isLoading,selection:w,onToggle:(r,x)=>u(i=>({...i??{},[r]:x})),configs:L,onConfig:(r,x)=>J(i=>({...i,[r]:x})),onApply:se,applying:C.isPending,selectedCount:P.length,results:X}),c==="review"&&e.jsx(Re,{setup:a,summaryMarkdown:v.data?.markdown??null,summaryLoading:v.isLoading,onFinish:()=>Q(!0),onReopen:()=>Q(!1),saving:m.isPending,isDone:z}),c!=="review"&&e.jsx("div",{className:"flex justify-end",children:e.jsxs(f,{onClick:o,disabled:m.isPending,"data-testid":"button-step-continue",children:["Mark done & continue ",e.jsx(ue,{className:"w-4 h-4 ml-1.5"})]})})]})]})]})})}function O({title:t,children:s}){return e.jsxs("div",{className:"mb-1",children:[e.jsx("h2",{className:"text-lg font-semibold",children:t}),e.jsx("p",{className:"text-sm text-muted-foreground mt-0.5",children:s})]})}function M({status:t,label:s,detail:l}){return e.jsxs("div",{className:"flex items-start gap-2.5 py-2","data-testid":`check-${s.toLowerCase().replace(/[^a-z0-9]+/g,"-")}`,children:[t==="ok"?e.jsx(R,{className:"w-4 h-4 mt-0.5 text-emerald-600 dark:text-emerald-400 shrink-0"}):t==="blocked"?e.jsx(B,{className:"w-4 h-4 mt-0.5 text-red-600 dark:text-red-400 shrink-0"}
1):e.jsx(B,{className:"w-4 h-4 mt-0.5 text-amber-600 dark:text-amber-400 shrink-0"}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:"text-sm font-medium",children:s}),e.jsx("div",{className:"text-xs text-muted-foreground",children:l})]})]})}function _e({setup:t}){const s=t.readiness.checks.find(l=>l.key==="mapping");return e.jsxs("div",{className:"space-y-4","data-testid":"step-content-mapping",children:[e.jsx(O,{title:"Map businesses & projects",children:"Lay out the businesses (or areas) you run and the projects inside them. Every brief and workflow reports against this map â an empty map makes every brief empty."}),e.jsx(j,{children:e.jsxs(g,{className:"pt-5",children:[e.jsxs("div",{className:"flex items-center gap-6 mb-3",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-2xl font-semibold","data-testid":"text-count-businesses",children:t.counts.businesses}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Businesses / areas"})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-2xl font-semibold","data-testid":"text-count-projects",children:t.counts.projects}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Projects"})]})]}),s&&e.jsx(M,{status:s.status,label:s.label,detail:s.detail}),e.jsx(f,{asChild:!0,size:"sm",variant:"outline",className:"mt-2","data-testid":"link-manage-map",children:e.jsxs(E,{href:"/operations",children:[e.jsx(U,{className:"w-4 h-4 mr-1.5"})," Manage businesses & projects"]})})]})})]})}function $e({setup:t}){const s=t.readiness.checks.find(a=>a.key==="accounts"),l=t.readiness.blockers.filter(a=>a.code==="no_mail_account_selected"||a.code==="mail_account_error");return e.jsxs("div",{className:"space-y-4","data-testid":"step-content-accounts",children:[e.jsx(O,{title:"Connect & label accounts",children:"Connect the email accounts you want scanned and label each one (which business, which hat). Accounts are only ever read after you opt them in here â connecting is never consent to scan."}),e.jsx(j,{children:e.jsxs(g,{className:"pt-5",children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"text-2xl font-semibold","data-testid":"text-count-accounts",children:t.counts.accountsSelected}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Accounts selected for scanning"})]}),s&&e.jsx(M,{status:s.status,label:s.label,detail:s.detail}),l.map((a,y)=>e.jsxs("div",{className:"text-xs text-muted-foreground pl-6 pb-1",children:[a.label," â ",a.detail]},`${a.code}-${y}`)),e.jsxs("div",{className:"flex flex-wrap gap-2 mt-2",children:[e.jsx(f,{asChild:!0,size:"sm",variant:"outline","data-testid":"link-manage-accounts",children:e.jsxs(E,{href:"/operations?tab=email",children:[e.jsx(V,{className:"w-4 h-4 mr-1.5"})," Manage accounts & labels"]})}),e.jsx(f,{asChild:!0,size:"sm",variant:"outline","data-testid":"link-connectors",children:e.jsx(E,{href:"/connectors",children:"Connect a provider"})})]})]})})]})}function Oe({setup:t}){const s=t.readiness.checks.find(a=>a.key==="sources"),l=t.readiness.blockers.filter(a=>a.code==="source_not_connected");return e.jsxs("div",{className:"space-y-4","data-testid":"step-content-sources",children:[e.jsx(O,{title:"Choose source systems",children:"Pick which evidence sources reconciliation may consult. Systems outside the supported list are never consulted â briefs honestly mark anything unavailable as not-consulted rather than guessing."}),e.jsx(j,{children:e.jsxs(g,{className:"pt-5",children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("div",{className:"text-2xl font-semibold","data-testid":"text-count-sources",children:t.counts.sourcesSelected}),e.jsx("div",{className:"text-xs text-muted-foreground",children:"Evidence sources selected"})]}),s&&e.jsx(M,{status:s.status,label:s.label,detail:s.detail}),l.map((a,y)=>e.jsxs("div",{className:"text-xs text-muted-foreground pl-6 pb-1",children:[a.label," â ",a.detail]},`${a.code}-${y}`)),e.jsx(f,{asChild:!0,size:"sm",variant:"outline",className:"mt-2","data-testid":"link-manage-sources",children:e.jsxs(E,{href:"/operations/cockpit",children:[e.jsx(G,{className:"w-4 h-4 mr-1.5"})," Manage evidence sources"]})})]})})]})}function Le(t){switch(t.status){case"active":return e.jsx(A,{variant:"outline",className:"border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300",children:"Active"});case"paused":return e.jsx(A,{variant:"outline",className:"border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300",children:"Paused"});case"blocked":return e.jsx(A,{variant:"outline",className:"border-red-500/30 bg-red-500/10 text-red-700 dark:text-red-300",children:"Blocked"});default:return e.jsx(A,{variant:"outline",children:"Not set up"})}}function Te(t){const{workflows:s,loading:l,selection:a,onToggle:y,configs:S,onConfig:c,onApply:b,applying:v,selectedCount:m,results:C}=t;return e.jsxs("div",{className:"space-y-4","data-testid":"step-content-workflows",children:[e.jsx(O,{title:"Pick workflows & cadence",children:"A constrained menu of proven workflows â each one creates normal records under your own user, and re-applying updates them in place (nothing is ever duplicated)."}),e.jsx(j,{className:"border-primary/20",children:e.jsxs(g,{className:"pt-4 flex items-start gap-2.5",children:[e.jsx(K,{className:"w-4 h-4 mt-0.5 text-primary shrink-0"}),e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:"Approval policy: confirmation required."})," ",e.jsx("span",{className:"text-muted-foreground",children:Z})]})]})}),l&&e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx($,{className:"w-4 h-4 animate-spin"})," Loading the workflow menuâ¦"]}),s?.map(n=>{const h=S[n.key]??I[n.key]??{time:"08:00",weekday:1,intervalHours:24},o=a?.[n.key]??!1,d=C?.find(u=>u.key===n.key),w=Ee(n.nextRunAt);return e.jsx(j,{"data-testid":`card-workflow-${n.key}`,children:e.jsx(g,{className:"pt-4",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(xe,{checked:o,onCheckedChange:u=>y(n.key,u===!0),className:"mt-1","data-testid":`checkbox-workflow-${n.key}`}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("span",{className:"text-sm font-medium",children:n.title}),Le(n),w&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:["next run ",w]})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:n.description}),e.jsx("p",{className:"text-xs text-muted-foreground mt-0.5 italic",children:n.detail}),o&&e.jsxs("div",{className:"flex flex-wrap items-center gap-3 mt-3",children:[n.kind==="cos_schedule"&&e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:["Day",e.jsxs(pe,{value:String(h.weekday),onValueChange:u=>c(n.key,{...h,weekday:Number(u)}),children:[e.jsx(he,{className:"h-8 w-32","data-testid":`select-weekday-${n.key}`,children:e.jsx(fe,{})}),e.jsx(ye,{children:Se.map((u,L)=>e.jsx(je,{value:String(L),children:u},u))})]})]}),n.kind!=="mail_scan"&&e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:["Time",e.jsx(W,{type:"time",value:h.time,onChange:u=>c(n.key,{...h,time:u.target.value}),className:"h-8 w-28","data-testid":`input-time-${n.key}`})]}),n.kind==="mail_scan"&&e.jsxs("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:["Every",e.jsx(W,{type:"number",min:1,max:168,value:h.intervalHours,onChange:u=>c(n.key,{...h,intervalHours:Math.min(168,Math.max(1,Number(u.target.value)||24))}),className:"h-8 w-20","data-testid":`input-interval-${n.key}`}),"hours"]})]}),d&&e.jsxs("div",{className:`text-xs mt-2 ${d.outcome==="blocked"?"text-red-600 dark:text-red-400":"text-emerald-700 dark:text-emerald-300"}`,"data-testid":`result-workflow-${n.key}`,children:[d.outcome==="applied"?"Applied â ":d.outcome==="already_active"?"Already active â ":"Blocked â ",d.detail]})]})]})})},n.key)}),s&&e.jsx("div",{className:"flex justify-end",children:e.jsxs(f,{onClick:b,disabled:v||m===0,"data-testid":"button-apply-workflows",children:[v?e.jsx($,{className:"w-4 h-4 mr-1.5 animate-spin"}):e.jsx(Ne,{className:"w-4 h-4 mr-1.5"}),"Apply ",m," workflow",m===1?"":"s"]})})]})}function Re(t){const{setup:s,summaryMarkdown:l,summaryLoading:a,onFinish:y,onReopen:S,saving:c,isDone:b}=t,{toast:v}=Y(),m=s.readiness,C=m.blockers.filter(o=>o.severity==="blocker"),n=m.blockers.filter(o=>o.severity==="warning"),h=async()=>
1{if(l)try{await navigator.clipboard.writeText(l),v({title:"Summary copied",description:"Paste it into your handoff or training notes."})}catch{v({title:"Could not copy",description:"Select the text and copy it manually.",variant:"destructive"})}};return e.jsxs("div",{className:"space-y-4","data-testid":"step-content-review",children:[e.jsx(O,{title:"Review & handoff",children:"Readiness names the exact gaps â nothing is guessed. Resolve any hard blocker, then finish setup and hand the summary to whoever runs your onboarding."}),e.jsx(j,{children:e.jsxs(g,{className:"pt-5",children:[e.jsx("h3",{className:"text-sm font-semibold mb-1",children:"Readiness checks"}),e.jsx("div",{className:"divide-y",children:m.checks.map(o=>e.jsx(M,{status:o.status,label:o.label,detail:o.detail},o.key))})]})}),m.blockers.length>0&&e.jsx(j,{children:e.jsxs(g,{className:"pt-5",children:[e.jsx("h3",{className:"text-sm font-semibold mb-2",children:"Open items"}),e.jsx("div",{className:"space-y-2.5",children:[...C,...n].map((o,d)=>e.jsxs("div",{className:"flex items-start gap-2.5","data-testid":`blocker-${o.code}-${d}`,children:[e.jsx(B,{className:`w-4 h-4 mt-0.5 shrink-0 ${o.severity==="blocker"?"text-red-600 dark:text-red-400":"text-amber-600 dark:text-amber-400"}`}),e.jsxs("div",{className:"min-w-0 text-sm",children:[e.jsx("span",{className:"font-medium",children:o.label}),o.severity==="blocker"&&e.jsx(A,{variant:"outline",className:"ml-2 border-red-500/30 bg-red-500/10 text-red-700 dark:text-red-300",children:"Blocker"}),e.jsx("div",{className:"text-xs text-muted-foreground",children:o.detail}),o.href&&e.jsx(E,{href:o.href,className:"text-xs underline text-primary","data-testid":`link-blocker-${o.code}-${d}`,children:"Resolve"})]})]},`${o.code}-${d}`))})]})}),e.jsx(j,{className:"border-primary/20",children:e.jsxs(g,{className:"pt-4 flex items-start gap-2.5",children:[e.jsx(K,{className:"w-4 h-4 mt-0.5 text-primary shrink-0"}),e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:"Approval policy: confirmation required."})," ",e.jsx("span",{className:"text-muted-foreground",children:Z})]})]})}),e.jsx(j,{children:e.jsxs(g,{className:"pt-5",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h3",{className:"text-sm font-semibold",children:"Setup summary (handoff document)"}),e.jsxs(f,{size:"sm",variant:"outline",onClick:h,disabled:!l,"data-testid":"button-copy-summary",children:[e.jsx(ge,{className:"w-4 h-4 mr-1.5"})," Copy"]})]}),a?e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx($,{className:"w-4 h-4 animate-spin"})," Building the summaryâ¦"]}):l?e.jsx("pre",{className:"text-xs bg-muted rounded-md p-3 overflow-x-auto whitespace-pre-wrap max-h-96","data-testid":"text-setup-summary",children:l}):e.jsx("p",{className:"text-sm text-muted-foreground",children:"The summary could not be loaded."})]})}),e.jsx("div",{className:"flex justify-end gap-2",children:b?e.jsx(f,{variant:"outline",onClick:S,disabled:c,"data-testid":"button-reopen-setup",children:"Reopen for a tune-up"}):e.jsxs(f,{onClick:y,disabled:c||!m.ready,"data-testid":"button-finish-setup",children:[c?e.jsx($,{className:"w-4 h-4 mr-1.5 animate-spin"}):e.jsx(R,{className:"w-4 h-4 mr-1.5"}),"Finish setup"]})}),!b&&!m.ready&&e.jsx("p",{className:"text-xs text-muted-foreground text-right",children:"Finish is disabled while a hard blocker remains (see open items above)."})]})}
1export{rs as default};
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.