sqlrooms 0.1.0__py3-none-any.whl

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 (57) hide show
  1. sqlrooms/cli.py +576 -0
  2. sqlrooms/web/__init__.py +0 -0
  3. sqlrooms/web/db_bridge/__init__.py +28 -0
  4. sqlrooms/web/db_bridge/connectors/__init__.py +9 -0
  5. sqlrooms/web/db_bridge/connectors/base.py +59 -0
  6. sqlrooms/web/db_bridge/connectors/postgres.py +118 -0
  7. sqlrooms/web/db_bridge/connectors/snowflake.py +161 -0
  8. sqlrooms/web/db_bridge/factory.py +91 -0
  9. sqlrooms/web/db_bridge/registry.py +113 -0
  10. sqlrooms/web/db_bridge/types.py +29 -0
  11. sqlrooms/web/db_bridge/utils.py +45 -0
  12. sqlrooms/web/launcher.py +1215 -0
  13. sqlrooms/web/static/assets/AiSlice-x2gVCmwI.js +137 -0
  14. sqlrooms/web/static/assets/CommandSlice-DPSuuiIV.js +23 -0
  15. sqlrooms/web/static/assets/DockLayout-DhgcIQET.js +1 -0
  16. sqlrooms/web/static/assets/GridLayout-CBVgs-6H.css +1 -0
  17. sqlrooms/web/static/assets/GridLayout-fXJZYHbE.js +253 -0
  18. sqlrooms/web/static/assets/LayoutRendererContext-BKO2wB-W.js +1 -0
  19. sqlrooms/web/static/assets/LeafLayout-DPFHUP6B.js +1 -0
  20. sqlrooms/web/static/assets/LeafLayout-ekhNDEEg.js +1 -0
  21. sqlrooms/web/static/assets/RenderNodeContext-BdrX8FaE.js +1 -0
  22. sqlrooms/web/static/assets/RendererSwitcher-DnVbhqg4.js +1 -0
  23. sqlrooms/web/static/assets/SplitLayout-fPLAPJN-.js +1 -0
  24. sqlrooms/web/static/assets/TabsLayout-C0N-7wmx.js +1 -0
  25. sqlrooms/web/static/assets/TabsLayout-T3iApyr5.js +41 -0
  26. sqlrooms/web/static/assets/chunk-jRWAZmH_.js +1 -0
  27. sqlrooms/web/static/assets/codicon-ngg6Pgfi.ttf +0 -0
  28. sqlrooms/web/static/assets/core.esm-DdCldPzV.js +5 -0
  29. sqlrooms/web/static/assets/css.worker-Wv5dxAWO.js +89 -0
  30. sqlrooms/web/static/assets/devtools-BNUn8Jb2.js +2 -0
  31. sqlrooms/web/static/assets/dist-dwKeDPoe.js +1 -0
  32. sqlrooms/web/static/assets/html.worker-CQP8QQsS.js +502 -0
  33. sqlrooms/web/static/assets/index-D9UP9D4f.js +316286 -0
  34. sqlrooms/web/static/assets/index-DioDnqnf.css +1 -0
  35. sqlrooms/web/static/assets/json.worker-DzV-CpCQ.js +58 -0
  36. sqlrooms/web/static/assets/loro_wasm_bg-DP4dC0x3.wasm +0 -0
  37. sqlrooms/web/static/assets/loro_wasm_bg-VQ4j4Qa9.js +9 -0
  38. sqlrooms/web/static/assets/loro_wasm_bg-oL0xMWtE.js +3630 -0
  39. sqlrooms/web/static/assets/maplibre-gl-C-a91wbz.js +748 -0
  40. sqlrooms/web/static/assets/node-sql-parser-ChfKIXD7.js +68 -0
  41. sqlrooms/web/static/assets/prop-types-DybOnnvg.js +1 -0
  42. sqlrooms/web/static/assets/react-dom-liMHu8hH.js +1 -0
  43. sqlrooms/web/static/assets/resizable-DYr7VLR3.js +1 -0
  44. sqlrooms/web/static/assets/scroll-area-ZmzNHGEm.js +1 -0
  45. sqlrooms/web/static/assets/tooltip-mgpsA9tW.js +1 -0
  46. sqlrooms/web/static/assets/ts.worker-Dth06zuC.js +67734 -0
  47. sqlrooms/web/static/assets/utils-yJ4l7ARz.js +1 -0
  48. sqlrooms/web/static/assets/webgl-device-CgQl7NRd.js +1 -0
  49. sqlrooms/web/static/assets/webgl-device-CtgDFnYR.js +13 -0
  50. sqlrooms/web/static/index.html +32 -0
  51. sqlrooms/web/static/logo.png +0 -0
  52. sqlrooms/web/ui.py +37 -0
  53. sqlrooms-0.1.0.dist-info/METADATA +274 -0
  54. sqlrooms-0.1.0.dist-info/RECORD +57 -0
  55. sqlrooms-0.1.0.dist-info/WHEEL +4 -0
  56. sqlrooms-0.1.0.dist-info/entry_points.txt +2 -0
  57. sqlrooms-0.1.0.dist-info/licenses/LICENSE +9 -0
