@askdb/studio 0.2.0-beta.31 → 0.2.0-beta.33
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.
|
@@ -102,6 +102,6 @@ const { sql${u&&a===`sql-params`?`, tenantParams`:``} } = await ask({
|
|
|
102
102
|
// AskDB returns validated SQL — it never executes it.
|
|
103
103
|
// Run it through your own pool under a read-only role${u&&a===`sql-params`?`, binding tenantParams`:``}.`},[e,o,t,n,r,a]);return e?(0,R.jsxs)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:8,gap:8,flexWrap:`wrap`},children:[(0,R.jsxs)(`h3`,{style:{fontSize:13,fontWeight:600,display:`flex`,alignItems:`center`,gap:6},children:[(0,R.jsx)(Ci,{size:14}),` Get the code`]}),(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,R.jsxs)(`fieldset`,{className:`toggle-seg`,style:Ch,children:[(0,R.jsx)(`legend`,{className:`sr-only`,children:`Integration style`}),(0,R.jsx)(`button`,{className:o===`client`?`active`:``,onClick:()=>s(`client`),children:`Config-driven`}),(0,R.jsx)(`button`,{className:o===`core`?`active`:``,onClick:()=>s(`core`),children:`Direct ask()`})]}),(0,R.jsx)(Sh,{value:c})]})]}),(0,R.jsxs)(`p`,{className:`muted`,style:{fontSize:12,marginBottom:8,lineHeight:1.5},children:[`This exact question, schema (`,e.schemaPathRelative,`), dialect (`,e.dialect,`), and provider (`,e.aiProvider,`) — as it runs in your own Node service.`]}),(0,R.jsx)(`pre`,{className:`plain-block`,style:{fontSize:11.5,overflow:`auto`},children:c}),(0,R.jsxs)(`p`,{className:`muted tiny`,style:{marginTop:8},children:[`Full walkthrough:`,` `,(0,R.jsx)(`a`,{href:`https://askdb.tools/guides/embed-in-node/`,target:`_blank`,rel:`noreferrer`,children:`Embed AskDB in a Node app`})]})]}):null}function Dh(e,t){let n=` `.repeat(t);return e.split(`
|
|
104
104
|
`).map((e,t)=>t===0?e:n+e).join(`
|
|
105
|
-
`)}var Oh=`h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring`,kh={border:0,padding:0,margin:0};function Ah(e){return`${e}-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}`}function jh(){let{workspace:e}=Dr(),{ragAvailable:t}=Br(),{askQuestion:n,setAskQuestion:r,askMode:a,setAskMode:o,askMessage:s,askResult:c,askTenantEnabled:l,setAskTenantEnabled:u,askTenantAccessKind:d,setAskTenantAccessKind:f,askTenantRoot:p,setAskTenantRoot:m,askTenantIdsText:h,setAskTenantIdsText:g,askTenantMultiRootRows:_,setAskTenantMultiRootRows:v,askTenantGlobalReason:y,setAskTenantGlobalReason:b,askTenantContext:x,setAskTenantContext:C,askTenantContextAttributes:w,setAskTenantContextAttributes:T,askTenantFilterRows:E,setAskTenantFilterRows:D,generatedTenantScopeJson:ee,tenantScopeValidationError:O,askTenantSqlMode:te,setAskTenantSqlMode:k,executeResult:A,executeMessage:j,executeStatus:M,historyEntries:ne,busy:re,handleAsk:N,handleExecute:P,loadHistoryEntry:ie,handleDeleteHistory:ae,handleInstallExecuteDriver:oe}=qr(),F=(0,S.useCallback)(e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&!re.has(`ask`)&&(e.preventDefault(),N())},[re,N]);if((0,S.useEffect)(()=>(document.addEventListener(`keydown`,F),()=>document.removeEventListener(`keydown`,F)),[F]),!e)return null;let I=!!e.tenantPolicy,L=e.tenantPolicy?.roots??[],se=e.tenantPolicy?.polymorphicTables??[],ce=L[0]?.id??``,le=se[0];return(0,R.jsxs)(`main`,{className:`main-pane`,children:[(0,R.jsx)(`div`,{className:`main-hd`,children:(0,R.jsxs)(`div`,{className:`main-title`,children:[(0,R.jsxs)(`h1`,{children:[(0,R.jsx)(Ii,{size:18,style:{display:`inline`,marginRight:8}}),`Query Playground`]}),(0,R.jsx)(`div`,{className:`main-sub`,children:`Generate SQL from natural language and execute it against your database`})]})}),(0,R.jsx)(`div`,{className:`main-body`,style:{overflow:`hidden`,padding:0},children:(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`2fr 3fr`,height:`100%`},children:[(0,R.jsxs)(`div`,{style:{borderRight:`1px solid var(--border)`,display:`flex`,flexDirection:`column`,overflow:`auto`},children:[(0,R.jsx)(`div`,{style:{padding:`var(--pad-y) var(--pad-x)`},children:(0,R.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,R.jsx)($,{label:`Natural language question`,children:(0,R.jsx)(Vm,{value:n,onChange:e=>r(e.target.value),placeholder:`How many users placed orders last month?`,rows:4})}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`Retrieval mode`}),(0,R.jsxs)(`fieldset`,{className:`toggle-seg`,style:kh,children:[(0,R.jsx)(`legend`,{className:`sr-only`,children:`Retrieval mode`}),(0,R.jsx)(`button`,{className:a===`full`?`active`:``,onClick:()=>o(`full`),children:`Full schema`}),(0,R.jsxs)(`button`,{className:a===`rag`?`active`:``,disabled:!t,title:t?void 0:`Build the RAG index first to query with retrieval.`,onClick:()=>o(`rag`),children:[!t&&(0,R.jsx)(Ni,{size:12,style:{display:`inline`,marginRight:4}}),`RAG`]})]})]}),I&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,R.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,R.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked)}),(0,R.jsxs)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600},children:[(0,R.jsx)(Ui,{size:12,style:{display:`inline`,marginRight:4}}),`Tenant scope`]})]}),l&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`Access kind`}),(0,R.jsxs)(`fieldset`,{className:`toggle-seg`,style:kh,children:[(0,R.jsx)(`legend`,{className:`sr-only`,children:`Tenant scope access kind`}),(0,R.jsx)(`button`,{className:d===`ids`?`active`:``,onClick:()=>f(`ids`),children:`IDs`}),(0,R.jsx)(`button`,{className:d===`subtree`?`active`:``,onClick:()=>f(`subtree`),children:`Subtree`}),(0,R.jsx)(`button`,{className:d===`multi_root`?`active`:``,onClick:()=>f(`multi_root`),children:`Multi-root`}),(0,R.jsx)(`button`,{className:d===`global`?`active`:``,onClick:()=>f(`global`),children:`Super / global`})]})]}),(d===`ids`||d===`subtree`)&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[(0,R.jsx)($,{label:`Tenant root`,children:(0,R.jsx)(`select`,{className:Oh,value:p,onChange:e=>m(e.target.value),children:L.map(e=>(0,R.jsxs)(`option`,{value:e.id,children:[e.label,` (`,e.id,`)`]},e.id))})}),(0,R.jsx)($,{label:d===`ids`?`Tenant IDs`:`Subtree root IDs`,description:`Comma-separated IDs from your app's auth context.`,children:(0,R.jsx)(Bp,{value:h,onChange:e=>g(e.target.value),placeholder:d===`ids`?`org-1, org-2`:`region-1`})})]}),d===`multi_root`&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[_.map((e,t)=>(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 1fr) minmax(0, 1fr) auto`,gap:8,alignItems:`end`},children:[(0,R.jsx)($,{label:`Tenant root`,className:`min-w-0`,children:(0,R.jsx)(`select`,{className:Oh,value:e.tenantRoot,onChange:n=>{let r=[..._];r[t]={...e,tenantRoot:n.target.value},v(r)},children:L.map(e=>(0,R.jsxs)(`option`,{value:e.id,children:[e.label,` (`,e.id,`)`]},e.id))})}),(0,R.jsx)($,{label:`IDs`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.idsText,onChange:n=>{let r=[..._];r[t]={...e,idsText:n.target.value},v(r)},placeholder:`org-1, org-2`})}),(0,R.jsx)(`button`,{className:`btn ghost sm`,disabled:_.length===1,onClick:()=>v(_.filter((e,n)=>n!==t)),title:`Remove scope row`,children:(0,R.jsx)(qi,{size:14})})]},e.id)),(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{className:`btn ghost sm`,onClick:()=>v([..._,{id:Ah(`multi-root`),tenantRoot:ce,idsText:``}]),children:[(0,R.jsx)(Li,{size:14}),`Add root`]})})]}),d===`global`&&(0,R.jsx)($,{label:`Super / global reason`,description:`Required for audit context.`,children:(0,R.jsx)(Bp,{value:y,onChange:e=>b(e.target.value),placeholder:`superuser access for support investigation`})}),(0,R.jsxs)(`details`,{children:[(0,R.jsx)(`summary`,{className:`muted`,style:{cursor:`pointer`,fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`Advisory context`}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8,marginTop:8},children:[(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:8},children:[(0,R.jsx)($,{label:`Role`,children:(0,R.jsx)(Bp,{value:x.role,onChange:e=>C({...x,role:e.target.value}),placeholder:`regional_manager`})}),(0,R.jsx)($,{label:`Label`,children:(0,R.jsx)(Bp,{value:x.label,onChange:e=>C({...x,label:e.target.value}),placeholder:`Jane Smith, Northeast`})}),(0,R.jsx)($,{label:`Department`,children:(0,R.jsx)(Bp,{value:x.department,onChange:e=>C({...x,department:e.target.value}),placeholder:`operations`})}),(0,R.jsx)($,{label:`Region`,children:(0,R.jsx)(Bp,{value:x.region,onChange:e=>C({...x,region:e.target.value}),placeholder:`northeast`})})]}),(0,R.jsx)($,{label:`Description`,children:(0,R.jsx)(Vm,{value:x.description,onChange:e=>C({...x,description:e.target.value}),placeholder:`Business context for this user's scope.`,rows:2})}),w.map((e,t)=>(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 1fr) minmax(0, 1fr) auto`,gap:8,alignItems:`end`},children:[(0,R.jsx)($,{label:`Attribute key`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.key,onChange:n=>{let r=[...w];r[t]={...e,key:n.target.value},T(r)},placeholder:`team`})}),(0,R.jsx)($,{label:`Attribute value`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.value,onChange:n=>{let r=[...w];r[t]={...e,value:n.target.value},T(r)},placeholder:`field-sales`})}),(0,R.jsx)(`button`,{className:`btn ghost sm`,onClick:()=>T(w.filter((e,n)=>n!==t)),title:`Remove attribute`,children:(0,R.jsx)(qi,{size:14})})]},e.id)),(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{className:`btn ghost sm`,onClick:()=>T([...w,{id:Ah(`context-attribute`),key:``,value:``}]),children:[(0,R.jsx)(Li,{size:14}),`Add attribute`]})})]})]}),se.length>0&&(0,R.jsxs)(`details`,{children:[(0,R.jsx)(`summary`,{className:`muted`,style:{cursor:`pointer`,fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`Tenant filters`}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8,marginTop:8},children:[E.map((e,t)=>(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 1.2fr) minmax(0, 1fr) 88px minmax(0, 1fr) auto`,gap:8,alignItems:`end`},children:[(0,R.jsx)($,{label:`Table`,className:`min-w-0`,children:(0,R.jsx)(`select`,{className:Oh,value:e.tableId,onChange:n=>{let r=se.find(e=>e.id===n.target.value),a=[...E];a[t]={...e,tableId:n.target.value,column:e.column||r?.typeColumn||``},D(a)},children:se.map(e=>(0,R.jsx)(`option`,{value:e.id,children:e.id},e.id))})}),(0,R.jsx)($,{label:`Column`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.column,onChange:n=>{let r=[...E];r[t]={...e,column:n.target.value},D(r)},placeholder:`owner_type`})}),(0,R.jsx)($,{label:`Operator`,className:`min-w-0`,children:(0,R.jsxs)(`select`,{className:Oh,value:e.operator,onChange:n=>{let r=[...E];r[t]={...e,operator:n.target.value},D(r)},children:[(0,R.jsx)(`option`,{value:`=`,children:`=`}),(0,R.jsx)(`option`,{value:`IN`,children:`IN`}),(0,R.jsx)(`option`,{value:`!=`,children:`!=`}),(0,R.jsx)(`option`,{value:`NOT IN`,children:`NOT IN`})]})}),(0,R.jsx)($,{label:`Value`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.valueText,onChange:n=>{let r=[...E];r[t]={...e,valueText:n.target.value},D(r)},placeholder:e.operator===`IN`||e.operator===`NOT IN`?`client, agency`:`client`})}),(0,R.jsx)(`button`,{className:`btn ghost sm`,onClick:()=>D(E.filter((e,n)=>n!==t)),title:`Remove condition`,children:(0,R.jsx)(qi,{size:14})})]},e.id)),(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{className:`btn ghost sm`,onClick:()=>D([...E,{id:Ah(`tenant-filter`),tableId:le.id,column:le.typeColumn,operator:`=`,valueText:``}]),children:[(0,R.jsx)(Li,{size:14}),`Add condition`]})})]})]}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`tenantScope JSON preview`}),ee&&(0,R.jsx)(Sh,{value:ee})]}),(0,R.jsx)(`pre`,{className:`mono`,style:{minHeight:116,margin:0,overflow:`auto`,whiteSpace:`pre-wrap`,border:`1px solid var(--border)`,borderRadius:6,padding:10,fontSize:11,background:`var(--surface-2)`},children:ee||O||`Complete the tenant scope fields to preview the JSON passed to ask().`}),O&&(0,R.jsx)(`span`,{style:{color:`var(--red-600)`,fontSize:12},children:O})]}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`SQL output mode`}),(0,R.jsxs)(`fieldset`,{className:`toggle-seg`,style:kh,children:[(0,R.jsx)(`legend`,{className:`sr-only`,children:`SQL output mode`}),(0,R.jsx)(`button`,{className:te===`sql-only`?`active`:``,onClick:()=>k(`sql-only`),children:`Inline literals`}),(0,R.jsx)(`button`,{className:te===`sql-params`?`active`:``,onClick:()=>k(`sql-params`),children:`$N parameters`})]})]})]})]}),(0,R.jsxs)(`button`,{className:`btn primary`,disabled:re.has(`ask`),onClick:()=>void N(),title:`Generate SQL (⌘↵)`,children:[re.has(`ask`)?(0,R.jsx)(Mi,{size:14,className:`animate-spin`}):(0,R.jsx)(Wi,{size:14}),`Generate SQL`,(0,R.jsx)(`kbd`,{className:`kbd`,style:{marginLeft:4,opacity:.7},children:`⌘↵`})]}),s&&(0,R.jsx)(km,{status:s})]})}),ne.length>0&&(0,R.jsxs)(`div`,{style:{borderTop:`1px solid var(--border)`,flex:1,overflow:`auto`},children:[(0,R.jsx)(`div`,{style:{padding:`8px var(--pad-x)`},children:(0,R.jsxs)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:[`History (`,ne.length,`)`]})}),(0,R.jsx)(`div`,{children:ne.slice(0,20).map(e=>(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8,padding:`6px var(--pad-x)`,cursor:`pointer`,fontSize:12,borderBottom:`1px solid var(--border)`},onClick:()=>ie(e),children:[(0,R.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,flex:1},children:e.question}),(0,R.jsx)(`span`,{className:`chip ${e.mode===`rag`?`red`:``}`,style:{flexShrink:0},children:e.mode}),(0,R.jsx)(`button`,{className:`btn ghost sm`,onClick:t=>{t.stopPropagation(),ae(e.id)},title:`Delete`,style:{flexShrink:0,padding:2},children:`×`})]},e.id))})]})]}),(0,R.jsx)(`div`,{style:{overflow:`auto`},children:c?(0,R.jsxs)(`div`,{style:{display:`grid`,gap:0},children:[(0,R.jsxs)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:8},children:[(0,R.jsx)(`h3`,{style:{fontSize:13,fontWeight:600},children:`Generated SQL`}),c.sql&&(0,R.jsx)(Sh,{value:c.sql})]}),c.sql?(0,R.jsx)(`pre`,{className:`sql-block`,children:c.sql}):(0,R.jsx)(hh,{text:`No SQL generated.`})]}),c.explain!==null&&c.explain!==void 0&&(0,R.jsx)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`},children:(0,R.jsx)(Fh,{explain:c.explain})}),c.tenant?.enabled&&(0,R.jsxs)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`},children:[(0,R.jsx)(`h3`,{style:{fontSize:13,fontWeight:600,marginBottom:8},children:`Tenant Params`}),c.tenant.params.length>0?(0,R.jsxs)(`div`,{style:{padding:8,border:`1px solid var(--border)`,borderRadius:`var(--radius)`,fontSize:12},children:[(0,R.jsx)(`span`,{style:{fontWeight:600},children:`Positional params:`}),` `,(0,R.jsx)(`code`,{children:JSON.stringify(c.tenant.params)})]}):(0,R.jsx)(hh,{text:`No tenant params.`})]}),(0,R.jsxs)(`div`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`,display:`flex`,flexDirection:`column`,gap:8},children:[M&&(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600},children:M.label}),M.configured?(0,R.jsx)(`span`,{className:`chip`,style:{fontSize:11},children:M.connectionKind===`file`?`file configured`:`URL configured`}):(0,R.jsx)(`span`,{className:`chip red`,style:{fontSize:11},children:M.connectionKind===`file`?`no file`:`no URL`}),M.installed?(0,R.jsxs)(`span`,{className:`chip`,style:{fontSize:11},children:[M.packageName,` ready`]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`span`,{className:`chip red`,style:{fontSize:11},children:[M.packageName,` missing`]}),M.canInstallFromStudio&&(0,R.jsxs)(`button`,{className:`btn ghost sm`,disabled:re.has(`install-driver`),onClick:()=>void oe(),style:{fontSize:11},children:[re.has(`install-driver`)?(0,R.jsx)(Mi,{size:12,className:`animate-spin`}):null,`Install `,M.packageName]}),!M.canInstallFromStudio&&M.manualInstallReason&&(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11},children:M.installCommand})]})]}),(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12},children:[(0,R.jsxs)(`button`,{className:`btn primary`,disabled:re.has(`execute`)||!c.sql||M!==null&&(!M.configured||!M.installed),onClick:()=>void P(),children:[re.has(`execute`)?(0,R.jsx)(Mi,{size:14,className:`animate-spin`}):(0,R.jsx)(Ii,{size:14}),`Execute Query`]}),j&&(0,R.jsx)(km,{status:j})]})]}),(0,R.jsx)(Eh,{}),A?.ok===!0&&(0,R.jsxs)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:8},children:[(0,R.jsx)(`h3`,{style:{fontSize:13,fontWeight:600},children:`Results`}),A.truncated&&(0,R.jsx)(`span`,{className:`chip amber`,children:`Showing first 500 rows`})]}),A.columns&&A.rows?(0,R.jsx)(`div`,{style:{overflowX:`auto`},children:(0,R.jsxs)(`table`,{className:`tbl`,children:[(0,R.jsx)(`thead`,{children:(0,R.jsx)(`tr`,{children:A.columns.map(e=>(0,R.jsx)(`th`,{children:e},e))})}),(0,R.jsx)(`tbody`,{children:A.rows.map((e,t)=>(0,R.jsx)(`tr`,{children:e.map((e,t)=>(0,R.jsx)(`td`,{className:`mono`,style:{fontSize:11},children:e==null?(0,R.jsx)(`span`,{className:`muted`,children:`NULL`}):String(e)},t))},t))})]})}):(0,R.jsx)(hh,{text:`No results.`})]}),c.usage&&(0,R.jsx)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderTop:`1px solid var(--border)`},children:(0,R.jsx)(yh,{title:`Token usage`,usage:c.usage})})]}):(0,R.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:`100%`,padding:32},children:(0,R.jsx)(hh,{text:`Ask a question to generate SQL`})})})]})})]})}function Mh(e){return typeof e==`string`?e:JSON.stringify(e,null,2)}function Nh(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.statementKind==`string`&&Array.isArray(t.checksVerified)&&t.checksVerified.every(e=>typeof e==`string`)&&typeof t.remediationNote==`string`}function Ph(e){return e.replace(/_/g,` `)}function Fh({explain:e}){let[t,n]=(0,S.useState)(!1);return(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`button`,{type:`button`,className:`collapsible-btn`,onClick:()=>n(!t),children:[t?(0,R.jsx)(vi,{size:14}):(0,R.jsx)(yi,{size:14}),`Explain`]}),t&&(Nh(e)?(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8,fontSize:12},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontWeight:600},children:`Statement kind`}),(0,R.jsx)(`span`,{className:`chip`,children:e.statementKind})]}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:4},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontWeight:600},children:`Checks verified`}),(0,R.jsx)(`ul`,{style:{listStyle:`none`,margin:0,padding:0,display:`grid`,gap:4},children:e.checksVerified.map(e=>(0,R.jsxs)(`li`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,R.jsx)(_i,{size:13,style:{color:`var(--green-500)`,flexShrink:0}}),Ph(e)]},e))})]}),(0,R.jsx)(`p`,{className:`muted`,style:{margin:0,fontStyle:`italic`},children:e.remediationNote})]}):(0,R.jsx)(`pre`,{className:`plain-block`,children:Mh(e)}))]})}function Ih(){let{workspace:e}=Dr(),{ragStatus:t}=Br();return e?(0,R.jsxs)(`main`,{className:`main-pane`,children:[(0,R.jsx)(`div`,{className:`main-hd`,children:(0,R.jsxs)(`div`,{className:`main-title`,children:[(0,R.jsxs)(`h1`,{children:[(0,R.jsx)(Hi,{size:18,style:{display:`inline`,marginRight:8}}),`Settings`]}),(0,R.jsx)(`div`,{className:`main-sub`,children:`Workspace configuration and diagnostics`})]})}),(0,R.jsx)(`div`,{className:`main-body`,children:(0,R.jsxs)(`div`,{className:`stack`,style:{padding:`var(--pad-y) var(--pad-x)`},children:[(0,R.jsxs)(`section`,{className:`card`,children:[(0,R.jsx)(`div`,{className:`card-hd`,children:(0,R.jsx)(`h3`,{children:`Workspace`})}),(0,R.jsx)(`div`,{className:`card-bd`,children:(0,R.jsxs)(`dl`,{className:`definition-list`,children:[(0,R.jsx)(`dt`,{children:`Schema ID`}),(0,R.jsx)(`dd`,{children:e.schemaId}),(0,R.jsx)(`dt`,{children:`Schema path`}),(0,R.jsx)(`dd`,{children:e.schemaDir}),(0,R.jsx)(`dt`,{children:`AI provider`}),(0,R.jsx)(`dd`,{children:e.aiProvider}),(0,R.jsx)(`dt`,{children:`Model`}),(0,R.jsx)(`dd`,{children:e.model}),(0,R.jsx)(`dt`,{children:`AI suggestions`}),(0,R.jsx)(`dd`,{children:e.aiConfigured?`Configured`:`Not configured`})]})})]}),(0,R.jsxs)(`section`,{className:`card`,children:[(0,R.jsx)(`div`,{className:`card-hd`,children:(0,R.jsx)(`h3`,{children:`RAG Store`})}),(0,R.jsx)(`div`,{className:`card-bd`,children:t?(0,R.jsxs)(`dl`,{className:`definition-list`,children:[(0,R.jsx)(`dt`,{children:`Store`}),(0,R.jsx)(`dd`,{children:t.store.kind}),(0,R.jsx)(`dt`,{children:`Lock file`}),(0,R.jsx)(`dd`,{children:t.files.lock?`present`:`missing`}),t.store.kind===`file`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`dt`,{children:`Base path`}),(0,R.jsx)(`dd`,{children:t.store.basePath??`n/a`}),(0,R.jsx)(`dt`,{children:`Embeddings JSON`}),(0,R.jsx)(`dd`,{children:t.files.embeddingsJson?`present`:`missing`}),(0,R.jsx)(`dt`,{children:`Embeddings binary`}),(0,R.jsx)(`dd`,{children:t.files.embeddingsBin?`present`:`missing`})]}),t.store.kind===`pgvector`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`dt`,{children:`Table`}),(0,R.jsx)(`dd`,{children:t.store.table??`askdb_rag_chunks`}),(0,R.jsx)(`dt`,{children:`Index strategy`}),(0,R.jsx)(`dd`,{children:t.store.indexStrategy??`default`})]}),t.store.kind===`memory`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`dt`,{children:`Persistence`}),(0,R.jsx)(`dd`,{children:`In-process only`})]})]}):(0,R.jsx)(hh,{text:`RAG status is unavailable.`})})]}),(0,R.jsxs)(`section`,{className:`card`,children:[(0,R.jsx)(`div`,{className:`card-hd`,children:(0,R.jsx)(`h3`,{children:`Schema Warnings`})}),(0,R.jsx)(`div`,{className:`card-bd`,children:e.warnings.length>0?(0,R.jsx)(`div`,{style:{display:`grid`,gap:8},children:e.warnings.map((e,t)=>(0,R.jsx)(`pre`,{className:`warning-block`,children:typeof e==`string`?e:JSON.stringify(e,null,2)},t))}):(0,R.jsx)(hh,{text:`No schema warnings.`})})]})]})})]}):null}function Lh({label:e,description:t,value:n,onChange:r,disabled:a}){let[o,s]=(0,S.useState)(!1);return o&&!a?(0,R.jsx)($,{label:e,description:t,children:(0,R.jsx)(Bp,{autoFocus:!0,value:n,onChange:e=>r(e.target.value.toUpperCase()),onBlur:()=>s(!1),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}})}):(0,R.jsx)($,{label:e,description:t,children:(0,R.jsxs)(`button`,{type:`button`,className:`env-var-field`,disabled:a,onClick:()=>s(!0),children:[(0,R.jsx)(`span`,{className:`mono env-var-field-value`,children:n}),!a&&(0,R.jsx)(Fi,{size:12,className:`muted`})]})})}var Rh=[{value:`postgres`,label:`PostgreSQL`},{value:`mysql`,label:`MySQL`},{value:`sqlite`,label:`SQLite`},{value:`sqlserver`,label:`SQL Server`},{value:`prisma`,label:`Prisma schema file (no live database)`}],zh=[{value:`openai`,label:`OpenAI`,keyEnv:`OPENAI_API_KEY`,modelEnv:`OPENAI_MODEL`},{value:`anthropic`,label:`Anthropic`,keyEnv:`ANTHROPIC_API_KEY`,modelEnv:`ANTHROPIC_MODEL`},{value:`google`,label:`Google`,keyEnv:`GOOGLE_GENERATIVE_AI_API_KEY`,modelEnv:`GOOGLE_GENERATIVE_AI_MODEL`},{value:`azure`,label:`Azure OpenAI`,keyEnv:`AZURE_OPENAI_API_KEY`,modelEnv:`AZURE_OPENAI_DEPLOYMENT`},{value:`foundry`,label:`Azure AI Foundry`,keyEnv:`AZURE_OPENAI_API_KEY`,modelEnv:`AZURE_OPENAI_DEPLOYMENT`}],Bh=[{value:`file`,label:`File (default, no setup required)`},{value:`memory`,label:`Memory (fast, non-persistent)`},{value:`pgvector`,label:`pgvector (Postgres vector store)`}],Vh=[{value:`postgres`,label:`PostgreSQL`},{value:`mysql`,label:`MySQL`},{value:`sqlite`,label:`SQLite`},{value:`sqlserver`,label:`SQL Server`}],Hh={postgres:`DATABASE_URL`,mysql:`MYSQL_URL`,sqlserver:`SQLSERVER_URL`,sqlite:``,prisma:``},Uh={postgres:`DATABASE_URL`,mysql:`MYSQL_URL`,sqlserver:`SQLSERVER_URL`,sqlite:``},Wh=`h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring`;function Gh({stepNumber:e,configResult:t,busy:n,database:r,onDatabaseChange:a,needsConnectionEnv:o,connectionEnv:s,onConnectionEnvChange:c,sqliteFile:l,onSqliteFileChange:u,prismaSchema:d,onPrismaSchemaChange:f,aiProvider:p,onAiProviderChange:m,aiKeyEnv:h,onAiKeyEnvChange:g,aiModelEnv:_,onAiModelEnvChange:v,schemaOut:y,onSchemaOutChange:b,ragStore:x,onRagStoreChange:S,pgvectorEnv:C,onPgvectorEnvChange:w,studioExecuteEnabled:T,onStudioExecuteEnabledChange:E,studioExecuteProvider:D,onStudioExecuteProviderChange:ee,studioExecuteConnectionEnv:O,onStudioExecuteConnectionEnvChange:te,studioExecuteSqliteFile:k,onStudioExecuteSqliteFileChange:A,onWriteConfig:j}){let M=!!t;return(0,R.jsxs)(`div`,{className:`card`,children:[(0,R.jsxs)(`div`,{className:`card-hd`,children:[(0,R.jsxs)(`h3`,{children:[(0,R.jsx)(Ti,{size:14}),` `,e,` · Database & model provider`]}),t&&(0,R.jsxs)(`span`,{className:`chip green`,children:[(0,R.jsx)(_i,{size:11}),` config written`]})]}),(0,R.jsxs)(`div`,{className:`card-bd`,style:{display:`grid`,gap:12},children:[(0,R.jsx)($,{label:`Database engine`,children:(0,R.jsx)(`select`,{className:Wh,value:r,disabled:M,onChange:e=>a(e.target.value),children:Rh.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),o&&(0,R.jsx)(Lh,{label:`Connection URL env var name`,description:`The NAME of the environment variable — the actual URL goes in .env, never here.`,value:s,disabled:M,onChange:c}),r===`sqlite`&&(0,R.jsx)($,{label:`SQLite file path`,description:`Relative to the project root.`,children:(0,R.jsx)(Bp,{value:l,disabled:M,onChange:e=>u(e.target.value)})}),r===`prisma`&&(0,R.jsx)($,{label:`Prisma schema path`,description:`Leave empty to auto-discover prisma/schema.prisma.`,children:(0,R.jsx)(Bp,{value:d,disabled:M,onChange:e=>f(e.target.value),placeholder:`./prisma/schema.prisma`})}),(0,R.jsx)($,{label:`AI provider`,children:(0,R.jsx)(`select`,{className:Wh,value:p,disabled:M,onChange:e=>m(e.target.value),children:zh.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),(0,R.jsx)(Lh,{label:`API key env var name`,description:`The NAME of the environment variable holding your model API key.`,value:h,disabled:M,onChange:g}),(0,R.jsx)(Lh,{label:`Model env var name (optional)`,description:`The NAME of the environment variable for a model override. Leave empty to use the provider default.`,value:_,disabled:M,onChange:v}),(0,R.jsx)($,{label:`Schema artifact directory`,description:`Where introspection writes the schema artifact.`,children:(0,R.jsx)(Bp,{value:y,disabled:M,onChange:e=>b(e.target.value)})}),(0,R.jsx)($,{label:`RAG store`,description:`Where table/relationship embeddings are indexed for retrieval.`,children:(0,R.jsx)(`select`,{className:Wh,value:x,disabled:M,onChange:e=>S(e.target.value),children:Bh.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),x===`pgvector`&&(0,R.jsx)(Lh,{label:`pgvector connection URL env var name`,description:`The NAME of the environment variable — the actual URL goes in .env, never here.`,value:C,disabled:M,onChange:w}),(0,R.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,R.jsx)(`input`,{type:`checkbox`,checked:T,disabled:M,onChange:e=>E(e.target.checked)}),(0,R.jsx)(`span`,{style:{fontSize:13},children:`Enable Studio execute (run queries from the browser playground)`})]}),T&&r===`prisma`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)($,{label:`Studio execute database`,description:`Prisma has no live database of its own — pick one for the browser playground to run queries against.`,children:(0,R.jsx)(`select`,{className:Wh,value:D,disabled:M,onChange:e=>ee(e.target.value),children:Vh.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),D===`sqlite`?(0,R.jsx)($,{label:`SQLite file path`,description:`Relative to the project root.`,children:(0,R.jsx)(Bp,{value:k,disabled:M,onChange:e=>A(e.target.value)})}):(0,R.jsx)(Lh,{label:`Connection URL env var name`,description:`The NAME of the environment variable — the actual URL goes in .env, never here.`,value:O,disabled:M,onChange:te})]}),!t&&(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{type:`button`,className:`btn primary`,disabled:n===`config`,onClick:j,children:[n===`config`?(0,R.jsx)(Mi,{size:14,className:`animate-spin`}):(0,R.jsx)(_i,{size:14}),`Write askdb.config.ts`]})}),t&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsxs)(`p`,{className:`muted`,style:{fontSize:12.5},children:[`Wrote `,(0,R.jsx)(`code`,{className:`mono`,children:t.configPath}),t.envExamplePath?(0,R.jsxs)(R.Fragment,{children:[` and `,(0,R.jsx)(`code`,{className:`mono`,children:t.envExamplePath})]}):null,t.packageJsonCreated?(0,R.jsxs)(R.Fragment,{children:[` (plus a minimal `,(0,R.jsx)(`code`,{className:`mono`,children:`package.json`}),`)`]}):null,`.`]}),t.installed&&t.installed.length>0&&(0,R.jsxs)(`p`,{className:`muted`,style:{fontSize:12.5},children:[`Installed into your project: `,(0,R.jsx)(`code`,{className:`mono`,children:t.installed.join(` `)}),`.`]}),t.manualInstallCommand&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6,border:`1px solid var(--amber-500)`,borderRadius:6,padding:10},children:[(0,R.jsx)(`span`,{style:{fontSize:12.5,fontWeight:600},children:`One manual step: install the dependencies`}),(0,R.jsx)(`p`,{className:`muted`,style:{fontSize:12},children:`The wizard couldn't install packages automatically. Run this in your project, then continue below:`}),(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,R.jsx)(`code`,{className:`mono`,style:{flex:1,fontSize:12,border:`1px solid var(--border)`,borderRadius:6,padding:`6px 8px`,background:`var(--surface-2)`},children:t.manualInstallCommand}),(0,R.jsx)(Sh,{value:t.manualInstallCommand})]})]})]})]})]})}function Kh({stepNumber:e,envVars:t}){let n=t.map(e=>`${e.name}=`).join(`
|
|
105
|
+
`)}var Oh=`h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring`,kh={border:0,padding:0,margin:0};function Ah(e){return`${e}-${globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}`}function jh(){let{workspace:e}=Dr(),{ragAvailable:t}=Br(),{askQuestion:n,setAskQuestion:r,askMode:a,setAskMode:o,askMessage:s,askResult:c,askTenantEnabled:l,setAskTenantEnabled:u,askTenantAccessKind:d,setAskTenantAccessKind:f,askTenantRoot:p,setAskTenantRoot:m,askTenantIdsText:h,setAskTenantIdsText:g,askTenantMultiRootRows:_,setAskTenantMultiRootRows:v,askTenantGlobalReason:y,setAskTenantGlobalReason:b,askTenantContext:x,setAskTenantContext:C,askTenantContextAttributes:w,setAskTenantContextAttributes:T,askTenantFilterRows:E,setAskTenantFilterRows:D,generatedTenantScopeJson:ee,tenantScopeValidationError:O,askTenantSqlMode:te,setAskTenantSqlMode:k,executeResult:A,executeMessage:j,executeStatus:M,historyEntries:ne,busy:re,handleAsk:N,handleExecute:P,loadHistoryEntry:ie,handleDeleteHistory:ae,handleInstallExecuteDriver:oe}=qr(),F=(0,S.useCallback)(e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&!re.has(`ask`)&&(e.preventDefault(),N())},[re,N]);if((0,S.useEffect)(()=>(document.addEventListener(`keydown`,F),()=>document.removeEventListener(`keydown`,F)),[F]),!e)return null;let I=!!e.tenantPolicy,L=e.tenantPolicy?.roots??[],se=e.tenantPolicy?.polymorphicTables??[],ce=L[0]?.id??``,le=se[0];return(0,R.jsxs)(`main`,{className:`main-pane`,children:[(0,R.jsx)(`div`,{className:`main-hd`,children:(0,R.jsxs)(`div`,{className:`main-title`,children:[(0,R.jsxs)(`h1`,{children:[(0,R.jsx)(Ii,{size:18,style:{display:`inline`,marginRight:8}}),`Query Playground`]}),(0,R.jsx)(`div`,{className:`main-sub`,children:`Generate SQL from natural language and execute it against your database`})]})}),(0,R.jsx)(`div`,{className:`main-body`,style:{overflow:`hidden`,padding:0},children:(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`2fr 3fr`,height:`100%`},children:[(0,R.jsxs)(`div`,{style:{borderRight:`1px solid var(--border)`,display:`flex`,flexDirection:`column`,overflow:`auto`},children:[(0,R.jsx)(`div`,{style:{padding:`var(--pad-y) var(--pad-x)`},children:(0,R.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,R.jsx)($,{label:`Natural language question`,children:(0,R.jsx)(Vm,{value:n,onChange:e=>r(e.target.value),placeholder:`How many users placed orders last month?`,rows:4})}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`Retrieval mode`}),(0,R.jsxs)(`fieldset`,{className:`toggle-seg`,style:kh,children:[(0,R.jsx)(`legend`,{className:`sr-only`,children:`Retrieval mode`}),(0,R.jsx)(`button`,{className:a===`full`?`active`:``,onClick:()=>o(`full`),children:`Full schema`}),(0,R.jsxs)(`button`,{className:a===`rag`?`active`:``,disabled:!t,title:t?void 0:`Build the RAG index first to query with retrieval.`,onClick:()=>o(`rag`),children:[!t&&(0,R.jsx)(Ni,{size:12,style:{display:`inline`,marginRight:4}}),`RAG`]})]})]}),I&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,R.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,R.jsx)(`input`,{type:`checkbox`,checked:l,onChange:e=>u(e.target.checked)}),(0,R.jsxs)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600},children:[(0,R.jsx)(Ui,{size:12,style:{display:`inline`,marginRight:4}}),`Tenant scope`]})]}),l&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`Access kind`}),(0,R.jsxs)(`fieldset`,{className:`toggle-seg`,style:kh,children:[(0,R.jsx)(`legend`,{className:`sr-only`,children:`Tenant scope access kind`}),(0,R.jsx)(`button`,{className:d===`ids`?`active`:``,onClick:()=>f(`ids`),children:`IDs`}),(0,R.jsx)(`button`,{className:d===`subtree`?`active`:``,onClick:()=>f(`subtree`),children:`Subtree`}),(0,R.jsx)(`button`,{className:d===`multi_root`?`active`:``,onClick:()=>f(`multi_root`),children:`Multi-root`}),(0,R.jsx)(`button`,{className:d===`global`?`active`:``,onClick:()=>f(`global`),children:`Super / global`})]})]}),(d===`ids`||d===`subtree`)&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[(0,R.jsx)($,{label:`Tenant root`,children:(0,R.jsx)(`select`,{className:Oh,value:p,onChange:e=>m(e.target.value),children:L.map(e=>(0,R.jsxs)(`option`,{value:e.id,children:[e.label,` (`,e.id,`)`]},e.id))})}),(0,R.jsx)($,{label:d===`ids`?`Tenant IDs`:`Subtree root IDs`,description:`Comma-separated IDs from your app's auth context.`,children:(0,R.jsx)(Bp,{value:h,onChange:e=>g(e.target.value),placeholder:d===`ids`?`org-1, org-2`:`region-1`})})]}),d===`multi_root`&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[_.map((e,t)=>(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 1fr) minmax(0, 1fr) auto`,gap:8,alignItems:`end`},children:[(0,R.jsx)($,{label:`Tenant root`,className:`min-w-0`,children:(0,R.jsx)(`select`,{className:Oh,value:e.tenantRoot,onChange:n=>{let r=[..._];r[t]={...e,tenantRoot:n.target.value},v(r)},children:L.map(e=>(0,R.jsxs)(`option`,{value:e.id,children:[e.label,` (`,e.id,`)`]},e.id))})}),(0,R.jsx)($,{label:`IDs`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.idsText,onChange:n=>{let r=[..._];r[t]={...e,idsText:n.target.value},v(r)},placeholder:`org-1, org-2`})}),(0,R.jsx)(`button`,{className:`btn ghost sm`,disabled:_.length===1,onClick:()=>v(_.filter((e,n)=>n!==t)),title:`Remove scope row`,children:(0,R.jsx)(qi,{size:14})})]},e.id)),(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{className:`btn ghost sm`,onClick:()=>v([..._,{id:Ah(`multi-root`),tenantRoot:ce,idsText:``}]),children:[(0,R.jsx)(Li,{size:14}),`Add root`]})})]}),d===`global`&&(0,R.jsx)($,{label:`Super / global reason`,description:`Required for audit context.`,children:(0,R.jsx)(Bp,{value:y,onChange:e=>b(e.target.value),placeholder:`superuser access for support investigation`})}),(0,R.jsxs)(`details`,{children:[(0,R.jsx)(`summary`,{className:`muted`,style:{cursor:`pointer`,fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`Advisory context`}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8,marginTop:8},children:[(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:8},children:[(0,R.jsx)($,{label:`Role`,children:(0,R.jsx)(Bp,{value:x.role,onChange:e=>C({...x,role:e.target.value}),placeholder:`regional_manager`})}),(0,R.jsx)($,{label:`Label`,children:(0,R.jsx)(Bp,{value:x.label,onChange:e=>C({...x,label:e.target.value}),placeholder:`Jane Smith, Northeast`})}),(0,R.jsx)($,{label:`Department`,children:(0,R.jsx)(Bp,{value:x.department,onChange:e=>C({...x,department:e.target.value}),placeholder:`operations`})}),(0,R.jsx)($,{label:`Region`,children:(0,R.jsx)(Bp,{value:x.region,onChange:e=>C({...x,region:e.target.value}),placeholder:`northeast`})})]}),(0,R.jsx)($,{label:`Description`,children:(0,R.jsx)(Vm,{value:x.description,onChange:e=>C({...x,description:e.target.value}),placeholder:`Business context for this user's scope.`,rows:2})}),w.map((e,t)=>(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 1fr) minmax(0, 1fr) auto`,gap:8,alignItems:`end`},children:[(0,R.jsx)($,{label:`Attribute key`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.key,onChange:n=>{let r=[...w];r[t]={...e,key:n.target.value},T(r)},placeholder:`team`})}),(0,R.jsx)($,{label:`Attribute value`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.value,onChange:n=>{let r=[...w];r[t]={...e,value:n.target.value},T(r)},placeholder:`field-sales`})}),(0,R.jsx)(`button`,{className:`btn ghost sm`,onClick:()=>T(w.filter((e,n)=>n!==t)),title:`Remove attribute`,children:(0,R.jsx)(qi,{size:14})})]},e.id)),(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{className:`btn ghost sm`,onClick:()=>T([...w,{id:Ah(`context-attribute`),key:``,value:``}]),children:[(0,R.jsx)(Li,{size:14}),`Add attribute`]})})]})]}),se.length>0&&(0,R.jsxs)(`details`,{children:[(0,R.jsx)(`summary`,{className:`muted`,style:{cursor:`pointer`,fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`Tenant filters`}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8,marginTop:8},children:[E.map((e,t)=>(0,R.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`minmax(0, 1.2fr) minmax(0, 1fr) 88px minmax(0, 1fr) auto`,gap:8,alignItems:`end`},children:[(0,R.jsx)($,{label:`Table`,className:`min-w-0`,children:(0,R.jsx)(`select`,{className:Oh,value:e.tableId,onChange:n=>{let r=se.find(e=>e.id===n.target.value),a=[...E];a[t]={...e,tableId:n.target.value,column:e.column||r?.typeColumn||``},D(a)},children:se.map(e=>(0,R.jsx)(`option`,{value:e.id,children:e.id},e.id))})}),(0,R.jsx)($,{label:`Column`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.column,onChange:n=>{let r=[...E];r[t]={...e,column:n.target.value},D(r)},placeholder:`owner_type`})}),(0,R.jsx)($,{label:`Operator`,className:`min-w-0`,children:(0,R.jsxs)(`select`,{className:Oh,value:e.operator,onChange:n=>{let r=[...E];r[t]={...e,operator:n.target.value},D(r)},children:[(0,R.jsx)(`option`,{value:`=`,children:`=`}),(0,R.jsx)(`option`,{value:`IN`,children:`IN`}),(0,R.jsx)(`option`,{value:`!=`,children:`!=`}),(0,R.jsx)(`option`,{value:`NOT IN`,children:`NOT IN`})]})}),(0,R.jsx)($,{label:`Value`,className:`min-w-0`,children:(0,R.jsx)(Bp,{value:e.valueText,onChange:n=>{let r=[...E];r[t]={...e,valueText:n.target.value},D(r)},placeholder:e.operator===`IN`||e.operator===`NOT IN`?`client, agency`:`client`})}),(0,R.jsx)(`button`,{className:`btn ghost sm`,onClick:()=>D(E.filter((e,n)=>n!==t)),title:`Remove condition`,children:(0,R.jsx)(qi,{size:14})})]},e.id)),(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{className:`btn ghost sm`,onClick:()=>D([...E,{id:Ah(`tenant-filter`),tableId:le.id,column:le.typeColumn,operator:`=`,valueText:``}]),children:[(0,R.jsx)(Li,{size:14}),`Add condition`]})})]})]}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`tenantScope JSON preview`}),ee&&(0,R.jsx)(Sh,{value:ee})]}),(0,R.jsx)(`pre`,{className:`mono`,style:{minHeight:116,margin:0,overflow:`auto`,whiteSpace:`pre-wrap`,border:`1px solid var(--border)`,borderRadius:6,padding:10,fontSize:11,background:`var(--surface-2)`},children:ee||O||`Complete the tenant scope fields to preview the JSON passed to ask().`}),O&&(0,R.jsx)(`span`,{style:{color:`var(--red-600)`,fontSize:12},children:O})]}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:`SQL output mode`}),(0,R.jsxs)(`fieldset`,{className:`toggle-seg`,style:kh,children:[(0,R.jsx)(`legend`,{className:`sr-only`,children:`SQL output mode`}),(0,R.jsx)(`button`,{className:te===`sql-only`?`active`:``,onClick:()=>k(`sql-only`),children:`Inline literals`}),(0,R.jsx)(`button`,{className:te===`sql-params`?`active`:``,onClick:()=>k(`sql-params`),children:`$N parameters`})]})]})]})]}),(0,R.jsxs)(`button`,{className:`btn primary`,disabled:re.has(`ask`),onClick:()=>void N(),title:`Generate SQL (⌘↵)`,children:[re.has(`ask`)?(0,R.jsx)(Mi,{size:14,className:`animate-spin`}):(0,R.jsx)(Wi,{size:14}),`Generate SQL`,(0,R.jsx)(`kbd`,{className:`kbd`,style:{marginLeft:4,opacity:.7},children:`⌘↵`})]}),s&&(0,R.jsx)(km,{status:s})]})}),ne.length>0&&(0,R.jsxs)(`div`,{style:{borderTop:`1px solid var(--border)`,flex:1,overflow:`auto`},children:[(0,R.jsx)(`div`,{style:{padding:`8px var(--pad-x)`},children:(0,R.jsxs)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600,textTransform:`uppercase`,letterSpacing:`0.04em`},children:[`History (`,ne.length,`)`]})}),(0,R.jsx)(`div`,{children:ne.slice(0,20).map(e=>(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:8,padding:`6px var(--pad-x)`,cursor:`pointer`,fontSize:12,borderBottom:`1px solid var(--border)`},onClick:()=>ie(e),children:[(0,R.jsx)(`span`,{style:{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,flex:1},children:e.question}),(0,R.jsx)(`span`,{className:`chip ${e.mode===`rag`?`red`:``}`,style:{flexShrink:0},children:e.mode}),(0,R.jsx)(`button`,{className:`btn ghost sm`,onClick:t=>{t.stopPropagation(),ae(e.id)},title:`Delete`,style:{flexShrink:0,padding:2},children:`×`})]},e.id))})]})]}),(0,R.jsx)(`div`,{style:{overflow:`auto`},children:c?(0,R.jsxs)(`div`,{style:{display:`grid`,gap:0},children:[(0,R.jsxs)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:8},children:[(0,R.jsx)(`h3`,{style:{fontSize:13,fontWeight:600},children:`Generated SQL`}),c.sql&&(0,R.jsx)(Sh,{value:c.sql})]}),c.sql?(0,R.jsx)(`pre`,{className:`sql-block`,children:c.sql}):(0,R.jsx)(hh,{text:`No SQL generated.`})]}),c.explain!==null&&c.explain!==void 0&&(0,R.jsx)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`},children:(0,R.jsx)(Fh,{explain:c.explain})}),c.tenant?.enabled&&(0,R.jsxs)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`},children:[(0,R.jsx)(`h3`,{style:{fontSize:13,fontWeight:600,marginBottom:8},children:`Tenant Params`}),c.tenant.params.length>0?(0,R.jsxs)(`div`,{style:{padding:8,border:`1px solid var(--border)`,borderRadius:`var(--radius)`,fontSize:12},children:[(0,R.jsx)(`span`,{style:{fontWeight:600},children:`Positional params:`}),` `,(0,R.jsx)(`code`,{children:JSON.stringify(c.tenant.params)})]}):(0,R.jsx)(hh,{text:`No tenant params.`})]}),(0,R.jsxs)(`div`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderBottom:`1px solid var(--border)`,display:`flex`,flexDirection:`column`,gap:8},children:[M&&(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,flexWrap:`wrap`},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11,fontWeight:600},children:M.label}),M.configured?(0,R.jsx)(`span`,{className:`chip`,style:{fontSize:11},children:M.connectionKind===`file`?`file configured`:`URL configured`}):(0,R.jsx)(`span`,{className:`chip red`,style:{fontSize:11},children:M.connectionKind===`file`?`no file`:`no URL`}),M.installed?(0,R.jsxs)(`span`,{className:`chip`,style:{fontSize:11},children:[M.packageName,` ready`]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`span`,{className:`chip red`,style:{fontSize:11},children:[M.packageName,` missing`]}),M.canInstallFromStudio&&(0,R.jsxs)(`button`,{className:`btn ghost sm`,disabled:re.has(`install-driver`),onClick:()=>void oe(),style:{fontSize:11},children:[re.has(`install-driver`)?(0,R.jsx)(Mi,{size:12,className:`animate-spin`}):null,`Install `,M.packageName]}),!M.canInstallFromStudio&&M.manualInstallReason&&(0,R.jsx)(`span`,{className:`muted`,style:{fontSize:11},children:M.installCommand})]})]}),(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12},children:[(0,R.jsxs)(`button`,{className:`btn primary`,disabled:re.has(`execute`)||!c.sql||M!==null&&(!M.configured||!M.installed),onClick:()=>void P(),children:[re.has(`execute`)?(0,R.jsx)(Mi,{size:14,className:`animate-spin`}):(0,R.jsx)(Ii,{size:14}),`Execute Query`]}),j&&(0,R.jsx)(km,{status:j})]})]}),(0,R.jsx)(Eh,{}),A?.ok===!0&&(0,R.jsxs)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,marginBottom:8},children:[(0,R.jsx)(`h3`,{style:{fontSize:13,fontWeight:600},children:`Results`}),A.truncated&&(0,R.jsx)(`span`,{className:`chip amber`,children:`Showing first 500 rows`})]}),A.columns&&A.rows?(0,R.jsx)(`div`,{style:{overflowX:`auto`},children:(0,R.jsxs)(`table`,{className:`tbl`,children:[(0,R.jsx)(`thead`,{children:(0,R.jsx)(`tr`,{children:A.columns.map(e=>(0,R.jsx)(`th`,{children:e},e))})}),(0,R.jsx)(`tbody`,{children:A.rows.map((e,t)=>(0,R.jsx)(`tr`,{children:e.map((e,t)=>(0,R.jsx)(`td`,{className:`mono`,style:{fontSize:11},children:e==null?(0,R.jsx)(`span`,{className:`muted`,children:`NULL`}):String(e)},t))},t))})]})}):(0,R.jsx)(hh,{text:`No results.`})]}),c.usage&&(0,R.jsx)(`section`,{style:{padding:`var(--pad-y) var(--pad-x)`,borderTop:`1px solid var(--border)`},children:(0,R.jsx)(yh,{title:`Token usage`,usage:c.usage})})]}):(0,R.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:`100%`,padding:32},children:(0,R.jsx)(hh,{text:`Ask a question to generate SQL`})})})]})})]})}function Mh(e){return typeof e==`string`?e:JSON.stringify(e,null,2)}function Nh(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.statementKind==`string`&&Array.isArray(t.checksVerified)&&t.checksVerified.every(e=>typeof e==`string`)&&typeof t.remediationNote==`string`}function Ph(e){return e.replace(/_/g,` `)}function Fh({explain:e}){let[t,n]=(0,S.useState)(!1);return(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`button`,{type:`button`,className:`collapsible-btn`,onClick:()=>n(!t),children:[t?(0,R.jsx)(vi,{size:14}):(0,R.jsx)(yi,{size:14}),`Explain`]}),t&&(Nh(e)?(0,R.jsxs)(`div`,{style:{display:`grid`,gap:8,fontSize:12},children:[(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontWeight:600},children:`Statement kind`}),(0,R.jsx)(`span`,{className:`chip`,children:e.statementKind})]}),(0,R.jsxs)(`div`,{style:{display:`grid`,gap:4},children:[(0,R.jsx)(`span`,{className:`muted`,style:{fontWeight:600},children:`Checks verified`}),(0,R.jsx)(`ul`,{style:{listStyle:`none`,margin:0,padding:0,display:`grid`,gap:4},children:e.checksVerified.map(e=>(0,R.jsxs)(`li`,{style:{display:`flex`,alignItems:`center`,gap:6},children:[(0,R.jsx)(_i,{size:13,style:{color:`var(--green-500)`,flexShrink:0}}),Ph(e)]},e))})]}),(0,R.jsx)(`p`,{className:`muted`,style:{margin:0,fontStyle:`italic`},children:e.remediationNote})]}):(0,R.jsx)(`pre`,{className:`plain-block`,children:Mh(e)}))]})}function Ih(){let{workspace:e}=Dr(),{ragStatus:t}=Br();return e?(0,R.jsxs)(`main`,{className:`main-pane`,children:[(0,R.jsx)(`div`,{className:`main-hd`,children:(0,R.jsxs)(`div`,{className:`main-title`,children:[(0,R.jsxs)(`h1`,{children:[(0,R.jsx)(Hi,{size:18,style:{display:`inline`,marginRight:8}}),`Settings`]}),(0,R.jsx)(`div`,{className:`main-sub`,children:`Workspace configuration and diagnostics`})]})}),(0,R.jsx)(`div`,{className:`main-body`,children:(0,R.jsxs)(`div`,{className:`stack`,style:{padding:`var(--pad-y) var(--pad-x)`},children:[(0,R.jsxs)(`section`,{className:`card`,children:[(0,R.jsx)(`div`,{className:`card-hd`,children:(0,R.jsx)(`h3`,{children:`Workspace`})}),(0,R.jsx)(`div`,{className:`card-bd`,children:(0,R.jsxs)(`dl`,{className:`definition-list`,children:[(0,R.jsx)(`dt`,{children:`Schema ID`}),(0,R.jsx)(`dd`,{children:e.schemaId}),(0,R.jsx)(`dt`,{children:`Schema path`}),(0,R.jsx)(`dd`,{children:e.schemaDir}),(0,R.jsx)(`dt`,{children:`AI provider`}),(0,R.jsx)(`dd`,{children:e.aiProvider}),(0,R.jsx)(`dt`,{children:`Model`}),(0,R.jsx)(`dd`,{children:e.model}),(0,R.jsx)(`dt`,{children:`AI suggestions`}),(0,R.jsx)(`dd`,{children:e.aiConfigured?`Configured`:`Not configured`})]})})]}),(0,R.jsxs)(`section`,{className:`card`,children:[(0,R.jsx)(`div`,{className:`card-hd`,children:(0,R.jsx)(`h3`,{children:`RAG Store`})}),(0,R.jsx)(`div`,{className:`card-bd`,children:t?(0,R.jsxs)(`dl`,{className:`definition-list`,children:[(0,R.jsx)(`dt`,{children:`Store`}),(0,R.jsx)(`dd`,{children:t.store.kind}),(0,R.jsx)(`dt`,{children:`Lock file`}),(0,R.jsx)(`dd`,{children:t.files.lock?`present`:`missing`}),t.store.kind===`file`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`dt`,{children:`Base path`}),(0,R.jsx)(`dd`,{children:t.store.basePath??`n/a`}),(0,R.jsx)(`dt`,{children:`Embeddings JSON`}),(0,R.jsx)(`dd`,{children:t.files.embeddingsJson?`present`:`missing`}),(0,R.jsx)(`dt`,{children:`Embeddings binary`}),(0,R.jsx)(`dd`,{children:t.files.embeddingsBin?`present`:`missing`})]}),t.store.kind===`pgvector`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`dt`,{children:`Table`}),(0,R.jsx)(`dd`,{children:t.store.table??`askdb_rag_chunks`}),(0,R.jsx)(`dt`,{children:`Index strategy`}),(0,R.jsx)(`dd`,{children:t.store.indexStrategy??`default`})]}),t.store.kind===`memory`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`dt`,{children:`Persistence`}),(0,R.jsx)(`dd`,{children:`In-process only`})]})]}):(0,R.jsx)(hh,{text:`RAG status is unavailable.`})})]}),(0,R.jsxs)(`section`,{className:`card`,children:[(0,R.jsx)(`div`,{className:`card-hd`,children:(0,R.jsx)(`h3`,{children:`Schema Warnings`})}),(0,R.jsx)(`div`,{className:`card-bd`,children:e.warnings.length>0?(0,R.jsx)(`div`,{style:{display:`grid`,gap:8},children:e.warnings.map((e,t)=>(0,R.jsx)(`pre`,{className:`warning-block`,children:typeof e==`string`?e:JSON.stringify(e,null,2)},t))}):(0,R.jsx)(hh,{text:`No schema warnings.`})})]})]})})]}):null}function Lh({label:e,description:t,value:n,onChange:r,disabled:a}){let[o,s]=(0,S.useState)(!1);return o&&!a?(0,R.jsx)($,{label:e,description:t,children:(0,R.jsx)(Bp,{autoFocus:!0,value:n,onChange:e=>r(e.target.value.toUpperCase()),onBlur:()=>s(!1),onKeyDown:e=>{e.key===`Enter`&&e.currentTarget.blur()}})}):(0,R.jsx)($,{label:e,description:t,children:(0,R.jsxs)(`button`,{type:`button`,className:`env-var-field`,disabled:a,onClick:()=>s(!0),children:[(0,R.jsx)(`span`,{className:`mono env-var-field-value`,children:n}),!a&&(0,R.jsx)(Fi,{size:12,className:`muted`})]})})}var Rh=[{value:`postgres`,label:`PostgreSQL`},{value:`mysql`,label:`MySQL`},{value:`sqlite`,label:`SQLite`},{value:`sqlserver`,label:`SQL Server`},{value:`prisma`,label:`Prisma schema file (no live database)`}],zh=[{value:`openai`,label:`OpenAI`,keyEnv:`OPENAI_API_KEY`,modelEnv:`OPENAI_MODEL`},{value:`anthropic`,label:`Anthropic`,keyEnv:`ANTHROPIC_API_KEY`,modelEnv:`ANTHROPIC_MODEL`},{value:`google`,label:`Google`,keyEnv:`GOOGLE_GENERATIVE_AI_API_KEY`,modelEnv:`GOOGLE_GENERATIVE_AI_MODEL`},{value:`azure`,label:`Azure OpenAI`,keyEnv:`AZURE_OPENAI_API_KEY`,modelEnv:`AZURE_OPENAI_DEPLOYMENT`},{value:`foundry`,label:`Azure AI Foundry`,keyEnv:`AZURE_OPENAI_API_KEY`,modelEnv:`AZURE_OPENAI_DEPLOYMENT`}],Bh=[{value:`file`,label:`File (default, no setup required)`},{value:`memory`,label:`Memory (fast, non-persistent)`},{value:`pgvector`,label:`pgvector (Postgres vector store)`}],Vh=[{value:`postgres`,label:`PostgreSQL`},{value:`mysql`,label:`MySQL`},{value:`sqlite`,label:`SQLite`},{value:`sqlserver`,label:`SQL Server`}],Hh={postgres:`DATABASE_URL`,mysql:`DATABASE_URL`,sqlserver:`DATABASE_URL`,sqlite:``,prisma:``},Uh={postgres:`DATABASE_URL`,mysql:`DATABASE_URL`,sqlserver:`DATABASE_URL`,sqlite:``},Wh=`h-9 w-full rounded-md border border-input bg-background px-3 text-sm outline-none focus-visible:ring-2 focus-visible:ring-ring`;function Gh({stepNumber:e,configResult:t,busy:n,database:r,onDatabaseChange:a,needsConnectionEnv:o,connectionEnv:s,onConnectionEnvChange:c,sqliteFile:l,onSqliteFileChange:u,prismaSchema:d,onPrismaSchemaChange:f,aiProvider:p,onAiProviderChange:m,aiKeyEnv:h,onAiKeyEnvChange:g,aiModelEnv:_,onAiModelEnvChange:v,schemaOut:y,onSchemaOutChange:b,ragStore:x,onRagStoreChange:S,pgvectorEnv:C,onPgvectorEnvChange:w,studioExecuteEnabled:T,onStudioExecuteEnabledChange:E,studioExecuteProvider:D,onStudioExecuteProviderChange:ee,studioExecuteConnectionEnv:O,onStudioExecuteConnectionEnvChange:te,studioExecuteSqliteFile:k,onStudioExecuteSqliteFileChange:A,onWriteConfig:j}){let M=!!t;return(0,R.jsxs)(`div`,{className:`card`,children:[(0,R.jsxs)(`div`,{className:`card-hd`,children:[(0,R.jsxs)(`h3`,{children:[(0,R.jsx)(Ti,{size:14}),` `,e,` · Database & model provider`]}),t&&(0,R.jsxs)(`span`,{className:`chip green`,children:[(0,R.jsx)(_i,{size:11}),` config written`]})]}),(0,R.jsxs)(`div`,{className:`card-bd`,style:{display:`grid`,gap:12},children:[(0,R.jsx)($,{label:`Database engine`,children:(0,R.jsx)(`select`,{className:Wh,value:r,disabled:M,onChange:e=>a(e.target.value),children:Rh.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),o&&(0,R.jsx)(Lh,{label:`Connection URL env var name`,description:`The NAME of the environment variable — the actual URL goes in .env, never here.`,value:s,disabled:M,onChange:c}),r===`sqlite`&&(0,R.jsx)($,{label:`SQLite file path`,description:`Relative to the project root.`,children:(0,R.jsx)(Bp,{value:l,disabled:M,onChange:e=>u(e.target.value)})}),r===`prisma`&&(0,R.jsx)($,{label:`Prisma schema path`,description:`Leave empty to auto-discover prisma/schema.prisma.`,children:(0,R.jsx)(Bp,{value:d,disabled:M,onChange:e=>f(e.target.value),placeholder:`./prisma/schema.prisma`})}),(0,R.jsx)($,{label:`AI provider`,children:(0,R.jsx)(`select`,{className:Wh,value:p,disabled:M,onChange:e=>m(e.target.value),children:zh.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),(0,R.jsx)(Lh,{label:`API key env var name`,description:`The NAME of the environment variable holding your model API key.`,value:h,disabled:M,onChange:g}),(0,R.jsx)(Lh,{label:`Model env var name (optional)`,description:`The NAME of the environment variable for a model override. Leave empty to use the provider default.`,value:_,disabled:M,onChange:v}),(0,R.jsx)($,{label:`Schema artifact directory`,description:`Where introspection writes the schema artifact.`,children:(0,R.jsx)(Bp,{value:y,disabled:M,onChange:e=>b(e.target.value)})}),(0,R.jsx)($,{label:`RAG store`,description:`Where table/relationship embeddings are indexed for retrieval.`,children:(0,R.jsx)(`select`,{className:Wh,value:x,disabled:M,onChange:e=>S(e.target.value),children:Bh.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),x===`pgvector`&&(0,R.jsx)(Lh,{label:`pgvector connection URL env var name`,description:`The NAME of the environment variable — the actual URL goes in .env, never here.`,value:C,disabled:M,onChange:w}),(0,R.jsxs)(`label`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,R.jsx)(`input`,{type:`checkbox`,checked:T,disabled:M,onChange:e=>E(e.target.checked)}),(0,R.jsx)(`span`,{style:{fontSize:13},children:`Enable Studio execute (run queries from the browser playground)`})]}),T&&r===`prisma`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)($,{label:`Studio execute database`,description:`Prisma has no live database of its own — pick one for the browser playground to run queries against.`,children:(0,R.jsx)(`select`,{className:Wh,value:D,disabled:M,onChange:e=>ee(e.target.value),children:Vh.map(e=>(0,R.jsx)(`option`,{value:e.value,children:e.label},e.value))})}),D===`sqlite`?(0,R.jsx)($,{label:`SQLite file path`,description:`Relative to the project root.`,children:(0,R.jsx)(Bp,{value:k,disabled:M,onChange:e=>A(e.target.value)})}):(0,R.jsx)(Lh,{label:`Connection URL env var name`,description:`The NAME of the environment variable — the actual URL goes in .env, never here.`,value:O,disabled:M,onChange:te})]}),!t&&(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{type:`button`,className:`btn primary`,disabled:n===`config`,onClick:j,children:[n===`config`?(0,R.jsx)(Mi,{size:14,className:`animate-spin`}):(0,R.jsx)(_i,{size:14}),`Write askdb.config.ts`]})}),t&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6},children:[(0,R.jsxs)(`p`,{className:`muted`,style:{fontSize:12.5},children:[`Wrote `,(0,R.jsx)(`code`,{className:`mono`,children:t.configPath}),t.envExamplePath?(0,R.jsxs)(R.Fragment,{children:[` and `,(0,R.jsx)(`code`,{className:`mono`,children:t.envExamplePath})]}):null,t.packageJsonCreated?(0,R.jsxs)(R.Fragment,{children:[` (plus a minimal `,(0,R.jsx)(`code`,{className:`mono`,children:`package.json`}),`)`]}):null,`.`]}),t.installed&&t.installed.length>0&&(0,R.jsxs)(`p`,{className:`muted`,style:{fontSize:12.5},children:[`Installed into your project: `,(0,R.jsx)(`code`,{className:`mono`,children:t.installed.join(` `)}),`.`]}),t.manualInstallCommand&&(0,R.jsxs)(`div`,{style:{display:`grid`,gap:6,border:`1px solid var(--amber-500)`,borderRadius:6,padding:10},children:[(0,R.jsx)(`span`,{style:{fontSize:12.5,fontWeight:600},children:`One manual step: install the dependencies`}),(0,R.jsx)(`p`,{className:`muted`,style:{fontSize:12},children:`The wizard couldn't install packages automatically. Run this in your project, then continue below:`}),(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8},children:[(0,R.jsx)(`code`,{className:`mono`,style:{flex:1,fontSize:12,border:`1px solid var(--border)`,borderRadius:6,padding:`6px 8px`,background:`var(--surface-2)`},children:t.manualInstallCommand}),(0,R.jsx)(Sh,{value:t.manualInstallCommand})]})]})]})]})]})}function Kh({stepNumber:e,envVars:t}){let n=t.map(e=>`${e.name}=`).join(`
|
|
106
106
|
`);return(0,R.jsxs)(`div`,{className:`card`,children:[(0,R.jsx)(`div`,{className:`card-hd`,children:(0,R.jsxs)(`h3`,{children:[(0,R.jsx)(Di,{size:14}),` `,e,` · Add your secrets to .env`]})}),(0,R.jsxs)(`div`,{className:`card-bd`,style:{display:`grid`,gap:10},children:[(0,R.jsxs)(`p`,{className:`muted`,style:{fontSize:12.5,lineHeight:1.6},children:[`Create a `,(0,R.jsx)(`code`,{className:`mono`,children:`.env`}),` file next to `,(0,R.jsx)(`code`,{className:`mono`,children:`askdb.config.ts`}),` and fill in the values. Studio never asks for secret values — they stay on disk, outside this UI.`]}),(0,R.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,gap:8},children:[(0,R.jsx)(`pre`,{className:`mono`,style:{flex:1,margin:0,border:`1px solid var(--border)`,borderRadius:6,padding:10,fontSize:12,background:`var(--surface-2)`},children:t.map(e=>`${e.name}= # ${e.purpose}`).join(`
|
|
107
107
|
`)}),(0,R.jsx)(Sh,{value:n})]})]})]})}function qh({stepNumber:e,busy:t,onIntrospect:n}){return(0,R.jsxs)(`div`,{className:`card`,children:[(0,R.jsx)(`div`,{className:`card-hd`,children:(0,R.jsxs)(`h3`,{children:[(0,R.jsx)(Wi,{size:14}),` `,e,` · Introspect your database`]})}),(0,R.jsxs)(`div`,{className:`card-bd`,style:{display:`grid`,gap:10},children:[(0,R.jsx)(`p`,{className:`muted`,style:{fontSize:12.5,lineHeight:1.6},children:`Reads your schema structure (tables, columns, relationships — never rows) and writes the schema artifact. When it finishes, Studio opens on the Overview.`}),(0,R.jsx)(`div`,{children:(0,R.jsxs)(`button`,{type:`button`,className:`btn primary`,disabled:t===`introspect`,onClick:n,children:[t===`introspect`?(0,R.jsx)(Mi,{size:14,className:`animate-spin`}):(0,R.jsx)(Ti,{size:14}),`Run introspection`]})})]})]})}function Jh({status:e,onComplete:t}){let n=e.reason===`no-artifact`,[r,a]=(0,S.useState)(`postgres`),[o,s]=(0,S.useState)(`DATABASE_URL`),c=(0,S.useRef)(!1),[l,u]=(0,S.useState)(`./data.db`),[d,f]=(0,S.useState)(``),[p,m]=(0,S.useState)(`openai`),[h,g]=(0,S.useState)(`OPENAI_API_KEY`),_=(0,S.useRef)(!1),[v,y]=(0,S.useState)(`OPENAI_MODEL`),b=(0,S.useRef)(!1),[x,C]=(0,S.useState)(`./askdb`),[w,T]=(0,S.useState)(`file`),[E,D]=(0,S.useState)(`ASKDB_PGVECTOR_URL`),[ee,O]=(0,S.useState)(!0),te=(0,S.useRef)(!1),[k,A]=(0,S.useState)(`postgres`),[j,M]=(0,S.useState)(`DATABASE_URL`),ne=(0,S.useRef)(!1),[re,N]=(0,S.useState)(`./data.db`),[P,ie]=(0,S.useState)(null),[ae,oe]=(0,S.useState)(null),[F,I]=(0,S.useState)(null),L=r===`postgres`||r===`mysql`||r===`sqlserver`,se=n||P!==null,ce=(0,S.useMemo)(()=>{if(P)return P.envVars;let e=new Map,t=t=>{!t.name||e.has(t.name)||e.set(t.name,t)};if(t({name:h,purpose:`${p} API key`,requiredForIntrospection:!1}),v&&t({name:v,purpose:`${p} model override`,requiredForIntrospection:!1}),L&&t({name:o,purpose:`${r} connection URL`,requiredForIntrospection:!0}),w===`pgvector`&&t({name:E,purpose:`pgvector connection URL`,requiredForIntrospection:!1}),ee){let e=r===`prisma`?k:r;e!==`sqlite`&&t({name:r===`prisma`?j:o,purpose:`${e} connection URL (Studio execute)`,requiredForIntrospection:!1})}return Array.from(e.values())},[P,h,p,v,L,o,r,w,E,ee,k,j]),le=(0,S.useCallback)(e=>{a(e),c.current||s(Hh[e]||`DATABASE_URL`),te.current||O(e!==`prisma`)},[]),ue=(0,S.useCallback)(e=>{m(e);let t=zh.find(t=>t.value===e);_.current||g(t?.keyEnv??`OPENAI_API_KEY`),b.current||y(t?.modelEnv??``)},[]),de=(0,S.useCallback)(e=>{A(e),ne.current||M(Uh[e]||`DATABASE_URL`)},[]),fe=(0,S.useCallback)(async()=>{oe(`config`),I(null);try{let e=r===`prisma`?k:r;ie(await _r({database:r,aiProvider:p,...L&&o?{connectionEnv:o}:{},...r===`sqlite`&&l?{sqliteFile:l}:{},...r===`prisma`&&d?{prismaSchema:d}:{},...h?{aiKeyEnv:h}:{},...v?{aiModelEnv:v}:{},...x?{schemaOut:x}:{},ragStore:w,...w===`pgvector`&&E?{pgvectorEnv:E}:{},studioExecute:ee,...ee?{studioExecuteProvider:e,...e===`sqlite`?{studioExecuteSqliteFile:r===`prisma`?re:l}:{studioExecuteConnectionEnv:r===`prisma`?j:o}}:{}}))}catch(e){I(e instanceof Error?e.message:String(e))}finally{oe(null)}},[r,p,L,o,l,d,h,v,x,w,E,ee,k,j,re]),pe=(0,S.useCallback)(async()=>{oe(`introspect`),I(null);try{await vr(),t()}catch(e){I(e instanceof Error?e.message:String(e))}finally{oe(null)}},[t]),me=n?1:2,he=n?2:3;return(0,R.jsx)(`div`,{className:`app-shell`,style:{display:`flex`,alignItems:`flex-start`,justifyContent:`center`,overflow:`auto`,padding:`48px 16px`},children:(0,R.jsxs)(`div`,{style:{width:`100%`,maxWidth:640,display:`grid`,gap:16},children:[(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`h1`,{style:{fontSize:20,fontWeight:700,display:`flex`,alignItems:`center`,gap:8},children:[(0,R.jsx)(Ji,{size:18}),` Set up AskDB`]}),(0,R.jsx)(`p`,{className:`muted`,style:{fontSize:13,marginTop:6,lineHeight:1.6},children:n?(0,R.jsxs)(R.Fragment,{children:[`Config found at `,(0,R.jsx)(`code`,{className:`mono`,children:e.configPath}),`, but no schema artifact yet. Run introspection to create it.`]}):(0,R.jsxs)(R.Fragment,{children:[`No `,(0,R.jsx)(`code`,{className:`mono`,children:`askdb.config.ts`}),` found in `,(0,R.jsx)(`code`,{className:`mono`,children:e.projectDir}),`. Answer two questions and Studio writes it for you — your secrets stay in `,(0,R.jsx)(`code`,{className:`mono`,children:`.env`}),`, on your machine.`]})})]}),!n&&(0,R.jsx)(Gh,{stepNumber:1,configResult:P,busy:ae,database:r,onDatabaseChange:le,needsConnectionEnv:L,connectionEnv:o,onConnectionEnvChange:e=>{s(e),c.current=!0},sqliteFile:l,onSqliteFileChange:u,prismaSchema:d,onPrismaSchemaChange:f,aiProvider:p,onAiProviderChange:ue,aiKeyEnv:h,onAiKeyEnvChange:e=>{g(e),_.current=!0},aiModelEnv:v,onAiModelEnvChange:e=>{y(e),b.current=!0},schemaOut:x,onSchemaOutChange:C,ragStore:w,onRagStoreChange:T,pgvectorEnv:E,onPgvectorEnvChange:D,studioExecuteEnabled:ee,onStudioExecuteEnabledChange:e=>{O(e),te.current=!0},studioExecuteProvider:k,onStudioExecuteProviderChange:de,studioExecuteConnectionEnv:j,onStudioExecuteConnectionEnvChange:e=>{M(e),ne.current=!0},studioExecuteSqliteFile:re,onStudioExecuteSqliteFileChange:N,onWriteConfig:()=>void fe()}),se&&(0,R.jsx)(Kh,{stepNumber:me,envVars:ce}),se&&(0,R.jsx)(qh,{stepNumber:he,busy:ae,onIntrospect:()=>void pe()}),F&&(0,R.jsx)(`div`,{className:`card`,style:{borderColor:`var(--red-600)`},children:(0,R.jsx)(`div`,{className:`card-bd`,children:(0,R.jsx)(`p`,{style:{color:`var(--red-600)`,fontSize:12.5,whiteSpace:`pre-wrap`},children:F})})}),(0,R.jsxs)(`p`,{className:`muted tiny`,style:{lineHeight:1.6},children:[`Prefer the terminal? `,(0,R.jsx)(`code`,{className:`mono`,children:`npx askdb init`}),` runs the same setup as a CLI wizard.`]})]})})}function Yh(){return(0,R.jsx)(Qn,{children:(0,R.jsx)(Ar,{children:(0,R.jsx)(Ur,{children:(0,R.jsx)(Xh,{})})})})}function Xh(){let{load:e,loadState:t,setupStatus:n,suggestionDialog:r,setSuggestionDialog:a,applySuggestion:o}=Dr(),{refreshRagStatus:s,ragAvailable:c}=Br();return(0,S.useEffect)(()=>{e().then(()=>void s())},[e,s]),t.kind===`setup`&&n?(0,R.jsx)(Jh,{status:n,onComplete:()=>void e().then(()=>void s())}):t.kind===`loading`?(0,R.jsx)(`div`,{className:`app-shell`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,R.jsx)(`p`,{style:{color:`var(--ink-400)`,fontSize:13},children:`Loading workspace…`})}):t.kind===`error`?(0,R.jsx)(`div`,{className:`app-shell`,style:{display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,R.jsxs)(`div`,{style:{textAlign:`center`},children:[(0,R.jsx)(`p`,{style:{color:`var(--red-600)`,fontWeight:600,marginBottom:8},children:`Failed to load workspace`}),(0,R.jsx)(`p`,{style:{color:`var(--ink-400)`,fontSize:13},children:t.message})]})}):(0,R.jsxs)(Jr,{ragAvailable:c,children:[(0,R.jsxs)(sm,{defaultOpen:!0,className:`!min-h-0 h-svh`,style:{"--sidebar-width":`var(--nav-w)`},children:[(0,R.jsx)(Em,{}),(0,R.jsxs)(um,{className:`min-h-0 overflow-hidden`,children:[(0,R.jsxs)(`header`,{className:`topbar`,children:[(0,R.jsx)(lm,{className:`-ml-1`}),(0,R.jsx)(Vp,{orientation:`vertical`,className:`mr-2 !h-4`}),(0,R.jsx)(Sm,{})]}),(0,R.jsx)(`div`,{className:`app-content`,children:(0,R.jsxs)(Lt,{children:[(0,R.jsx)(Ft,{path:`/`,element:(0,R.jsx)(Nt,{to:`/overview`,replace:!0})}),(0,R.jsx)(Ft,{path:`/overview`,element:(0,R.jsx)(Am,{})}),(0,R.jsx)(Ft,{path:`/tables`,element:(0,R.jsx)(Fm,{}),children:(0,R.jsxs)(Ft,{path:`:schema/:name`,element:(0,R.jsx)(Im,{}),children:[(0,R.jsx)(Ft,{index:!0,element:(0,R.jsx)(Nt,{to:`enrichment`,replace:!0})}),(0,R.jsx)(Ft,{path:`enrichment`,element:(0,R.jsx)(Hm,{})}),(0,R.jsx)(Ft,{path:`schema`,element:(0,R.jsx)(Gm,{})}),(0,R.jsx)(Ft,{path:`sensitivity`,element:(0,R.jsx)(Km,{})})]})}),(0,R.jsx)(Ft,{path:`/concepts`,element:(0,R.jsx)(Zm,{})}),(0,R.jsx)(Ft,{path:`/tenancy`,element:(0,R.jsx)(rh,{})}),(0,R.jsx)(Ft,{path:`/rag-index`,element:(0,R.jsx)(bh,{})}),(0,R.jsx)(Ft,{path:`/playground`,element:(0,R.jsx)(jh,{})}),(0,R.jsx)(Ft,{path:`/settings`,element:(0,R.jsx)(Ih,{})})]})})]})]}),r&&(0,R.jsx)(Dm,{dialog:r,onApply:o,onClose:()=>a(null)})]})}var Zh=document.getElementById(`root`);if(!Zh)throw Error(`Missing #root element.`);(0,Jn.createRoot)(Zh).render((0,R.jsx)(S.StrictMode,{children:(0,R.jsx)(Tn,{children:(0,R.jsx)(Yh,{})})}));
|
package/dist/client/index.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<title>AskDB Studio</title>
|
|
7
7
|
<link rel="icon" type="image/png" media="(prefers-color-scheme: light)" href="/assets/brand/light-icon.png" />
|
|
8
8
|
<link rel="icon" type="image/png" media="(prefers-color-scheme: dark)" href="/assets/brand/dark-icon.png" />
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-BL-tLZoO.js"></script>
|
|
10
10
|
<link rel="stylesheet" crossorigin href="/assets/index--yhpKSeb.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body>
|
package/dist/setup.d.ts
CHANGED
|
@@ -28,15 +28,17 @@ export type SetupConfigInput = {
|
|
|
28
28
|
studioExecuteConnectionEnv?: string;
|
|
29
29
|
studioExecuteSqliteFile?: string;
|
|
30
30
|
};
|
|
31
|
+
type EnvVarEntry = {
|
|
32
|
+
name: string;
|
|
33
|
+
purpose: string;
|
|
34
|
+
requiredForIntrospection: boolean;
|
|
35
|
+
exampleValue?: string;
|
|
36
|
+
};
|
|
31
37
|
export type SetupConfigResult = {
|
|
32
38
|
configPath: string;
|
|
33
39
|
envExamplePath: string | null;
|
|
34
40
|
/** Env var names the user must fill in `.env` before introspecting / asking. */
|
|
35
|
-
envVars:
|
|
36
|
-
name: string;
|
|
37
|
-
purpose: string;
|
|
38
|
-
requiredForIntrospection: boolean;
|
|
39
|
-
}>;
|
|
41
|
+
envVars: EnvVarEntry[];
|
|
40
42
|
/** Packages installed into the project (null when nothing was needed). */
|
|
41
43
|
installed: string[] | null;
|
|
42
44
|
/** Set when automatic install wasn't possible — run this, then introspect. */
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AACrF,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AACtF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEjF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,aAAa,CAAC;IACxB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,eAAe,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wGAAwG;IACxG,qBAAqB,CAAC,EAAE,oBAAoB,CAAC;IAC7C,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/setup.js
CHANGED
|
@@ -13,15 +13,20 @@ const AI_DEFAULTS = {
|
|
|
13
13
|
};
|
|
14
14
|
const CONNECTION_ENV_DEFAULTS = {
|
|
15
15
|
postgres: "DATABASE_URL",
|
|
16
|
-
mysql: "
|
|
17
|
-
sqlserver: "
|
|
16
|
+
mysql: "DATABASE_URL",
|
|
17
|
+
sqlserver: "DATABASE_URL",
|
|
18
18
|
};
|
|
19
19
|
const EXECUTE_CONNECTION_ENV_DEFAULTS = {
|
|
20
20
|
postgres: "DATABASE_URL",
|
|
21
|
-
mysql: "
|
|
22
|
-
sqlserver: "
|
|
21
|
+
mysql: "DATABASE_URL",
|
|
22
|
+
sqlserver: "DATABASE_URL",
|
|
23
23
|
};
|
|
24
24
|
const ENV_NAME_PATTERN = /^[A-Z][A-Z0-9_]*$/;
|
|
25
|
+
const DB_URL_PLACEHOLDER = {
|
|
26
|
+
postgres: "postgresql://<USERNAME>:<PASSWORD>@<DATABASE_HOST>:<DATABASE_PORT>/<DATABASE_NAME>",
|
|
27
|
+
mysql: "mysql://<USERNAME>:<PASSWORD>@<DATABASE_HOST>:<DATABASE_PORT>/<DATABASE_NAME>",
|
|
28
|
+
sqlserver: "Data Source=<DATABASE_HOST>,<DATABASE_PORT>;Initial Catalog=<DATABASE_NAME>;User ID=<USERNAME>;Password=<PASSWORD>;Trust Server Certificate=True;Authentication=SqlPassword;",
|
|
29
|
+
};
|
|
25
30
|
/** Live-introspection driver per engine — mirrors `DB_DRIVER_PACKAGES` in `apps/cli/src/init.ts`. */
|
|
26
31
|
const DB_DRIVER_PACKAGES = {
|
|
27
32
|
postgres: "pg",
|
|
@@ -96,6 +101,7 @@ export function writeSetupConfig(cwd, input) {
|
|
|
96
101
|
name: connectionEnv,
|
|
97
102
|
purpose: `${input.database} connection URL (introspection only)`,
|
|
98
103
|
requiredForIntrospection: true,
|
|
104
|
+
exampleValue: DB_URL_PLACEHOLDER[input.database],
|
|
99
105
|
});
|
|
100
106
|
introspectionSection = ` introspection: {
|
|
101
107
|
provider: "${input.database}",
|
|
@@ -142,7 +148,12 @@ export function writeSetupConfig(cwd, input) {
|
|
|
142
148
|
let pgvectorEnv;
|
|
143
149
|
if (ragStore === "pgvector") {
|
|
144
150
|
pgvectorEnv = validateEnvName(input.pgvectorEnv ?? "ASKDB_PGVECTOR_URL", "pgvectorEnv");
|
|
145
|
-
pushEnvVar(envVars, {
|
|
151
|
+
pushEnvVar(envVars, {
|
|
152
|
+
name: pgvectorEnv,
|
|
153
|
+
purpose: "pgvector connection URL",
|
|
154
|
+
requiredForIntrospection: false,
|
|
155
|
+
exampleValue: "postgresql://<USERNAME>:<PASSWORD>@<DATABASE_HOST>:<DATABASE_PORT>/<DATABASE_NAME>",
|
|
156
|
+
});
|
|
146
157
|
}
|
|
147
158
|
const ragSection = renderRagSection(ragStore, pgvectorEnv);
|
|
148
159
|
let studioSection = null;
|
|
@@ -168,6 +179,7 @@ export function writeSetupConfig(cwd, input) {
|
|
|
168
179
|
name: execConnectionEnv,
|
|
169
180
|
purpose: `${studioExecuteProvider} connection URL (Studio execute)`,
|
|
170
181
|
requiredForIntrospection: false,
|
|
182
|
+
exampleValue: DB_URL_PLACEHOLDER[studioExecuteProvider],
|
|
171
183
|
});
|
|
172
184
|
studioSection = ` studio: {
|
|
173
185
|
execute: {
|
|
@@ -203,7 +215,7 @@ ${sections.join("\n")}
|
|
|
203
215
|
const example = [
|
|
204
216
|
"# AskDB environment — copy to .env and fill in real values.",
|
|
205
217
|
"# .env is read by Studio, the CLI, and the HTTP API; never commit it.",
|
|
206
|
-
...envVars.map((v) => `${v.name}= # ${v.purpose}`),
|
|
218
|
+
...envVars.map((v) => v.exampleValue ? `${v.name}=${v.exampleValue}` : `${v.name}= # ${v.purpose}`),
|
|
207
219
|
"",
|
|
208
220
|
].join("\n");
|
|
209
221
|
writeFileSync(envExamplePath, example, "utf8");
|
|
@@ -245,7 +257,7 @@ ${sections.join("\n")}
|
|
|
245
257
|
function ensureProjectDependencies(cwd, database, studioExecuteProvider) {
|
|
246
258
|
const missing = [];
|
|
247
259
|
if (!canResolveFrom(cwd, "@askdb/config")) {
|
|
248
|
-
missing.push(`@askdb/config@${resolveConfigSpec()}
|
|
260
|
+
missing.push(`@askdb/config@${resolveConfigSpec()}`);
|
|
249
261
|
}
|
|
250
262
|
const driversNeeded = new Set();
|
|
251
263
|
if (DB_DRIVER_PACKAGES[database])
|
|
@@ -324,9 +336,6 @@ function readStudioConfigPackageJson() {
|
|
|
324
336
|
function resolveConfigSpec() {
|
|
325
337
|
return readStudioConfigPackageJson()?.version ?? "latest";
|
|
326
338
|
}
|
|
327
|
-
function resolveDotenvSpec() {
|
|
328
|
-
return readStudioConfigPackageJson()?.dependencies?.dotenv ?? "latest";
|
|
329
|
-
}
|
|
330
339
|
function findNearestPackageJsonDir(startDir) {
|
|
331
340
|
let dir = resolve(startDir);
|
|
332
341
|
for (let i = 0; i < 40; i += 1) {
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askdb/studio",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.33",
|
|
4
4
|
"description": "AskDB Studio: local browser UI for Schema v2 enrichment and sample NL-to-SQL checks.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"askdb",
|
|
@@ -47,22 +47,22 @@
|
|
|
47
47
|
"react-dom": "^19.2.7",
|
|
48
48
|
"react-router": "^7.17.0",
|
|
49
49
|
"tailwind-merge": "^3.6.0",
|
|
50
|
-
"@askdb/ai-openai": "1.0.0-beta.4",
|
|
51
50
|
"@askdb/ai": "0.1.0-beta.4",
|
|
52
51
|
"@askdb/ai-azure": "1.0.0-beta.4",
|
|
52
|
+
"@askdb/core": "1.0.0-beta.40",
|
|
53
|
+
"@askdb/config": "1.0.0-beta.9",
|
|
54
|
+
"@askdb/connectors": "0.1.0-beta.5",
|
|
55
|
+
"@askdb/postgres": "0.2.0-beta.16",
|
|
56
|
+
"@askdb/mysql": "0.1.0-beta.15",
|
|
57
|
+
"@askdb/introspect": "0.3.0-beta.14",
|
|
58
|
+
"@askdb/enrich": "0.2.0-beta.11",
|
|
59
|
+
"@askdb/prisma": "0.2.0-beta.14",
|
|
53
60
|
"@askdb/ai-anthropic": "1.0.0-beta.2",
|
|
61
|
+
"@askdb/ai-openai": "1.0.0-beta.4",
|
|
54
62
|
"@askdb/ai-google": "1.0.0-beta.4",
|
|
55
|
-
"@askdb/
|
|
56
|
-
"@askdb/
|
|
57
|
-
"@askdb/
|
|
58
|
-
"@askdb/connectors": "0.1.0-beta.4",
|
|
59
|
-
"@askdb/enrich": "0.2.0-beta.10",
|
|
60
|
-
"@askdb/rag": "0.2.0-beta.19",
|
|
61
|
-
"@askdb/mysql": "0.1.0-beta.14",
|
|
62
|
-
"@askdb/postgres": "0.2.0-beta.15",
|
|
63
|
-
"@askdb/prisma": "0.2.0-beta.13",
|
|
64
|
-
"@askdb/sqlite": "0.1.0-beta.14",
|
|
65
|
-
"@askdb/sqlserver": "0.1.0-beta.15"
|
|
63
|
+
"@askdb/rag": "0.2.0-beta.20",
|
|
64
|
+
"@askdb/sqlite": "0.1.0-beta.15",
|
|
65
|
+
"@askdb/sqlserver": "0.1.0-beta.16"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"better-sqlite3": ">=9",
|