PageSourceSearch

https://weespots.ai/assets/AdminMarketplaceAgent-BO5x5-b9.js

js weespots.ai collected 2026-10-05 14:31:58 UTC 19,645 bytes, 5 lines download raw bytes

1import{r as o,j as e}from"./reactflow-D4V9tSA3.js";import{w as he,y as ge,z as u,W as d,H as fe,L as je,K as be,n as b,B as m,c2 as ve,M as ye,aZ as _e,C as p,a as h,b as g,J as f,d as j,N as v,O as w,m as Ne}from"./index-GVOk_ySq.js";import{T as we,a as ke,b as k,c as S}from"./tabs-DhFK1n1A.js";import{T as Q}from"./textarea-CiKKabJa.js";import{S as K}from"./slider-ZpONKi9T.js";import{S as Se,a as Ce,b as Ie,c as Le,d as Pe}from"./select-BN9C8cki.js";import{T as Te,a as Me,b as ee,c as y,d as ze,e as _}from"./table-yCVIs4-7.js";import{B as se}from"./bot-nhzKidII.js";import{S as Ae}from"./save-D0JS-yvR.js";import{L as Je}from"./library-CnMKsM3T.js";import{S as qe}from"./sliders-horizontal-pCC5wS6v.js";import{P as Oe}from"./plus-CPefeXFA.js";import{T as re}from"./trash-2-DRceC4vT.js";import{R as te}from"./rotate-ccw-EDhptkFl.js";import{S as Re}from"./send-xBZOaJ3w.js";import"./index-DeR4pDBy.js";import"./index-BdQq_4o_.js";const De=[{id:"google/gemini-2.5-flash",label:"Gemini 2.5 Flash (équilibré, défaut)"},{id:"google/gemini-2.5-flash-lite",label:"Gemini 2.5 Flash Lite (rapide, économique)"},{id:"google/gemini-2.5-pro",label:"Gemini 2.5 Pro (raisonnement avancé)"},{id:"google/gemini-3-flash-preview",label:"Gemini 3 Flash (preview)"},{id:"openai/gpt-5",label:"GPT-5 (puissant, multimodal)"},{id:"openai/gpt-5-mini",label:"GPT-5 mini (compromis)"},{id:"openai/gpt-5-nano",label:"GPT-5 nano (volume)"}],Fe=[{id:"search_vehicles",label:"Recherche véhicules"},{id:"compare_vehicles",label:"Comparaison"},{id:"create_lead",label:"Création de lead"},{id:"suggest_follow_ups",label:"Suggestions de relance"}],Ve=["{{mode}}","{{seller_line}}","{{active_line}}","{{capabilities}}","{{seller_name}}"],ns=()=>{const{user:x,loading:z}=he(),A=ge(),[C,ae]=o.useState(null),[I,R]=o.useState([]),[r,c]=o.useState(null),[L,ne]=o.useState(null),[D,F]=o.useState(!1),[V,B]=o.useState(!1),[E,G]=o.useState(""),[U,$]=o.useState(""),[P,J]=o.useState(""),[H,T]=o.useState([]),[X,q]=o.useState(null),[O,W]=o.useState(!1);o.useEffect(()=>{if(!z){if(!x){A("/auth");return}u.rpc("is_super_admin").then(({data:s})=>{const a=!!s;ae(a),a||A("/")})}},[x,z,A]),o.useEffect(()=>{C&&M()},[C]);async function M(){const{data:s,error:a}=await u.from("marketplace_agent_configs").select("*").order("version",{ascending:!1});if(a){d.error(a.message);return}const t=s||[];R(t);const n=t.find(i=>i.status==="published")||null;ne(n);const l=t.find(i=>i.status==="draft");l?c(l):n&&c({...n,id:"",status:"draft"})}async function Z(){var i;if(r!=null&&r.id)return r;if(!r)return null;const s=(((i=I[0])==null?void 0:i.version)||0)+1,a={version:s,status:"draft",label:r.label||`Brouillon v${s}`,notes:r.notes,system_prompt:r.system_prompt,model:r.model,temperature:r.temperature,max_tokens:r.max_tokens,enabled_tools:r.enabled_tools,knowledge_sources:r.knowledge_sources,knowledge_text:r.knowledge_text,created_by:(x==null?void 0:x.id)??null},{data:t,error:n}=await u.from("marketplace_agent_configs").insert(a).select().single();if(n)return d.error(n.message),null;const l=t;return c(l),R(N=>[l,...N]),l}async function ie(){if(r){F(!0);try{const s=await Z();if(!s)return;const{error:a}=await u.from("marketplace_agent_configs").update({label:r.label,notes:r.notes,system_prompt:r.system_prompt,model:r.model,temperature:r.temperature,max_tokens:r.max_tokens,enabled_tools:r.enabled_tools,knowledge_sources:r.knowledge_sources,knowledge_text:r.knowledge_text}).eq("id",s.id);if(a){d.error(a.message);return}d.success("Brouillon enregistré"),M()}finally{F(!1)}}}async function le(){if(r&&confirm("Publier ce brouillon ? Il remplacera la configuration active.")){B(!0);try{const s=await Z();if(!s)return;await u.from("marketplace_agent_configs").update({label:r.label,notes:r.notes,system_prompt:r.system_prompt,model:r.model,temperature:r.temperature,max_tokens:r.max_tokens,enabled_tools:r.enabled_tools,knowledge_sources:r.knowledge_sources,knowledge_text:r.knowledge_text}).eq("id",s.id),L&&await u.from("marketplace_agent_configs").update({status:"archived"}).eq("id",L.id);const{error:a}
1=await u.from("marketplace_agent_configs").update({status:"published",published_at:new Date().toISOString(),published_by:(x==null?void 0:x.id)??null}).eq("id",s.id);if(a){d.error(a.message);return}d.success("Configuration publiée"),M()}finally{B(!1)}}}async function oe(s){c({...s,id:"",status:"draft",label:`Reprise de v${s.version}`}),d.success(`Version ${s.version} chargée comme brouillon (non sauvegardé)`)}async function ce(s){if(!confirm("Supprimer cette version ?"))return;const{error:a}=await u.from("marketplace_agent_configs").delete().eq("id",s);if(a){d.error(a.message);return}d.success("Version supprimée"),M()}function de(){const s=E.trim();!s||!r||(c({...r,knowledge_sources:[...r.knowledge_sources||[],{url:s,label:U.trim()||s}]}),G(""),$(""))}function ue(s){r&&c({...r,knowledge_sources:r.knowledge_sources.filter((a,t)=>t!==s)})}async function me(){if(X)return X;const s="https://eqzxkrniuachilkskyzi.supabase.co/functions/v1/marketplace-session",{data:{session:a}}=await u.auth.getSession();let t=null,n=null;try{const l=await fetch(s,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${(a==null?void 0:a.access_token)||"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImVxenhrcm5pdWFjaGlsa3NreXppIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjkzNDc1NzIsImV4cCI6MjA4NDkyMzU3Mn0.FwoR0i9qvyWjJrUBQ1GJNiRlkXBxnbW6GjMa36_g2-Y"}`,"x-admin-playground":"1"},body:JSON.stringify({source:"admin_playground"})});t=await l.json(),l.ok||(n=t)}catch(l){n=l}if(n||!(t!=null&&t.session_id)){const{data:l,error:i}=await u.from("marketplace_search_sessions").insert({}).select("id").single();return i||!l?(d.error("Impossible de créer une session de test"),null):(q(l.id),l.id)}return q(t.session_id),t.session_id}async function Y(){if(!P.trim()||!r)return;const s=await me();if(!s)return;const a={role:"user",content:P.trim()};T(t=>[...t,a]),J(""),W(!0);try{const t="https://eqzxkrniuachilkskyzi.supabase.co/functions/v1/marketplace-chat",{data:{session:n}}=await u.auth.getSession(),l=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${(n==null?void 0:n.access_token)||"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImVxenhrcm5pdWFjaGlsa3NreXppIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjkzNDc1NzIsImV4cCI6MjA4NDkyMzU3Mn0.FwoR0i9qvyWjJrUBQ1GJNiRlkXBxnbW6GjMa36_g2-Y"}`,"x-marketplace-key":"__admin_playground__","x-admin-playground":"1"},body:JSON.stringify({session_id:s,message:a.content,__preview_config:{system_prompt:r.system_prompt,model:r.model,temperature:r.temperature,max_tokens:r.max_tokens,knowledge_text:r.knowledge_text}})}),i=await l.json();l.ok?T(N=>[...N,{role:"assistant",content:i.answer||"(pas de réponse)",results:Array.isArray(i.results)?i.results:[],followUps:Array.isArray(i.follow_up_questions)?i.follow_up_questions:[]}]):(d.error((i==null?void 0:i.error)||"Erreur agent"),T(N=>[...N,{role:"assistant",content:`❌ ${(i==null?void 0:i.error)||"Erreur"}`}]))}catch(t){d.error((t==null?void 0:t.message)||"Erreur réseau")}finally{W(!1)}}function xe(){T([]),q(null)}const pe=o.useMemo(()=>{if(!r)return!1;if(!r.id)return!0;const s=I.find(a=>a.id===r.id);return s?JSON.stringify(s)!==JSON.stringify(r):!0}
1,[r,I]);return z||C===null?e.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center",children:e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-primary"})}):!C||!r?null:e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(fe,{}),e.jsxs("main",{className:"w-full px-4 py-24 md:py-28",children:[e.jsxs("div",{className:"mb-6 flex items-center justify-between flex-wrap gap-3",children:[e.jsxs("div",{children:[e.jsxs(je,{to:"/admin/marketplace",className:"text-xs text-muted-foreground hover:text-foreground inline-flex items-center gap-1 mb-2",children:[e.jsx(be,{className:"h-3 w-3"})," Retour Marketplace"]}),e.jsxs("h1",{className:"text-3xl md:text-4xl font-bold flex items-center gap-3",children:[e.jsx(se,{className:"h-8 w-8 text-primary"}),"Agent IA Marketplace"]}),e.jsx("p",{className:"text-muted-foreground mt-1",children:"Pilotage du moteur conversationnel exposé à weespots.com et au serveur MCP."})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[L&&e.jsxs(b,{variant:"outline",className:"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 border-emerald-500/20",children:["Publié : v",L.version]}),pe&&e.jsx(b,{variant:"outline",className:"bg-amber-500/10 text-amber-600 border-amber-500/20",children:"Modifications non enregistrées"}),e.jsxs(m,{variant:"outline",onClick:ie,disabled:D,children:[e.jsx(Ae,{className:"h-4 w-4 mr-2"})," ",D?"Enregistrement…":"Enregistrer brouillon"]}),e.jsxs(m,{onClick:le,disabled:V,className:"gradient-primary text-primary-foreground",children:[e.jsx(ve,{className:"h-4 w-4 mr-2"})," ",V?"Publication…":"Publier"]})]})]}),e.jsxs(we,{defaultValue:"persona",className:"w-full",children:[e.jsxs(ke,{className:"grid w-full grid-cols-2 md:grid-cols-5 mb-6",children:[e.jsxs(k,{value:"persona",children:[e.jsx(se,{className:"h-4 w-4 mr-2"}),"Prompt & Persona"]}),e.jsxs(k,{value:"knowledge",children:[e.jsx(Je,{className:"h-4 w-4 mr-2"}),"Connaissances"]}),e.jsxs(k,{value:"model",children:[e.jsx(qe,{className:"h-4 w-4 mr-2"}),"Modèle & Outils"]}),e.jsxs(k,{value:"playground",children:[e.jsx(ye,{className:"h-4 w-4 mr-2"}),"Playground"]}),e.jsxs(k,{value:"versions",children:[e.jsx(_e,{className:"h-4 w-4 mr-2"}),"Versions"]})]}),e.jsx(S,{value:"persona",className:"space-y-6",children:e.jsxs(p,{children:[e.jsxs(h,{children:[e.jsx(g,{children:"Prompt système"}),e.jsx(f,{children:"Instructions envoyées à l'agent à chaque conversation. Utilisez les placeholders ci-dessous pour injecter le contexte runtime."})]}),e.jsxs(j,{className:"space-y-4",children:[e.jsx("div",{className:"flex flex-wrap gap-1.5",children:Ve.map(s=>e.jsx(b,{variant:"outline",className:"font-mono text-xs cursor-pointer",onClick:()=>{navigator.clipboard.writeText(s),d.success(`${s} copié`)},children:s},s))}),e.jsxs("div",{children:[e.jsx(v,{children:"Libellé de la version"}),e.jsx(w,{value:r.label||"",onChange:s=>c({...r,label:s.target.value}),placeholder:"ex: Persona vendeur premium v2"})]}),e.jsxs("div",{children:[e.jsx(v,{children:"Notes internes"}),e.jsx(w,{value:r.notes||"",onChange:s=>c({...r,notes:s.target.value}),placeholder:"Changements apportés, contexte…"})]}),e.jsxs("div",{children:[e.jsx(v,{children:"Prompt système"}),e.jsx(Q,{value:r.system_prompt,onChange:s=>c({...r,system_prompt:s.target.value}),rows:24,className:"font-mono text-xs"}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:[r.system_prompt.length," caractères"]})]})]})]})}),e.jsxs(S,{value:"knowledge",className:"space-y-6",children:[e.jsxs(p,{children:[e.jsxs(h,{children:[e.jsx(g,{children:"Base de connaissances textuelle"}),e.jsx(f,{children:"Texte ajouté au prompt système (FAQ, conditions de financement, politique reprise, livraison, garanties…). Concentrez l'essentiel — ce contenu est envoyé à chaque requête."})]}),e.jsxs(j,{children:[e.jsx(Q,{value:r.knowledge_text,onChange:s=>c({...r,knowledge_text:s.target.value}),rows:16,placeholder:`Exemple :
2- Reprise possible sous 48h, estimation gratuite via Argus.
3- Financement LOA/LLD via Cofidis dès 0% sur 12 mois.
4- Livraison France entière (290€ HT, gratuit > 200km du vendeur).
5- Garantie 12 mois pièces et main-d'œuvre incluse.`}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-2",children:[r.knowledge_text.length," caractères"]})]})]}),e.jsxs(p,{children:[e.jsxs(h,{children:[e.jsx(g,{children:"Sources externes (références)"}),e.jsx(f,{children:"URLs documentaires citées en référence pour les administrateurs. Non chargées automatiquement — copiez le contenu pertinent dans la base ci-dessus."})]}),e.jsxs(j,{className:"space-y-3",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-[1fr_2fr_auto] gap-2",children:[e.jsx(w,{value:U,onChange:s=>$(s.target.value),placeholder:"Libellé"}),e.jsx(w,{value:E,onChange:s=>G(s.target.value),placeholder:"https://…"}),e.jsxs(m,{onClick:de,children:[e.jsx(Oe,{className:"h-4 w-4 mr-1"}),"Ajouter"]})]}),e.jsxs("div",{className:"space-y-1",children:[(r.knowledge_sources||[]).map((s,a)=>e.jsxs("div",{className:"flex items-center gap-2 text-sm py-1.5 border-b last:border-0",children:[e.jsx(b,{variant:"outline",className:"text-xs",children:s.label||"—"}),e.jsx("code",{className:"text-xs text-muted-foreground truncate flex-1",children:s.url}),e.jsx(m,{size:"icon",variant:"ghost",onClick:()=>ue(a),children:e.jsx(re,{className:"h-3.5 w-3.5 text-destructive"})})]},a)),(!r.knowledge_sources||r.knowledge_sources.length===0)&&e.jsx("p",{className:"text-xs text-muted-foreground py-2",children:"Aucune source ajoutée."})]})]})]})]}),e.jsxs(S,{value:"model",className:"space-y-6",children:[e.jsxs(p,{children:[e.jsxs(h,{children:[e.jsx(g,{children:"Modèle IA"}),e.jsx(f,{children:"Modèles disponibles via la passerelle IA."})]}),e.jsxs(j,{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(v,{children:"Modèle"}),e.jsxs(Se,{value:r.model,onValueChange:s=>c({...r,model:s}),children:[e.jsx(Ce,{children:e.jsx(Ie,{})}),e.jsx(Le,{children:De.map(s=>e.jsx(Pe,{value:s.id,children:s.label},s.id))})]})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs(v,{children:["Température : ",e.jsx("span",{className:"font-mono",children:r.temperature.toFixed(2)})]}),e.jsx("span",{className:"text-xs text-muted-foreground",children:"0 = factuel, 1 = créatif"})]}),e.jsx(K,{min:0,max:1,step:.05,value:[r.temperature],onValueChange:s=>c({...r,temperature:s[0]})})]}),e.jsxs("div",{children:[e.jsxs(v,{children:["Max tokens : ",e.jsx("span",{className:"font-mono",children:r.max_tokens})]}),e.jsx(K,{min:256,max:4096,step:64,value:[r.max_tokens],onValueChange:s=>c({...r,max_tokens:s[0]})})]})]})]}),e.jsxs(p,{children:[e.jsxs(h,{children:[e.jsx(g,{children:"Outils MCP activés"}),e.jsx(f,{children:"Fonctions que l'agent peut appeler durant la conversation."})]}),e.jsxs(j,{className:"space-y-2",children:[Fe.map(s=>{const a=(r.enabled_tools||[]).includes(s.id);return e.jsxs("label",{className:"flex items-center gap-3 p-2 rounded hover:bg-muted/40 cursor-pointer",children:[e.jsx("input",{type:"checkbox",checked:a,onChange:t=>{const n=new Set(r.enabled_tools||[]);t.target.checked?n.add(s.id):n.delete(s.id),c({...r,enabled_tools:Array.from(n)})}}),e.jsx("span",{className:"font-mono text-xs",children:s.id}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["— ",s.label]})]},s.id)}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"Les outils décochés restent dans le schéma de l'edge function pour rétro-compatibilité — la désactivation effective sera prise en compte dans une prochaine itération."})]})]})]}),e.jsx(S,{value:"playground",className:"space-y-4",children:e.jsxs(p,{children:[e.jsxs(h,{children:[e.jsxs(g,{className:"flex items-center justify-between",children:[e.jsx("span",{children:"Playground"}),e.jsxs(m,{size:"sm",variant:"ghost",onClick:xe,children:[e.jsx(te,{className:"h-3.5 w-3.5 mr-1"}),"Réinitialiser"]})]}),e.jsxs(f,{children:["Teste l'agent avec la ",e.jsx("strong",{children:"configuration en cours d'édition"})," (brouillon non publié inclus). Les conversations sont sauvegardées comme sessions admin."]})]}),e.jsxs(j,{className:"space-y-4",children:[e.jsxs("div",{className:"border rounded-lg bg-muted/20 p-4 h-[420px] overflow-y-auto space-y-3",children:[H.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground text-center py-12",children:'Pose une question (ex : "Je cherche un SUV diesel automatique sous 25 000€")'}),H.map((s,a)=>e.jsx("div",{className:`flex ${s.role==="user"?"justify-end":"justify-start"}`,children:e.jsxs("div",{className:`max-w-[85%] space-y-2 ${s.role==="user"?"":"w-full"}`,children:[e.jsx("div",{className:`rounded-lg px-3 py-2 text-sm whitespace-pre-wrap ${s.role==="user"?"bg-primary text-primary-foreground":"bg-card border"}`,children:s.content}),s.role==="assistant"&&s.results&&s.results.length>0&&e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:s.results.slice(0,6).map((t,n)=>e.jsxs("a",{href:t.url||"#",target:"_blank",rel:"noreferrer",className:"border rounded-lg p-2 bg-background hover:border-primary transition flex gap-2",children:[t.image_url&&e.jsx("img",{src:t.image_url,alt:`${t.brand} ${t.model}`,className:"h-16 w-20 object-cover rounded",loading:"lazy"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-1.5",children:[e.jsxs("p",{className:"text-xs font-semibold truncate",children:[t.brand," ",t.model]}),t.featured&&e.jsx(b,{variant:"outline",className:"bg-amber-500/10 text-amber-600 border-amber-500/20 text-[10px] px-1 py-0",children:"★"})]}),e.jsx("p",{className:"text-[11px] text-muted-foreground truncate",children:t.ver
5sion||""}),e.jsxs("p",{className:"text-[11px] text-muted-foreground",children:[t.year||""," • ",t.mileage_raw||"—"]}),e.jsx("p",{className:"text-xs font-bold text-primary mt-0.5",children:t.price_raw||"—"}),e.jsxs("p",{className:"text-[10px] text-muted-foreground truncate",children:[t.client_name,t.city?` • ${t.city}`:""]})]})]},n))}),s.role==="assistant"&&s.followUps&&s.followUps.length>0&&e.jsx("div",{className:"flex flex-wrap gap-1.5",children:s.followUps.map((t,n)=>e.jsx(m,{size:"sm",variant:"outline",className:"h-7 text-xs",onClick:()=>{J(t)},children:t},n))})]})},a)),O&&e.jsx("div",{className:"flex justify-start",children:e.jsx("div",{className:"bg-card border rounded-lg px-3 py-2 text-sm text-muted-foreground",children:"L'agent réfléchit…"})})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(w,{value:P,onChange:s=>J(s.target.value),onKeyDown:s=>{s.key==="Enter"&&!s.shiftKey&&(s.preventDefault(),Y())},placeholder:"Message…",disabled:O}),e.jsx(m,{onClick:Y,disabled:O||!P.trim(),children:e.jsx(Re,{className:"h-4 w-4"})})]})]})]})}),e.jsx(S,{value:"versions",className:"space-y-4",children:e.jsxs(p,{children:[e.jsxs(h,{children:[e.jsx(g,{children:"Historique des versions"}),e.jsx(f,{children:"Toutes les configurations enregistrées."})]}),e.jsx(j,{children:e.jsxs(Te,{children:[e.jsx(Me,{children:e.jsxs(ee,{children:[e.jsx(y,{children:"Version"}),e.jsx(y,{children:"Statut"}),e.jsx(y,{children:"Libellé"}),e.jsx(y,{children:"Modèle"}),e.jsx(y,{children:"Mise à jour"}),e.jsx(y,{})]})}),e.jsx(ze,{children:I.map(s=>e.jsxs(ee,{children:[e.jsxs(_,{className:"font-mono",children:["v",s.version]}),e.jsx(_,{children:e.jsx(b,{variant:"outline",className:s.status==="published"?"bg-emerald-500/10 text-emerald-600 border-emerald-500/20":s.status==="draft"?"bg-amber-500/10 text-amber-600 border-amber-500/20":"bg-muted text-muted-foreground",children:s.status})}),e.jsx(_,{className:"text-sm",children:s.label||"—"}),e.jsx(_,{className:"text-xs font-mono text-muted-foreground",children:s.model}),e.jsx(_,{className:"text-xs text-muted-foreground",children:new Date(s.updated_at).toLocaleString("fr-FR")}),e.jsxs(_,{className:"text-right space-x-1",children:[e.jsxs(m,{size:"sm",variant:"ghost",onClick:()=>oe(s),children:[e.jsx(te,{className:"h-3.5 w-3.5 mr-1"}),"Charger"]}),s.status!=="published"&&e.jsx(m,{size:"sm",variant:"ghost",onClick:()=>ce(s.id),children:e.jsx(re,{className:"h-3.5 w-3.5 text-destructive"})})]})]},s.id))})]})})]})})]})]}),e.jsx(Ne,{})]})};export{ns 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.