1import{r as d,j as s,L as H,c as g}from"./index--1RmYx0j.js";const K=["","fanout","classify","extract","normalize","hs","network","unknown"],Q=["","system","external","input","content","policy"],V=["","dev_only","user_summary","user_actionable"],W=["","auto","manual","none"],R={system:"bg-red-100 text-red-700",external:"bg-orange-100 text-orange-700",input:"bg-yellow-100 text-yellow-700",content:"bg-amber-100 text-amber-700",policy:"bg-violet-100 text-violet-700"},X={dev_only:"bg-gray-200 text-gray-700",user_summary:"bg-blue-100 text-blue-700",user_actionable:"bg-emerald-100 text-emerald-700"},L={auto:"bg-sky-100 text-sky-700",manual:"bg-amber-100 text-amber-700",none:"bg-gray-100 text-gray-600"};function u({value:t,styleMap:c}){if(!t)return null;const r=c[t]??"bg-gray-100 text-gray-700";return s.jsx("span",{className:`inline-block text-[10px] font-medium px-1.5 py-0.5 rounded ${r}`,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:102",children:t})}function ss(){const[t,c]=d.useState([]),[r,n]=d.useState({total:0,openCount:0,resolvedCount:0}),[f,M]=d.useState(!0),[p,_]=d.useState(""),[m,D]=d.useState(""),[y,O]=d.useState(""),[b,Y]=d.useState(""),[A,z]=d.useState(""),[F,S]=d.useState(!1),[x,U]=d.useState(null),[a,C]=d.useState(null),[P,h]=d.useState(!1),[$,N]=d.useState(""),j=async()=>{S(!0);try{const e=new URLSearchParams;f&&e.set("unresolved","1"),p&&e.set("step",p),m&&e.set("category",m),y&&e.set("audience",y),b&&e.set("retry",b);const i=await(await g(`/api/admin/docs/parse-failures?${e}`)).json();c(i.failures??[]),n(i.stats??{total:0,openCount:0,resolvedCount:0})}finally{S(!1)}},v=async e=>{U(e),C(null),N("");const l=await g(`/api/admin/docs/parse-failures/${e}`);if(l.ok){const i=await l.json();C(i),N(i.failure.resolutionNote??"")}},q=async()=>{if(x){h(!0);try{await g(`/api/admin/docs/parse-failures/${x}/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({note:$,resolvedBy:"admin"})}),await j(),await v(x)}finally{h(!1)}}},J=async()=>{if(x){h(!0);try{await g(`/api/admin/docs/parse-failures/${x}/reopen`,{method:"POST"}),await j(),await v(x)}finally{h(!1)}}},B=async(e,l)=>{const i=await g(`/api/admin/docs/parse-failures/${e}/file/${l}/download`);if(i.ok){const{url:G}=await i.json();window.open(G,"_blank")}};d.useEffect(()=>{j()},[f,p,m,y,b]);const E=d.useMemo(()=>{const e=A.trim().toLowerCase();return e?t.filter(l=>l.errorMessage.toLowerCase().includes(e)||(l.caseId??"").toLowerCase().includes(e)||l.id.toLowerCase().includes(e)):t},[t,A]);return s.jsxs("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900","data-sc-src":"src/pages/Admin/ParseFailures.tsx:214",children:[s.jsx("div",{className:"bg-red-600 text-white px-6 py-2 text-sm font-medium","data-sc-src":"src/pages/Admin/ParseFailures.tsx:216",children:"â ê°ë°ì ì ì© â ì¬ì´ëë° ë¹ë
¸ì¶, ADMIN_USER_IDS ë±ë¡ë ê³ì ë§ ì ê·¼ ê°ë¥."}),s.jsxs("div",{className:"px-6 py-6","data-sc-src":"src/pages/Admin/ParseFailures.tsx:220",children:[s.jsxs("header",{className:"mb-4","data-sc-src":"src/pages/Admin/ParseFailures.tsx:221",children:[s.jsx("h1",{className:"text-2xl font-bold text-gray-900 dark:text-white","data-sc-src":"src/pages/Admin/ParseFailures.tsx:222",children:"ë¶ì ì¤í¨ 모ëí°"}),s.jsx("p",{className:"text-sm text-gray-500 mt-1","data-sc-src":"src/pages/Admin/ParseFailures.tsx:225",children:"ìë¥ê´ë¦¬ ì¼ì´ì¤ íì´íë¼ì¸ì´ 무ëì§ ì¬ê±´ë¤ì 모ì ë´
ëë¤. íì¼ ë¨ì ë¨ê³ ì¤í¨ë ì¼ì´ì¤ ìì¸ìì íì¸í©ëë¤."})]}),s.jsxs("div",{className:"grid grid-cols-3 gap-3 mb-4","data-sc-src":"src/pages/Admin/ParseFailures.tsx:232",children:[s.jsx(k,{label:"ì ì²´",value:r.total}),s.jsx(k,{label:"미í´ê²°",value:r.openCount,accent:"red"}),s.jsx(k,{label:"í´ê²°ë¨",value:r.resolvedCount,accent:"green"})]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-4 rounded-lg bg-white dark:bg-gray-800 p-3 border border-gray-200 dark:border-gray-700","data-sc-src":"src/pages/Admin/ParseFailures.tsx:239",children:[s.jsxs("label",{className:"flex items-center gap-2 text-sm","data-sc-src":"src/pages/Admin/ParseFailures.tsx:240",children:[s.jsx("input",{type:"checkbox",checked:f,onChange:e=>M(e.target.checked),"data-sc-src":"src/pages/Admin/ParseFailures.tsx:241"}),"미í´ê²°ë§"]}),s.jsx("select",{value:p,onChange:e=>_(e.target.value),className:"text-sm border rounded px-2 py-1 dark:bg-gray-700 dark:border-gray-600","data-sc-src":"src/pages/Admin/ParseFailures.tsx:248",children:K.map(e=>s.jsx("option",{value:e,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:254",children:e?`ë¨ê³: ${e}`:"ë¨ê³: ì ì²´"},e||"all"))}),s.jsx("select",{value:m,onChange:e=>D(e.target.value),className:"text-sm border rounded px-2 py-1 dark:bg-gray-700 dark:border-gray-600",title:"ìë¬ ì¹´í
ê³ ë¦¬","data-sc-src":"src/pages/Admin/ParseFailures.tsx:259",children:Q.map(e=>s.jsx("option",{value:e,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:266",children:e?`ì¹´í
ê³ ë¦¬: ${e}`:"ì¹´í
ê³ ë¦¬: ì ì²´"},e||"all-cat"))}),s.jsx("select",{value:y,onChange:e=>O(e.target.value),className:"text-sm border rounded px-2 py-1 dark:bg-gray-700 dark:border-gray-600",title:"ë
¸ì¶ ëì","data-sc-src":"src/pages/Admin/ParseFailures.tsx:271",children:V.map(e=>s.jsx("option",{value:e,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:278",children:e?`ëì: ${e}`:"ëì: ì ì²´"},e||"all-aud"))}),s.jsx("select",{value:b,onChange:e=>Y(e.target.value),className:"text-sm border rounded px-2 py-1 dark:bg-gray-700 dark:border-gray-600",title:"ì¬ìë ì ì±
","data-sc-src":"src/pages/Admin/ParseFailures.tsx:283",children:W.map(e=>s.jsx("option",{value:e,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:290",children:e?`ì¬ìë: ${e}`:"ì¬ìë: ì ì²´"},e||"all-rt"))}),s.jsx("input",{value:A,onChange:e=>z(e.target.value),placeholder:"ìë¬ ë©ìì§/ì¼ì´ì¤ ID/ì¤í¨ IDë¡ ê²ì",className:"flex-1 min-w-[260px] text-sm border rounded px-3 py-1.5 dark:bg-gray-700 dark:border-gray-600","data-sc-src":"src/pages/Admin/ParseFailures.tsx:295"}),s.jsx("button",{onClick:j,className:"text-sm px-3 py-1.5 rounded bg-gray-800 text-white hover:bg-gray-700","data-sc-src":"src/pages/Admin/ParseFailures.tsx:301",children:"ìë¡ê³ 침"})]}),s.jsxs("div",{className:"grid grid-cols-12 gap-4","data-sc-src":"src/pages/Admin/ParseFailures.tsx:309",children:[s.jsx("div",{className:"col-span-12 lg:col-span-7 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 overflow-x-auto","data-sc-src":"src/pages/Admin/ParseFailures.tsx:311",children:s.jsxs("table",{className:"w-full text-sm","data-sc-src":"src/pages/Admin/ParseFailures.tsx:312",children:[s.jsx("thead",{className:"bg-gray-50 dark:bg-gray-700/50 text-xs uppercase text-gray-500","data-sc-src":"src/pages/Admin/ParseFailures.tsx:313",children:s.jsxs("tr",{"data-sc-src":"src/pages/Admin/ParseFailures.tsx:314",children:[s.jsx("th",{className:"text-left px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:315",children:"ë°ììê°"}),s.jsx("th",{className:"text-left px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:316",children:"ë¨ê³"}),s.jsx("th",{className:"text-left px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:317",children:"ì¹´í
ê³ ë¦¬"}),s.jsx("th",{className:"text-left px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:318",children:"ìë¬"}),s.jsx("th",{className:"text-left px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:319",children:"íì¼"}),s.jsx("th",{className:"text-left px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:320",children:"ìí"})]})}),s.jsxs("tbody",{"data-sc-src":"src/pages/Admin/ParseFailures.tsx:323",children:[F&&s.jsx("tr",{"data-sc-src":"src/pages/Admin/ParseFailures.tsx:325",children:s.jsx("td",{colSpan:6,className:"text-center text-gray-400 py-8","data-sc-src":"src/pages/Admin/ParseFailures.tsx:326",children:"ë¶ë¬ì¤ë ì¤â¦"})}),!F&&E.length===0&&s.jsx("tr",{"data-sc-src":"src/pages/Admin/ParseFailures.tsx:332",children:s.jsx("td",{colSpan:6,className:"text-center text-gray-400 py-8","data-sc-src":"src/pages/Admin/ParseFailures.tsx:333",children:"ì¡°ê±´ì ë§ë ì¤í¨ê° ììµëë¤."})}),!F&&E.map(e=>{var l;return s.jsxs("tr",{onClick:()=>
1v(e.id),className:`cursor-pointer border-t border-gray-100 dark:border-gray-700 hover:bg-blue-50 dark:hover:bg-blue-950/30 ${x===e.id?"bg-blue-50 dark:bg-blue-950/30":""}`,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:340",children:[s.jsx("td",{className:"px-3 py-2 whitespace-nowrap text-gray-700 dark:text-gray-300","data-sc-src":"src/pages/Admin/ParseFailures.tsx:347",children:I(e.createdAt)}),s.jsx("td",{className:"px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:350",children:s.jsx(T,{step:e.pipelineStep})}),s.jsx("td",{className:"px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:353",children:s.jsxs("div",{className:"flex flex-wrap gap-1 items-center","data-sc-src":"src/pages/Admin/ParseFailures.tsx:354",children:[s.jsx(u,{value:e.errorCategory,styleMap:R}),s.jsx(u,{value:e.errorRetryability,styleMap:L}),e.errorCode&&s.jsx("span",{className:"text-[10px] font-mono text-gray-500","data-sc-src":"src/pages/Admin/ParseFailures.tsx:358",children:e.errorCode})]})}),s.jsx("td",{className:"px-3 py-2 max-w-xs truncate text-gray-800 dark:text-gray-200","data-sc-src":"src/pages/Admin/ParseFailures.tsx:364",children:e.errorMessage}),s.jsxs("td",{className:"px-3 py-2 text-xs text-gray-500","data-sc-src":"src/pages/Admin/ParseFailures.tsx:367",children:[((l=e.files)==null?void 0:l.length)??0,"ê°"]}),s.jsx("td",{className:"px-3 py-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:370",children:e.resolvedAt?s.jsx("span",{className:"inline-block text-xs px-2 py-0.5 rounded bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300","data-sc-src":"src/pages/Admin/ParseFailures.tsx:372",children:"í´ê²°ë¨"}):s.jsx("span",{className:"inline-block text-xs px-2 py-0.5 rounded bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300","data-sc-src":"src/pages/Admin/ParseFailures.tsx:376",children:"미í´ê²°"})})]},e.id)})]})]})}),s.jsxs("div",{className:"col-span-12 lg:col-span-5","data-sc-src":"src/pages/Admin/ParseFailures.tsx:388",children:[!a&&s.jsx("div",{className:"rounded-lg border border-dashed border-gray-300 dark:border-gray-700 p-10 text-center text-gray-400","data-sc-src":"src/pages/Admin/ParseFailures.tsx:390",children:"ì¢ì¸¡ìì íì ì ííë©´ ìì¸ê° íìë©ëë¤."}),a&&s.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4 space-y-4","data-sc-src":"src/pages/Admin/ParseFailures.tsx:395",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3","data-sc-src":"src/pages/Admin/ParseFailures.tsx:396",children:[s.jsxs("div",{"data-sc-src":"src/pages/Admin/ParseFailures.tsx:397",children:[s.jsx("div",{className:"text-xs text-gray-500","data-sc-src":"src/pages/Admin/ParseFailures.tsx:398",children:"ì¤í¨ ID"}),s.jsx("div",{className:"font-mono text-xs text-gray-700 dark:text-gray-300","data-sc-src":"src/pages/Admin/ParseFailures.tsx:399",children:a.failure.id})]}),s.jsxs("div",{className:"text-right","data-sc-src":"src/pages/Admin/ParseFailures.tsx:403",children:[s.jsx(T,{step:a.failure.pipelineStep}),s.jsx("div",{className:"text-xs text-gray-400 mt-1","data-sc-src":"src/pages/Admin/ParseFailures.tsx:405",children:a.failure.source})]})]}),(a.failure.errorCategory||a.failure.errorAudience||a.failure.errorRetryability||a.failure.errorCode)&&s.jsx(o,{title:"ìë¬ ë¶ë¥",children:s.jsxs("div",{className:"flex flex-wrap gap-1.5 items-center","data-sc-src":"src/pages/Admin/ParseFailures.tsx:417",children:[s.jsx(u,{value:a.failure.errorCategory,styleMap:R}),s.jsx(u,{value:a.failure.errorRetryability,styleMap:L}),s.jsx(u,{value:a.failure.errorAudience,styleMap:X}),a.failure.errorCode&&s.jsx("span",{className:"text-[11px] font-mono px-1.5 py-0.5 rounded bg-gray-100 dark:bg-gray-900 text-gray-700 dark:text-gray-300","data-sc-src":"src/pages/Admin/ParseFailures.tsx:431",children:a.failure.errorCode})]})}),s.jsx(o,{title:"ìë¬ ë©ìì§",children:s.jsx("pre",{className:"whitespace-pre-wrap break-words text-xs bg-gray-100 dark:bg-gray-900 p-2 rounded","data-sc-src":"src/pages/Admin/ParseFailures.tsx:440",children:a.failure.errorMessage})}),a.failure.errorStack&&s.jsx(o,{title:"Stack trace",children:s.jsx("pre",{className:"whitespace-pre-wrap break-words text-[10px] bg-gray-100 dark:bg-gray-900 p-2 rounded max-h-60 overflow-auto","data-sc-src":"src/pages/Admin/ParseFailures.tsx:447",children:a.failure.errorStack})}),a.case&&s.jsx(o,{title:"ì°ê²°ë ì¼ì´ì¤",children:s.jsxs("div",{className:"text-sm","data-sc-src":"src/pages/Admin/ParseFailures.tsx:455",children:[s.jsx(H,{to:`/docs/cases/${a.case.id}`,state:{from:"/admin/docs/parse-failures",label:"íì± ì¤í¨ ê´ë¦¬ì"},className:"text-blue-600 hover:underline font-mono text-xs",children:a.case.id}),s.jsxs("span",{className:"ml-2 text-xs text-gray-500","data-sc-src":"src/pages/Admin/ParseFailures.tsx:466",children:["ìí: ",a.case.status]})]})}),a.files.length>
10&&s.jsx(o,{title:"ì¼ì´ì¤ íì¼ & ë¨ê³ë³ ìë¬",children:s.jsx("div",{className:"space-y-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:475",children:a.files.map(e=>s.jsxs("div",{className:"border border-gray-200 dark:border-gray-700 rounded p-2 text-xs","data-sc-src":"src/pages/Admin/ParseFailures.tsx:477",children:[s.jsxs("div",{className:"flex items-center justify-between","data-sc-src":"src/pages/Admin/ParseFailures.tsx:481",children:[s.jsx("div",{className:"font-medium truncate","data-sc-src":"src/pages/Admin/ParseFailures.tsx:482",children:e.fileName}),s.jsx("button",{onClick:()=>B(a.failure.id,e.id),className:"text-blue-600 hover:underline text-xs ml-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:485",children:"ì본 ë¤ì´"})]}),s.jsxs("div",{className:"text-gray-500 mt-1","data-sc-src":"src/pages/Admin/ParseFailures.tsx:494",children:[e.mimeType," · ë¶ë¥=",e.kind]}),s.jsx(w,{label:"classify",status:e.classifyStatus,error:e.classifyError}),s.jsx(w,{label:"normalize",status:e.normalizeStatus,error:e.normalizeError}),s.jsx(w,{label:"extract",status:e.extractStatus,error:e.extractError}),e.unsupported&&s.jsxs("div",{className:"mt-1 text-amber-600","data-sc-src":"src/pages/Admin/ParseFailures.tsx:513",children:["ì§ìë¶ê°: ",e.unsupportedReason]})]},e.id))})}),a.failure.requestContext&&s.jsx(o,{title:"ìì² ì»¨í
ì¤í¸",children:s.jsx("pre",{className:"text-[10px] bg-gray-100 dark:bg-gray-900 p-2 rounded overflow-auto","data-sc-src":"src/pages/Admin/ParseFailures.tsx:525",children:JSON.stringify(a.failure.requestContext,null,2)})}),s.jsxs(o,{title:"í´ê²° ì²ë¦¬",children:[s.jsx("textarea",{value:$,onChange:e=>N(e.target.value),rows:3,placeholder:"í´ê²° ë©ëª¨ (ì: gemini ìëµ ê¹¨ì§ â partialJson ë³´ê°)",className:"w-full text-sm border rounded p-2 dark:bg-gray-900 dark:border-gray-700","data-sc-src":"src/pages/Admin/ParseFailures.tsx:532"}),s.jsx("div",{className:"flex gap-2 mt-2","data-sc-src":"src/pages/Admin/ParseFailures.tsx:539",children:a.failure.resolvedAt?s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"text-xs text-green-600 self-center","data-sc-src":"src/pages/Admin/ParseFailures.tsx:542",children:["â ",I(a.failure.resolvedAt)," í´ê²°"]}),s.jsx("button",{onClick:J,disabled:P,className:"ml-auto text-xs px-3 py-1.5 border rounded hover:bg-gray-50 dark:border-gray-600","data-sc-src":"src/pages/Admin/ParseFailures.tsx:545",children:"ë¤ì ì´ê¸°"})]}):s.jsx("button",{onClick:q,disabled:P,className:"ml-auto text-xs px-3 py-1.5 rounded bg-green-600 text-white hover:bg-green-700 disabled:opacity-50","data-sc-src":"src/pages/Admin/ParseFailures.tsx:554",children:P?"ì²ë¦¬ ì¤â¦":"í´ê²°ë¡ íì"})})]})]})]})]})]})]})}function o({title:t,children:c}){return s.jsxs("div",{"data-sc-src":"src/pages/Admin/ParseFailures.tsx:581",children:[s.jsx("div",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider mb-1","data-sc-src":"src/pages/Admin/ParseFailures.tsx:582",children:t}),c]})}function k({label:t,value:c,accent:r}){const n=r==="red"?"text-red-600":r==="green"?"text-green-600":"text-gray-900 dark:text-white";return s.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4","data-sc-src":"src/pages/Admin/ParseFailures.tsx:606",children:[s.jsx("div",{className:"text-xs text-gray-500","data-sc-src":"src/pages/Admin/ParseFailures.tsx:607",children:t}),s.jsx("div",{className:`text-2xl font-bold mt-1 ${n}`,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:608",children:c})]})}function T({step:t}){const r={fanout:"bg-purple-100 text-purple-700",classify:"bg-blue-100 text-blue-700",extract:"bg-amber-100 text-amber-700",normalize:"bg-cyan-100 text-cyan-700",hs:"bg-indigo-100 text-indigo-700",network:"bg-gray-100 text-gray-700",unknown:"bg-gray-100 text-gray-700"}[t]??"bg-gray-100 text-gray-700";return s.jsx("span",{className:`inline-block text-xs px-2 py-0.5 rounded ${r}`,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:625",children:t})}function w({label:t,status:c,error:r}){const n=c==="failed"||!!r;return s.jsxs("div",{className:"flex items-start gap-2 mt-1","data-sc-src":"src/pages/Admin/ParseFailures.tsx:642",children:[s.jsx("span",{className:`text-[10px] uppercase font-mono w-16 ${n?"text-red-600":"text-gray-400"}`,"data-sc-src":"src/pages/Admin/ParseFailures.tsx:643",children:t}),s.jsx("span",{className:"text-xs text-gray-600 dark:text-gray-400","data-sc-src":"src/pages/Admin/ParseFailures.tsx:650",children:c}),r&&s.jsx("span",{className:"text-xs text-red-600 dark:text-red-400 truncate flex-1","data-sc-src":"src/pages/Admin/ParseFailures.tsx:652",children:r})]})}function I(t){const c=new Date(t),r=n=>n.toString().padStart(2,"0");return`${c.getFullYear()}-${r(c.getMonth()+1)}-${r(c.getDate())} ${r(c.getHours())}:${r(c.getMinutes())}:${r(c.getSeconds())}`}export{ss 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.