@cartanova/qgrid-cli 2.7.3 → 2.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/dist/application/queries.generated.js +2 -1
- package/bundle/dist/application/request-log/json-schema-type-text.js +58 -2
- package/bundle/dist/application/request-log/request-log.model.js +44 -3
- package/bundle/dist/application/request-log/request-log.types.js +10 -4
- package/bundle/src/application/queries.generated.ts +3 -0
- package/bundle/src/application/request-log/json-schema-type-text.test.ts +115 -1
- package/bundle/src/application/request-log/json-schema-type-text.ts +91 -0
- package/bundle/src/application/request-log/request-log.model.test.ts +166 -0
- package/bundle/src/application/request-log/request-log.model.ts +52 -6
- package/bundle/src/application/request-log/request-log.types.ts +11 -2
- package/bundle/src/application/sonamu.generated.http +6 -2
- package/bundle/web-dist/client/assets/index-CwSSXuZv.js +106 -0
- package/bundle/web-dist/client/assets/index-D9xE_tO7.css +1 -0
- package/bundle/web-dist/client/assets/logs-BrAu0koY.js +1 -0
- package/bundle/web-dist/client/assets/{monit-BngOoU4n.js → monit-D6JEk7n7.js} +1 -1
- package/bundle/web-dist/client/assets/{routes-BnQE0rPF.js → routes-Dvu63qre.js} +1 -1
- package/bundle/web-dist/client/assets/{services.generated-CSW8bhCP.js → services.generated-CA7oRRYY.js} +4 -4
- package/bundle/web-dist/client/assets/settings-mwDGFwUi.js +1 -0
- package/bundle/web-dist/client/assets/show-BFGjYsWb.js +2 -0
- package/bundle/web-dist/client/assets/{tokens-LHoEigmF.js → tokens-D-P__jYk.js} +1 -1
- package/bundle/web-dist/client/assets/{use-oauth-login-flow-YyU4TDzU.js → use-oauth-login-flow-CJpoJD26.js} +1 -1
- package/bundle/web-dist/client/index.html +3 -3
- package/bundle/web-dist/server/assets/{lazyRouteComponent-0y-znAfz.js → lazyRouteComponent-tS-rTksX.js} +2 -2
- package/bundle/web-dist/server/assets/{logs-CJBbHM3_.js → logs-ttf79emP.js} +3 -14
- package/bundle/web-dist/server/assets/{monit-8WAsPETB.js → monit-CJBUH0l6.js} +2 -2
- package/bundle/web-dist/server/assets/{plus-9das21ju.js → plus-BuSuoeon.js} +1 -1
- package/bundle/web-dist/server/assets/{react-dom-zmEq8BVp.js → react-dom-7_SqhNWR.js} +1 -1
- package/bundle/web-dist/server/assets/{routes-B6bX3o41.js → routes-z79f1sOM.js} +3 -3
- package/bundle/web-dist/server/assets/{services.generated-DyPeBI00.js → services.generated-B5UkNmgc.js} +20 -38
- package/bundle/web-dist/server/assets/{settings-D1u5WdpP.js → settings-nCv71sax.js} +2 -2
- package/bundle/web-dist/server/assets/{show-Cr7vwR0l.js → show-CLrA4ZQ-.js} +158 -37
- package/bundle/web-dist/server/assets/{tokens-BumM0gnH.js → tokens-BwlkZELV.js} +3 -3
- package/bundle/web-dist/server/assets/{use-oauth-login-flow-DmsHGOlx.js → use-oauth-login-flow-B2QllVMi.js} +1 -1
- package/bundle/web-dist/server/entry-server.generated.js +10 -11
- package/package.json +3 -2
- package/skills/qgrid/references/request-log-run-lifecycle.md +9 -1
- package/skills/qgrid/references/sonamu-api-web-flow.md +3 -1
- package/bundle/web-dist/client/assets/index-BldeEvAK.css +0 -1
- package/bundle/web-dist/client/assets/index-QxWJK2qE.js +0 -106
- package/bundle/web-dist/client/assets/logs-DaNYzis5.js +0 -1
- package/bundle/web-dist/client/assets/settings-CPeAjsL3.js +0 -1
- package/bundle/web-dist/client/assets/show-DUOfuZj1.js +0 -2
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-Dw2cE7zH.js";import{l as e,u as t}from"./vendor-tanstack-DJRQAbrY.js";import{i as n,r}from"./vendor-react-DH4kUfK2.js";import{g as i,h as a,m as o,n as s,o as c,p as l,r as u}from"./services.generated-CSW8bhCP.js";import{n as d}from"./index-QxWJK2qE.js";import{n as f,r as p,t as m}from"./cost-CpjVoAqp.js";n();var h=r(),g=e=>(0,h.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,h.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`m15 18l-6-6l6-6`})}),_=e=>(0,h.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,h.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`m9 18l6-6l-6-6`})}),v=50,y=`__unassigned__`;function b(e){let t=new Date(e);return`${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)} ${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}`}function x(e){return e.toLocaleString()}function S(e){let t=Math.round(e/1e3),n=Math.floor(t/60),r=t%60;return n>0?`${n}m ${r}s`:`${r}s`}function C({status:e,requestedModel:t,servedModel:n,fallbackCount:r}){if(e===`running`)return(0,h.jsx)(`span`,{className:`text-[9px] px-1.5 py-0.5 rounded-full bg-blue-100 text-blue-600 font-medium whitespace-nowrap`,children:`실행 중`});let i=t!==null&&n!==null&&t!==n,a=t!==null&&n===null;return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`span`,{className:`text-xs text-sand-500`,children:i?`${t} → ${n}`:n??t??`—`}),a&&(0,h.jsx)(`span`,{className:`ml-1 text-[9px] text-sand-400`,children:`요청`}),(r??0)>0&&(0,h.jsxs)(`span`,{className:`ml-1 text-[9px] text-caution-500`,children:[`×`,r]})]})}function w(e){return e<=0?`—`:e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}var T=[{label:`ID`,align:`left`,width:`w-12`,sortKey:`id`},{label:`Date`,align:`left`,width:`w-20`,sortKey:`created_at`},{label:`Project`,align:`left`,width:`w-20`},{label:`Token`,align:`left`,width:`w-24`},{label:`Model`,align:`left`,width:`w-20`},{label:`Fmt`,align:`left`,width:`w-12`},{label:`TTFT`,align:`right`,width:`w-16`,sortKey:`ttft_ms`},{label:`Duration`,align:`right`,width:`w-20`,sortKey:`duration_ms`},{label:`In`,align:`right`,width:`w-16`,sortKey:`input_tokens`},{label:`Out`,align:`right`,width:`w-20`,sortKey:`output_tokens`},{label:`C.Read`,align:`right`,width:`w-20`,sortKey:`cache_read_tokens`},{label:`C.Write`,align:`right`,width:`w-20`,sortKey:`cache_creation_tokens`},{label:`Hit`,align:`right`,width:`w-14`},{label:`Tools`,align:`right`,width:`w-14`},{label:`Cost`,align:`right`,width:`w-20`,sortKey:`cost_usd`}];function E({search:n,onSearchChange:r}){let i=t(),a=n.page??1,o=n.token??``,l=n.project??``,d=n.model??``,{data:E}=c.useTokens(`A`),D=(E?.rows??[]).map(e=>e.name).filter(Boolean),{data:O}=s.useProjectNames(),k=O?.names??[],{data:A}=s.useModelNames(),j=A?.names??[],M=l===y?{project_name_is_null:!0}:l?{project_name:l}:{},N={...o?{token_name:o}:{},...M,...d?{model_name:d}:{},...n.broken?{response_json_broken:!0}:{}},P=n.sort??`id-desc`,F=P.lastIndexOf(`-`),I=P.slice(0,F),L=P.slice(F+1)===`asc`?`asc`:`desc`,{data:R,isLoading:z}=u.useRequestLogs(`P`,{num:v,page:a,orderBy:P,...N}),{data:B}=s.useTotalCost({num:0,page:1,...N}),V=R?.rows??[],H=R?.total??0,U=Math.ceil(H/v),W=e=>{r({...n,...e,page:1})};return(0,h.jsxs)(`div`,{className:`panel overflow-hidden`,children:[(0,h.jsxs)(`div`,{className:`panel-header flex items-center gap-2 px-3 py-2.5 flex-wrap sm:gap-3 sm:px-5`,children:[(0,h.jsxs)(`select`,{value:o,onChange:e=>W({token:e.target.value||void 0}),disabled:D.length===0,className:`border border-sand-200/80 rounded-lg px-2.5 py-1.5 text-[11px] text-sand-700 bg-sand-50/50 focus:outline-none focus:border-sienna-300 disabled:text-sand-300 disabled:cursor-not-allowed`,children:[(0,h.jsx)(`option`,{value:``,children:D.length>0?`All Tokens`:`Tokens —`}),D.map(e=>(0,h.jsx)(`option`,{value:e,children:e},e))]}),(0,h.jsxs)(`select`,{value:l,onChange:e=>W({project:e.target.value||void 0}),className:`border border-sand-200/80 rounded-lg px-2.5 py-1.5 text-[11px] text-sand-700 bg-sand-50/50 focus:outline-none focus:border-sienna-300`,children:[(0,h.jsx)(`option`,{value:``,children:`All Projects`}),(0,h.jsx)(`option`,{value:y,children:`(unassigned)`}),k.map(e=>(0,h.jsx)(`option`,{value:e,children:e},e))]}),(0,h.jsxs)(`select`,{value:d,onChange:e=>W({model:e.target.value||void 0}),disabled:j.length===0,className:`border border-sand-200/80 rounded-lg px-2.5 py-1.5 text-[11px] text-sand-700 bg-sand-50/50 focus:outline-none focus:border-sienna-300 disabled:text-sand-300 disabled:cursor-not-allowed`,children:[(0,h.jsx)(`option`,{value:``,children:j.length>0?`All Models`:`Models —`}),j.map(e=>(0,h.jsx)(`option`,{value:e,children:e},e))]}),(0,h.jsxs)(`label`,{className:`flex cursor-pointer select-none items-center gap-1.5 text-[11px] text-sand-700`,children:[(0,h.jsx)(`input`,{type:`checkbox`,checked:n.broken===!0,onChange:e=>W({broken:e.target.checked?!0:void 0}),className:`size-3.5 cursor-pointer accent-caution-500`}),`Broken JSON`]}),(0,h.jsx)(`div`,{className:`flex-1`}),(0,h.jsxs)(`span`,{className:`text-[11px] text-sand-400`,children:[H,` results`]}),(0,h.jsx)(`span`,{className:`text-[11px] tabular-nums font-medium text-sienna-600`,children:p(B?.usd??0)})]}),z?(0,h.jsx)(`div`,{className:`space-y-2`,children:Array.from({length:5}).map((e,t)=>(0,h.jsx)(`div`,{className:`h-8 bg-sand-100 rounded animate-pulse`},`skel-${t}`))}):V.length===0?(0,h.jsx)(`div`,{className:`text-sand-400 text-center py-12 text-sm`,children:`No requests yet.`}):(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{className:`overflow-x-auto px-3 py-3 sm:px-5`,children:(0,h.jsxs)(`table`,{className:`w-full min-w-[900px] text-[13px]`,children:[(0,h.jsx)(`thead`,{children:(0,h.jsxs)(`tr`,{className:`border-b border-sand-100/60`,children:[T.map(e=>{let t=e.label===`Duration`?`pl-5 pr-3`:e.width?`px-4`:`px-3`,n=e.sortKey===I;return(0,h.jsx)(`th`,{className:`${e.align===`right`?`text-right`:`text-left`} ${e.width??``} ${e.width?`whitespace-nowrap`:``} ${t} py-1.5 text-[10px] uppercase font-medium ${n?`text-sienna-600`:`text-sand-400`}`,children:e.sortKey?(0,h.jsxs)(`button`,{type:`button`,onClick:()=>W({sort:`${e.sortKey}-${n&&L===`desc`?`asc`:`desc`}`}),className:`inline-flex items-center gap-0.5 text-[10px] uppercase font-medium hover:text-sienna-500 transition-colors duration-150 ${e.align===`right`?`justify-end w-full`:``}`,children:[e.label,(0,h.jsx)(`span`,{className:n?``:`text-sand-300`,children:n?L===`desc`?`↓`:`↑`:`↕`})]}):e.label},e.label)}),(0,h.jsx)(`th`,{className:`w-8`})]})}),(0,h.jsx)(`tbody`,{className:`divide-y divide-sand-100/60`,children:V.map(t=>(0,h.jsxs)(`tr`,{className:`transition-colors duration-150 hover:bg-sand-100/60 cursor-pointer`,onClick:e=>{if(e.metaKey||e.ctrlKey){window.open(`/requests/show?id=${t.id}`,`_blank`);return}i({to:`/requests/show`,search:{id:t.id}})},children:[(0,h.jsx)(`td`,{className:`px-4 py-1.5 whitespace-nowrap`,children:(0,h.jsx)(e,{to:`/requests/show`,search:{id:t.id},onClick:e=>e.stopPropagation(),className:`text-xs text-sand-500 tabular-nums hover:text-sienna-500`,children:t.id})}),(0,h.jsx)(`td`,{className:`px-4 py-1.5 whitespace-nowrap`,children:(0,h.jsx)(`span`,{className:`text-xs text-sand-400 tabular-nums`,children:b(t.created_at)})}),(0,h.jsx)(`td`,{className:`px-4 py-1.5 whitespace-nowrap`,children:(0,h.jsx)(`span`,{className:`text-xs text-sand-600`,children:t.project_name??`—`})}),(0,h.jsx)(`td`,{className:`px-4 py-1.5 whitespace-nowrap`,children:(0,h.jsx)(`span`,{className:`text-xs text-sand-500`,children:t.token_name})}),(0,h.jsxs)(`td`,{className:`px-4 py-1.5 whitespace-nowrap`,children:[(0,h.jsx)(C,{status:t.status,requestedModel:t.requested_model_name,servedModel:t.model_name,fallbackCount:t.fallback_count}),t.response_json_ok===!1&&(0,h.jsx)(`span`,{title:`structured 요청의 응답이 JSON 파싱에 실패했습니다`,className:`ml-1.5 rounded-full bg-caution-400/15 px-1.5 py-0.5 text-[9px] font-semibold text-caution-500`,children:`broken`})]}),(0,h.jsx)(`td`,{className:`px-4 py-1.5 whitespace-nowrap`,children:t.is_structured?(0,h.jsx)(`span`,{className:`rounded bg-sienna-100 px-1.5 py-0.5 font-mono text-[10px] text-sienna-700`,children:`json`}):(0,h.jsx)(`span`,{className:`font-mono text-[10px] text-sand-400`,children:`text`})}),(0,h.jsx)(`td`,{className:`px-4 py-1.5 text-right tabular-nums text-sand-500 whitespace-nowrap`,children:w(t.ttft_ms)}),(0,h.jsx)(`td`,{className:`pl-5 pr-3 py-1.5 text-right tabular-nums text-sand-500 whitespace-nowrap`,children:S(t.duration_ms)}),(0,h.jsx)(`td`,{className:`px-3 py-1.5 text-right tabular-nums text-sand-700`,children:x(t.input_tokens)}),(0,h.jsx)(`td`,{className:`px-3 py-1.5 text-right tabular-nums text-sand-700`,children:x(t.output_tokens)}),(0,h.jsx)(`td`,{className:`px-3 py-1.5 text-right tabular-nums text-sand-700`,children:x(t.cache_read_tokens)}),(0,h.jsx)(`td`,{className:`px-3 py-1.5 text-right tabular-nums text-sand-700`,children:x(t.cache_creation_tokens)}),(0,h.jsx)(`td`,{className:`px-3 py-1.5 text-right tabular-nums text-sand-700`,children:m(t)}),(0,h.jsx)(`td`,{className:`px-3 py-1.5 text-right tabular-nums text-sand-500`,children:t.tool_call_count>0?t.tool_call_count:`—`}),(0,h.jsx)(`td`,{className:`px-3 py-1.5 text-right tabular-nums text-sand-700`,children:t.image_cost_usd===null?t.cost_usd===null?`—`:f(t.cost_usd):f((t.cost_usd??0)+t.image_cost_usd)}),(0,h.jsx)(`td`,{className:`px-2 py-1.5`,children:(0,h.jsx)(_,{className:`size-4 text-sand-400`})})]},t.id))})]})}),U>1&&(0,h.jsxs)(`div`,{className:`flex items-center justify-center gap-3 px-5 py-2.5 border-t border-sand-100/60`,children:[(0,h.jsx)(`button`,{type:`button`,className:`p-1 rounded text-sand-400 hover:text-sand-600 disabled:opacity-30 transition-colors`,disabled:a===1,onClick:()=>r({...n,page:a-1}),children:(0,h.jsx)(g,{className:`size-4`})}),(0,h.jsxs)(`span`,{className:`text-[11px] text-sand-400 tabular-nums`,children:[a,` / `,U]}),(0,h.jsx)(`button`,{type:`button`,className:`p-1 rounded text-sand-400 hover:text-sand-600 disabled:opacity-30 transition-colors`,disabled:a===U,onClick:()=>r({...n,page:a+1}),children:(0,h.jsx)(_,{className:`size-4`})})]})]})]})}a({token:i().optional(),project:i().optional(),model:i().optional(),sort:i().optional(),broken:l().optional(),page:o().optional().default(1)});function D(){let e=d.useSearch(),t=d.useNavigate();return(0,h.jsx)(`div`,{className:`max-w-[100rem] mx-auto`,children:(0,h.jsx)(E,{search:e,onSearchChange:e=>t({search:e})})})}export{D as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{_ as t,y as n}from"./vendor-tanstack-DJRQAbrY.js";import{i as r,r as i}from"./vendor-react-DH4kUfK2.js";import{_ as a,a as o,c as s,n as c}from"./services.generated-CSW8bhCP.js";import{s as l}from"./index-QxWJK2qE.js";import{t as u}from"./plus-DqBd6gHk.js";var d=e(r()),f=i(),p=e=>(0,f.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,f.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,children:[(0,f.jsx)(`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0`}),(0,f.jsx)(`circle`,{cx:12,cy:12,r:3})]})}),m=e=>(0,f.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,f.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,children:[(0,f.jsx)(`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575a1 1 0 0 1 0 .696a10.8 10.8 0 0 1-1.444 2.49m-6.41-.679a3 3 0 0 1-4.242-4.242`}),(0,f.jsx)(`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 4.446-5.143M2 2l20 20`})]})}),h=e=>(0,f.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,f.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M5 12h14`})}),g={slack:`Slack 알림`,slackConnection:`Slack 연결`},_=180*1e3;function v(e){return e?e.length<=12?`•`.repeat(e.length):`${e.slice(0,8)}${`•`.repeat(12)}${e.slice(-4)}`:``}function y({value:e,min:t,max:n,step:r,disabled:i,onChange:a}){let o=Number(e),s=Number.isFinite(o),c=t??-1/0,l=n??1/0,d=e=>{let n=Math.min(Math.max((s?o:t??0)+e,c),l);a(String(Number(n.toFixed(2))))};return(0,f.jsxs)(`div`,{className:`inline-flex items-center rounded-lg border border-sand-200/80 bg-white overflow-hidden`,children:[(0,f.jsx)(`button`,{type:`button`,"aria-label":`감소`,onClick:()=>d(-r),disabled:i||s&&o<=c,className:`size-7 grid place-items-center text-sand-500 hover:bg-sand-100 disabled:opacity-30 disabled:hover:bg-transparent transition-colors duration-150`,children:(0,f.jsx)(h,{className:`size-3`})}),(0,f.jsx)(`input`,{value:e,onChange:e=>a(e.target.value),disabled:i,inputMode:`decimal`,className:`w-12 text-center text-[12px] tabular-nums text-sand-800 bg-transparent border-x border-sand-200/80 py-1 focus:outline-none focus:bg-sand-50`}),(0,f.jsx)(`button`,{type:`button`,"aria-label":`증가`,onClick:()=>d(r),disabled:i||s&&o>=l,className:`size-7 grid place-items-center text-sand-500 hover:bg-sand-100 disabled:opacity-30 disabled:hover:bg-transparent transition-colors duration-150`,children:(0,f.jsx)(u,{className:`size-3`})})]})}function b({value:e,presets:t,disabled:n,onChange:r}){let i=Number(e);return(0,f.jsx)(`div`,{className:`segmented-control inline-flex`,children:t.map(e=>(0,f.jsx)(`button`,{type:`button`,disabled:n,"data-active":i===e,onClick:()=>r(String(e)),className:`rounded-[6px] px-2.5 py-1 text-[11px] font-medium tabular-nums text-sand-500 transition-colors hover:text-sand-800 disabled:opacity-50 data-[active=true]:text-sand-900`,children:e>=60?`${e/60}시간`:`${e}분`},e))})}function x({source:e}){return(0,f.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded ${e===`db`?`bg-sienna-50 text-sienna-600`:`bg-sand-100 text-sand-500`}`,children:e===`db`?`저장값`:e===`env`?`환경변수`:`기본값`})}function S({on:e,disabled:t,onChange:n}){return(0,f.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e,disabled:t,onClick:()=>n(!e),className:`relative inline-flex h-5 w-9 shrink-0 items-center rounded-full transition-colors duration-200 disabled:opacity-50 ${e?`bg-sage-400`:`bg-sand-300`}`,children:(0,f.jsx)(`span`,{className:`inline-block h-3.5 w-3.5 rounded-full bg-white transition-transform duration-200 ${e?`translate-x-4.5`:`translate-x-0.5`}`})})}function C({item:e}){let[t,r]=(0,d.useState)(null),[i,a]=(0,d.useState)(!1),[s,c]=(0,d.useState)(null),u=n(),h=o.useUpdateSettingMutation(),g=o.useResetSettingMutation(),_=h.isPending||g.isPending,C=t??e.value,w=t!==null&&t!==e.value,T=()=>u.invalidateQueries({queryKey:o.getSettingListQueryOptions().queryKey}),E=async t=>{c(null);try{await h.mutateAsync({key:e.key,value:t}),await T(),r(null)}catch(e){c(e.message)}},D=async()=>{c(null);try{await g.mutateAsync({key:e.key}),await T(),r(null)}catch(e){c(e.message)}},O=e.kind===`secret`;return(0,f.jsxs)(`div`,{className:`px-4 py-3 sm:px-5`,children:[(0,f.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,f.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,f.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,f.jsx)(`span`,{className:`text-[13px] text-sand-800`,children:e.label}),(0,f.jsx)(x,{source:e.source}),e.applies===`restart`&&(0,f.jsx)(`span`,{className:`text-[10px] text-caution-500`,title:`저장해도 다음 재시작부터 반영됩니다`,children:`재시작 필요`})]}),e.help&&(0,f.jsx)(`p`,{className:`mt-0.5 text-[11px] text-sand-500`,children:e.help})]}),(0,f.jsxs)(`div`,{className:`flex items-center gap-1.5 shrink-0`,children:[e.kind===`boolean`&&(0,f.jsx)(S,{on:C===`true`,disabled:_,onChange:e=>void E(String(e))}),e.kind===`preset`&&(0,f.jsx)(b,{value:C,presets:e.presets,disabled:_,onChange:e=>void E(e)}),(e.kind===`integer`||e.kind===`number`)&&(0,f.jsx)(y,{value:C,min:e.min,max:e.max,step:e.kind===`integer`?1:.5,disabled:_,onChange:r}),(e.kind===`string`||O)&&(0,f.jsxs)(`div`,{className:`relative`,children:[(0,f.jsx)(`input`,{value:O&&!i?v(C):C,onChange:e=>r(e.target.value),onFocus:()=>O&&a(!0),disabled:_,className:`w-48 sm:w-64 rounded-lg border border-sand-200/80 bg-white py-1.5 pl-2.5 text-[12px] text-sand-800 focus:outline-none focus:border-sienna-300 ${O?`pr-8 font-mono`:`pr-2.5`}`}),O&&(0,f.jsx)(`button`,{type:`button`,"aria-label":i?`값 숨기기`:`값 보기`,onClick:()=>a(e=>!e),className:`absolute right-1.5 top-1/2 -translate-y-1/2 size-6 grid place-items-center text-sand-400 hover:text-sand-600 transition-colors duration-150`,children:i?(0,f.jsx)(m,{className:`size-3.5`}):(0,f.jsx)(p,{className:`size-3.5`})})]}),w&&(0,f.jsx)(`button`,{type:`button`,onClick:()=>void E(C),disabled:_,className:`px-2.5 py-1.5 text-[11px] font-medium rounded-lg bg-sienna-400 text-white hover:bg-sienna-500 disabled:opacity-50 transition-colors duration-150`,children:h.isPending?`저장 중`:`저장`}),!w&&e.source===`db`&&(0,f.jsx)(`button`,{type:`button`,title:`저장값을 지웁니다 — 환경변수 또는 기본값으로 돌아갑니다`,onClick:()=>void D(),disabled:_,className:`size-7 grid place-items-center rounded-lg text-sand-400 hover:text-sand-600 hover:bg-sand-100 disabled:opacity-50 transition-colors duration-150`,children:(0,f.jsx)(l,{className:`size-3.5`})})]})]}),s&&(0,f.jsx)(`p`,{className:`mt-1.5 text-[11px] text-red-500`,children:s})]})}function w(){let[e,t]=(0,d.useState)(null),n=o.useTriggerExpiryReminderMutation(),r=async()=>{t(null);try{let{sent:e}=await n.mutateAsync();t(e===0?`재로그인이 필요한 토큰이 없습니다`:`${e}건 발송`)}catch(e){t(e.message)}};return(0,f.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e&&(0,f.jsx)(`span`,{className:`text-[11px] text-sand-500`,children:e}),(0,f.jsx)(`button`,{type:`button`,onClick:()=>void r(),disabled:n.isPending,className:`px-2 py-1 text-[11px] rounded-lg border border-sand-200/80 text-sand-600 hover:bg-sand-100 disabled:opacity-50 transition-colors duration-150`,children:n.isPending?`보내는 중`:`지금 보내기`})]})}function T({supervisor:e}){let[r,i]=(0,d.useState)(!1),[l,u]=(0,d.useState)(!1),[p,m]=(0,d.useState)(null),[h,g]=(0,d.useState)(!1),[v,y]=(0,d.useState)(!1),[b,x]=(0,d.useState)(null),S=(0,d.useRef)(!1),C=(0,d.useRef)(0),w=n(),T=o.useRestartServerMutation(),E=T.reset,D=t({...c.healthQueryOptions(),enabled:l&&!v,refetchInterval:l&&!v?1e3:!1,refetchIntervalInBackground:!0,retry:!1});(0,d.useEffect)(()=>{if(!l||p===null||v)return;let e=Math.max(0,_-(Date.now()-p)),t=window.setTimeout(()=>{C.current+=1,E(),i(!1),u(!1),m(null),g(!1),x(`재시작 후 3분 안에 서버 준비를 확인하지 못했습니다. 상태를 확인한 뒤 다시 시도하세요.`)},e);return()=>window.clearTimeout(t)},[v,E,l,p]),(0,d.useEffect)(()=>{if(!l||p===null)return;let e=D.isError&&D.errorUpdatedAt>=p,t=D.isSuccess&&D.dataUpdatedAt>=p;if(e||t&&!D.data.ready){g(!0);return}!h||!t||!D.data.ready||S.current||(S.current=!0,y(!0),w.invalidateQueries({queryKey:o.getSettingListQueryOptions().queryKey}).then(()=>{C.current+=1,E(),i(!1),u(!1),m(null),g(!1)}).catch(e=>{C.current+=1,E(),i(!1),u(!1),m(null),g(!1),x(`서버는 준비됐지만 설정을 새로고침하지 못했습니다: ${e.message}`)}).finally(()=>{S.current=!1,y(!1)}))},[D.dataUpdatedAt,D.data?.ready,D.errorUpdatedAt,D.isError,D.isSuccess,w,E,p,l,h]);let O=async()=>{let e=C.current+1;C.current=e,x(null),g(!1),y(!1),S.current=!1,u(!0),m(Date.now());try{await T.mutateAsync()}catch(t){if(C.current!==e)return;(s(t)?t.code>=400&&t.code<500:a(t)&&t.response!==void 0&&t.response.status>=400&&t.response.status<500)&&(C.current+=1,E(),i(!1),u(!1),m(null),x(t.message||`재시작 요청이 거부되었습니다.`))}},k=()=>{l||(i(!1),x(null))};return(0,f.jsxs)(`div`,{className:`panel overflow-hidden`,children:[(0,f.jsx)(`div`,{className:`panel-header px-4 py-2.5 sm:px-5`,children:(0,f.jsx)(`span`,{className:`text-[13px] font-medium text-sand-700`,children:`서버 제어`})}),(0,f.jsxs)(`div`,{className:`px-4 py-3 sm:px-5 flex items-start justify-between gap-4`,children:[(0,f.jsxs)(`div`,{className:`min-w-0`,children:[(0,f.jsx)(`p`,{className:`text-[13px] text-sand-800`,children:`qgrid 재시작`}),(0,f.jsx)(`p`,{className:`mt-0.5 text-[11px] text-sand-500`,children:e?`재시작 필요 설정을 반영하고 qgrid·Codex·Claude CLI를 확인합니다`:`로컬 실행 환경에서는 재시작할 수 없습니다`})]}),(0,f.jsx)(`button`,{type:`button`,disabled:!e||l||T.isPending,onClick:()=>i(!0),className:`shrink-0 px-2.5 py-1.5 text-[11px] font-medium rounded-lg border border-red-200 text-red-600 hover:bg-red-50 disabled:opacity-40 disabled:hover:bg-transparent transition-colors duration-150`,children:`재시작`})]}),b&&(0,f.jsx)(`p`,{className:`px-4 pb-3 sm:px-5 text-[11px] text-red-500`,children:b}),r&&(0,f.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center pt-[15vh]`,children:[(0,f.jsx)(`div`,{className:`absolute inset-0 bg-sand-900/8 backdrop-blur-sm`,onClick:k,onKeyDown:()=>{}}),(0,f.jsxs)(`div`,{className:`relative panel shadow-xl w-full max-w-sm mx-4`,children:[(0,f.jsx)(`div`,{className:`px-5 py-4 border-b border-sand-100/60`,children:(0,f.jsx)(`h3`,{className:`text-base font-medium text-sand-900`,children:l?T.isPending?`재시작 요청 중`:`서버 재연결 중`:`qgrid 재시작`})}),(0,f.jsxs)(`div`,{className:`px-5 py-4 space-y-2`,children:[(0,f.jsxs)(`p`,{className:`text-[13px] text-sand-700`,children:[`워커가 다시 뜰 때까지 `,(0,f.jsx)(`strong`,{className:`text-sand-900`,children:`1~2분간 요청이 실패`}),`합니다.`]}),(0,f.jsx)(`p`,{className:`text-[12px] text-sand-500`,children:`서버를 종료하면 모니터링 도구가 다시 띄웁니다. 이때 재시작 필요 설정을 반영하고, qgrid와 Codex CLI·Claude Code의 최신 버전을 확인합니다.`}),l&&(0,f.jsx)(`p`,{className:`text-[12px] font-medium text-sienna-600`,children:T.isPending?`종료 요청을 처리하고 있습니다…`:h?`새 서버가 준비될 때까지 연결을 확인하고 있습니다…`:`서버 종료를 기다리고 있습니다…`})]}),(0,f.jsxs)(`div`,{className:`px-5 py-3 border-t border-sand-100/60 flex justify-end gap-2`,children:[!l&&(0,f.jsx)(`button`,{type:`button`,onClick:k,className:`px-3 py-1.5 text-[12px] rounded-lg text-sand-600 hover:bg-sand-100 transition-colors duration-150`,children:`취소`}),(0,f.jsx)(`button`,{type:`button`,disabled:l||T.isPending,onClick:()=>void O(),className:`px-3 py-1.5 text-[12px] font-medium rounded-lg bg-red-500 text-white hover:bg-red-600 disabled:opacity-50 transition-colors duration-150`,children:l?T.isPending?`요청 중`:`재연결 중`:`재시작`})]})]})]})]})}function E(){let e=o.useSettingList(),{data:t,isLoading:n}=e;if(n)return(0,f.jsx)(`div`,{className:`space-y-4`,children:[0,1].map(e=>(0,f.jsxs)(`div`,{className:`panel overflow-hidden`,children:[(0,f.jsx)(`div`,{className:`panel-header px-4 py-2.5 sm:px-5`,children:(0,f.jsx)(`div`,{className:`h-3 w-24 rounded bg-sand-200 animate-pulse`})}),(0,f.jsx)(`div`,{className:`divide-y divide-sand-100/80`,children:[0,1,2].map(e=>(0,f.jsxs)(`div`,{className:`px-4 py-3 sm:px-5 flex items-center justify-between gap-4`,children:[(0,f.jsx)(`div`,{className:`h-3 w-40 rounded bg-sand-100 animate-pulse`}),(0,f.jsx)(`div`,{className:`h-7 w-24 rounded-lg bg-sand-100 animate-pulse`})]},e))})]},e))});if(e.isError&&!t)return(0,f.jsxs)(`div`,{className:`panel px-5 py-6 text-center`,children:[(0,f.jsx)(`p`,{className:`text-[13px] font-medium text-sand-800`,children:`설정을 불러오지 못했습니다`}),(0,f.jsx)(`p`,{className:`mt-1 text-[11px] text-red-500`,children:e.error.message}),(0,f.jsx)(`button`,{type:`button`,onClick:()=>void e.refetch(),disabled:e.isFetching,className:`mt-3 px-3 py-1.5 text-[12px] rounded-lg border border-sand-200 text-sand-600 hover:bg-sand-100 disabled:opacity-50`,children:e.isFetching?`다시 불러오는 중`:`다시 시도`})]});let r=t?.settings??[],i=t?.runtime??[],a=[...new Set(r.map(e=>e.group))];return(0,f.jsxs)(`div`,{className:`space-y-4`,children:[(0,f.jsxs)(`div`,{className:`panel overflow-hidden`,children:[(0,f.jsxs)(`div`,{className:`panel-header flex items-center justify-between px-4 py-2.5 sm:px-5`,children:[(0,f.jsx)(`span`,{className:`text-[13px] font-medium text-sand-700`,children:`환경`}),(0,f.jsx)(`span`,{className:`text-[11px] text-sand-400`,children:`기동 시점 값`})]}),(0,f.jsx)(`dl`,{className:`px-4 py-3 sm:px-5 grid grid-cols-1 sm:grid-cols-2 gap-x-8 gap-y-1.5`,children:i.map(e=>(0,f.jsxs)(`div`,{className:`flex items-baseline justify-between gap-3 min-w-0`,children:[(0,f.jsx)(`dt`,{className:`text-[11px] text-sand-500 shrink-0`,children:e.label}),(0,f.jsx)(`dd`,{className:`text-[12px] font-mono text-sand-700 truncate`,children:e.value})]},e.label))})]}),a.map(e=>{let t=r.filter(t=>t.group===e);return(0,f.jsxs)(`div`,{className:`panel overflow-hidden`,children:[(0,f.jsxs)(`div`,{className:`panel-header flex items-center justify-between px-4 py-2.5 sm:px-5`,children:[(0,f.jsx)(`span`,{className:`text-[13px] font-medium text-sand-700`,children:g[e]??e}),e===`slack`&&(0,f.jsx)(w,{})]}),(0,f.jsx)(`div`,{className:`divide-y divide-sand-100/80`,children:t.map(e=>(0,f.jsx)(C,{item:e},e.key))})]},e)}),(0,f.jsx)(T,{supervisor:t?.supervisor??null})]})}function D(){return(0,f.jsx)(`div`,{className:`max-w-4xl mx-auto`,children:(0,f.jsx)(E,{})})}export{D as component};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{l as t}from"./vendor-tanstack-DJRQAbrY.js";import{i as n,r}from"./vendor-react-DH4kUfK2.js";import{i,r as a}from"./services.generated-CSW8bhCP.js";import{c as o,l as s,o as c,t as l}from"./index-QxWJK2qE.js";import{n as u,t as d}from"./cost-CpjVoAqp.js";function f(){return f=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f.apply(null,arguments)}function p(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var m=e(n()),h=r(),g={},_=(0,m.createContext)(g),v=(e,t)=>f({},e,t),y=()=>(0,m.useContext)(_),b=(0,m.createContext)(()=>{});b.displayName=`JVR.DispatchShowTools`;function x(){return(0,m.useReducer)(v,g)}function S(){return(0,m.useContext)(b)}var C=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,h.jsx)(_.Provider,{value:t,children:(0,h.jsx)(b.Provider,{value:n,children:r})})};C.displayName=`JVR.ShowTools`;var w={},T=(0,m.createContext)(w),E=(e,t)=>f({},e,t),D=()=>(0,m.useContext)(T),O=(0,m.createContext)(()=>{});O.displayName=`JVR.DispatchExpands`;function ee(){return(0,m.useReducer)(E,w)}function te(){return(0,m.useContext)(O)}var ne=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,h.jsx)(T.Provider,{value:t,children:(0,h.jsx)(O.Provider,{value:n,children:r})})};ne.displayName=`JVR.Expands`;var re={Str:{as:`span`,"data-type":`string`,style:{color:`var(--w-rjv-type-string-color, #cb4b16)`},className:`w-rjv-type`,children:`string`},Url:{as:`a`,style:{color:`var(--w-rjv-type-url-color, #0969da)`},"data-type":`url`,className:`w-rjv-type`,children:`url`},Undefined:{style:{color:`var(--w-rjv-type-undefined-color, #586e75)`},as:`span`,"data-type":`undefined`,className:`w-rjv-type`,children:`undefined`},Null:{style:{color:`var(--w-rjv-type-null-color, #d33682)`},as:`span`,"data-type":`null`,className:`w-rjv-type`,children:`null`},Map:{style:{color:`var(--w-rjv-type-map-color, #268bd2)`,marginRight:3},as:`span`,"data-type":`map`,className:`w-rjv-type`,children:`Map`},Nan:{style:{color:`var(--w-rjv-type-nan-color, #859900)`},as:`span`,"data-type":`nan`,className:`w-rjv-type`,children:`NaN`},Bigint:{style:{color:`var(--w-rjv-type-bigint-color, #268bd2)`},as:`span`,"data-type":`bigint`,className:`w-rjv-type`,children:`bigint`},Int:{style:{color:`var(--w-rjv-type-int-color, #268bd2)`},as:`span`,"data-type":`int`,className:`w-rjv-type`,children:`int`},Set:{style:{color:`var(--w-rjv-type-set-color, #268bd2)`,marginRight:3},as:`span`,"data-type":`set`,className:`w-rjv-type`,children:`Set`},Float:{style:{color:`var(--w-rjv-type-float-color, #859900)`},as:`span`,"data-type":`float`,className:`w-rjv-type`,children:`float`},True:{style:{color:`var(--w-rjv-type-boolean-color, #2aa198)`},as:`span`,"data-type":`bool`,className:`w-rjv-type`,children:`bool`},False:{style:{color:`var(--w-rjv-type-boolean-color, #2aa198)`},as:`span`,"data-type":`bool`,className:`w-rjv-type`,children:`bool`},Date:{style:{color:`var(--w-rjv-type-date-color, #268bd2)`},as:`span`,"data-type":`date`,className:`w-rjv-type`,children:`date`}},ie=(0,m.createContext)(re),ae=(e,t)=>f({},e,t),k=()=>(0,m.useContext)(ie),oe=(0,m.createContext)(()=>{});oe.displayName=`JVR.DispatchTypes`;function se(){return(0,m.useReducer)(ae,re)}function ce(){return(0,m.useContext)(oe)}function le(e){var{initial:t,dispatch:n,children:r}=e;return(0,h.jsx)(ie.Provider,{value:t,children:(0,h.jsx)(oe.Provider,{value:n,children:r})})}le.displayName=`JVR.Types`;var ue=[`style`];function de(e){var{style:t}=e,n=p(e,ue);return(0,h.jsx)(`svg`,f({viewBox:`0 0 24 24`,fill:`var(--w-rjv-arrow-color, currentColor)`,style:f({cursor:`pointer`,height:`1em`,width:`1em`,userSelect:`none`,display:`inline-flex`},t)},n,{children:(0,h.jsx)(`path`,{d:`M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z`})}))}de.displayName=`JVR.TriangleArrow`;var fe={Arrow:{as:`span`,className:`w-rjv-arrow`,style:{transform:`rotate(0deg)`,transition:`all 0.3s`},children:(0,h.jsx)(de,{})},Colon:{as:`span`,style:{color:`var(--w-rjv-colon-color, var(--w-rjv-color))`,marginLeft:0,marginRight:2},className:`w-rjv-colon`,children:`:`},Quote:{as:`span`,style:{color:`var(--w-rjv-quotes-color, #236a7c)`},className:`w-rjv-quotes`,children:`"`},ValueQuote:{as:`span`,style:{color:`var(--w-rjv-quotes-string-color, #cb4b16)`},className:`w-rjv-quotes`,children:`"`},BracketsLeft:{as:`span`,style:{color:`var(--w-rjv-brackets-color, #236a7c)`},className:`w-rjv-brackets-start`,children:`[`},BracketsRight:{as:`span`,style:{color:`var(--w-rjv-brackets-color, #236a7c)`},className:`w-rjv-brackets-end`,children:`]`},BraceLeft:{as:`span`,style:{color:`var(--w-rjv-curlybraces-color, #236a7c)`},className:`w-rjv-curlybraces-start`,children:`{`},BraceRight:{as:`span`,style:{color:`var(--w-rjv-curlybraces-color, #236a7c)`},className:`w-rjv-curlybraces-end`,children:`}`}},pe=(0,m.createContext)(fe),me=(e,t)=>f({},e,t),A=()=>(0,m.useContext)(pe),j=(0,m.createContext)(()=>{});j.displayName=`JVR.DispatchSymbols`;function he(){return(0,m.useReducer)(me,fe)}function ge(){return(0,m.useContext)(j)}var _e=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,h.jsx)(pe.Provider,{value:t,children:(0,h.jsx)(j.Provider,{value:n,children:r})})};_e.displayName=`JVR.Symbols`;var ve={Copied:{className:`w-rjv-copied`,style:{height:`1em`,width:`1em`,cursor:`pointer`,verticalAlign:`middle`,marginLeft:5}},CountInfo:{as:`span`,className:`w-rjv-object-size`,style:{color:`var(--w-rjv-info-color, #0000004d)`,paddingLeft:8,fontStyle:`italic`}},CountInfoExtra:{as:`span`,className:`w-rjv-object-extra`,style:{paddingLeft:8}},Ellipsis:{as:`span`,style:{cursor:`pointer`,color:`var(--w-rjv-ellipsis-color, #cb4b16)`,userSelect:`none`},className:`w-rjv-ellipsis`,children:`...`},Row:{as:`div`,className:`w-rjv-line`},KeyName:{as:`span`,className:`w-rjv-object-key`}},ye=(0,m.createContext)(ve),be=(e,t)=>f({},e,t),M=()=>(0,m.useContext)(ye),N=(0,m.createContext)(()=>{});N.displayName=`JVR.DispatchSection`;function xe(){return(0,m.useReducer)(be,ve)}function Se(){return(0,m.useContext)(N)}var Ce=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,h.jsx)(ye.Provider,{value:t,children:(0,h.jsx)(N.Provider,{value:n,children:r})})};Ce.displayName=`JVR.Section`;var we={objectSortKeys:!1,indentWidth:15},P=(0,m.createContext)(we);P.displayName=`JVR.Context`;var Te=(0,m.createContext)(()=>{});Te.displayName=`JVR.DispatchContext`;function Ee(e,t){return f({},e,t)}var F=()=>(0,m.useContext)(P),De=e=>{var{children:t,initialState:n,initialTypes:r}=e,[i,a]=(0,m.useReducer)(Ee,Object.assign({},we,n)),[o,s]=x(),[c,l]=ee(),[u,d]=se(),[p,g]=he(),[_,v]=xe();return(0,m.useEffect)(()=>a(f({},n)),[n]),(0,h.jsx)(P.Provider,{value:i,children:(0,h.jsx)(Te.Provider,{value:a,children:(0,h.jsx)(C,{initial:o,dispatch:s,children:(0,h.jsx)(ne,{initial:c,dispatch:l,children:(0,h.jsx)(le,{initial:f({},u,r),dispatch:d,children:(0,h.jsx)(_e,{initial:p,dispatch:g,children:(0,h.jsx)(Ce,{initial:_,dispatch:v,children:t})})})})})})})};De.displayName=`JVR.Provider`;function Oe(e){if(e==null)throw TypeError(`Cannot destructure `+e)}var ke=[`isNumber`,`value`,`parentValue`,`keyName`,`keys`],Ae=[`as`,`render`],je=[`as`,`render`],Me=[`as`,`render`],Ne=[`as`,`style`,`render`],Pe=[`as`,`render`],Fe=[`as`,`render`],Ie=[`as`,`render`],Le=[`as`,`render`],I=e=>{var{Quote:t={}}=A(),{isNumber:n,value:r,parentValue:i,keyName:a,keys:o}=e,s=p(e,ke);if(n)return null;var{as:c,render:l}=t,u=p(t,Ae),d=c||`span`,m=f({},s,u);return typeof m.children==`string`&&(m.children=m.children.trim()||void 0),l&&typeof l==`function`&&l(m,{value:r,parentValue:i,keyName:a,keys:o||(a?[a]:[])})||(0,h.jsx)(d,f({},m))};I.displayName=`JVR.Quote`;var L=e=>{var{ValueQuote:t={}}=A(),n=f({},(Oe(e),e)),{as:r,render:i}=t,a=p(t,je),o=r||`span`,s=f({},n,a);return i&&typeof i==`function`&&i(s,{})||(0,h.jsx)(o,f({},s))};L.displayName=`JVR.ValueQuote`;var Re=e=>{var{value:t,parentValue:n,keyName:r,keys:i}=e,{Colon:a={}}=A(),{as:o,render:s}=a,c=p(a,Me),l=o||`span`;return s&&typeof s==`function`&&s(c,{value:t,parentValue:n,keyName:r,keys:i||(r?[r]:[])})||(0,h.jsx)(l,f({},c))};Re.displayName=`JVR.Colon`;var ze=e=>{var{Arrow:t={}}=A(),n=D(),{expandKey:r,style:i,value:a,parentValue:o,keyName:s,keys:c}=e,l=!!n[r],{as:u,style:d,render:m}=t,g=p(t,Ne),_=u||`span`,v=m&&typeof m==`function`,y=f({},g,{"data-expanded":l,style:f({},d,i)});return v&&m(y,{value:a,parentValue:o,keyName:s,keys:c||(s?[s]:[])})||(0,h.jsx)(_,f({},g,{style:f({},d,i)}))};ze.displayName=`JVR.Arrow`;var Be=e=>{var{isBrackets:t,value:n,parentValue:r,keyName:i,keys:a}=e,{BracketsLeft:o={},BraceLeft:s={}}=A(),c={value:n,parentValue:r,keyName:i,keys:a||(i?[i]:[])};if(t){var{as:l,render:u}=o,d=p(o,Pe),m=l||`span`;return u&&typeof u==`function`&&u(d,c)||(0,h.jsx)(m,f({},d))}var{as:g,render:_}=s,v=p(s,Fe),y=g||`span`;return _&&typeof _==`function`&&_(v,c)||(0,h.jsx)(y,f({},v))};Be.displayName=`JVR.BracketsOpen`;var R=e=>{var{isBrackets:t,isVisiable:n,value:r,parentValue:i,keyName:a,keys:o}=e,s={value:r,parentValue:i,keyName:a,keys:o||(a?[a]:[])};if(!n)return null;var{BracketsRight:c={},BraceRight:l={}}=A();if(t){var{as:u,render:d}=c,m=p(c,Ie),g=u||`span`;return d&&typeof d==`function`&&d(m,s)||(0,h.jsx)(g,f({},m))}var{as:_,render:v}=l,y=p(l,Le),b=_||`span`;return v&&typeof v==`function`&&v(y,s)||(0,h.jsx)(b,f({},y))};R.displayName=`JVR.BracketsClose`;var Ve=e=>{var{keyName:t,value:n,expandKey:r,parentValue:i,level:a,keys:o=[]}=e,s=D(),{collapsed:c,shouldExpandNodeInitially:l}=F(),u=typeof c==`boolean`?c:typeof c==`number`?a>c:!1,d=s[r]??(l?!1:u),p=l&&l(!d,{value:n,keys:o,level:a,keyName:t,parentValue:i});if(l&&c===!1){if(s[r]===void 0&&!p)return null}else if(s[r]===void 0&&p)return null;var m=Object.keys(n).length;if(d||m===0)return null;var g={paddingLeft:4},_={keyName:t,value:n,keys:o,parentValue:i},v=Array.isArray(n),y=n instanceof Set;return(0,h.jsx)(`div`,{style:g,children:(0,h.jsx)(R,f({isBrackets:v||y},_,{isVisiable:!0}))})};Ve.displayName=`JVR.NestedClose`;var He=[`as`,`render`],Ue=[`as`,`render`],We=[`as`,`render`],Ge=[`as`,`render`],Ke=[`as`,`render`],qe=[`as`,`render`],Je=[`as`,`render`],Ye=[`as`,`render`],Xe=[`as`,`render`],Ze=[`as`,`render`],Qe=[`as`,`render`],$e=[`as`,`render`],et=[`as`,`render`],z=e=>{if(e===void 0)return`0n`;if(typeof e==`string`)try{e=BigInt(e)}catch{return`0n`}return e?e.toString()+`n`:`0n`},tt=e=>{var{value:t,keyName:n}=e,{Set:r={},displayDataTypes:i}=k();if(!(t instanceof Set)||!i)return null;var{as:a,render:o}=r,s=p(r,He);return o&&typeof o==`function`&&o(s,{type:`type`,value:t,keyName:n})||(0,h.jsx)(a||`span`,f({},s))};tt.displayName=`JVR.SetComp`;var nt=e=>{var{value:t,keyName:n}=e,{Map:r={},displayDataTypes:i}=k();if(!(t instanceof Map)||!i)return null;var{as:a,render:o}=r,s=p(r,Ue);return o&&typeof o==`function`&&o(s,{type:`type`,value:t,keyName:n})||(0,h.jsx)(a||`span`,f({},s))};nt.displayName=`JVR.MapComp`;var B={opacity:.75,paddingRight:4},rt=e=>{var{children:t=``,keyName:n,keys:r}=e,{Str:i={},displayDataTypes:a}=k(),{shortenTextAfterLength:o=30,stringEllipsis:s=`...`}=F(),{as:c,render:l}=i,u=p(i,We),d=t,[g,_]=(0,m.useState)(o&&d.length>o);(0,m.useEffect)(()=>_(o&&d.length>o),[o]);var v=c||`span`,y=f({},B,i.style||{});o>0&&(u.style=f({},u.style,{cursor:d.length<=o?`initial`:`pointer`}),d.length>o&&(u.onClick=()=>{_(!g)}));var b=g?``+d.slice(0,o)+s:d,x=l&&typeof l==`function`,S=x&&l(f({},u,{style:y}),{type:`type`,value:t,keyName:n,keys:r}),C=g?`w-rjv-value w-rjv-value-short`:`w-rjv-value`,w=x&&l(f({},u,{children:b,className:C}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(S||(0,h.jsx)(v,f({},u,{style:y}))),w||(0,h.jsxs)(m.Fragment,{children:[(0,h.jsx)(L,{}),(0,h.jsx)(v,f({},u,{className:C,children:b})),(0,h.jsx)(L,{})]})]})};rt.displayName=`JVR.TypeString`;var it=e=>{var{children:t,keyName:n,keys:r}=e,{True:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,Ge),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_||(0,h.jsx)(l,f({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};it.displayName=`JVR.TypeTrue`;var at=e=>{var{children:t,keyName:n,keys:r}=e,{False:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,Ke),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_||(0,h.jsx)(l,f({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};at.displayName=`JVR.TypeFalse`;var ot=e=>{var{children:t,keyName:n,keys:r}=e,{Float:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,qe),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_||(0,h.jsx)(l,f({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};ot.displayName=`JVR.TypeFloat`;var st=e=>{var{children:t,keyName:n,keys:r}=e,{Int:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,Je),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_||(0,h.jsx)(l,f({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};st.displayName=`JVR.TypeInt`;var ct=e=>{var{children:t,keyName:n,keys:r}=e,{Bigint:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,Ye),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_||(0,h.jsx)(l,f({},c,{className:`w-rjv-value`,children:z(t?.toString())}))]})};ct.displayName=`JVR.TypeFloat`;var lt=e=>{var{children:t,keyName:n,keys:r}=e,{Url:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,Xe),l=o||`span`,u=f({},B,i.style),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t?.href,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_||(0,h.jsxs)(`a`,f({href:t?.href,target:`_blank`},c,{className:`w-rjv-value`,children:[(0,h.jsx)(L,{}),t?.href,(0,h.jsx)(L,{})]}))]})};lt.displayName=`JVR.TypeUrl`;var ut=e=>{var{children:t,keyName:n,keys:r}=e,{Date:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,Ze),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=t instanceof Date?t.toLocaleString():t,v=d&&s(f({},c,{children:_,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),v||(0,h.jsx)(l,f({},c,{className:`w-rjv-value`,children:_}))]})};ut.displayName=`JVR.TypeDate`;var dt=e=>{var{children:t,keyName:n,keys:r}=e,{Undefined:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,Qe),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_]})};dt.displayName=`JVR.TypeUndefined`;var ft=e=>{var{children:t,keyName:n,keys:r}=e,{Null:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,$e),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_]})};ft.displayName=`JVR.TypeNull`;var pt=e=>{var{children:t,keyName:n,keys:r}=e,{Nan:i={},displayDataTypes:a}=k(),{as:o,render:s}=i,c=p(i,et),l=o||`span`,u=f({},B,i.style||{}),d=s&&typeof s==`function`,g=d&&s(f({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),_=d&&s(f({},c,{children:t?.toString(),className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,h.jsxs)(m.Fragment,{children:[a&&(g||(0,h.jsx)(l,f({},c,{style:u}))),_]})};pt.displayName=`JVR.TypeNan`;var mt=e=>Number(e)===e&&e%1!=0||isNaN(e),ht=e=>{var{value:t,keyName:n,keys:r}=e,i={keyName:n,keys:r};return t instanceof URL?(0,h.jsx)(lt,f({},i,{children:t})):typeof t==`string`?(0,h.jsx)(rt,f({},i,{children:t})):t===!0?(0,h.jsx)(it,f({},i,{children:t})):t===!1?(0,h.jsx)(at,f({},i,{children:t})):t===null?(0,h.jsx)(ft,f({},i,{children:t})):t===void 0?(0,h.jsx)(dt,f({},i,{children:t})):t instanceof Date?(0,h.jsx)(ut,f({},i,{children:t})):typeof t==`number`&&isNaN(t)?(0,h.jsx)(pt,f({},i,{children:t})):typeof t==`number`&&mt(t)?(0,h.jsx)(ot,f({},i,{children:t})):typeof t==`bigint`?(0,h.jsx)(ct,f({},i,{children:t})):typeof t==`number`?(0,h.jsx)(st,f({},i,{children:t})):null};ht.displayName=`JVR.Value`;function V(e,t,n){var r=ge(),i=f({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:f({},e.style,t.style),children:t.children||e.children});(0,m.useEffect)(()=>r({[n]:i}),[t])}function H(e,t,n){var r=ce(),i=f({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:f({},e.style,t.style),children:t.children||e.children});(0,m.useEffect)(()=>r({[n]:i}),[t])}function U(e,t,n){var r=Se(),i=f({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:f({},e.style,t.style),children:t.children||e.children});(0,m.useEffect)(()=>r({[n]:i}),[t])}var gt=[`as`,`render`],_t=e=>{var{KeyName:t={}}=M();return U(t,e,`KeyName`),null};_t.displayName=`JVR.KeyName`;var vt=e=>{var{children:t,value:n,parentValue:r,keyName:i,keys:a}=e,o={color:typeof t==`number`?`var(--w-rjv-key-number, #268bd2)`:`var(--w-rjv-key-string, #002b36)`},{KeyName:s={}}=M(),{as:c,render:l}=s,u=p(s,gt);u.style=f({},u.style,o);var d=c||`span`;return l&&typeof l==`function`&&l(f({},u,{children:t}),{value:n,parentValue:r,keyName:i,keys:a||(i?[i]:[])})||(0,h.jsx)(d,f({},u,{children:t}))};vt.displayName=`JVR.KeyNameComp`;var yt=[`children`,`value`,`parentValue`,`keyName`,`keys`],bt=[`as`,`render`,`children`],xt=e=>{var{Row:t={}}=M();return U(t,e,`Row`),null};xt.displayName=`JVR.Row`;var St=e=>{var{children:t,value:n,parentValue:r,keyName:i,keys:a}=e,o=p(e,yt),{Row:s={}}=M(),{as:c,render:l}=s,u=p(s,bt),d=c||`div`;return l&&typeof l==`function`&&l(f({},o,u,{children:t}),{value:n,keyName:i,parentValue:r,keys:a})||(0,h.jsx)(d,f({},o,u,{children:t}))};St.displayName=`JVR.RowComp`;function Ct(e){var t=(0,m.useRef)();return(0,m.useEffect)(()=>{t.current=e}),t.current}function wt(e){var{value:t,highlightUpdates:n,highlightContainer:r}=e,i=Ct(t),a=(0,m.useMemo)(()=>{if(!n||i===void 0)return!1;if(typeof t!=typeof i)return!0;if(typeof t==`number`)return isNaN(t)&&isNaN(i)?!1:t!==i;if(Array.isArray(t)!==Array.isArray(i))return!0;if(typeof t==`object`||typeof t==`function`)return!1;if(t!==i)return!0},[n,t]);(0,m.useEffect)(()=>{r&&r.current&&a&&`animate`in r.current&&r.current.animate([{backgroundColor:`var(--w-rjv-update-color, #ebcb8b)`},{backgroundColor:``}],{duration:1e3,easing:`ease-in`})},[a,t,r])}var Tt=[`keyName`,`value`,`parentValue`,`expandKey`,`keys`,`beforeCopy`],Et=[`as`,`render`],W=e=>{var{keyName:t,value:n,parentValue:r,expandKey:i,keys:a,beforeCopy:o}=e,s=p(e,Tt),{onCopied:c,enableClipboard:l,beforeCopy:u}=F(),d=y()[i],[g,_]=(0,m.useState)(!1),{Copied:v={}}=M(),b=v?.beforeCopy;if(l===!1||!d)return null;var x={style:{display:`inline-flex`},fill:g?`var(--w-rjv-copied-success-color, #28a745)`:`var(--w-rjv-copied-color, currentColor)`,onClick:e=>{e.stopPropagation();var s=``;s=typeof n==`number`&&n===1/0?`Infinity`:typeof n==`number`&&isNaN(n)?`NaN`:typeof n==`bigint`?z(n):n instanceof Date?n.toLocaleString():JSON.stringify(n,(e,t)=>typeof t==`bigint`?z(t):t,2);var l=o||b||u;l&&typeof l==`function`&&(s=l(s,t,n,r,i,a)),c&&c(s,n),_(!0),(navigator.clipboard||{writeText(e){return new Promise((t,n)=>{var r=document.createElement(`textarea`);r.style.position=`absolute`,r.style.opacity=`0`,r.style.left=`-99999999px`,r.value=e,document.body.appendChild(r),r.select(),document.execCommand(`copy`)?t():n(),r.remove()})}}).writeText(s).then(()=>{var e=setTimeout(()=>{_(!1),clearTimeout(e)},3e3)}).catch(e=>{})}},{render:S}=v,C=p(v,Et),w=f({},C,s,x,{style:f({},C.style,s.style,x.style)});return S&&typeof S==`function`&&S(f({},w,{"data-copied":g}),{value:n,keyName:t,keys:a,parentValue:r})||(g?(0,h.jsx)(`svg`,f({viewBox:`0 0 32 36`},w,{children:(0,h.jsx)(`path`,{d:`M27.5,33 L2.5,33 L2.5,12.5 L27.5,12.5 L27.5,15.2249049 C29.1403264,13.8627542 29.9736597,13.1778155 30,13.1700887 C30,11.9705278 30,10.0804982 30,7.5 C30,6.1 28.9,5 27.5,5 L20,5 C20,2.2 17.8,0 15,0 C12.2,0 10,2.2 10,5 L2.5,5 C1.1,5 0,6.1 0,7.5 L0,33 C0,34.4 1.1,36 2.5,36 L27.5,36 C28.9,36 30,34.4 30,33 L30,26.1114493 L27.5,28.4926435 L27.5,33 Z M7.5,7.5 L10,7.5 C10,7.5 12.5,6.4 12.5,5 C12.5,3.6 13.6,2.5 15,2.5 C16.4,2.5 17.5,3.6 17.5,5 C17.5,6.4 18.8,7.5 20,7.5 L22.5,7.5 C22.5,7.5 25,8.6 25,10 L5,10 C5,8.5 6.1,7.5 7.5,7.5 Z M5,27.5 L10,27.5 L10,25 L5,25 L5,27.5 Z M28.5589286,16 L32,19.6 L21.0160714,30.5382252 L13.5303571,24.2571429 L17.1303571,20.6571429 L21.0160714,24.5428571 L28.5589286,16 Z M17.5,15 L5,15 L5,17.5 L17.5,17.5 L17.5,15 Z M10,20 L5,20 L5,22.5 L10,22.5 L10,20 Z`})})):(0,h.jsx)(`svg`,f({viewBox:`0 0 32 36`},w,{children:(0,h.jsx)(`path`,{d:`M27.5,33 L2.5,33 L2.5,12.5 L27.5,12.5 L27.5,20 L30,20 L30,7.5 C30,6.1 28.9,5 27.5,5 L20,5 C20,2.2 17.8,0 15,0 C12.2,0 10,2.2 10,5 L2.5,5 C1.1,5 0,6.1 0,7.5 L0,33 C0,34.4 1.1,36 2.5,36 L27.5,36 C28.9,36 30,34.4 30,33 L30,29 L27.5,29 L27.5,33 Z M7.5,7.5 L10,7.5 C10,7.5 12.5,6.4 12.5,5 C12.5,3.6 13.6,2.5 15,2.5 C16.4,2.5 17.5,3.6 17.5,5 C17.5,6.4 18.8,7.5 20,7.5 L22.5,7.5 C22.5,7.5 25,8.6 25,10 L5,10 C5,8.5 6.1,7.5 7.5,7.5 Z M5,27.5 L10,27.5 L10,25 L5,25 L5,27.5 Z M22.5,21.5 L22.5,16.5 L12.5,24 L22.5,31.5 L22.5,26.5 L32,26.5 L32,21.5 L22.5,21.5 Z M17.5,15 L5,15 L5,17.5 L17.5,17.5 L17.5,15 Z M10,20 L5,20 L5,22.5 L10,22.5 L10,20 Z`})})))};W.displayName=`JVR.Copied`;function Dt(){var e=(0,m.useRef)(null);return e.current===null&&(e.current=`custom-id-`+Math.random().toString(36).substr(2,9)),e.current}var Ot=e=>{var{keyName:t,value:n,expandKey:r=``,level:i,keys:a=[],parentValue:o}=e,s=D(),{objectSortKeys:c,indentWidth:l,collapsed:u,shouldExpandNodeInitially:d}=F(),f=typeof u==`boolean`?u:typeof u==`number`?i>u:!1,p=s[r]??(d?!1:f),m=d&&d(!p,{value:n,keys:a,level:i,keyName:t,parentValue:o});if(d&&u===!1){if(s[r]===void 0&&!m)return null}else if(s[r]===void 0&&m)return null;if(p)return null;var g=Array.isArray(n)?Object.entries(n).map(e=>[Number(e[0]),e[1]]):Object.entries(n);return c&&(g=c===!0?g.sort((e,t)=>{var[n]=e,[r]=t;return typeof n==`string`&&typeof r==`string`?n.localeCompare(r):0}):g.sort((e,t)=>{var[n,r]=e,[i,a]=t;return typeof n==`string`&&typeof i==`string`?c(n,i,r,a):0})),(0,h.jsx)(`div`,{className:`w-rjv-wrap`,style:{borderLeft:`var(--w-rjv-border-left-width, 1px) var(--w-rjv-line-style, solid) var(--w-rjv-line-color, #ebebeb)`,paddingLeft:l,marginLeft:6},children:g.map((e,t)=>{var[r,o]=e;return(0,h.jsx)(At,{parentValue:n,keyName:r,keys:[...a,r],value:o,level:i},t)})})};Ot.displayName=`JVR.KeyValues`;var kt=e=>{var{keyName:t,parentValue:n,keys:r,value:i}=e,{highlightUpdates:a}=F(),o=typeof t==`number`,s=(0,m.useRef)(null);wt({value:i,highlightUpdates:a,highlightContainer:s});var c={keyName:t,value:i,keys:r,parentValue:n};return(0,h.jsxs)(m.Fragment,{children:[(0,h.jsxs)(`span`,{ref:s,children:[(0,h.jsx)(I,f({isNumber:o,"data-placement":`left`},c)),(0,h.jsx)(vt,f({},c,{children:t})),(0,h.jsx)(I,f({isNumber:o,"data-placement":`right`},c))]}),(0,h.jsx)(Re,f({},c))]})};kt.displayName=`JVR.KayName`;var At=e=>{var{keyName:t,value:n,parentValue:r,level:i=0,keys:a=[]}=e,o=S(),s=Dt(),c=Array.isArray(n),l=n instanceof Set,u=n instanceof Map,d=n instanceof Date,p=n instanceof URL;return n&&typeof n==`object`&&!c&&!l&&!u&&!d&&!p||c||l||u?(0,h.jsx)(Wt,{keyName:t,value:l?Array.from(n):u?Object.fromEntries(n):n,parentValue:r,initialValue:n,keys:a,level:i+1}):(0,h.jsxs)(St,f({className:`w-rjv-line`,value:n,keyName:t,keys:a,parentValue:r},{onMouseEnter:()=>o({[s]:!0}),onMouseLeave:()=>o({[s]:!1})},{children:[(0,h.jsx)(kt,{keyName:t,value:n,keys:a,parentValue:r}),(0,h.jsx)(ht,{keyName:t,value:n,keys:a}),(0,h.jsx)(W,{keyName:t,value:n,keys:a,parentValue:r,expandKey:s})]}))};At.displayName=`JVR.KeyValuesItem`;var jt=[`value`,`keyName`],Mt=[`as`,`render`],Nt=e=>{var{CountInfoExtra:t={}}=M();return U(t,e,`CountInfoExtra`),null};Nt.displayName=`JVR.CountInfoExtra`;var Pt=e=>{var{value:t={},keyName:n}=e,r=p(e,jt),{CountInfoExtra:i={}}=M(),{as:a,render:o}=i,s=p(i,Mt);if(!o&&!s.children)return null;var c=a||`span`,l=o&&typeof o==`function`,u=f({},s,r);return l&&o(u,{value:t,keyName:n})||(0,h.jsx)(c,f({},u))};Pt.displayName=`JVR.CountInfoExtraComps`;var Ft=[`value`,`keyName`],It=[`as`,`render`],Lt=e=>{var{CountInfo:t={}}=M();return U(t,e,`CountInfo`),null};Lt.displayName=`JVR.CountInfo`;var Rt=e=>{var{value:t={},keyName:n}=e,r=p(e,Ft),{displayObjectSize:i}=F(),{CountInfo:a={}}=M();if(!i)return null;var{as:o,render:s}=a,c=p(a,It),l=o||`span`;c.style=f({},c.style,e.style);var u=Object.keys(t).length;c.children||=u+` item`+(u===1?``:`s`);var d=f({},c,r);return s&&typeof s==`function`&&s(f({},d,{"data-length":u}),{value:t,keyName:n})||(0,h.jsx)(l,f({},d))};Rt.displayName=`JVR.CountInfoComp`;var zt=[`as`,`render`],Bt=e=>{var{Ellipsis:t={}}=M();return U(t,e,`Ellipsis`),null};Bt.displayName=`JVR.Ellipsis`;var Vt=e=>{var{isExpanded:t,value:n,keyName:r}=e,{Ellipsis:i={}}=M(),{as:a,render:o}=i,s=p(i,zt),c=a||`span`;return o&&typeof o==`function`&&o(f({},s,{"data-expanded":t}),{value:n,keyName:r})||(!t||typeof n==`object`&&Object.keys(n).length==0?null:(0,h.jsx)(c,f({},s)))};Vt.displayName=`JVR.EllipsisComp`;var Ht=e=>{var{keyName:t,expandKey:n,keys:r=[],initialValue:i,value:a,parentValue:o,level:s}=e,c=D(),l=te(),{onExpand:u,collapsed:d,shouldExpandNodeInitially:p}=F(),m=typeof d==`boolean`?d:typeof d==`number`?s>d:!1,g=c[n]??(p?!1:m),_=p&&p(!g,{value:a,keys:r,level:s,keyName:t,parentValue:o});c[n]===void 0&&p&&(g=!_);var v=()=>{var e={expand:!g,value:a,keyid:n,keyName:t};u&&u(e),l({[n]:e.expand})},y={display:`inline-flex`,alignItems:`center`},b={transform:`rotate(`+(g?`-90`:`0`)+`deg)`,transition:`all 0.3s`},x=Object.keys(a).length,S=typeof a==`object`,C=Array.isArray(a),w=a instanceof Set,T=x!==0&&(C||w||S),E={style:y};T&&(E.onClick=v);var O={keyName:t,value:a,keys:r,parentValue:o};return(0,h.jsxs)(`span`,f({},E,{children:[T&&(0,h.jsx)(ze,f({style:b,expandKey:n},O)),(t||typeof t==`number`)&&(0,h.jsx)(kt,f({},O)),(0,h.jsx)(tt,{value:i,keyName:t}),(0,h.jsx)(nt,{value:i,keyName:t}),(0,h.jsx)(Be,f({isBrackets:C||w},O)),(0,h.jsx)(Vt,{keyName:t,value:a,isExpanded:g}),(0,h.jsx)(R,f({isVisiable:g||!T,isBrackets:C||w},O)),(0,h.jsx)(Rt,{value:a,keyName:t}),(0,h.jsx)(Pt,{value:a,keyName:t}),(0,h.jsx)(W,{keyName:t,value:a,expandKey:n,parentValue:o,keys:r})]}))};Ht.displayName=`JVR.NestedOpen`;var Ut=[`className`,`children`,`parentValue`,`keyid`,`level`,`value`,`initialValue`,`keys`,`keyName`],Wt=(0,m.forwardRef)((e,t)=>{var{className:n=``,parentValue:r,level:i=1,value:a,initialValue:o,keys:s,keyName:c}=e,l=p(e,Ut),u=S(),d=Dt();return(0,h.jsxs)(`div`,f({className:[n,`w-rjv-inner`].filter(Boolean).join(` `),ref:t},l,{onMouseEnter:()=>u({[d]:!0}),onMouseLeave:()=>u({[d]:!1})},{children:[(0,h.jsx)(Ht,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c,initialValue:o}),(0,h.jsx)(Ot,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c}),(0,h.jsx)(Ve,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c})]}))});Wt.displayName=`JVR.Container`;var Gt=e=>{var{BraceLeft:t={}}=A();return V(t,e,`BraceLeft`),null};Gt.displayName=`JVR.BraceLeft`;var Kt=e=>{var{BraceRight:t={}}=A();return V(t,e,`BraceRight`),null};Kt.displayName=`JVR.BraceRight`;var qt=e=>{var{BracketsLeft:t={}}=A();return V(t,e,`BracketsLeft`),null};qt.displayName=`JVR.BracketsLeft`;var Jt=e=>{var{BracketsRight:t={}}=A();return V(t,e,`BracketsRight`),null};Jt.displayName=`JVR.BracketsRight`;var Yt=e=>{var{Arrow:t={}}=A();return V(t,e,`Arrow`),null};Yt.displayName=`JVR.Arrow`;var Xt=e=>{var{Colon:t={}}=A();return V(t,e,`Colon`),null};Xt.displayName=`JVR.Colon`;var Zt=e=>{var{Quote:t={}}=A();return V(t,e,`Quote`),null};Zt.displayName=`JVR.Quote`;var Qt=e=>{var{ValueQuote:t={}}=A();return V(t,e,`ValueQuote`),null};Qt.displayName=`JVR.ValueQuote`;var $t=e=>{var{Bigint:t={}}=k();return H(t,e,`Bigint`),null};$t.displayName=`JVR.Bigint`;var en=e=>{var{Date:t={}}=k();return H(t,e,`Date`),null};en.displayName=`JVR.Date`;var tn=e=>{var{False:t={}}=k();return H(t,e,`False`),null};tn.displayName=`JVR.False`;var nn=e=>{var{Float:t={}}=k();return H(t,e,`Float`),null};nn.displayName=`JVR.Float`;var rn=e=>{var{Int:t={}}=k();return H(t,e,`Int`),null};rn.displayName=`JVR.Int`;var an=e=>{var{Map:t={}}=k();return H(t,e,`Map`),null};an.displayName=`JVR.Map`;var on=e=>{var{Nan:t={}}=k();return H(t,e,`Nan`),null};on.displayName=`JVR.Nan`;var sn=e=>{var{Null:t={}}=k();return H(t,e,`Null`),null};sn.displayName=`JVR.Null`;var cn=e=>{var{Set:t={}}=k();return H(t,e,`Set`),null};cn.displayName=`JVR.Set`;var ln=e=>{var{Str:t={}}=k();return H(t,e,`Str`),null};ln.displayName=`JVR.StringText`;var un=e=>{var{True:t={}}=k();return H(t,e,`True`),null};un.displayName=`JVR.True`;var dn=e=>{var{Undefined:t={}}=k();return H(t,e,`Undefined`),null};dn.displayName=`JVR.Undefined`;var fn=e=>{var{Url:t={}}=k();return H(t,e,`Url`),null};fn.displayName=`JVR.Url`;var pn=e=>{var{Copied:t={}}=M();return U(t,e,`Copied`),null};pn.displayName=`JVR.Copied`;var mn=[`className`,`style`,`value`,`children`,`collapsed`,`shouldExpandNodeInitially`,`indentWidth`,`displayObjectSize`,`shortenTextAfterLength`,`stringEllipsis`,`highlightUpdates`,`enableClipboard`,`displayDataTypes`,`objectSortKeys`,`onExpand`,`onCopied`,`beforeCopy`],G=(0,m.forwardRef)((e,t)=>{var{className:n=``,style:r,value:i,children:a,collapsed:o=!1,shouldExpandNodeInitially:s,indentWidth:c=15,displayObjectSize:l=!0,shortenTextAfterLength:u=30,stringEllipsis:d,highlightUpdates:m=!0,enableClipboard:g=!0,displayDataTypes:_=!0,objectSortKeys:v=!1,onExpand:y,onCopied:b,beforeCopy:x}=e,S=p(e,mn),C=f({lineHeight:1.4,fontFamily:`var(--w-rjv-font-family, Menlo, monospace)`,color:`var(--w-rjv-color, #002b36)`,backgroundColor:`var(--w-rjv-background-color, #00000000)`,fontSize:13},r),w=[`w-json-view-container`,`w-rjv`,n].filter(Boolean).join(` `);return(0,h.jsxs)(De,{initialState:{value:i,objectSortKeys:v,indentWidth:c,shouldExpandNodeInitially:o===!1?s:void 0,displayObjectSize:l,collapsed:o,enableClipboard:g,shortenTextAfterLength:u,stringEllipsis:d,highlightUpdates:m,onCopied:b,onExpand:y,beforeCopy:x},initialTypes:{displayDataTypes:_},children:[(0,h.jsx)(Wt,f({value:i},S,{ref:t,className:w,style:C})),a]})});G.Bigint=$t,G.Date=en,G.False=tn,G.Float=nn,G.Int=rn,G.Map=an,G.Nan=on,G.Null=sn,G.Set=cn,G.String=ln,G.True=un,G.Undefined=dn,G.Url=fn,G.ValueQuote=Qt,G.Arrow=Yt,G.Colon=Xt,G.Quote=Zt,G.Ellipsis=Bt,G.BraceLeft=Gt,G.BraceRight=Kt,G.BracketsLeft=qt,G.BracketsRight=Jt,G.Copied=pn,G.CountInfo=Lt,G.CountInfoExtra=Nt,G.KeyName=_t,G.Row=xt,G.displayName=`JVR.JsonView`;var hn={"--w-rjv-font-family":`monospace`,"--w-rjv-color":`#002b36`,"--w-rjv-key-string":`#002b36`,"--w-rjv-background-color":`#ffffff`,"--w-rjv-line-color":`#ebebeb`,"--w-rjv-arrow-color":`var(--w-rjv-color)`,"--w-rjv-edit-color":`var(--w-rjv-color)`,"--w-rjv-info-color":`#0000004d`,"--w-rjv-update-color":`#ebcb8b`,"--w-rjv-copied-color":`#002b36`,"--w-rjv-copied-success-color":`#28a745`,"--w-rjv-curlybraces-color":`#236a7c`,"--w-rjv-colon-color":`#002b36`,"--w-rjv-brackets-color":`#236a7c`,"--w-rjv-quotes-color":`var(--w-rjv-key-string)`,"--w-rjv-quotes-string-color":`var(--w-rjv-type-string-color)`,"--w-rjv-type-string-color":`#cb4b16`,"--w-rjv-type-int-color":`#268bd2`,"--w-rjv-type-float-color":`#859900`,"--w-rjv-type-bigint-color":`#268bd2`,"--w-rjv-type-boolean-color":`#2aa198`,"--w-rjv-type-date-color":`#586e75`,"--w-rjv-type-url-color":`#0969da`,"--w-rjv-type-null-color":`#d33682`,"--w-rjv-type-nan-color":`#859900`,"--w-rjv-type-undefined-color":`#586e75`},gn=e=>(0,h.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,h.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`m12 19l-7-7l7-7m7 7H5`})}),_n=e=>(0,h.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,h.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M20 6L9 17l-5-5`})}),K=e=>(0,h.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,h.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`m6 9l6 6l6-6`})}),vn=e=>(0,h.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,h.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,children:[(0,h.jsx)(`rect`,{width:14,height:14,x:8,y:8,rx:2,ry:2}),(0,h.jsx)(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})]})});function yn(){let{id:e}=l.useSearch();return(0,h.jsx)($n,{id:e})}function q(e){return e.toLocaleString()}var bn=new Set;function xn(e){try{return{ok:!0,value:JSON.parse(e)}}catch{return{ok:!1}}}function Sn(e){if(!e)return{};try{return JSON.parse(e)}catch{return e}}function J({text:e,dark:t}){let[n,r]=(0,m.useState)(!1);return(0,m.useEffect)(()=>{if(!n)return;let e=setTimeout(()=>r(!1),1500);return()=>clearTimeout(e)},[n]),(0,h.jsx)(`button`,{type:`button`,className:`absolute top-2 right-2 p-1 rounded transition-colors ${t?`text-sand-500 hover:text-sand-300`:`text-sand-400 hover:text-sand-600`}`,onClick:()=>{navigator.clipboard.writeText(e),r(!0)},children:n?(0,h.jsx)(_n,{className:`size-3.5 text-sage-500`}):(0,h.jsx)(vn,{className:`size-3.5`})})}var Cn=/<img\s+[^>]*src=["'](data:image\/[^"']+;base64,[^"']+)["'][^>]*(?:alt=["']([^"']*)["'][^>]*)?\/?>/gi;function wn(e){let t=[],n=0;for(let r of e.matchAll(Cn)){let i=r.index??0;i>n&&t.push({type:`text`,text:e.slice(n,i)}),t.push({type:`image`,src:r[1],alt:r[2]??`generated image`}),n=i+r[0].length}return n<e.length&&t.push({type:`text`,text:e.slice(n)}),t.filter(e=>e.type===`image`||e.text.trim().length>0)}function Tn({text:e,markdown:t}){let[n,r]=(0,m.useState)(null),i=wn(e);return i.some(e=>e.type===`image`)?(0,h.jsxs)(`div`,{className:`space-y-3`,children:[i.map((e,n)=>e.type===`text`?t?(0,h.jsx)(`div`,{className:`prose prose-sm prose-qgrid max-w-none`,children:(0,h.jsx)(s,{remarkPlugins:[o],children:e.text})},`text-${n}`):(0,h.jsx)(`pre`,{className:`text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed`,children:e.text},`text-${n}`):(0,h.jsx)(`button`,{type:`button`,className:`block max-w-full rounded-md border border-sand-200 overflow-hidden bg-white hover:border-sienna-300 transition-colors`,onClick:()=>r(e.src),title:`Open image`,children:(0,h.jsx)(`img`,{src:e.src,alt:e.alt,className:`max-h-[520px] max-w-full object-contain`,loading:`lazy`})},`image-${n}`)),n&&(0,h.jsxs)(`div`,{className:`fixed inset-0 z-50 bg-black/70 p-4 flex items-center justify-center`,onClick:()=>r(null),children:[(0,h.jsx)(`button`,{type:`button`,className:`absolute top-4 right-4 p-2 rounded-full bg-white/90 text-sand-700 hover:bg-white`,onClick:()=>r(null),title:`Close image`,children:(0,h.jsx)(c,{className:`size-5`})}),(0,h.jsx)(`img`,{src:n,alt:`generated preview`,className:`max-h-full max-w-full object-contain rounded-md bg-white`,onClick:e=>e.stopPropagation()})]})]}):t?(0,h.jsx)(`div`,{className:`prose prose-sm prose-qgrid max-w-none`,children:(0,h.jsx)(s,{remarkPlugins:[o],children:e})}):(0,h.jsx)(`pre`,{className:`text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed`,children:e})}function Y({text:e,markdown:t}){let n=xn(e),[r,i]=(0,m.useState)(`pretty`),a=n.ok&&n.value!==null&&(Array.isArray(n.value)||typeof n.value==`object`);return!n.ok||!a?t?(0,h.jsx)(Tn,{text:e,markdown:!0}):(0,h.jsx)(Tn,{text:n.ok?JSON.stringify(n.value,null,2):e}):(0,h.jsxs)(`div`,{children:[(0,h.jsxs)(`div`,{className:`flex gap-1 mb-2`,children:[(0,h.jsx)(`button`,{type:`button`,className:`px-2 py-0.5 text-[10px] rounded-md transition-colors ${r===`plain`?`bg-sand-200 text-sand-700`:`text-sand-400 hover:text-sand-600`}`,onClick:()=>i(`plain`),children:`Plain`}),(0,h.jsx)(`button`,{type:`button`,className:`px-2 py-0.5 text-[10px] rounded-md transition-colors ${r===`pretty`?`bg-sand-200 text-sand-700`:`text-sand-400 hover:text-sand-600`}`,onClick:()=>i(`pretty`),children:`Pretty`})]}),r===`pretty`?(0,h.jsx)(G,{value:n.value,style:hn,displayDataTypes:!1,enableClipboard:!0,collapsed:!1}):(0,h.jsx)(`pre`,{className:`text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed`,children:JSON.stringify(n.value,null,2)})]})}function X({title:e,defaultOpen:t=!0,children:n}){return(0,h.jsxs)(`details`,{open:t,className:`group panel overflow-hidden`,children:[(0,h.jsxs)(`summary`,{className:`panel-header flex items-center gap-1.5 cursor-pointer select-none list-none px-4 py-2.5`,children:[(0,h.jsx)(K,{className:`size-3.5 text-sand-400 transition-transform group-open:rotate-0 -rotate-90`}),(0,h.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider text-sand-500 font-medium`,children:e})]}),(0,h.jsx)(`div`,{className:`p-4`,children:n})]})}function Z({label:e,value:t}){return(0,h.jsxs)(`div`,{className:`min-w-0`,children:[(0,h.jsx)(`dt`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium truncate`,children:e}),(0,h.jsx)(`dd`,{className:`text-[15px] font-semibold text-sand-800 tabular-nums mt-0.5 truncate`,children:t})]})}var En={running:`bg-blue-100 text-blue-600`,succeeded:`bg-sage-100 text-sage-600`,error:`bg-red-100 text-red-600`,aborted:`bg-caution-400/15 text-caution-500`};function Dn({message:e}){return(0,h.jsxs)(`div`,{className:`panel overflow-hidden border border-red-200 bg-red-50/60`,children:[(0,h.jsx)(`div`,{className:`px-4 py-2.5 border-b border-red-100 flex items-center gap-1.5`,children:(0,h.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider text-red-600 font-medium`,children:`Error`})}),(0,h.jsx)(`div`,{className:`p-4`,children:(0,h.jsx)(`pre`,{className:`text-[12px] text-red-700 whitespace-pre-wrap break-words font-mono leading-relaxed max-h-80 overflow-auto`,children:e})})]})}function On({data:e}){let t=e.status===`running`,n=!t&&e.requested_model_name!==null&&e.model_name!==null&&e.requested_model_name!==e.model_name,r=!t&&e.requested_model_name!==null&&e.model_name===null;return(0,h.jsxs)(`div`,{className:`panel overflow-hidden px-4 py-3 flex flex-wrap items-center gap-x-2 gap-y-1.5 sm:px-5`,children:[(0,h.jsx)(`span`,{className:`text-[15px] font-semibold text-sand-900 break-all`,children:t?`실행 중`:n?`${e.requested_model_name} → ${e.model_name}`:e.model_name??e.requested_model_name??`Unknown model`}),r&&(0,h.jsx)(`span`,{className:`text-[10px] text-sand-400`,children:`요청`}),!t&&(e.fallback_count??0)>0&&(0,h.jsxs)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded-full bg-caution-400/15 text-caution-500 font-medium uppercase`,children:[`fallback ×`,e.fallback_count]}),!t&&e.status!==`succeeded`&&(0,h.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded-full font-medium uppercase ${En[e.status]??`bg-sand-100 text-sand-500`}`,children:e.status}),e.response_json_ok===!1&&(0,h.jsx)(`span`,{title:`structured 요청의 응답이 JSON 파싱에 실패했습니다`,className:`text-[10px] px-1.5 py-0.5 rounded-full bg-caution-400/15 text-caution-500 font-medium uppercase`,children:`broken json`}),e.effort&&(0,h.jsxs)(`span`,{className:`text-[11px] px-1.5 py-0.5 rounded-md bg-sand-100 text-sand-500 font-mono`,children:[`effort=`,e.effort]}),e.project_name&&(0,h.jsxs)(`span`,{className:`text-[12px] text-sand-400`,children:[`· project=`,e.project_name]}),(0,h.jsx)(`span`,{className:`ml-auto text-[11px] text-sand-400`,children:e.token_name})]})}function kn({data:e,toolCallCount:t}){let n=Nn(e);return(0,h.jsxs)(`div`,{className:`panel overflow-hidden px-5 py-3 space-y-3`,children:[(0,h.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-x-6 gap-y-3`,children:[(0,h.jsx)(Z,{label:`Duration`,value:`${(e.duration_ms/1e3).toFixed(1)}s`}),(0,h.jsx)(Z,{label:`TTFT`,value:jn(e.ttft_ms)}),(0,h.jsx)(Z,{label:`Tokens/sec`,value:Pn(e.output_tokens,e.duration_ms,e.ttft_ms,n)}),(0,h.jsx)(Z,{label:`Driver Cost`,value:e.cost_usd===null?`—`:u(e.cost_usd)}),(0,h.jsx)(Z,{label:`Cost Source`,value:e.cost_source??`legacy`}),(0,h.jsx)(Z,{label:`Image Cost`,value:e.image_cost_usd===null?`—`:u(e.image_cost_usd)}),(0,h.jsx)(Z,{label:`Tool Calls`,value:`${t}회`})]}),(0,h.jsxs)(`div`,{className:`border-t border-sand-100/60 pt-3 grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-x-6 gap-y-3`,children:[(0,h.jsx)(Z,{label:`Input`,value:q(e.input_tokens)}),(0,h.jsx)(Z,{label:`Output`,value:q(e.output_tokens)}),(0,h.jsx)(Z,{label:`Cache Read`,value:q(e.cache_read_tokens)}),(0,h.jsx)(Z,{label:`Cache Write`,value:q(e.cache_creation_tokens)}),(0,h.jsx)(Z,{label:`Cache Write (5m)`,value:e.cache_creation_5m_tokens===null?`—`:q(e.cache_creation_5m_tokens)}),(0,h.jsx)(Z,{label:`Cache Write (1h)`,value:e.cache_creation_1h_tokens===null?`—`:q(e.cache_creation_1h_tokens)}),(0,h.jsx)(Z,{label:`Cache Hit`,value:d(e)})]})]})}function An(e){return e==null?`—`:e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}function jn(e){return e==null||e<=0?`—`:An(e)}function Mn(e){let t=e.model_name?.trim().toLowerCase();if(t){let e=t.includes(`/`)?t.split(`/`).pop():t;if(e.startsWith(`claude-`))return`anthropic`;if(/^(gpt-|codex-|o\d)/.test(e))return`openai`}let n=e.token_name?.trim().toLowerCase();return n?.startsWith(`anthropic/`)?`anthropic`:n?.startsWith(`openai/`)?`openai`:null}function Nn(e){let t=Mn(e);return t!==null&&bn.has(t)}function Pn(e,t,n,r){if(!r||e==null||t==null||n==null||n<=0)return`—`;let i=t-n;return e<=0||i<=0?`—`:`${Math.round(e/(i/1e3)).toLocaleString()} tok/s`}function Q({label:e,value:t}){return(0,h.jsxs)(`div`,{className:`min-w-0`,children:[(0,h.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium truncate`,children:e}),(0,h.jsx)(`div`,{className:`mt-0.5 text-[13px] font-semibold text-sand-800 tabular-nums truncate`,children:t})]})}function Fn(e){if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e.inputImages;return Array.isArray(t)?t:void 0}function In(e){return(Fn(e)??[]).filter(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return!1;let t=e;return typeof t.url==`string`&&t.url.length>0||typeof t.data==`string`&&t.data.length>0})}function Ln(e){if(!e||typeof e!=`object`||Array.isArray(e))return e;let t=e,n=Fn(t);return n?{...t,inputImages:n.map(e=>{if(!e||typeof e!=`object`||Array.isArray(e))return e;let t=e,n=typeof t.url==`string`&&t.url.toLowerCase().startsWith(`data:`)?`[data-url ${t.url.length} chars]`:t.url;return{mediaType:t.mediaType,byteSize:t.byteSize,...n?{url:n}:{},...t.data?{data:`[base64 ${t.data.length} chars]`}:{}}})}:e}function Rn({images:e}){let t=e.map((e,t)=>{let n=e.url&&!e.url.startsWith(`[`)?e.url:void 0,r=e.data?`data:${e.mediaType??`image/png`};base64,${e.data}`:``,i=n??r;return i?{image:e,index:t,src:i}:null}).filter(e=>e!==null);return t.length===0?null:(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Input Images`}),(0,h.jsx)(`div`,{className:`mt-1 grid grid-cols-1 sm:grid-cols-2 gap-2`,children:t.map(({image:e,index:t,src:n})=>(0,h.jsxs)(`div`,{className:`rounded-md border border-sand-200 bg-white overflow-hidden`,children:[(0,h.jsx)(`img`,{src:n,alt:`reference ${t+1}`,className:`max-h-64 w-full object-contain bg-white`,loading:`lazy`}),(0,h.jsxs)(`div`,{className:`px-2 py-1 text-[10px] text-sand-500 font-mono border-t border-sand-100`,children:[e.mediaType??`image`,` ·`,` `,e.byteSize===void 0?`url`:`${e.byteSize.toLocaleString()} bytes`]})]},`${e.mediaType??`image`}-${t}`))})]})}function zn({stepId:e}){let{data:t}=i.useRequestLogStep(`I`,e??0,{enabled:e!==null});return(0,h.jsx)(Rn,{images:In(t?Sn(t.tool_args):null)})}function Bn({entry:e}){let t=!!e.error,[n,r]=(0,m.useState)(!1),{data:a}=i.useRequestLogStep(`A`,e.id,{enabled:n}),o=Ln(a?Sn(a.tool_args):null),s=a?Sn(a.tool_result):null,c=a?.error??e.error;return(0,h.jsxs)(`details`,{className:`group/tool`,onToggle:e=>r(e.currentTarget.open),children:[(0,h.jsxs)(`summary`,{className:`flex items-center gap-2 px-3 py-2 cursor-pointer select-none list-none hover:bg-sand-50 transition-colors rounded-md`,children:[(0,h.jsx)(K,{className:`size-3 text-sand-400 transition-transform group-open/tool:rotate-0 -rotate-90 shrink-0`}),(0,h.jsxs)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded bg-sand-100 text-sand-500 font-mono shrink-0`,children:[`call `,e.callIndex+1]}),(0,h.jsx)(`span`,{className:`text-[13px] font-medium text-sand-800 font-mono truncate`,children:e.toolName}),t&&(0,h.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded-full bg-red-100 text-red-600 font-medium uppercase shrink-0`,children:`error`}),(0,h.jsx)(`span`,{className:`ml-auto text-[11px] text-sand-400 tabular-nums shrink-0`,children:An(e.durationMs)})]}),n&&(0,h.jsxs)(`div`,{className:`mt-1 mx-1 mb-3 space-y-2`,children:[(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Request`}),(0,h.jsx)(`div`,{className:`mt-1 rounded-md bg-sand-50 p-3 overflow-auto`,children:(0,h.jsx)(Y,{text:a?JSON.stringify(o):`Loading...`})})]}),c&&(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-red-500 font-medium px-2`,children:`Error`}),(0,h.jsx)(`div`,{className:`mt-1 rounded-md bg-red-50 border border-red-100 p-3 overflow-auto`,children:(0,h.jsx)(Y,{text:c})})]}),(0,h.jsxs)(`div`,{children:[(0,h.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Response`}),(0,h.jsx)(`div`,{className:`mt-1 rounded-md bg-sand-50 p-3 overflow-auto`,children:(0,h.jsx)(Y,{text:a?typeof s==`string`?s:JSON.stringify(s):`Loading...`,markdown:!0})})]})]})]})}function Vn({stepId:e}){let[t,n]=(0,m.useState)(!1),{data:r}=i.useRequestLogStep(`A`,e,{enabled:t}),a=r?.reasoning_text??null;return(0,h.jsxs)(`details`,{className:`group/reason mt-3`,onToggle:e=>n(e.currentTarget.open),children:[(0,h.jsxs)(`summary`,{className:`flex items-center gap-2 cursor-pointer select-none list-none`,children:[(0,h.jsx)(K,{className:`size-3 text-sand-400 transition-transform group-open/reason:rotate-0 -rotate-90 shrink-0`}),(0,h.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium`,children:`Reasoning`})]}),t&&(0,h.jsx)(`div`,{className:`mt-2 rounded-md bg-white/70 border border-sand-100 p-3 overflow-auto`,children:a?(0,h.jsx)(Y,{text:a,markdown:!0}):r?(0,h.jsx)(`p`,{className:`text-sm text-sand-400`,children:`No reasoning text captured.`}):(0,h.jsx)(`p`,{className:`text-sm text-sand-400`,children:`Loading...`})})]})}function Hn({entry:e,tokensPerSecEnabled:t}){let n=e.generate,r=n!==null&&n.reasoningTokens!==null&&n.reasoningTokens!==void 0&&n.reasoningTokens>0,i=e.toolCalls.filter(e=>e.error).length;return(0,h.jsxs)(`details`,{open:!0,className:`group/step border-l border-sand-200 pl-3`,children:[(0,h.jsxs)(`summary`,{className:`flex items-center gap-2 py-2 cursor-pointer select-none list-none`,children:[(0,h.jsx)(K,{className:`size-3.5 text-sand-400 transition-transform group-open/step:rotate-0 -rotate-90 shrink-0`}),(0,h.jsxs)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded bg-sienna-100 text-sienna-700 font-mono shrink-0`,children:[`step `,e.stepIndex+1]}),(0,h.jsx)(`span`,{className:`text-[13px] font-semibold text-sand-900`,children:`LLM call`}),n?.finishReason&&(0,h.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded bg-sand-100 text-sand-500 font-mono shrink-0`,children:n.finishReason}),n&&(n.fallbackCount??0)>0&&(0,h.jsxs)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded-full bg-caution-400/15 text-caution-500 font-medium uppercase shrink-0`,children:[n.requestedModelName,` → `,n.modelName]}),r&&(0,h.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded bg-blue-100 text-blue-600 font-medium shrink-0`,children:`reasoning`}),i>0&&(0,h.jsxs)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded-full bg-red-100 text-red-600 font-medium uppercase shrink-0`,children:[i,` error`]}),(0,h.jsxs)(`span`,{className:`ml-auto text-[11px] text-sand-400 tabular-nums shrink-0`,children:[e.toolCalls.length,` tools`]})]}),(0,h.jsxs)(`div`,{className:`ml-4 mb-4 space-y-3`,children:[n&&(0,h.jsxs)(`div`,{className:`rounded-md border border-sand-100 bg-sand-50/70 p-3`,children:[(0,h.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 xl:grid-cols-8 gap-x-4 gap-y-3`,children:[(0,h.jsx)(Q,{label:`Duration`,value:An(n.durationMs)}),(0,h.jsx)(Q,{label:`TTFT`,value:jn(n.ttftMs)}),(0,h.jsx)(Q,{label:`Tokens/sec`,value:Pn(n.outputTokens,n.durationMs,n.ttftMs,t)}),(0,h.jsx)(Q,{label:`Input`,value:q(n.inputTokens??0)}),(0,h.jsx)(Q,{label:`Output`,value:q(n.outputTokens??0)}),(0,h.jsx)(Q,{label:`Cache Read`,value:q(n.cacheReadTokens??0)}),(0,h.jsx)(Q,{label:`Cache Write`,value:q(n.cacheCreationTokens??0)}),(0,h.jsx)(Q,{label:`Cache 5m / 1h`,value:`${n.cacheCreation5mTokens===null?`—`:q(n.cacheCreation5mTokens)} / ${n.cacheCreation1hTokens===null?`—`:q(n.cacheCreation1hTokens)}`}),(0,h.jsx)(Q,{label:`Cost`,value:n.costUsd===null?`—`:u(n.costUsd)}),(0,h.jsx)(Q,{label:`Cost Source`,value:n.costSource??`legacy`}),(0,h.jsx)(Q,{label:`Reasoning`,value:n.reasoningTokens!==null&&n.reasoningTokens!==void 0?q(n.reasoningTokens):`—`})]}),r&&(0,h.jsx)(Vn,{stepId:n.id})]}),e.toolCalls.length>0&&(0,h.jsx)(`div`,{className:`space-y-0.5`,children:e.toolCalls.map(e=>(0,h.jsx)(Bn,{entry:e},`${e.stepIndex}-${e.callIndex}-${e.toolCallId}`))})]})]})}function Un({steps:e,tokensPerSecEnabled:t}){let n=e.reduce((e,t)=>e+t.toolCalls.length,0);return(0,h.jsx)(X,{title:`Steps (${e.length} steps · ${n} tool calls)`,defaultOpen:!0,children:(0,h.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>(0,h.jsx)(Hn,{entry:e,tokensPerSecEnabled:t},e.stepIndex))})})}function Wn(e){let t=new Map;function n(e){let n=t.get(e);if(n)return n;let r={stepIndex:e,generate:null,toolCalls:[]};return t.set(e,r),r}for(let t of e){let e=n(t.step_index);if(t.type===`generate`){e.generate={id:t.id,stepIndex:t.step_index,modelName:t.model_name,requestedModelName:t.requested_model_name,fallbackCount:t.fallback_count,inputTokens:t.input_tokens,outputTokens:t.output_tokens,cacheReadTokens:t.cache_read_tokens,cacheCreationTokens:t.cache_creation_tokens,cacheCreation5mTokens:t.cache_creation_5m_tokens,cacheCreation1hTokens:t.cache_creation_1h_tokens,costUsd:t.cost_usd,costSource:t.cost_source,durationMs:t.duration_ms,ttftMs:t.ttft_ms,finishReason:t.finish_reason,reasoningTokens:t.reasoning_tokens};continue}t.type===`tool_call`&&e.toolCalls.push({id:t.id,stepIndex:t.step_index,callIndex:t.tool_call_index??e.toolCalls.length,toolCallId:t.tool_call_id??``,toolName:t.tool_name??``,durationMs:t.tool_duration_ms??0,error:t.error})}return[...t.values()].map(e=>({...e,toolCalls:e.toolCalls.toSorted((e,t)=>e.callIndex-t.callIndex)})).toSorted((e,t)=>e.stepIndex-t.stepIndex)}function Gn(e){return e.type===`function_call`||e.type===`function_call_output`?`bg-caution-400/10`:e.role===`assistant`?`bg-sage-50`:`bg-sand-50`}function Kn(e){return e.type===`function_call`?`fn: ${e.name??`unknown`}`:e.type===`function_call_output`?`fn result`:e.role??e.type}function qn(e){return typeof e==`string`?e:Array.isArray(e)?e.map(e=>typeof e==`object`&&e&&`text`in e?e.text:JSON.stringify(e)).join(`
|
|
2
|
-
`):JSON.stringify(e)}function $({className:e,children:t}){return(0,h.jsx)(`pre`,{className:`text-[12px] text-sand-700 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed max-h-40 overflow-auto ${e??``}`,children:t})}function Jn({history:e}){return(0,h.jsx)(X,{title:`History`,defaultOpen:!1,children:(0,h.jsx)(`div`,{className:`space-y-1.5`,children:e.map((e,t)=>(0,h.jsxs)(`div`,{className:`rounded-md px-3 py-2 ${Gn(e)}`,children:[(0,h.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium mb-1`,children:Kn(e)}),e.content!==null&&e.content!==void 0&&(0,h.jsx)($,{children:qn(e.content)}),e.arguments&&(0,h.jsx)($,{children:e.arguments}),e.output&&(0,h.jsx)($,{children:e.output})]},`hist-${t}`))})})}function Yn({tools:e}){return(0,h.jsx)(X,{title:`Tools (${e.length})`,defaultOpen:!1,children:(0,h.jsx)(`div`,{className:`space-y-1.5`,children:e.map((e,t)=>(0,h.jsxs)(`div`,{className:`rounded-md px-3 py-2 bg-caution-400/10`,children:[(0,h.jsxs)(`div`,{className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium mb-1`,children:[`fn: `,e.name]}),e.description&&(0,h.jsx)(`p`,{className:`text-[12px] text-sand-700 leading-relaxed`,children:e.description}),e.inputSchema!==void 0&&e.inputSchema!==null&&(0,h.jsx)($,{className:`mt-1`,children:JSON.stringify(e.inputSchema,null,2)})]},`tool-${t}`))})})}var Xn=/("(?:[^"\\]|\\.)*")|(\b\d+(?:\.\d+)?\b)|(\btype\b|\bz\b(?=\.))|(\b(?:string|number|boolean|null|unknown|Record)\b)|([{}[\]()<>|?:,.=])|([A-Za-z_$][\w$]*)|(\s+|.)/g;function Zn(e){let t=[],n=!1;for(let r of e.matchAll(Xn)){let[e,i,a,o,s,c,l]=r,u=`${r.index}-${e}`;i||a?t.push((0,h.jsx)(`span`,{className:`text-sage-400`,children:e},u)):o?(n=e===`type`,t.push((0,h.jsx)(`span`,{className:`text-sienna-400`,children:e},u))):s?t.push((0,h.jsx)(`span`,{className:`text-blue-300`,children:e},u)):c?t.push((0,h.jsx)(`span`,{className:`text-sand-500`,children:e},u)):l&&n?(n=!1,t.push((0,h.jsx)(`span`,{className:`font-semibold text-sand-50`,children:e},u))):t.push(e)}return t}function Qn({id:e}){let{data:t}=a.useResponseTypeTs(e),[n,r]=(0,m.useState)(`zod`),{zod:i=null,typescript:o=null}=t??{},s=n===`zod`?i??o:o??i,c=(0,m.useMemo)(()=>s===null?null:Zn(s),[s]);return!t||s===null||c===null?null:(0,h.jsxs)(`div`,{className:`panel overflow-hidden`,children:[(0,h.jsxs)(`div`,{className:`panel-header flex items-center px-4 py-2`,children:[(0,h.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider text-sand-500 font-medium`,children:`Response Type`}),(0,h.jsx)(`div`,{className:`ml-auto flex gap-1`,children:[{value:`zod`,label:`zod`,available:i!==null},{value:`ts`,label:`ts`,available:o!==null}].map(e=>(0,h.jsx)(`button`,{type:`button`,disabled:!e.available,className:`px-3 py-1 text-[12px] font-mono rounded-md transition-colors ${n===e.value?`bg-sand-200 text-sand-700`:`text-sand-400 hover:text-sand-600 disabled:text-sand-300 disabled:cursor-not-allowed`}`,onClick:()=>r(e.value),children:e.label},e.value))})]}),(0,h.jsxs)(`div`,{className:`relative`,children:[(0,h.jsx)(J,{text:s,dark:!0}),(0,h.jsx)(`pre`,{className:`bg-sand-900 px-4 py-3 text-[12px] text-sand-200 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed max-h-64 overflow-auto`,children:c})]})]})}function $n({id:e}){let{data:n,isLoading:r}=a.useRequestLog(`A`,e),{data:o}=i.useRequestLogSteps(`T`,{request_log_id:e,num:0,page:1,orderBy:`id-asc`}),s=Wn(o?.rows??[]);if(r)return(0,h.jsxs)(`div`,{className:`max-w-6xl mx-auto space-y-4`,children:[(0,h.jsx)(`div`,{className:`h-4 w-32 bg-sand-200 rounded animate-pulse`}),(0,h.jsx)(`div`,{className:`h-40 panel animate-pulse`}),(0,h.jsx)(`div`,{className:`h-32 panel animate-pulse`})]});if(!n)return(0,h.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,h.jsxs)(t,{to:`/logs`,className:`flex items-center gap-1 text-[13px] text-sand-500 hover:text-sienna-500 mb-4`,children:[(0,h.jsx)(gn,{className:`size-3.5`}),`Back to Logs`]}),(0,h.jsx)(`p`,{className:`text-sand-400 text-sm`,children:`Request not found.`})]});let c=s.flatMap(e=>e.toolCalls),l=c.find(e=>e.toolName===`image_generation`)?.id??null,u=s.length>0,d=Nn(n),f=n.history??null,p=f!==null&&f.length>0,m=n.tools??null,g=m!==null&&m.length>0,_=n.is_structured?(0,h.jsx)(Qn,{id:e}):null,v=(0,h.jsxs)(`div`,{className:`space-y-4`,children:[(0,h.jsx)(X,{title:`System`,children:(0,h.jsxs)(`div`,{className:`relative`,children:[(0,h.jsx)(J,{text:n.system_prompt??`null`}),(0,h.jsx)(Y,{text:n.system_prompt??`null`,markdown:!0})]})}),(0,h.jsx)(X,{title:`User`,children:(0,h.jsxs)(`div`,{className:`space-y-3`,children:[(0,h.jsxs)(`div`,{className:`relative`,children:[(0,h.jsx)(J,{text:n.user_prompt??`null`}),(0,h.jsx)(Y,{text:n.user_prompt??`null`,markdown:!0})]}),(0,h.jsx)(zn,{stepId:l})]})})]});return(0,h.jsxs)(`div`,{className:`mx-auto space-y-4 ${u?`max-w-[120rem]`:`max-w-6xl`}`,children:[(0,h.jsxs)(t,{to:`/logs`,className:`inline-flex items-center gap-1 text-[13px] text-sand-500 hover:text-sienna-500 transition-colors`,children:[(0,h.jsx)(gn,{className:`size-3.5`}),`Back to Logs`]}),(0,h.jsx)(On,{data:n}),n.error_message&&(0,h.jsx)(Dn,{message:n.error_message}),p&&(0,h.jsx)(Jn,{history:f}),g&&(0,h.jsx)(Yn,{tools:m}),u?(0,h.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 items-stretch lg:items-start`,children:[(0,h.jsxs)(`div`,{className:`order-1 lg:order-2 flex-1 min-w-0 space-y-4`,children:[_,(0,h.jsx)(Un,{steps:s,tokensPerSecEnabled:d})]}),(0,h.jsx)(`div`,{className:`order-2 lg:order-1 flex-1 min-w-0`,children:v})]}):(0,h.jsxs)(h.Fragment,{children:[_,v]}),(0,h.jsx)(X,{title:`Response`,children:(0,h.jsxs)(`div`,{className:`relative`,children:[(0,h.jsx)(J,{text:n.response}),(0,h.jsx)(Y,{text:n.response,markdown:!0})]})}),(0,h.jsx)(kn,{data:n,toolCallCount:c.length}),(0,h.jsx)(`div`,{className:`pb-8`})]})}export{yn as component};
|