@cartanova/qgrid-cli 2.9.9 → 2.10.0

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.
Files changed (26) hide show
  1. package/bundle/dist/application/qgrid/qgrid.frame.js +7 -2
  2. package/bundle/dist/application/qgrid/qgrid.types.js +3 -1
  3. package/bundle/dist/utils/providers/common/model-cost.js +9 -1
  4. package/bundle/src/application/qgrid/qgrid.frame.test.ts +3 -2
  5. package/bundle/src/application/qgrid/qgrid.frame.ts +9 -3
  6. package/bundle/src/application/qgrid/qgrid.types.ts +2 -0
  7. package/bundle/src/utils/providers/common/effort.test.ts +1 -0
  8. package/bundle/src/utils/providers/common/model-cost.test.ts +4 -0
  9. package/bundle/src/utils/providers/common/model-cost.ts +12 -0
  10. package/bundle/src/utils/providers/openai/openai-dispatcher.test.ts +1 -0
  11. package/bundle/web-dist/client/assets/{index-D8VwLsuq.js → index-BfwrIBHs.js} +3 -3
  12. package/bundle/web-dist/client/assets/{logs-_T8KV5ne.js → logs-Brit-LqB.js} +1 -1
  13. package/bundle/web-dist/client/assets/{monit-DRCrtO2j.js → monit-DrYZkisv.js} +1 -1
  14. package/bundle/web-dist/client/assets/{routes-5A6mia6C.js → routes-C8Y6olae.js} +1 -1
  15. package/bundle/web-dist/client/assets/{settings-BpP9WVFI.js → settings-CdVqtDQ5.js} +1 -1
  16. package/bundle/web-dist/client/assets/{show-D5ifZXdy.js → show-2B2X9MkO.js} +1 -1
  17. package/bundle/web-dist/client/assets/{tokens-Cfe6WvLK.js → tokens-CxXtdk9o.js} +1 -1
  18. package/bundle/web-dist/client/assets/{use-oauth-login-flow-BTLUGhwh.js → use-oauth-login-flow-B9EqnwY9.js} +1 -1
  19. package/bundle/web-dist/client/index.html +1 -1
  20. package/bundle/web-dist/server/entry-server.generated.js +3 -3
  21. package/package.json +1 -1
  22. package/skills/qgrid/SKILL.md +6 -0
  23. package/skills/qgrid/references/ai-sdk-provider-contract.md +4 -0
  24. package/skills/qgrid/references/openai-codex-runtime.md +16 -2
  25. package/skills/qgrid/references/request-log-run-lifecycle.md +2 -0
  26. package/skills/qgrid/references/sonamu-api-web-flow.md +1 -1