@@ -0,0 +1,2 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{Q as t,b as n}from"./CommandSlice-DPSuuiIV.js";import{At as r,Et as i,_n as a,f as o,jt as s,k as c,ln as l,mn as u,n as d,vn as f,yn as p}from"./AiSlice-x2gVCmwI.js";import{i as m,n as h,p as g,s as _}from"./dist-dwKeDPoe.js";import{A as v,E as y,T as ee,c as te,d as b,f as x,l as S,o as ne,s as C,u as w,w as T,x as E}from"./tooltip-mgpsA9tW.js";import{t as D}from"./utils-yJ4l7ARz.js";import{t as re}from"./scroll-area-ZmzNHGEm.js";var O=e(t(),1),k=n(),A=`Toggle`,j=O.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=v({prop:n,onChange:i,defaultProp:r??!1,caller:A});return(0,k.jsx)(m.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:_(e.onClick,()=>{e.disabled||s(!o)})})});j.displayName=A;var ie=j,M=`ToggleGroup`,[ae,oe]=g(M,[x]),se=x(),N=O.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,k.jsx)(ce,{...r,ref:t});if(n===`multiple`)return(0,k.jsx)(le,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${M}\``)});N.displayName=M;var[P,F]=ae(M),ce=O.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=v({prop:n,defaultProp:r??``,onChange:i,caller:M});return(0,k.jsx)(P,{scope:e.__scopeToggleGroup,type:`single`,value:O.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:O.useCallback(()=>s(``),[s]),children:(0,k.jsx)(I,{...a,ref:t})})}),le=O.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=v({prop:n,defaultProp:r??[],onChange:i,caller:M}),c=O.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=O.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,k.jsx)(P,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,k.jsx)(I,{...a,ref:t})})});N.displayName=M;var[ue,de]=ae(M),I=O.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=se(n),u=h(o),d={role:`group`,dir:u,...c};return(0,k.jsx)(ue,{scope:n,rovingFocus:i,disabled:r,children:i?(0,k.jsx)(b,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,k.jsx)(m.div,{...d,ref:t})}):(0,k.jsx)(m.div,{...d,ref:t})})}),L=`ToggleGroupItem`,R=O.forwardRef((e,t)=>{let n=F(L,e.__scopeToggleGroup),r=de(L,e.__scopeToggleGroup),i=se(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=O.useRef(null);return r.rovingFocus?(0,k.jsx)(w,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,k.jsx)(z,{...s,ref:t})}):(0,k.jsx)(z,{...s,ref:t})});R.displayName=L;var z=O.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=F(L,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,k.jsx)(j,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),B=N,V=R,H=T(`inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground`},size:{default:`h-9 px-2 min-w-9`,sm:`h-8 px-1.5 min-w-8`,lg:`h-10 px-2.5 min-w-10`}},defaultVariants:{variant:`default`,size:`default`}}),fe=O.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,k.jsx)(ie,{ref:i,className:D(H({variant:t,size:n,className:e})),...r}));fe.displayName=ie.displayName;var U=O.createContext({size:`default`,variant:`default`}),W=O.forwardRef(({className:e,variant:t,size:n,children:r,...i},a)=>(0,k.jsx)(B,{ref:a,className:D(`flex items-center justify-center gap-1`,e),...i,children:(0,k.jsx)(U.Provider,{value:{variant:t,size:n},children:r})}));W.displayName=B.displayName;var G=O.forwardRef(({className:e,children:t,variant:n,size:r,...i},a)=>{let o=O.useContext(U);return(0,k.jsx)(V,{ref:a,className:D(H({variant:o.variant||n,size:o.size||r}),e),...i,children:t})});G.displayName=V.displayName;function pe(e){s(e,e.state.doc.length,100);let t=[],n=new Set,a=!1;for(let o=1;o<=e.state.doc.lines;o++){let s=e.state.doc.line(o),c=r(e.state,s.from,s.to);if(!c)continue;let l=`${c.from}:${c.to}`;if(!n.has(l)){if(n.add(l),!a){a=!0;continue}t.push(i.of(c))}}t.length>0&&e.dispatch({effects:t})}function me(e){if(typeof e==`string`)return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}var K=({title:e,value:t,defaultOpen:n=!1,className:r,editorClassName:i})=>{let o=(0,O.useMemo)(()=>me(t),[t]);return(0,k.jsx)(p,{defaultOpen:n,className:D(`w-full`,r),children:(0,k.jsxs)(`div`,{className:`bg-muted/20 rounded-md`,children:[(0,k.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 px-2 py-1.5`,children:[(0,k.jsxs)(f,{className:`group flex min-w-0 flex-1 items-center gap-1.5 text-left text-xs font-medium`,children:[(0,k.jsx)(y,{className:`text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,k.jsx)(`span`,{className:`truncate`,children:e})]}),(0,k.jsx)(l,{text:o,size:`icon`,className:`h-6 w-6 shrink-0`,tooltipLabel:`Copy ${e}`})]}),(0,k.jsx)(a,{children:(0,k.jsx)(`div`,{className:`bg-background/70`,children:(0,k.jsx)(re,{className:D(`h-40`,i),children:(0,k.jsx)(c,{value:o,readOnly:!0,onMount:pe,options:{lineNumbers:!1,lineWrapping:!0,foldGutter:!0,autocompletion:!1},className:`h-auto min-h-full text-xs [&_.cm-editor]:h-auto [&_.cm-gutters]:pl-1 [&_.cm-scroller]:overflow-visible`},o)})})})]})})};function q(e){return Array.isArray(e.parts)?e.parts:[]}function J(e){if(!e||typeof e!=`object`)return!1;let t=e.type;return typeof t==`string`&&(t===`dynamic-tool`||t.startsWith(`tool-`))}function he(e){return e.type===`dynamic-tool`&&e.toolName?e.toolName:e.type?.replace(/^tool-/,``)||`unknown`}function ge(e){return q(e).flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e;return t.type===`text`&&typeof t.text==`string`?[t.text]:[]}).join(`
2
+ `).trim().slice(0,240)}function _e(e){return e.reduce((e,t)=>e+q(t).filter(J).length,0)}function ve(e){if(!e||typeof e!=`object`)return;let t=e;return typeof t.text==`string`?t.text:void 0}function ye(e){if(!e||typeof e!=`object`)return`unknown`;let t=e.type;return typeof t==`string`?t:`unknown`}function be({message:e,messageIndex:t,part:n,partIndex:r,agentProgress:i}){if(!J(n))return;let a=n.toolCallId;if(a)return{messageId:e.id,messageIndex:t,partIndex:r,role:e.role,toolCallId:a,toolName:he(n),state:n.state,input:n.input,output:n.output,errorText:n.errorText,raw:n,hasAgentProgress:(i[a]?.length??0)>0}}function xe(e){let t=e.uiMessages??[];return{sessionId:e.id,name:e.name,isRunning:e.isRunning,modelProvider:e.modelProvider,model:e.model,customModelName:e.customModelName,baseUrl:e.baseUrl,createdAt:e.createdAt,lastOpenedAt:e.lastOpenedAt,messageCount:t.length,userMessageCount:t.filter(e=>e.role===`user`).length,assistantMessageCount:t.filter(e=>e.role===`assistant`).length,toolCallCount:_e(t),agentProgressCount:Object.keys(e.agentProgress??{}).length,agentSnapshotCount:Object.keys(e.agentSnapshots??{}).length}}function Se(e,t={}){let n=e.agentProgress??{},r=new Set([...Object.keys(n),...Object.keys(t)]);return Array.from(r).sort().map(e=>{let r=t[e];return r?{parentToolCallId:e,toolCalls:r,source:`live`}:{parentToolCallId:e,toolCalls:n[e]??[],source:`session`}})}function Ce(e,t={}){let n=e.agentSnapshots??{},r=new Set([...Object.keys(n),...Object.keys(t)]);return Array.from(r).sort().flatMap(e=>{let r=t[e];if(r)return[{parentToolCallId:e,snapshot:r,source:`live`}];let i=n[e];return i?[{parentToolCallId:e,snapshot:i,source:`session`}]:[]})}function we({session:e,liveAgentProgress:t={},liveAgentSnapshots:n={}}){let r=Se(e,t),i=Ce(e,n),a=Object.fromEntries(r.map(e=>[e.parentToolCallId,e])),s=Object.fromEntries(i.map(e=>[e.parentToolCallId,e])),c=Object.fromEntries(r.map(e=>[e.parentToolCallId,e.toolCalls]));return(e.uiMessages??[]).map((e,t)=>{let n=q(e).map((n,r)=>{let i=be({message:e,messageIndex:t,part:n,partIndex:r,agentProgress:c});if(i)return{kind:`tool`,index:r,toolCall:i,agentProgress:a[i.toolCallId],agentSnapshot:s[i.toolCallId]};let l=ye(n),u=o(n);if(u)return{kind:`text`,index:r,text:u.error,raw:n};let d=ve(n);return l===`text`&&d!==void 0?{kind:`text`,index:r,text:d,raw:n}:l===`reasoning`&&d!==void 0?{kind:`reasoning`,index:r,text:d,raw:n}:{kind:`other`,index:r,type:l,raw:n}});return{message:{id:e.id,index:t,role:e.role,partCount:n.length,textPreview:ge(e),raw:e},parts:n}})}function Te(e,t={}){return Object.entries(e).map(([e,n])=>({name:e,description:typeof n.description==`string`?n.description:void 0,hasExecute:typeof n.execute==`function`,hasRenderer:!!t[e]})).sort((e,t)=>e.name.localeCompare(t.name))}var Ee=`timeline`;function De(e){return e?e.toLocaleString():`n/a`}function Oe(e){return typeof e==`number`?e.toLocaleString():`n/a`}function ke(e){return typeof e?.startedAt==`number`&&typeof e.completedAt==`number`?`${e.completedAt-e.startedAt}ms`:`n/a`}var Y=({label:e,value:t})=>(0,k.jsxs)(`div`,{className:`min-w-0`,children:[(0,k.jsx)(`div`,{className:`text-muted-foreground text-[11px] uppercase`,children:e}),(0,k.jsx)(`div`,{className:`truncate text-xs font-medium`,children:t})]}),X=({children:e,tone:t,size:n=`default`})=>(0,k.jsx)(`span`,{className:D(`inline-flex items-center rounded border font-medium`,n===`compact`?`px-1 py-0 text-[10px]`:`px-1.5 py-0.5 text-[11px]`,t===`ok`&&`border-emerald-500/30 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`,t===`warn`&&`border-amber-500/30 bg-amber-500/10 text-amber-700 dark:text-amber-300`,!t&&`border-border bg-muted text-muted-foreground`),children:e}),Z=({hasExecute:e,hasRenderer:t})=>typeof e!=`boolean`&&typeof t!=`boolean`?null:(0,k.jsxs)(k.Fragment,{children:[typeof e==`boolean`&&(0,k.jsx)(X,{size:`compact`,tone:e?`ok`:void 0,children:e?`execute`:`no execute`}),typeof t==`boolean`&&(0,k.jsx)(X,{size:`compact`,tone:t?`ok`:void 0,children:t?`renderer`:`no renderer`})]}),Q=({children:e})=>(0,k.jsx)(`div`,{className:`text-muted-foreground py-6 text-center text-xs`,children:e}),Ae=({mode:e,options:t,onModeChange:n})=>{let r=e.type===`all`?t.map(e=>e.value):e.filters,i=t.every(e=>r.includes(e.value));return(0,k.jsxs)(`div`,{className:`flex w-full gap-2 overflow-x-auto px-3 pt-1 pb-2 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:[(0,k.jsx)(W,{type:`multiple`,value:r,onValueChange:r=>{let i=r;if(e.type===`all`){let e=t.find(e=>!i.includes(e.value))?.value;n({type:`custom`,filters:e?[e]:i});return}n({type:`custom`,filters:i})},className:`shrink-0 justify-start`,children:t.map(e=>(0,k.jsxs)(G,{value:e.value,size:`sm`,variant:`outline`,className:`data-[state=on]:bg-primary data-[state=on]:text-primary-foreground h-6 shrink-0 gap-1 rounded-full px-2 text-[11px]`,children:[(0,k.jsx)(`span`,{children:e.label}),(0,k.jsx)(`span`,{className:`opacity-70`,children:e.count})]},e.value))}),(0,k.jsx)(E,{type:`button`,size:`xs`,variant:`ghost`,className:`text-muted-foreground hover:text-foreground h-6 w-14 shrink-0 px-1.5 text-[11px]`,onClick:()=>n(i?{type:`custom`,filters:[]}:{type:`all`}),children:i?`Hide all`:`Show all`})]})},je=({tools:e})=>(0,k.jsx)(`div`,{className:`grid gap-1`,children:e.map(e=>(0,k.jsxs)(p,{children:[(0,k.jsxs)(f,{className:`group flex w-full min-w-0 items-center gap-1.5 py-1 text-left text-xs`,children:[(0,k.jsx)(y,{className:`text-muted-foreground h-3 w-3 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,k.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-medium`,children:e.name}),e.badges&&(0,k.jsx)(`span`,{className:`ml-auto flex shrink-0 items-center justify-end gap-1`,children:e.badges})]}),(0,k.jsx)(a,{children:(0,k.jsx)(`div`,{className:`text-muted-foreground grid gap-1 pb-2 pl-4 text-[11px]`,children:e.details})})]},e.name))}),Me=({title:e,tools:t})=>t.length===0?null:(0,k.jsxs)(p,{className:`bg-muted/20 rounded-md`,children:[(0,k.jsx)(`div`,{className:`flex min-w-0 items-center gap-2 px-2 py-1.5`,children:(0,k.jsxs)(f,{className:`group flex min-w-0 flex-1 items-center gap-1.5 text-left text-xs font-medium`,children:[(0,k.jsx)(y,{className:`text-muted-foreground h-3.5 w-3.5 shrink-0 transition-transform group-data-[state=open]:rotate-90`}),(0,k.jsx)(`span`,{className:`truncate`,children:e}),(0,k.jsx)(`span`,{className:`text-muted-foreground text-[11px]`,children:t.length})]})}),(0,k.jsx)(a,{children:(0,k.jsx)(`div`,{className:`grid gap-1 px-2 pb-2`,children:(0,k.jsx)(je,{tools:t})})})]}),Ne=({snapshot:e})=>(0,k.jsx)(Me,{title:`Agent tools`,tools:(e?.availableTools??[]).map(e=>({name:e.name,badges:(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(Z,{hasExecute:e.hasExecute,hasRenderer:e.hasRenderer}),e.needsApproval&&(0,k.jsx)(X,{size:`compact`,tone:`warn`,children:`approval`})]}),details:(0,k.jsx)(`div`,{children:e.description||`No description.`})}))}),$=({toolCalls:e,agentProgressById:t,agentSnapshotsById:n,depth:r=0})=>e.length===0?(0,k.jsx)(Q,{children:`No nested agent tool calls recorded.`}):(0,k.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.map(e=>{let i=t[e.toolCallId]??e.agentToolCalls??[],a=n[e.toolCallId];return(0,k.jsxs)(`div`,{className:D(`bg-muted/20 rounded-md p-2`,r>0&&`ml-3`),children:[(0,k.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2`,children:[(0,k.jsx)(X,{tone:e.state===`success`?`ok`:e.state===`pending`||e.state===`approval-requested`?`warn`:void 0,children:e.state}),(0,k.jsx)(`span`,{className:`truncate text-xs font-medium`,children:e.toolName}),(0,k.jsx)(`span`,{className:`text-muted-foreground ml-auto truncate text-[11px]`,children:e.toolCallId})]}),(0,k.jsxs)(`div`,{className:`grid gap-2`,children:[(0,k.jsx)(Ne,{snapshot:a}),e.input!==void 0&&(0,k.jsx)(K,{title:`Input`,value:e.input}),e.output!==void 0&&(0,k.jsx)(K,{title:`Output`,value:e.output}),e.errorText&&(0,k.jsx)(K,{title:`Error`,value:e.errorText,defaultOpen:!0}),i.length>0&&(0,k.jsx)($,{toolCalls:i,agentProgressById:t,agentSnapshotsById:n,depth:r+1})]})]},e.toolCallId)})});function Pe(e){return e.parts.some(e=>e.kind===`tool`)}function Fe(e){return e.parts.some(e=>e.kind===`tool`&&(!!e.agentProgress||!!e.agentSnapshot))}function Ie(e,t){return t.length===0?!1:t.some(t=>t===`user`?e.message.role===`user`:t===`assistant`?e.message.role===`assistant`:t===`tool`?Pe(e):Fe(e))}var Le=({sessionId:e,className:t,defaultTab:n=Ee,onClose:r})=>{let[i,a]=O.useState(n),[o,s]=O.useState(!1),[c,l]=O.useState({type:`all`}),f=d(e=>e.ai.config.sessions),p=d(e=>e.ai.tools),m=d(e=>e.ai.toolRenderers),h=d(e=>e.ai.agentProgress),g=d(e=>e.ai.devtools.agentSnapshots),_=d(e=>e.ai.toolTimings),v=(0,O.useMemo)(()=>f.find(t=>t.id===e),[e,f]),y=(0,O.useMemo)(()=>v?xe(v):void 0,[v]),b=(0,O.useMemo)(()=>v?we({session:v,liveAgentProgress:h,liveAgentSnapshots:g}):[],[h,g,v]),x=(0,O.useMemo)(()=>({...v?.agentProgress??{},...h}),[h,v]),w=(0,O.useMemo)(()=>({...v?.agentSnapshots??{},...g}),[g,v]),T=(0,O.useMemo)(()=>Te(p,m),[m,p]),A=(0,O.useMemo)(()=>{let e=b.filter(e=>e.message.role===`user`).length,t=b.filter(e=>e.message.role===`assistant`).length,n=b.reduce((e,t)=>e+t.parts.filter(e=>e.kind===`tool`).length,0),r=b.reduce((e,t)=>e+t.parts.filter(e=>e.kind===`tool`&&(!!e.agentProgress||!!e.agentSnapshot)).length,0);return[{value:`user`,label:`User`,count:e},{value:`assistant`,label:`Assistant`,count:t},{value:`tool`,label:`Tool calls`,count:n},{value:`agent`,label:`Agent`,count:r}]},[b]),j=(0,O.useMemo)(()=>c.type===`all`?b:b.filter(e=>Ie(e,c.filters)),[b,c]);return!v||!y?(0,k.jsxs)(`div`,{className:D(`text-muted-foreground flex h-full min-h-40 items-center justify-center text-sm`,t),children:[`Session not found: `,e]}):(0,k.jsx)(`div`,{className:D(`flex h-full min-h-0 flex-col text-sm`,t),children:(0,k.jsxs)(ne,{value:i,onValueChange:a,className:`flex min-h-0 flex-1 flex-col`,children:[(0,k.jsxs)(`div`,{className:`flex items-center gap-1 px-2 pt-0 pb-1`,children:[(0,k.jsxs)(te,{className:`h-8 min-w-0 flex-1 justify-start overflow-x-auto bg-transparent p-0 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:[(0,k.jsx)(S,{value:`timeline`,className:`h-7 px-2 text-xs`,children:`Timeline`}),(0,k.jsx)(S,{value:`tools`,className:`h-7 px-2 text-xs`,children:`Tools`}),(0,k.jsx)(S,{value:`context`,className:`h-7 px-2 text-xs`,children:`Context`}),(0,k.jsx)(S,{value:`raw-session`,className:`h-7 px-2 text-xs`,children:`Raw`}),(0,k.jsx)(S,{value:`summary`,className:`h-7 px-2 text-xs`,children:`Summary`})]}),i===`timeline`&&(0,k.jsx)(E,{type:`button`,variant:`ghost`,size:`icon`,className:D(`text-muted-foreground hover:text-foreground h-7 w-7 shrink-0`,o&&`bg-muted text-foreground`),"aria-label":o?`Hide timeline filters`:`Show timeline filters`,"aria-pressed":o,onClick:()=>s(e=>!e),children:(0,k.jsx)(u,{className:`h-3.5 w-3.5`})}),r&&(0,k.jsx)(E,{type:`button`,variant:`ghost`,size:`icon`,className:`text-muted-foreground hover:text-foreground h-7 w-7 shrink-0`,"aria-label":`Close debug panel`,onClick:r,children:(0,k.jsx)(ee,{className:`h-3.5 w-3.5`})})]}),i===`timeline`&&o&&(0,k.jsx)(Ae,{mode:c,options:A,onModeChange:l}),(0,k.jsxs)(re,{className:`min-h-0 flex-1`,children:[(0,k.jsx)(C,{value:`summary`,className:`m-0 px-3 pt-1 pb-8`,children:(0,k.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 md:grid-cols-4`,children:[(0,k.jsx)(Y,{label:`Session ID`,value:y.sessionId}),(0,k.jsx)(Y,{label:`Provider`,value:y.modelProvider}),(0,k.jsx)(Y,{label:`Model`,value:y.model}),(0,k.jsx)(Y,{label:`Custom model`,value:y.customModelName??`n/a`}),(0,k.jsx)(Y,{label:`Base URL`,value:y.baseUrl??`n/a`}),(0,k.jsx)(Y,{label:`Created`,value:De(y.createdAt)}),(0,k.jsx)(Y,{label:`Last opened`,value:Oe(y.lastOpenedAt)}),(0,k.jsx)(Y,{label:`Messages`,value:y.messageCount}),(0,k.jsx)(Y,{label:`Tool calls`,value:y.toolCallCount}),(0,k.jsx)(Y,{label:`Agent snapshots`,value:y.agentSnapshotCount}),(0,k.jsx)(Y,{label:`Status`,value:y.isRunning?`running`:`idle`})]})}),(0,k.jsx)(C,{value:`tools`,className:`m-0 px-3 pt-1 pb-8`,children:T.length===0?(0,k.jsx)(Q,{children:`No tools registered.`}):(0,k.jsx)(je,{tools:T.map(e=>({name:e.name,badges:(0,k.jsx)(Z,{hasExecute:e.hasExecute,hasRenderer:e.hasRenderer}),details:(0,k.jsx)(`div`,{children:e.description||`No description.`})}))})}),(0,k.jsx)(C,{value:`context`,className:`m-0 px-3 pt-1 pb-8`,children:(0,k.jsx)(K,{title:`session.runContext`,value:v.runContext??null,defaultOpen:!0,editorClassName:`h-56`})}),(0,k.jsx)(C,{value:`timeline`,className:`m-0 px-3 pt-1 pb-10`,children:b.length===0?(0,k.jsx)(Q,{children:`No messages recorded.`}):j.length===0?(0,k.jsx)(Q,{children:`No timeline entries match the selected filters.`}):(0,k.jsx)(`div`,{className:`flex flex-col gap-3`,children:j.map(({message:e,parts:t})=>(0,k.jsxs)(`div`,{className:`bg-muted/15 rounded-md p-2`,children:[(0,k.jsxs)(`div`,{className:`mb-2 flex min-w-0 items-center gap-2`,children:[(0,k.jsx)(X,{children:e.role}),(0,k.jsxs)(`span`,{className:`truncate text-xs font-medium`,children:[`#`,e.index,` `,e.id]}),(0,k.jsxs)(`span`,{className:`text-muted-foreground ml-auto text-[11px]`,children:[e.partCount,` parts`]})]}),(0,k.jsxs)(`div`,{className:`grid gap-2`,children:[t.map(e=>{if(e.kind===`text`||e.kind===`reasoning`)return(0,k.jsx)(`div`,{className:D(`rounded-md px-2 py-1.5 text-xs whitespace-pre-wrap`,e.kind===`reasoning`?`bg-muted/40 text-muted-foreground italic`:`bg-muted/30`),children:e.text},e.index);if(e.kind===`tool`){let{toolCall:t}=e,n=e.agentSnapshot?.snapshot??w[t.toolCallId];return(0,k.jsxs)(`div`,{className:`bg-background/70 rounded-md p-2`,children:[(0,k.jsxs)(`div`,{className:`mb-1.5 flex min-w-0 items-center gap-2`,children:[(0,k.jsx)(X,{children:`tool call`}),(0,k.jsx)(`span`,{className:`min-w-0 truncate text-xs font-medium`,children:t.toolName})]}),(0,k.jsxs)(`div`,{className:`text-muted-foreground mb-2 flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-[11px]`,children:[(0,k.jsx)(X,{tone:t.state===`output-available`?`ok`:t.state===`input-available`||t.state===`approval-requested`?`warn`:void 0,children:t.state??`unknown`}),(0,k.jsx)(`span`,{className:`min-w-0 truncate`,children:t.toolCallId}),(0,k.jsxs)(`span`,{children:[`part #`,t.partIndex]}),(0,k.jsxs)(`span`,{children:[`timing:`,` `,ke(_[t.toolCallId])]})]}),(0,k.jsxs)(`div`,{className:`grid gap-2`,children:[(0,k.jsx)(Ne,{snapshot:n}),t.input!==void 0&&(0,k.jsx)(K,{title:`Input`,value:t.input,defaultOpen:!0}),t.output!==void 0&&(0,k.jsx)(K,{title:`Output`,value:t.output}),t.errorText&&(0,k.jsx)(K,{title:`Error`,value:t.errorText,defaultOpen:!0}),e.agentSnapshot&&(0,k.jsx)(K,{title:`Agent snapshot (${e.agentSnapshot.source})`,value:e.agentSnapshot.snapshot}),e.agentProgress&&(0,k.jsx)($,{toolCalls:e.agentProgress.toolCalls,agentProgressById:x,agentSnapshotsById:w}),(0,k.jsx)(K,{title:`Raw tool part`,value:t.raw})]})]},e.index)}return e.kind===`other`?(0,k.jsx)(K,{title:`Part ${e.index}: ${e.type}`,value:e.raw},e.index):null}),(0,k.jsx)(K,{title:`Raw message`,value:e.raw})]})]},e.id))})}),(0,k.jsx)(C,{value:`raw-session`,className:`m-0 px-3 pt-1 pb-8`,children:(0,k.jsx)(K,{title:`Session`,value:v,defaultOpen:!0,editorClassName:`h-80`})})]})]})})};export{Le as ChatSessionDebugView};
@@ -0,0 +1 @@
1
+ import{o as e}from"./chunk-jRWAZmH_.js";import{Q as t,b as n}from"./CommandSlice-DPSuuiIV.js";import{t as r}from"./react-dom-liMHu8hH.js";var i=e(t(),1),a=n();function o(e,t){let n=i.createContext(t),r=e=>{let{children:t,...r}=e,o=i.useMemo(()=>r,Object.values(r));return(0,a.jsx)(n.Provider,{value:o,children:t})};r.displayName=e+`Provider`;function o(r){let a=i.useContext(n);if(a)return a;if(t!==void 0)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}return[r,o]}function s(e,t=[]){let n=[];function r(t,r){let o=i.createContext(r),s=n.length;n=[...n,r];let c=t=>{let{scope:n,children:r,...c}=t,l=n?.[e]?.[s]||o,u=i.useMemo(()=>c,Object.values(c));return(0,a.jsx)(l.Provider,{value:u,children:r})};c.displayName=t+`Provider`;function l(n,a){let c=a?.[e]?.[s]||o,l=i.useContext(c);if(l)return l;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[c,l]}let o=()=>{let t=n.map(e=>i.createContext(e));return function(n){let r=n?.[e]||t;return i.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return o.scopeName=e,[r,c(o,...t)]}function c(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return i.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var l=e(r(),1);function u(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function d(...e){return t=>{let n=!1,r=e.map(e=>{let r=u(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():u(e[t],null)}}}}function f(...e){return i.useCallback(d(...e),e)}function p(e){let t=m(e),n=i.forwardRef((e,n)=>{let{children:r,...o}=e,s=i.Children.toArray(r),c=s.find(_);if(c){let e=c.props.children,r=s.map(t=>t===c?i.Children.count(e)>1?i.Children.only(null):i.isValidElement(e)?e.props.children:null:t);return(0,a.jsx)(t,{...o,ref:n,children:i.isValidElement(e)?i.cloneElement(e,void 0,r):null})}return(0,a.jsx)(t,{...o,ref:n,children:r})});return n.displayName=`${e}.Slot`,n}function m(e){let t=i.forwardRef((e,t)=>{let{children:n,...r}=e;if(i.isValidElement(n)){let e=y(n),a=v(r,n.props);return n.type!==i.Fragment&&(a.ref=t?d(t,e):e),i.cloneElement(n,a)}return i.Children.count(n)>1?i.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var h=Symbol(`radix.slottable`);function g(e){let t=({children:e})=>(0,a.jsx)(a.Fragment,{children:e});return t.displayName=`${e}.Slottable`,t.__radixId=h,t}function _(e){return i.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===h}function v(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function y(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}typeof window<`u`&&window.document&&window.document.createElement;function b(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var x=globalThis?.document?i.useLayoutEffect:()=>{},S=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=p(`Primitive.${t}`),r=i.forwardRef((e,r)=>{let{asChild:i,...o}=e,s=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,a.jsx)(s,{...o,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function C(e,t){e&&l.flushSync(()=>e.dispatchEvent(t))}function w(e,t){return i.useReducer((e,n)=>t[e][n]??e,e)}var T=e=>{let{present:t,children:n}=e,r=E(t),a=typeof n==`function`?n({present:r.isPresent}):i.Children.only(n),o=f(r.ref,O(a));return typeof n==`function`||r.isPresent?i.cloneElement(a,{ref:o}):null};T.displayName=`Presence`;function E(e){let[t,n]=i.useState(),r=i.useRef(null),a=i.useRef(e),o=i.useRef(`none`),[s,c]=w(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return i.useEffect(()=>{let e=D(r.current);o.current=s===`mounted`?e:`none`},[s]),x(()=>{let t=r.current,n=a.current;if(n!==e){let r=o.current,i=D(t);e?c(`MOUNT`):i===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==i?`ANIMATION_OUT`:`UNMOUNT`),a.current=e}},[e,c]),x(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,i=i=>{let o=D(r.current).includes(CSS.escape(i.animationName));if(i.target===t&&o&&(c(`ANIMATION_END`),!a.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},s=e=>{e.target===t&&(o.current=D(r.current))};return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,i),t.addEventListener(`animationend`,i),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,i),t.removeEventListener(`animationend`,i)}}else c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:i.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function D(e){return e?.animationName||`none`}function O(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var k=i.createContext(void 0);function A(e){let t=i.useContext(k);return e||t||`ltr`}function j(e){let t=i.useRef(e);return i.useEffect(()=>{t.current=e}),i.useMemo(()=>(...e)=>t.current?.(...e),[])}export{C as a,p as c,f as d,o as f,S as i,g as l,A as n,x as o,s as p,T as r,b as s,j as t,d as u};