@duckcodeailabs/dql-cli 1.12.11 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/apps-api.d.ts +151 -3
  2. package/dist/apps-api.d.ts.map +1 -1
  3. package/dist/apps-api.js +675 -97
  4. package/dist/apps-api.js.map +1 -1
  5. package/dist/assets/dql-notebook/assets/AgentAnswerCard-Cp0eh6zU.js +5 -0
  6. package/dist/assets/dql-notebook/assets/{AgentLogPage-hzHqpD3-.js → AgentLogPage-CBGEoGmU.js} +1 -1
  7. package/dist/assets/dql-notebook/assets/{AiBuildDialog-BQRWoxp9.js → AiBuildDialog-CwAD3tXE.js} +1 -1
  8. package/dist/assets/dql-notebook/assets/{AiBuildResult-D9t_4sQl.js → AiBuildResult-CyqTuQe5.js} +1 -1
  9. package/dist/assets/dql-notebook/assets/AiSidePanel-DjB8PWHG.js +6 -0
  10. package/dist/assets/dql-notebook/assets/AnalyticsHome-B7BkvA-R.js +6 -0
  11. package/dist/assets/dql-notebook/assets/AppsView-CUrqtEGC.js +4583 -0
  12. package/dist/assets/dql-notebook/assets/BlockStudio-Bl0aGQJR.js +60 -0
  13. package/dist/assets/dql-notebook/assets/{BusinessArtifactView-CnTbFVGT.js → BusinessArtifactView-C4SZVNW-.js} +1 -1
  14. package/dist/assets/dql-notebook/assets/DbtFirstModelingPage-B0uxitnx.js +22 -0
  15. package/dist/assets/dql-notebook/assets/GitPage-BfVD4tVq.js +7 -0
  16. package/dist/assets/dql-notebook/assets/GlobalAiRail-DUwdy3fB.js +1 -0
  17. package/dist/assets/dql-notebook/assets/GovernedContextPage-D9f26ZFb.js +7 -0
  18. package/dist/assets/dql-notebook/assets/{HelpDocsPage-CL0vbSER.js → HelpDocsPage-BDPNVot1.js} +1 -1
  19. package/dist/assets/dql-notebook/assets/{HomePage-DzAucwBW.js → HomePage-DiOnRhEG.js} +1 -1
  20. package/dist/assets/dql-notebook/assets/LineageDAG-BiUFX2KL.js +1 -0
  21. package/dist/assets/dql-notebook/assets/{LineageDetailView-DdVH-nz6.js → LineageDetailView-CfbSvlPJ.js} +1 -1
  22. package/dist/assets/dql-notebook/assets/{LineageDrawer-BvrVZNKY.js → LineageDrawer-CgTScaGB.js} +1 -1
  23. package/dist/assets/dql-notebook/assets/{LineagePathBreadcrumb-CSut-zvm.js → LineagePathBreadcrumb-D7ZA7k68.js} +3 -3
  24. package/dist/assets/dql-notebook/assets/{MiniLineageGraph-zg_1wW3M.js → MiniLineageGraph-GkD4y17x.js} +1 -1
  25. package/dist/assets/dql-notebook/assets/{NewBlockModal-9cDletl-.js → NewBlockModal-B9TfRjt7.js} +1 -1
  26. package/dist/assets/dql-notebook/assets/{NewNotebookModal-V6de8L4d.js → NewNotebookModal-BbO9NKUl.js} +2 -2
  27. package/dist/assets/dql-notebook/assets/NotebookEditor-CuMpvXR9.js +200 -0
  28. package/dist/assets/dql-notebook/assets/ReadinessPage-BROJ9YBM.js +1 -0
  29. package/dist/assets/dql-notebook/assets/{SetupOnboarding-Bg-MjbC9.js → SetupOnboarding-BCcZlpuQ.js} +2 -2
  30. package/dist/assets/dql-notebook/assets/{TrustBadge-DGuHB8kP.js → TrustBadge-vQQh8d0D.js} +1 -1
  31. package/dist/assets/dql-notebook/assets/UnifiedAgentRunPanel-Dj4AXAhT.js +83 -0
  32. package/dist/assets/dql-notebook/assets/{answer-to-notebook-BDzY4MuQ.js → answer-to-notebook-DuqCcDDl.js} +1 -1
  33. package/dist/assets/dql-notebook/assets/{arrow-left-IjlnAihE.js → arrow-left-CMe1kkOL.js} +1 -1
  34. package/dist/assets/dql-notebook/assets/{arrow-right-BI4cXgOY.js → arrow-right-DvB_DONr.js} +1 -1
  35. package/dist/assets/dql-notebook/assets/{book-open-text-i6xhxu_I.js → book-open-text-CJ3NAvrs.js} +1 -1
  36. package/dist/assets/dql-notebook/assets/{bot-C6DE7Q6m.js → bot-CV8DYRrt.js} +1 -1
  37. package/dist/assets/dql-notebook/assets/{chevron-up-DSEILnDs.js → chevron-up-HxU1l85K.js} +1 -1
  38. package/dist/assets/dql-notebook/assets/{circle-x-BoAorVSm.js → circle-x-BCgtha1W.js} +1 -1
  39. package/dist/assets/dql-notebook/assets/{dagre.esm-CycymVj6.js → dagre.esm-GKp7qoUL.js} +1 -1
  40. package/dist/assets/dql-notebook/assets/{external-link-ZwE5iHsX.js → external-link-C-PXokWV.js} +1 -1
  41. package/dist/assets/dql-notebook/assets/{grip-vertical-Dnp2st8l.js → grip-vertical-B4EHbGXW.js} +1 -1
  42. package/dist/assets/dql-notebook/assets/index-1mIC_XX4.js +634 -0
  43. package/dist/assets/dql-notebook/assets/{link-2-CTKe6Snr.js → link-2-BLx-goet.js} +1 -1
  44. package/dist/assets/dql-notebook/assets/{list-tree-Ced8e_S1.js → list-tree-BRFpEmvV.js} +1 -1
  45. package/dist/assets/dql-notebook/assets/{maximize-2-Cojc6867.js → maximize-2-CCd5uRIZ.js} +1 -1
  46. package/dist/assets/dql-notebook/assets/{minimize-2-CBIAE0XH.js → minimize-2-CDwSCGlO.js} +1 -1
  47. package/dist/assets/dql-notebook/assets/{panel-right-open-po3bWSeL.js → panel-right-open-CunA1xO7.js} +1 -1
  48. package/dist/assets/dql-notebook/assets/{pencil-Cb45c6WU.js → pencil-D_I14Wyk.js} +1 -1
  49. package/dist/assets/dql-notebook/assets/{rotate-ccw-B9v1LTJ0.js → rotate-ccw-DOrfTZk8.js} +1 -1
  50. package/dist/assets/dql-notebook/assets/{semantic-fields-B6ii0an0.js → semantic-fields-AfQvjt5R.js} +1 -1
  51. package/dist/assets/dql-notebook/assets/{star-CO4tfaDq.js → star-DDhv4e8M.js} +1 -1
  52. package/dist/assets/dql-notebook/assets/{triangle-alert-BSdIu2El.js → triangle-alert-2ZXx8wAu.js} +1 -1
  53. package/dist/assets/dql-notebook/assets/usePersistedAgentThreadId-3rzkZrqc.js +18 -0
  54. package/dist/assets/dql-notebook/assets/{user-round-BfrV8U-W.js → user-round-BA074kiQ.js} +1 -1
  55. package/dist/assets/dql-notebook/assets/{wand-sparkles-BgTxZNBc.js → wand-sparkles-CEYHLt9b.js} +1 -1
  56. package/dist/assets/dql-notebook/assets/{workflow--2ycp0yy.js → workflow-CZtyrcR-.js} +1 -1
  57. package/dist/assets/dql-notebook/assets/{wrench-LMCrpa9_.js → wrench-Ong23-wu.js} +1 -1
  58. package/dist/assets/dql-notebook/assets/{x-CeNgQwGm.js → x-CSo1M3tu.js} +1 -1
  59. package/dist/assets/dql-notebook/index.html +1 -1
  60. package/dist/llm/providers/dql-agent-provider.d.ts +4 -3
  61. package/dist/llm/providers/dql-agent-provider.d.ts.map +1 -1
  62. package/dist/llm/providers/dql-agent-provider.js +13 -10
  63. package/dist/llm/providers/dql-agent-provider.js.map +1 -1
  64. package/dist/local-operation-coordinator.d.ts +59 -0
  65. package/dist/local-operation-coordinator.d.ts.map +1 -0
  66. package/dist/local-operation-coordinator.js +256 -0
  67. package/dist/local-operation-coordinator.js.map +1 -0
  68. package/dist/local-runtime.d.ts +49 -1
  69. package/dist/local-runtime.d.ts.map +1 -1
  70. package/dist/local-runtime.js +1590 -323
  71. package/dist/local-runtime.js.map +1 -1
  72. package/dist/package.json +12 -11
  73. package/dist/project-refresh-coordinator.d.ts +19 -0
  74. package/dist/project-refresh-coordinator.d.ts.map +1 -0
  75. package/dist/project-refresh-coordinator.js +134 -0
  76. package/dist/project-refresh-coordinator.js.map +1 -0
  77. package/dist/project-refresh-worker.d.ts +13 -0
  78. package/dist/project-refresh-worker.d.ts.map +1 -0
  79. package/dist/project-refresh-worker.js +58 -0
  80. package/dist/project-refresh-worker.js.map +1 -0
  81. package/package.json +13 -11
  82. package/dist/assets/dql-notebook/assets/AgentAnswerCard-CpL2kDCV.js +0 -5
  83. package/dist/assets/dql-notebook/assets/AiSidePanel-BCQB9rVF.js +0 -6
  84. package/dist/assets/dql-notebook/assets/AnalyticsHome-Ba4Ve_Gd.js +0 -6
  85. package/dist/assets/dql-notebook/assets/AppsView-CdAT9BOq.js +0 -4466
  86. package/dist/assets/dql-notebook/assets/BlockStudio-Brg4fwn5.js +0 -60
  87. package/dist/assets/dql-notebook/assets/DbtFirstModelingPage-CQe2FUZq.js +0 -22
  88. package/dist/assets/dql-notebook/assets/GitPage-DHyDBChc.js +0 -7
  89. package/dist/assets/dql-notebook/assets/GlobalAiRail-Cys4n_rq.js +0 -1
  90. package/dist/assets/dql-notebook/assets/GovernedContextPage-DyKoDSZ2.js +0 -7
  91. package/dist/assets/dql-notebook/assets/LineageDAG-QHqd_AM5.js +0 -1
  92. package/dist/assets/dql-notebook/assets/NotebookEditor-EZ0pfWVs.js +0 -200
  93. package/dist/assets/dql-notebook/assets/ReadinessPage-BaGvjyfd.js +0 -1
  94. package/dist/assets/dql-notebook/assets/UnifiedAgentRunPanel-BlWAVEwO.js +0 -83
  95. package/dist/assets/dql-notebook/assets/index-BTuliKhK.js +0 -634
  96. package/dist/assets/dql-notebook/assets/usePersistedAgentThreadId-CkVFrrjk.js +0 -18