@@ -1,2 +1,2 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{_ as t,l as n}from"./vendor-tanstack-DJRQAbrY.js";import{i as r,r as i}from"./vendor-react-DH4kUfK2.js";import{i as a,r as o}from"./services.generated-Bg2XkD-D.js";import{c as s,l as c,o as l,t as u}from"./index-D8VwLsuq.js";import{n as d,t as f}from"./cost-CpjVoAqp.js";import{t as p}from"./request-model-eygfdRv7.js";function m(){return m=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},m.apply(null,arguments)}function h(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 g=e(r()),_=i(),v={},y=(0,g.createContext)(v),b=(e,t)=>m({},e,t),x=()=>(0,g.useContext)(y),S=(0,g.createContext)(()=>{});S.displayName=`JVR.DispatchShowTools`;function C(){return(0,g.useReducer)(b,v)}function w(){return(0,g.useContext)(S)}var T=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(y.Provider,{value:t,children:(0,_.jsx)(S.Provider,{value:n,children:r})})};T.displayName=`JVR.ShowTools`;var E={},D=(0,g.createContext)(E),ee=(e,t)=>m({},e,t),O=()=>(0,g.useContext)(D),k=(0,g.createContext)(()=>{});k.displayName=`JVR.DispatchExpands`;function te(){return(0,g.useReducer)(ee,E)}function ne(){return(0,g.useContext)(k)}var re=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(D.Provider,{value:t,children:(0,_.jsx)(k.Provider,{value:n,children:r})})};re.displayName=`JVR.Expands`;var ie={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`}},ae=(0,g.createContext)(ie),oe=(e,t)=>m({},e,t),A=()=>(0,g.useContext)(ae),j=(0,g.createContext)(()=>{});j.displayName=`JVR.DispatchTypes`;function se(){return(0,g.useReducer)(oe,ie)}function ce(){return(0,g.useContext)(j)}function le(e){var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(ae.Provider,{value:t,children:(0,_.jsx)(j.Provider,{value:n,children:r})})}le.displayName=`JVR.Types`;var ue=[`style`];function de(e){var{style:t}=e,n=h(e,ue);return(0,_.jsx)(`svg`,m({viewBox:`0 0 24 24`,fill:`var(--w-rjv-arrow-color, currentColor)`,style:m({cursor:`pointer`,height:`1em`,width:`1em`,userSelect:`none`,display:`inline-flex`},t)},n,{children:(0,_.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,_.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,g.createContext)(fe),me=(e,t)=>m({},e,t),M=()=>(0,g.useContext)(pe),he=(0,g.createContext)(()=>{});he.displayName=`JVR.DispatchSymbols`;function ge(){return(0,g.useReducer)(me,fe)}function _e(){return(0,g.useContext)(he)}var ve=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(pe.Provider,{value:t,children:(0,_.jsx)(he.Provider,{value:n,children:r})})};ve.displayName=`JVR.Symbols`;var ye={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`}},be=(0,g.createContext)(ye),xe=(e,t)=>m({},e,t),N=()=>(0,g.useContext)(be),Se=(0,g.createContext)(()=>{});Se.displayName=`JVR.DispatchSection`;function Ce(){return(0,g.useReducer)(xe,ye)}function we(){return(0,g.useContext)(Se)}var Te=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(be.Provider,{value:t,children:(0,_.jsx)(Se.Provider,{value:n,children:r})})};Te.displayName=`JVR.Section`;var Ee={objectSortKeys:!1,indentWidth:15},De=(0,g.createContext)(Ee);De.displayName=`JVR.Context`;var Oe=(0,g.createContext)(()=>{});Oe.displayName=`JVR.DispatchContext`;function ke(e,t){return m({},e,t)}var P=()=>(0,g.useContext)(De),Ae=e=>{var{children:t,initialState:n,initialTypes:r}=e,[i,a]=(0,g.useReducer)(ke,Object.assign({},Ee,n)),[o,s]=C(),[c,l]=te(),[u,d]=se(),[f,p]=ge(),[h,v]=Ce();return(0,g.useEffect)(()=>a(m({},n)),[n]),(0,_.jsx)(De.Provider,{value:i,children:(0,_.jsx)(Oe.Provider,{value:a,children:(0,_.jsx)(T,{initial:o,dispatch:s,children:(0,_.jsx)(re,{initial:c,dispatch:l,children:(0,_.jsx)(le,{initial:m({},u,r),dispatch:d,children:(0,_.jsx)(ve,{initial:f,dispatch:p,children:(0,_.jsx)(Te,{initial:h,dispatch:v,children:t})})})})})})})};Ae.displayName=`JVR.Provider`;function je(e){if(e==null)throw TypeError(`Cannot destructure `+e)}var Me=[`isNumber`,`value`,`parentValue`,`keyName`,`keys`],Ne=[`as`,`render`],Pe=[`as`,`render`],Fe=[`as`,`render`],Ie=[`as`,`style`,`render`],Le=[`as`,`render`],Re=[`as`,`render`],ze=[`as`,`render`],Be=[`as`,`render`],F=e=>{var{Quote:t={}}=M(),{isNumber:n,value:r,parentValue:i,keyName:a,keys:o}=e,s=h(e,Me);if(n)return null;var{as:c,render:l}=t,u=h(t,Ne),d=c||`span`,f=m({},s,u);return typeof f.children==`string`&&(f.children=f.children.trim()||void 0),l&&typeof l==`function`&&l(f,{value:r,parentValue:i,keyName:a,keys:o||(a?[a]:[])})||(0,_.jsx)(d,m({},f))};F.displayName=`JVR.Quote`;var I=e=>{var{ValueQuote:t={}}=M(),n=m({},(je(e),e)),{as:r,render:i}=t,a=h(t,Pe),o=r||`span`,s=m({},n,a);return i&&typeof i==`function`&&i(s,{})||(0,_.jsx)(o,m({},s))};I.displayName=`JVR.ValueQuote`;var Ve=e=>{var{value:t,parentValue:n,keyName:r,keys:i}=e,{Colon:a={}}=M(),{as:o,render:s}=a,c=h(a,Fe),l=o||`span`;return s&&typeof s==`function`&&s(c,{value:t,parentValue:n,keyName:r,keys:i||(r?[r]:[])})||(0,_.jsx)(l,m({},c))};Ve.displayName=`JVR.Colon`;var He=e=>{var{Arrow:t={}}=M(),n=O(),{expandKey:r,style:i,value:a,parentValue:o,keyName:s,keys:c}=e,l=!!n[r],{as:u,style:d,render:f}=t,p=h(t,Ie),g=u||`span`,v=f&&typeof f==`function`,y=m({},p,{"data-expanded":l,style:m({},d,i)});return v&&f(y,{value:a,parentValue:o,keyName:s,keys:c||(s?[s]:[])})||(0,_.jsx)(g,m({},p,{style:m({},d,i)}))};He.displayName=`JVR.Arrow`;var Ue=e=>{var{isBrackets:t,value:n,parentValue:r,keyName:i,keys:a}=e,{BracketsLeft:o={},BraceLeft:s={}}=M(),c={value:n,parentValue:r,keyName:i,keys:a||(i?[i]:[])};if(t){var{as:l,render:u}=o,d=h(o,Le),f=l||`span`;return u&&typeof u==`function`&&u(d,c)||(0,_.jsx)(f,m({},d))}var{as:p,render:g}=s,v=h(s,Re),y=p||`span`;return g&&typeof g==`function`&&g(v,c)||(0,_.jsx)(y,m({},v))};Ue.displayName=`JVR.BracketsOpen`;var L=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={}}=M();if(t){var{as:u,render:d}=c,f=h(c,ze),p=u||`span`;return d&&typeof d==`function`&&d(f,s)||(0,_.jsx)(p,m({},f))}var{as:g,render:v}=l,y=h(l,Be),b=g||`span`;return v&&typeof v==`function`&&v(y,s)||(0,_.jsx)(b,m({},y))};L.displayName=`JVR.BracketsClose`;var We=e=>{var{keyName:t,value:n,expandKey:r,parentValue:i,level:a,keys:o=[]}=e,s=O(),{collapsed:c,shouldExpandNodeInitially:l}=P(),u=typeof c==`boolean`?c:typeof c==`number`?a>c:!1,d=s[r]??(l?!1:u),f=l&&l(!d,{value:n,keys:o,level:a,keyName:t,parentValue:i});if(l&&c===!1){if(s[r]===void 0&&!f)return null}else if(s[r]===void 0&&f)return null;var p=Object.keys(n).length;if(d||p===0)return null;var h={paddingLeft:4},g={keyName:t,value:n,keys:o,parentValue:i},v=Array.isArray(n),y=n instanceof Set;return(0,_.jsx)(`div`,{style:h,children:(0,_.jsx)(L,m({isBrackets:v||y},g,{isVisiable:!0}))})};We.displayName=`JVR.NestedClose`;var 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`],tt=[`as`,`render`],nt=[`as`,`render`],rt=[`as`,`render`],R=e=>{if(e===void 0)return`0n`;if(typeof e==`string`)try{e=BigInt(e)}catch{return`0n`}return e?e.toString()+`n`:`0n`},it=e=>{var{value:t,keyName:n}=e,{Set:r={},displayDataTypes:i}=A();if(!(t instanceof Set)||!i)return null;var{as:a,render:o}=r,s=h(r,Ge);return o&&typeof o==`function`&&o(s,{type:`type`,value:t,keyName:n})||(0,_.jsx)(a||`span`,m({},s))};it.displayName=`JVR.SetComp`;var at=e=>{var{value:t,keyName:n}=e,{Map:r={},displayDataTypes:i}=A();if(!(t instanceof Map)||!i)return null;var{as:a,render:o}=r,s=h(r,Ke);return o&&typeof o==`function`&&o(s,{type:`type`,value:t,keyName:n})||(0,_.jsx)(a||`span`,m({},s))};at.displayName=`JVR.MapComp`;var z={opacity:.75,paddingRight:4},ot=e=>{var{children:t=``,keyName:n,keys:r}=e,{Str:i={},displayDataTypes:a}=A(),{shortenTextAfterLength:o=30,stringEllipsis:s=`...`}=P(),{as:c,render:l}=i,u=h(i,qe),d=t,[f,p]=(0,g.useState)(o&&d.length>o);(0,g.useEffect)(()=>p(o&&d.length>o),[o]);var v=c||`span`,y=m({},z,i.style||{});o>0&&(u.style=m({},u.style,{cursor:d.length<=o?`initial`:`pointer`}),d.length>o&&(u.onClick=()=>{p(!f)}));var b=f?``+d.slice(0,o)+s:d,x=l&&typeof l==`function`,S=x&&l(m({},u,{style:y}),{type:`type`,value:t,keyName:n,keys:r}),C=f?`w-rjv-value w-rjv-value-short`:`w-rjv-value`,w=x&&l(m({},u,{children:b,className:C}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(S||(0,_.jsx)(v,m({},u,{style:y}))),w||(0,_.jsxs)(g.Fragment,{children:[(0,_.jsx)(I,{}),(0,_.jsx)(v,m({},u,{className:C,children:b})),(0,_.jsx)(I,{})]})]})};ot.displayName=`JVR.TypeString`;var st=e=>{var{children:t,keyName:n,keys:r}=e,{True:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Je),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};st.displayName=`JVR.TypeTrue`;var ct=e=>{var{children:t,keyName:n,keys:r}=e,{False:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Ye),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};ct.displayName=`JVR.TypeFalse`;var lt=e=>{var{children:t,keyName:n,keys:r}=e,{Float:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Xe),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};lt.displayName=`JVR.TypeFloat`;var ut=e=>{var{children:t,keyName:n,keys:r}=e,{Int:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Ze),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};ut.displayName=`JVR.TypeInt`;var dt=e=>{var{children:t,keyName:n,keys:r}=e,{Bigint:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Qe),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:R(t?.toString())}))]})};dt.displayName=`JVR.TypeFloat`;var ft=e=>{var{children:t,keyName:n,keys:r}=e,{Url:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,$e),l=o||`span`,u=m({},z,i.style),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t?.href,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsxs)(`a`,m({href:t?.href,target:`_blank`},c,{className:`w-rjv-value`,children:[(0,_.jsx)(I,{}),t?.href,(0,_.jsx)(I,{})]}))]})};ft.displayName=`JVR.TypeUrl`;var pt=e=>{var{children:t,keyName:n,keys:r}=e,{Date:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,et),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=t instanceof Date?t.toLocaleString():t,v=d&&s(m({},c,{children:p,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),v||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:p}))]})};pt.displayName=`JVR.TypeDate`;var mt=e=>{var{children:t,keyName:n,keys:r}=e,{Undefined:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,tt),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p]})};mt.displayName=`JVR.TypeUndefined`;var ht=e=>{var{children:t,keyName:n,keys:r}=e,{Null:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,nt),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p]})};ht.displayName=`JVR.TypeNull`;var gt=e=>{var{children:t,keyName:n,keys:r}=e,{Nan:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,rt),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t?.toString(),className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p]})};gt.displayName=`JVR.TypeNan`;var _t=e=>Number(e)===e&&e%1!=0||isNaN(e),vt=e=>{var{value:t,keyName:n,keys:r}=e,i={keyName:n,keys:r};return t instanceof URL?(0,_.jsx)(ft,m({},i,{children:t})):typeof t==`string`?(0,_.jsx)(ot,m({},i,{children:t})):t===!0?(0,_.jsx)(st,m({},i,{children:t})):t===!1?(0,_.jsx)(ct,m({},i,{children:t})):t===null?(0,_.jsx)(ht,m({},i,{children:t})):t===void 0?(0,_.jsx)(mt,m({},i,{children:t})):t instanceof Date?(0,_.jsx)(pt,m({},i,{children:t})):typeof t==`number`&&isNaN(t)?(0,_.jsx)(gt,m({},i,{children:t})):typeof t==`number`&&_t(t)?(0,_.jsx)(lt,m({},i,{children:t})):typeof t==`bigint`?(0,_.jsx)(dt,m({},i,{children:t})):typeof t==`number`?(0,_.jsx)(ut,m({},i,{children:t})):null};vt.displayName=`JVR.Value`;function B(e,t,n){var r=_e(),i=m({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:m({},e.style,t.style),children:t.children||e.children});(0,g.useEffect)(()=>r({[n]:i}),[t])}function V(e,t,n){var r=ce(),i=m({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:m({},e.style,t.style),children:t.children||e.children});(0,g.useEffect)(()=>r({[n]:i}),[t])}function H(e,t,n){var r=we(),i=m({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:m({},e.style,t.style),children:t.children||e.children});(0,g.useEffect)(()=>r({[n]:i}),[t])}var yt=[`as`,`render`],bt=e=>{var{KeyName:t={}}=N();return H(t,e,`KeyName`),null};bt.displayName=`JVR.KeyName`;var xt=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={}}=N(),{as:c,render:l}=s,u=h(s,yt);u.style=m({},u.style,o);var d=c||`span`;return l&&typeof l==`function`&&l(m({},u,{children:t}),{value:n,parentValue:r,keyName:i,keys:a||(i?[i]:[])})||(0,_.jsx)(d,m({},u,{children:t}))};xt.displayName=`JVR.KeyNameComp`;var St=[`children`,`value`,`parentValue`,`keyName`,`keys`],Ct=[`as`,`render`,`children`],wt=e=>{var{Row:t={}}=N();return H(t,e,`Row`),null};wt.displayName=`JVR.Row`;var Tt=e=>{var{children:t,value:n,parentValue:r,keyName:i,keys:a}=e,o=h(e,St),{Row:s={}}=N(),{as:c,render:l}=s,u=h(s,Ct),d=c||`div`;return l&&typeof l==`function`&&l(m({},o,u,{children:t}),{value:n,keyName:i,parentValue:r,keys:a})||(0,_.jsx)(d,m({},o,u,{children:t}))};Tt.displayName=`JVR.RowComp`;function Et(e){var t=(0,g.useRef)();return(0,g.useEffect)(()=>{t.current=e}),t.current}function Dt(e){var{value:t,highlightUpdates:n,highlightContainer:r}=e,i=Et(t),a=(0,g.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,g.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 Ot=[`keyName`,`value`,`parentValue`,`expandKey`,`keys`,`beforeCopy`],kt=[`as`,`render`],U=e=>{var{keyName:t,value:n,parentValue:r,expandKey:i,keys:a,beforeCopy:o}=e,s=h(e,Ot),{onCopied:c,enableClipboard:l,beforeCopy:u}=P(),d=x()[i],[f,p]=(0,g.useState)(!1),{Copied:v={}}=N(),y=v?.beforeCopy;if(l===!1||!d)return null;var b={style:{display:`inline-flex`},fill:f?`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`?R(n):n instanceof Date?n.toLocaleString():JSON.stringify(n,(e,t)=>typeof t==`bigint`?R(t):t,2);var l=o||y||u;l&&typeof l==`function`&&(s=l(s,t,n,r,i,a)),c&&c(s,n),p(!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(()=>{p(!1),clearTimeout(e)},3e3)}).catch(e=>{})}},{render:S}=v,C=h(v,kt),w=m({},C,s,b,{style:m({},C.style,s.style,b.style)});return S&&typeof S==`function`&&S(m({},w,{"data-copied":f}),{value:n,keyName:t,keys:a,parentValue:r})||(f?(0,_.jsx)(`svg`,m({viewBox:`0 0 32 36`},w,{children:(0,_.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,_.jsx)(`svg`,m({viewBox:`0 0 32 36`},w,{children:(0,_.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`})})))};U.displayName=`JVR.Copied`;function At(){var e=(0,g.useRef)(null);return e.current===null&&(e.current=`custom-id-`+Math.random().toString(36).substr(2,9)),e.current}var jt=e=>{var{keyName:t,value:n,expandKey:r=``,level:i,keys:a=[],parentValue:o}=e,s=O(),{objectSortKeys:c,indentWidth:l,collapsed:u,shouldExpandNodeInitially:d}=P(),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 h=Array.isArray(n)?Object.entries(n).map(e=>[Number(e[0]),e[1]]):Object.entries(n);return c&&(h=c===!0?h.sort((e,t)=>{var[n]=e,[r]=t;return typeof n==`string`&&typeof r==`string`?n.localeCompare(r):0}):h.sort((e,t)=>{var[n,r]=e,[i,a]=t;return typeof n==`string`&&typeof i==`string`?c(n,i,r,a):0})),(0,_.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:h.map((e,t)=>{var[r,o]=e;return(0,_.jsx)(Nt,{parentValue:n,keyName:r,keys:[...a,r],value:o,level:i},t)})})};jt.displayName=`JVR.KeyValues`;var Mt=e=>{var{keyName:t,parentValue:n,keys:r,value:i}=e,{highlightUpdates:a}=P(),o=typeof t==`number`,s=(0,g.useRef)(null);Dt({value:i,highlightUpdates:a,highlightContainer:s});var c={keyName:t,value:i,keys:r,parentValue:n};return(0,_.jsxs)(g.Fragment,{children:[(0,_.jsxs)(`span`,{ref:s,children:[(0,_.jsx)(F,m({isNumber:o,"data-placement":`left`},c)),(0,_.jsx)(xt,m({},c,{children:t})),(0,_.jsx)(F,m({isNumber:o,"data-placement":`right`},c))]}),(0,_.jsx)(Ve,m({},c))]})};Mt.displayName=`JVR.KayName`;var Nt=e=>{var{keyName:t,value:n,parentValue:r,level:i=0,keys:a=[]}=e,o=w(),s=At(),c=Array.isArray(n),l=n instanceof Set,u=n instanceof Map,d=n instanceof Date,f=n instanceof URL;return n&&typeof n==`object`&&!c&&!l&&!u&&!d&&!f||c||l||u?(0,_.jsx)(qt,{keyName:t,value:l?Array.from(n):u?Object.fromEntries(n):n,parentValue:r,initialValue:n,keys:a,level:i+1}):(0,_.jsxs)(Tt,m({className:`w-rjv-line`,value:n,keyName:t,keys:a,parentValue:r},{onMouseEnter:()=>o({[s]:!0}),onMouseLeave:()=>o({[s]:!1})},{children:[(0,_.jsx)(Mt,{keyName:t,value:n,keys:a,parentValue:r}),(0,_.jsx)(vt,{keyName:t,value:n,keys:a}),(0,_.jsx)(U,{keyName:t,value:n,keys:a,parentValue:r,expandKey:s})]}))};Nt.displayName=`JVR.KeyValuesItem`;var Pt=[`value`,`keyName`],Ft=[`as`,`render`],It=e=>{var{CountInfoExtra:t={}}=N();return H(t,e,`CountInfoExtra`),null};It.displayName=`JVR.CountInfoExtra`;var Lt=e=>{var{value:t={},keyName:n}=e,r=h(e,Pt),{CountInfoExtra:i={}}=N(),{as:a,render:o}=i,s=h(i,Ft);if(!o&&!s.children)return null;var c=a||`span`,l=o&&typeof o==`function`,u=m({},s,r);return l&&o(u,{value:t,keyName:n})||(0,_.jsx)(c,m({},u))};Lt.displayName=`JVR.CountInfoExtraComps`;var Rt=[`value`,`keyName`],zt=[`as`,`render`],Bt=e=>{var{CountInfo:t={}}=N();return H(t,e,`CountInfo`),null};Bt.displayName=`JVR.CountInfo`;var Vt=e=>{var{value:t={},keyName:n}=e,r=h(e,Rt),{displayObjectSize:i}=P(),{CountInfo:a={}}=N();if(!i)return null;var{as:o,render:s}=a,c=h(a,zt),l=o||`span`;c.style=m({},c.style,e.style);var u=Object.keys(t).length;c.children||=u+` item`+(u===1?``:`s`);var d=m({},c,r);return s&&typeof s==`function`&&s(m({},d,{"data-length":u}),{value:t,keyName:n})||(0,_.jsx)(l,m({},d))};Vt.displayName=`JVR.CountInfoComp`;var Ht=[`as`,`render`],Ut=e=>{var{Ellipsis:t={}}=N();return H(t,e,`Ellipsis`),null};Ut.displayName=`JVR.Ellipsis`;var Wt=e=>{var{isExpanded:t,value:n,keyName:r}=e,{Ellipsis:i={}}=N(),{as:a,render:o}=i,s=h(i,Ht),c=a||`span`;return o&&typeof o==`function`&&o(m({},s,{"data-expanded":t}),{value:n,keyName:r})||(!t||typeof n==`object`&&Object.keys(n).length==0?null:(0,_.jsx)(c,m({},s)))};Wt.displayName=`JVR.EllipsisComp`;var Gt=e=>{var{keyName:t,expandKey:n,keys:r=[],initialValue:i,value:a,parentValue:o,level:s}=e,c=O(),l=ne(),{onExpand:u,collapsed:d,shouldExpandNodeInitially:f}=P(),p=typeof d==`boolean`?d:typeof d==`number`?s>d:!1,h=c[n]??(f?!1:p),g=f&&f(!h,{value:a,keys:r,level:s,keyName:t,parentValue:o});c[n]===void 0&&f&&(h=!g);var v=()=>{var e={expand:!h,value:a,keyid:n,keyName:t};u&&u(e),l({[n]:e.expand})},y={display:`inline-flex`,alignItems:`center`},b={transform:`rotate(`+(h?`-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 D={keyName:t,value:a,keys:r,parentValue:o};return(0,_.jsxs)(`span`,m({},E,{children:[T&&(0,_.jsx)(He,m({style:b,expandKey:n},D)),(t||typeof t==`number`)&&(0,_.jsx)(Mt,m({},D)),(0,_.jsx)(it,{value:i,keyName:t}),(0,_.jsx)(at,{value:i,keyName:t}),(0,_.jsx)(Ue,m({isBrackets:C||w},D)),(0,_.jsx)(Wt,{keyName:t,value:a,isExpanded:h}),(0,_.jsx)(L,m({isVisiable:h||!T,isBrackets:C||w},D)),(0,_.jsx)(Vt,{value:a,keyName:t}),(0,_.jsx)(Lt,{value:a,keyName:t}),(0,_.jsx)(U,{keyName:t,value:a,expandKey:n,parentValue:o,keys:r})]}))};Gt.displayName=`JVR.NestedOpen`;var Kt=[`className`,`children`,`parentValue`,`keyid`,`level`,`value`,`initialValue`,`keys`,`keyName`],qt=(0,g.forwardRef)((e,t)=>{var{className:n=``,parentValue:r,level:i=1,value:a,initialValue:o,keys:s,keyName:c}=e,l=h(e,Kt),u=w(),d=At();return(0,_.jsxs)(`div`,m({className:[n,`w-rjv-inner`].filter(Boolean).join(` `),ref:t},l,{onMouseEnter:()=>u({[d]:!0}),onMouseLeave:()=>u({[d]:!1})},{children:[(0,_.jsx)(Gt,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c,initialValue:o}),(0,_.jsx)(jt,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c}),(0,_.jsx)(We,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c})]}))});qt.displayName=`JVR.Container`;var Jt=e=>{var{BraceLeft:t={}}=M();return B(t,e,`BraceLeft`),null};Jt.displayName=`JVR.BraceLeft`;var Yt=e=>{var{BraceRight:t={}}=M();return B(t,e,`BraceRight`),null};Yt.displayName=`JVR.BraceRight`;var Xt=e=>{var{BracketsLeft:t={}}=M();return B(t,e,`BracketsLeft`),null};Xt.displayName=`JVR.BracketsLeft`;var Zt=e=>{var{BracketsRight:t={}}=M();return B(t,e,`BracketsRight`),null};Zt.displayName=`JVR.BracketsRight`;var Qt=e=>{var{Arrow:t={}}=M();return B(t,e,`Arrow`),null};Qt.displayName=`JVR.Arrow`;var $t=e=>{var{Colon:t={}}=M();return B(t,e,`Colon`),null};$t.displayName=`JVR.Colon`;var en=e=>{var{Quote:t={}}=M();return B(t,e,`Quote`),null};en.displayName=`JVR.Quote`;var tn=e=>{var{ValueQuote:t={}}=M();return B(t,e,`ValueQuote`),null};tn.displayName=`JVR.ValueQuote`;var nn=e=>{var{Bigint:t={}}=A();return V(t,e,`Bigint`),null};nn.displayName=`JVR.Bigint`;var rn=e=>{var{Date:t={}}=A();return V(t,e,`Date`),null};rn.displayName=`JVR.Date`;var an=e=>{var{False:t={}}=A();return V(t,e,`False`),null};an.displayName=`JVR.False`;var on=e=>{var{Float:t={}}=A();return V(t,e,`Float`),null};on.displayName=`JVR.Float`;var sn=e=>{var{Int:t={}}=A();return V(t,e,`Int`),null};sn.displayName=`JVR.Int`;var cn=e=>{var{Map:t={}}=A();return V(t,e,`Map`),null};cn.displayName=`JVR.Map`;var ln=e=>{var{Nan:t={}}=A();return V(t,e,`Nan`),null};ln.displayName=`JVR.Nan`;var un=e=>{var{Null:t={}}=A();return V(t,e,`Null`),null};un.displayName=`JVR.Null`;var dn=e=>{var{Set:t={}}=A();return V(t,e,`Set`),null};dn.displayName=`JVR.Set`;var fn=e=>{var{Str:t={}}=A();return V(t,e,`Str`),null};fn.displayName=`JVR.StringText`;var pn=e=>{var{True:t={}}=A();return V(t,e,`True`),null};pn.displayName=`JVR.True`;var mn=e=>{var{Undefined:t={}}=A();return V(t,e,`Undefined`),null};mn.displayName=`JVR.Undefined`;var hn=e=>{var{Url:t={}}=A();return V(t,e,`Url`),null};hn.displayName=`JVR.Url`;var gn=e=>{var{Copied:t={}}=N();return H(t,e,`Copied`),null};gn.displayName=`JVR.Copied`;var _n=[`className`,`style`,`value`,`children`,`collapsed`,`shouldExpandNodeInitially`,`indentWidth`,`displayObjectSize`,`shortenTextAfterLength`,`stringEllipsis`,`highlightUpdates`,`enableClipboard`,`displayDataTypes`,`objectSortKeys`,`onExpand`,`onCopied`,`beforeCopy`],W=(0,g.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:f=!0,enableClipboard:p=!0,displayDataTypes:g=!0,objectSortKeys:v=!1,onExpand:y,onCopied:b,beforeCopy:x}=e,S=h(e,_n),C=m({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,_.jsxs)(Ae,{initialState:{value:i,objectSortKeys:v,indentWidth:c,shouldExpandNodeInitially:o===!1?s:void 0,displayObjectSize:l,collapsed:o,enableClipboard:p,shortenTextAfterLength:u,stringEllipsis:d,highlightUpdates:f,onCopied:b,onExpand:y,beforeCopy:x},initialTypes:{displayDataTypes:g},children:[(0,_.jsx)(qt,m({value:i},S,{ref:t,className:w,style:C})),a]})});W.Bigint=nn,W.Date=rn,W.False=an,W.Float=on,W.Int=sn,W.Map=cn,W.Nan=ln,W.Null=un,W.Set=dn,W.String=fn,W.True=pn,W.Undefined=mn,W.Url=hn,W.ValueQuote=tn,W.Arrow=Qt,W.Colon=$t,W.Quote=en,W.Ellipsis=Ut,W.BraceLeft=Jt,W.BraceRight=Yt,W.BracketsLeft=Xt,W.BracketsRight=Zt,W.Copied=gn,W.CountInfo=Bt,W.CountInfoExtra=It,W.KeyName=bt,W.Row=wt,W.displayName=`JVR.JsonView`;var vn={"--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`},yn=e=>(0,_.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,_.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`m12 19l-7-7l7-7m7 7H5`})}),bn=e=>(0,_.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,_.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M20 6L9 17l-5-5`})}),G=e=>(0,_.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,_.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`m6 9l6 6l6-6`})}),xn=e=>(0,_.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,_.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,children:[(0,_.jsx)(`rect`,{width:14,height:14,x:8,y:8,rx:2,ry:2}),(0,_.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 Sn(){let{id:e}=u.useSearch();return(0,_.jsx)(cr,{id:e})}function K(e){return e.toLocaleString()}var Cn=new Set;function wn(e){try{return{ok:!0,value:JSON.parse(e)}}catch{return{ok:!1}}}function Tn(e){if(!e)return{};try{return JSON.parse(e)}catch{return e}}function q({text:e,dark:t}){let[n,r]=(0,g.useState)(!1);return(0,g.useEffect)(()=>{if(!n)return;let e=setTimeout(()=>r(!1),1500);return()=>clearTimeout(e)},[n]),(0,_.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,_.jsx)(bn,{className:`size-3.5 text-sage-500`}):(0,_.jsx)(xn,{className:`size-3.5`})})}var En=/<img\s+[^>]*src=["'](data:image\/[^"']+;base64,[^"']+)["'][^>]*(?:alt=["']([^"']*)["'][^>]*)?\/?>/gi;function Dn(e){let t=[],n=0;for(let r of e.matchAll(En)){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 On({text:e,markdown:t}){let[n,r]=(0,g.useState)(null),i=Dn(e);return i.some(e=>e.type===`image`)?(0,_.jsxs)(`div`,{className:`space-y-3`,children:[i.map((e,n)=>e.type===`text`?t?(0,_.jsx)(`div`,{className:`prose prose-sm prose-qgrid max-w-none`,children:(0,_.jsx)(c,{remarkPlugins:[s],children:e.text})},`text-${n}`):(0,_.jsx)(`pre`,{className:`text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed`,children:e.text},`text-${n}`):(0,_.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,_.jsx)(`img`,{src:e.src,alt:e.alt,className:`max-h-[520px] max-w-full object-contain`,loading:`lazy`})},`image-${n}`)),n&&(0,_.jsxs)(`div`,{className:`fixed inset-0 z-50 bg-black/70 p-4 flex items-center justify-center`,onClick:()=>r(null),children:[(0,_.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,_.jsx)(l,{className:`size-5`})}),(0,_.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,_.jsx)(`div`,{className:`prose prose-sm prose-qgrid max-w-none`,children:(0,_.jsx)(c,{remarkPlugins:[s],children:e})}):(0,_.jsx)(`pre`,{className:`text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed`,children:e})}function J({text:e,markdown:t}){let n=wn(e),[r,i]=(0,g.useState)(`pretty`),a=n.ok&&n.value!==null&&(Array.isArray(n.value)||typeof n.value==`object`);return!n.ok||!a?t?(0,_.jsx)(On,{text:e,markdown:!0}):(0,_.jsx)(On,{text:n.ok?JSON.stringify(n.value,null,2):e}):(0,_.jsxs)(`div`,{children:[(0,_.jsxs)(`div`,{className:`flex gap-1 mb-2`,children:[(0,_.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,_.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,_.jsx)(W,{value:n.value,style:vn,displayDataTypes:!1,enableClipboard:!0,collapsed:!1}):(0,_.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 Y({title:e,defaultOpen:t=!0,headerMetadata:n,onOpenChange:r,children:i}){let[a,o]=(0,g.useState)(t);return(0,_.jsxs)(`details`,{open:a,className:`group panel overflow-hidden`,onToggle:e=>{let t=e.currentTarget.open;o(t),r?.(t)},children:[(0,_.jsxs)(`summary`,{className:`panel-header flex min-w-0 items-center gap-1.5 whitespace-nowrap cursor-pointer select-none list-none px-4 py-2.5`,children:[(0,_.jsx)(G,{className:`size-3.5 shrink-0 text-sand-400 transition-transform group-open:rotate-0 -rotate-90`}),(0,_.jsx)(`span`,{className:`shrink-0 text-[11px] uppercase tracking-wider text-sand-500 font-medium`,children:e}),n&&(0,_.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden whitespace-nowrap text-[11px] normal-case text-sand-400`,children:n})]}),(0,_.jsx)(`div`,{className:`p-4`,children:i})]})}function X({label:e,value:t}){return(0,_.jsxs)(`div`,{className:`min-w-0`,children:[(0,_.jsx)(`dt`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium truncate`,children:e}),(0,_.jsx)(`dd`,{className:`text-[15px] font-semibold text-sand-800 tabular-nums mt-0.5 truncate`,children:t})]})}var kn={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 An({message:e}){return(0,_.jsxs)(`div`,{className:`panel overflow-hidden border border-red-200 bg-red-50/60`,children:[(0,_.jsx)(`div`,{className:`px-4 py-2.5 border-b border-red-100 flex items-center gap-1.5`,children:(0,_.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider text-red-600 font-medium`,children:`Error`})}),(0,_.jsx)(`div`,{className:`p-4`,children:(0,_.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 jn({data:e}){let t=e.status===`running`,n=p({status:e.status,requestedModel:e.requested_model_name,servedModel:e.model_name,imageCostMethod:e.image_cost_method}),r=!t&&e.requested_model_name!==null&&e.model_name===null;return(0,_.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,_.jsx)(`span`,{className:`text-[15px] font-semibold text-sand-900 break-all`,children:n.label===`—`?`Unknown model`:n.label}),r&&(0,_.jsx)(`span`,{className:`text-[10px] text-sand-400`,children:`요청`}),!t&&(e.fallback_count??0)>0&&(0,_.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,_.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded-full font-medium uppercase ${kn[e.status]??`bg-sand-100 text-sand-500`}`,children:e.status}),e.response_json_ok===!1&&(0,_.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,_.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,_.jsxs)(`span`,{className:`text-[12px] text-sand-400`,children:[`· project=`,e.project_name]}),(0,_.jsx)(`span`,{className:`ml-auto text-[11px] text-sand-400`,children:e.token_name})]})}function Mn({data:e,toolCallCount:t}){let n=In(e);return(0,_.jsxs)(`div`,{className:`panel overflow-hidden px-5 py-3 space-y-3`,children:[(0,_.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-x-6 gap-y-3`,children:[(0,_.jsx)(X,{label:`Duration`,value:`${(e.duration_ms/1e3).toFixed(1)}s`}),(0,_.jsx)(X,{label:`TTFT`,value:Pn(e.ttft_ms)}),(0,_.jsx)(X,{label:`Tokens/sec`,value:Ln(e.output_tokens,e.duration_ms,e.ttft_ms,n)}),(0,_.jsx)(X,{label:`Driver Cost`,value:e.cost_usd===null?`—`:d(e.cost_usd)}),(0,_.jsx)(X,{label:`Cost Source`,value:e.cost_source??`legacy`}),(0,_.jsx)(X,{label:`Image Cost`,value:e.image_cost_usd===null?`—`:d(e.image_cost_usd)}),(0,_.jsx)(X,{label:`Tool Calls`,value:`${t}회`})]}),(0,_.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,_.jsx)(X,{label:`Input`,value:K(e.input_tokens)}),(0,_.jsx)(X,{label:`Output`,value:K(e.output_tokens)}),(0,_.jsx)(X,{label:`Cache Read`,value:K(e.cache_read_tokens)}),(0,_.jsx)(X,{label:`Cache Write`,value:K(e.cache_creation_tokens)}),(0,_.jsx)(X,{label:`Cache Write (5m)`,value:e.cache_creation_5m_tokens===null?`—`:K(e.cache_creation_5m_tokens)}),(0,_.jsx)(X,{label:`Cache Write (1h)`,value:e.cache_creation_1h_tokens===null?`—`:K(e.cache_creation_1h_tokens)}),(0,_.jsx)(X,{label:`Cache Hit`,value:f(e)})]})]})}function Nn(e){return e==null?`—`:e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}function Pn(e){return e==null||e<=0?`—`:Nn(e)}function Fn(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 In(e){let t=Fn(e);return t!==null&&Cn.has(t)}function Ln(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 Z({label:e,value:t}){return(0,_.jsxs)(`div`,{className:`min-w-0`,children:[(0,_.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium truncate`,children:e}),(0,_.jsx)(`div`,{className:`mt-0.5 text-[13px] font-semibold text-sand-800 tabular-nums truncate`,children:t})]})}function Rn(e){if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e.inputImages;return Array.isArray(t)?t:void 0}function zn(e){return(Rn(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 Bn(e){if(!e||typeof e!=`object`||Array.isArray(e))return e;let t=e,n=Rn(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 Vn({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,_.jsxs)(`div`,{children:[(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Input Images`}),(0,_.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,_.jsxs)(`div`,{className:`rounded-md border border-sand-200 bg-white overflow-hidden`,children:[(0,_.jsx)(`img`,{src:n,alt:`reference ${t+1}`,className:`max-h-64 w-full object-contain bg-white`,loading:`lazy`}),(0,_.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 Hn({stepId:e}){let{data:t}=a.useRequestLogStep(`I`,e??0,{enabled:e!==null});return(0,_.jsx)(Vn,{images:zn(t?Tn(t.tool_args):null)})}function Un({entry:e}){let t=!!e.error,[n,r]=(0,g.useState)(!1),{data:i}=a.useRequestLogStep(`A`,e.id,{enabled:n}),o=Bn(i?Tn(i.tool_args):null),s=i?Tn(i.tool_result):null,c=i?.error??e.error;return(0,_.jsxs)(`details`,{className:`group/tool`,onToggle:e=>r(e.currentTarget.open),children:[(0,_.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,_.jsx)(G,{className:`size-3 text-sand-400 transition-transform group-open/tool:rotate-0 -rotate-90 shrink-0`}),(0,_.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,_.jsx)(`span`,{className:`text-[13px] font-medium text-sand-800 font-mono truncate`,children:e.toolName}),t&&(0,_.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,_.jsx)(`span`,{className:`ml-auto text-[11px] text-sand-400 tabular-nums shrink-0`,children:Nn(e.durationMs)})]}),n&&(0,_.jsxs)(`div`,{className:`mt-1 mx-1 mb-3 space-y-2`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Request`}),(0,_.jsx)(`div`,{className:`mt-1 rounded-md bg-sand-50 p-3 overflow-auto`,children:(0,_.jsx)(J,{text:i?JSON.stringify(o):`Loading...`})})]}),c&&(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-red-500 font-medium px-2`,children:`Error`}),(0,_.jsx)(`div`,{className:`mt-1 rounded-md bg-red-50 border border-red-100 p-3 overflow-auto`,children:(0,_.jsx)(J,{text:c})})]}),(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Response`}),(0,_.jsx)(`div`,{className:`mt-1 rounded-md bg-sand-50 p-3 overflow-auto`,children:(0,_.jsx)(J,{text:i?typeof s==`string`?s:JSON.stringify(s):`Loading...`,markdown:!0})})]})]})]})}function Wn({stepId:e}){let[t,n]=(0,g.useState)(!1),{data:r}=a.useRequestLogStep(`A`,e,{enabled:t}),i=r?.reasoning_text??null;return(0,_.jsxs)(`details`,{className:`group/reason mt-3`,onToggle:e=>n(e.currentTarget.open),children:[(0,_.jsxs)(`summary`,{className:`flex items-center gap-2 cursor-pointer select-none list-none`,children:[(0,_.jsx)(G,{className:`size-3 text-sand-400 transition-transform group-open/reason:rotate-0 -rotate-90 shrink-0`}),(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium`,children:`Reasoning`})]}),t&&(0,_.jsx)(`div`,{className:`mt-2 rounded-md bg-white/70 border border-sand-100 p-3 overflow-auto`,children:i?(0,_.jsx)(J,{text:i,markdown:!0}):r?(0,_.jsx)(`p`,{className:`text-sm text-sand-400`,children:`No reasoning text captured.`}):(0,_.jsx)(`p`,{className:`text-sm text-sand-400`,children:`Loading...`})})]})}function Gn({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,_.jsxs)(`details`,{open:!0,className:`group/step border-l border-sand-200 pl-3`,children:[(0,_.jsxs)(`summary`,{className:`flex items-center gap-2 py-2 cursor-pointer select-none list-none`,children:[(0,_.jsx)(G,{className:`size-3.5 text-sand-400 transition-transform group-open/step:rotate-0 -rotate-90 shrink-0`}),(0,_.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,_.jsx)(`span`,{className:`text-[13px] font-semibold text-sand-900`,children:`LLM call`}),n?.finishReason&&(0,_.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,_.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,_.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,_.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,_.jsxs)(`span`,{className:`ml-auto text-[11px] text-sand-400 tabular-nums shrink-0`,children:[e.toolCalls.length,` tools`]})]}),(0,_.jsxs)(`div`,{className:`ml-4 mb-4 space-y-3`,children:[n&&(0,_.jsxs)(`div`,{className:`rounded-md border border-sand-100 bg-sand-50/70 p-3`,children:[(0,_.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,_.jsx)(Z,{label:`Duration`,value:Nn(n.durationMs)}),(0,_.jsx)(Z,{label:`TTFT`,value:Pn(n.ttftMs)}),(0,_.jsx)(Z,{label:`Tokens/sec`,value:Ln(n.outputTokens,n.durationMs,n.ttftMs,t)}),(0,_.jsx)(Z,{label:`Input`,value:K(n.inputTokens??0)}),(0,_.jsx)(Z,{label:`Output`,value:K(n.outputTokens??0)}),(0,_.jsx)(Z,{label:`Cache Read`,value:K(n.cacheReadTokens??0)}),(0,_.jsx)(Z,{label:`Cache Write`,value:K(n.cacheCreationTokens??0)}),(0,_.jsx)(Z,{label:`Cache 5m / 1h`,value:`${n.cacheCreation5mTokens===null?`—`:K(n.cacheCreation5mTokens)} / ${n.cacheCreation1hTokens===null?`—`:K(n.cacheCreation1hTokens)}`}),(0,_.jsx)(Z,{label:`Cost`,value:n.costUsd===null?`—`:d(n.costUsd)}),(0,_.jsx)(Z,{label:`Cost Source`,value:n.costSource??`legacy`}),(0,_.jsx)(Z,{label:`Reasoning`,value:n.reasoningTokens!==null&&n.reasoningTokens!==void 0?K(n.reasoningTokens):`—`})]}),r&&(0,_.jsx)(Wn,{stepId:n.id})]}),e.toolCalls.length>0&&(0,_.jsx)(`div`,{className:`space-y-0.5`,children:e.toolCalls.map(e=>(0,_.jsx)(Un,{entry:e},`${e.stepIndex}-${e.callIndex}-${e.toolCallId}`))})]})]})}function Kn({steps:e,tokensPerSecEnabled:t}){let n=e.reduce((e,t)=>e+t.toolCalls.length,0);return(0,_.jsx)(Y,{title:`Steps (${e.length} steps · ${n} tool calls)`,defaultOpen:!0,children:(0,_.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>(0,_.jsx)(Gn,{entry:e,tokensPerSecEnabled:t},e.stepIndex))})})}function qn(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 Jn(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 Yn(e){return e.type===`function_call`?`fn: ${e.name??`unknown`}`:e.type===`function_call_output`?`fn result`:e.role??e.type}function Xn(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(`
1
+ import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{_ as t,l as n}from"./vendor-tanstack-DJRQAbrY.js";import{i as r,r as i}from"./vendor-react-DH4kUfK2.js";import{i as a,r as o}from"./services.generated-Bg2XkD-D.js";import{c as s,l as c,o as l,t as u}from"./index-BfwrIBHs.js";import{n as d,t as f}from"./cost-CpjVoAqp.js";import{t as p}from"./request-model-eygfdRv7.js";function m(){return m=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},m.apply(null,arguments)}function h(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 g=e(r()),_=i(),v={},y=(0,g.createContext)(v),b=(e,t)=>m({},e,t),x=()=>(0,g.useContext)(y),S=(0,g.createContext)(()=>{});S.displayName=`JVR.DispatchShowTools`;function C(){return(0,g.useReducer)(b,v)}function w(){return(0,g.useContext)(S)}var T=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(y.Provider,{value:t,children:(0,_.jsx)(S.Provider,{value:n,children:r})})};T.displayName=`JVR.ShowTools`;var E={},D=(0,g.createContext)(E),ee=(e,t)=>m({},e,t),O=()=>(0,g.useContext)(D),k=(0,g.createContext)(()=>{});k.displayName=`JVR.DispatchExpands`;function te(){return(0,g.useReducer)(ee,E)}function ne(){return(0,g.useContext)(k)}var re=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(D.Provider,{value:t,children:(0,_.jsx)(k.Provider,{value:n,children:r})})};re.displayName=`JVR.Expands`;var ie={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`}},ae=(0,g.createContext)(ie),oe=(e,t)=>m({},e,t),A=()=>(0,g.useContext)(ae),j=(0,g.createContext)(()=>{});j.displayName=`JVR.DispatchTypes`;function se(){return(0,g.useReducer)(oe,ie)}function ce(){return(0,g.useContext)(j)}function le(e){var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(ae.Provider,{value:t,children:(0,_.jsx)(j.Provider,{value:n,children:r})})}le.displayName=`JVR.Types`;var ue=[`style`];function de(e){var{style:t}=e,n=h(e,ue);return(0,_.jsx)(`svg`,m({viewBox:`0 0 24 24`,fill:`var(--w-rjv-arrow-color, currentColor)`,style:m({cursor:`pointer`,height:`1em`,width:`1em`,userSelect:`none`,display:`inline-flex`},t)},n,{children:(0,_.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,_.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,g.createContext)(fe),me=(e,t)=>m({},e,t),M=()=>(0,g.useContext)(pe),he=(0,g.createContext)(()=>{});he.displayName=`JVR.DispatchSymbols`;function ge(){return(0,g.useReducer)(me,fe)}function _e(){return(0,g.useContext)(he)}var ve=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(pe.Provider,{value:t,children:(0,_.jsx)(he.Provider,{value:n,children:r})})};ve.displayName=`JVR.Symbols`;var ye={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`}},be=(0,g.createContext)(ye),xe=(e,t)=>m({},e,t),N=()=>(0,g.useContext)(be),Se=(0,g.createContext)(()=>{});Se.displayName=`JVR.DispatchSection`;function Ce(){return(0,g.useReducer)(xe,ye)}function we(){return(0,g.useContext)(Se)}var Te=e=>{var{initial:t,dispatch:n,children:r}=e;return(0,_.jsx)(be.Provider,{value:t,children:(0,_.jsx)(Se.Provider,{value:n,children:r})})};Te.displayName=`JVR.Section`;var Ee={objectSortKeys:!1,indentWidth:15},De=(0,g.createContext)(Ee);De.displayName=`JVR.Context`;var Oe=(0,g.createContext)(()=>{});Oe.displayName=`JVR.DispatchContext`;function ke(e,t){return m({},e,t)}var P=()=>(0,g.useContext)(De),Ae=e=>{var{children:t,initialState:n,initialTypes:r}=e,[i,a]=(0,g.useReducer)(ke,Object.assign({},Ee,n)),[o,s]=C(),[c,l]=te(),[u,d]=se(),[f,p]=ge(),[h,v]=Ce();return(0,g.useEffect)(()=>a(m({},n)),[n]),(0,_.jsx)(De.Provider,{value:i,children:(0,_.jsx)(Oe.Provider,{value:a,children:(0,_.jsx)(T,{initial:o,dispatch:s,children:(0,_.jsx)(re,{initial:c,dispatch:l,children:(0,_.jsx)(le,{initial:m({},u,r),dispatch:d,children:(0,_.jsx)(ve,{initial:f,dispatch:p,children:(0,_.jsx)(Te,{initial:h,dispatch:v,children:t})})})})})})})};Ae.displayName=`JVR.Provider`;function je(e){if(e==null)throw TypeError(`Cannot destructure `+e)}var Me=[`isNumber`,`value`,`parentValue`,`keyName`,`keys`],Ne=[`as`,`render`],Pe=[`as`,`render`],Fe=[`as`,`render`],Ie=[`as`,`style`,`render`],Le=[`as`,`render`],Re=[`as`,`render`],ze=[`as`,`render`],Be=[`as`,`render`],F=e=>{var{Quote:t={}}=M(),{isNumber:n,value:r,parentValue:i,keyName:a,keys:o}=e,s=h(e,Me);if(n)return null;var{as:c,render:l}=t,u=h(t,Ne),d=c||`span`,f=m({},s,u);return typeof f.children==`string`&&(f.children=f.children.trim()||void 0),l&&typeof l==`function`&&l(f,{value:r,parentValue:i,keyName:a,keys:o||(a?[a]:[])})||(0,_.jsx)(d,m({},f))};F.displayName=`JVR.Quote`;var I=e=>{var{ValueQuote:t={}}=M(),n=m({},(je(e),e)),{as:r,render:i}=t,a=h(t,Pe),o=r||`span`,s=m({},n,a);return i&&typeof i==`function`&&i(s,{})||(0,_.jsx)(o,m({},s))};I.displayName=`JVR.ValueQuote`;var Ve=e=>{var{value:t,parentValue:n,keyName:r,keys:i}=e,{Colon:a={}}=M(),{as:o,render:s}=a,c=h(a,Fe),l=o||`span`;return s&&typeof s==`function`&&s(c,{value:t,parentValue:n,keyName:r,keys:i||(r?[r]:[])})||(0,_.jsx)(l,m({},c))};Ve.displayName=`JVR.Colon`;var He=e=>{var{Arrow:t={}}=M(),n=O(),{expandKey:r,style:i,value:a,parentValue:o,keyName:s,keys:c}=e,l=!!n[r],{as:u,style:d,render:f}=t,p=h(t,Ie),g=u||`span`,v=f&&typeof f==`function`,y=m({},p,{"data-expanded":l,style:m({},d,i)});return v&&f(y,{value:a,parentValue:o,keyName:s,keys:c||(s?[s]:[])})||(0,_.jsx)(g,m({},p,{style:m({},d,i)}))};He.displayName=`JVR.Arrow`;var Ue=e=>{var{isBrackets:t,value:n,parentValue:r,keyName:i,keys:a}=e,{BracketsLeft:o={},BraceLeft:s={}}=M(),c={value:n,parentValue:r,keyName:i,keys:a||(i?[i]:[])};if(t){var{as:l,render:u}=o,d=h(o,Le),f=l||`span`;return u&&typeof u==`function`&&u(d,c)||(0,_.jsx)(f,m({},d))}var{as:p,render:g}=s,v=h(s,Re),y=p||`span`;return g&&typeof g==`function`&&g(v,c)||(0,_.jsx)(y,m({},v))};Ue.displayName=`JVR.BracketsOpen`;var L=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={}}=M();if(t){var{as:u,render:d}=c,f=h(c,ze),p=u||`span`;return d&&typeof d==`function`&&d(f,s)||(0,_.jsx)(p,m({},f))}var{as:g,render:v}=l,y=h(l,Be),b=g||`span`;return v&&typeof v==`function`&&v(y,s)||(0,_.jsx)(b,m({},y))};L.displayName=`JVR.BracketsClose`;var We=e=>{var{keyName:t,value:n,expandKey:r,parentValue:i,level:a,keys:o=[]}=e,s=O(),{collapsed:c,shouldExpandNodeInitially:l}=P(),u=typeof c==`boolean`?c:typeof c==`number`?a>c:!1,d=s[r]??(l?!1:u),f=l&&l(!d,{value:n,keys:o,level:a,keyName:t,parentValue:i});if(l&&c===!1){if(s[r]===void 0&&!f)return null}else if(s[r]===void 0&&f)return null;var p=Object.keys(n).length;if(d||p===0)return null;var h={paddingLeft:4},g={keyName:t,value:n,keys:o,parentValue:i},v=Array.isArray(n),y=n instanceof Set;return(0,_.jsx)(`div`,{style:h,children:(0,_.jsx)(L,m({isBrackets:v||y},g,{isVisiable:!0}))})};We.displayName=`JVR.NestedClose`;var 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`],tt=[`as`,`render`],nt=[`as`,`render`],rt=[`as`,`render`],R=e=>{if(e===void 0)return`0n`;if(typeof e==`string`)try{e=BigInt(e)}catch{return`0n`}return e?e.toString()+`n`:`0n`},it=e=>{var{value:t,keyName:n}=e,{Set:r={},displayDataTypes:i}=A();if(!(t instanceof Set)||!i)return null;var{as:a,render:o}=r,s=h(r,Ge);return o&&typeof o==`function`&&o(s,{type:`type`,value:t,keyName:n})||(0,_.jsx)(a||`span`,m({},s))};it.displayName=`JVR.SetComp`;var at=e=>{var{value:t,keyName:n}=e,{Map:r={},displayDataTypes:i}=A();if(!(t instanceof Map)||!i)return null;var{as:a,render:o}=r,s=h(r,Ke);return o&&typeof o==`function`&&o(s,{type:`type`,value:t,keyName:n})||(0,_.jsx)(a||`span`,m({},s))};at.displayName=`JVR.MapComp`;var z={opacity:.75,paddingRight:4},ot=e=>{var{children:t=``,keyName:n,keys:r}=e,{Str:i={},displayDataTypes:a}=A(),{shortenTextAfterLength:o=30,stringEllipsis:s=`...`}=P(),{as:c,render:l}=i,u=h(i,qe),d=t,[f,p]=(0,g.useState)(o&&d.length>o);(0,g.useEffect)(()=>p(o&&d.length>o),[o]);var v=c||`span`,y=m({},z,i.style||{});o>0&&(u.style=m({},u.style,{cursor:d.length<=o?`initial`:`pointer`}),d.length>o&&(u.onClick=()=>{p(!f)}));var b=f?``+d.slice(0,o)+s:d,x=l&&typeof l==`function`,S=x&&l(m({},u,{style:y}),{type:`type`,value:t,keyName:n,keys:r}),C=f?`w-rjv-value w-rjv-value-short`:`w-rjv-value`,w=x&&l(m({},u,{children:b,className:C}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(S||(0,_.jsx)(v,m({},u,{style:y}))),w||(0,_.jsxs)(g.Fragment,{children:[(0,_.jsx)(I,{}),(0,_.jsx)(v,m({},u,{className:C,children:b})),(0,_.jsx)(I,{})]})]})};ot.displayName=`JVR.TypeString`;var st=e=>{var{children:t,keyName:n,keys:r}=e,{True:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Je),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};st.displayName=`JVR.TypeTrue`;var ct=e=>{var{children:t,keyName:n,keys:r}=e,{False:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Ye),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};ct.displayName=`JVR.TypeFalse`;var lt=e=>{var{children:t,keyName:n,keys:r}=e,{Float:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Xe),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};lt.displayName=`JVR.TypeFloat`;var ut=e=>{var{children:t,keyName:n,keys:r}=e,{Int:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Ze),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:t?.toString()}))]})};ut.displayName=`JVR.TypeInt`;var dt=e=>{var{children:t,keyName:n,keys:r}=e,{Bigint:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,Qe),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:R(t?.toString())}))]})};dt.displayName=`JVR.TypeFloat`;var ft=e=>{var{children:t,keyName:n,keys:r}=e,{Url:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,$e),l=o||`span`,u=m({},z,i.style),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t?.href,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p||(0,_.jsxs)(`a`,m({href:t?.href,target:`_blank`},c,{className:`w-rjv-value`,children:[(0,_.jsx)(I,{}),t?.href,(0,_.jsx)(I,{})]}))]})};ft.displayName=`JVR.TypeUrl`;var pt=e=>{var{children:t,keyName:n,keys:r}=e,{Date:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,et),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=t instanceof Date?t.toLocaleString():t,v=d&&s(m({},c,{children:p,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),v||(0,_.jsx)(l,m({},c,{className:`w-rjv-value`,children:p}))]})};pt.displayName=`JVR.TypeDate`;var mt=e=>{var{children:t,keyName:n,keys:r}=e,{Undefined:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,tt),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p]})};mt.displayName=`JVR.TypeUndefined`;var ht=e=>{var{children:t,keyName:n,keys:r}=e,{Null:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,nt),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t,className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p]})};ht.displayName=`JVR.TypeNull`;var gt=e=>{var{children:t,keyName:n,keys:r}=e,{Nan:i={},displayDataTypes:a}=A(),{as:o,render:s}=i,c=h(i,rt),l=o||`span`,u=m({},z,i.style||{}),d=s&&typeof s==`function`,f=d&&s(m({},c,{style:u}),{type:`type`,value:t,keyName:n,keys:r}),p=d&&s(m({},c,{children:t?.toString(),className:`w-rjv-value`}),{type:`value`,value:t,keyName:n,keys:r});return(0,_.jsxs)(g.Fragment,{children:[a&&(f||(0,_.jsx)(l,m({},c,{style:u}))),p]})};gt.displayName=`JVR.TypeNan`;var _t=e=>Number(e)===e&&e%1!=0||isNaN(e),vt=e=>{var{value:t,keyName:n,keys:r}=e,i={keyName:n,keys:r};return t instanceof URL?(0,_.jsx)(ft,m({},i,{children:t})):typeof t==`string`?(0,_.jsx)(ot,m({},i,{children:t})):t===!0?(0,_.jsx)(st,m({},i,{children:t})):t===!1?(0,_.jsx)(ct,m({},i,{children:t})):t===null?(0,_.jsx)(ht,m({},i,{children:t})):t===void 0?(0,_.jsx)(mt,m({},i,{children:t})):t instanceof Date?(0,_.jsx)(pt,m({},i,{children:t})):typeof t==`number`&&isNaN(t)?(0,_.jsx)(gt,m({},i,{children:t})):typeof t==`number`&&_t(t)?(0,_.jsx)(lt,m({},i,{children:t})):typeof t==`bigint`?(0,_.jsx)(dt,m({},i,{children:t})):typeof t==`number`?(0,_.jsx)(ut,m({},i,{children:t})):null};vt.displayName=`JVR.Value`;function B(e,t,n){var r=_e(),i=m({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:m({},e.style,t.style),children:t.children||e.children});(0,g.useEffect)(()=>r({[n]:i}),[t])}function V(e,t,n){var r=ce(),i=m({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:m({},e.style,t.style),children:t.children||e.children});(0,g.useEffect)(()=>r({[n]:i}),[t])}function H(e,t,n){var r=we(),i=m({},e,t,{className:[e.className,t.className].filter(Boolean).join(` `),style:m({},e.style,t.style),children:t.children||e.children});(0,g.useEffect)(()=>r({[n]:i}),[t])}var yt=[`as`,`render`],bt=e=>{var{KeyName:t={}}=N();return H(t,e,`KeyName`),null};bt.displayName=`JVR.KeyName`;var xt=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={}}=N(),{as:c,render:l}=s,u=h(s,yt);u.style=m({},u.style,o);var d=c||`span`;return l&&typeof l==`function`&&l(m({},u,{children:t}),{value:n,parentValue:r,keyName:i,keys:a||(i?[i]:[])})||(0,_.jsx)(d,m({},u,{children:t}))};xt.displayName=`JVR.KeyNameComp`;var St=[`children`,`value`,`parentValue`,`keyName`,`keys`],Ct=[`as`,`render`,`children`],wt=e=>{var{Row:t={}}=N();return H(t,e,`Row`),null};wt.displayName=`JVR.Row`;var Tt=e=>{var{children:t,value:n,parentValue:r,keyName:i,keys:a}=e,o=h(e,St),{Row:s={}}=N(),{as:c,render:l}=s,u=h(s,Ct),d=c||`div`;return l&&typeof l==`function`&&l(m({},o,u,{children:t}),{value:n,keyName:i,parentValue:r,keys:a})||(0,_.jsx)(d,m({},o,u,{children:t}))};Tt.displayName=`JVR.RowComp`;function Et(e){var t=(0,g.useRef)();return(0,g.useEffect)(()=>{t.current=e}),t.current}function Dt(e){var{value:t,highlightUpdates:n,highlightContainer:r}=e,i=Et(t),a=(0,g.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,g.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 Ot=[`keyName`,`value`,`parentValue`,`expandKey`,`keys`,`beforeCopy`],kt=[`as`,`render`],U=e=>{var{keyName:t,value:n,parentValue:r,expandKey:i,keys:a,beforeCopy:o}=e,s=h(e,Ot),{onCopied:c,enableClipboard:l,beforeCopy:u}=P(),d=x()[i],[f,p]=(0,g.useState)(!1),{Copied:v={}}=N(),y=v?.beforeCopy;if(l===!1||!d)return null;var b={style:{display:`inline-flex`},fill:f?`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`?R(n):n instanceof Date?n.toLocaleString():JSON.stringify(n,(e,t)=>typeof t==`bigint`?R(t):t,2);var l=o||y||u;l&&typeof l==`function`&&(s=l(s,t,n,r,i,a)),c&&c(s,n),p(!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(()=>{p(!1),clearTimeout(e)},3e3)}).catch(e=>{})}},{render:S}=v,C=h(v,kt),w=m({},C,s,b,{style:m({},C.style,s.style,b.style)});return S&&typeof S==`function`&&S(m({},w,{"data-copied":f}),{value:n,keyName:t,keys:a,parentValue:r})||(f?(0,_.jsx)(`svg`,m({viewBox:`0 0 32 36`},w,{children:(0,_.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,_.jsx)(`svg`,m({viewBox:`0 0 32 36`},w,{children:(0,_.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`})})))};U.displayName=`JVR.Copied`;function At(){var e=(0,g.useRef)(null);return e.current===null&&(e.current=`custom-id-`+Math.random().toString(36).substr(2,9)),e.current}var jt=e=>{var{keyName:t,value:n,expandKey:r=``,level:i,keys:a=[],parentValue:o}=e,s=O(),{objectSortKeys:c,indentWidth:l,collapsed:u,shouldExpandNodeInitially:d}=P(),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 h=Array.isArray(n)?Object.entries(n).map(e=>[Number(e[0]),e[1]]):Object.entries(n);return c&&(h=c===!0?h.sort((e,t)=>{var[n]=e,[r]=t;return typeof n==`string`&&typeof r==`string`?n.localeCompare(r):0}):h.sort((e,t)=>{var[n,r]=e,[i,a]=t;return typeof n==`string`&&typeof i==`string`?c(n,i,r,a):0})),(0,_.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:h.map((e,t)=>{var[r,o]=e;return(0,_.jsx)(Nt,{parentValue:n,keyName:r,keys:[...a,r],value:o,level:i},t)})})};jt.displayName=`JVR.KeyValues`;var Mt=e=>{var{keyName:t,parentValue:n,keys:r,value:i}=e,{highlightUpdates:a}=P(),o=typeof t==`number`,s=(0,g.useRef)(null);Dt({value:i,highlightUpdates:a,highlightContainer:s});var c={keyName:t,value:i,keys:r,parentValue:n};return(0,_.jsxs)(g.Fragment,{children:[(0,_.jsxs)(`span`,{ref:s,children:[(0,_.jsx)(F,m({isNumber:o,"data-placement":`left`},c)),(0,_.jsx)(xt,m({},c,{children:t})),(0,_.jsx)(F,m({isNumber:o,"data-placement":`right`},c))]}),(0,_.jsx)(Ve,m({},c))]})};Mt.displayName=`JVR.KayName`;var Nt=e=>{var{keyName:t,value:n,parentValue:r,level:i=0,keys:a=[]}=e,o=w(),s=At(),c=Array.isArray(n),l=n instanceof Set,u=n instanceof Map,d=n instanceof Date,f=n instanceof URL;return n&&typeof n==`object`&&!c&&!l&&!u&&!d&&!f||c||l||u?(0,_.jsx)(qt,{keyName:t,value:l?Array.from(n):u?Object.fromEntries(n):n,parentValue:r,initialValue:n,keys:a,level:i+1}):(0,_.jsxs)(Tt,m({className:`w-rjv-line`,value:n,keyName:t,keys:a,parentValue:r},{onMouseEnter:()=>o({[s]:!0}),onMouseLeave:()=>o({[s]:!1})},{children:[(0,_.jsx)(Mt,{keyName:t,value:n,keys:a,parentValue:r}),(0,_.jsx)(vt,{keyName:t,value:n,keys:a}),(0,_.jsx)(U,{keyName:t,value:n,keys:a,parentValue:r,expandKey:s})]}))};Nt.displayName=`JVR.KeyValuesItem`;var Pt=[`value`,`keyName`],Ft=[`as`,`render`],It=e=>{var{CountInfoExtra:t={}}=N();return H(t,e,`CountInfoExtra`),null};It.displayName=`JVR.CountInfoExtra`;var Lt=e=>{var{value:t={},keyName:n}=e,r=h(e,Pt),{CountInfoExtra:i={}}=N(),{as:a,render:o}=i,s=h(i,Ft);if(!o&&!s.children)return null;var c=a||`span`,l=o&&typeof o==`function`,u=m({},s,r);return l&&o(u,{value:t,keyName:n})||(0,_.jsx)(c,m({},u))};Lt.displayName=`JVR.CountInfoExtraComps`;var Rt=[`value`,`keyName`],zt=[`as`,`render`],Bt=e=>{var{CountInfo:t={}}=N();return H(t,e,`CountInfo`),null};Bt.displayName=`JVR.CountInfo`;var Vt=e=>{var{value:t={},keyName:n}=e,r=h(e,Rt),{displayObjectSize:i}=P(),{CountInfo:a={}}=N();if(!i)return null;var{as:o,render:s}=a,c=h(a,zt),l=o||`span`;c.style=m({},c.style,e.style);var u=Object.keys(t).length;c.children||=u+` item`+(u===1?``:`s`);var d=m({},c,r);return s&&typeof s==`function`&&s(m({},d,{"data-length":u}),{value:t,keyName:n})||(0,_.jsx)(l,m({},d))};Vt.displayName=`JVR.CountInfoComp`;var Ht=[`as`,`render`],Ut=e=>{var{Ellipsis:t={}}=N();return H(t,e,`Ellipsis`),null};Ut.displayName=`JVR.Ellipsis`;var Wt=e=>{var{isExpanded:t,value:n,keyName:r}=e,{Ellipsis:i={}}=N(),{as:a,render:o}=i,s=h(i,Ht),c=a||`span`;return o&&typeof o==`function`&&o(m({},s,{"data-expanded":t}),{value:n,keyName:r})||(!t||typeof n==`object`&&Object.keys(n).length==0?null:(0,_.jsx)(c,m({},s)))};Wt.displayName=`JVR.EllipsisComp`;var Gt=e=>{var{keyName:t,expandKey:n,keys:r=[],initialValue:i,value:a,parentValue:o,level:s}=e,c=O(),l=ne(),{onExpand:u,collapsed:d,shouldExpandNodeInitially:f}=P(),p=typeof d==`boolean`?d:typeof d==`number`?s>d:!1,h=c[n]??(f?!1:p),g=f&&f(!h,{value:a,keys:r,level:s,keyName:t,parentValue:o});c[n]===void 0&&f&&(h=!g);var v=()=>{var e={expand:!h,value:a,keyid:n,keyName:t};u&&u(e),l({[n]:e.expand})},y={display:`inline-flex`,alignItems:`center`},b={transform:`rotate(`+(h?`-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 D={keyName:t,value:a,keys:r,parentValue:o};return(0,_.jsxs)(`span`,m({},E,{children:[T&&(0,_.jsx)(He,m({style:b,expandKey:n},D)),(t||typeof t==`number`)&&(0,_.jsx)(Mt,m({},D)),(0,_.jsx)(it,{value:i,keyName:t}),(0,_.jsx)(at,{value:i,keyName:t}),(0,_.jsx)(Ue,m({isBrackets:C||w},D)),(0,_.jsx)(Wt,{keyName:t,value:a,isExpanded:h}),(0,_.jsx)(L,m({isVisiable:h||!T,isBrackets:C||w},D)),(0,_.jsx)(Vt,{value:a,keyName:t}),(0,_.jsx)(Lt,{value:a,keyName:t}),(0,_.jsx)(U,{keyName:t,value:a,expandKey:n,parentValue:o,keys:r})]}))};Gt.displayName=`JVR.NestedOpen`;var Kt=[`className`,`children`,`parentValue`,`keyid`,`level`,`value`,`initialValue`,`keys`,`keyName`],qt=(0,g.forwardRef)((e,t)=>{var{className:n=``,parentValue:r,level:i=1,value:a,initialValue:o,keys:s,keyName:c}=e,l=h(e,Kt),u=w(),d=At();return(0,_.jsxs)(`div`,m({className:[n,`w-rjv-inner`].filter(Boolean).join(` `),ref:t},l,{onMouseEnter:()=>u({[d]:!0}),onMouseLeave:()=>u({[d]:!1})},{children:[(0,_.jsx)(Gt,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c,initialValue:o}),(0,_.jsx)(jt,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c}),(0,_.jsx)(We,{expandKey:d,value:a,level:i,keys:s,parentValue:r,keyName:c})]}))});qt.displayName=`JVR.Container`;var Jt=e=>{var{BraceLeft:t={}}=M();return B(t,e,`BraceLeft`),null};Jt.displayName=`JVR.BraceLeft`;var Yt=e=>{var{BraceRight:t={}}=M();return B(t,e,`BraceRight`),null};Yt.displayName=`JVR.BraceRight`;var Xt=e=>{var{BracketsLeft:t={}}=M();return B(t,e,`BracketsLeft`),null};Xt.displayName=`JVR.BracketsLeft`;var Zt=e=>{var{BracketsRight:t={}}=M();return B(t,e,`BracketsRight`),null};Zt.displayName=`JVR.BracketsRight`;var Qt=e=>{var{Arrow:t={}}=M();return B(t,e,`Arrow`),null};Qt.displayName=`JVR.Arrow`;var $t=e=>{var{Colon:t={}}=M();return B(t,e,`Colon`),null};$t.displayName=`JVR.Colon`;var en=e=>{var{Quote:t={}}=M();return B(t,e,`Quote`),null};en.displayName=`JVR.Quote`;var tn=e=>{var{ValueQuote:t={}}=M();return B(t,e,`ValueQuote`),null};tn.displayName=`JVR.ValueQuote`;var nn=e=>{var{Bigint:t={}}=A();return V(t,e,`Bigint`),null};nn.displayName=`JVR.Bigint`;var rn=e=>{var{Date:t={}}=A();return V(t,e,`Date`),null};rn.displayName=`JVR.Date`;var an=e=>{var{False:t={}}=A();return V(t,e,`False`),null};an.displayName=`JVR.False`;var on=e=>{var{Float:t={}}=A();return V(t,e,`Float`),null};on.displayName=`JVR.Float`;var sn=e=>{var{Int:t={}}=A();return V(t,e,`Int`),null};sn.displayName=`JVR.Int`;var cn=e=>{var{Map:t={}}=A();return V(t,e,`Map`),null};cn.displayName=`JVR.Map`;var ln=e=>{var{Nan:t={}}=A();return V(t,e,`Nan`),null};ln.displayName=`JVR.Nan`;var un=e=>{var{Null:t={}}=A();return V(t,e,`Null`),null};un.displayName=`JVR.Null`;var dn=e=>{var{Set:t={}}=A();return V(t,e,`Set`),null};dn.displayName=`JVR.Set`;var fn=e=>{var{Str:t={}}=A();return V(t,e,`Str`),null};fn.displayName=`JVR.StringText`;var pn=e=>{var{True:t={}}=A();return V(t,e,`True`),null};pn.displayName=`JVR.True`;var mn=e=>{var{Undefined:t={}}=A();return V(t,e,`Undefined`),null};mn.displayName=`JVR.Undefined`;var hn=e=>{var{Url:t={}}=A();return V(t,e,`Url`),null};hn.displayName=`JVR.Url`;var gn=e=>{var{Copied:t={}}=N();return H(t,e,`Copied`),null};gn.displayName=`JVR.Copied`;var _n=[`className`,`style`,`value`,`children`,`collapsed`,`shouldExpandNodeInitially`,`indentWidth`,`displayObjectSize`,`shortenTextAfterLength`,`stringEllipsis`,`highlightUpdates`,`enableClipboard`,`displayDataTypes`,`objectSortKeys`,`onExpand`,`onCopied`,`beforeCopy`],W=(0,g.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:f=!0,enableClipboard:p=!0,displayDataTypes:g=!0,objectSortKeys:v=!1,onExpand:y,onCopied:b,beforeCopy:x}=e,S=h(e,_n),C=m({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,_.jsxs)(Ae,{initialState:{value:i,objectSortKeys:v,indentWidth:c,shouldExpandNodeInitially:o===!1?s:void 0,displayObjectSize:l,collapsed:o,enableClipboard:p,shortenTextAfterLength:u,stringEllipsis:d,highlightUpdates:f,onCopied:b,onExpand:y,beforeCopy:x},initialTypes:{displayDataTypes:g},children:[(0,_.jsx)(qt,m({value:i},S,{ref:t,className:w,style:C})),a]})});W.Bigint=nn,W.Date=rn,W.False=an,W.Float=on,W.Int=sn,W.Map=cn,W.Nan=ln,W.Null=un,W.Set=dn,W.String=fn,W.True=pn,W.Undefined=mn,W.Url=hn,W.ValueQuote=tn,W.Arrow=Qt,W.Colon=$t,W.Quote=en,W.Ellipsis=Ut,W.BraceLeft=Jt,W.BraceRight=Yt,W.BracketsLeft=Xt,W.BracketsRight=Zt,W.Copied=gn,W.CountInfo=Bt,W.CountInfoExtra=It,W.KeyName=bt,W.Row=wt,W.displayName=`JVR.JsonView`;var vn={"--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`},yn=e=>(0,_.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,_.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`m12 19l-7-7l7-7m7 7H5`})}),bn=e=>(0,_.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,_.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M20 6L9 17l-5-5`})}),G=e=>(0,_.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,_.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`m6 9l6 6l6-6`})}),xn=e=>(0,_.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,_.jsxs)(`g`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,children:[(0,_.jsx)(`rect`,{width:14,height:14,x:8,y:8,rx:2,ry:2}),(0,_.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 Sn(){let{id:e}=u.useSearch();return(0,_.jsx)(cr,{id:e})}function K(e){return e.toLocaleString()}var Cn=new Set;function wn(e){try{return{ok:!0,value:JSON.parse(e)}}catch{return{ok:!1}}}function Tn(e){if(!e)return{};try{return JSON.parse(e)}catch{return e}}function q({text:e,dark:t}){let[n,r]=(0,g.useState)(!1);return(0,g.useEffect)(()=>{if(!n)return;let e=setTimeout(()=>r(!1),1500);return()=>clearTimeout(e)},[n]),(0,_.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,_.jsx)(bn,{className:`size-3.5 text-sage-500`}):(0,_.jsx)(xn,{className:`size-3.5`})})}var En=/<img\s+[^>]*src=["'](data:image\/[^"']+;base64,[^"']+)["'][^>]*(?:alt=["']([^"']*)["'][^>]*)?\/?>/gi;function Dn(e){let t=[],n=0;for(let r of e.matchAll(En)){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 On({text:e,markdown:t}){let[n,r]=(0,g.useState)(null),i=Dn(e);return i.some(e=>e.type===`image`)?(0,_.jsxs)(`div`,{className:`space-y-3`,children:[i.map((e,n)=>e.type===`text`?t?(0,_.jsx)(`div`,{className:`prose prose-sm prose-qgrid max-w-none`,children:(0,_.jsx)(c,{remarkPlugins:[s],children:e.text})},`text-${n}`):(0,_.jsx)(`pre`,{className:`text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed`,children:e.text},`text-${n}`):(0,_.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,_.jsx)(`img`,{src:e.src,alt:e.alt,className:`max-h-[520px] max-w-full object-contain`,loading:`lazy`})},`image-${n}`)),n&&(0,_.jsxs)(`div`,{className:`fixed inset-0 z-50 bg-black/70 p-4 flex items-center justify-center`,onClick:()=>r(null),children:[(0,_.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,_.jsx)(l,{className:`size-5`})}),(0,_.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,_.jsx)(`div`,{className:`prose prose-sm prose-qgrid max-w-none`,children:(0,_.jsx)(c,{remarkPlugins:[s],children:e})}):(0,_.jsx)(`pre`,{className:`text-sm text-sand-800 whitespace-pre-wrap wrap-break-word font-mono leading-relaxed`,children:e})}function J({text:e,markdown:t}){let n=wn(e),[r,i]=(0,g.useState)(`pretty`),a=n.ok&&n.value!==null&&(Array.isArray(n.value)||typeof n.value==`object`);return!n.ok||!a?t?(0,_.jsx)(On,{text:e,markdown:!0}):(0,_.jsx)(On,{text:n.ok?JSON.stringify(n.value,null,2):e}):(0,_.jsxs)(`div`,{children:[(0,_.jsxs)(`div`,{className:`flex gap-1 mb-2`,children:[(0,_.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,_.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,_.jsx)(W,{value:n.value,style:vn,displayDataTypes:!1,enableClipboard:!0,collapsed:!1}):(0,_.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 Y({title:e,defaultOpen:t=!0,headerMetadata:n,onOpenChange:r,children:i}){let[a,o]=(0,g.useState)(t);return(0,_.jsxs)(`details`,{open:a,className:`group panel overflow-hidden`,onToggle:e=>{let t=e.currentTarget.open;o(t),r?.(t)},children:[(0,_.jsxs)(`summary`,{className:`panel-header flex min-w-0 items-center gap-1.5 whitespace-nowrap cursor-pointer select-none list-none px-4 py-2.5`,children:[(0,_.jsx)(G,{className:`size-3.5 shrink-0 text-sand-400 transition-transform group-open:rotate-0 -rotate-90`}),(0,_.jsx)(`span`,{className:`shrink-0 text-[11px] uppercase tracking-wider text-sand-500 font-medium`,children:e}),n&&(0,_.jsx)(`span`,{className:`flex min-w-0 flex-1 items-center gap-1.5 overflow-hidden whitespace-nowrap text-[11px] normal-case text-sand-400`,children:n})]}),(0,_.jsx)(`div`,{className:`p-4`,children:i})]})}function X({label:e,value:t}){return(0,_.jsxs)(`div`,{className:`min-w-0`,children:[(0,_.jsx)(`dt`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium truncate`,children:e}),(0,_.jsx)(`dd`,{className:`text-[15px] font-semibold text-sand-800 tabular-nums mt-0.5 truncate`,children:t})]})}var kn={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 An({message:e}){return(0,_.jsxs)(`div`,{className:`panel overflow-hidden border border-red-200 bg-red-50/60`,children:[(0,_.jsx)(`div`,{className:`px-4 py-2.5 border-b border-red-100 flex items-center gap-1.5`,children:(0,_.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider text-red-600 font-medium`,children:`Error`})}),(0,_.jsx)(`div`,{className:`p-4`,children:(0,_.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 jn({data:e}){let t=e.status===`running`,n=p({status:e.status,requestedModel:e.requested_model_name,servedModel:e.model_name,imageCostMethod:e.image_cost_method}),r=!t&&e.requested_model_name!==null&&e.model_name===null;return(0,_.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,_.jsx)(`span`,{className:`text-[15px] font-semibold text-sand-900 break-all`,children:n.label===`—`?`Unknown model`:n.label}),r&&(0,_.jsx)(`span`,{className:`text-[10px] text-sand-400`,children:`요청`}),!t&&(e.fallback_count??0)>0&&(0,_.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,_.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded-full font-medium uppercase ${kn[e.status]??`bg-sand-100 text-sand-500`}`,children:e.status}),e.response_json_ok===!1&&(0,_.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,_.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,_.jsxs)(`span`,{className:`text-[12px] text-sand-400`,children:[`· project=`,e.project_name]}),(0,_.jsx)(`span`,{className:`ml-auto text-[11px] text-sand-400`,children:e.token_name})]})}function Mn({data:e,toolCallCount:t}){let n=In(e);return(0,_.jsxs)(`div`,{className:`panel overflow-hidden px-5 py-3 space-y-3`,children:[(0,_.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-x-6 gap-y-3`,children:[(0,_.jsx)(X,{label:`Duration`,value:`${(e.duration_ms/1e3).toFixed(1)}s`}),(0,_.jsx)(X,{label:`TTFT`,value:Pn(e.ttft_ms)}),(0,_.jsx)(X,{label:`Tokens/sec`,value:Ln(e.output_tokens,e.duration_ms,e.ttft_ms,n)}),(0,_.jsx)(X,{label:`Driver Cost`,value:e.cost_usd===null?`—`:d(e.cost_usd)}),(0,_.jsx)(X,{label:`Cost Source`,value:e.cost_source??`legacy`}),(0,_.jsx)(X,{label:`Image Cost`,value:e.image_cost_usd===null?`—`:d(e.image_cost_usd)}),(0,_.jsx)(X,{label:`Tool Calls`,value:`${t}회`})]}),(0,_.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,_.jsx)(X,{label:`Input`,value:K(e.input_tokens)}),(0,_.jsx)(X,{label:`Output`,value:K(e.output_tokens)}),(0,_.jsx)(X,{label:`Cache Read`,value:K(e.cache_read_tokens)}),(0,_.jsx)(X,{label:`Cache Write`,value:K(e.cache_creation_tokens)}),(0,_.jsx)(X,{label:`Cache Write (5m)`,value:e.cache_creation_5m_tokens===null?`—`:K(e.cache_creation_5m_tokens)}),(0,_.jsx)(X,{label:`Cache Write (1h)`,value:e.cache_creation_1h_tokens===null?`—`:K(e.cache_creation_1h_tokens)}),(0,_.jsx)(X,{label:`Cache Hit`,value:f(e)})]})]})}function Nn(e){return e==null?`—`:e>=1e3?`${(e/1e3).toFixed(1)}s`:`${e}ms`}function Pn(e){return e==null||e<=0?`—`:Nn(e)}function Fn(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 In(e){let t=Fn(e);return t!==null&&Cn.has(t)}function Ln(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 Z({label:e,value:t}){return(0,_.jsxs)(`div`,{className:`min-w-0`,children:[(0,_.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium truncate`,children:e}),(0,_.jsx)(`div`,{className:`mt-0.5 text-[13px] font-semibold text-sand-800 tabular-nums truncate`,children:t})]})}function Rn(e){if(!e||typeof e!=`object`||Array.isArray(e))return[];let t=e.inputImages;return Array.isArray(t)?t:void 0}function zn(e){return(Rn(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 Bn(e){if(!e||typeof e!=`object`||Array.isArray(e))return e;let t=e,n=Rn(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 Vn({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,_.jsxs)(`div`,{children:[(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Input Images`}),(0,_.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,_.jsxs)(`div`,{className:`rounded-md border border-sand-200 bg-white overflow-hidden`,children:[(0,_.jsx)(`img`,{src:n,alt:`reference ${t+1}`,className:`max-h-64 w-full object-contain bg-white`,loading:`lazy`}),(0,_.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 Hn({stepId:e}){let{data:t}=a.useRequestLogStep(`I`,e??0,{enabled:e!==null});return(0,_.jsx)(Vn,{images:zn(t?Tn(t.tool_args):null)})}function Un({entry:e}){let t=!!e.error,[n,r]=(0,g.useState)(!1),{data:i}=a.useRequestLogStep(`A`,e.id,{enabled:n}),o=Bn(i?Tn(i.tool_args):null),s=i?Tn(i.tool_result):null,c=i?.error??e.error;return(0,_.jsxs)(`details`,{className:`group/tool`,onToggle:e=>r(e.currentTarget.open),children:[(0,_.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,_.jsx)(G,{className:`size-3 text-sand-400 transition-transform group-open/tool:rotate-0 -rotate-90 shrink-0`}),(0,_.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,_.jsx)(`span`,{className:`text-[13px] font-medium text-sand-800 font-mono truncate`,children:e.toolName}),t&&(0,_.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,_.jsx)(`span`,{className:`ml-auto text-[11px] text-sand-400 tabular-nums shrink-0`,children:Nn(e.durationMs)})]}),n&&(0,_.jsxs)(`div`,{className:`mt-1 mx-1 mb-3 space-y-2`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Request`}),(0,_.jsx)(`div`,{className:`mt-1 rounded-md bg-sand-50 p-3 overflow-auto`,children:(0,_.jsx)(J,{text:i?JSON.stringify(o):`Loading...`})})]}),c&&(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-red-500 font-medium px-2`,children:`Error`}),(0,_.jsx)(`div`,{className:`mt-1 rounded-md bg-red-50 border border-red-100 p-3 overflow-auto`,children:(0,_.jsx)(J,{text:c})})]}),(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-400 font-medium px-2`,children:`Response`}),(0,_.jsx)(`div`,{className:`mt-1 rounded-md bg-sand-50 p-3 overflow-auto`,children:(0,_.jsx)(J,{text:i?typeof s==`string`?s:JSON.stringify(s):`Loading...`,markdown:!0})})]})]})]})}function Wn({stepId:e}){let[t,n]=(0,g.useState)(!1),{data:r}=a.useRequestLogStep(`A`,e,{enabled:t}),i=r?.reasoning_text??null;return(0,_.jsxs)(`details`,{className:`group/reason mt-3`,onToggle:e=>n(e.currentTarget.open),children:[(0,_.jsxs)(`summary`,{className:`flex items-center gap-2 cursor-pointer select-none list-none`,children:[(0,_.jsx)(G,{className:`size-3 text-sand-400 transition-transform group-open/reason:rotate-0 -rotate-90 shrink-0`}),(0,_.jsx)(`span`,{className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium`,children:`Reasoning`})]}),t&&(0,_.jsx)(`div`,{className:`mt-2 rounded-md bg-white/70 border border-sand-100 p-3 overflow-auto`,children:i?(0,_.jsx)(J,{text:i,markdown:!0}):r?(0,_.jsx)(`p`,{className:`text-sm text-sand-400`,children:`No reasoning text captured.`}):(0,_.jsx)(`p`,{className:`text-sm text-sand-400`,children:`Loading...`})})]})}function Gn({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,_.jsxs)(`details`,{open:!0,className:`group/step border-l border-sand-200 pl-3`,children:[(0,_.jsxs)(`summary`,{className:`flex items-center gap-2 py-2 cursor-pointer select-none list-none`,children:[(0,_.jsx)(G,{className:`size-3.5 text-sand-400 transition-transform group-open/step:rotate-0 -rotate-90 shrink-0`}),(0,_.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,_.jsx)(`span`,{className:`text-[13px] font-semibold text-sand-900`,children:`LLM call`}),n?.finishReason&&(0,_.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,_.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,_.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,_.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,_.jsxs)(`span`,{className:`ml-auto text-[11px] text-sand-400 tabular-nums shrink-0`,children:[e.toolCalls.length,` tools`]})]}),(0,_.jsxs)(`div`,{className:`ml-4 mb-4 space-y-3`,children:[n&&(0,_.jsxs)(`div`,{className:`rounded-md border border-sand-100 bg-sand-50/70 p-3`,children:[(0,_.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,_.jsx)(Z,{label:`Duration`,value:Nn(n.durationMs)}),(0,_.jsx)(Z,{label:`TTFT`,value:Pn(n.ttftMs)}),(0,_.jsx)(Z,{label:`Tokens/sec`,value:Ln(n.outputTokens,n.durationMs,n.ttftMs,t)}),(0,_.jsx)(Z,{label:`Input`,value:K(n.inputTokens??0)}),(0,_.jsx)(Z,{label:`Output`,value:K(n.outputTokens??0)}),(0,_.jsx)(Z,{label:`Cache Read`,value:K(n.cacheReadTokens??0)}),(0,_.jsx)(Z,{label:`Cache Write`,value:K(n.cacheCreationTokens??0)}),(0,_.jsx)(Z,{label:`Cache 5m / 1h`,value:`${n.cacheCreation5mTokens===null?`—`:K(n.cacheCreation5mTokens)} / ${n.cacheCreation1hTokens===null?`—`:K(n.cacheCreation1hTokens)}`}),(0,_.jsx)(Z,{label:`Cost`,value:n.costUsd===null?`—`:d(n.costUsd)}),(0,_.jsx)(Z,{label:`Cost Source`,value:n.costSource??`legacy`}),(0,_.jsx)(Z,{label:`Reasoning`,value:n.reasoningTokens!==null&&n.reasoningTokens!==void 0?K(n.reasoningTokens):`—`})]}),r&&(0,_.jsx)(Wn,{stepId:n.id})]}),e.toolCalls.length>0&&(0,_.jsx)(`div`,{className:`space-y-0.5`,children:e.toolCalls.map(e=>(0,_.jsx)(Un,{entry:e},`${e.stepIndex}-${e.callIndex}-${e.toolCallId}`))})]})]})}function Kn({steps:e,tokensPerSecEnabled:t}){let n=e.reduce((e,t)=>e+t.toolCalls.length,0);return(0,_.jsx)(Y,{title:`Steps (${e.length} steps · ${n} tool calls)`,defaultOpen:!0,children:(0,_.jsx)(`div`,{className:`space-y-1`,children:e.map(e=>(0,_.jsx)(Gn,{entry:e,tokensPerSecEnabled:t},e.stepIndex))})})}function qn(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 Jn(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 Yn(e){return e.type===`function_call`?`fn: ${e.name??`unknown`}`:e.type===`function_call_output`?`fn result`:e.role??e.type}function Xn(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
2
  `):JSON.stringify(e)}function Q({className:e,children:t}){return(0,_.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 Zn({history:e}){return(0,_.jsx)(Y,{title:`History`,defaultOpen:!1,children:(0,_.jsx)(`div`,{className:`space-y-1.5`,children:e.map((e,t)=>(0,_.jsxs)(`div`,{className:`rounded-md px-3 py-2 ${Jn(e)}`,children:[(0,_.jsx)(`div`,{className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium mb-1`,children:Yn(e)}),e.content!==null&&e.content!==void 0&&(0,_.jsx)(Q,{children:Xn(e.content)}),e.arguments&&(0,_.jsx)(Q,{children:e.arguments}),e.output&&(0,_.jsx)(Q,{children:e.output})]},`hist-${t}`))})})}var Qn=60,$n=30,er=18;function $(e,t=Qn){let n=[];for(let r of e){if([...n,r.name].join(`, `).length>t)break;n.push(r.name)}return{names:n,omittedCount:e.length-n.length}}function tr({tools:e}){let t=$(e),n=$(e,$n),r=$(e,er);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`span`,{className:`shrink-0`,children:`·`}),t.names.length>0&&(0,_.jsx)(`span`,{className:`hidden shrink-0 xl:inline`,children:t.names.join(`, `)}),t.omittedCount>0&&(0,_.jsxs)(`span`,{className:`hidden shrink-0 xl:inline`,children:[`+`,t.omittedCount]}),n.names.length>0&&(0,_.jsx)(`span`,{className:`hidden shrink-0 sm:inline xl:hidden`,children:n.names.join(`, `)}),n.omittedCount>0&&(0,_.jsxs)(`span`,{className:`hidden shrink-0 sm:inline xl:hidden`,children:[`+`,n.omittedCount]}),r.names.length>0&&(0,_.jsx)(`span`,{className:`shrink-0 sm:hidden`,children:r.names.join(`, `)}),r.omittedCount>0&&(0,_.jsxs)(`span`,{className:`shrink-0 sm:hidden`,children:[`+`,r.omittedCount]})]})}function nr({code:e,fullCode:t}){let n=(0,g.useMemo)(()=>or(e),[e]);return(0,_.jsx)(`pre`,{"data-zod-parameter-shape":!0,className:`max-h-64 overflow-auto rounded-md bg-sand-900 px-3 py-2.5 font-mono text-[11px] leading-relaxed whitespace-pre text-sand-200 ${t?`cursor-help outline-none focus-visible:ring-2 focus-visible:ring-sienna-300`:``}`,tabIndex:t?0:void 0,title:t,children:t?(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(`span`,{"aria-hidden":`true`,children:n}),(0,_.jsx)(`span`,{className:`sr-only`,children:t})]}):n})}function rr({tool:e}){return(0,_.jsxs)(`div`,{className:`min-w-0 rounded-md border border-sand-100 bg-sand-50/70 p-3`,children:[(0,_.jsx)(`div`,{className:`break-all font-mono text-[13px] font-semibold text-sand-900`,children:e.name}),e.description&&(0,_.jsx)(`p`,{className:`mt-2 text-[12px] leading-relaxed text-sand-700`,children:e.description}),(0,_.jsxs)(`div`,{className:`mt-3`,children:[(0,_.jsxs)(`div`,{className:`mb-1.5 text-[10px] font-medium uppercase tracking-wider text-sand-400`,children:[`Parameters (`,e.parameterCount,`)`]}),(0,_.jsx)(nr,{code:e.inputZod,fullCode:e.fullInputZod})]})]})}function ir({id:e,tools:n}){let[r,i]=(0,g.useState)(!1),a=t({...o.toolsViewQueryOptions(e),enabled:r,staleTime:e=>e.state.data&&e.state.data.length>0?1/0:0,refetchOnWindowFocus:!1,refetchOnReconnect:!1}),s=a.data!==void 0&&a.data.length>0;return(0,_.jsx)(Y,{title:`Tools (${n.length})`,defaultOpen:!1,headerMetadata:(0,_.jsx)(tr,{tools:n}),onOpenChange:i,children:a.isFetching&&!s?(0,_.jsx)(`p`,{className:`text-[12px] text-sand-400`,children:`Loading tool contracts…`}):a.isError||!s?(0,_.jsx)(`p`,{className:`text-[12px] text-sand-400`,children:`Tool contracts could not be loaded.`}):(0,_.jsx)(`div`,{className:`space-y-2`,children:a.data.map((e,t)=>(0,_.jsx)(rr,{tool:e},`${e.name}-${t}`))})})}var ar=/("(?:[^"\\]|\\.)*")|(\b\d+(?:\.\d+)?\b)|(\btype\b|\bz\b(?=\.))|(\b(?:string|number|boolean|null|unknown|Record)\b)|([{}[\]()<>|?:,.=])|([A-Za-z_$][\w$]*)|(\s+|.)/g;function or(e){let t=[],n=!1;for(let r of e.matchAll(ar)){let[e,i,a,o,s,c,l]=r,u=`${r.index}-${e}`;i||a?t.push((0,_.jsx)(`span`,{className:`text-sage-400`,children:e},u)):o?(n=e===`type`,t.push((0,_.jsx)(`span`,{className:`text-sienna-400`,children:e},u))):s?t.push((0,_.jsx)(`span`,{className:`text-blue-300`,children:e},u)):c?t.push((0,_.jsx)(`span`,{className:`text-sand-500`,children:e},u)):l&&n?(n=!1,t.push((0,_.jsx)(`span`,{className:`font-semibold text-sand-50`,children:e},u))):t.push(e)}return t}function sr({id:e}){let{data:t}=o.useResponseTypeTs(e),[n,r]=(0,g.useState)(`zod`),{zod:i=null,typescript:a=null}=t??{},s=n===`zod`?i??a:a??i,c=(0,g.useMemo)(()=>s===null?null:or(s),[s]);return!t||s===null||c===null?null:(0,_.jsxs)(`div`,{className:`panel overflow-hidden`,children:[(0,_.jsxs)(`div`,{className:`panel-header flex items-center px-4 py-2`,children:[(0,_.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider text-sand-500 font-medium`,children:`Response Type`}),(0,_.jsx)(`div`,{className:`ml-auto flex gap-1`,children:[{value:`zod`,label:`zod`,available:i!==null},{value:`ts`,label:`ts`,available:a!==null}].map(e=>(0,_.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,_.jsxs)(`div`,{className:`relative`,children:[(0,_.jsx)(q,{text:s,dark:!0}),(0,_.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 cr({id:e}){let{data:t,isLoading:r}=o.useRequestLog(`A`,e),{data:i,isLoading:s}=a.useRequestLogSteps(`T`,{request_log_id:e,num:0,page:1,orderBy:`id-asc`}),c=qn(i?.rows??[]);if(r||s)return(0,_.jsxs)(`div`,{className:`max-w-6xl mx-auto space-y-4`,children:[(0,_.jsx)(`div`,{className:`h-4 w-32 bg-sand-200 rounded animate-pulse`}),(0,_.jsx)(`div`,{className:`h-40 panel animate-pulse`}),(0,_.jsx)(`div`,{className:`h-32 panel animate-pulse`})]});if(!t)return(0,_.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,_.jsxs)(n,{to:`/logs`,className:`flex items-center gap-1 text-[13px] text-sand-500 hover:text-sienna-500 mb-4`,children:[(0,_.jsx)(yn,{className:`size-3.5`}),`Back to Logs`]}),(0,_.jsx)(`p`,{className:`text-sand-400 text-sm`,children:`Request not found.`})]});let l=c.flatMap(e=>e.toolCalls),u=l.find(e=>e.toolName===`image_generation`)?.id??null,d=c.length>0,f=In(t),p=t.history??null,m=p!==null&&p.length>0,h=t.tools??null,g=h!==null&&h.length>0,v=t.is_structured?(0,_.jsx)(sr,{id:e}):null,y=(0,_.jsxs)(`div`,{className:`space-y-4`,children:[(0,_.jsx)(Y,{title:`System`,children:(0,_.jsxs)(`div`,{className:`relative`,children:[(0,_.jsx)(q,{text:t.system_prompt??`null`}),(0,_.jsx)(J,{text:t.system_prompt??`null`,markdown:!0})]})}),(0,_.jsx)(Y,{title:`User`,children:(0,_.jsxs)(`div`,{className:`space-y-3`,children:[(0,_.jsxs)(`div`,{className:`relative`,children:[(0,_.jsx)(q,{text:t.user_prompt??`null`}),(0,_.jsx)(J,{text:t.user_prompt??`null`,markdown:!0})]}),(0,_.jsx)(Hn,{stepId:u})]})})]});return(0,_.jsxs)(`div`,{className:`mx-auto space-y-4 ${d?`max-w-[120rem]`:`max-w-6xl`}`,children:[(0,_.jsxs)(n,{to:`/logs`,className:`inline-flex items-center gap-1 text-[13px] text-sand-500 hover:text-sienna-500 transition-colors`,children:[(0,_.jsx)(yn,{className:`size-3.5`}),`Back to Logs`]}),(0,_.jsx)(jn,{data:t}),t.error_message&&(0,_.jsx)(An,{message:t.error_message}),m&&(0,_.jsx)(Zn,{history:p}),d?(0,_.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-4 items-stretch lg:items-start`,children:[(0,_.jsxs)(`div`,{className:`order-1 lg:order-2 flex-1 min-w-0 space-y-4`,children:[v,g&&(0,_.jsx)(ir,{id:e,tools:h}),(0,_.jsx)(Kn,{steps:c,tokensPerSecEnabled:f})]}),(0,_.jsx)(`div`,{className:`order-2 lg:order-1 flex-1 min-w-0`,children:y})]}):(0,_.jsxs)(_.Fragment,{children:[v,g&&(0,_.jsx)(ir,{id:e,tools:h}),y]}),(0,_.jsx)(Y,{title:`Response`,children:(0,_.jsxs)(`div`,{className:`relative`,children:[(0,_.jsx)(q,{text:t.response}),(0,_.jsx)(J,{text:t.response,markdown:!0})]})}),(0,_.jsx)(Mn,{data:t,toolCallCount:l.length}),(0,_.jsx)(`div`,{className:`pb-8`})]})}export{Sn as component};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{y as t}from"./vendor-tanstack-DJRQAbrY.js";import{i as n,r}from"./vendor-react-DH4kUfK2.js";import{n as i,o as a}from"./services.generated-Bg2XkD-D.js";import{i as o,u as s}from"./index-D8VwLsuq.js";import{t as c}from"./use-update-token-mutation-Dkv_HG-C.js";import{n as l,t as u}from"./use-oauth-login-flow-BTLUGhwh.js";import{t as d}from"./plus-CknMNCP5.js";var f=e(n(),1),p=r();function m(){let[e,t]=(0,f.useState)(!1),[n,r]=(0,f.useState)(``),i=u(),a=()=>{t(!1),r(``),i.reset()},c=async e=>{await i.submitCode(e)&&a()};return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`button`,{type:`button`,className:`px-3.5 py-1.5 text-[12px] font-medium rounded-lg bg-sienna-500 text-white hover:bg-sienna-600 disabled:opacity-50 transition-all duration-150 active:scale-[0.97] flex items-center gap-1.5 shadow-sm`,onClick:()=>t(!0),children:[(0,p.jsx)(d,{className:`size-3.5`}),`Add Token`]}),e&&(0,p.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center pt-[15vh]`,children:[(0,p.jsx)(`div`,{className:`absolute inset-0 bg-sand-900/8 backdrop-blur-sm`,onClick:a,onKeyDown:()=>{}}),(0,p.jsxs)(`div`,{className:`relative panel shadow-xl w-full max-w-md mx-4`,children:[(0,p.jsx)(`div`,{className:`px-5 py-4 border-b border-sand-100/50`,children:(0,p.jsx)(`h2`,{className:`text-base font-medium text-sand-900`,children:`Add Token`})}),(0,p.jsxs)(`div`,{className:`px-5 py-4 space-y-4`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`label`,{htmlFor:`token-name`,className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium`,children:`Name *`}),(0,p.jsx)(o,{value:n,onChange:e=>r(e.target.value),placeholder:`e.g. your-token-name`,className:`mt-1 w-full border border-sand-200 rounded-md px-3 py-2 text-sm text-sand-900 bg-white placeholder:text-sand-300 focus:outline-none focus:border-sienna-300`})]}),i.codeEntryProvider?(0,p.jsx)(l,{provider:i.codeEntryProvider,isPending:i.completeMutation.isPending,isError:i.completeMutation.isError,onSubmit:e=>void c(e),onRestart:i.reset}):(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(`button`,{type:`button`,className:`w-full py-2.5 text-sm font-medium rounded-md bg-sand-900 text-white hover:bg-sand-800 disabled:opacity-50 transition-colors duration-150 flex items-center justify-center gap-2`,disabled:!n.trim()||i.loadingProvider!==null,onClick:()=>void i.start(`openai`,n),children:i.loadingProvider===`openai`?(0,p.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,p.jsx)(`span`,{className:`w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin`}),`Waiting for login...`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s,{className:`size-4`}),`Login with OpenAI`]})}),(0,p.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,p.jsx)(`div`,{className:`flex-1 h-px bg-sand-200`}),(0,p.jsx)(`span`,{className:`text-[10px] text-sand-400 uppercase`,children:`or`}),(0,p.jsx)(`div`,{className:`flex-1 h-px bg-sand-200`})]}),(0,p.jsx)(`button`,{type:`button`,className:`w-full py-2.5 text-sm font-medium rounded-md border border-sand-300 text-sand-700 hover:bg-sand-100 disabled:opacity-50 transition-colors duration-150 flex items-center justify-center gap-2`,disabled:!n.trim()||i.loadingProvider!==null,onClick:()=>void i.start(`anthropic`,n),children:i.loadingProvider===`anthropic`?(0,p.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,p.jsx)(`span`,{className:`w-3.5 h-3.5 border-2 border-sand-400 border-t-transparent rounded-full animate-spin`}),`Waiting for login...`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s,{className:`size-4`}),`Login with Claude`]})})]})]}),(0,p.jsx)(`div`,{className:`px-5 py-3 border-t border-sand-100/50 flex items-center justify-end gap-2`,children:(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md border border-sand-200 text-sand-600 hover:bg-sand-100 transition-colors duration-150`,onClick:a,children:`Cancel`})})]})]})]})}var h=e=>(0,p.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,p.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497zM15 5l4 4`})}),g=e=>(0,p.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,p.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M10 11v6m4-6v6m5-11v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`})});function _(e){if(!e||typeof e!=`object`)return`—`;if(`authSource`in e&&e.authSource===`system-keychain`)return`System Keychain`;let t=`accessToken`in e?e.accessToken:void 0;return typeof t!=`string`||!t?`—`:t.length<=12?t:`${t.slice(0,8)}...${t.slice(-4)}`}function v(e){let t=e.credentials;return`expiresAt`in t&&typeof t.expiresAt==`number`?t.expiresAt:`accessTokenExpiresAt`in t&&typeof t.accessTokenExpiresAt==`number`?t.accessTokenExpiresAt:null}function y(e){if(!e)return{text:``,color:``};let t=e-Date.now();if(t<=0)return{text:`expired`,color:`text-red-500`};let n=Math.floor(t/36e5),r=Math.floor(t%36e5/6e4),i=n>0?`${n}h ${r}m`:`${r}m`;return t<36e5?{text:i,color:`text-amber-500`}:{text:i,color:`text-sand-400`}}function b({data:e,isLoading:n}){let[r,a]=(0,f.useState)(null),[s,l]=(0,f.useState)(null),[u,d]=(0,f.useState)(``),m=t(),b=i.useRemoveTokenMutation(),x=c(),S=i.useToggleTokenMutation(),C=()=>Promise.all([m.invalidateQueries({queryKey:[`Token`]}),m.invalidateQueries({queryKey:[`Qgrid`]})]),w=async e=>{await S.mutateAsync({id:e.id}),await C()},T=async()=>{r&&(await b.mutateAsync({id:r.id}),await C(),a(null))},E=e=>{l(e),d(e.name??``)},D=async()=>{s&&(await x.mutateAsync({id:s.id,name:u.trim()}),await C(),l(null))};if(n)return(0,p.jsx)(`div`,{className:`space-y-2`,children:Array.from({length:3}).map((e,t)=>(0,p.jsx)(`div`,{className:`h-12 bg-sand-100 rounded-md animate-pulse`},`skeleton-${t}`))});let O=e??[];return O.length===0?(0,p.jsxs)(`div`,{className:`text-sand-400 text-center py-16 text-sm`,children:[`No tokens registered. Click `,(0,p.jsx)(`strong`,{className:`text-sand-600`,children:`Add Token`}),` to get started.`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`div`,{className:`panel overflow-hidden`,children:(0,p.jsx)(`div`,{className:`overflow-x-auto`,children:(0,p.jsxs)(`table`,{className:`w-full min-w-[640px] text-[13px]`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`panel-header`,children:[(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Provider`}),(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Name`}),(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Token`}),(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Status`}),(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Expires`}),(0,p.jsx)(`th`,{className:`w-20 px-3 py-2.5`})]})}),(0,p.jsx)(`tbody`,{className:`divide-y divide-sand-100/80`,children:O.map(e=>{let t=y(v(e));return(0,p.jsxs)(`tr`,{className:`transition-colors duration-150 hover:bg-sand-100/60 ${e.active?``:`opacity-50`}`,children:[(0,p.jsx)(`td`,{className:`px-5 py-3`,children:(0,p.jsx)(`span`,{className:`text-xs font-medium text-sand-500 uppercase`,children:e.provider})}),(0,p.jsx)(`td`,{className:`px-5 py-3`,children:e.name?(0,p.jsx)(`span`,{className:`text-sm text-sand-700`,children:e.name}):(0,p.jsx)(`span`,{className:`text-[11px] text-sand-400`,children:`—`})}),(0,p.jsx)(`td`,{className:`px-5 py-3`,children:(0,p.jsx)(`code`,{className:`text-[13px] font-mono text-sand-800`,children:_(e.credentials)})}),(0,p.jsx)(`td`,{className:`px-5 py-3`,children:(0,p.jsx)(`button`,{type:`button`,className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors duration-200 ${e.active?`bg-sage-400`:`bg-sand-300`}`,onClick:()=>w(e),disabled:S.isPending||!e.active&&e.reauth_required,title:!e.active&&e.reauth_required?`재로그인이 필요한 토큰입니다`:void 0,children:(0,p.jsx)(`span`,{className:`inline-block h-3.5 w-3.5 rounded-full bg-white transition-transform duration-200 ${e.active?`translate-x-4.5`:`translate-x-0.5`}`})})}),(0,p.jsx)(`td`,{className:`px-5 py-3`,children:t.text&&(0,p.jsx)(`span`,{className:`text-xs ${t.color}`,children:t.text})}),(0,p.jsx)(`td`,{className:`px-3 py-3`,children:(0,p.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,p.jsx)(`button`,{type:`button`,className:`p-1 rounded text-sand-400 hover:text-sienna-500 transition-colors duration-150`,onClick:()=>E(e),children:(0,p.jsx)(h,{className:`size-4`})}),(0,p.jsx)(`button`,{type:`button`,className:`p-1 rounded text-sand-400 hover:text-red-500 transition-colors duration-150`,onClick:()=>a(e),children:(0,p.jsx)(g,{className:`size-4`})})]})})]},e.id)})})]})})}),s&&(0,p.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center pt-[15vh]`,children:[(0,p.jsx)(`div`,{className:`absolute inset-0 bg-sand-900/8 backdrop-blur-sm`,onClick:()=>l(null),onKeyDown:()=>{}}),(0,p.jsxs)(`div`,{className:`relative panel shadow-xl w-full max-w-sm mx-4`,children:[(0,p.jsx)(`div`,{className:`px-5 py-4 border-b border-sand-100/60`,children:(0,p.jsx)(`h3`,{className:`text-base font-medium text-sand-900`,children:`Edit Token`})}),(0,p.jsx)(`div`,{className:`px-5 py-4 space-y-3`,children:(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`label`,{htmlFor:`token-name`,className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium`,children:`Name`}),(0,p.jsx)(o,{value:u,onChange:e=>d(e.target.value),placeholder:`e.g. prod, dev, team-a`,className:`mt-1 w-full border border-sand-200 rounded-md px-3 py-2 text-sm text-sand-900 bg-white placeholder:text-sand-300 focus:outline-none focus:border-sienna-300`})]})}),(0,p.jsxs)(`div`,{className:`px-5 py-3 border-t border-sand-100/60 flex items-center justify-end gap-2`,children:[(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md border border-sand-200 text-sand-600 hover:bg-sand-100 transition-colors duration-150`,onClick:()=>l(null),children:`Cancel`}),(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md bg-sienna-400 text-white hover:bg-sienna-500 disabled:opacity-50 transition-colors duration-150`,disabled:x.isPending,onClick:D,children:x.isPending?`Saving...`:`Save`})]})]})]}),r&&(0,p.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center pt-[15vh]`,children:[(0,p.jsx)(`div`,{className:`absolute inset-0 bg-sand-900/8 backdrop-blur-sm`,onClick:()=>a(null),onKeyDown:()=>{}}),(0,p.jsxs)(`div`,{className:`relative panel shadow-xl w-full max-w-sm mx-4`,children:[(0,p.jsxs)(`div`,{className:`px-5 py-4`,children:[(0,p.jsx)(`h3`,{className:`text-base font-medium text-sand-900`,children:`Remove Token`}),(0,p.jsxs)(`p`,{className:`text-sm text-sand-700 mt-2`,children:[`Are you sure you want to remove`,` `,(0,p.jsx)(`code`,{className:`text-[13px] font-mono text-sand-800`,children:_(r.credentials)}),r.name&&(0,p.jsxs)(`span`,{className:`text-sand-500`,children:[` (`,r.name,`)`]}),`?`]})]}),(0,p.jsxs)(`div`,{className:`px-5 py-3 border-t border-sand-100/60 flex items-center justify-end gap-2`,children:[(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md border border-sand-200 text-sand-600 hover:bg-sand-100 transition-colors duration-150`,onClick:()=>a(null),children:`Cancel`}),(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md bg-red-500 text-white hover:bg-red-600 disabled:opacity-50 transition-colors duration-150`,disabled:b.isPending,onClick:T,children:b.isPending?`Removing...`:`Remove`})]})]})]})]})}function x(){let{data:e,isLoading:t}=a.useTokens(`A`);return(0,p.jsxs)(`div`,{className:`max-w-6xl mx-auto space-y-4`,children:[(0,p.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,p.jsx)(m,{})}),(0,p.jsx)(b,{data:e?.rows,isLoading:t})]})}export{x as component};
