@grackle-ai/web 0.75.8 → 0.75.10

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.
@@ -1 +1 @@
1
- import{a as z,j as w}from"./markdown-gcy1Jmzi.js";import{u as Z,s as q,t as tt,a as et,B as nt,K as rt}from"./index-C0-Okih-.js";import{t as it,b as st,z as at,s as D,c as H}from"./dagview-BA5TtMAQ.js";import"./grpc-C9KtwZNl.js";function ot(t,e){var n,c=1;t==null&&(t=0),e==null&&(e=0);function r(){var a,u=n.length,f,_=0,o=0;for(a=0;a<u;++a)f=n[a],_+=f.x,o+=f.y;for(_=(_/u-t)*c,o=(o/u-e)*c,a=0;a<u;++a)f=n[a],f.x-=_,f.y-=o}return r.initialize=function(a){n=a},r.x=function(a){return arguments.length?(t=+a,r):t},r.y=function(a){return arguments.length?(e=+a,r):e},r.strength=function(a){return arguments.length?(c=+a,r):c},r}function ct(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return J(this.cover(e,n),e,n,t)}function J(t,e,n,c){if(isNaN(e)||isNaN(n))return t;var r,a=t._root,u={data:c},f=t._x0,_=t._y0,o=t._x1,g=t._y1,y,v,h,p,s,i,l,d;if(!a)return t._root=u,t;for(;a.length;)if((s=e>=(y=(f+o)/2))?f=y:o=y,(i=n>=(v=(_+g)/2))?_=v:g=v,r=a,!(a=a[l=i<<1|s]))return r[l]=u,t;if(h=+t._x.call(null,a.data),p=+t._y.call(null,a.data),e===h&&n===p)return u.next=a,r?r[l]=u:t._root=u,t;do r=r?r[l]=new Array(4):t._root=new Array(4),(s=e>=(y=(f+o)/2))?f=y:o=y,(i=n>=(v=(_+g)/2))?_=v:g=v;while((l=i<<1|s)===(d=(p>=v)<<1|h>=y));return r[d]=a,r[l]=u,t}function lt(t){var e,n,c=t.length,r,a,u=new Array(c),f=new Array(c),_=1/0,o=1/0,g=-1/0,y=-1/0;for(n=0;n<c;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(a=+this._y.call(null,e))||(u[n]=r,f[n]=a,r<_&&(_=r),r>g&&(g=r),a<o&&(o=a),a>y&&(y=a));if(_>g||o>y)return this;for(this.cover(_,o).cover(g,y),n=0;n<c;++n)J(this,u[n],f[n],t[n]);return this}function ut(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,c=this._y0,r=this._x1,a=this._y1;if(isNaN(n))r=(n=Math.floor(t))+1,a=(c=Math.floor(e))+1;else{for(var u=r-n||1,f=this._root,_,o;n>t||t>=r||c>e||e>=a;)switch(o=(e<c)<<1|t<n,_=new Array(4),_[o]=f,f=_,u*=2,o){case 0:r=n+u,a=c+u;break;case 1:n=r-u,a=c+u;break;case 2:r=n+u,c=a-u;break;case 3:n=r-u,c=a-u;break}this._root&&this._root.length&&(this._root=f)}return this._x0=n,this._y0=c,this._x1=r,this._y1=a,this}function ft(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function ht(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function L(t,e,n,c,r){this.node=t,this.x0=e,this.y0=n,this.x1=c,this.y1=r}function dt(t,e,n){var c,r=this._x0,a=this._y0,u,f,_,o,g=this._x1,y=this._y1,v=[],h=this._root,p,s;for(h&&v.push(new L(h,r,a,g,y)),n==null?n=1/0:(r=t-n,a=e-n,g=t+n,y=e+n,n*=n);p=v.pop();)if(!(!(h=p.node)||(u=p.x0)>g||(f=p.y0)>y||(_=p.x1)<r||(o=p.y1)<a))if(h.length){var i=(u+_)/2,l=(f+o)/2;v.push(new L(h[3],i,l,_,o),new L(h[2],u,l,i,o),new L(h[1],i,f,_,l),new L(h[0],u,f,i,l)),(s=(e>=l)<<1|t>=i)&&(p=v[v.length-1],v[v.length-1]=v[v.length-1-s],v[v.length-1-s]=p)}else{var d=t-+this._x.call(null,h.data),N=e-+this._y.call(null,h.data),x=d*d+N*N;if(x<n){var b=Math.sqrt(n=x);r=t-b,a=e-b,g=t+b,y=e+b,c=h.data}}return c}function gt(t){if(isNaN(g=+this._x.call(null,t))||isNaN(y=+this._y.call(null,t)))return this;var e,n=this._root,c,r,a,u=this._x0,f=this._y0,_=this._x1,o=this._y1,g,y,v,h,p,s,i,l;if(!n)return this;if(n.length)for(;;){if((p=g>=(v=(u+_)/2))?u=v:_=v,(s=y>=(h=(f+o)/2))?f=h:o=h,e=n,!(n=n[i=s<<1|p]))return this;if(!n.length)break;(e[i+1&3]||e[i+2&3]||e[i+3&3])&&(c=e,l=i)}for(;n.data!==t;)if(r=n,!(n=n.next))return this;return(a=n.next)&&delete n.next,r?(a?r.next=a:delete r.next,this):e?(a?e[i]=a:delete e[i],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(c?c[l]=n:this._root=n),this):(this._root=a,this)}function xt(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function _t(){return this._root}function mt(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function vt(t){var e=[],n,c=this._root,r,a,u,f,_;for(c&&e.push(new L(c,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(c=n.node,a=n.x0,u=n.y0,f=n.x1,_=n.y1)&&c.length){var o=(a+f)/2,g=(u+_)/2;(r=c[3])&&e.push(new L(r,o,g,f,_)),(r=c[2])&&e.push(new L(r,a,g,o,_)),(r=c[1])&&e.push(new L(r,o,u,f,g)),(r=c[0])&&e.push(new L(r,a,u,o,g))}return this}function pt(t){var e=[],n=[],c;for(this._root&&e.push(new L(this._root,this._x0,this._y0,this._x1,this._y1));c=e.pop();){var r=c.node;if(r.length){var a,u=c.x0,f=c.y0,_=c.x1,o=c.y1,g=(u+_)/2,y=(f+o)/2;(a=r[0])&&e.push(new L(a,u,f,g,y)),(a=r[1])&&e.push(new L(a,g,f,_,y)),(a=r[2])&&e.push(new L(a,u,y,g,o)),(a=r[3])&&e.push(new L(a,g,y,_,o))}n.push(c)}for(;c=n.pop();)t(c.node,c.x0,c.y0,c.x1,c.y1);return this}function yt(t){return t[0]}function wt(t){return arguments.length?(this._x=t,this):this._x}function Nt(t){return t[1]}function bt(t){return arguments.length?(this._y=t,this):this._y}function U(t,e,n){var c=new P(e??yt,n??Nt,NaN,NaN,NaN,NaN);return t==null?c:c.addAll(t)}function P(t,e,n,c,r,a){this._x=t,this._y=e,this._x0=n,this._y0=c,this._x1=r,this._y1=a,this._root=void 0}function W(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var M=U.prototype=P.prototype;M.copy=function(){var t=new P(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,c;if(!e)return t;if(!e.length)return t._root=W(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var r=0;r<4;++r)(c=e.source[r])&&(c.length?n.push({source:c,target:e.target[r]=new Array(4)}):e.target[r]=W(c));return t};M.add=ct;M.addAll=lt;M.cover=ut;M.data=ft;M.extent=ht;M.find=dt;M.remove=gt;M.removeAll=xt;M.root=_t;M.size=mt;M.visit=vt;M.visitAfter=pt;M.x=wt;M.y=bt;function $(t){return function(){return t}}function S(t){return(t()-.5)*1e-6}function kt(t){return t.x+t.vx}function jt(t){return t.y+t.vy}function zt(t){var e,n,c,r=1,a=1;typeof t!="function"&&(t=$(t==null?1:+t));function u(){for(var o,g=e.length,y,v,h,p,s,i,l=0;l<a;++l)for(y=U(e,kt,jt).visitAfter(f),o=0;o<g;++o)v=e[o],s=n[v.index],i=s*s,h=v.x+v.vx,p=v.y+v.vy,y.visit(d);function d(N,x,b,C,m){var k=N.data,I=N.r,A=s+I;if(k){if(k.index>v.index){var B=h-k.x-k.vx,T=p-k.y-k.vy,R=B*B+T*T;R<A*A&&(B===0&&(B=S(c),R+=B*B),T===0&&(T=S(c),R+=T*T),R=(A-(R=Math.sqrt(R)))/R*r,v.vx+=(B*=R)*(A=(I*=I)/(i+I)),v.vy+=(T*=R)*A,k.vx-=B*(A=1-A),k.vy-=T*A)}return}return x>h+A||C<h-A||b>p+A||m<p-A}}function f(o){if(o.data)return o.r=n[o.data.index];for(var g=o.r=0;g<4;++g)o[g]&&o[g].r>o.r&&(o.r=o[g].r)}function _(){if(e){var o,g=e.length,y;for(n=new Array(g),o=0;o<g;++o)y=e[o],n[y.index]=+t(y,o,e)}}return u.initialize=function(o,g){e=o,c=g,_()},u.iterations=function(o){return arguments.length?(a=+o,u):a},u.strength=function(o){return arguments.length?(r=+o,u):r},u.radius=function(o){return arguments.length?(t=typeof o=="function"?o:$(+o),_(),u):t},u}function At(t){return t.index}function Q(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Ct(t){var e=At,n=y,c,r=$(30),a,u,f,_,o,g=1;t==null&&(t=[]);function y(i){return 1/Math.min(f[i.source.index],f[i.target.index])}function v(i){for(var l=0,d=t.length;l<g;++l)for(var N=0,x,b,C,m,k,I,A;N<d;++N)x=t[N],b=x.source,C=x.target,m=C.x+C.vx-b.x-b.vx||S(o),k=C.y+C.vy-b.y-b.vy||S(o),I=Math.sqrt(m*m+k*k),I=(I-a[N])/I*i*c[N],m*=I,k*=I,C.vx-=m*(A=_[N]),C.vy-=k*A,b.vx+=m*(A=1-A),b.vy+=k*A}function h(){if(u){var i,l=u.length,d=t.length,N=new Map(u.map((b,C)=>[e(b,C,u),b])),x;for(i=0,f=new Array(l);i<d;++i)x=t[i],x.index=i,typeof x.source!="object"&&(x.source=Q(N,x.source)),typeof x.target!="object"&&(x.target=Q(N,x.target)),f[x.source.index]=(f[x.source.index]||0)+1,f[x.target.index]=(f[x.target.index]||0)+1;for(i=0,_=new Array(d);i<d;++i)x=t[i],_[i]=f[x.source.index]/(f[x.source.index]+f[x.target.index]);c=new Array(d),p(),a=new Array(d),s()}}function p(){if(u)for(var i=0,l=t.length;i<l;++i)c[i]=+n(t[i],i,t)}function s(){if(u)for(var i=0,l=t.length;i<l;++i)a[i]=+r(t[i],i,t)}return v.initialize=function(i,l){u=i,o=l,h()},v.links=function(i){return arguments.length?(t=i,h(),v):t},v.id=function(i){return arguments.length?(e=i,v):e},v.iterations=function(i){return arguments.length?(g=+i,v):g},v.strength=function(i){return arguments.length?(n=typeof i=="function"?i:$(+i),p(),v):n},v.distance=function(i){return arguments.length?(r=typeof i=="function"?i:$(+i),s(),v):r},v}const Lt=1664525,Mt=1013904223,V=4294967296;function Et(){let t=1;return()=>(t=(Lt*t+Mt)%V)/V}function It(t){return t.x}function Rt(t){return t.y}var Dt=10,Bt=Math.PI*(3-Math.sqrt(5));function Tt(t){var e,n=1,c=.001,r=1-Math.pow(c,1/300),a=0,u=.6,f=new Map,_=it(y),o=st("tick","end"),g=Et();t==null&&(t=[]);function y(){v(),o.call("tick",e),n<c&&(_.stop(),o.call("end",e))}function v(s){var i,l=t.length,d;s===void 0&&(s=1);for(var N=0;N<s;++N)for(n+=(a-n)*r,f.forEach(function(x){x(n)}),i=0;i<l;++i)d=t[i],d.fx==null?d.x+=d.vx*=u:(d.x=d.fx,d.vx=0),d.fy==null?d.y+=d.vy*=u:(d.y=d.fy,d.vy=0);return e}function h(){for(var s=0,i=t.length,l;s<i;++s){if(l=t[s],l.index=s,l.fx!=null&&(l.x=l.fx),l.fy!=null&&(l.y=l.fy),isNaN(l.x)||isNaN(l.y)){var d=Dt*Math.sqrt(.5+s),N=s*Bt;l.x=d*Math.cos(N),l.y=d*Math.sin(N)}(isNaN(l.vx)||isNaN(l.vy))&&(l.vx=l.vy=0)}}function p(s){return s.initialize&&s.initialize(t,g),s}return h(),e={tick:v,restart:function(){return _.restart(y),e},stop:function(){return _.stop(),e},nodes:function(s){return arguments.length?(t=s,h(),f.forEach(p),e):t},alpha:function(s){return arguments.length?(n=+s,e):n},alphaMin:function(s){return arguments.length?(c=+s,e):c},alphaDecay:function(s){return arguments.length?(r=+s,e):+r},alphaTarget:function(s){return arguments.length?(a=+s,e):a},velocityDecay:function(s){return arguments.length?(u=1-s,e):1-u},randomSource:function(s){return arguments.length?(g=s,f.forEach(p),e):g},force:function(s,i){return arguments.length>1?(i==null?f.delete(s):f.set(s,p(i)),e):f.get(s)},find:function(s,i,l){var d=0,N=t.length,x,b,C,m,k;for(l==null?l=1/0:l*=l,d=0;d<N;++d)m=t[d],x=s-m.x,b=i-m.y,C=x*x+b*b,C<l&&(k=m,l=C);return k},on:function(s,i){return arguments.length>1?(o.on(s,i),e):o.on(s)}}}function St(){var t,e,n,c,r=$(-30),a,u=1,f=1/0,_=.81;function o(h){var p,s=t.length,i=U(t,It,Rt).visitAfter(y);for(c=h,p=0;p<s;++p)e=t[p],i.visit(v)}function g(){if(t){var h,p=t.length,s;for(a=new Array(p),h=0;h<p;++h)s=t[h],a[s.index]=+r(s,h,t)}}function y(h){var p=0,s,i,l=0,d,N,x;if(h.length){for(d=N=x=0;x<4;++x)(s=h[x])&&(i=Math.abs(s.value))&&(p+=s.value,l+=i,d+=i*s.x,N+=i*s.y);h.x=d/l,h.y=N/l}else{s=h,s.x=s.data.x,s.y=s.data.y;do p+=a[s.data.index];while(s=s.next)}h.value=p}function v(h,p,s,i){if(!h.value)return!0;var l=h.x-e.x,d=h.y-e.y,N=i-p,x=l*l+d*d;if(N*N/_<x)return x<f&&(l===0&&(l=S(n),x+=l*l),d===0&&(d=S(n),x+=d*d),x<u&&(x=Math.sqrt(u*x)),e.vx+=l*h.value*c/x,e.vy+=d*h.value*c/x),!0;if(h.length||x>=f)return;(h.data!==e||h.next)&&(l===0&&(l=S(n),x+=l*l),d===0&&(d=S(n),x+=d*d),x<u&&(x=Math.sqrt(u*x)));do h.data!==e&&(N=a[h.data.index]*c/x,e.vx+=l*N,e.vy+=d*N);while(h=h.next)}return o.initialize=function(h,p){t=h,n=p,g()},o.strength=function(h){return arguments.length?(r=typeof h=="function"?h:$(+h),g(),o):r},o.distanceMin=function(h){return arguments.length?(u=h*h,o):Math.sqrt(u)},o.distanceMax=function(h){return arguments.length?(f=h*h,o):Math.sqrt(f)},o.theta=function(h){return arguments.length?(_=h*h,o):Math.sqrt(_)},o}const $t="_graphContainer_zxmzw_1",Ot="_svg_zxmzw_10",Gt="_link_zxmzw_18",Ft="_node_zxmzw_30",Kt="_nodeCard_zxmzw_34",Ut="_nodeLabel_zxmzw_40",Pt="_selected_zxmzw_44",Ht="_dimmed_zxmzw_51",Wt="_dimmedLink_zxmzw_56",Qt="_nodeIndicator_zxmzw_68",Vt="_nodeBadge_zxmzw_82",E={graphContainer:$t,svg:Ot,link:Gt,node:Ft,nodeCard:Kt,nodeLabel:Ut,selected:Pt,dimmed:Ht,dimmedLink:Wt,nodeIndicator:Qt,nodeBadge:Vt},F={reference:"#4A9EFF",decision:"#22C55E",insight:"#EAB308",concept:"#A855F7",snippet:"#6B7280"};function X(t){return t.kind==="reference"?F.reference:F[t.category??"insight"]??F.insight}const O=200,G=52,Y=12;function Xt({graphData:t,selectedNodeId:e,onNodeClick:n,onNodeDoubleClick:c}){const r=z.useRef(null),a=z.useRef(null),u=z.useRef(void 0),f=z.useRef(void 0),_=z.useRef(void 0),o=z.useRef(void 0),[g,y]=z.useState({width:800,height:600});z.useEffect(()=>{var l;const s=((l=r.current)==null?void 0:l.parentElement)??null;if(!s)return;const i=new ResizeObserver(d=>{for(const N of d)y({width:N.contentRect.width,height:N.contentRect.height})});return i.observe(s),y({width:s.clientWidth,height:s.clientHeight}),()=>{i.disconnect()}},[]),z.useEffect(()=>{if(!r.current||!a.current)return;const s=r.current,i=a.current,l=at().scaleExtent([.1,4]).filter(d=>d.type!=="dblclick").on("zoom",d=>{D(i).attr("transform",String(d.transform))});return D(s).call(l),f.current=l,()=>{D(s).on(".zoom",null)}},[]);const v=z.useRef(n);v.current=n;const h=z.useRef(c);h.current=c,z.useEffect(()=>{if(!a.current)return;const s=a.current;if(u.current&&(u.current.stop(),u.current=void 0),t.nodes.length===0){D(s).selectAll("*").remove();return}const i=t.nodes.map(m=>({...m})),l=new Map(i.map(m=>[m.id,m])),d=t.links.filter(m=>l.has(m.source)&&l.has(m.target)).map(m=>({source:m.source,target:m.target,type:m.type}));D(s).selectAll("*").remove();const N=D(s).selectAll("line").data(d).enter().append("line").attr("class",E.link);N.append("title").text(m=>m.type),_.current=N;const x=D(s).selectAll("g.kg-node").data(i).enter().append("g").attr("class",`kg-node ${E.node}`).style("cursor","pointer").on("click",(m,k)=>{v.current(k.id)}).on("dblclick",(m,k)=>{h.current(k.id)});o.current=x,x.append("rect").attr("class",E.nodeCard).attr("width",O).attr("height",G).attr("rx",Y).attr("ry",Y).style("--node-color",m=>X(m)),x.append("rect").attr("class",E.nodeIndicator).attr("width",4).attr("height",G).attr("rx",2).attr("fill",m=>X(m)),x.append("text").attr("class",E.nodeLabel).attr("x",O/2).attr("y",G/2-4).attr("text-anchor","middle").attr("dominant-baseline","central").text(m=>m.label.length>26?m.label.substring(0,24)+"...":m.label),x.append("text").attr("class",E.nodeBadge).attr("x",O/2).attr("y",G-8).attr("text-anchor","middle").text(m=>(m.kind==="reference"?m.sourceType??"ref":m.category??"").toUpperCase());const b=Tt(i).force("link",Ct(d).id(m=>m.id).distance(140)).force("charge",St().strength(-400)).force("center",ot(g.width/2,g.height/2)).force("collide",zt(O/2+16)).on("tick",()=>{N.attr("x1",m=>m.source.x??0).attr("y1",m=>m.source.y??0).attr("x2",m=>m.target.x??0).attr("y2",m=>m.target.y??0),x.attr("transform",m=>`translate(${(m.x??0)-O/2},${(m.y??0)-G/2})`)});u.current=b;const C=setTimeout(()=>{if(r.current&&f.current){const m=f.current,k=H.translate(g.width/2,g.height/2).scale(.8).translate(-g.width/2,-g.height/2);D(r.current).transition().duration(500).call(m.transform,k)}},1200);return()=>{clearTimeout(C),b.stop()}},[t,g]),z.useEffect(()=>{if(!a.current||!o.current||!_.current)return;if(!e){o.current.classed(E.dimmed,!1).classed(E.selected,!1),_.current.classed(E.dimmedLink,!1);return}const s=new Set([e]);_.current.each(i=>{const l=i.source.id,d=i.target.id;(l===e||d===e)&&(s.add(l),s.add(d))}),o.current.classed(E.selected,i=>i.id===e).classed(E.dimmed,i=>!s.has(i.id)),_.current.classed(E.dimmedLink,i=>{const l=i.source.id,d=i.target.id;return!s.has(l)||!s.has(d)})},[e,t]);const p=z.useCallback(()=>{if(!e||!u.current||!r.current||!f.current)return;const s=u.current.nodes().find(i=>i.id===e);if(s&&Number.isFinite(s.x)&&Number.isFinite(s.y)){const i=f.current,l=H.translate(g.width/2,g.height/2).scale(1.2).translate(-(s.x??0),-(s.y??0));D(r.current).transition().duration(500).call(i.transform,l)}},[e,g]);return z.useEffect(()=>{p()},[p]),w.jsx("div",{className:E.graphContainer,"data-testid":"knowledge-graph",children:w.jsxs("svg",{ref:r,width:g.width,height:g.height,className:E.svg,children:[w.jsx("defs",{children:w.jsxs("filter",{id:"glow",children:[w.jsx("feGaussianBlur",{stdDeviation:"3",result:"coloredBlur"}),w.jsxs("feMerge",{children:[w.jsx("feMergeNode",{in:"coloredBlur"}),w.jsx("feMergeNode",{in:"SourceGraphic"})]})]})}),w.jsx("g",{ref:a})]})})}const Yt="_panel_1ml6r_1",Jt="_header_1ml6r_24",Zt="_title_1ml6r_32",qt="_closeButton_1ml6r_42",te="_body_1ml6r_55",ee="_badge_1ml6r_61",ne="_section_1ml6r_72",re="_sectionLabel_1ml6r_76",ie="_content_1ml6r_84",se="_tags_1ml6r_92",ae="_tag_1ml6r_92",oe="_viewLink_1ml6r_107",ce="_edgeList_1ml6r_121",le="_edgeItem_1ml6r_127",ue="_edgeType_1ml6r_136",fe="_edgeNodeLink_1ml6r_142",he="_timestamps_1ml6r_154",j={panel:Yt,header:Jt,title:Zt,closeButton:qt,body:te,badge:ee,section:ne,sectionLabel:re,content:ie,tags:se,tag:ae,viewLink:oe,edgeList:ce,edgeItem:le,edgeType:ue,edgeNodeLink:fe,timestamps:he};function de({detail:t,onClose:e,onSelectNode:n}){const c=Z(),{node:r,edges:a}=t;function u(){if(!(r.kind!=="reference"||!r.sourceId))switch(r.sourceType){case"task":c(tt(r.sourceId));break;case"session":c(q(r.sourceId));break}}return w.jsxs("div",{className:j.panel,"data-testid":"knowledge-detail-panel",children:[w.jsxs("div",{className:j.header,children:[w.jsx("h3",{className:j.title,children:r.label}),w.jsx("button",{className:j.closeButton,onClick:e,"aria-label":"Close",children:"×"})]}),w.jsxs("div",{className:j.body,children:[w.jsx("div",{className:j.badge,children:r.kind==="reference"?`Reference (${r.sourceType})`:r.category}),r.content&&w.jsxs("div",{className:j.section,children:[w.jsx("div",{className:j.sectionLabel,children:"Content"}),w.jsx("p",{className:j.content,children:r.content})]}),r.tags&&r.tags.length>0&&w.jsxs("div",{className:j.section,children:[w.jsx("div",{className:j.sectionLabel,children:"Tags"}),w.jsx("div",{className:j.tags,children:r.tags.map(f=>w.jsx("span",{className:j.tag,children:f},f))})]}),r.kind==="reference"&&r.sourceId&&w.jsx("div",{className:j.section,children:w.jsx("button",{className:j.viewLink,onClick:u,children:"View in Grackle →"})}),a.length>0&&w.jsxs("div",{className:j.section,children:[w.jsxs("div",{className:j.sectionLabel,children:["Edges (",a.length,")"]}),w.jsx("ul",{className:j.edgeList,children:a.map(f=>{const _=f.fromId===r.id?f.toId:f.fromId,o=`${f.fromId}:${f.toId}:${f.type}`;return w.jsxs("li",{className:j.edgeItem,children:[w.jsx("span",{className:j.edgeType,children:f.type}),w.jsxs("button",{className:j.edgeNodeLink,onClick:()=>{n(_)},children:[_.substring(0,8),"..."]})]},o)})})]}),w.jsxs("div",{className:j.timestamps,children:[r.createdAt&&w.jsxs("div",{children:["Created: ",new Date(r.createdAt).toLocaleDateString()]}),r.updatedAt&&w.jsxs("div",{children:["Updated: ",new Date(r.updatedAt).toLocaleDateString()]})]})]})]})}const ge="_layout_n9vg6_1",xe="_graphArea_n9vg6_8",_e="_empty_n9vg6_15",K={layout:ge,graphArea:xe,empty:_e};function we(){const{knowledge:t}=et(),e=z.useCallback(()=>{t.loadRecent()},[t.loadRecent]);z.useEffect(()=>{e()},[e]);const n=z.useCallback(u=>{t.selectNode(u)},[t]),c=z.useCallback(u=>{t.expandNode(u)},[t]),r=z.useCallback(()=>{t.clearSelection()},[t]),a=[{label:"Knowledge",url:rt}];return w.jsxs("div",{className:K.layout,"data-testid":"knowledge-page",children:[w.jsx(nt,{segments:a}),w.jsxs("div",{className:K.graphArea,children:[t.graphData.nodes.length===0&&!t.loading?w.jsxs("div",{className:K.empty,children:[w.jsx("p",{children:"No knowledge nodes found."}),w.jsx("p",{children:"Create knowledge via MCP tools or let agents discover it during tasks."})]}):w.jsx(Xt,{graphData:t.graphData,selectedNodeId:t.selectedId,onNodeClick:n,onNodeDoubleClick:c}),t.selectedNode&&t.selectedId&&w.jsx(de,{detail:t.selectedNode,onClose:r,onSelectNode:n})]})]})}export{we as KnowledgePage};
1
+ import{a as z,j as w}from"./markdown-gcy1Jmzi.js";import{u as Z,s as q,t as tt,a as et,B as nt,K as rt}from"./index-DIX-D5tY.js";import{t as it,b as st,z as at,s as D,c as H}from"./dagview-BA5TtMAQ.js";import"./grpc-C9KtwZNl.js";function ot(t,e){var n,c=1;t==null&&(t=0),e==null&&(e=0);function r(){var a,u=n.length,f,_=0,o=0;for(a=0;a<u;++a)f=n[a],_+=f.x,o+=f.y;for(_=(_/u-t)*c,o=(o/u-e)*c,a=0;a<u;++a)f=n[a],f.x-=_,f.y-=o}return r.initialize=function(a){n=a},r.x=function(a){return arguments.length?(t=+a,r):t},r.y=function(a){return arguments.length?(e=+a,r):e},r.strength=function(a){return arguments.length?(c=+a,r):c},r}function ct(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return J(this.cover(e,n),e,n,t)}function J(t,e,n,c){if(isNaN(e)||isNaN(n))return t;var r,a=t._root,u={data:c},f=t._x0,_=t._y0,o=t._x1,g=t._y1,y,v,h,p,s,i,l,d;if(!a)return t._root=u,t;for(;a.length;)if((s=e>=(y=(f+o)/2))?f=y:o=y,(i=n>=(v=(_+g)/2))?_=v:g=v,r=a,!(a=a[l=i<<1|s]))return r[l]=u,t;if(h=+t._x.call(null,a.data),p=+t._y.call(null,a.data),e===h&&n===p)return u.next=a,r?r[l]=u:t._root=u,t;do r=r?r[l]=new Array(4):t._root=new Array(4),(s=e>=(y=(f+o)/2))?f=y:o=y,(i=n>=(v=(_+g)/2))?_=v:g=v;while((l=i<<1|s)===(d=(p>=v)<<1|h>=y));return r[d]=a,r[l]=u,t}function lt(t){var e,n,c=t.length,r,a,u=new Array(c),f=new Array(c),_=1/0,o=1/0,g=-1/0,y=-1/0;for(n=0;n<c;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(a=+this._y.call(null,e))||(u[n]=r,f[n]=a,r<_&&(_=r),r>g&&(g=r),a<o&&(o=a),a>y&&(y=a));if(_>g||o>y)return this;for(this.cover(_,o).cover(g,y),n=0;n<c;++n)J(this,u[n],f[n],t[n]);return this}function ut(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,c=this._y0,r=this._x1,a=this._y1;if(isNaN(n))r=(n=Math.floor(t))+1,a=(c=Math.floor(e))+1;else{for(var u=r-n||1,f=this._root,_,o;n>t||t>=r||c>e||e>=a;)switch(o=(e<c)<<1|t<n,_=new Array(4),_[o]=f,f=_,u*=2,o){case 0:r=n+u,a=c+u;break;case 1:n=r-u,a=c+u;break;case 2:r=n+u,c=a-u;break;case 3:n=r-u,c=a-u;break}this._root&&this._root.length&&(this._root=f)}return this._x0=n,this._y0=c,this._x1=r,this._y1=a,this}function ft(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function ht(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function L(t,e,n,c,r){this.node=t,this.x0=e,this.y0=n,this.x1=c,this.y1=r}function dt(t,e,n){var c,r=this._x0,a=this._y0,u,f,_,o,g=this._x1,y=this._y1,v=[],h=this._root,p,s;for(h&&v.push(new L(h,r,a,g,y)),n==null?n=1/0:(r=t-n,a=e-n,g=t+n,y=e+n,n*=n);p=v.pop();)if(!(!(h=p.node)||(u=p.x0)>g||(f=p.y0)>y||(_=p.x1)<r||(o=p.y1)<a))if(h.length){var i=(u+_)/2,l=(f+o)/2;v.push(new L(h[3],i,l,_,o),new L(h[2],u,l,i,o),new L(h[1],i,f,_,l),new L(h[0],u,f,i,l)),(s=(e>=l)<<1|t>=i)&&(p=v[v.length-1],v[v.length-1]=v[v.length-1-s],v[v.length-1-s]=p)}else{var d=t-+this._x.call(null,h.data),N=e-+this._y.call(null,h.data),x=d*d+N*N;if(x<n){var b=Math.sqrt(n=x);r=t-b,a=e-b,g=t+b,y=e+b,c=h.data}}return c}function gt(t){if(isNaN(g=+this._x.call(null,t))||isNaN(y=+this._y.call(null,t)))return this;var e,n=this._root,c,r,a,u=this._x0,f=this._y0,_=this._x1,o=this._y1,g,y,v,h,p,s,i,l;if(!n)return this;if(n.length)for(;;){if((p=g>=(v=(u+_)/2))?u=v:_=v,(s=y>=(h=(f+o)/2))?f=h:o=h,e=n,!(n=n[i=s<<1|p]))return this;if(!n.length)break;(e[i+1&3]||e[i+2&3]||e[i+3&3])&&(c=e,l=i)}for(;n.data!==t;)if(r=n,!(n=n.next))return this;return(a=n.next)&&delete n.next,r?(a?r.next=a:delete r.next,this):e?(a?e[i]=a:delete e[i],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(c?c[l]=n:this._root=n),this):(this._root=a,this)}function xt(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function _t(){return this._root}function mt(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function vt(t){var e=[],n,c=this._root,r,a,u,f,_;for(c&&e.push(new L(c,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(c=n.node,a=n.x0,u=n.y0,f=n.x1,_=n.y1)&&c.length){var o=(a+f)/2,g=(u+_)/2;(r=c[3])&&e.push(new L(r,o,g,f,_)),(r=c[2])&&e.push(new L(r,a,g,o,_)),(r=c[1])&&e.push(new L(r,o,u,f,g)),(r=c[0])&&e.push(new L(r,a,u,o,g))}return this}function pt(t){var e=[],n=[],c;for(this._root&&e.push(new L(this._root,this._x0,this._y0,this._x1,this._y1));c=e.pop();){var r=c.node;if(r.length){var a,u=c.x0,f=c.y0,_=c.x1,o=c.y1,g=(u+_)/2,y=(f+o)/2;(a=r[0])&&e.push(new L(a,u,f,g,y)),(a=r[1])&&e.push(new L(a,g,f,_,y)),(a=r[2])&&e.push(new L(a,u,y,g,o)),(a=r[3])&&e.push(new L(a,g,y,_,o))}n.push(c)}for(;c=n.pop();)t(c.node,c.x0,c.y0,c.x1,c.y1);return this}function yt(t){return t[0]}function wt(t){return arguments.length?(this._x=t,this):this._x}function Nt(t){return t[1]}function bt(t){return arguments.length?(this._y=t,this):this._y}function U(t,e,n){var c=new P(e??yt,n??Nt,NaN,NaN,NaN,NaN);return t==null?c:c.addAll(t)}function P(t,e,n,c,r,a){this._x=t,this._y=e,this._x0=n,this._y0=c,this._x1=r,this._y1=a,this._root=void 0}function W(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var M=U.prototype=P.prototype;M.copy=function(){var t=new P(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,c;if(!e)return t;if(!e.length)return t._root=W(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var r=0;r<4;++r)(c=e.source[r])&&(c.length?n.push({source:c,target:e.target[r]=new Array(4)}):e.target[r]=W(c));return t};M.add=ct;M.addAll=lt;M.cover=ut;M.data=ft;M.extent=ht;M.find=dt;M.remove=gt;M.removeAll=xt;M.root=_t;M.size=mt;M.visit=vt;M.visitAfter=pt;M.x=wt;M.y=bt;function $(t){return function(){return t}}function S(t){return(t()-.5)*1e-6}function kt(t){return t.x+t.vx}function jt(t){return t.y+t.vy}function zt(t){var e,n,c,r=1,a=1;typeof t!="function"&&(t=$(t==null?1:+t));function u(){for(var o,g=e.length,y,v,h,p,s,i,l=0;l<a;++l)for(y=U(e,kt,jt).visitAfter(f),o=0;o<g;++o)v=e[o],s=n[v.index],i=s*s,h=v.x+v.vx,p=v.y+v.vy,y.visit(d);function d(N,x,b,C,m){var k=N.data,I=N.r,A=s+I;if(k){if(k.index>v.index){var B=h-k.x-k.vx,T=p-k.y-k.vy,R=B*B+T*T;R<A*A&&(B===0&&(B=S(c),R+=B*B),T===0&&(T=S(c),R+=T*T),R=(A-(R=Math.sqrt(R)))/R*r,v.vx+=(B*=R)*(A=(I*=I)/(i+I)),v.vy+=(T*=R)*A,k.vx-=B*(A=1-A),k.vy-=T*A)}return}return x>h+A||C<h-A||b>p+A||m<p-A}}function f(o){if(o.data)return o.r=n[o.data.index];for(var g=o.r=0;g<4;++g)o[g]&&o[g].r>o.r&&(o.r=o[g].r)}function _(){if(e){var o,g=e.length,y;for(n=new Array(g),o=0;o<g;++o)y=e[o],n[y.index]=+t(y,o,e)}}return u.initialize=function(o,g){e=o,c=g,_()},u.iterations=function(o){return arguments.length?(a=+o,u):a},u.strength=function(o){return arguments.length?(r=+o,u):r},u.radius=function(o){return arguments.length?(t=typeof o=="function"?o:$(+o),_(),u):t},u}function At(t){return t.index}function Q(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Ct(t){var e=At,n=y,c,r=$(30),a,u,f,_,o,g=1;t==null&&(t=[]);function y(i){return 1/Math.min(f[i.source.index],f[i.target.index])}function v(i){for(var l=0,d=t.length;l<g;++l)for(var N=0,x,b,C,m,k,I,A;N<d;++N)x=t[N],b=x.source,C=x.target,m=C.x+C.vx-b.x-b.vx||S(o),k=C.y+C.vy-b.y-b.vy||S(o),I=Math.sqrt(m*m+k*k),I=(I-a[N])/I*i*c[N],m*=I,k*=I,C.vx-=m*(A=_[N]),C.vy-=k*A,b.vx+=m*(A=1-A),b.vy+=k*A}function h(){if(u){var i,l=u.length,d=t.length,N=new Map(u.map((b,C)=>[e(b,C,u),b])),x;for(i=0,f=new Array(l);i<d;++i)x=t[i],x.index=i,typeof x.source!="object"&&(x.source=Q(N,x.source)),typeof x.target!="object"&&(x.target=Q(N,x.target)),f[x.source.index]=(f[x.source.index]||0)+1,f[x.target.index]=(f[x.target.index]||0)+1;for(i=0,_=new Array(d);i<d;++i)x=t[i],_[i]=f[x.source.index]/(f[x.source.index]+f[x.target.index]);c=new Array(d),p(),a=new Array(d),s()}}function p(){if(u)for(var i=0,l=t.length;i<l;++i)c[i]=+n(t[i],i,t)}function s(){if(u)for(var i=0,l=t.length;i<l;++i)a[i]=+r(t[i],i,t)}return v.initialize=function(i,l){u=i,o=l,h()},v.links=function(i){return arguments.length?(t=i,h(),v):t},v.id=function(i){return arguments.length?(e=i,v):e},v.iterations=function(i){return arguments.length?(g=+i,v):g},v.strength=function(i){return arguments.length?(n=typeof i=="function"?i:$(+i),p(),v):n},v.distance=function(i){return arguments.length?(r=typeof i=="function"?i:$(+i),s(),v):r},v}const Lt=1664525,Mt=1013904223,V=4294967296;function Et(){let t=1;return()=>(t=(Lt*t+Mt)%V)/V}function It(t){return t.x}function Rt(t){return t.y}var Dt=10,Bt=Math.PI*(3-Math.sqrt(5));function Tt(t){var e,n=1,c=.001,r=1-Math.pow(c,1/300),a=0,u=.6,f=new Map,_=it(y),o=st("tick","end"),g=Et();t==null&&(t=[]);function y(){v(),o.call("tick",e),n<c&&(_.stop(),o.call("end",e))}function v(s){var i,l=t.length,d;s===void 0&&(s=1);for(var N=0;N<s;++N)for(n+=(a-n)*r,f.forEach(function(x){x(n)}),i=0;i<l;++i)d=t[i],d.fx==null?d.x+=d.vx*=u:(d.x=d.fx,d.vx=0),d.fy==null?d.y+=d.vy*=u:(d.y=d.fy,d.vy=0);return e}function h(){for(var s=0,i=t.length,l;s<i;++s){if(l=t[s],l.index=s,l.fx!=null&&(l.x=l.fx),l.fy!=null&&(l.y=l.fy),isNaN(l.x)||isNaN(l.y)){var d=Dt*Math.sqrt(.5+s),N=s*Bt;l.x=d*Math.cos(N),l.y=d*Math.sin(N)}(isNaN(l.vx)||isNaN(l.vy))&&(l.vx=l.vy=0)}}function p(s){return s.initialize&&s.initialize(t,g),s}return h(),e={tick:v,restart:function(){return _.restart(y),e},stop:function(){return _.stop(),e},nodes:function(s){return arguments.length?(t=s,h(),f.forEach(p),e):t},alpha:function(s){return arguments.length?(n=+s,e):n},alphaMin:function(s){return arguments.length?(c=+s,e):c},alphaDecay:function(s){return arguments.length?(r=+s,e):+r},alphaTarget:function(s){return arguments.length?(a=+s,e):a},velocityDecay:function(s){return arguments.length?(u=1-s,e):1-u},randomSource:function(s){return arguments.length?(g=s,f.forEach(p),e):g},force:function(s,i){return arguments.length>1?(i==null?f.delete(s):f.set(s,p(i)),e):f.get(s)},find:function(s,i,l){var d=0,N=t.length,x,b,C,m,k;for(l==null?l=1/0:l*=l,d=0;d<N;++d)m=t[d],x=s-m.x,b=i-m.y,C=x*x+b*b,C<l&&(k=m,l=C);return k},on:function(s,i){return arguments.length>1?(o.on(s,i),e):o.on(s)}}}function St(){var t,e,n,c,r=$(-30),a,u=1,f=1/0,_=.81;function o(h){var p,s=t.length,i=U(t,It,Rt).visitAfter(y);for(c=h,p=0;p<s;++p)e=t[p],i.visit(v)}function g(){if(t){var h,p=t.length,s;for(a=new Array(p),h=0;h<p;++h)s=t[h],a[s.index]=+r(s,h,t)}}function y(h){var p=0,s,i,l=0,d,N,x;if(h.length){for(d=N=x=0;x<4;++x)(s=h[x])&&(i=Math.abs(s.value))&&(p+=s.value,l+=i,d+=i*s.x,N+=i*s.y);h.x=d/l,h.y=N/l}else{s=h,s.x=s.data.x,s.y=s.data.y;do p+=a[s.data.index];while(s=s.next)}h.value=p}function v(h,p,s,i){if(!h.value)return!0;var l=h.x-e.x,d=h.y-e.y,N=i-p,x=l*l+d*d;if(N*N/_<x)return x<f&&(l===0&&(l=S(n),x+=l*l),d===0&&(d=S(n),x+=d*d),x<u&&(x=Math.sqrt(u*x)),e.vx+=l*h.value*c/x,e.vy+=d*h.value*c/x),!0;if(h.length||x>=f)return;(h.data!==e||h.next)&&(l===0&&(l=S(n),x+=l*l),d===0&&(d=S(n),x+=d*d),x<u&&(x=Math.sqrt(u*x)));do h.data!==e&&(N=a[h.data.index]*c/x,e.vx+=l*N,e.vy+=d*N);while(h=h.next)}return o.initialize=function(h,p){t=h,n=p,g()},o.strength=function(h){return arguments.length?(r=typeof h=="function"?h:$(+h),g(),o):r},o.distanceMin=function(h){return arguments.length?(u=h*h,o):Math.sqrt(u)},o.distanceMax=function(h){return arguments.length?(f=h*h,o):Math.sqrt(f)},o.theta=function(h){return arguments.length?(_=h*h,o):Math.sqrt(_)},o}const $t="_graphContainer_zxmzw_1",Ot="_svg_zxmzw_10",Gt="_link_zxmzw_18",Ft="_node_zxmzw_30",Kt="_nodeCard_zxmzw_34",Ut="_nodeLabel_zxmzw_40",Pt="_selected_zxmzw_44",Ht="_dimmed_zxmzw_51",Wt="_dimmedLink_zxmzw_56",Qt="_nodeIndicator_zxmzw_68",Vt="_nodeBadge_zxmzw_82",E={graphContainer:$t,svg:Ot,link:Gt,node:Ft,nodeCard:Kt,nodeLabel:Ut,selected:Pt,dimmed:Ht,dimmedLink:Wt,nodeIndicator:Qt,nodeBadge:Vt},F={reference:"#4A9EFF",decision:"#22C55E",insight:"#EAB308",concept:"#A855F7",snippet:"#6B7280"};function X(t){return t.kind==="reference"?F.reference:F[t.category??"insight"]??F.insight}const O=200,G=52,Y=12;function Xt({graphData:t,selectedNodeId:e,onNodeClick:n,onNodeDoubleClick:c}){const r=z.useRef(null),a=z.useRef(null),u=z.useRef(void 0),f=z.useRef(void 0),_=z.useRef(void 0),o=z.useRef(void 0),[g,y]=z.useState({width:800,height:600});z.useEffect(()=>{var l;const s=((l=r.current)==null?void 0:l.parentElement)??null;if(!s)return;const i=new ResizeObserver(d=>{for(const N of d)y({width:N.contentRect.width,height:N.contentRect.height})});return i.observe(s),y({width:s.clientWidth,height:s.clientHeight}),()=>{i.disconnect()}},[]),z.useEffect(()=>{if(!r.current||!a.current)return;const s=r.current,i=a.current,l=at().scaleExtent([.1,4]).filter(d=>d.type!=="dblclick").on("zoom",d=>{D(i).attr("transform",String(d.transform))});return D(s).call(l),f.current=l,()=>{D(s).on(".zoom",null)}},[]);const v=z.useRef(n);v.current=n;const h=z.useRef(c);h.current=c,z.useEffect(()=>{if(!a.current)return;const s=a.current;if(u.current&&(u.current.stop(),u.current=void 0),t.nodes.length===0){D(s).selectAll("*").remove();return}const i=t.nodes.map(m=>({...m})),l=new Map(i.map(m=>[m.id,m])),d=t.links.filter(m=>l.has(m.source)&&l.has(m.target)).map(m=>({source:m.source,target:m.target,type:m.type}));D(s).selectAll("*").remove();const N=D(s).selectAll("line").data(d).enter().append("line").attr("class",E.link);N.append("title").text(m=>m.type),_.current=N;const x=D(s).selectAll("g.kg-node").data(i).enter().append("g").attr("class",`kg-node ${E.node}`).style("cursor","pointer").on("click",(m,k)=>{v.current(k.id)}).on("dblclick",(m,k)=>{h.current(k.id)});o.current=x,x.append("rect").attr("class",E.nodeCard).attr("width",O).attr("height",G).attr("rx",Y).attr("ry",Y).style("--node-color",m=>X(m)),x.append("rect").attr("class",E.nodeIndicator).attr("width",4).attr("height",G).attr("rx",2).attr("fill",m=>X(m)),x.append("text").attr("class",E.nodeLabel).attr("x",O/2).attr("y",G/2-4).attr("text-anchor","middle").attr("dominant-baseline","central").text(m=>m.label.length>26?m.label.substring(0,24)+"...":m.label),x.append("text").attr("class",E.nodeBadge).attr("x",O/2).attr("y",G-8).attr("text-anchor","middle").text(m=>(m.kind==="reference"?m.sourceType??"ref":m.category??"").toUpperCase());const b=Tt(i).force("link",Ct(d).id(m=>m.id).distance(140)).force("charge",St().strength(-400)).force("center",ot(g.width/2,g.height/2)).force("collide",zt(O/2+16)).on("tick",()=>{N.attr("x1",m=>m.source.x??0).attr("y1",m=>m.source.y??0).attr("x2",m=>m.target.x??0).attr("y2",m=>m.target.y??0),x.attr("transform",m=>`translate(${(m.x??0)-O/2},${(m.y??0)-G/2})`)});u.current=b;const C=setTimeout(()=>{if(r.current&&f.current){const m=f.current,k=H.translate(g.width/2,g.height/2).scale(.8).translate(-g.width/2,-g.height/2);D(r.current).transition().duration(500).call(m.transform,k)}},1200);return()=>{clearTimeout(C),b.stop()}},[t,g]),z.useEffect(()=>{if(!a.current||!o.current||!_.current)return;if(!e){o.current.classed(E.dimmed,!1).classed(E.selected,!1),_.current.classed(E.dimmedLink,!1);return}const s=new Set([e]);_.current.each(i=>{const l=i.source.id,d=i.target.id;(l===e||d===e)&&(s.add(l),s.add(d))}),o.current.classed(E.selected,i=>i.id===e).classed(E.dimmed,i=>!s.has(i.id)),_.current.classed(E.dimmedLink,i=>{const l=i.source.id,d=i.target.id;return!s.has(l)||!s.has(d)})},[e,t]);const p=z.useCallback(()=>{if(!e||!u.current||!r.current||!f.current)return;const s=u.current.nodes().find(i=>i.id===e);if(s&&Number.isFinite(s.x)&&Number.isFinite(s.y)){const i=f.current,l=H.translate(g.width/2,g.height/2).scale(1.2).translate(-(s.x??0),-(s.y??0));D(r.current).transition().duration(500).call(i.transform,l)}},[e,g]);return z.useEffect(()=>{p()},[p]),w.jsx("div",{className:E.graphContainer,"data-testid":"knowledge-graph",children:w.jsxs("svg",{ref:r,width:g.width,height:g.height,className:E.svg,children:[w.jsx("defs",{children:w.jsxs("filter",{id:"glow",children:[w.jsx("feGaussianBlur",{stdDeviation:"3",result:"coloredBlur"}),w.jsxs("feMerge",{children:[w.jsx("feMergeNode",{in:"coloredBlur"}),w.jsx("feMergeNode",{in:"SourceGraphic"})]})]})}),w.jsx("g",{ref:a})]})})}const Yt="_panel_1ml6r_1",Jt="_header_1ml6r_24",Zt="_title_1ml6r_32",qt="_closeButton_1ml6r_42",te="_body_1ml6r_55",ee="_badge_1ml6r_61",ne="_section_1ml6r_72",re="_sectionLabel_1ml6r_76",ie="_content_1ml6r_84",se="_tags_1ml6r_92",ae="_tag_1ml6r_92",oe="_viewLink_1ml6r_107",ce="_edgeList_1ml6r_121",le="_edgeItem_1ml6r_127",ue="_edgeType_1ml6r_136",fe="_edgeNodeLink_1ml6r_142",he="_timestamps_1ml6r_154",j={panel:Yt,header:Jt,title:Zt,closeButton:qt,body:te,badge:ee,section:ne,sectionLabel:re,content:ie,tags:se,tag:ae,viewLink:oe,edgeList:ce,edgeItem:le,edgeType:ue,edgeNodeLink:fe,timestamps:he};function de({detail:t,onClose:e,onSelectNode:n}){const c=Z(),{node:r,edges:a}=t;function u(){if(!(r.kind!=="reference"||!r.sourceId))switch(r.sourceType){case"task":c(tt(r.sourceId));break;case"session":c(q(r.sourceId));break}}return w.jsxs("div",{className:j.panel,"data-testid":"knowledge-detail-panel",children:[w.jsxs("div",{className:j.header,children:[w.jsx("h3",{className:j.title,children:r.label}),w.jsx("button",{className:j.closeButton,onClick:e,"aria-label":"Close",children:"×"})]}),w.jsxs("div",{className:j.body,children:[w.jsx("div",{className:j.badge,children:r.kind==="reference"?`Reference (${r.sourceType})`:r.category}),r.content&&w.jsxs("div",{className:j.section,children:[w.jsx("div",{className:j.sectionLabel,children:"Content"}),w.jsx("p",{className:j.content,children:r.content})]}),r.tags&&r.tags.length>0&&w.jsxs("div",{className:j.section,children:[w.jsx("div",{className:j.sectionLabel,children:"Tags"}),w.jsx("div",{className:j.tags,children:r.tags.map(f=>w.jsx("span",{className:j.tag,children:f},f))})]}),r.kind==="reference"&&r.sourceId&&w.jsx("div",{className:j.section,children:w.jsx("button",{className:j.viewLink,onClick:u,children:"View in Grackle →"})}),a.length>0&&w.jsxs("div",{className:j.section,children:[w.jsxs("div",{className:j.sectionLabel,children:["Edges (",a.length,")"]}),w.jsx("ul",{className:j.edgeList,children:a.map(f=>{const _=f.fromId===r.id?f.toId:f.fromId,o=`${f.fromId}:${f.toId}:${f.type}`;return w.jsxs("li",{className:j.edgeItem,children:[w.jsx("span",{className:j.edgeType,children:f.type}),w.jsxs("button",{className:j.edgeNodeLink,onClick:()=>{n(_)},children:[_.substring(0,8),"..."]})]},o)})})]}),w.jsxs("div",{className:j.timestamps,children:[r.createdAt&&w.jsxs("div",{children:["Created: ",new Date(r.createdAt).toLocaleDateString()]}),r.updatedAt&&w.jsxs("div",{children:["Updated: ",new Date(r.updatedAt).toLocaleDateString()]})]})]})]})}const ge="_layout_n9vg6_1",xe="_graphArea_n9vg6_8",_e="_empty_n9vg6_15",K={layout:ge,graphArea:xe,empty:_e};function we(){const{knowledge:t}=et(),e=z.useCallback(()=>{t.loadRecent()},[t.loadRecent]);z.useEffect(()=>{e()},[e]);const n=z.useCallback(u=>{t.selectNode(u)},[t]),c=z.useCallback(u=>{t.expandNode(u)},[t]),r=z.useCallback(()=>{t.clearSelection()},[t]),a=[{label:"Knowledge",url:rt}];return w.jsxs("div",{className:K.layout,"data-testid":"knowledge-page",children:[w.jsx(nt,{segments:a}),w.jsxs("div",{className:K.graphArea,children:[t.graphData.nodes.length===0&&!t.loading?w.jsxs("div",{className:K.empty,children:[w.jsx("p",{children:"No knowledge nodes found."}),w.jsx("p",{children:"Create knowledge via MCP tools or let agents discover it during tasks."})]}):w.jsx(Xt,{graphData:t.graphData,selectedNodeId:t.selectedId,onNodeClick:n,onNodeDoubleClick:c}),t.selectedNode&&t.selectedId&&w.jsx(de,{detail:t.selectedNode,onClose:r,onSelectNode:n})]})]})}export{we as KnowledgePage};
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/KnowledgePage-CnQzcaLQ.js","assets/markdown-gcy1Jmzi.js","assets/dagview-BA5TtMAQ.js","assets/grpc-C9KtwZNl.js","assets/KnowledgePage-DMqJ4jlP.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/KnowledgePage-BbAhLsAs.js","assets/markdown-gcy1Jmzi.js","assets/dagview-BA5TtMAQ.js","assets/grpc-C9KtwZNl.js","assets/KnowledgePage-DMqJ4jlP.css"])))=>i.map(i=>d[i]);
2
2
  import{r as h1,a as b,j as r,v as m1,b as p1,t as Ar,i as v1,f as g1,M as Rf,c as Mf}from"./markdown-gcy1Jmzi.js";import{r as y1,d as jg,H as Ng,P as wg,i as b1,B as x1,a as _1,C as S1,M as T1}from"./dagview-BA5TtMAQ.js";import{c as k1,a as C1,G as j1,e as N1,w as w1,t as E1,p as Dr,b as A1,C as Of,f as D1,M as R1,R as Oo,S as Eg}from"./grpc-C9KtwZNl.js";(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))l(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const f of d.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&l(f)}).observe(document,{childList:!0,subtree:!0});function i(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerPolicy&&(d.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?d.credentials="include":c.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function l(c){if(c.ep)return;c.ep=!0;const d=i(c);fetch(c.href,d)}})();var Rd={exports:{}},Bo={},Md={exports:{}},Od={};/**
3
3
  * @license React
4
4
  * scheduler.production.js
@@ -109,4 +109,4 @@ const grackle = await host.mcpServer({
109
109
  url: env.vars.GRACKLE_MCP_URL,
110
110
  });
111
111
 
112
- $\`Summarize the current tasks.\`;`,rows:20,className:qe.scriptEditor,required:!0,"data-testid":"persona-script-editor"})]})]}),r.jsxs("div",{className:qe.formActions,children:[r.jsx("button",{type:"submit",className:qe.btnPrimary,children:f?"Save":"Create"}),r.jsx("button",{type:"button",onClick:se,className:qe.btnSecondary,children:"Cancel"})]})]});return r.jsxs("div",{className:qe.container,children:[r.jsxs("div",{className:qe.header,children:[r.jsx("h2",{children:"Personas"}),r.jsx("button",{onClick:re,className:qe.btnPrimary,children:"+ New Persona"})]}),(p||f)&&oe(),n.length===0&&!p?r.jsx("p",{className:qe.empty,children:"No personas yet. Create one to get started."}):r.jsx("div",{className:qe.list,children:n.map(Y=>{const be=a===Y.id,Ne=Y.type==="script";return r.jsxs("div",{className:`${qe.card} ${(f==null?void 0:f.id)===Y.id?qe.active:""}`,"data-testid":`persona-card-${Y.id}`,children:[r.jsxs("div",{className:qe.cardHeader,children:[r.jsxs("span",{className:qe.cardTitle,children:[r.jsx("strong",{children:Y.name}),r.jsx("span",{className:qe.typeBadge,"data-testid":`persona-type-badge-${Y.id}`,children:Ne?"Script":"Agent"}),be&&r.jsx("span",{className:qe.defaultBadge,"data-testid":`persona-default-badge-${Y.id}`,children:"App Default"})]}),r.jsxs("div",{className:qe.cardActions,children:[!be&&r.jsx("button",{onClick:()=>d(Y.id),className:qe.btnSmall,"data-testid":`persona-set-default-${Y.id}`,title:"Set as app default persona",children:"Set Default"}),r.jsx("button",{onClick:()=>K(Y),className:qe.btnSmall,children:"Edit"}),g===Y.id?r.jsxs(r.Fragment,{children:[r.jsx("button",{onClick:()=>P(Y.id),className:qe.btnDanger,children:"Confirm"}),r.jsx("button",{onClick:()=>y(null),className:qe.btnSmall,children:"Cancel"})]}):r.jsx("button",{onClick:()=>y(Y.id),className:qe.btnSmall,children:"Delete"})]})]}),Y.description&&r.jsx("p",{className:qe.description,children:Y.description}),r.jsxs("div",{className:qe.meta,children:[Y.runtime&&r.jsxs("span",{children:["Runtime: ",Y.runtime]}),Y.model&&r.jsxs("span",{children:["Model: ",Y.model]}),Y.maxTurns>0&&r.jsxs("span",{children:["Max turns: ",Y.maxTurns]})]}),Ne?r.jsxs("details",{className:qe.promptDetails,children:[r.jsx("summary",{children:"Script"}),r.jsx("pre",{className:qe.promptText,children:Y.script})]}):r.jsxs("details",{className:qe.promptDetails,children:[r.jsx("summary",{children:"System Prompt"}),r.jsx("pre",{className:qe.promptText,children:Y.systemPrompt})]})]},Y.id)})})]})}function lL(){const{personas:n,createPersona:a,updatePersona:i,deletePersona:l,appDefaultPersonaId:c,setAppDefaultPersonaId:d}=rt();return r.jsx(oL,{personas:n,appDefaultPersonaId:c,onCreatePersona:a,onUpdatePersona:i,onDeletePersona:l,onSetAppDefaultPersonaId:d})}function rL(){const{themeId:n,resolvedThemeId:a,setTheme:i,preferSystem:l,setPreferSystem:c}=sb();return r.jsxs("section",{className:de.section,children:[r.jsx("h3",{className:de.sectionTitle,children:"Appearance"}),r.jsx("p",{className:de.sectionDescription,children:"Choose how Grackle looks across the app."}),r.jsx("div",{className:de.themeOptions,children:dc.filter(d=>!d.hidden).map(d=>{const f=!!(d.variantLightId&&d.variantDarkId),m=f?n===d.id||n===d.variantLightId||n===d.variantDarkId:n===d.id,p=f&&a===d.variantLightId;return r.jsxs("button",{type:"button",className:`${de.themeOption} ${m?de.themeOptionSelected:""}`,"aria-pressed":m,onClick:()=>i(d.id),children:[r.jsxs("span",{className:de.themeOptionHeader,children:[r.jsxs("span",{children:[r.jsx("span",{className:de.themeOptionLabel,children:d.label}),r.jsx("span",{className:de.themeOptionDesc,children:d.description})]}),f&&r.jsxs("span",{className:de.variantToggle,children:[r.jsx("span",{role:"button",tabIndex:0,className:`${de.variantButton} ${m&&p?de.variantActive:""}`,onClick:v=>{v.stopPropagation(),c(!1),i(d.variantLightId)},onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),v.stopPropagation(),c(!1),i(d.variantLightId))},"aria-label":"Light variant","aria-pressed":m&&p,children:"☼"}),r.jsx("span",{role:"button",tabIndex:0,className:`${de.variantButton} ${m&&!p?de.variantActive:""}`,onClick:v=>{v.stopPropagation(),c(!1),i(d.variantDarkId)},onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),v.stopPropagation(),c(!1),i(d.variantDarkId))},"aria-label":"Dark variant","aria-pressed":m&&!p,children:"☾"})]})]}),d.swatches&&r.jsx("span",{className:de.themeSwatches,children:d.swatches.map((v,g)=>r.jsx("span",{className:de.themeSwatch,style:{background:v}},g))})]},d.id)})}),r.jsxs("label",{className:de.systemToggle,children:[r.jsx("input",{type:"checkbox",checked:l,onChange:d=>c(d.target.checked)}),r.jsx("span",{children:"Match system light/dark preference"})]}),r.jsx("p",{className:de.systemToggleHint,children:"Automatically switches between light and dark variants when available."}),r.jsxs("p",{className:de.themeActive,children:["Active theme: ",r.jsx("strong",{children:a})]})]})}function cL(){return r.jsx(rL,{})}function uL({connected:n,environments:a,sessions:i}){const l=a.filter(f=>f.status==="connected").length,c=a.length,d=i.filter(f=>["running","idle"].includes(f.status)).length;return r.jsxs("section",{className:de.section,"data-testid":"about-panel",children:[r.jsx("h3",{className:de.sectionTitle,children:"About"}),r.jsx("p",{className:de.sectionDescription,children:"Connection status and application information."}),r.jsxs("div",{className:de.aboutGrid,children:[r.jsxs("div",{className:de.aboutItem,children:[r.jsx("span",{className:de.aboutLabel,children:"Connection"}),r.jsxs("span",{className:de.aboutValue,children:[r.jsx("span",{className:`${de.aboutDot} ${n?de.aboutDotConnected:de.aboutDotDisconnected}`}),n?"Connected":"Disconnected"]})]}),r.jsxs("div",{className:de.aboutItem,children:[r.jsx("span",{className:de.aboutLabel,children:"Environments"}),r.jsxs("span",{className:de.aboutValue,children:[l,"/",c," connected"]})]}),r.jsxs("div",{className:de.aboutItem,children:[r.jsx("span",{className:de.aboutLabel,children:"Active Sessions"}),r.jsx("span",{className:de.aboutValue,children:d})]}),r.jsxs("div",{className:de.aboutItem,children:[r.jsx("span",{className:de.aboutLabel,children:"Version"}),r.jsx("span",{className:de.aboutValue,children:"0.75.7"})]})]})]})}function dL(){const{connected:n,environments:a,sessions:i}=rt();return r.jsx(uL,{connected:n,environments:a,sessions:i})}const fL="_wizard_1260s_1",hL="_container_1260s_10",mL="_stepContent_1260s_19",pL="_logoArea_1260s_28",vL="_logoImage_1260s_32",gL="_heading_1260s_41",yL="_tagline_1260s_49",bL="_subtitle_1260s_56",xL="_featureList_1260s_64",_L="_runtimeGrid_1260s_89",SL="_runtimeCard_1260s_101",TL="_runtimeName_1260s_133",kL="_runtimeDescription_1260s_139",CL="_buttonRow_1260s_144",jL="_primaryButton_1260s_151",NL="_ghostButton_1260s_185",wL="_dots_1260s_213",EL="_dot_1260s_213",nt={wizard:fL,container:hL,stepContent:mL,logoArea:pL,logoImage:vL,heading:gL,tagline:yL,subtitle:bL,featureList:xL,runtimeGrid:_L,runtimeCard:SL,runtimeName:TL,runtimeDescription:kL,buttonRow:CL,primaryButton:jL,ghostButton:NL,dots:wL,dot:EL};function AL({onNext:n}){return r.jsxs("div",{className:nt.stepContent,"data-testid":"setup-welcome",children:[r.jsx("div",{className:nt.logoArea,children:r.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:nt.logoImage})}),r.jsx("h1",{className:nt.heading,children:"Welcome to Grackle"}),r.jsx("p",{className:nt.tagline,children:"Multi-agent orchestration for software teams"}),r.jsx("button",{type:"button",className:nt.primaryButton,onClick:n,"data-testid":"setup-get-started",children:"Get Started"})]})}function DL({onNext:n,onBack:a}){return r.jsxs("div",{className:nt.stepContent,"data-testid":"setup-about",children:[r.jsx("h2",{className:nt.heading,children:"What is Grackle?"}),r.jsxs("ul",{className:nt.featureList,children:[r.jsx("li",{children:"Run Claude, Copilot, and Codex agents side by side"}),r.jsx("li",{children:"Provision and control dev environments — SSH, Codespaces, or local"}),r.jsx("li",{children:"Organize work into workspaces with agent-executable tasks"}),r.jsx("li",{children:"Customize agent behavior with personas, tools, and MCP servers"}),r.jsx("li",{children:"Live-stream agent sessions with full terminal replay"})]}),r.jsxs("div",{className:nt.buttonRow,children:[r.jsx("button",{type:"button",className:nt.ghostButton,onClick:a,children:"Back"}),r.jsx("button",{type:"button",className:nt.primaryButton,onClick:n,"data-testid":"setup-about-next",children:"Next"})]})]})}const RL=[{id:"claude-code",name:"Claude Code",description:"Anthropic's agentic coding tool"},{id:"copilot",name:"Copilot Coding Agent",description:"GitHub's AI pair programmer"},{id:"codex",name:"Codex CLI",description:"OpenAI's coding agent"},{id:"goose",name:"Goose",description:"Block's open-source AI coding agent"}];function ML({currentRuntime:n,onFinish:a,onBack:i,finishDisabled:l}){const[c,d]=b.useState(n||"claude-code");return b.useEffect(()=>{n&&d(n)},[n]),r.jsxs("div",{className:nt.stepContent,"data-testid":"setup-runtime",children:[r.jsx("h2",{className:nt.heading,children:"Choose Your Runtime"}),r.jsx("p",{className:nt.subtitle,children:"Select the primary agent runtime for your workspace. You can change this later."}),r.jsx("div",{className:nt.runtimeGrid,children:RL.map(f=>r.jsxs("button",{type:"button",className:nt.runtimeCard,"data-selected":c===f.id,"aria-pressed":c===f.id,"data-testid":`runtime-card-${f.id}`,onClick:()=>d(f.id),children:[r.jsx("span",{className:nt.runtimeName,children:f.name}),r.jsx("span",{className:nt.runtimeDescription,children:f.description})]},f.id))}),r.jsxs("div",{className:nt.buttonRow,children:[r.jsx("button",{type:"button",className:nt.ghostButton,onClick:i,children:"Back"}),r.jsx("button",{type:"button",className:nt.primaryButton,onClick:()=>a(c),disabled:l,"data-testid":"setup-finish",children:"Finish"})]})]})}const OL=3,j0={"claude-code":"sonnet",copilot:"gpt-4o",codex:"o3",goose:""};function BL(){const{personas:n,updatePersona:a,completeOnboarding:i,onboardingCompleted:l}=rt(),c=Rt(),[d,f]=b.useState(0),m=n.find(v=>v.id==="claude-code"),p=b.useCallback(v=>{if(m&&v!==m.runtime){const y=j0[v]??"sonnet";a(m.id,void 0,void 0,void 0,v,y)}const g=n.find(y=>y.id===Eg);if(g&&v!==g.runtime){const y=j0[v]??"sonnet";a(Eg,void 0,void 0,void 0,v,y)}i(),c("/",{replace:!0})},[m,n,a,i,c]);return l===!0?r.jsx(Pn,{to:"/",replace:!0}):r.jsx("div",{className:nt.wizard,"data-testid":"setup-wizard",children:r.jsxs("div",{className:nt.container,children:[r.jsx(Kn,{mode:"wait",children:r.jsxs(Tt.div,{initial:{opacity:0,x:40},animate:{opacity:1,x:0},exit:{opacity:0,x:-40},transition:{duration:.2,ease:"easeInOut"},children:[d===0&&r.jsx(AL,{onNext:()=>f(1)}),d===1&&r.jsx(DL,{onNext:()=>f(2),onBack:()=>f(0)}),d===2&&r.jsx(ML,{currentRuntime:(m==null?void 0:m.runtime)??"claude-code",onFinish:p,onBack:()=>f(1),finishDisabled:!m})]},d)}),r.jsx("div",{className:nt.dots,children:Array.from({length:OL},(v,g)=>r.jsx("span",{className:nt.dot,"data-active":g===d},g))})]})})}const LL="_root_zndgp_1",IL="_body_zndgp_7",zL="_main_zndgp_19",UL="_sidebarWrapper_zndgp_26",VL="_overlay_zndgp_51",qo={root:LL,body:IL,main:zL,sidebarWrapper:UL,overlay:VL},HL=b.lazy(()=>V1(()=>import("./KnowledgePage-CnQzcaLQ.js"),__vite__mapDeps([0,1,2,3,4])).then(n=>({default:n.KnowledgePage}))),GL=typeof window<"u"&&new URLSearchParams(window.location.search).has("mock");function PL(){const{connected:n,environments:a,sessions:i,tasks:l}=rt(),c=wt(),f=lb()!==void 0,[m,p]=b.useState(!1),v=b.useCallback(()=>p(g=>!g),[]);return b.useEffect(()=>{p(!1)},[c.pathname]),b.useEffect(()=>{if(!m)return;const g=y=>{y.key==="Escape"&&p(!1)};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[m]),r.jsxs(r.Fragment,{children:[r.jsx(EC,{connected:n,environments:a,sessions:i,onToggleSidebar:f?v:void 0,sidebarOpen:m}),r.jsx(LC,{}),r.jsxs("div",{className:qo.body,children:[f&&r.jsx("div",{className:qo.sidebarWrapper,"data-sidebar-open":m,children:r.jsx($C,{})}),f&&m&&r.jsx("div",{className:qo.overlay,"data-testid":"drawer-overlay",onClick:()=>p(!1)}),r.jsxs("div",{className:qo.main,children:[r.jsx(ws,{}),r.jsx(VA,{sessions:i,tasks:l,environments:a})]})]}),r.jsx(JA,{})]})}function $L(){const{lastSpawnedId:n,environments:a,connected:i,onboardingCompleted:l}=rt(),{showToast:c}=Es();pR(a,c);const d=Rt(),f=wt();return b.useEffect(()=>{n&&!f.pathname.includes("/tasks/")&&d(F0(n),{replace:!0})},[n,d,f.pathname]),i&&l===!1?r.jsx(Pn,{to:"/setup",replace:!0}):r.jsx(IC,{children:r.jsx("div",{className:qo.root,children:r.jsx(PL,{})})})}function of(){const{workspaceId:n}=Qa(),{workspaces:a}=rt(),i=wt(),l=a.find(p=>p.id===n);if(!(l!=null&&l.environmentId))return a.length===0?void 0:r.jsx(Pn,{to:"/environments",replace:!0});const c=encodeURIComponent(n),d=`/workspaces/${c}`,f=i.pathname.startsWith(d)?i.pathname.slice(d.length):"",m=`/environments/${encodeURIComponent(l.environmentId)}/workspaces/${c}${f}${i.search}${i.hash}`;return r.jsx(Pn,{to:m,replace:!0})}function qL(){return r.jsxs(qT,{children:[r.jsx(ke,{path:"setup",element:r.jsx(BL,{})}),r.jsxs(ke,{element:r.jsx($L,{}),children:[r.jsx(ke,{index:!0,element:r.jsx(G3,{})}),r.jsx(ke,{path:"chat",element:r.jsx(g6,{})}),r.jsx(ke,{path:"sessions/new",element:r.jsx(C6,{})}),r.jsx(ke,{path:"sessions/:sessionId",element:r.jsx(w6,{})}),r.jsx(ke,{element:r.jsx(RA,{}),children:r.jsx(ke,{path:"knowledge",element:r.jsx(b.Suspense,{fallback:r.jsx(Yx,{}),children:r.jsx(HL,{})})})}),r.jsxs(ke,{element:r.jsx(EA,{}),children:[r.jsx(ke,{path:"tasks",element:r.jsx(V3,{})}),r.jsx(ke,{path:"tasks/new",element:r.jsx(S0,{})}),r.jsx(ke,{path:"tasks/:taskId",element:r.jsx(_i,{})}),r.jsx(ke,{path:"tasks/:taskId/stream",element:r.jsx(_i,{})}),r.jsx(ke,{path:"tasks/:taskId/findings",element:r.jsx(_i,{})}),r.jsx(ke,{path:"tasks/:taskId/edit",element:r.jsx(T0,{})})]}),r.jsxs(ke,{element:r.jsx(AA,{}),children:[r.jsx(ke,{path:"workspaces",element:r.jsx(Pn,{to:"/environments",replace:!0})}),r.jsx(ke,{path:"workspaces/new",element:r.jsx(E4,{})}),r.jsx(ke,{path:"workspaces/:workspaceId",element:r.jsx(of,{})}),r.jsx(ke,{path:"workspaces/:workspaceId/tasks/:taskId",element:r.jsx(of,{})}),r.jsx(ke,{path:"workspaces/:workspaceId/tasks/:taskId/*",element:r.jsx(of,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId",element:r.jsx(KO,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/new",element:r.jsx(S0,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId",element:r.jsx(_i,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream",element:r.jsx(_i,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings",element:r.jsx(_i,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit",element:r.jsx(T0,{})}),r.jsxs(ke,{path:"environments",element:r.jsx(gB,{}),children:[r.jsx(ke,{index:!0,element:r.jsx(H3,{})}),r.jsx(ke,{path:"new",element:r.jsx(fB,{})}),r.jsx(ke,{path:":environmentId",element:r.jsx(qB,{})}),r.jsx(ke,{path:":environmentId/edit",element:r.jsx(hB,{})})]})]}),r.jsx(ke,{element:r.jsx(DA,{}),children:r.jsxs(ke,{path:"settings",element:r.jsx(FB,{}),children:[r.jsx(ke,{index:!0,element:r.jsx(Pn,{to:"credentials",replace:!0})}),r.jsx(ke,{path:"environments",element:r.jsx(Pn,{to:"/environments",replace:!0})}),r.jsx(ke,{path:"credentials",element:r.jsx(B5,{})}),r.jsx(ke,{path:"tokens",element:r.jsx(Pn,{to:"../credentials",replace:!0})}),r.jsx(ke,{path:"personas",element:r.jsx(lL,{})}),r.jsx(ke,{path:"appearance",element:r.jsx(cL,{})}),r.jsx(ke,{path:"about",element:r.jsx(dL,{})})]})}),r.jsx(ke,{path:"*",element:r.jsx(Pn,{to:"/",replace:!0})})]})]})}const YL=1e4;function KL(){const{onboardingCompleted:n}=rt(),[a,i]=b.useState(!1);b.useEffect(()=>{if(n!==void 0)return;const c=setTimeout(()=>i(!0),YL);return()=>clearTimeout(c)},[n]);const l=n===void 0&&!a;return r.jsx(Kn,{mode:"wait",children:l?r.jsx(Tt.div,{initial:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:r.jsx(Yx,{})},"splash"):r.jsx(Tt.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.25},style:{minHeight:"100vh"},children:r.jsx(vk,{children:r.jsx(qL,{})})},"app")})}function FL(){const n=GL?hC:sC;return r.jsx(bC,{children:r.jsx(pC,{children:r.jsx(n,{children:r.jsx(KL,{})})})})}I1.createRoot(document.getElementById("root")).render(r.jsx(b.StrictMode,{children:r.jsx(FL,{})}));export{Ds as B,Q0 as K,rt as a,F0 as s,ya as t,Rt as u};
112
+ $\`Summarize the current tasks.\`;`,rows:20,className:qe.scriptEditor,required:!0,"data-testid":"persona-script-editor"})]})]}),r.jsxs("div",{className:qe.formActions,children:[r.jsx("button",{type:"submit",className:qe.btnPrimary,children:f?"Save":"Create"}),r.jsx("button",{type:"button",onClick:se,className:qe.btnSecondary,children:"Cancel"})]})]});return r.jsxs("div",{className:qe.container,children:[r.jsxs("div",{className:qe.header,children:[r.jsx("h2",{children:"Personas"}),r.jsx("button",{onClick:re,className:qe.btnPrimary,children:"+ New Persona"})]}),(p||f)&&oe(),n.length===0&&!p?r.jsx("p",{className:qe.empty,children:"No personas yet. Create one to get started."}):r.jsx("div",{className:qe.list,children:n.map(Y=>{const be=a===Y.id,Ne=Y.type==="script";return r.jsxs("div",{className:`${qe.card} ${(f==null?void 0:f.id)===Y.id?qe.active:""}`,"data-testid":`persona-card-${Y.id}`,children:[r.jsxs("div",{className:qe.cardHeader,children:[r.jsxs("span",{className:qe.cardTitle,children:[r.jsx("strong",{children:Y.name}),r.jsx("span",{className:qe.typeBadge,"data-testid":`persona-type-badge-${Y.id}`,children:Ne?"Script":"Agent"}),be&&r.jsx("span",{className:qe.defaultBadge,"data-testid":`persona-default-badge-${Y.id}`,children:"App Default"})]}),r.jsxs("div",{className:qe.cardActions,children:[!be&&r.jsx("button",{onClick:()=>d(Y.id),className:qe.btnSmall,"data-testid":`persona-set-default-${Y.id}`,title:"Set as app default persona",children:"Set Default"}),r.jsx("button",{onClick:()=>K(Y),className:qe.btnSmall,children:"Edit"}),g===Y.id?r.jsxs(r.Fragment,{children:[r.jsx("button",{onClick:()=>P(Y.id),className:qe.btnDanger,children:"Confirm"}),r.jsx("button",{onClick:()=>y(null),className:qe.btnSmall,children:"Cancel"})]}):r.jsx("button",{onClick:()=>y(Y.id),className:qe.btnSmall,children:"Delete"})]})]}),Y.description&&r.jsx("p",{className:qe.description,children:Y.description}),r.jsxs("div",{className:qe.meta,children:[Y.runtime&&r.jsxs("span",{children:["Runtime: ",Y.runtime]}),Y.model&&r.jsxs("span",{children:["Model: ",Y.model]}),Y.maxTurns>0&&r.jsxs("span",{children:["Max turns: ",Y.maxTurns]})]}),Ne?r.jsxs("details",{className:qe.promptDetails,children:[r.jsx("summary",{children:"Script"}),r.jsx("pre",{className:qe.promptText,children:Y.script})]}):r.jsxs("details",{className:qe.promptDetails,children:[r.jsx("summary",{children:"System Prompt"}),r.jsx("pre",{className:qe.promptText,children:Y.systemPrompt})]})]},Y.id)})})]})}function lL(){const{personas:n,createPersona:a,updatePersona:i,deletePersona:l,appDefaultPersonaId:c,setAppDefaultPersonaId:d}=rt();return r.jsx(oL,{personas:n,appDefaultPersonaId:c,onCreatePersona:a,onUpdatePersona:i,onDeletePersona:l,onSetAppDefaultPersonaId:d})}function rL(){const{themeId:n,resolvedThemeId:a,setTheme:i,preferSystem:l,setPreferSystem:c}=sb();return r.jsxs("section",{className:de.section,children:[r.jsx("h3",{className:de.sectionTitle,children:"Appearance"}),r.jsx("p",{className:de.sectionDescription,children:"Choose how Grackle looks across the app."}),r.jsx("div",{className:de.themeOptions,children:dc.filter(d=>!d.hidden).map(d=>{const f=!!(d.variantLightId&&d.variantDarkId),m=f?n===d.id||n===d.variantLightId||n===d.variantDarkId:n===d.id,p=f&&a===d.variantLightId;return r.jsxs("button",{type:"button",className:`${de.themeOption} ${m?de.themeOptionSelected:""}`,"aria-pressed":m,onClick:()=>i(d.id),children:[r.jsxs("span",{className:de.themeOptionHeader,children:[r.jsxs("span",{children:[r.jsx("span",{className:de.themeOptionLabel,children:d.label}),r.jsx("span",{className:de.themeOptionDesc,children:d.description})]}),f&&r.jsxs("span",{className:de.variantToggle,children:[r.jsx("span",{role:"button",tabIndex:0,className:`${de.variantButton} ${m&&p?de.variantActive:""}`,onClick:v=>{v.stopPropagation(),c(!1),i(d.variantLightId)},onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),v.stopPropagation(),c(!1),i(d.variantLightId))},"aria-label":"Light variant","aria-pressed":m&&p,children:"☼"}),r.jsx("span",{role:"button",tabIndex:0,className:`${de.variantButton} ${m&&!p?de.variantActive:""}`,onClick:v=>{v.stopPropagation(),c(!1),i(d.variantDarkId)},onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),v.stopPropagation(),c(!1),i(d.variantDarkId))},"aria-label":"Dark variant","aria-pressed":m&&!p,children:"☾"})]})]}),d.swatches&&r.jsx("span",{className:de.themeSwatches,children:d.swatches.map((v,g)=>r.jsx("span",{className:de.themeSwatch,style:{background:v}},g))})]},d.id)})}),r.jsxs("label",{className:de.systemToggle,children:[r.jsx("input",{type:"checkbox",checked:l,onChange:d=>c(d.target.checked)}),r.jsx("span",{children:"Match system light/dark preference"})]}),r.jsx("p",{className:de.systemToggleHint,children:"Automatically switches between light and dark variants when available."}),r.jsxs("p",{className:de.themeActive,children:["Active theme: ",r.jsx("strong",{children:a})]})]})}function cL(){return r.jsx(rL,{})}function uL({connected:n,environments:a,sessions:i}){const l=a.filter(f=>f.status==="connected").length,c=a.length,d=i.filter(f=>["running","idle"].includes(f.status)).length;return r.jsxs("section",{className:de.section,"data-testid":"about-panel",children:[r.jsx("h3",{className:de.sectionTitle,children:"About"}),r.jsx("p",{className:de.sectionDescription,children:"Connection status and application information."}),r.jsxs("div",{className:de.aboutGrid,children:[r.jsxs("div",{className:de.aboutItem,children:[r.jsx("span",{className:de.aboutLabel,children:"Connection"}),r.jsxs("span",{className:de.aboutValue,children:[r.jsx("span",{className:`${de.aboutDot} ${n?de.aboutDotConnected:de.aboutDotDisconnected}`}),n?"Connected":"Disconnected"]})]}),r.jsxs("div",{className:de.aboutItem,children:[r.jsx("span",{className:de.aboutLabel,children:"Environments"}),r.jsxs("span",{className:de.aboutValue,children:[l,"/",c," connected"]})]}),r.jsxs("div",{className:de.aboutItem,children:[r.jsx("span",{className:de.aboutLabel,children:"Active Sessions"}),r.jsx("span",{className:de.aboutValue,children:d})]}),r.jsxs("div",{className:de.aboutItem,children:[r.jsx("span",{className:de.aboutLabel,children:"Version"}),r.jsx("span",{className:de.aboutValue,children:"0.75.9"})]})]})]})}function dL(){const{connected:n,environments:a,sessions:i}=rt();return r.jsx(uL,{connected:n,environments:a,sessions:i})}const fL="_wizard_1260s_1",hL="_container_1260s_10",mL="_stepContent_1260s_19",pL="_logoArea_1260s_28",vL="_logoImage_1260s_32",gL="_heading_1260s_41",yL="_tagline_1260s_49",bL="_subtitle_1260s_56",xL="_featureList_1260s_64",_L="_runtimeGrid_1260s_89",SL="_runtimeCard_1260s_101",TL="_runtimeName_1260s_133",kL="_runtimeDescription_1260s_139",CL="_buttonRow_1260s_144",jL="_primaryButton_1260s_151",NL="_ghostButton_1260s_185",wL="_dots_1260s_213",EL="_dot_1260s_213",nt={wizard:fL,container:hL,stepContent:mL,logoArea:pL,logoImage:vL,heading:gL,tagline:yL,subtitle:bL,featureList:xL,runtimeGrid:_L,runtimeCard:SL,runtimeName:TL,runtimeDescription:kL,buttonRow:CL,primaryButton:jL,ghostButton:NL,dots:wL,dot:EL};function AL({onNext:n}){return r.jsxs("div",{className:nt.stepContent,"data-testid":"setup-welcome",children:[r.jsx("div",{className:nt.logoArea,children:r.jsx("img",{src:"/grackle-logo.png",alt:"Grackle",className:nt.logoImage})}),r.jsx("h1",{className:nt.heading,children:"Welcome to Grackle"}),r.jsx("p",{className:nt.tagline,children:"Multi-agent orchestration for software teams"}),r.jsx("button",{type:"button",className:nt.primaryButton,onClick:n,"data-testid":"setup-get-started",children:"Get Started"})]})}function DL({onNext:n,onBack:a}){return r.jsxs("div",{className:nt.stepContent,"data-testid":"setup-about",children:[r.jsx("h2",{className:nt.heading,children:"What is Grackle?"}),r.jsxs("ul",{className:nt.featureList,children:[r.jsx("li",{children:"Run Claude, Copilot, and Codex agents side by side"}),r.jsx("li",{children:"Provision and control dev environments — SSH, Codespaces, or local"}),r.jsx("li",{children:"Organize work into workspaces with agent-executable tasks"}),r.jsx("li",{children:"Customize agent behavior with personas, tools, and MCP servers"}),r.jsx("li",{children:"Live-stream agent sessions with full terminal replay"})]}),r.jsxs("div",{className:nt.buttonRow,children:[r.jsx("button",{type:"button",className:nt.ghostButton,onClick:a,children:"Back"}),r.jsx("button",{type:"button",className:nt.primaryButton,onClick:n,"data-testid":"setup-about-next",children:"Next"})]})]})}const RL=[{id:"claude-code",name:"Claude Code",description:"Anthropic's agentic coding tool"},{id:"copilot",name:"Copilot Coding Agent",description:"GitHub's AI pair programmer"},{id:"codex",name:"Codex CLI",description:"OpenAI's coding agent"},{id:"goose",name:"Goose",description:"Block's open-source AI coding agent"}];function ML({currentRuntime:n,onFinish:a,onBack:i,finishDisabled:l}){const[c,d]=b.useState(n||"claude-code");return b.useEffect(()=>{n&&d(n)},[n]),r.jsxs("div",{className:nt.stepContent,"data-testid":"setup-runtime",children:[r.jsx("h2",{className:nt.heading,children:"Choose Your Runtime"}),r.jsx("p",{className:nt.subtitle,children:"Select the primary agent runtime for your workspace. You can change this later."}),r.jsx("div",{className:nt.runtimeGrid,children:RL.map(f=>r.jsxs("button",{type:"button",className:nt.runtimeCard,"data-selected":c===f.id,"aria-pressed":c===f.id,"data-testid":`runtime-card-${f.id}`,onClick:()=>d(f.id),children:[r.jsx("span",{className:nt.runtimeName,children:f.name}),r.jsx("span",{className:nt.runtimeDescription,children:f.description})]},f.id))}),r.jsxs("div",{className:nt.buttonRow,children:[r.jsx("button",{type:"button",className:nt.ghostButton,onClick:i,children:"Back"}),r.jsx("button",{type:"button",className:nt.primaryButton,onClick:()=>a(c),disabled:l,"data-testid":"setup-finish",children:"Finish"})]})]})}const OL=3,j0={"claude-code":"sonnet",copilot:"gpt-4o",codex:"o3",goose:""};function BL(){const{personas:n,updatePersona:a,completeOnboarding:i,onboardingCompleted:l}=rt(),c=Rt(),[d,f]=b.useState(0),m=n.find(v=>v.id==="claude-code"),p=b.useCallback(v=>{if(m&&v!==m.runtime){const y=j0[v]??"sonnet";a(m.id,void 0,void 0,void 0,v,y)}const g=n.find(y=>y.id===Eg);if(g&&v!==g.runtime){const y=j0[v]??"sonnet";a(Eg,void 0,void 0,void 0,v,y)}i(),c("/",{replace:!0})},[m,n,a,i,c]);return l===!0?r.jsx(Pn,{to:"/",replace:!0}):r.jsx("div",{className:nt.wizard,"data-testid":"setup-wizard",children:r.jsxs("div",{className:nt.container,children:[r.jsx(Kn,{mode:"wait",children:r.jsxs(Tt.div,{initial:{opacity:0,x:40},animate:{opacity:1,x:0},exit:{opacity:0,x:-40},transition:{duration:.2,ease:"easeInOut"},children:[d===0&&r.jsx(AL,{onNext:()=>f(1)}),d===1&&r.jsx(DL,{onNext:()=>f(2),onBack:()=>f(0)}),d===2&&r.jsx(ML,{currentRuntime:(m==null?void 0:m.runtime)??"claude-code",onFinish:p,onBack:()=>f(1),finishDisabled:!m})]},d)}),r.jsx("div",{className:nt.dots,children:Array.from({length:OL},(v,g)=>r.jsx("span",{className:nt.dot,"data-active":g===d},g))})]})})}const LL="_root_zndgp_1",IL="_body_zndgp_7",zL="_main_zndgp_19",UL="_sidebarWrapper_zndgp_26",VL="_overlay_zndgp_51",qo={root:LL,body:IL,main:zL,sidebarWrapper:UL,overlay:VL},HL=b.lazy(()=>V1(()=>import("./KnowledgePage-BbAhLsAs.js"),__vite__mapDeps([0,1,2,3,4])).then(n=>({default:n.KnowledgePage}))),GL=typeof window<"u"&&new URLSearchParams(window.location.search).has("mock");function PL(){const{connected:n,environments:a,sessions:i,tasks:l}=rt(),c=wt(),f=lb()!==void 0,[m,p]=b.useState(!1),v=b.useCallback(()=>p(g=>!g),[]);return b.useEffect(()=>{p(!1)},[c.pathname]),b.useEffect(()=>{if(!m)return;const g=y=>{y.key==="Escape"&&p(!1)};return document.addEventListener("keydown",g),()=>{document.removeEventListener("keydown",g)}},[m]),r.jsxs(r.Fragment,{children:[r.jsx(EC,{connected:n,environments:a,sessions:i,onToggleSidebar:f?v:void 0,sidebarOpen:m}),r.jsx(LC,{}),r.jsxs("div",{className:qo.body,children:[f&&r.jsx("div",{className:qo.sidebarWrapper,"data-sidebar-open":m,children:r.jsx($C,{})}),f&&m&&r.jsx("div",{className:qo.overlay,"data-testid":"drawer-overlay",onClick:()=>p(!1)}),r.jsxs("div",{className:qo.main,children:[r.jsx(ws,{}),r.jsx(VA,{sessions:i,tasks:l,environments:a})]})]}),r.jsx(JA,{})]})}function $L(){const{lastSpawnedId:n,environments:a,connected:i,onboardingCompleted:l}=rt(),{showToast:c}=Es();pR(a,c);const d=Rt(),f=wt();return b.useEffect(()=>{n&&!f.pathname.includes("/tasks/")&&d(F0(n),{replace:!0})},[n,d,f.pathname]),i&&l===!1?r.jsx(Pn,{to:"/setup",replace:!0}):r.jsx(IC,{children:r.jsx("div",{className:qo.root,children:r.jsx(PL,{})})})}function of(){const{workspaceId:n}=Qa(),{workspaces:a}=rt(),i=wt(),l=a.find(p=>p.id===n);if(!(l!=null&&l.environmentId))return a.length===0?void 0:r.jsx(Pn,{to:"/environments",replace:!0});const c=encodeURIComponent(n),d=`/workspaces/${c}`,f=i.pathname.startsWith(d)?i.pathname.slice(d.length):"",m=`/environments/${encodeURIComponent(l.environmentId)}/workspaces/${c}${f}${i.search}${i.hash}`;return r.jsx(Pn,{to:m,replace:!0})}function qL(){return r.jsxs(qT,{children:[r.jsx(ke,{path:"setup",element:r.jsx(BL,{})}),r.jsxs(ke,{element:r.jsx($L,{}),children:[r.jsx(ke,{index:!0,element:r.jsx(G3,{})}),r.jsx(ke,{path:"chat",element:r.jsx(g6,{})}),r.jsx(ke,{path:"sessions/new",element:r.jsx(C6,{})}),r.jsx(ke,{path:"sessions/:sessionId",element:r.jsx(w6,{})}),r.jsx(ke,{element:r.jsx(RA,{}),children:r.jsx(ke,{path:"knowledge",element:r.jsx(b.Suspense,{fallback:r.jsx(Yx,{}),children:r.jsx(HL,{})})})}),r.jsxs(ke,{element:r.jsx(EA,{}),children:[r.jsx(ke,{path:"tasks",element:r.jsx(V3,{})}),r.jsx(ke,{path:"tasks/new",element:r.jsx(S0,{})}),r.jsx(ke,{path:"tasks/:taskId",element:r.jsx(_i,{})}),r.jsx(ke,{path:"tasks/:taskId/stream",element:r.jsx(_i,{})}),r.jsx(ke,{path:"tasks/:taskId/findings",element:r.jsx(_i,{})}),r.jsx(ke,{path:"tasks/:taskId/edit",element:r.jsx(T0,{})})]}),r.jsxs(ke,{element:r.jsx(AA,{}),children:[r.jsx(ke,{path:"workspaces",element:r.jsx(Pn,{to:"/environments",replace:!0})}),r.jsx(ke,{path:"workspaces/new",element:r.jsx(E4,{})}),r.jsx(ke,{path:"workspaces/:workspaceId",element:r.jsx(of,{})}),r.jsx(ke,{path:"workspaces/:workspaceId/tasks/:taskId",element:r.jsx(of,{})}),r.jsx(ke,{path:"workspaces/:workspaceId/tasks/:taskId/*",element:r.jsx(of,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId",element:r.jsx(KO,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/new",element:r.jsx(S0,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId",element:r.jsx(_i,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/stream",element:r.jsx(_i,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/findings",element:r.jsx(_i,{})}),r.jsx(ke,{path:"environments/:environmentId/workspaces/:workspaceId/tasks/:taskId/edit",element:r.jsx(T0,{})}),r.jsxs(ke,{path:"environments",element:r.jsx(gB,{}),children:[r.jsx(ke,{index:!0,element:r.jsx(H3,{})}),r.jsx(ke,{path:"new",element:r.jsx(fB,{})}),r.jsx(ke,{path:":environmentId",element:r.jsx(qB,{})}),r.jsx(ke,{path:":environmentId/edit",element:r.jsx(hB,{})})]})]}),r.jsx(ke,{element:r.jsx(DA,{}),children:r.jsxs(ke,{path:"settings",element:r.jsx(FB,{}),children:[r.jsx(ke,{index:!0,element:r.jsx(Pn,{to:"credentials",replace:!0})}),r.jsx(ke,{path:"environments",element:r.jsx(Pn,{to:"/environments",replace:!0})}),r.jsx(ke,{path:"credentials",element:r.jsx(B5,{})}),r.jsx(ke,{path:"tokens",element:r.jsx(Pn,{to:"../credentials",replace:!0})}),r.jsx(ke,{path:"personas",element:r.jsx(lL,{})}),r.jsx(ke,{path:"appearance",element:r.jsx(cL,{})}),r.jsx(ke,{path:"about",element:r.jsx(dL,{})})]})}),r.jsx(ke,{path:"*",element:r.jsx(Pn,{to:"/",replace:!0})})]})]})}const YL=1e4;function KL(){const{onboardingCompleted:n}=rt(),[a,i]=b.useState(!1);b.useEffect(()=>{if(n!==void 0)return;const c=setTimeout(()=>i(!0),YL);return()=>clearTimeout(c)},[n]);const l=n===void 0&&!a;return r.jsx(Kn,{mode:"wait",children:l?r.jsx(Tt.div,{initial:{opacity:1},exit:{opacity:0},transition:{duration:.25},children:r.jsx(Yx,{})},"splash"):r.jsx(Tt.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.25},style:{minHeight:"100vh"},children:r.jsx(vk,{children:r.jsx(qL,{})})},"app")})}function FL(){const n=GL?hC:sC;return r.jsx(bC,{children:r.jsx(pC,{children:r.jsx(n,{children:r.jsx(KL,{})})})})}I1.createRoot(document.getElementById("root")).render(r.jsx(b.StrictMode,{children:r.jsx(FL,{})}));export{Ds as B,Q0 as K,rt as a,F0 as s,ya as t,Rt as u};
package/dist/index.html CHANGED
@@ -10,7 +10,7 @@
10
10
  <link rel="icon" type="image/x-icon" href="/favicon.ico" />
11
11
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
12
12
  <link rel="manifest" href="/manifest.json" />
13
- <script type="module" crossorigin src="/assets/index-C0-Okih-.js"></script>
13
+ <script type="module" crossorigin src="/assets/index-DIX-D5tY.js"></script>
14
14
  <link rel="modulepreload" crossorigin href="/assets/markdown-gcy1Jmzi.js">
15
15
  <link rel="modulepreload" crossorigin href="/assets/dagview-BA5TtMAQ.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/grpc-C9KtwZNl.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grackle-ai/web",
3
- "version": "0.75.8",
3
+ "version": "0.75.10",
4
4
  "description": "React web UI for the Grackle multi-agent coordination platform",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,7 +38,7 @@
38
38
  "rehype-prism-plus": "^2.0.0",
39
39
  "remark-gfm": "^4.0.0",
40
40
  "react-router": "^7.0.0",
41
- "@grackle-ai/common": "0.75.8"
41
+ "@grackle-ai/common": "0.75.10"
42
42
  },
43
43
  "devDependencies": {
44
44
  "@rushstack/heft": "1.2.7",