@@ -0,0 +1,5 @@
1
+ import{R as P,j as i,b3 as We,r as $,u as $t,t as Ct,a as Q}from"./index-1mIC_XX4.js";import{C as ce,b as Ke,T as Ze,a as Bt,f as At}from"./usePersistedAgentThreadId-3rzkZrqc.js";import{T as zt}from"./TrustBadge-vQQh8d0D.js";import{R as Lt,G as Tt}from"./AiBuildResult-CyqTuQe5.js";const Rt={value:"Value",block:"Certified block",term:"Business term",metric:"Metric",dimension:"Dimension",model:"dbt model",source:"Source table",consumer:"Used by"};function Oe(e){const t=(e??"").toLowerCase();return t==="certified"?"success":t==="deprecated"?"neutral":t.includes("review")||t==="draft"||t==="pending"?"warning":"neutral"}function Mt({walk:e,defaultOpen:t=!1,triggerLabel:r}){const[n,o]=P.useState(t),s=Math.min(e.steps.length,2),[a,d]=P.useState(s),u=()=>d(s),l=e.steps.slice(0,a),f=e.steps.length-a;return i.jsxs("div",{style:{border:"1px solid var(--border-subtle, rgba(127,127,127,0.25))",borderRadius:8,background:"var(--bg-1, transparent)",overflow:"hidden"},children:[i.jsxs("button",{type:"button","aria-expanded":n,onClick:()=>{o(c=>!c),n&&u()},style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,border:0,background:"transparent",color:"var(--text-secondary, inherit)",cursor:"pointer",padding:"8px 11px",font:"inherit",fontSize:12,fontWeight:700},children:[i.jsxs("span",{style:{display:"flex",alignItems:"center",gap:7},children:[i.jsx("span",{"aria-hidden":!0,style:{transform:n?"rotate(90deg)":"none",transition:"transform 120ms",display:"inline-block"},children:"▸"}),r??"Why?"]}),i.jsx("span",{style:{fontSize:11,color:"var(--text-tertiary, inherit)",fontWeight:600},children:n?"Hide derivation":"Show how this was derived"})]}),n&&i.jsxs("div",{style:{padding:"2px 11px 11px",display:"flex",flexDirection:"column",gap:10},children:[i.jsx("div",{style:{fontSize:12.5,lineHeight:1.5,color:"var(--text-primary, inherit)"},children:e.summary}),(e.trustLabel||e.freshness)&&i.jsxs("div",{style:{display:"flex",gap:6,flexWrap:"wrap",alignItems:"center"},children:[e.trustLabel&&i.jsx(We,{tone:Oe(e.trustLabel),children:Pe(e.trustLabel)}),e.freshness&&i.jsxs("span",{style:{fontSize:11,color:"var(--text-tertiary, inherit)"},children:["Fresh as of ",_t(e.freshness)]})]}),i.jsx("ol",{style:{listStyle:"none",margin:0,padding:0,display:"flex",flexDirection:"column",gap:7},children:l.map((c,p)=>i.jsxs("li",{style:{display:"flex",gap:9,alignItems:"flex-start",paddingLeft:2},children:[i.jsx("span",{"aria-hidden":!0,style:{marginTop:3,width:7,height:7,borderRadius:999,flexShrink:0,background:"var(--accent, currentColor)",opacity:.7}}),i.jsxs("div",{style:{minWidth:0,display:"flex",flexDirection:"column",gap:2},children:[i.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"},children:[i.jsx("span",{style:{fontSize:10,fontWeight:700,textTransform:"uppercase",letterSpacing:"0.04em",color:"var(--text-tertiary, inherit)"},children:Rt[c.kind]}),i.jsx("span",{style:{fontSize:12.5,fontWeight:700,color:"var(--text-primary, inherit)",overflowWrap:"anywhere"},children:c.name}),c.status&&i.jsx(We,{tone:Oe(c.status),children:Pe(c.status)})]}),(c.owner||c.detail)&&i.jsxs("div",{style:{fontSize:11.5,color:"var(--text-secondary, inherit)",lineHeight:1.45},children:[c.owner&&i.jsxs("span",{children:["Owner: ",c.owner,". "]}),c.detail]})]})]},`${c.kind}-${c.name}-${p}`))}),f>0&&i.jsxs("button",{type:"button",onClick:()=>d(c=>Math.min(e.steps.length,c+1)),style:{alignSelf:"flex-start",border:"1px solid var(--border-default, rgba(127,127,127,0.3))",borderRadius:6,background:"transparent",color:"var(--accent, inherit)",cursor:"pointer",padding:"4px 9px",fontSize:11,fontWeight:700},children:["Show next step (",f," more)"]}),e.caveats&&e.caveats.length>0&&i.jsxs("div",{style:{borderLeft:"3px solid var(--status-warning, #d29922)",background:"var(--status-warning-bg, rgba(210,153,34,0.08))",borderRadius:6,padding:"8px 10px",display:"flex",flexDirection:"column",gap:4},children:[i.jsx("span",{style:{fontSize:10,fontWeight:800,textTransform:"uppercase",letterSpacing:"0.04em",color:"var(--status-warning, inherit)"},children:"Caveats"}),e.caveats.map((c,p)=>i.jsx("span",{style:{fontSize:11.5,color:"var(--text-secondary, inherit)",lineHeight:1.45},children:c},p))]})]})]})}function Pe(e){return e.replace(/[_-]+/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function _t(e){const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString()}const ue=/date|time|day|month|year|week|quarter|period|_at$|^at$/i,fe=/(?:^|_)(?:id|uuid|key|code)$/i,he=/(?:name|title|label|display|description|customer|account|product|region|segment|category|channel)$/i,Dt=new Set(["bar","grouped-bar","stacked-bar","line","area","scatter","pie","donut","heatmap","histogram","funnel","sankey","waterfall","gauge","kpi","table"]);function qe(e){return typeof e=="number"?Number.isFinite(e):typeof e=="string"?e.trim()!==""&&Number.isFinite(Number(e)):!1}function et(e){const t=e.rows.slice(0,20);return t.length===0?[]:e.columns.filter(r=>t.some(n=>qe(n[r]))&&t.every(n=>{const o=n[r];return o==null||o===""||qe(o)}))}function It(e,t){const r=e.columns.filter(n=>!t.includes(n));return r.find(n=>he.test(n)&&!fe.test(n))??r.find(n=>!fe.test(n))??r[0]??e.columns[0]}function Wt(e){return e.columns.filter(t=>{if(!fe.test(t))return!1;const r=t.replace(/(?:_)?(?:id|uuid|key|code)$/i,"").replace(/_+$/,"");return e.columns.some(n=>n!==t&&(r.length>0&&n.toLowerCase().startsWith(r.toLowerCase())&&he.test(n)||r.length===0&&he.test(n)))})}function Ot(e,t){if(t.length===0)return e;const r=new Set(t);return{...e,columns:e.columns.filter(n=>!r.has(n)),rows:e.rows.map(n=>Object.fromEntries(Object.entries(n).filter(([o])=>!r.has(o))))}}function tt(e,t){const r=et(e),n=e.rows.length>0,o=e.columns.filter(g=>!r.includes(g));if(!(n&&r.length>=1))return{config:{...t??{},chart:"table",decisionSource:"data",rationale:"The returned rows do not contain a numeric measure to plot."},chartable:!1,reason:"No numeric measure"};const a=It(e,r),d=t!=null&&t.x&&e.columns.includes(t.x)?t.x:a,u=t!=null&&t.y&&e.columns.includes(t.y)?t.y:r.find(g=>g!==d)??r[0],l=qt(e,r,o,d),f=Pt(t==null?void 0:t.chart),c=t==null?void 0:t.decisionSource,p=c==="authored"||c==="user",x=p&&f||f&&Ft(f,e,r,o,d,u)?f:l.chart,h=!!(f&&f!==x&&!p),b=t!=null&&t.color&&e.columns.includes(t.color)?t.color:x==="sankey"?o.find(g=>g!==d):t==null?void 0:t.color,j=h?`${l.reason}; replaced the agent suggestion because the returned data is not compatible.`:f&&!p?"Agent-selected visualization validated against the returned data.":l.reason;return{config:{...t??{},chart:x,x:d,y:u,...b?{color:b}:{},decisionSource:p?c:f&&!h?"agent":"data",rationale:j},chartable:x!=="table",reason:j}}function Pt(e){if(typeof e!="string")return;const t=e.toLowerCase().replace(/_/g,"-").replace("single-value","kpi");return Dt.has(t)?t:void 0}function qt(e,t,r,n){return e.rows.length===1&&t.length>=1?{chart:"kpi",reason:"Single returned value"}:ue.test(n)&&t.length>=1?{chart:"line",reason:`Time-like field ${n}`}:r.length>0&&t.length>=2?{chart:"grouped-bar",reason:"One category with multiple numeric measures"}:r.length>0&&t.length===1?{chart:"bar",reason:"Categorical comparison with one numeric measure"}:t.length>=2?{chart:"scatter",reason:"Two continuous numeric measures"}:{chart:"table",reason:"No comparable category or time axis was returned"}}function Ft(e,t,r,n,o,s){return e==="table"?!0:e==="kpi"||e==="gauge"?r.length>=1&&t.rows.length===1:e==="line"||e==="area"?r.includes(s)&&ue.test(o):e==="scatter"?r.length>=2:e==="sankey"?n.length>=2&&r.length>=1:e==="histogram"?r.length>=1:e==="grouped-bar"||e==="stacked-bar"?n.length>=1&&r.length>=2:e==="pie"||e==="donut"?n.length>=1&&r.length>=1&&t.rows.length>=2&&t.rows.length<=8:e==="heatmap"?t.columns.length>=3&&r.length>=1:e==="funnel"||e==="waterfall"?n.length>=1&&r.length>=1:e==="bar"?n.length>=1&&r.length>=1&&!ue.test(o):!1}function Qn({result:e,themeMode:t,t:r,chartConfig:n,embedded:o=!1,tabLabels:s,contentMaxHeight:a,tableMaxHeight:d}){const u=e.rows.length===0,[l,f]=$.useState(),[c,p]=$.useState(!1),x=$.useMemo(()=>({...n??{},...l??{}}),[n,l]),{config:h,chartable:b}=tt(e,x),j=$.useMemo(()=>et(e),[e]),g=$.useMemo(()=>Wt(e),[e]),w=$.useMemo(()=>c?e:Ot(e,g),[g,e,c]),[v,L]=$.useState("table"),R=m=>({border:"none",background:"transparent",cursor:"pointer",fontFamily:r.font,fontSize:11,fontWeight:700,padding:"2px 4px",color:m?r.accent:r.textMuted,borderBottom:`2px solid ${m?r.accent:"transparent"}`}),V=ce.some(m=>m.value===h.chart)?h.chart:"bar";return i.jsxs("div",{style:{border:o?"none":`1px solid ${r.headerBorder}`,background:r.cellBg,borderRadius:o?0:8,overflow:"hidden"},children:[i.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",padding:o?"9px 14px":"5px 9px",borderBottom:`1px solid ${r.headerBorder}`},children:[b&&i.jsx("button",{type:"button",onClick:()=>L("table"),style:R(v==="table"),children:(s==null?void 0:s.table)??"Table"}),b&&i.jsx("button",{type:"button",onClick:()=>L("chart"),style:R(v==="chart"),children:(s==null?void 0:s.chart)??"Chart"}),!b&&!u&&i.jsx("span",{style:{fontSize:11,fontWeight:700,color:r.textMuted},children:(s==null?void 0:s.table)??"Table"}),b&&v==="chart"?i.jsx("select",{value:V,onChange:m=>f(B=>({...B??{},chart:m.target.value,decisionSource:"user",rationale:"Selected manually."})),title:"Chart type",style:{fontFamily:r.font,fontSize:10.5,fontWeight:600,color:r.textSecondary,background:r.cellBg,border:`1px solid ${r.headerBorder}`,borderRadius:5,padding:"1px 4px",cursor:"pointer"},children:ce.map(m=>i.jsx("option",{value:m.value,children:m.label},m.value))}):null,b&&v==="chart"?i.jsxs(i.Fragment,{children:[i.jsxs("label",{style:{display:"inline-flex",alignItems:"center",gap:3,color:r.textMuted,fontSize:10.5},children:["X",i.jsx("select",{"aria-label":"X-axis field",value:h.x??"",onChange:m=>f(B=>({...B??{},x:m.target.value,decisionSource:"user",rationale:"Axis selected manually."})),style:{fontFamily:r.font,fontSize:10.5,color:r.textSecondary,background:r.cellBg,border:`1px solid ${r.headerBorder}`,borderRadius:5,padding:"1px 3px",cursor:"pointer",maxWidth:120},children:e.columns.map(m=>i.jsx("option",{value:m,children:m},m))})]}),j.length>0?i.jsxs("label",{style:{display:"inline-flex",alignItems:"center",gap:3,color:r.textMuted,fontSize:10.5},children:["Y",i.jsx("select",{"aria-label":"Y-axis field",value:h.y??"",onChange:m=>f(B=>({...B??{},y:m.target.value,decisionSource:"user",rationale:"Axis selected manually."})),style:{fontFamily:r.font,fontSize:10.5,color:r.textSecondary,background:r.cellBg,border:`1px solid ${r.headerBorder}`,borderRadius:5,padding:"1px 3px",cursor:"pointer",maxWidth:120},children:j.map(m=>i.jsx("option",{value:m,children:m},m))})]}):null,h.chart==="sankey"?i.jsxs("label",{style:{display:"inline-flex",alignItems:"center",gap:3,color:r.textMuted,fontSize:10.5},children:["Target",i.jsx("select",{"aria-label":"Sankey target field",value:h.color??"",onChange:m=>f(B=>({...B??{},color:m.target.value,decisionSource:"user",rationale:"Sankey target selected manually."})),style:{fontFamily:r.font,fontSize:10.5,color:r.textSecondary,background:r.cellBg,border:`1px solid ${r.headerBorder}`,borderRadius:5,padding:"1px 3px",cursor:"pointer",maxWidth:120},children:e.columns.filter(m=>!j.includes(m)&&m!==h.x).map(m=>i.jsx("option",{value:m,children:m},m))})]}):null]}):null,b&&v==="chart"&&h.rationale?i.jsxs("span",{title:h.rationale,style:{fontSize:10.5,color:r.textMuted,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:230},children:["Smart chart · ",h.chart]}):null,i.jsxs("span",{style:{marginLeft:"auto",fontSize:10.5,color:r.textMuted,alignSelf:"center"},children:[e.rowCount??e.rows.length," rows"]})]}),i.jsx("div",{style:{padding:o?12:8,minHeight:b&&v==="chart"?200:void 0,maxHeight:a??(o?380:320),overflow:"auto"},children:u?i.jsxs("div",{style:{padding:"18px 8px",textAlign:"center",color:r.textMuted,fontSize:12},children:["The query ran successfully and matched 0 rows",e.columns.length>0?` (columns: ${e.columns.join(", ")})`:"","."]}):b&&v==="chart"?i.jsx(Ke,{result:e,themeMode:t,chartConfig:h,onConfigChange:m=>f(B=>({...B??{},...m,decisionSource:"user",rationale:"Adjusted manually."}))}):i.jsxs(i.Fragment,{children:[g.length>0?i.jsx("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:6},children:i.jsx("button",{type:"button",onClick:()=>p(m=>!m),style:{border:"none",background:"transparent",color:r.accent,cursor:"pointer",fontSize:10.5,padding:0},children:c?"Hide technical fields":"Show IDs"})}):null,i.jsx(Ze,{result:w,themeMode:t,maxHeight:d})]})})]})}const Et=3;function Qt(e){const{business360:t,block:r,value:n,generated:o=!1}=e,s=e.maxPerKind??Et,a=t.focus,d=[];n&&d.push({kind:"value",name:n,detail:a.name?`Reported by ${a.name}.`:void 0});const u=(r==null?void 0:r.owner)??a.owner,l=(r==null?void 0:r.status)??a.status,f=(r==null?void 0:r.reviewCadence)??oe(a.metadata,"reviewCadence");d.push({kind:"block",name:a.name,owner:u,status:l,detail:Nt({reviewCadence:f,businessOutcome:(r==null?void 0:r.businessOutcome)??oe(a.metadata,"businessOutcome"),decisionUse:r==null?void 0:r.decisionUse})});const c=Fe([...t.businessDefinition.terms,...t.businessDefinition.definedByTerms]);for(const h of c.slice(0,s))h.id!==a.id&&d.push({kind:"term",name:h.name,owner:h.owner,detail:"Business term this answer is defined in."});for(const h of se(r==null?void 0:r.metricRefs).slice(0,s))d.push({kind:"metric",name:h,detail:"Governed metric used in the calculation."});for(const h of se(r==null?void 0:r.dimensionRefs).slice(0,s))d.push({kind:"dimension",name:h,detail:"Dimension used to slice the value."});for(const h of t.technicalSources.dbtModels.slice(0,s))d.push({kind:"model",name:h.name,detail:"dbt model the certified SQL builds on."});const p=Fe([...t.technicalSources.dbtSources,...t.technicalSources.sourceTables]);for(const h of p.slice(0,s))d.push({kind:"source",name:h.name,detail:"Raw source table the data originates from."});const x=se((r==null?void 0:r.caveats)??Vt(a.metadata,"caveats"));return{value:n,summary:Ut({focus:a,blockOwner:u,reviewCadence:f,generated:o,sourceAssets:p}),steps:d,trustLabel:e.trustLabel??(o?"review_required":void 0),freshness:e.freshness??Ht(r==null?void 0:r.dataState,r==null?void 0:r.dataStateDetail)??oe(a.metadata,"freshness"),caveats:x.length>0?x:void 0}}function Ht(e,t){switch(e){case"failed":return t?`upstream failed — ${t}`:"upstream failed";case"stale":return t?`stale data — ${t}`:"stale data";default:return}}function Nt(e){const t=[];return e.businessOutcome?t.push(e.businessOutcome):e.decisionUse&&t.push(`Supports: ${e.decisionUse}.`),e.reviewCadence&&t.push(`Reviewed ${e.reviewCadence}.`),t.length>0?t.join(" "):void 0}function Ut(e){const t=e.blockOwner?` owned by ${e.blockOwner}`:"",r=e.sourceAssets.length>0?` It traces back to ${e.sourceAssets[0].name}.`:"";if(e.generated)return`This value was generated from ${e.focus.name}${t} and still needs analyst review before it can be certified.${r}`;const n=e.reviewCadence?`, reviewed ${e.reviewCadence}`:"";return`This value comes from the certified ${e.focus.name}${t}${n}.${r}`}function oe(e,t){const r=e==null?void 0:e[t];return typeof r=="string"&&r.trim().length>0?r:void 0}function Vt(e,t){const r=e==null?void 0:e[t];return Array.isArray(r)?r.filter(n=>typeof n=="string"&&n.trim().length>0):[]}function se(e){if(!e)return[];const t=new Set,r=[];for(const n of e){const o=typeof n=="string"?n.trim():"";!o||t.has(o.toLowerCase())||(t.add(o.toLowerCase()),r.push(o))}return r}function Fe(e){const t=new Set,r=[];for(const n of e)t.has(n.id)||(t.add(n.id),r.push(n));return r}function nt(e){var n,o;const t=e.dqlArtifact,r=(n=t==null?void 0:t.source)==null?void 0:n.trim();return r?{source:r,kind:t==null?void 0:t.kind,name:t==null?void 0:t.name,sourcePath:t==null?void 0:t.sourcePath,metrics:le(t==null?void 0:t.metrics),dimensions:le(t==null?void 0:t.dimensions),filters:((t==null?void 0:t.filters)??[]).map(s=>{var l,f;const a=(l=s.dimension)==null?void 0:l.trim(),d=((f=s.operator)==null?void 0:f.trim())||"equals",u=le(s.values);return!a||u.length===0?"":`${a} ${d} ${u.join(", ")}`}).filter(Boolean),timeDimension:(o=t==null?void 0:t.timeDimension)!=null&&o.name?[t.timeDimension.name,t.timeDimension.granularity].filter(Boolean).join(" / "):void 0,orderBy:((t==null?void 0:t.orderBy)??[]).map(s=>{var u,l;const a=(u=s.name)==null?void 0:u.trim(),d=(l=s.direction)==null?void 0:l.trim();return a&&d?`${a} ${d}`:""}).filter(Boolean),limit:typeof(t==null?void 0:t.limit)=="number"&&Number.isFinite(t.limit)?t.limit:void 0}:null}function Jt(e){for(let t=e.length-1;t>=0;t--){const r=e[t];if(r.kind!=="tool_result"||r.id!=="governed_answer")continue;const n=r.output;if(n&&typeof n=="object"&&"kind"in n)return n}return null}function le(e){return Array.isArray(e)?e.map(t=>typeof t=="string"?t.trim():"").filter(Boolean):[]}function Gt(e){const t=e.result;if(!t||!Array.isArray(t.rows))return null;const n=(Array.isArray(t.columns)?t.columns:[]).map(s=>typeof s=="string"?s:s&&typeof s=="object"&&typeof s.name=="string"?String(s.name):String(s)),o=t.rows.filter(s=>!!(s&&typeof s=="object"&&!Array.isArray(s))).map(s=>s);return{columns:n,rows:o,rowCount:typeof t.rowCount=="number"?t.rowCount:o.length,executionTime:t.executionTime}}function Xt(e,t){const r=e&&typeof e=="object"?e:{},n=typeof r.chart=="string"?r.chart:void 0,o=r.decisionSource==="authored"||r.decisionSource==="agent"||r.decisionSource==="data"||r.decisionSource==="user"?r.decisionSource:void 0,s=n||(typeof t.suggestedViz=="string"?t.suggestedViz:void 0),a=s?s.toLowerCase().replace(/_/g,"-")==="single-value"?"kpi":s:void 0;return{...a?{chart:a}:{},...a?{decisionSource:o??(n?"authored":"agent")}:{},...typeof r.rationale=="string"?{rationale:r.rationale}:{},...typeof r.x=="string"?{x:r.x}:{},...typeof r.y=="string"?{y:r.y}:{},...typeof r.color=="string"?{color:r.color}:{},...typeof r.title=="string"?{title:r.title}:{}}}function Yt(e,t){return!t||t.columns.length===0?e:tt(t,e).config}function ae(e){if(typeof e!="string")return;const t=e.replace(/\s+/g," ").trim();if(t)return t.length>180?`${t.slice(0,177)}...`:t}function rt(e){const t=Kt(e,["Answer","Business summary","Summary"]);if(t)return Ee(t,340);const r=/^(?:reuse evidence|certified result preview|result preview|result summary|trust status|next action|recommended action|sql used by block|reusable block sql|proposed sql|sql generated|sql draft|evidence|parameters|lineage|technical lineage)\s*:/i,n=/^(?:SELECT|WITH|FROM|WHERE|GROUP BY|ORDER BY|LIMIT)\b/i,o=[];for(const a of e.split(/\r?\n/)){const d=a.trim();if(!(!d||/^#{1,6}\s*/.test(d)||/^```/.test(d)||/^\|/.test(d))&&!/^outcome\s*:/i.test(d)){if(r.test(d)||n.test(d)){if(o.length>0)break;continue}if(o.push(d),o.length>=5)break}}const s=o.join(" ").replace(/[*_`]+/g,"").replace(/\s+/g," ").trim();return Ee(s,340)}function Kt(e,t){var f,c,p;const r=e.split(/\r?\n/),n=t.map(x=>x.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),o=new RegExp(`^\\s*(?:#{1,6}\\s*)?(?:[-*]\\s*)?(?:\\*\\*)?(${n})(?:\\*\\*)?\\s*:\\s*(.*)$`,"i"),s=/^\s*(?:#{1,6}\s*)?(?:[-*]\s*)?(?:\*\*)?[A-Z][A-Za-z /-]{2,42}(?:\*\*)?\s*:/,a=r.findIndex(x=>o.test(x));if(a<0)return;const d=((p=(c=(f=r[a])==null?void 0:f.match(o))==null?void 0:c[2])==null?void 0:p.trim())??"",u=d?[d]:[];for(let x=a+1;x<r.length;x+=1){const h=r[x]??"";if(s.test(h)||/^\s*```/.test(h))break;h.trim()&&u.push(h.trim())}return u.join(" ").replace(/[*_`]+/g,"").replace(/\s+/g," ").trim()||void 0}function Ee(e,t){const r=e.replace(/\s+/g," ").trim();if(r.length<=t)return r;const n=r.slice(0,t-1),o=Math.max(n.lastIndexOf(". "),n.lastIndexOf("; "));if(o>100)return n.slice(0,o+1).trim();const s=n.lastIndexOf(" ");return`${n.slice(0,s>80?s:n.length).trim()}...`}function Zt({answer:e,themeMode:t,showSql:r=!0,compact:n=!1,addToAppTarget:o,sourceQuestion:s,onInvestigate:a,onInsertSql:d,onCreateBlock:u}){var we,ke,$e,Ce,Be,Ae,ze,Le,Te,Re,Me,_e,De;const l=Ct[t],{dispatch:f}=$t(),c=Gt(e),p=Xt((we=e.result)==null?void 0:we.chartConfig,e),[x,h]=$.useState(),b=Yt({...p??{},...x??{}},c),j=!!(c&&Bt(c,b)!=="table"),g=e.analysisPlan??((ke=e.evidence)==null?void 0:ke.analysisPlan),w=r?e.sql??(($e=e.result)==null?void 0:$e.sql)??e.proposedSql??(g==null?void 0:g.sql):void 0,v=nt(e),L=e.executionError??(((Be=(Ce=e.evidence)==null?void 0:Ce.execution)==null?void 0:Be.status)==="failed"?e.evidence.execution.message:void 0),R=((Ae=e.result)==null?void 0:Ae.blockPath)??((ze=e.block)==null?void 0:ze.sourcePath),V=!!(w||L||r&&R),m=!!e.evidence,[B,pe]=$.useState("answer"),[ct,xe]=$.useState(!1),[ge,ut]=$.useState(!1),me=dt(e),ye=zn(me,l),be=(e.answer??e.text??"").replace(/\n\n_Question:_[\s\S]*$/m,"").trim(),_=n?rt(be):be,k=((Le=e.result)==null?void 0:Le.blockName)??((Te=e.block)==null?void 0:Te.name)??((Me=(Re=e.citations)==null?void 0:Re.find(y=>y.kind==="block"))==null?void 0:Me.name),te=Mn(e,k),ft=Ln(e,c,k,R),[ht,ve]=$.useState(!1),[J,G]=$.useState(null),[je,pt]=$.useState(null),xt=!!(o&&(c||w||_||k)),gt=!!(d&&w),mt=!!(u&&w),q=ae(g==null?void 0:g.question)??ae(s)??ae(_)??"Investigate this answer",yt=!!(a&&q),bt=it(e,{sql:w,executionError:L,blockName:k,result:c}),vt=()=>{!d||!w||(d(w,k??(g==null?void 0:g.question)??"AI SQL preview",{question:s??(g==null?void 0:g.question)}),pt("Inserted SQL preview cell for review."))},jt=()=>{!u||!w||u(w,{title:(v==null?void 0:v.name)??k??(g==null?void 0:g.question)??"AI DQL draft",description:_||(g==null?void 0:g.routeReason)||"AI generated DQL draft.",tags:["ai-generated","review-required"]})},St=async(y="auto")=>{if(!o)return;const O=y==="both"?["chart","data"]:y==="data"?["data"]:y==="chart"?["chart"]:c?[j?"chart":"data"]:[];ve(!0),xe(!1),G(null);try{if(e.certification==="certified"&&k){const A=await Q.getDashboard(o.appId,o.dashboardId);if(!A)throw new Error("Dashboard could not be loaded.");const D=[...A.dashboard.layout.items],M=O.length>0?O:["chart"];for(const E of M){const Y=M.length>1?`${k}_${E}`:k,Ie={...A.dashboard,layout:{...A.dashboard.layout,items:D}},kt=In(Ie,Y);D.push({i:kt,...Dn(Ie),block:{blockId:k},viz:{type:E==="data"?"table":Wn(b==null?void 0:b.chart)},title:M.length>1?`${k} ${E==="data"?"data":"chart"}`:k})}const F={...A.dashboard.layout,items:D},T=await Q.patchDashboardLayout(o.appId,o.dashboardId,F);if(!T.ok)throw new Error(T.error);G(M.length>1?"Added certified chart and data tiles.":"Added certified block tile.")}else{const A=!!(w&&window.confirm("Keep this AI result refreshed daily?")),D=k??(_.slice(0,60)||"AI result"),M=O.length>0?O:["data"];let F=c??void 0;if(!F&&w){const T=await Q.previewGeneratedSql(w);if(!T.ok)throw new Error(`SQL preview failed: ${T.error}`);F=T.result}for(const T of M){const E=T==="data"?{...b??{},chart:"table",title:`${D} data`}:b,Y=await Q.createAiPin(o.appId,{dashboardId:o.dashboardId,title:M.length>1?`${D} ${T==="data"?"data":"chart"}`:D,answer:_||e.answer||e.text||"AI generated answer",question:g==null?void 0:g.question,sql:w,sourceTier:e.sourceTier,certification:e.certification==="certified"?"certified":"ai_generated",reviewStatus:"needs_review",refreshCadence:A?"daily":"none",chartConfig:E,result:F,citations:e.citations,analysisPlan:g,evidence:e.evidence,followUps:g==null?void 0:g.followUps});if(!Y.ok)throw new Error(Y.error)}G(M.length>1?"Pinned chart and data tiles for review.":"Pinned AI result for review.")}window.dispatchEvent(new CustomEvent("dql-app-dashboard-updated",{detail:o}))}catch(A){G(A instanceof Error?A.message:String(A))}finally{ve(!1)}},wt=()=>{!a||!q||a({question:q,title:te?`${te}: ${q}`:q,answerSummary:_,blockName:te,sql:w,evidence:e.evidence})},ne=[{id:"answer",label:n?"Summary":"Answer",visible:!0},{id:"dql",label:"DQL",visible:!!v},{id:"visual",label:n?"Chart":"Visualization",visible:j},{id:"data",label:"Data",visible:!!c},{id:"sql",label:"SQL / Block",visible:r&&V},{id:"lineage",label:n?"Trace":"Lineage",visible:m},{id:"context",label:n?"Context":"Business Context",visible:m},{id:"review",label:n?"Trust":"Review",visible:m||!!((_e=e.citations)!=null&&_e.length)}].filter(y=>y.visible),Se=ne.some(y=>y.id===B)?B:"answer",X=ne.filter(y=>y.id!=="answer"),re=X.some(y=>y.id===B)?B:(De=X[0])==null?void 0:De.id,ie=y=>y==="answer"?i.jsx(on,{summary:_,answer:e,blockName:k,evidence:e.evidence,analysisPlan:g,result:c,sourceTier:e.sourceTier,compact:n,t:l}):y==="dql"&&v?i.jsx(Sn,{artifact:v,t:l}):y==="visual"&&c&&j?i.jsxs("div",{style:{padding:n?"8px 10px":"10px 12px",minHeight:n?180:220,display:"grid",gap:10},children:[i.jsx($n,{result:c,chartConfig:b,t:l,onChange:O=>h(A=>({...A??{},...O,decisionSource:"user",rationale:"Adjusted manually."}))}),i.jsx(Ke,{result:c,themeMode:t,chartConfig:b})]}):y==="data"&&c?i.jsx("div",{style:{maxHeight:n?320:420,overflow:"auto"},children:i.jsx(Ze,{result:c,themeMode:t})}):y==="lineage"?i.jsx(bn,{evidence:e.evidence,t:l}):y==="context"?i.jsx(vn,{evidence:e.evidence,t:l}):y==="sql"&&r&&V?i.jsx(wn,{sql:w,blockPath:R,executionError:L,t:l}):y==="review"?i.jsx(jn,{answer:e,t:l}):null;return i.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:n?8:10,whiteSpace:"normal"},children:[i.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[i.jsx(zt,{state:me}),i.jsx(Lt,{t:l,route:e.route}),W(e.cascade)&&i.jsx("span",{style:{border:`1px solid ${l.cellBorder}`,borderRadius:999,padding:"3px 8px",fontSize:11,fontWeight:700,color:l.textSecondary,background:l.tableHeaderBg},children:W(e.cascade)}),!n&&k&&i.jsxs("span",{style:{fontSize:12,fontFamily:l.fontMono,color:l.textSecondary},children:["block: ",k]}),c&&i.jsxs("span",{style:{fontSize:12,color:l.textMuted},children:[(c.rowCount??c.rows.length).toLocaleString()," rows",c.executionTime!==void 0&&i.jsxs(i.Fragment,{children:[" - ",Math.round(c.executionTime),"ms"]})]}),xt&&i.jsx(Cn,{t:l,adding:ht,hasResult:!!c,hasChart:j,fallbackLabel:e.certification==="certified"&&k?n?"Add":"Add block":"Pin answer",open:ct,onToggle:()=>xe(y=>!y),onAdd:y=>void St(y)}),yt&&i.jsx("button",{type:"button",onClick:wt,style:{border:`1px solid ${l.accent}`,borderRadius:6,background:`${l.accent}12`,color:l.accent,cursor:"pointer",padding:n?"4px 8px":"5px 10px",fontSize:11,fontFamily:l.font,fontWeight:800},children:n?"Investigate":"Investigate deeper"}),mt&&i.jsx("button",{type:"button",onClick:jt,style:{border:`1px solid ${l.accent}`,borderRadius:6,background:l.cellBg,color:l.accent,cursor:"pointer",padding:n?"4px 8px":"5px 10px",fontSize:11,fontFamily:l.font,fontWeight:700},children:n?"DQL draft":v?"Review DQL draft":"Create DQL draft"}),gt&&i.jsx("button",{type:"button",onClick:vt,style:{border:`1px solid ${l.accent}`,borderRadius:6,background:`${l.accent}18`,color:l.accent,cursor:"pointer",padding:n?"4px 8px":"5px 10px",fontSize:11,fontFamily:l.font,fontWeight:700},children:n?"SQL preview":"Insert SQL preview"})]}),J&&i.jsx("div",{style:{fontSize:11,color:J.toLowerCase().includes("added")||J.toLowerCase().includes("pinned")?"#3fb950":"#ff7b72"},children:J}),je&&i.jsx("div",{style:{fontSize:11,color:"#3fb950"},children:je}),i.jsx(en,{outcome:bt,t:l,compact:n}),i.jsxs("div",{style:{border:`1px solid ${l.cellBorder}`,borderTop:`2px solid ${ye}`,borderRadius:n?10:6,overflow:"hidden",background:l.cellBg},children:[!n&&i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"4px 10px",borderBottom:`1px solid ${l.cellBorder}`,background:`${l.tableHeaderBg}70`,flexWrap:"wrap"},children:[ne.map(y=>i.jsx(Xe,{active:Se===y.id,label:y.label,onClick:()=>pe(y.id),t:l},y.id)),!r&&R&&i.jsx("span",{style:{marginLeft:"auto",minWidth:0,fontSize:11,fontFamily:l.fontMono,color:l.textMuted,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:R})]}),ie(n?"answer":Se),n&&X.length>0&&i.jsxs("div",{style:{borderTop:`1px solid ${l.cellBorder}`,background:`${l.tableHeaderBg}45`},children:[i.jsxs("button",{type:"button",onClick:()=>ut(y=>!y),style:{width:"100%",border:0,background:"transparent",color:l.textSecondary,padding:"8px 12px",display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer",fontSize:11,fontWeight:800},children:[i.jsx("span",{children:"Details"}),i.jsx("span",{style:{color:l.textMuted,fontFamily:l.fontMono},children:ge?"hide":"show evidence"})]}),ge&&i.jsxs("div",{style:{borderTop:`1px solid ${l.cellBorder}`},children:[i.jsx("div",{style:{display:"flex",alignItems:"center",gap:14,padding:"4px 12px",flexWrap:"wrap"},children:X.map(y=>i.jsx(Xe,{active:re===y.id,label:y.label,onClick:()=>pe(y.id),t:l},y.id))}),re?ie(re):null]})]}),i.jsx(kn,{items:ft,t:l,accent:ye}),i.jsx(Tt,{t:l,skills:e.appliedSkills,onOpenSkills:()=>f({type:"SET_MAIN_VIEW",view:"skills"})})]})]})}function it(e,t){var r,n,o,s,a;if(e.kind==="no_answer")return{kind:"cannot_answer",label:"Cannot answer yet",detail:"The assistant did not find enough trusted context to safely answer or generate SQL.",nextAction:"Clarify the business object, metric, grain, or source table.",tone:"error"};if(e.certification==="certified"||e.kind==="certified"){const d=t.blockName??e.sourceCertifiedBlock??((r=e.block)==null?void 0:r.name);return{kind:"reuse_certified_block",label:"Reuse certified block",detail:d?`Existing DQL block ${d} answers this request.`:"A certified DQL artifact answers this request.",nextAction:"Use the certified block instead of creating duplicate SQL.",tone:"success"}}return t.executionError||e.executionError?{kind:"fix_sql",label:"Fix SQL",detail:"The generated or selected SQL needs correction before it can become reusable DQL.",nextAction:"Ask AI to repair, edit manually, then rerun preview.",tone:"error"}:(n=e.draftBlock)!=null&&n.path||e.draftBlockId?{kind:"use_existing_draft",label:"Use existing draft",detail:`A review-required DQL draft is available at ${((o=e.draftBlock)==null?void 0:o.path)??e.draftBlockId}.`,nextAction:"Open the draft, review metadata/tests/lineage, then certify manually.",tone:"accent"}:(a=(s=e.dqlArtifact)==null?void 0:s.source)!=null&&a.trim()?{kind:"create_dql_draft",label:"Review DQL draft",detail:"A review-required DQL artifact is available for analyst review.",nextAction:"Review DQL metadata, query logic, lineage, and result preview before certification.",tone:"warning"}:t.sql?{kind:t.result?"generate_sql_cell":"create_dql_draft",label:t.result?"Review SQL preview":"Create DQL draft",detail:t.result?`Review-required SQL preview returned ${(t.result.rowCount??t.result.rows.length).toLocaleString()} row${(t.result.rowCount??t.result.rows.length)===1?"":"s"}.`:"Review-required SQL is available but still needs preview and DQL metadata review.",nextAction:t.result?"Create a DQL draft after reviewing parameters and lineage; insert SQL only as a notebook preview.":"Run preview, inspect parameters, then create a draft block.",tone:"warning"}:{kind:"needs_review",label:"Needs review",detail:"The assistant returned business context but no executable certified answer or SQL draft.",nextAction:"Review evidence and ask for a specific SQL, reuse, or DQL draft action.",tone:"muted"}}function en({outcome:e,t,compact:r}){const n=tn(e.tone,t);return i.jsxs("div",{style:{border:`1px solid ${n}45`,borderLeft:`3px solid ${n}`,borderRadius:r?10:7,background:`${n}10`,padding:r?"9px 10px":"10px 12px",display:"grid",gap:r?4:5},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:7,minWidth:0},children:[i.jsx("span",{style:{border:`1px solid ${n}55`,background:`${n}14`,color:n,borderRadius:999,padding:"2px 7px",fontSize:10,fontWeight:850,lineHeight:1.1,textTransform:"uppercase",letterSpacing:0,flexShrink:0},children:e.label}),i.jsx("span",{style:{fontSize:r?12:12.5,color:t.textPrimary,fontWeight:750,overflow:"hidden",textOverflow:"ellipsis"},children:e.detail})]}),i.jsxs("div",{style:{fontSize:r?11.5:12,color:t.textSecondary,lineHeight:1.45},children:["Next: ",e.nextAction]})]})}function tn(e,t){switch(e){case"success":return t.success;case"accent":return t.accent;case"warning":return t.warning;case"error":return t.error;case"muted":default:return t.textMuted}}function nn({answer:e,blockName:t}){const[r,n]=$.useState(null),[o,s]=$.useState(!1),[a,d]=$.useState(!1),u=P.useCallback(async()=>{var l,f;if(!a){d(!0),s(!0);try{const c=await Q.fetchBusiness360(t);if(!c){n(null);return}const p=(l=e.evidence)==null?void 0:l.outcome,x=Qe(e,"metric"),h=Qe(e,"dimension"),b=e.certification!=="certified"&&e.kind!=="certified",j=Qt({business360:c,block:{name:t,owner:p==null?void 0:p.owner,status:((f=e.block)==null?void 0:f.status)??e.certification,reviewCadence:p==null?void 0:p.reviewCadence,caveats:p==null?void 0:p.caveats,decisionUse:p==null?void 0:p.decisionUse,metricRefs:x,dimensionRefs:h},value:rn(e),generated:b,trustLabel:e.trustLabel});n(j)}catch{n(null)}finally{s(!1)}}},[e,t,a]);return a?o?i.jsx("div",{style:{fontSize:11.5,color:"var(--text-tertiary, inherit)"},children:"Assembling derivation…"}):r?i.jsx(Mt,{walk:r,defaultOpen:!0}):null:i.jsx("button",{type:"button",onClick:()=>void u(),"aria-expanded":!1,style:{alignSelf:"flex-start",border:0,background:"transparent",color:"var(--accent, inherit)",cursor:"pointer",padding:"4px 0",fontSize:12,fontWeight:700,textDecoration:"underline",textUnderlineOffset:3},children:"Why? Show how this was derived"})}function Qe(e,t){var o,s;const r=(((o=e.evidence)==null?void 0:o.semanticObjects)??[]).filter(a=>a.kind===t).map(a=>a.name).filter(a=>!!a);if(r.length>0)return r;const n=e.analysisPlan??((s=e.evidence)==null?void 0:s.analysisPlan);return(t==="metric"?n==null?void 0:n.measures:n==null?void 0:n.dimensions)??[]}function rn(e){const t=e.result;if(t&&Array.isArray(t.rows)&&t.rows.length===1){const r=t.rows[0];if(r&&typeof r=="object"&&!Array.isArray(r)){const n=Object.values(r);if(n.length===1&&(typeof n[0]=="number"||typeof n[0]=="string"))return String(n[0])}}}function on({summary:e,answer:t,blockName:r,evidence:n,analysisPlan:o,result:s,sourceTier:a,compact:d,t:u}){var f,c,p,x,h,b,j,g,w;const l=(f=o==null?void 0:o.followUps)==null?void 0:f[0];return i.jsxs("div",{style:{padding:d?14:12,display:"flex",flexDirection:"column",gap:d?10:12},children:[e?i.jsx(ot,{text:e,t:u,compact:d,summaryOnly:d}):i.jsx("div",{style:{fontSize:12,color:u.textMuted},children:"No summary text was returned."}),t&&r&&i.jsx(nn,{answer:t,blockName:r}),d?i.jsx("div",{style:{fontSize:11.5,color:u.textMuted,display:"flex",flexWrap:"wrap",gap:6,alignItems:"center"},children:[a?An(a):null,s?`${(s.rowCount??s.rows.length).toLocaleString()} rows`:null,((c=n==null?void 0:n.validation)==null?void 0:c.status)==="failed"?"needs review":null,((p=n==null?void 0:n.execution)==null?void 0:p.status)==="failed"?"data check failed":null].filter(Boolean).map((v,L)=>i.jsxs(P.Fragment,{children:[L>0&&i.jsx("span",{style:{color:u.cellBorder},children:"·"}),i.jsx("span",{children:v})]},`${v}-${L}`))}):i.jsxs("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[a&&i.jsx(z,{label:C(a),t:u}),s&&i.jsx(z,{label:`${(s.rowCount??s.rows.length).toLocaleString()} rows`,t:u}),((x=n==null?void 0:n.validation)==null?void 0:x.status)&&i.jsx(z,{label:`validation: ${n.validation.status}`,t:u}),((h=n==null?void 0:n.execution)==null?void 0:h.status)&&i.jsx(z,{label:`execution: ${n.execution.status}`,t:u})]}),s&&!d&&i.jsx(yn,{result:s,t:u,compact:d}),o&&!d&&i.jsxs("div",{style:{display:"grid",gap:7,padding:d?"9px 10px":10,border:`1px solid ${u.cellBorder}`,borderRadius:8,background:`${u.tableHeaderBg}45`},children:[o.routeReason&&i.jsx("div",{style:{fontSize:d?12.5:12,lineHeight:1.45,color:u.textSecondary},children:o.routeReason}),(o.grain||((b=o.measures)==null?void 0:b.length)||((j=o.dimensions)==null?void 0:j.length))&&i.jsxs("div",{style:{display:"flex",gap:6,flexWrap:"wrap"},children:[o.grain&&i.jsx(z,{label:`grain: ${o.grain}`,t:u}),(g=o.measures)==null?void 0:g.slice(0,2).map(v=>i.jsx(z,{label:v,t:u},`measure-${v}`)),(w=o.dimensions)==null?void 0:w.slice(0,2).map(v=>i.jsx(z,{label:v,t:u},`dimension-${v}`))]}),o.candidateJoins&&o.candidateJoins.length>0&&i.jsxs("div",{style:{fontSize:12,color:u.textMuted},children:["Join: ",i.jsx("span",{style:{color:u.textSecondary},children:at(o.candidateJoins[0])})]}),l&&i.jsxs("div",{style:{fontSize:12,color:u.textMuted},children:["Next: ",i.jsx("span",{style:{color:u.textSecondary},children:l})]})]})]})}function ot({text:e,t,compact:r=!1,summaryOnly:n=!1}){const o=n?rt(e):e,s=sn(o,t,r);return i.jsx("div",{style:{display:"flex",flexDirection:"column",gap:r?7:8,color:t.textPrimary,fontFamily:t.font,overflowWrap:"anywhere"},children:s})}function sn(e,t,r){var d;const n=ln(e).split(`
2
+ `),o=[];let s=0,a=0;for(;s<n.length;){const l=n[s].trim();if(!l){s+=1;continue}if(l.startsWith("```")){const x=l.replace(/^```/,"").trim(),h=[];for(s+=1;s<n.length&&!n[s].trim().startsWith("```");)h.push(n[s]),s+=1;s<n.length&&(s+=1),o.push(i.jsx("pre",{style:mn(t,r),"aria-label":x?`${x} code`:"code",children:h.join(`
3
+ `)},`code-${a++}`));continue}const f=l.match(/^(#{1,4})\s+(.+)$/);if(f){const x=f[1].length;o.push(i.jsx("div",{style:hn(t,r,x),children:I(f[2],t)},`heading-${a++}`)),s+=1;continue}if(/^[-*_]{3,}$/.test(l)){o.push(i.jsx("hr",{style:{width:"100%",border:0,borderTop:`1px solid ${t.cellBorder}`,margin:r?"2px 0":"4px 0"}},`hr-${a++}`)),s+=1;continue}if(an(n,s)){const x=[];for(;s<n.length&&ee(n[s].trim());)x.push(n[s].trim()),s+=1;o.push(i.jsx(cn,{lines:x,t,compact:r},`table-${a++}`));continue}if(l.startsWith(">")){const x=[];for(;s<n.length&&n[s].trim().startsWith(">");)x.push(n[s].trim().replace(/^>\s?/,"")),s+=1;o.push(i.jsx("div",{style:Ne(t,r),children:I(x.join(" "),t)},`quote-${a++}`));continue}if(/^[-*+]\s+/.test(l)){const x=[];for(;s<n.length&&/^[-*+]\s+/.test(n[s].trim());)x.push(n[s].trim().replace(/^[-*+]\s+/,"")),s+=1;o.push(i.jsx("ul",{style:Ue(t,r),children:x.map((h,b)=>i.jsx("li",{style:Ve(t,r),children:I(h,t)},`${h}-${b}`))},`ul-${a++}`));continue}if(/^\d+\.\s+/.test(l)){const x=[];for(;s<n.length&&/^\d+\.\s+/.test(n[s].trim());)x.push(n[s].trim().replace(/^\d+\.\s+/,"")),s+=1;o.push(i.jsx("ol",{style:Ue(t,r),children:x.map((h,b)=>i.jsx("li",{style:Ve(t,r),children:I(h,t)},`${h}-${b}`))},`ol-${a++}`));continue}const c=[];for(;s<n.length;){const x=n[s].trim();if(!x||He(x)&&c.length>0||(c.push(x),s+=1,He(((d=n[s])==null?void 0:d.trim())??"")))break}const p=c.join(" ");o.push(i.jsx("div",{style:o.length===0&&un(p)?Ne(t,r):fn(t,r),children:I(p,t)},`p-${a++}`))}return o}function ln(e){return e.replace(/\r\n/g,`
4
+ `).replace(/\|\s+\|(?=[^\n]*\|)/g,`|
5
+ |`)}function He(e){return!!(e.startsWith("```")||/^(#{1,4})\s+/.test(e)||/^[-*_]{3,}$/.test(e)||ee(e)||e.startsWith(">")||/^[-*+]\s+/.test(e)||/^\d+\.\s+/.test(e))}function an(e,t){var o,s;const r=((o=e[t])==null?void 0:o.trim())??"",n=((s=e[t+1])==null?void 0:s.trim())??"";return ee(r)&&dn(n)}function ee(e){return e.startsWith("|")&&e.endsWith("|")&&N(e).length>=2}function dn(e){if(!ee(e))return!1;const t=N(e);return t.length>=2&&t.every(r=>/^:?-{3,}:?$/.test(r.replace(/\s+/g,"")))}function N(e){return e.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>t.trim())}function cn({lines:e,t,compact:r}){const n=N(e[0]??""),o=N(e[1]??""),s=e.slice(2).map(N).filter(l=>l.length>0),a=Math.max(n.length,...s.map(l=>l.length),0);if(a===0)return null;const d=Array.from({length:a},(l,f)=>{var p;const c=((p=o[f])==null?void 0:p.replace(/\s+/g,""))??"";return c.startsWith(":")&&c.endsWith(":")?"center":c.endsWith(":")?"right":"left"}),u=Array.from({length:a},(l,f)=>n[f]??"");return i.jsx("div",{style:pn(t),children:i.jsxs("table",{style:xn(t,r),children:[i.jsx("thead",{children:i.jsx("tr",{children:u.map((l,f)=>i.jsx("th",{style:Je(t,r,!0,d[f]),children:I(l,t)},`h-${f}`))})}),i.jsx("tbody",{children:s.map((l,f)=>i.jsx("tr",{children:Array.from({length:a},(c,p)=>i.jsx("td",{style:Je(t,r,!1,d[p]),children:I(l[p]??"",t)},`c-${f}-${p}`))},`r-${f}`))})]})})}function un(e){return/\b(certified|uncertified|review[- ]required|draft|trusted|trust)\b/i.test(e)}function I(e,t){const r=[];let n=e,o=0;for(;n.length>0;){const s=n.match(/\*{3}(.+?)\*{3}/),a=n.match(/\*{2}(.+?)\*{2}/),d=n.match(/`([^`]+?)`/),u=n.match(/\[([^\]]+?)\]\((https?:\/\/[^)\s]+|\/[^)\s]+|#[^)\s]+)\)/),l=n.match(/\*([^\s*](?:.*?[^\s*])?)\*/),f=[s?{match:s,type:"boldItalic"}:null,a?{match:a,type:"bold"}:null,d?{match:d,type:"code"}:null,u?{match:u,type:"link"}:null,l?{match:l,type:"italic"}:null].filter(Boolean);if(f.length===0){r.push(i.jsx(P.Fragment,{children:n},`plain-${o++}`));break}const c=f.reduce((x,h)=>(x.match.index??0)<=(h.match.index??0)?x:h),p=c.match.index??0;p>0&&r.push(i.jsx(P.Fragment,{children:n.slice(0,p)},`plain-${o++}`)),c.type==="boldItalic"?r.push(i.jsx("strong",{style:{fontStyle:"italic",color:t.textPrimary},children:c.match[1]},`bi-${o++}`)):c.type==="bold"?r.push(i.jsx("strong",{style:{color:t.textPrimary},children:c.match[1]},`b-${o++}`)):c.type==="italic"?r.push(i.jsx("em",{children:c.match[1]},`i-${o++}`)):c.type==="code"?r.push(i.jsx("code",{style:gn(t),children:c.match[1]},`code-${o++}`)):c.type==="link"&&r.push(i.jsx("a",{href:c.match[2],target:"_blank",rel:"noopener noreferrer",style:{color:t.accent,textDecoration:"underline"},children:c.match[1]},`link-${o++}`)),n=n.slice(p+c.match[0].length)}return i.jsx(i.Fragment,{children:r})}function fn(e,t){return{color:e.textPrimary,fontSize:13,lineHeight:t?1.55:1.6}}function hn(e,t,r){return{color:e.textPrimary,fontSize:t?13:Math.max(13,15-r),fontWeight:800,lineHeight:1.35,marginTop:r<=2?2:0}}function Ne(e,t){return{color:e.textPrimary,fontSize:12.5,lineHeight:1.5,padding:t?"8px 9px":"9px 10px",border:`1px solid ${e.cellBorder}`,borderLeft:`3px solid ${e.accent}`,borderRadius:6,background:`${e.tableHeaderBg}55`}}function Ue(e,t){return{margin:0,paddingLeft:t?18:20,color:e.textPrimary,display:"grid",gap:t?4:5}}function Ve(e,t){return{color:e.textPrimary,fontSize:13,lineHeight:1.5,paddingLeft:2}}function pn(e){return{width:"100%",maxWidth:"100%",overflowX:"auto",border:`1px solid ${e.cellBorder}`,borderRadius:8,background:e.editorBg}}function xn(e,t){return{width:"100%",minWidth:t?360:420,borderCollapse:"collapse",color:e.textPrimary,fontSize:t?12:12.5,lineHeight:1.45}}function Je(e,t,r,n){return{padding:t?"6px 8px":"7px 9px",borderBottom:`1px solid ${e.cellBorder}`,color:r?e.textMuted:e.textPrimary,background:r?`${e.tableHeaderBg}75`:void 0,fontFamily:r?e.fontMono:e.font,fontSize:r?t?10.5:11:void 0,fontWeight:r?800:500,textAlign:n,whiteSpace:"nowrap",verticalAlign:"top"}}function gn(e){return{background:e.editorBg,border:`1px solid ${e.cellBorder}`,borderRadius:4,color:e.accent,fontFamily:e.fontMono,fontSize:"0.92em",padding:"1px 4px"}}function mn(e,t){return{margin:0,padding:t?9:10,overflow:"auto",maxHeight:t?220:280,borderRadius:6,background:e.editorBg,color:e.textPrimary,border:`1px solid ${e.cellBorder}`,fontSize:t?11.5:12,fontFamily:e.fontMono,lineHeight:1.5,whiteSpace:"pre"}}function yn({result:e,t,compact:r}){const n=(e.columns.length>0?e.columns:Object.keys(e.rows[0]??{})).slice(0,r?3:4),o=e.rows.slice(0,r?4:5);return n.length===0||o.length===0?null:i.jsxs("div",{style:{border:`1px solid ${t.cellBorder}`,borderRadius:8,overflow:"hidden",background:t.editorBg},children:[i.jsxs("div",{style:{display:"flex",justifyContent:"space-between",gap:10,padding:"7px 9px",borderBottom:`1px solid ${t.cellBorder}`,color:t.textMuted,fontSize:11,fontFamily:t.fontMono,textTransform:"uppercase",letterSpacing:"0.06em"},children:[i.jsx("span",{children:"Preview"}),i.jsxs("span",{children:[o.length," of ",(e.rowCount??e.rows.length).toLocaleString()," rows"]})]}),i.jsx("div",{style:{overflowX:"auto"},children:i.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",tableLayout:"fixed"},children:[i.jsx("thead",{children:i.jsx("tr",{children:n.map(s=>i.jsx("th",{style:{textAlign:"left",padding:"7px 9px",color:t.textMuted,fontSize:11,fontFamily:t.fontMono,borderBottom:`1px solid ${t.cellBorder}`,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:C(s)},s))})}),i.jsx("tbody",{children:o.map((s,a)=>i.jsx("tr",{children:n.map(d=>i.jsx("td",{style:{padding:"7px 9px",color:t.textPrimary,fontSize:r?12:12.5,borderBottom:a<o.length-1?`1px solid ${t.cellBorder}`:0,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:Bn(d,s[d],o.map(u=>u[d]))},`${a}-${d}`))},a))})]})})]})}function bn({evidence:e,t}){const r=(e==null?void 0:e.lineage)??[];return r.length===0?i.jsx(lt,{t,children:"No lineage evidence was returned for this answer."}):i.jsx("div",{style:{padding:12,display:"flex",flexDirection:"column",gap:10},children:r.map((n,o)=>i.jsxs("div",{style:{display:"grid",gridTemplateColumns:"20px 1fr",gap:8},children:[i.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:"center"},children:[i.jsx("div",{style:{width:8,height:8,borderRadius:8,marginTop:5,background:n.role==="question"?t.accent:t.textMuted}}),o<r.length-1&&i.jsx("div",{style:{width:1,flex:1,minHeight:18,background:t.cellBorder}})]}),i.jsxs("div",{style:{minWidth:0},children:[i.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"},children:[i.jsx("span",{style:{fontSize:12,fontWeight:700,color:t.textPrimary},children:n.name??n.nodeId}),n.role&&i.jsx(z,{label:C(n.role),t}),n.kind&&i.jsx(z,{label:C(n.kind),t})]}),n.description&&i.jsx("div",{style:{fontSize:12,color:t.textSecondary,marginTop:3},children:n.description}),(n.sourcePath||n.provenance)&&i.jsxs("div",{style:{fontSize:11,color:t.textMuted,fontFamily:t.fontMono,marginTop:3,overflow:"hidden",textOverflow:"ellipsis"},children:[n.provenance??n.sourcePath,n.sourcePath&&n.provenance?` - ${n.sourcePath}`:""]})]})]},`${n.nodeId??n.name}-${o}`))})}function vn({evidence:e,t}){var o;const r=(e==null?void 0:e.businessContext)??[],n=e==null?void 0:e.outcome;return!n&&r.length===0?i.jsx(lt,{t,children:"No business context was returned for this answer."}):i.jsxs("div",{style:{padding:12,display:"flex",flexDirection:"column",gap:12},children:[n&&i.jsxs("div",{style:{display:"grid",gap:6},children:[i.jsx(U,{t,children:"Outcome"}),n.name&&i.jsx(S,{label:"Outcome",value:n.name,t}),n.owner&&i.jsx(S,{label:"Owner",value:n.owner,t}),n.decisionUse&&i.jsx(S,{label:"Decision Use",value:n.decisionUse,t}),n.reviewCadence&&i.jsx(S,{label:"Review Cadence",value:n.reviewCadence,t}),(o=n.caveats)==null?void 0:o.map((s,a)=>i.jsx(S,{label:"Caveat",value:s,t},`caveat-${a}`))]}),r.length>0&&i.jsxs("div",{style:{display:"grid",gap:6},children:[i.jsx(U,{t,children:"Context"}),r.map((s,a)=>i.jsx(S,{label:s.label??"Context",value:s.value??"",source:s.source,t},`${s.label}-${a}`))]}),(e==null?void 0:e.semanticObjects)&&e.semanticObjects.length>0&&i.jsx(Ge,{title:"Semantic Objects",assets:e.semanticObjects,t}),(e==null?void 0:e.sourceTables)&&e.sourceTables.length>0&&i.jsx(Ge,{title:"Source Tables",assets:e.sourceTables,t})]})}function jn({answer:e,t}){var s,a;const r=e.evidence,n=e.analysisPlan??(r==null?void 0:r.analysisPlan),o=(r==null?void 0:r.citations)??e.citations??[];return i.jsxs("div",{style:{padding:12,display:"flex",flexDirection:"column",gap:12},children:[i.jsxs("div",{style:{display:"grid",gap:6},children:[i.jsx(S,{label:"Certification",value:C(e.certification??e.kind),t}),W(e.cascade)&&i.jsx(S,{label:"Cascade",value:W(e.cascade)??"",t}),e.reviewStatus&&i.jsx(S,{label:"Review Status",value:C(e.reviewStatus),t}),typeof e.confidence=="number"&&i.jsx(S,{label:"Confidence",value:`${Math.round(e.confidence*100)}%`,t}),((s=r==null?void 0:r.validation)==null?void 0:s.message)&&i.jsx(S,{label:`Validation ${r.validation.status??""}`.trim(),value:r.validation.message,t}),((a=r==null?void 0:r.execution)==null?void 0:a.message)&&i.jsx(S,{label:`Execution ${r.execution.status??""}`.trim(),value:r.execution.message,t}),e.executionError&&i.jsx(S,{label:"Execution Error",value:e.executionError,t}),e.kind!=="certified"&&i.jsx(S,{label:"Promotion Path",value:"Create draft block, edit SQL, attach tests, then certify after analyst approval.",t})]}),n&&i.jsxs("div",{style:{display:"grid",gap:6},children:[i.jsx(U,{t,children:"Analysis Plan"}),n.question&&i.jsx(S,{label:"Question",value:n.question,t}),n.intent&&i.jsx(S,{label:"Intent",value:C(n.intent),t}),n.grain&&i.jsx(S,{label:"Grain",value:n.grain,t}),n.candidateTables&&n.candidateTables.length>0&&i.jsx(S,{label:"Tables",value:n.candidateTables.slice(0,5).map(d=>d.relation).filter(Boolean).join(", "),t}),n.candidateJoins&&n.candidateJoins.length>0&&i.jsx(S,{label:"Join Paths",value:n.candidateJoins.slice(0,3).map(at).join("; "),t}),n.assumptions&&n.assumptions.length>0&&i.jsx(S,{label:"Assumptions",value:n.assumptions.join(" "),t}),typeof n.repairAttempts=="number"&&n.repairAttempts>0&&i.jsx(S,{label:"SQL Repair",value:`${n.repairAttempts} retry`,t})]}),o.length>0&&i.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[i.jsx(U,{t,children:"Citations"}),o.slice(0,8).map((d,u)=>i.jsxs("div",{style:{fontSize:12,color:t.textSecondary,fontFamily:t.fontMono},children:[d.kind??"source",": ",d.name??"unknown",d.provenance&&i.jsxs("span",{style:{color:t.textMuted},children:[" (",d.provenance,")"]})]},`${d.kind}-${d.name}-${u}`))]})]})}function Ge({title:e,assets:t,t:r}){return i.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[i.jsx(U,{t:r,children:e}),t.map((n,o)=>i.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:2,paddingBottom:4},children:[i.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"},children:[i.jsx("span",{style:{fontSize:12,fontWeight:700,color:r.textPrimary},children:n.name??n.nodeId}),n.kind&&i.jsx(z,{label:C(n.kind),t:r}),n.certification&&i.jsx(z,{label:C(n.certification),t:r})]}),n.description&&i.jsx("div",{style:{fontSize:12,color:r.textSecondary},children:n.description}),(n.sourcePath||n.owner||n.domain)&&i.jsx("div",{style:{fontSize:11,color:r.textMuted,fontFamily:r.fontMono},children:[n.domain,n.owner,n.sourcePath].filter(Boolean).join(" - ")})]},`${n.nodeId??n.name}-${o}`))]})}function Sn({artifact:e,t}){const r=[e.kind?{label:"Kind",value:C(e.kind)}:null,e.name?{label:"Name",value:e.name}:null,e.sourcePath?{label:"Source Path",value:e.sourcePath}:null,e.metrics.length>0?{label:"Metrics",value:e.metrics.join(", ")}:null,e.dimensions.length>0?{label:"Dimensions",value:e.dimensions.join(", ")}:null,e.timeDimension?{label:"Time",value:e.timeDimension}:null,e.filters.length>0?{label:"Filters",value:e.filters.join("; ")}:null].filter(n=>!!n);return i.jsxs("div",{style:{padding:12,display:"flex",flexDirection:"column",gap:10},children:[r.length>0&&i.jsx("div",{style:{display:"grid",gap:6},children:r.map(n=>i.jsx(S,{label:n.label,value:n.value,t},n.label))}),i.jsx("pre",{style:st(t,340),children:e.source})]})}function wn({sql:e,blockPath:t,executionError:r,t:n}){return i.jsxs("div",{style:{padding:12,display:"flex",flexDirection:"column",gap:8},children:[t&&i.jsxs("div",{style:{fontSize:12,color:n.textSecondary},children:["Source block: ",i.jsx("span",{style:{fontFamily:n.fontMono,color:n.textPrimary},children:t})]}),r&&i.jsx("div",{style:{padding:10,border:"1px solid rgba(248, 81, 73, 0.35)",borderRadius:6,background:"rgba(248, 81, 73, 0.10)",color:"#ff7b72",fontSize:12,lineHeight:1.45,whiteSpace:"pre-wrap"},children:r}),e?i.jsx("pre",{style:st(n,260),children:e}):i.jsx("div",{style:{fontSize:12,color:n.textMuted},children:"No SQL text was returned for this answer."})]})}function st(e,t){return{margin:0,padding:10,overflow:"auto",maxHeight:t,borderRadius:4,background:e.editorBg,color:e.textPrimary,border:`1px solid ${e.cellBorder}`,fontSize:12,fontFamily:e.fontMono,whiteSpace:"pre"}}function S({label:e,value:t,source:r,t:n}){return t?i.jsxs("div",{style:{display:"grid",gridTemplateColumns:"130px 1fr",gap:10,fontSize:12,alignItems:"baseline"},children:[i.jsx("span",{style:{color:n.textMuted},children:e}),i.jsxs("span",{style:{color:n.textSecondary},children:[t,r&&i.jsxs("span",{style:{color:n.textMuted},children:[" (",r,")"]})]})]}):null}function U({children:e,t}){return i.jsx("div",{style:{fontSize:11,fontWeight:700,fontFamily:t.fontMono,color:t.textMuted,textTransform:"uppercase",letterSpacing:"0.08em"},children:e})}function lt({children:e,t}){return i.jsx("div",{style:{padding:12,fontSize:12,color:t.textMuted},children:e})}function z({label:e,t}){return i.jsx("span",{style:{fontSize:11,fontFamily:t.fontMono,color:t.textSecondary,padding:"2px 6px",borderRadius:4,background:t.editorBg,border:`1px solid ${t.cellBorder}`},children:e})}function kn({items:e,t,accent:r}){return e.length===0?null:i.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px 16px",alignItems:"center",padding:"7px 10px",borderTop:`1px solid ${t.cellBorder}`,boxShadow:`inset 0 2px 0 ${r}`,background:t.editorBg,color:t.textMuted,fontFamily:t.fontMono,fontSize:10.5},children:e.map(n=>i.jsxs("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[i.jsx("span",{style:{color:t.textMuted},children:n.label})," ",i.jsx("strong",{style:{color:t.textSecondary,fontWeight:600},children:n.value})]},`${n.label}-${n.value}`))})}function Xe({active:e,label:t,onClick:r,t:n}){return i.jsx("button",{onClick:r,style:{padding:"4px 2px",fontSize:11.5,border:0,borderBottom:`2px solid ${e?n.accent:"transparent"}`,borderRadius:0,background:"transparent",color:e?n.accent:n.textSecondary,fontWeight:e?700:500,cursor:"pointer"},children:t})}function $n({result:e,chartConfig:t,t:r,onChange:n}){const o=e.columns;if(o.length===0)return null;const s=ce.filter(l=>l.value!=="table"),a=t!=null&&t.x&&o.includes(t.x)?t.x:o[0]??"",d=t!=null&&t.y&&o.includes(t.y)?t.y:o.find(l=>l!==a)??o[0]??"",u=t!=null&&t.color&&o.includes(t.color)?t.color:"";return i.jsxs("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(130px, 1fr))",gap:8,alignItems:"end",border:`1px solid ${r.cellBorder}`,borderRadius:7,background:`${r.tableHeaderBg}55`,padding:10},children:[i.jsx(K,{label:"Chart type",t:r,children:i.jsx("select",{value:(t==null?void 0:t.chart)??"bar",onChange:l=>n({chart:l.target.value}),style:Z(r),children:s.map(l=>i.jsx("option",{value:l.value,children:l.label},l.value))})}),i.jsx(K,{label:"X axis",t:r,children:i.jsx("select",{value:a,onChange:l=>n({x:l.target.value}),style:Z(r),children:o.map(l=>i.jsx("option",{value:l,children:l},l))})}),i.jsx(K,{label:"Y axis",t:r,children:i.jsx("select",{value:d,onChange:l=>n({y:l.target.value}),style:Z(r),children:o.map(l=>i.jsx("option",{value:l,children:l},l))})}),i.jsx(K,{label:"Color",t:r,children:i.jsxs("select",{value:u,onChange:l=>n({color:l.target.value||void 0}),style:Z(r),children:[i.jsx("option",{value:"",children:"None"}),o.map(l=>i.jsx("option",{value:l,children:l},l))]})})]})}function K({label:e,t,children:r}){return i.jsxs("label",{style:{display:"grid",gap:4,minWidth:0},children:[i.jsx("span",{style:{fontSize:10.5,color:t.textMuted,fontWeight:800,textTransform:"uppercase",letterSpacing:0},children:e}),r]})}function Z(e){return{width:"100%",minWidth:0,height:30,border:`1px solid ${e.inputBorder}`,borderRadius:6,background:e.editorBg,color:e.textPrimary,fontFamily:e.font,fontSize:12,padding:"0 8px"}}function Cn({t:e,adding:t,hasResult:r,hasChart:n,fallbackLabel:o,open:s,onToggle:a,onAdd:d}){if(!r)return i.jsx("button",{type:"button",onClick:()=>d("auto"),disabled:t,style:{...Ye(e,t),marginLeft:"auto"},children:t?"Adding...":o});const u=n?[{mode:"both",label:"Chart + data",description:"Add chart and table tiles"},{mode:"chart",label:"Chart only",description:"Add the visualization tile"},{mode:"data",label:"Data table",description:"Add the rows as a table tile"}]:[{mode:"data",label:"Data table",description:"Add the rows as a table tile"}];return i.jsxs("div",{style:{marginLeft:"auto",position:"relative"},children:[i.jsxs("button",{type:"button",onClick:a,disabled:t,style:Ye(e,t),children:[t?"Adding...":"Add to App",!t&&i.jsx("span",{style:{marginLeft:6,fontSize:10},children:"v"})]}),s&&!t&&i.jsx("div",{style:{position:"absolute",right:0,top:"calc(100% + 6px)",zIndex:30,width:190,border:`1px solid ${e.cellBorder}`,borderRadius:8,background:e.cellBg,boxShadow:"0 14px 34px rgba(0, 0, 0, 0.18)",padding:6},children:u.map(l=>i.jsxs("button",{type:"button",onClick:()=>d(l.mode),style:{width:"100%",border:0,borderRadius:6,background:"transparent",color:e.textPrimary,textAlign:"left",padding:"8px 9px",cursor:"pointer"},children:[i.jsx("div",{style:{fontSize:12,fontWeight:700},children:l.label}),i.jsx("div",{style:{fontSize:11,color:e.textMuted,marginTop:2},children:l.description})]},l.mode))})]})}function Ye(e,t){return{border:`1px solid ${e.btnBorder}`,borderRadius:5,background:t?e.editorBg:`${e.accent}18`,color:t?e.textMuted:e.accent,padding:"4px 8px",fontSize:11,cursor:t?"default":"pointer"}}function C(e){return e.replace(/_/g," ")}function at(e){const t=[e.leftRelation,e.leftColumn].filter(Boolean).join("."),r=[e.rightRelation,e.rightColumn].filter(Boolean).join("."),n=[t,r].filter(Boolean).join(" to ");return e.reason?`${n} (${e.reason})`:n}function Bn(e,t,r){return t==null?"-":At(e,t,r)}function An(e){const t=e.toLowerCase();return t.includes("certified")?"trusted business context":t.includes("ai")||t.includes("generated")?"AI draft":t.includes("no_answer")?"needs more context":C(e)}function dt(e){var t;switch((t=e.trustLabelInfo)==null?void 0:t.id){case"certified":return"certified";case"reviewed":return"review";case"ai_generated":return"ai_generated";case"conflict":return"review";case"insufficient_context":return e.kind==="no_answer"?"no_answer":"uncertified"}return e.kind==="no_answer"?"no_answer":e.certification==="certified"||e.reviewStatus==="certified"?"certified":e.reviewStatus==="draft_ready"||e.reviewStatus==="analyst_review_required"?"review":e.certification==="ai_generated"?"ai_generated":e.certification==="analyst_review_required"||e.certification==="uncertified"?"uncertified":e.kind==="certified"?"certified":"draft"}function zn(e,t){return e==="certified"?t.success:e==="no_answer"?t.error:e==="deprecated"?t.textMuted:t.warning}function Ln(e,t,r,n){var u,l,f,c,p,x,h,b;const o=[],s=((l=(u=e.evidence)==null?void 0:u.selectedAssets)==null?void 0:l[0])??((c=(f=e.evidence)==null?void 0:f.lineage)==null?void 0:c.find(j=>j.owner||j.domain||j.sourcePath)),a=r??(s==null?void 0:s.name),d=n??(s==null?void 0:s.sourcePath)??(s==null?void 0:s.provenance);if(a&&o.push({label:e.kind==="certified"?"source":"draft source",value:a}),((s==null?void 0:s.owner)??((x=(p=e.evidence)==null?void 0:p.outcome)==null?void 0:x.owner))&&o.push({label:"owner",value:(s==null?void 0:s.owner)??((b=(h=e.evidence)==null?void 0:h.outcome)==null?void 0:b.owner)??""}),d&&o.push({label:"path",value:d}),e.sourceTier&&o.push({label:"tier",value:C(e.sourceTier)}),W(e.cascade)&&o.push({label:"cascade",value:W(e.cascade)??""}),t){const j=t.rowCount??t.rows.length,g=t.executionTime!==void 0?` - ${Math.round(t.executionTime)}ms`:"";o.push({label:"run",value:`${j.toLocaleString()} rows${g}`})}return e.reviewStatus&&e.reviewStatus!=="certified"&&o.push({label:"next",value:C(e.reviewStatus)}),_n(o).slice(0,5)}function W(e){if(!(e!=null&&e.terminalLane)&&!(e!=null&&e.routeTier))return;const t=Tn(e.terminalLane),r=Rn(e.routeTier);return[t,r].filter(Boolean).join(" · ")||void 0}function Tn(e){switch(e){case"certified":return"Lane 1 certified";case"semantic":return"Lane 2 semantic";case"generated":return"Lane 3 generated";case"refusal":return"Lane 4 refusal";default:return e?C(e):void 0}}function Rn(e){switch(e){case"certified_block":return"Certified block";case"semantic_metric":return"Semantic metric";case"generated_sql":return"Generated SQL";case"business_context":return"Business context";case"no_answer":return"No answer";default:return e?C(e):void 0}}function Mn(e,t){var r,n,o,s;return H(e.sourceCertifiedBlock)??de((r=e.evidence)==null?void 0:r.selectedAssets)??de((n=e.evidence)==null?void 0:n.lineage)??de(e.citations)??H((o=e.block)==null?void 0:o.name)??H((s=e.result)==null?void 0:s.blockName)??H(t)}function de(e){return e==null?void 0:e.map(t=>t.kind==="block"?H(t.name):void 0).find(t=>!!t)}function H(e){return typeof e!="string"?void 0:e.replace(/\s+/g," ").trim()||void 0}function _n(e){const t=new Set;return e.filter(r=>{const n=r.value.trim();if(!n)return!1;const o=`${r.label}:${n}`;return t.has(o)?!1:(t.add(o),!0)})}function Dn(e){return{x:0,y:e.layout.items.reduce((r,n)=>Math.max(r,n.y+n.h),0),w:6,h:3}}function In(e,t){const r=t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"tile",n=new Set(e.layout.items.map(o=>o.i));if(!n.has(r))return r;for(let o=2;o<1e3;o++){const s=`${r}-${o}`;if(!n.has(s))return s}return`${r}-${Date.now()}`}function Wn(e){const t=String(e??"table").toLowerCase().replace(/-/g,"_");return t==="single_value"||t==="kpi"||t==="line"||t==="bar"||t==="area"||t==="pie"||t==="donut"||t==="grouped_bar"||t==="stacked_bar"||t==="scatter"||t==="heatmap"||t==="histogram"||t==="waterfall"||t==="pivot"||t==="map"||t==="funnel"||t==="sankey"?t:"table"}const Hn=Object.freeze(Object.defineProperty({__proto__:null,AgentAnswerCard:Zt,StructuredAnswerText:ot,extractGovernedAnswer:Jt,formatCascadeOutcome:W,resolveAgentOutcome:it,resolveAnswerTrustState:dt,resolveDqlArtifactMeta:nt},Symbol.toStringTag,{value:"Module"}));export{Hn as A,Qn as R,ot as S,tt as d};
@@ -1 +1 @@
1
- import{u as x,t as m,j as n,G as y,aB as j,r as b,f as k}from"./index-BTuliKhK.js";import{A as S}from"./arrow-left-IjlnAihE.js";import{W as M}from"./wrench-LMCrpa9_.js";import{C as v}from"./circle-x-BoAorVSm.js";import"./react-CRB3T2We.js";function H(){const{state:e,dispatch:t}=x(),r=m[e.themeMode],s=e.agentLogRun;return s?n.jsxs("div",{style:{padding:"20px 28px",fontFamily:r.font,color:r.textPrimary,maxWidth:900,margin:"0 auto"},children:[n.jsxs("button",{type:"button",onClick:()=>t({type:"SET_MAIN_VIEW",view:"ask"}),style:D(r),children:[n.jsx(S,{size:14})," Back to Ask AI"]}),n.jsx(w,{run:s,t:r}),n.jsx(z,{run:s,t:r}),u(s).reason&&n.jsx(W,{run:s,t:r}),s.evaluations.length>0&&n.jsx(I,{run:s,t:r})]}):n.jsx("div",{style:{padding:32,color:r.textMuted,fontFamily:r.font},children:"No agent run selected. Open one from the “View steps” link on an AI answer."})}function w({run:e,t}){const r=f(e.startedAt,e.completedAt);return n.jsxs("div",{style:{marginBottom:20},children:[n.jsx("div",{style:{fontSize:18,fontWeight:600,marginBottom:8,lineHeight:1.35},children:e.question}),n.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[n.jsxs("span",{style:c(t),children:[n.jsx(y,{size:12})," ",p(e.route)]}),n.jsx("span",{style:N(t,e.trustState),children:C(e.trustState)}),r!=null&&n.jsxs("span",{style:c(t),children:[n.jsx(j,{size:12})," ",g(r)," total"]}),n.jsx("span",{style:{...c(t),color:t.textMuted},children:e.status})]})]})}function z({run:e,t}){const r=b.useMemo(()=>B(e),[e]),s=r.reduce((i,o)=>Math.max(i,o.deltaMs),0);return n.jsxs("section",{style:{marginBottom:22},children:[n.jsx(d,{t,children:"What the agent did · where the time went"}),n.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:r.map(i=>{const o=s>0&&i.deltaMs===s&&i.deltaMs>=250;return n.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"8px 10px",borderRadius:8,background:o?l(t.warning,.1):t.cellBg,border:`1px solid ${o?l(t.warning,.4):t.cellBorder}`},children:[n.jsx("span",{style:{marginTop:1,color:i.isTool?t.accent:t.textMuted,flexShrink:0},children:i.isTool?n.jsx(M,{size:13}):n.jsx("span",{style:{fontSize:13},children:"•"})}),n.jsxs("div",{style:{flex:1,minWidth:0},children:[n.jsx("div",{style:{fontSize:13,fontWeight:500},children:i.label}),i.detail&&n.jsx("div",{style:{fontSize:12,color:t.textMuted,marginTop:2,wordBreak:"break-word"},children:i.detail})]}),n.jsx("span",{style:{fontSize:12,fontFamily:t.fontMono,color:o?t.warning:t.textMuted,fontWeight:o?600:400,flexShrink:0,whiteSpace:"nowrap"},children:i.deltaMs>0?`+${g(i.deltaMs)}`:"—"})]},i.key)})}),s>=1e3&&n.jsx("div",{style:{fontSize:12,color:t.textMuted,marginTop:8},children:"The highlighted step took the longest. Long generation/tool steps usually mean the question fell through to LLM generation — a governed metric or certified block would answer it instantly."})]})}function W({run:e,t}){const r=u(e);return n.jsxs("section",{style:{marginBottom:22},children:[n.jsx(d,{t,children:"Why this route"}),n.jsxs("div",{style:{fontSize:13,color:t.textSecondary,lineHeight:1.5},children:[r.reason,typeof r.confidence=="number"&&n.jsxs("span",{style:{color:t.textMuted},children:[" · confidence ",(r.confidence*100).toFixed(0),"%"]})]})]})}function u(e){const t=e.routeDecision;return{reason:typeof(t==null?void 0:t.reason)=="string"?t.reason:void 0,confidence:typeof(t==null?void 0:t.confidence)=="number"?t.confidence:void 0}}function I({run:e,t}){return n.jsxs("section",{style:{marginBottom:22},children:[n.jsx(d,{t,children:"Governance checks"}),n.jsx("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.evaluations.map(r=>n.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:13},children:[n.jsx("span",{style:{marginTop:1,color:r.passed?t.success:t.error,flexShrink:0},children:r.passed?n.jsx(k,{size:14}):n.jsx(v,{size:14})}),n.jsxs("div",{children:[n.jsx("span",{style:{fontWeight:500},children:r.label}),!r.passed&&r.message&&n.jsxs("span",{style:{color:t.textMuted},children:[" — ",r.message]})]})]},r.id))})]})}function d({t:e,children:t}){return n.jsx("div",{style:{fontSize:11,fontWeight:600,textTransform:"uppercase",letterSpacing:.6,color:e.textMuted,marginBottom:10},children:t})}function B(e){var i;const t=[...e.events].sort((o,a)=>o.at.localeCompare(a.at)),r=[];let s=e.startedAt??((i=t[0])==null?void 0:i.at);for(const o of t){const a=T(o);if(!a)continue;const h=f(s,o.at)??0;r.push({key:o.id,label:a,detail:A(o),deltaMs:h,isTool:$(o)}),s=o.at}return r}function $(e){const t=e.payload;return typeof(t==null?void 0:t.tool)=="string"}function T(e){switch(e.type){case"run.started":return"Started";case"route.decided":return`Routed to ${p(e.route)}`;case"plan.created":return"Planned the approach";case"step.started":return L(e)??"Working";case"executor.started":return R(e.route);case"evaluation.recorded":return"Checked grounding & trust";case"repair.attempted":return"Repaired and retried";case"replan.decided":return"Re-planned";case"escalated":return"Escalated to a deeper approach";case"artifact.created":return"Produced the answer";case"step.completed":return"Step complete";case"run.completed":return"Done";case"run.failed":return"Failed";default:return null}}function A(e){const t=e.payload;if(typeof(t==null?void 0:t.tool)=="string")return`tool: ${t.tool}`;if(e.type==="route.decided"||e.type==="run.failed")return e.message||void 0}function L(e){var r;const t=(r=e.payload)==null?void 0:r.goal;return t?`Working on: ${_(t,80)}`:null}function R(e){switch(e){case"certified_answer":return"Searching certified blocks & governed metrics";case"generated_answer":return"Composing the answer (semantic compile → generation)";case"research":return"Researching across governed data";case"app_build":return"Assembling the app";case"sql_cell":return"Writing the query";case"dql_block_draft":return"Drafting the block";case"conversation":return"Replying";default:return"Working"}}function p(e){return e?e.replace(/_/g," "):"the answer"}function C(e){return String(e).replace(/_/g," ")}function f(e,t){if(!e||!t)return null;const r=Date.parse(e),s=Date.parse(t);return Number.isNaN(r)||Number.isNaN(s)?null:Math.max(0,s-r)}function g(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(e<1e4?1:0)}s`}function _(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function l(e,t){const r=e.trim(),s=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(r);if(!s)return e;let i,o,a;return s[1].length===3?(i=parseInt(s[1][0]+s[1][0],16),o=parseInt(s[1][1]+s[1][1],16),a=parseInt(s[1][2]+s[1][2],16)):(i=parseInt(s[1].slice(0,2),16),o=parseInt(s[1].slice(2,4),16),a=parseInt(s[1].slice(4,6),16)),`rgba(${i}, ${o}, ${a}, ${t})`}function D(e){return{display:"inline-flex",alignItems:"center",gap:6,marginBottom:16,background:"transparent",border:"none",cursor:"pointer",color:e.textMuted,fontSize:13,fontFamily:e.font,padding:0}}function c(e){return{display:"inline-flex",alignItems:"center",gap:5,fontSize:12,padding:"3px 9px",borderRadius:999,background:e.pillBg,border:`1px solid ${e.cellBorder}`,color:e.textSecondary}}function N(e,t){const r=t==="certified"?e.success:t==="blocked"?e.error:e.accent;return{display:"inline-flex",alignItems:"center",gap:5,fontSize:12,padding:"3px 9px",borderRadius:999,background:l(r,.12),border:`1px solid ${l(r,.4)}`,color:r,fontWeight:500}}export{H as AgentLogPage};
1
+ import{u as x,t as m,j as n,G as y,aH as j,r as b,f as k}from"./index-1mIC_XX4.js";import{A as S}from"./arrow-left-CMe1kkOL.js";import{W as M}from"./wrench-Ong23-wu.js";import{C as v}from"./circle-x-BCgtha1W.js";import"./react-CRB3T2We.js";function H(){const{state:e,dispatch:t}=x(),r=m[e.themeMode],s=e.agentLogRun;return s?n.jsxs("div",{style:{padding:"20px 28px",fontFamily:r.font,color:r.textPrimary,maxWidth:900,margin:"0 auto"},children:[n.jsxs("button",{type:"button",onClick:()=>t({type:"SET_MAIN_VIEW",view:"ask"}),style:D(r),children:[n.jsx(S,{size:14})," Back to Ask AI"]}),n.jsx(w,{run:s,t:r}),n.jsx(z,{run:s,t:r}),u(s).reason&&n.jsx(W,{run:s,t:r}),s.evaluations.length>0&&n.jsx(I,{run:s,t:r})]}):n.jsx("div",{style:{padding:32,color:r.textMuted,fontFamily:r.font},children:"No agent run selected. Open one from the “View steps” link on an AI answer."})}function w({run:e,t}){const r=f(e.startedAt,e.completedAt);return n.jsxs("div",{style:{marginBottom:20},children:[n.jsx("div",{style:{fontSize:18,fontWeight:600,marginBottom:8,lineHeight:1.35},children:e.question}),n.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:[n.jsxs("span",{style:c(t),children:[n.jsx(y,{size:12})," ",p(e.route)]}),n.jsx("span",{style:N(t,e.trustState),children:C(e.trustState)}),r!=null&&n.jsxs("span",{style:c(t),children:[n.jsx(j,{size:12})," ",g(r)," total"]}),n.jsx("span",{style:{...c(t),color:t.textMuted},children:e.status})]})]})}function z({run:e,t}){const r=b.useMemo(()=>$(e),[e]),s=r.reduce((i,o)=>Math.max(i,o.deltaMs),0);return n.jsxs("section",{style:{marginBottom:22},children:[n.jsx(d,{t,children:"What the agent did · where the time went"}),n.jsx("div",{style:{display:"flex",flexDirection:"column",gap:4},children:r.map(i=>{const o=s>0&&i.deltaMs===s&&i.deltaMs>=250;return n.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:10,padding:"8px 10px",borderRadius:8,background:o?l(t.warning,.1):t.cellBg,border:`1px solid ${o?l(t.warning,.4):t.cellBorder}`},children:[n.jsx("span",{style:{marginTop:1,color:i.isTool?t.accent:t.textMuted,flexShrink:0},children:i.isTool?n.jsx(M,{size:13}):n.jsx("span",{style:{fontSize:13},children:"•"})}),n.jsxs("div",{style:{flex:1,minWidth:0},children:[n.jsx("div",{style:{fontSize:13,fontWeight:500},children:i.label}),i.detail&&n.jsx("div",{style:{fontSize:12,color:t.textMuted,marginTop:2,wordBreak:"break-word"},children:i.detail})]}),n.jsx("span",{style:{fontSize:12,fontFamily:t.fontMono,color:o?t.warning:t.textMuted,fontWeight:o?600:400,flexShrink:0,whiteSpace:"nowrap"},children:i.deltaMs>0?`+${g(i.deltaMs)}`:"—"})]},i.key)})}),s>=1e3&&n.jsx("div",{style:{fontSize:12,color:t.textMuted,marginTop:8},children:"The highlighted step took the longest. Long generation/tool steps usually mean the question fell through to LLM generation — a governed metric or certified block would answer it instantly."})]})}function W({run:e,t}){const r=u(e);return n.jsxs("section",{style:{marginBottom:22},children:[n.jsx(d,{t,children:"Why this route"}),n.jsxs("div",{style:{fontSize:13,color:t.textSecondary,lineHeight:1.5},children:[r.reason,typeof r.confidence=="number"&&n.jsxs("span",{style:{color:t.textMuted},children:[" · confidence ",(r.confidence*100).toFixed(0),"%"]})]})]})}function u(e){const t=e.routeDecision;return{reason:typeof(t==null?void 0:t.reason)=="string"?t.reason:void 0,confidence:typeof(t==null?void 0:t.confidence)=="number"?t.confidence:void 0}}function I({run:e,t}){return n.jsxs("section",{style:{marginBottom:22},children:[n.jsx(d,{t,children:"Governance checks"}),n.jsx("div",{style:{display:"flex",flexDirection:"column",gap:6},children:e.evaluations.map(r=>n.jsxs("div",{style:{display:"flex",alignItems:"flex-start",gap:8,fontSize:13},children:[n.jsx("span",{style:{marginTop:1,color:r.passed?t.success:t.error,flexShrink:0},children:r.passed?n.jsx(k,{size:14}):n.jsx(v,{size:14})}),n.jsxs("div",{children:[n.jsx("span",{style:{fontWeight:500},children:r.label}),!r.passed&&r.message&&n.jsxs("span",{style:{color:t.textMuted},children:[" — ",r.message]})]})]},r.id))})]})}function d({t:e,children:t}){return n.jsx("div",{style:{fontSize:11,fontWeight:600,textTransform:"uppercase",letterSpacing:.6,color:e.textMuted,marginBottom:10},children:t})}function $(e){var i;const t=[...e.events].sort((o,a)=>o.at.localeCompare(a.at)),r=[];let s=e.startedAt??((i=t[0])==null?void 0:i.at);for(const o of t){const a=T(o);if(!a)continue;const h=f(s,o.at)??0;r.push({key:o.id,label:a,detail:A(o),deltaMs:h,isTool:B(o)}),s=o.at}return r}function B(e){const t=e.payload;return typeof(t==null?void 0:t.tool)=="string"}function T(e){switch(e.type){case"run.started":return"Started";case"route.decided":return`Routed to ${p(e.route)}`;case"plan.created":return"Planned the approach";case"step.started":return L(e)??"Working";case"executor.started":return R(e.route);case"evaluation.recorded":return"Checked grounding & trust";case"repair.attempted":return"Repaired and retried";case"replan.decided":return"Re-planned";case"escalated":return"Escalated to a deeper approach";case"artifact.created":return"Produced the answer";case"step.completed":return"Step complete";case"run.completed":return"Done";case"run.failed":return"Failed";default:return null}}function A(e){const t=e.payload;if(typeof(t==null?void 0:t.tool)=="string")return`tool: ${t.tool}`;if(e.type==="route.decided"||e.type==="run.failed")return e.message||void 0}function L(e){var r;const t=(r=e.payload)==null?void 0:r.goal;return t?`Working on: ${_(t,80)}`:null}function R(e){switch(e){case"certified_answer":return"Searching certified blocks & governed metrics";case"generated_answer":return"Composing the answer (semantic compile → generation)";case"research":return"Researching across governed data";case"app_build":return"Assembling the app";case"sql_cell":return"Writing the query";case"dql_block_draft":return"Drafting the block";case"conversation":return"Replying";default:return"Working"}}function p(e){return e?e.replace(/_/g," "):"the answer"}function C(e){return String(e).replace(/_/g," ")}function f(e,t){if(!e||!t)return null;const r=Date.parse(e),s=Date.parse(t);return Number.isNaN(r)||Number.isNaN(s)?null:Math.max(0,s-r)}function g(e){return e<1e3?`${Math.round(e)}ms`:`${(e/1e3).toFixed(e<1e4?1:0)}s`}function _(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function l(e,t){const r=e.trim(),s=/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(r);if(!s)return e;let i,o,a;return s[1].length===3?(i=parseInt(s[1][0]+s[1][0],16),o=parseInt(s[1][1]+s[1][1],16),a=parseInt(s[1][2]+s[1][2],16)):(i=parseInt(s[1].slice(0,2),16),o=parseInt(s[1].slice(2,4),16),a=parseInt(s[1].slice(4,6),16)),`rgba(${i}, ${o}, ${a}, ${t})`}function D(e){return{display:"inline-flex",alignItems:"center",gap:6,marginBottom:16,background:"transparent",border:"none",cursor:"pointer",color:e.textMuted,fontSize:13,fontFamily:e.font,padding:0}}function c(e){return{display:"inline-flex",alignItems:"center",gap:5,fontSize:12,padding:"3px 9px",borderRadius:999,background:e.pillBg,border:`1px solid ${e.cellBorder}`,color:e.textSecondary}}function N(e,t){const r=t==="certified"?e.success:t==="blocked"?e.error:e.accent;return{display:"inline-flex",alignItems:"center",gap:5,fontSize:12,padding:"3px 9px",borderRadius:999,background:l(r,.12),border:`1px solid ${l(r,.4)}`,color:r,fontWeight:500}}export{H as AgentLogPage};
@@ -1 +1 @@
1
- import{u,t as f,r as a,j as o,S as h,m as b}from"./index-BTuliKhK.js";import{s as g}from"./ai-build-bus-1BR770pY.js";import{u as y,A as k}from"./AiBuildResult-D9t_4sQl.js";import{X as j}from"./x-CeNgQwGm.js";import"./react-CRB3T2We.js";import"./user-round-BfrV8U-W.js";import"./triangle-alert-BSdIu2El.js";import"./rotate-ccw-B9v1LTJ0.js";function z(){const{state:n,dispatch:c}=u(),t=f[n.themeMode],[e,l]=a.useState(null),p=y();if(a.useEffect(()=>g(i=>l(i)),[]),!e)return null;const s=()=>l(null),m=i=>{const r=i.trim();if(!r)return;const d=b("sql",r);d.name="ai_sql_preview",c({type:"ADD_CELL",cell:d})},x=(i,r)=>{p(i,r).finally(s)};return o.jsx("div",{role:"dialog","aria-modal":"true","aria-label":"Ask AI to build",style:v,children:o.jsxs("div",{style:{width:"min(720px, calc(100vw - 32px))",maxHeight:"min(760px, calc(100vh - 64px))",background:t.appBg,border:`1px solid ${t.headerBorder}`,borderRadius:12,boxShadow:"0 24px 80px rgba(0,0,0,0.34)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"11px 14px",borderBottom:`1px solid ${t.headerBorder}`},children:[o.jsx("div",{style:{width:30,height:30,borderRadius:8,background:`${t.accent}16`,border:`1px solid ${t.accent}38`,color:t.accent,display:"inline-flex",alignItems:"center",justifyContent:"center",flex:"0 0 auto"},children:o.jsx(h,{size:16,strokeWidth:2.2})}),o.jsxs("div",{style:{flex:1,minWidth:0},children:[o.jsx("div",{style:{fontSize:14,fontWeight:850,color:t.textPrimary,fontFamily:t.font},children:e.mode==="edit"?"Ask AI to modify a block":"Ask AI to build a block"}),o.jsx("div",{style:{fontSize:11.5,color:t.textMuted,fontFamily:t.font,marginTop:1},children:e.sourceLabel??(e.mode==="edit"?"Describe the change and review a before/after diff. Nothing is certified.":"Generate a draft from your dbt + semantic context. Nothing is certified.")})]}),o.jsx("button",{type:"button",onClick:s,title:"Close",style:{width:28,height:28,borderRadius:6,border:`1px solid ${t.btnBorder}`,background:t.btnBg,color:t.textSecondary,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},children:o.jsx(j,{size:15,strokeWidth:2})})]}),o.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:o.jsx(k,{themeMode:n.themeMode,initialTarget:e.target,lockTarget:e.lockTarget,initialPrompt:e.prompt,context:e.context,initialMode:e.mode,initialBlockPath:e.blockPath,onInsertCell:m,onOpenBlock:x},`${e.target}:${e.mode??"create"}:${e.blockPath??""}:${e.prompt??""}:${e.sourceLabel??""}`)})]})})}const v={position:"fixed",inset:0,zIndex:60,background:"rgba(0,0,0,0.32)",display:"flex",alignItems:"center",justifyContent:"center",padding:16};export{z as AiBuildDialog};
1
+ import{u,t as f,r as a,j as o,S as h,m as b}from"./index-1mIC_XX4.js";import{s as g}from"./ai-build-bus-1BR770pY.js";import{u as y,A as k}from"./AiBuildResult-CyqTuQe5.js";import{X as j}from"./x-CSo1M3tu.js";import"./react-CRB3T2We.js";import"./user-round-BA074kiQ.js";import"./triangle-alert-2ZXx8wAu.js";import"./rotate-ccw-DOrfTZk8.js";function z(){const{state:n,dispatch:c}=u(),t=f[n.themeMode],[e,l]=a.useState(null),p=y();if(a.useEffect(()=>g(i=>l(i)),[]),!e)return null;const s=()=>l(null),m=i=>{const r=i.trim();if(!r)return;const d=b("sql",r);d.name="ai_sql_preview",c({type:"ADD_CELL",cell:d})},x=(i,r)=>{p(i,r).finally(s)};return o.jsx("div",{role:"dialog","aria-modal":"true","aria-label":"Ask AI to build",style:v,children:o.jsxs("div",{style:{width:"min(720px, calc(100vw - 32px))",maxHeight:"min(760px, calc(100vh - 64px))",background:t.appBg,border:`1px solid ${t.headerBorder}`,borderRadius:12,boxShadow:"0 24px 80px rgba(0,0,0,0.34)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[o.jsxs("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"11px 14px",borderBottom:`1px solid ${t.headerBorder}`},children:[o.jsx("div",{style:{width:30,height:30,borderRadius:8,background:`${t.accent}16`,border:`1px solid ${t.accent}38`,color:t.accent,display:"inline-flex",alignItems:"center",justifyContent:"center",flex:"0 0 auto"},children:o.jsx(h,{size:16,strokeWidth:2.2})}),o.jsxs("div",{style:{flex:1,minWidth:0},children:[o.jsx("div",{style:{fontSize:14,fontWeight:850,color:t.textPrimary,fontFamily:t.font},children:e.mode==="edit"?"Ask AI to modify a block":"Ask AI to build a block"}),o.jsx("div",{style:{fontSize:11.5,color:t.textMuted,fontFamily:t.font,marginTop:1},children:e.sourceLabel??(e.mode==="edit"?"Describe the change and review a before/after diff. Nothing is certified.":"Generate a draft from your dbt + semantic context. Nothing is certified.")})]}),o.jsx("button",{type:"button",onClick:s,title:"Close",style:{width:28,height:28,borderRadius:6,border:`1px solid ${t.btnBorder}`,background:t.btnBg,color:t.textSecondary,display:"inline-flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},children:o.jsx(j,{size:15,strokeWidth:2})})]}),o.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto"},children:o.jsx(k,{themeMode:n.themeMode,initialTarget:e.target,lockTarget:e.lockTarget,initialPrompt:e.prompt,context:e.context,initialMode:e.mode,initialBlockPath:e.blockPath,onInsertCell:m,onOpenBlock:x},`${e.target}:${e.mode??"create"}:${e.blockPath??""}:${e.prompt??""}:${e.sourceLabel??""}`)})]})})}const v={position:"fixed",inset:0,zIndex:60,background:"rgba(0,0,0,0.32)",display:"flex",alignItems:"center",justifyContent:"center",padding:16};export{z as AiBuildDialog};
@@ -1,4 +1,4 @@
1
- import{c as M,u as U,r as u,a as E,j as t,B as Q,t as Ce,S as V,L as se,a1 as Be,aj as Fe,f as K,b as oe,T as re,d as le,e as ae,R as de}from"./index-BTuliKhK.js";import{U as ce,G as pe}from"./user-round-BfrV8U-W.js";import{T as ue}from"./triangle-alert-BSdIu2El.js";import{R as Y}from"./rotate-ccw-B9v1LTJ0.js";/**
1
+ import{c as M,u as U,r as u,a as E,j as t,B as Q,t as Ce,S as V,L as se,a5 as Be,ap as Fe,f as K,b as oe,T as re,d as le,e as ae,R as de}from"./index-1mIC_XX4.js";import{U as ce,G as pe}from"./user-round-BA074kiQ.js";import{T as ue}from"./triangle-alert-2ZXx8wAu.js";import{R as Y}from"./rotate-ccw-DOrfTZk8.js";/**
2
2
  * @license lucide-react v0.563.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -0,0 +1,6 @@
1
+ import{c as te,r as o,j as n,S as ne,L as ie}from"./index-1mIC_XX4.js";import{M as re}from"./minimize-2-CDwSCGlO.js";import{M as oe}from"./maximize-2-CCd5uRIZ.js";import{X as ae}from"./x-CSo1M3tu.js";/**
2
+ * @license lucide-react v0.563.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const se=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 8v6",key:"1ib9pf"}],["path",{d:"M9 11h6",key:"1fldmi"}]],le=te("message-square-plus",se),H=420,P=720;function we({t,title:l,subtitle:j,children:v,onClose:D,expanded:g=!1,onToggleExpanded:y,onNewChat:F,headerActions:U,running:O=!1,compact:M=!1,floating:S=!1,resizable:w=!1,minResizeWidth:A=360,maxResizeWidth:E,fitViewportHeight:B=!1,heightResizable:p=!1,minResizeHeight:f=420,maxResizeHeight:C,dock:z="column",ariaLabel:V=l,className:G,style:J}){const c=o.useRef(null),s=o.useRef(null),[b,W]=o.useState(null),[h,k]=o.useState(null),[m,N]=o.useState(null),[X,q]=o.useState(!1),[K,Y]=o.useState(!1),I=o.useCallback(e=>{const i=typeof window>"u"?Math.max(A,E??P):Math.max(A,window.innerWidth-96);return Math.min(Math.max(e,A),Math.min(E??i,i))},[E,A]),Q=o.useCallback(e=>{var u;if(!w||!c.current)return;e.preventDefault();const i=e.clientX,a=c.current.getBoundingClientRect().width;q(!0);const d=$=>{W(I(a+i-$.clientX))},r=()=>{window.removeEventListener("pointermove",d),window.removeEventListener("pointerup",r),window.removeEventListener("pointercancel",r),s.current=null,q(!1)};(u=s.current)==null||u.call(s),s.current=r,window.addEventListener("pointermove",d),window.addEventListener("pointerup",r),window.addEventListener("pointercancel",r)},[I,w]);o.useEffect(()=>()=>{var e;return(e=s.current)==null?void 0:e.call(s)},[]);const L=o.useCallback(e=>typeof window>"u"?C??P:Math.max(240,Math.min(C??Number.POSITIVE_INFINITY,window.innerHeight-Math.max(0,e)-16)),[C]),x=o.useCallback((e,i)=>{var r;const a=L(i??((r=c.current)==null?void 0:r.getBoundingClientRect().top)??0),d=Math.min(f,a);return Math.min(Math.max(e,d),a)},[L,f]);o.useEffect(()=>{if(!B){N(null);return}let e=null;const i=()=>{e===null&&(e=window.requestAnimationFrame(()=>{var r;e=null;const a=((r=c.current)==null?void 0:r.getBoundingClientRect().top)??0,d=a<window.innerHeight-80?L(a):null;N(d),d!==null&&k(u=>u===null?u:x(u,a))}))};return i(),window.addEventListener("resize",i),window.addEventListener("scroll",i,!0),()=>{e!==null&&window.cancelAnimationFrame(e),window.removeEventListener("resize",i),window.removeEventListener("scroll",i,!0)}},[L,x,B]);const R=o.useCallback(e=>{var a;if(!w||e.key!=="ArrowLeft"&&e.key!=="ArrowRight")return;e.preventDefault();const i=b??((a=c.current)==null?void 0:a.getBoundingClientRect().width)??H;W(I(i+(e.key==="ArrowLeft"?40:-40)))},[I,b,w]),Z=o.useCallback(e=>{var u;if(!p||!c.current)return;e.preventDefault();const i=e.clientY,a=c.current.getBoundingClientRect().height;Y(!0);const d=$=>{k(x(a+$.clientY-i))},r=()=>{window.removeEventListener("pointermove",d),window.removeEventListener("pointerup",r),window.removeEventListener("pointercancel",r),s.current=null,Y(!1)};(u=s.current)==null||u.call(s),s.current=r,window.addEventListener("pointermove",d),window.addEventListener("pointerup",r),window.addEventListener("pointercancel",r)},[x,p]),T=o.useCallback(e=>{var a;if(!p)return;if(e.key==="Enter"||e.key==="Home"){e.preventDefault(),k(null);return}if(e.key!=="ArrowUp"&&e.key!=="ArrowDown")return;e.preventDefault();const i=h??((a=c.current)==null?void 0:a.getBoundingClientRect().height)??m??f;k(x(i+(e.key==="ArrowDown"?40:-40)))},[x,p,h,f,m]),ee=o.useCallback(()=>{W(null),y==null||y()},[y]);return n.jsxs("aside",{ref:c,"aria-label":V,className:G,"data-ai-side-panel":"true","data-expanded":g?"true":"false","data-resizable":w?"true":"false","data-height-resizable":p?"true":"false","data-height-mode":h!==null?"manual":B?"viewport":"surface",style:{minWidth:0,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden",background:t.cellBg,...z==="overlay"&&!M?{position:"absolute",inset:"0 0 0 auto",zIndex:30,width:g?`min(${P}px, calc(100% - 40px))`:`min(${H}px, calc(100% - 40px))`,maxWidth:g?"72vw":"52vw",minWidth:Math.min(H,400),flex:"0 0 auto",boxShadow:"-16px 0 36px rgba(0,0,0,0.18)"}:{},...z==="overlay"&&M?{position:"relative",width:"100%",flex:"0 0 auto"}:{},borderLeft:M?"none":`1px solid ${t.headerBorder}`,border:S?`1px solid ${t.headerBorder}`:void 0,borderRadius:S?12:void 0,boxShadow:S?"0 18px 60px rgba(15, 23, 42, 0.22)":void 0,transition:"width 180ms ease, max-width 180ms ease",...J,...b!==null?{width:b,maxWidth:E??"calc(100vw - 96px)",flexBasis:b,transition:X?"none":"width 120ms ease, max-width 120ms ease"}:{},...(h??m)!==null?{height:h??m??void 0,minHeight:Math.min(f,h??m??f),maxHeight:h??m??void 0,transition:K?"none":"height 120ms ease, max-height 120ms ease"}:{}},children:[w?n.jsx("div",{role:"separator","aria-label":`Resize ${l}`,"aria-orientation":"vertical",tabIndex:0,title:`Drag to resize ${l}. Use left and right arrow keys for precise adjustment.`,onPointerDown:Q,onKeyDown:R,style:{position:"absolute",inset:"0 auto 0 -5px",width:10,zIndex:4,cursor:"col-resize",outline:"none",touchAction:"none"},children:n.jsx("span",{"aria-hidden":"true",style:{position:"absolute",left:4,top:"42%",width:2,height:48,borderRadius:999,background:X?t.accent:t.headerBorder,transition:"background 120ms ease"}})}):null,p?n.jsx("div",{role:"separator","aria-label":`Resize ${l} height`,"aria-orientation":"horizontal",tabIndex:0,title:`Drag to adjust ${l} height. Use up and down arrow keys; press Enter to fit the viewport.`,onPointerDown:Z,onDoubleClick:()=>k(null),onKeyDown:T,style:{position:"absolute",inset:"auto 0 -5px 0",height:10,zIndex:4,cursor:"row-resize",outline:"none",touchAction:"none"},children:n.jsx("span",{"aria-hidden":"true",style:{position:"absolute",left:"calc(50% - 24px)",top:4,width:48,height:2,borderRadius:999,background:K?t.accent:t.headerBorder,transition:"background 120ms ease"}})}):null,n.jsxs("div",{style:{minHeight:52,padding:"9px 12px",borderBottom:`1px solid ${t.headerBorder}`,background:t.cellBg,display:"flex",alignItems:"center",gap:10,flex:"0 0 auto"},children:[n.jsx("div",{"aria-hidden":"true",style:{width:30,height:30,borderRadius:8,background:`${t.accent}14`,border:`1px solid ${t.accent}36`,color:t.accent,display:"inline-flex",alignItems:"center",justifyContent:"center",flex:"0 0 auto"},children:n.jsx(ne,{size:16,strokeWidth:2.1})}),n.jsxs("div",{style:{flex:1,minWidth:0},children:[n.jsxs("div",{style:{display:"flex",alignItems:"center",gap:7},children:[n.jsx("span",{style:{fontSize:13,fontWeight:800,color:t.textPrimary,fontFamily:t.font},children:l}),O?n.jsx(ie,{size:12,"aria-label":"AI is working",style:{color:t.accent,animation:"dql-agent-run-spin 0.8s linear infinite"}}):null]}),n.jsx("div",{title:j,style:{marginTop:2,color:t.textMuted,fontSize:11,fontFamily:t.font,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:j})]}),U,F?n.jsx(_,{t,label:"New AI chat",onClick:F,children:n.jsx(le,{size:15,strokeWidth:2})}):null,!M&&y?n.jsx(_,{t,label:g?"Return AI panel to standard width":"Expand AI panel",onClick:ee,children:g?n.jsx(re,{size:15,strokeWidth:2}):n.jsx(oe,{size:15,strokeWidth:2})}):null,n.jsx(_,{t,label:`Close ${l}`,onClick:D,children:n.jsx(ae,{size:15,strokeWidth:2})})]}),n.jsx("div",{style:{flex:1,minHeight:0,minWidth:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:v})]})}function _({t,label:l,onClick:j,active:v=!1,children:D}){return n.jsx("button",{type:"button","aria-label":l,title:l,onClick:j,style:{width:30,height:30,borderRadius:7,border:`1px solid ${v?`${t.accent}66`:t.btnBorder}`,background:v?`${t.accent}14`:t.btnBg,color:v?t.accent:t.textSecondary,cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",flex:"0 0 auto"},children:D})}export{we as A,le as M,P as a,H as b,_ as c};
@@ -0,0 +1,6 @@
1
+ import{c as ne,h as re,i as ie,k as oe,t as se,r as f,a as R,j as o,m as ae,P as de,L as J,l as ce,T as le}from"./index-1mIC_XX4.js";import{u as ue,f as fe,c as pe}from"./answer-to-notebook-DuqCcDDl.js";import{U as he}from"./UnifiedAgentRunPanel-Dj4AXAhT.js";import{S as G}from"./star-DDhv4e8M.js";import{P as me}from"./pencil-D_I14Wyk.js";import"./react-CRB3T2We.js";import"./AgentAnswerCard-Cp0eh6zU.js";import"./usePersistedAgentThreadId-3rzkZrqc.js";import"./wrench-Ong23-wu.js";import"./TrustBadge-vQQh8d0D.js";import"./AiBuildResult-CyqTuQe5.js";import"./user-round-BA074kiQ.js";import"./triangle-alert-2ZXx8wAu.js";import"./rotate-ccw-DOrfTZk8.js";import"./x-CSo1M3tu.js";import"./list-tree-BRFpEmvV.js";import"./minimize-2-CDwSCGlO.js";import"./maximize-2-CCd5uRIZ.js";import"./arrow-right-DvB_DONr.js";import"./chevron-up-HxU1l85K.js";/**
2
+ * @license lucide-react v0.563.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const ge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],xe=ne("message-square",ge),H="dql-ask-domain-scope",K="dql-ask-domain-context";function Y(e){if(e)try{const t=JSON.parse(e);return typeof t.domain!="string"||!t.domain.trim()?void 0:{domain:t.domain.trim(),purpose:typeof t.purpose=="string"?t.purpose:void 0,modelAreaId:typeof t.modelAreaId=="string"?t.modelAreaId:void 0}}catch{return}}function Ae(e,t){try{const s=Y(e.getItem(K));return e.removeItem(K),s?(t.setItem(H,JSON.stringify(s)),s):Y(t.getItem(H))}catch{return}}function Se(e,t){try{t||e.removeItem(H)}catch{}}function ve(){if(!(typeof window>"u"))return Ae(window.sessionStorage,window.localStorage)}function Ie(e){typeof window>"u"||Se(window.localStorage,e)}const B="dql-ask-conversations",Z="dql-ask-active-conversation",Q="dql-ask-deleted-thread-queue",N=100;function we(e){return(e??"AI analysis").replace(/[^a-zA-Z0-9_ -]+/g," ").replace(/\s+/g,"_").replace(/^_+|_+$/g,"").slice(0,48)||"ai_analysis"}function ke(e){var v,p,a,d,w;const t=(p=(v=e.dqlArtifact)==null?void 0:v.source)==null?void 0:p.trim(),s=(a=e.sql)==null?void 0:a.trim(),n=t||s;if(!n)return;const u=ae(t?"dql":"sql",n);return u.name=we(e.title??((d=e.dqlArtifact)==null?void 0:d.name)),e.result&&(u.result=e.result,u.status="success",u.executionCount=1),e.chartConfig&&(u.chartConfig=e.chartConfig),u.correctionProvenance=pe({question:e.question,generatedSql:e.sql??((w=e.dqlArtifact)==null?void 0:w.compiledSql),generatedDql:t,sourceRunId:e.sourceRunId}),e.dqlArtifact&&(u.dqlArtifact={source:e.dqlArtifact.source,sql:e.sql,name:e.dqlArtifact.name,sourcePath:e.dqlArtifact.sourcePath,kind:e.dqlArtifact.kind,metrics:e.dqlArtifact.metrics,dimensions:e.dqlArtifact.dimensions,parameters:e.dqlArtifact.parameters,parameterValues:e.dqlArtifact.parameterValues,persistence:e.dqlArtifact.persistence,trustState:e.dqlArtifact.trustState,compiledSql:e.dqlArtifact.compiledSql??e.sql,reviewState:e.dqlArtifact.trustState==="certified"?"certified":"review_required",...e.question?{question:e.question}:{}},u.dqlParameterValues=e.dqlArtifact.parameterValues),u}function F(){return`conv_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,7)}`}function ee(e){return`conv_server_${e}`}function ye(e,t,s=new Set){const n=t.filter(a=>!s.has(a.id)),u=new Map(e.flatMap(a=>a.threadId?[[a.threadId,a]]:[])),v=n.map(a=>{var w;const d=u.get(a.id);return{id:(d==null?void 0:d.id)??ee(a.id),title:((w=a.title)==null?void 0:w.trim())||(d!=null&&d.title&&d.title!=="New chat"?d.title:"Recovered chat"),createdAt:(d==null?void 0:d.createdAt)??a.createdAt,updatedAt:a.updatedAt>((d==null?void 0:d.updatedAt)??"")?a.updatedAt:(d==null?void 0:d.updatedAt)??a.updatedAt,items:(d==null?void 0:d.items)??[],threadId:a.id,favorite:a.favorite??(d==null?void 0:d.favorite)??!1}}),p=new Set(n.map(a=>a.id));return[...v,...e.filter(a=>(!a.threadId||!p.has(a.threadId))&&(!a.threadId||!s.has(a.threadId)))].sort((a,d)=>d.updatedAt.localeCompare(a.updatedAt)).slice(0,N)}function b(){if(typeof window>"u")return new Set;try{const e=JSON.parse(window.localStorage.getItem(Q)??"[]");return new Set(Array.isArray(e)?e.filter(t=>typeof t=="string"):[])}catch{return new Set}}function te(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Q,JSON.stringify([...e].slice(-N)))}catch{}}function Ce(e){const t=b();t.add(e),te(t)}function U(e){const t=b();t.delete(e),te(t)}function qe(e){return Array.isArray(e)?e.flatMap(t=>{if(!t||typeof t!="object")return[];const s=t;if(s.kind==="run"&&s.run&&typeof s.run=="object"){const n=s.run;n.nextActions=Array.isArray(n.nextActions)?n.nextActions:[],n.artifacts=Array.isArray(n.artifacts)?n.artifacts:[],n.evaluations=Array.isArray(n.evaluations)?n.evaluations:[],n.steps=Array.isArray(n.steps)?n.steps:[]}return[t]}):[]}function be(){if(typeof window>"u")return[];try{const e=window.localStorage.getItem(B);if(!e)return[];const t=JSON.parse(e);if(!Array.isArray(t))return[];const s=b();return t.filter(n=>!n.threadId||!s.has(n.threadId)).map(n=>({...n,items:qe(n.items)}))}catch{return[]}}function je(){if(!(typeof window>"u"))try{return window.localStorage.getItem(Z)??void 0}catch{return}}function X(e){return e.map(t=>({...t,items:t.items.map(s=>s.kind==="run"?{...s,run:{...s.run,events:[]}}:s)}))}function C(e){const t=e.slice(0,N);if(typeof window>"u")return t;try{return window.localStorage.setItem(B,JSON.stringify(X(t))),t}catch{const s=t.slice(0,8);try{window.localStorage.setItem(B,JSON.stringify(X(s)))}catch{}return s}}function De(e){const t=e.find(n=>n.kind==="user"),s=t&&t.kind==="user"?t.text.trim():"";return s?s.length>48?`${s.slice(0,48).trimEnd()}…`:s:"New chat"}function Te(e){const t=new Date(e).getTime();if(Number.isNaN(t))return"";const s=Date.now()-t,n=Math.floor(s/6e4);if(n<1)return"just now";if(n<60)return`${n}m`;const u=Math.floor(n/60);if(u<24)return`${u}h`;const v=Math.floor(u/24);return v<7?`${v}d`:new Date(e).toLocaleDateString()}function Ze(){var V;const e=re(ie(r=>({activeFile:r.activeFile,themeMode:r.themeMode}))),t=oe(),s=ue(),n=se[e.themeMode],[u,v]=f.useState(()=>ve()),[p,a]=f.useState(()=>be()),[d,w]=f.useState(!0),j=f.useMemo(()=>p.length>0,[]),[h,y]=f.useState(()=>{const r=je();return r&&p.some(i=>i.id===r)?r:F()}),[I,D]=f.useState(!1);f.useEffect(()=>{try{window.localStorage.setItem(Z,h)}catch{}},[h]),f.useEffect(()=>{for(const r of b())R.deleteAgentThread(r).then(()=>U(r)).catch(()=>{})},[]),f.useEffect(()=>{let r=!1;const i=b();return R.listAgentThreads({limit:N}).then(({threads:l})=>{if(r)return;const m=l.filter(x=>x.surface==="ask"||x.surface==="notebook"&&!x.notebookPath),g=new Set([...i,...b()]),k=m.filter(x=>!g.has(x.id));a(x=>C(ye(x,k,g))),!j&&k[0]&&y(ee(k[0].id))}).catch(()=>{}).finally(()=>{r||w(!1)}),()=>{r=!0}},[j]);const T=f.useMemo(()=>{var r;return((r=p.find(i=>i.id===h))==null?void 0:r.items)??[]},[p,h]),E=f.useMemo(()=>{var r;return(r=p.find(i=>i.id===h))==null?void 0:r.threadId},[p,h]),_=f.useCallback(r=>{r.length!==0&&a(i=>{const l=i.find(x=>x.id===h);if(l&&l.items.length>=r.length)return i;const m=new Date().toISOString(),k=[{id:h,title:De(r),createdAt:(l==null?void 0:l.createdAt)??m,updatedAt:m,items:r,threadId:l==null?void 0:l.threadId},...i.filter(x=>x.id!==h)].slice(0,N);return C(k)})},[h]),$=f.useCallback(r=>{a(i=>{const l=i.find(g=>g.id===h),m=new Date().toISOString();return C(l?i.map(g=>g.id===h?{...g,threadId:r}:g):[{id:h,title:"New chat",createdAt:m,updatedAt:m,items:[],threadId:r},...i])})},[h]),M=f.useCallback((r,i)=>{var g;const l=i.trim();if(!l)return;a(k=>C(k.map(x=>x.id===r?{...x,title:l}:x)));const m=(g=p.find(k=>k.id===r))==null?void 0:g.threadId;m&&R.updateAgentThread(m,{title:l}).catch(()=>{})},[p]),O=f.useCallback(r=>{const i=p.find(m=>m.id===r),l=!(i!=null&&i.favorite);a(m=>C(m.map(g=>g.id===r?{...g,favorite:l}:g))),i!=null&&i.threadId&&R.updateAgentThread(i.threadId,{favorite:l}).catch(()=>{})},[p]),P=f.useCallback(()=>{I||y(F())},[I]),c=f.useCallback(r=>{I||y(r)},[I]),A=f.useCallback(r=>{var l;if(I)return;const i=(l=p.find(m=>m.id===r))==null?void 0:l.threadId;i&&(Ce(i),R.deleteAgentThread(i).then(()=>U(i)).catch(()=>{})),a(m=>C(m.filter(g=>g.id!==r))),r===h&&y(F())},[h,p,I]),q=(r,i)=>{t({type:"OPEN_APP",appId:r,dashboardId:i})},z=(r,i)=>{t({type:"OPEN_GLOBAL_AI",audience:"stakeholder",context:{title:"Research",scopeHint:"Follow up on this research",selectedObject:{kind:"research",id:r,path:i}}})},S=f.useCallback(r=>{if(!e.activeFile||e.activeFile.type==="block"){s(r);return}const i=ke(r);i&&(t({type:"ADD_CELL",cell:i}),t({type:"SET_MAIN_VIEW",view:"notebook"}),fe(i.id))},[t,s,e.activeFile]);return o.jsxs("div",{style:{flex:1,minWidth:0,display:"flex",overflow:"hidden",background:n.appBg},children:[o.jsx(Re,{t:n,conversations:p,activeId:h,busy:I,loading:d,onNewChat:P,onSelect:c,onDelete:A,onRename:M,onToggleFavorite:O}),o.jsx("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:o.jsx(he,{themeMode:e.themeMode,title:"Ask your data",askLayout:!0,scopeHint:u?`Scoped to ${u.domain}${u.modelAreaId?` · ${(V=u.modelAreaId.split("::").at(-1))==null?void 0:V.replace(/_/g," ")}`:""}${u.purpose?` for ${u.purpose}`:""}`:"Ask a question or request deep research",onClearScope:u?()=>{v(void 0),Ie(void 0)}:void 0,workspaceContext:u,audience:"stakeholder",initialMode:"auto",initialItems:T,onItemsChange:_,threadId:E,onThreadIdChange:$,onRunningChange:D,onOpenResearch:z,onOpenApp:q,onInsertSql:(r,i,l)=>S({sql:r,title:i,question:l==null?void 0:l.question,sourceRunId:l==null?void 0:l.sourceRunId}),onInsertDql:S,insertDqlActionLabel:"Open in notebook"},h)})]})}function Re({t:e,conversations:t,activeId:s,busy:n,loading:u,onNewChat:v,onSelect:p,onDelete:a,onRename:d,onToggleFavorite:w}){const j=n?"Finish the current question first":void 0,[h,y]=f.useState(null),[I,D]=f.useState(null),[T,E]=f.useState(""),_=t.filter(c=>c.favorite),$=t.filter(c=>!c.favorite),M=c=>{D(c.id),E(c.title)},O=()=>{I&&T.trim()&&d(I,T),D(null)},P=c=>{const A=c.id===s,q=h===c.id,z=I===c.id;return o.jsxs("div",{onMouseEnter:()=>y(c.id),onMouseLeave:()=>y(S=>S===c.id?null:S),style:{position:"relative",display:"flex",alignItems:"center"},children:[z?o.jsx("input",{autoFocus:!0,value:T,onChange:S=>E(S.target.value),onBlur:O,onKeyDown:S=>{S.key==="Enter"&&(S.preventDefault(),O()),S.key==="Escape"&&(S.preventDefault(),D(null))},"aria-label":"Conversation name",style:{flex:1,minWidth:0,padding:"7px 10px",borderRadius:7,border:`1px solid ${e.accent}`,background:e.appBg,color:e.textPrimary,fontSize:12.5,fontWeight:600}}):o.jsxs("button",{type:"button",onClick:()=>p(c.id),onDoubleClick:()=>M(c),disabled:n&&!A,title:n&&!A?j:`${c.title} — double-click to rename`,style:{flex:1,minWidth:0,display:"flex",alignItems:"center",gap:8,padding:"8px 10px",borderRadius:7,border:"none",background:A?`${e.accent}1f`:q?`${e.textPrimary}0d`:"transparent",color:A?e.accent:e.textSecondary,cursor:n&&!A?"not-allowed":"pointer",opacity:n&&!A?.5:1,textAlign:"left",fontSize:12.5,fontWeight:A?600:500,paddingRight:q?56:10},children:[A&&n?o.jsx(J,{size:13,style:{flexShrink:0,color:e.accent,animation:"dql-agent-run-spin 0.8s linear infinite"}}):c.favorite?o.jsx(G,{size:13,style:{flexShrink:0,color:e.accent},fill:"currentColor"}):o.jsx(xe,{size:13,style:{flexShrink:0,opacity:.7}}),o.jsx("span",{style:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:A&&n?"Working…":c.title}),q?null:o.jsx("span",{style:{flexShrink:0,fontSize:10,color:A&&n?e.accent:e.textMuted,fontWeight:A&&n?650:400},children:A&&n?"Live":Te(c.updatedAt)})]}),q&&!z?o.jsxs("div",{style:{position:"absolute",right:4,display:"inline-flex",gap:2},children:[o.jsx(W,{t:e,label:c.favorite?"Unpin conversation":"Pin conversation",onClick:()=>w(c.id),children:o.jsx(G,{size:12,fill:c.favorite?"currentColor":"none"})}),o.jsx(W,{t:e,label:"Rename conversation",onClick:()=>M(c),children:o.jsx(me,{size:12})}),o.jsx(W,{t:e,label:"Delete conversation",onClick:()=>a(c.id),children:o.jsx(le,{size:12})})]}):null]},c.id)};return o.jsxs("aside",{style:{width:248,flexShrink:0,borderRight:`1px solid ${e.headerBorder}`,background:e.cellBg,display:"flex",flexDirection:"column",minHeight:0},children:[o.jsx("div",{style:{padding:12},children:o.jsxs("button",{type:"button",onClick:v,disabled:n,title:j,style:{width:"100%",display:"inline-flex",alignItems:"center",gap:8,justifyContent:"center",padding:"9px 12px",borderRadius:8,border:`1px solid ${e.accent}`,background:e.accent,color:"var(--accent-on, #fff)",fontSize:13,fontWeight:650,cursor:n?"not-allowed":"pointer",opacity:n?.55:1},children:[o.jsx(de,{size:15,strokeWidth:2.4})," New chat"]})}),o.jsx("div",{style:{flex:1,minHeight:0,overflow:"auto",padding:"0 8px 12px",display:"flex",flexDirection:"column",gap:2},children:u&&t.length===0?o.jsxs("div",{style:{padding:"10px 8px",display:"flex",alignItems:"center",gap:7,fontSize:11.5,color:e.textMuted},children:[o.jsx(J,{size:13,style:{animation:"dql-agent-run-spin 0.8s linear infinite"}}),"Restoring project chats…"]}):t.length===0?o.jsx("div",{style:{padding:"10px 8px",fontSize:11.5,color:e.textMuted,lineHeight:1.5},children:"No past chats yet. Your conversations show up here so you can pick up where you left off."}):o.jsxs(o.Fragment,{children:[_.length>0?o.jsxs(o.Fragment,{children:[o.jsx(L,{t:e,children:"Favourites"}),_.map(c=>P(c)),o.jsx(L,{t:e,children:"Recent"})]}):o.jsx(L,{t:e,children:"Recent"}),$.map(c=>P(c))]})}),o.jsxs("div",{style:{padding:"10px 12px",borderTop:`1px solid ${e.headerBorder}`,display:"flex",alignItems:"center",gap:7,fontSize:11,color:e.textMuted},children:[o.jsx(ce,{size:12,style:{flexShrink:0,color:e.success}}),o.jsx("span",{children:"Private project history · not committed to Git"})]})]})}function L({t:e,children:t}){return o.jsx("div",{style:{padding:"8px 8px 4px",fontSize:10,fontWeight:700,letterSpacing:"0.05em",textTransform:"uppercase",color:e.textMuted},children:t})}function W({t:e,label:t,onClick:s,children:n}){return o.jsx("button",{type:"button","aria-label":t,title:t,onClick:u=>{u.stopPropagation(),s()},style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:22,height:22,borderRadius:5,border:"none",background:e.cellBg,color:e.textMuted,cursor:"pointer"},children:n})}export{Ze as AnalyticsHome,ke as askNotebookCellFromPayload,ye as mergePersistedAskConversations};