1
+ import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{y as t}from"./vendor-tanstack-DJRQAbrY.js";import{i as n,r}from"./vendor-react-DH4kUfK2.js";import{n as i,o as a}from"./services.generated-Bg2XkD-D.js";import{i as o,u as s}from"./index-BfwrIBHs.js";import{t as c}from"./use-update-token-mutation-Dkv_HG-C.js";import{n as l,t as u}from"./use-oauth-login-flow-B9EqnwY9.js";import{t as d}from"./plus-CknMNCP5.js";var f=e(n(),1),p=r();function m(){let[e,t]=(0,f.useState)(!1),[n,r]=(0,f.useState)(``),i=u(),a=()=>{t(!1),r(``),i.reset()},c=async e=>{await i.submitCode(e)&&a()};return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`button`,{type:`button`,className:`px-3.5 py-1.5 text-[12px] font-medium rounded-lg bg-sienna-500 text-white hover:bg-sienna-600 disabled:opacity-50 transition-all duration-150 active:scale-[0.97] flex items-center gap-1.5 shadow-sm`,onClick:()=>t(!0),children:[(0,p.jsx)(d,{className:`size-3.5`}),`Add Token`]}),e&&(0,p.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center pt-[15vh]`,children:[(0,p.jsx)(`div`,{className:`absolute inset-0 bg-sand-900/8 backdrop-blur-sm`,onClick:a,onKeyDown:()=>{}}),(0,p.jsxs)(`div`,{className:`relative panel shadow-xl w-full max-w-md mx-4`,children:[(0,p.jsx)(`div`,{className:`px-5 py-4 border-b border-sand-100/50`,children:(0,p.jsx)(`h2`,{className:`text-base font-medium text-sand-900`,children:`Add Token`})}),(0,p.jsxs)(`div`,{className:`px-5 py-4 space-y-4`,children:[(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`label`,{htmlFor:`token-name`,className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium`,children:`Name *`}),(0,p.jsx)(o,{value:n,onChange:e=>r(e.target.value),placeholder:`e.g. your-token-name`,className:`mt-1 w-full border border-sand-200 rounded-md px-3 py-2 text-sm text-sand-900 bg-white placeholder:text-sand-300 focus:outline-none focus:border-sienna-300`})]}),i.codeEntryProvider?(0,p.jsx)(l,{provider:i.codeEntryProvider,isPending:i.completeMutation.isPending,isError:i.completeMutation.isError,onSubmit:e=>void c(e),onRestart:i.reset}):(0,p.jsxs)(`div`,{className:`space-y-2`,children:[(0,p.jsx)(`button`,{type:`button`,className:`w-full py-2.5 text-sm font-medium rounded-md bg-sand-900 text-white hover:bg-sand-800 disabled:opacity-50 transition-colors duration-150 flex items-center justify-center gap-2`,disabled:!n.trim()||i.loadingProvider!==null,onClick:()=>void i.start(`openai`,n),children:i.loadingProvider===`openai`?(0,p.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,p.jsx)(`span`,{className:`w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin`}),`Waiting for login...`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s,{className:`size-4`}),`Login with OpenAI`]})}),(0,p.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,p.jsx)(`div`,{className:`flex-1 h-px bg-sand-200`}),(0,p.jsx)(`span`,{className:`text-[10px] text-sand-400 uppercase`,children:`or`}),(0,p.jsx)(`div`,{className:`flex-1 h-px bg-sand-200`})]}),(0,p.jsx)(`button`,{type:`button`,className:`w-full py-2.5 text-sm font-medium rounded-md border border-sand-300 text-sand-700 hover:bg-sand-100 disabled:opacity-50 transition-colors duration-150 flex items-center justify-center gap-2`,disabled:!n.trim()||i.loadingProvider!==null,onClick:()=>void i.start(`anthropic`,n),children:i.loadingProvider===`anthropic`?(0,p.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,p.jsx)(`span`,{className:`w-3.5 h-3.5 border-2 border-sand-400 border-t-transparent rounded-full animate-spin`}),`Waiting for login...`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s,{className:`size-4`}),`Login with Claude`]})})]})]}),(0,p.jsx)(`div`,{className:`px-5 py-3 border-t border-sand-100/50 flex items-center justify-end gap-2`,children:(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md border border-sand-200 text-sand-600 hover:bg-sand-100 transition-colors duration-150`,onClick:a,children:`Cancel`})})]})]})]})}var h=e=>(0,p.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,p.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497zM15 5l4 4`})}),g=e=>(0,p.jsx)(`svg`,{viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`,...e,children:(0,p.jsx)(`path`,{fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M10 11v6m4-6v6m5-11v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`})});function _(e){if(!e||typeof e!=`object`)return`—`;if(`authSource`in e&&e.authSource===`system-keychain`)return`System Keychain`;let t=`accessToken`in e?e.accessToken:void 0;return typeof t!=`string`||!t?`—`:t.length<=12?t:`${t.slice(0,8)}...${t.slice(-4)}`}function v(e){let t=e.credentials;return`expiresAt`in t&&typeof t.expiresAt==`number`?t.expiresAt:`accessTokenExpiresAt`in t&&typeof t.accessTokenExpiresAt==`number`?t.accessTokenExpiresAt:null}function y(e){if(!e)return{text:``,color:``};let t=e-Date.now();if(t<=0)return{text:`expired`,color:`text-red-500`};let n=Math.floor(t/36e5),r=Math.floor(t%36e5/6e4),i=n>0?`${n}h ${r}m`:`${r}m`;return t<36e5?{text:i,color:`text-amber-500`}:{text:i,color:`text-sand-400`}}function b({data:e,isLoading:n}){let[r,a]=(0,f.useState)(null),[s,l]=(0,f.useState)(null),[u,d]=(0,f.useState)(``),m=t(),b=i.useRemoveTokenMutation(),x=c(),S=i.useToggleTokenMutation(),C=()=>Promise.all([m.invalidateQueries({queryKey:[`Token`]}),m.invalidateQueries({queryKey:[`Qgrid`]})]),w=async e=>{await S.mutateAsync({id:e.id}),await C()},T=async()=>{r&&(await b.mutateAsync({id:r.id}),await C(),a(null))},E=e=>{l(e),d(e.name??``)},D=async()=>{s&&(await x.mutateAsync({id:s.id,name:u.trim()}),await C(),l(null))};if(n)return(0,p.jsx)(`div`,{className:`space-y-2`,children:Array.from({length:3}).map((e,t)=>(0,p.jsx)(`div`,{className:`h-12 bg-sand-100 rounded-md animate-pulse`},`skeleton-${t}`))});let O=e??[];return O.length===0?(0,p.jsxs)(`div`,{className:`text-sand-400 text-center py-16 text-sm`,children:[`No tokens registered. Click `,(0,p.jsx)(`strong`,{className:`text-sand-600`,children:`Add Token`}),` to get started.`]}):(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(`div`,{className:`panel overflow-hidden`,children:(0,p.jsx)(`div`,{className:`overflow-x-auto`,children:(0,p.jsxs)(`table`,{className:`w-full min-w-[640px] text-[13px]`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`panel-header`,children:[(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Provider`}),(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Name`}),(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Token`}),(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Status`}),(0,p.jsx)(`th`,{className:`text-left px-5 py-2.5 text-[10px] uppercase tracking-wider text-sand-400 font-medium`,children:`Expires`}),(0,p.jsx)(`th`,{className:`w-20 px-3 py-2.5`})]})}),(0,p.jsx)(`tbody`,{className:`divide-y divide-sand-100/80`,children:O.map(e=>{let t=y(v(e));return(0,p.jsxs)(`tr`,{className:`transition-colors duration-150 hover:bg-sand-100/60 ${e.active?``:`opacity-50`}`,children:[(0,p.jsx)(`td`,{className:`px-5 py-3`,children:(0,p.jsx)(`span`,{className:`text-xs font-medium text-sand-500 uppercase`,children:e.provider})}),(0,p.jsx)(`td`,{className:`px-5 py-3`,children:e.name?(0,p.jsx)(`span`,{className:`text-sm text-sand-700`,children:e.name}):(0,p.jsx)(`span`,{className:`text-[11px] text-sand-400`,children:`—`})}),(0,p.jsx)(`td`,{className:`px-5 py-3`,children:(0,p.jsx)(`code`,{className:`text-[13px] font-mono text-sand-800`,children:_(e.credentials)})}),(0,p.jsx)(`td`,{className:`px-5 py-3`,children:(0,p.jsx)(`button`,{type:`button`,className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors duration-200 ${e.active?`bg-sage-400`:`bg-sand-300`}`,onClick:()=>w(e),disabled:S.isPending||!e.active&&e.reauth_required,title:!e.active&&e.reauth_required?`재로그인이 필요한 토큰입니다`:void 0,children:(0,p.jsx)(`span`,{className:`inline-block h-3.5 w-3.5 rounded-full bg-white transition-transform duration-200 ${e.active?`translate-x-4.5`:`translate-x-0.5`}`})})}),(0,p.jsx)(`td`,{className:`px-5 py-3`,children:t.text&&(0,p.jsx)(`span`,{className:`text-xs ${t.color}`,children:t.text})}),(0,p.jsx)(`td`,{className:`px-3 py-3`,children:(0,p.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,p.jsx)(`button`,{type:`button`,className:`p-1 rounded text-sand-400 hover:text-sienna-500 transition-colors duration-150`,onClick:()=>E(e),children:(0,p.jsx)(h,{className:`size-4`})}),(0,p.jsx)(`button`,{type:`button`,className:`p-1 rounded text-sand-400 hover:text-red-500 transition-colors duration-150`,onClick:()=>a(e),children:(0,p.jsx)(g,{className:`size-4`})})]})})]},e.id)})})]})})}),s&&(0,p.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center pt-[15vh]`,children:[(0,p.jsx)(`div`,{className:`absolute inset-0 bg-sand-900/8 backdrop-blur-sm`,onClick:()=>l(null),onKeyDown:()=>{}}),(0,p.jsxs)(`div`,{className:`relative panel shadow-xl w-full max-w-sm mx-4`,children:[(0,p.jsx)(`div`,{className:`px-5 py-4 border-b border-sand-100/60`,children:(0,p.jsx)(`h3`,{className:`text-base font-medium text-sand-900`,children:`Edit Token`})}),(0,p.jsx)(`div`,{className:`px-5 py-4 space-y-3`,children:(0,p.jsxs)(`div`,{children:[(0,p.jsx)(`label`,{htmlFor:`token-name`,className:`text-[10px] uppercase tracking-wider text-sand-500 font-medium`,children:`Name`}),(0,p.jsx)(o,{value:u,onChange:e=>d(e.target.value),placeholder:`e.g. prod, dev, team-a`,className:`mt-1 w-full border border-sand-200 rounded-md px-3 py-2 text-sm text-sand-900 bg-white placeholder:text-sand-300 focus:outline-none focus:border-sienna-300`})]})}),(0,p.jsxs)(`div`,{className:`px-5 py-3 border-t border-sand-100/60 flex items-center justify-end gap-2`,children:[(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md border border-sand-200 text-sand-600 hover:bg-sand-100 transition-colors duration-150`,onClick:()=>l(null),children:`Cancel`}),(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md bg-sienna-400 text-white hover:bg-sienna-500 disabled:opacity-50 transition-colors duration-150`,disabled:x.isPending,onClick:D,children:x.isPending?`Saving...`:`Save`})]})]})]}),r&&(0,p.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-start justify-center pt-[15vh]`,children:[(0,p.jsx)(`div`,{className:`absolute inset-0 bg-sand-900/8 backdrop-blur-sm`,onClick:()=>a(null),onKeyDown:()=>{}}),(0,p.jsxs)(`div`,{className:`relative panel shadow-xl w-full max-w-sm mx-4`,children:[(0,p.jsxs)(`div`,{className:`px-5 py-4`,children:[(0,p.jsx)(`h3`,{className:`text-base font-medium text-sand-900`,children:`Remove Token`}),(0,p.jsxs)(`p`,{className:`text-sm text-sand-700 mt-2`,children:[`Are you sure you want to remove`,` `,(0,p.jsx)(`code`,{className:`text-[13px] font-mono text-sand-800`,children:_(r.credentials)}),r.name&&(0,p.jsxs)(`span`,{className:`text-sand-500`,children:[` (`,r.name,`)`]}),`?`]})]}),(0,p.jsxs)(`div`,{className:`px-5 py-3 border-t border-sand-100/60 flex items-center justify-end gap-2`,children:[(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md border border-sand-200 text-sand-600 hover:bg-sand-100 transition-colors duration-150`,onClick:()=>a(null),children:`Cancel`}),(0,p.jsx)(`button`,{type:`button`,className:`px-3 py-1 text-xs font-medium rounded-md bg-red-500 text-white hover:bg-red-600 disabled:opacity-50 transition-colors duration-150`,disabled:b.isPending,onClick:T,children:b.isPending?`Removing...`:`Remove`})]})]})]})]})}function x(){let{data:e,isLoading:t}=a.useTokens(`A`);return(0,p.jsxs)(`div`,{className:`max-w-6xl mx-auto space-y-4`,children:[(0,p.jsx)(`div`,{className:`flex items-center justify-end`,children:(0,p.jsx)(m,{})}),(0,p.jsx)(b,{data:e?.rows,isLoading:t})]})}export{x as component};
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{y as t}from"./vendor-tanstack-DJRQAbrY.js";import{i as n,r}from"./vendor-react-DH4kUfK2.js";import{n as i}from"./services.generated-Bg2XkD-D.js";import{i as a}from"./index-D8VwLsuq.js";var o=e(n(),1),s=r();function c({provider:e,isPending:t,isError:n,onSubmit:r,onRestart:i}){let[c,l]=(0,o.useState)(``),u=e===`openai`;return(0,s.jsxs)(`div`,{className:`space-y-2`,children:[(0,s.jsx)(`p`,{className:`text-[12px] text-sand-600 leading-relaxed`,children:u?`새 탭에서 OpenAI 로그인을 완료한 뒤 연결 실패 화면이 나타나면, 주소창의 전체 URL을 아래에 붙여넣으세요.`:`새 탭에서 Claude 로그인을 완료하면 코드가 표시됩니다. 코드 전체를 아래에 붙여넣으세요.`}),(0,s.jsx)(a,{value:c,onChange:e=>l(e.target.value),placeholder:u?`http://localhost:1455/auth/callback?code=...&state=...`:`code#state`,className:`w-full border border-sand-200 rounded-md px-3 py-2 text-sm font-mono text-sand-900 bg-white placeholder:text-sand-300 focus:outline-none focus:border-sienna-300`}),n&&(0,s.jsx)(`p`,{className:`text-[11px] text-red-500`,children:`인증 결과 확인에 실패했습니다 — 전체 값을 다시 붙여넣거나 로그인을 다시 시작하세요.`}),(0,s.jsx)(`button`,{type:`button`,className:`w-full py-2.5 text-sm font-medium rounded-md bg-sand-900 text-white hover:bg-sand-800 disabled:opacity-50 transition-colors duration-150 flex items-center justify-center gap-2`,disabled:!c.trim()||t,onClick:()=>r(c),children:t?(0,s.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,s.jsx)(`span`,{className:`w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin`}),`Verifying...`]}):`Complete login`}),(0,s.jsx)(`button`,{type:`button`,className:`w-full py-1.5 text-[12px] text-sand-500 hover:text-sand-700 transition-colors duration-150`,onClick:()=>{l(``),i()},children:`처음부터 다시 시작`})]})}var l=3e3,u=3e5;function d(e){let t=0;for(let n of e.getQueryCache().findAll({queryKey:[`Token`]})){let e=n.state.data?.rows;Array.isArray(e)&&(t=Math.max(t,e.length))}return t}function f(){let[e,n]=(0,o.useState)(null),[r,a]=(0,o.useState)(null),s=t(),c=i.useOauthStartMutation(),f=i.useOauthStartOpenAIMutation(),p=i.useOauthCompleteMutation(),m=(0,o.useRef)({}),h=()=>{m.current.interval!==void 0&&clearInterval(m.current.interval),m.current.timeout!==void 0&&clearTimeout(m.current.timeout),m.current={}};(0,o.useEffect)(()=>h,[]);let g=()=>Promise.all([s.invalidateQueries({queryKey:[`Token`]}),s.invalidateQueries({queryKey:[`Qgrid`]})]);return{loadingProvider:e,codeEntryProvider:r,start:async(e,t)=>{let r=t.trim();if(!r)return;let i=window.open(`about:blank`,`_blank`);n(e);try{if(e===`openai`){let{authUrl:t,mode:o}=await f.mutateAsync({name:r});if(i?i.location.href=t:window.open(t,`_blank`),o===`code`){a(e),n(null);return}let c=d(s);h(),m.current.interval=window.setInterval(()=>{g().then(()=>{d(s)>c&&(h(),n(null))})},l),m.current.timeout=window.setTimeout(()=>{h(),n(null)},u);return}let{authUrl:t,mode:o}=await c.mutateAsync({name:r});o===`code`?(i?i.location.href=t:window.open(t,`_blank`),a(e),n(null)):(i?.close(),window.location.href=t)}catch(e){i?.close(),console.error(`OAuth start failed:`,e),n(null)}},submitCode:async e=>{let t=e.trim();if(!t)return!1;try{await p.mutateAsync({pastedCode:t})}catch(e){return console.error(`OAuth complete failed:`,e),!1}return await g(),!0},reset:()=>{h(),n(null),a(null),p.reset()},completeMutation:p}}export{c as n,f as t};
1
+ import{r as e}from"./rolldown-runtime-Dw2cE7zH.js";import{y as t}from"./vendor-tanstack-DJRQAbrY.js";import{i as n,r}from"./vendor-react-DH4kUfK2.js";import{n as i}from"./services.generated-Bg2XkD-D.js";import{i as a}from"./index-BfwrIBHs.js";var o=e(n(),1),s=r();function c({provider:e,isPending:t,isError:n,onSubmit:r,onRestart:i}){let[c,l]=(0,o.useState)(``),u=e===`openai`;return(0,s.jsxs)(`div`,{className:`space-y-2`,children:[(0,s.jsx)(`p`,{className:`text-[12px] text-sand-600 leading-relaxed`,children:u?`새 탭에서 OpenAI 로그인을 완료한 뒤 연결 실패 화면이 나타나면, 주소창의 전체 URL을 아래에 붙여넣으세요.`:`새 탭에서 Claude 로그인을 완료하면 코드가 표시됩니다. 코드 전체를 아래에 붙여넣으세요.`}),(0,s.jsx)(a,{value:c,onChange:e=>l(e.target.value),placeholder:u?`http://localhost:1455/auth/callback?code=...&state=...`:`code#state`,className:`w-full border border-sand-200 rounded-md px-3 py-2 text-sm font-mono text-sand-900 bg-white placeholder:text-sand-300 focus:outline-none focus:border-sienna-300`}),n&&(0,s.jsx)(`p`,{className:`text-[11px] text-red-500`,children:`인증 결과 확인에 실패했습니다 — 전체 값을 다시 붙여넣거나 로그인을 다시 시작하세요.`}),(0,s.jsx)(`button`,{type:`button`,className:`w-full py-2.5 text-sm font-medium rounded-md bg-sand-900 text-white hover:bg-sand-800 disabled:opacity-50 transition-colors duration-150 flex items-center justify-center gap-2`,disabled:!c.trim()||t,onClick:()=>r(c),children:t?(0,s.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,s.jsx)(`span`,{className:`w-3.5 h-3.5 border-2 border-white border-t-transparent rounded-full animate-spin`}),`Verifying...`]}):`Complete login`}),(0,s.jsx)(`button`,{type:`button`,className:`w-full py-1.5 text-[12px] text-sand-500 hover:text-sand-700 transition-colors duration-150`,onClick:()=>{l(``),i()},children:`처음부터 다시 시작`})]})}var l=3e3,u=3e5;function d(e){let t=0;for(let n of e.getQueryCache().findAll({queryKey:[`Token`]})){let e=n.state.data?.rows;Array.isArray(e)&&(t=Math.max(t,e.length))}return t}function f(){let[e,n]=(0,o.useState)(null),[r,a]=(0,o.useState)(null),s=t(),c=i.useOauthStartMutation(),f=i.useOauthStartOpenAIMutation(),p=i.useOauthCompleteMutation(),m=(0,o.useRef)({}),h=()=>{m.current.interval!==void 0&&clearInterval(m.current.interval),m.current.timeout!==void 0&&clearTimeout(m.current.timeout),m.current={}};(0,o.useEffect)(()=>h,[]);let g=()=>Promise.all([s.invalidateQueries({queryKey:[`Token`]}),s.invalidateQueries({queryKey:[`Qgrid`]})]);return{loadingProvider:e,codeEntryProvider:r,start:async(e,t)=>{let r=t.trim();if(!r)return;let i=window.open(`about:blank`,`_blank`);n(e);try{if(e===`openai`){let{authUrl:t,mode:o}=await f.mutateAsync({name:r});if(i?i.location.href=t:window.open(t,`_blank`),o===`code`){a(e),n(null);return}let c=d(s);h(),m.current.interval=window.setInterval(()=>{g().then(()=>{d(s)>c&&(h(),n(null))})},l),m.current.timeout=window.setTimeout(()=>{h(),n(null)},u);return}let{authUrl:t,mode:o}=await c.mutateAsync({name:r});o===`code`?(i?i.location.href=t:window.open(t,`_blank`),a(e),n(null)):(i?.close(),window.location.href=t)}catch(e){i?.close(),console.error(`OAuth start failed:`,e),n(null)}},submitCode:async e=>{let t=e.trim();if(!t)return!1;try{await p.mutateAsync({pastedCode:t})}catch(e){return console.error(`OAuth complete failed:`,e),!1}return await g(),!0},reset:()=>{h(),n(null),a(null),p.reset()},completeMutation:p}}export{c as n,f as t};
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/sonamu.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Qgrid</title>
8
- <script type="module" crossorigin src="/assets/index-D8VwLsuq.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-BfwrIBHs.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-Dw2cE7zH.js">
10
10
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-ca-nBW7U.js">
11
11
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-DH4kUfK2.js">
@@ -46253,12 +46253,12 @@ var MODEL_PRESET_GROUPS = [{
46253
46253
  label: "OpenAI",
46254
46254
  models: [
46255
46255
  "openai/gpt-6-astra",
46256
+ "openai/gpt-6.1-sol",
46256
46257
  "openai/gpt-6-sol",
46257
46258
  "openai/gpt-6-luna",
46258
46259
  "openai/gpt-5.6-terra",
46259
46260
  "openai/gpt-5.6-sol",
46260
- "openai/gpt-5.6-luna",
46261
- "openai/gpt-5.5"
46261
+ "openai/gpt-5.6-luna"
46262
46262
  ]
46263
46263
  }, {
46264
46264
  label: "Anthropic",
@@ -46874,7 +46874,7 @@ function ChatWidget() {
46874
46874
  }
46875
46875
  //#endregion
46876
46876
  //#region src/components/Sidebar.tsx
46877
- var qgridVersion = "2.9.9";
46877
+ var qgridVersion = "2.10.0";
46878
46878
  function Sidebar({ className }) {
46879
46879
  const pathname = useRouterState({ select: (s) => s.location.pathname });
46880
46880
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("aside", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cartanova/qgrid-cli",
3
- "version": "2.9.9",
3
+ "version": "2.10.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/cartanova-ai/qgrid"
@@ -55,6 +55,12 @@ Request logging is enabled by default. Use `providerOptions.qgrid.logger: false`
55
55
  - Keep OpenAI Codex built-in tools, apps, plugins, skills, web search, shell, and environment instruction blocks disabled unless the user explicitly asks for agentic Codex behavior.
56
56
  - Treat OpenAI image generation as opt-in outside dashboard chat. In 2.9.8, OpenAI `qgrid_chat` opts into raw API `imageGeneration: "auto"` on every turn; the public AI SDK option remains boolean. Ordinary images use the hosted Responses image tool; a server-executed transparent-image function calls Codex standalone Images directly with subscription credentials. Do not reintroduce a client decision tool followed by another GPT generation request. Image costs remain API-price estimates.
57
57
 
58
+ ## Request log IDs (2.10.0+)
59
+
60
+ - Successful raw query responses and stream `done` events expose optional top-level `requestLogId`. The AI SDK exposes it as `providerMetadata.qgrid.requestLogId`; await stream metadata after consuming the stream.
61
+ - The ID identifies the parent request log and stays the same across tool-run steps. It is omitted with `logger: false`. Keep `runContext.requestLogId` for tool continuation only; do not replay the top-level ID as continuation state.
62
+ - Update both server and AI SDK to 2.10.0 or later to consume the metadata. Older servers may omit the ID. This contract does not add IDs to delta or error events or change `createQgridLogger` for external providers.
63
+
58
64
  ## Automatic chat images (2.9.8+)
59
65
 
60
66
  - Raw `imageGeneration: "auto"` permits text-only replies; explicit `true` still requires an image. Both use non-stream requests. Auto mode rejects caller tools and output schemas.
@@ -199,6 +199,10 @@ Reference images for image generation use normal AI SDK multimodal message parts
199
199
 
200
200
  ## Response mapping
201
201
 
202
+ Since 2.10.0, `generateText` exposes the parent request-log ID at `result.providerMetadata?.qgrid?.requestLogId`. For `streamText`, consume the stream first, then read `(await result.providerMetadata)?.qgrid?.requestLogId`. The raw query response and stream `done` event carry optional top-level `requestLogId`.
203
+
204
+ Update both server and SDK to use this metadata. The field is omitted when logging is disabled or an older server does not return it. Tool-run steps share the parent ID; `runContext.requestLogId` remains separate continuation state. This does not expose external-provider telemetry logger IDs or add IDs to stream delta/error events.
205
+
202
206
  qgrid response content maps to AI SDK content:
203
207
 
204
208
  - qgrid `text` -> AI SDK text content.
@@ -39,7 +39,7 @@ availability or identical limits on qgrid's ChatGPT-subscription route.
39
39
  Report mocked tests separately from any live smoke test. Model registration does not authorize
40
40
  a release, version bump, deployment, or remote migration.
41
41
 
42
- ### GPT-6 Astra, Sol, and Luna
42
+ ### GPT-6 Astra, Sol, Luna, and GPT-6.1 Sol
43
43
 
44
44
  `openai/gpt-6-astra` uses the existing text generation, streaming and structured-output paths.
45
45
  The model supports image input, but qgrid keeps its existing SDK restriction: image parts are
@@ -67,6 +67,18 @@ both on 2026-09-23, while Codex CLI 0.154.0 received `400 The 'gpt-6-sol' model
67
67
  with a ChatGPT account` and its catalog fetch omitted both models until 0.156.1. The backend gate is therefore tied
68
68
  to something the newer CLI sends, not to the User-Agent version alone; a Codex CLI failure does not imply a qgrid failure.
69
69
 
70
+ `openai/gpt-6.1-sol` (released 2026-09-29 at DevDay) uses the same paths. Standard prices per million tokens:
71
+ input $2, cached input $0.10, cache write $2.50, output $10, with the same 272K multipliers; only cached input
72
+ differs from GPT-6 Sol. The Codex subscription catalog fetched 2026-09-30 with `client_version=0.159.2` lists
73
+ `context_window=272000`, effort through `ultra`, default `low`, and text+image input. The
74
+ [model page](https://developers.openai.com/api/docs/models/gpt-6.1-sol) separately lists 1.05M context, 922K
75
+ maximum input, 128K maximum output, effort through `max`, and a 2026-04-30 knowledge cutoff. Live generation with
76
+ qgrid's exact request shape and `codex_cli_rs/0.147.0` headers succeeded on 2026-09-30, while Codex CLI 0.157.1
77
+ received `400 The 'gpt-6.1-sol' model is not supported when using Codex with a ChatGPT account` and 0.159.2
78
+ succeeded; the pinned User-Agent version did not need to change. The catalog now labels GPT-6 Sol
79
+ "Previous generation workhorse model" without a retirement date. Ultrafast (`service_tier: "ultrafast"`, $60 /
80
+ $6 / $300) is a public-API tier for GPT-6 Astra only; the subscription catalog exposes just the `fast` tier.
81
+
70
82
  ## Existing OpenAI model pricing and limits
71
83
 
72
84
  Checked 2026-09-23 against the official [Standard pricing table](https://developers.openai.com/api/docs/pricing)
@@ -75,6 +87,7 @@ and the local Codex subscription catalog. Prices are USD per million tokens:
75
87
  | Model | Input | Cached input | Cache write | Output | Codex context | Maximum Codex effort |
76
88
  |---|---:|---:|---:|---:|---:|---|
77
89
  | GPT-6 Astra | 10 | 1 | 12.50 | 50 | 272K | ultra |
90
+ | GPT-6.1 Sol | 2 | 0.10 | 2.50 | 10 | 272K | ultra |
78
91
  | GPT-6 Sol | 2 | 0.20 | 2.50 | 10 | 272K | ultra |
79
92
  | GPT-6 Luna | 0.10 | 0.01 | 0.125 | 0.50 | 272K | max |
80
93
  | GPT-5.6 Sol | 4 | 0.40 | 5 | 20 | 272K | ultra |
@@ -86,7 +99,8 @@ GPT-5.3-Codex-Spark has a 128K catalog context and effort through `xhigh`; its t
86
99
  remains an explicitly documented generic estimate. Retired model pricing rows remain for legacy logs.
87
100
  The catalog does not establish a maximum output size. GPT-5.6 public API specifications list 1.05M
88
101
  context, 922K maximum input and 128K maximum output; do not conflate them with the subscription limits.
89
- Codex default effort is `low` for GPT-5.6 Sol, `medium` for GPT-6 Astra/Sol/Luna, GPT-5.6 Terra/Luna and GPT-5.5, and `high` for Spark.
102
+ Codex default effort is `low` for GPT-6.1 Sol and GPT-5.6 Sol, `medium` for GPT-6 Astra/Sol/Luna, GPT-5.6 Terra/Luna and GPT-5.5, and `high` for Spark.
103
+ GPT-5.5 retires from the Codex/ChatGPT route on 2026-10-14 (the API-key route is unaffected); it stays in the SDK type and price table but is excluded from chat presets.
90
104
  The SDK default remains `low` regardless of the backend default.
91
105
 
92
106
  [Sol's model page](https://developers.openai.com/api/docs/models/gpt-5.6-sol) guarantees promotional
@@ -38,6 +38,8 @@ Candidate discovery is only a hint; each candidate is rechecked and finalized in
38
38
 
39
39
  ## Tool-call loop
40
40
 
41
+ Since 2.10.0, the frame returns the parent `requestLogId` at the top level of successful query responses and stream `done` events, including terminal text responses. It retains the allocated ID if logging postprocessing fails after provider success. The field is absent with `logger: false`. Tool-run steps share the ID, while `runContext.requestLogId` remains reserved for continuing pending tool calls. SDK callers read `providerMetadata.qgrid.requestLogId`; streaming metadata becomes available at completion. Delta and error events are unchanged.
42
+
41
43
  The AI SDK provider tracks pending tool-call IDs. When the next AI SDK call contains all required tool results, it sends the existing logging `runContext` when one was returned and sends the tool results. With `logger: false`, it still correlates the pending calls locally and continues the generation without a request-log id.
42
44
 
43
45
  qgrid converts tool results into continuation input for providers. Cold fallback still includes a "continue using these results" text input.
@@ -72,7 +72,7 @@ Clicking an attached or generated image opens a preview with extension, decoded
72
72
 
73
73
  Token credential previews must tolerate missing `accessToken` rather than reading `.length` unconditionally. Legacy system-keychain credentials display `System Keychain`; this display compatibility does not enable an Antigravity runtime.
74
74
 
75
- Chat model presets: the model `<select>` lists the served subset of `QgridSupportedModel` grouped by provider (`MODEL_PRESET_GROUPS` in `ChatWidget.tsx`), newest first, and defaults to `anthropic/claude-fable-5-1`. Ids that the ChatGPT-subscription Codex route no longer serves (`gpt-5.4` and `gpt-5.4-mini` retired 2026-08-31 with `gpt-5.6-terra` / `gpt-5.6-luna` as replacements; `gpt-5.2` and `gpt-5.3-codex` removed earlier), `gpt-5.3-codex-spark` (rejected on the ChatGPT-account Codex route and absent from its catalog as of 2026-09-29), the retired `claude-opus-4` / `claude-sonnet-4` (2026-06-15) and `claude-opus-4-1` (2026-08-05; Claude Code silently serves `claude-opus-5-5` instead), and the catalog-less `claude-sonnet-4-7` stay in the SDK type and price table (legacy request-log cost) but are excluded here. web does not depend on ai-sdk, so a new model must be added in both places. `openai/gpt-6-astra`, `openai/gpt-6-sol`, and `openai/gpt-6-luna` are included in the OpenAI group and `anthropic/claude-opus-5-5` and `anthropic/claude-sonnet-5-5` in the Anthropic group; adding them does not change the default model.
75
+ Chat model presets: the model `<select>` lists the served subset of `QgridSupportedModel` grouped by provider (`MODEL_PRESET_GROUPS` in `ChatWidget.tsx`), newest first, and defaults to `anthropic/claude-fable-5-1`. Ids that the ChatGPT-subscription Codex route no longer serves (`gpt-5.4` and `gpt-5.4-mini` retired 2026-08-31 with `gpt-5.6-terra` / `gpt-5.6-luna` as replacements; `gpt-5.2` and `gpt-5.3-codex` removed earlier), `gpt-5.3-codex-spark` (rejected on the ChatGPT-account Codex route and absent from its catalog as of 2026-09-29), `gpt-5.5` (retires from the Codex/ChatGPT route on 2026-10-14; replacements `gpt-6.1-sol` / `gpt-6-luna`), the retired `claude-opus-4` / `claude-sonnet-4` (2026-06-15) and `claude-opus-4-1` (2026-08-05; Claude Code silently serves `claude-opus-5-5` instead), and the catalog-less `claude-sonnet-4-7` stay in the SDK type and price table (legacy request-log cost) but are excluded here. web does not depend on ai-sdk, so a new model must be added in both places. `openai/gpt-6-astra`, `openai/gpt-6.1-sol`, `openai/gpt-6-sol`, and `openai/gpt-6-luna` are included in the OpenAI group and `anthropic/claude-opus-5-5` and `anthropic/claude-sonnet-5-5` in the Anthropic group; adding them does not change the default model.
76
76
 
77
77
  The monit tab's vitals strip shows per-provider in-flight counts, an in-flight sparkline, token chips with quota gauges (fed by the dispatcher's 60-second rate-limits cache; `resetsAt` arrives as ms epoch), and a 1-hour per-provider request/error/cache-hit stats line polled separately every 30 seconds.
78
78